tmagic-editor/playground/assets/index-DSSdaNAf.js
2025-11-26 09:11:19 +00:00

4 lines
5.8 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-DYz3fCur.js","assets/lspLanguageFeatures-BRPcVhyY.js","assets/htmlMode-DiLm5d1m.js","assets/jsonMode-CUm_K2lr.js","assets/javascript-DiNT5jeZ.js","assets/typescript-BMf7XzdH.js","assets/index-4agk0_rd.css","assets/tmagic-tdesign-vue-next-adapter-C4oxi0Ok.js","assets/omit-CMSovUOB.js","assets/tmagic-tdesign-vue-next-adapter-CaYkSD-y.css","assets/tmagic-element-plus-adapter-BQkreGDv.js"])))=>i.map(i=>d[i]);
var pa=Object.freeze,ma=Object.defineProperty;var va=o=>{throw TypeError(o)};var Xa=(o,e,t)=>e in o?ma(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var K=(o,e,t)=>Xa(o,typeof e!="symbol"?e+"":e,t),ba=(o,e,t)=>e.has(o)||va("Cannot "+t);var Ue=(o,e,t)=>(ba(o,e,"read from private field"),t?t.call(o):e.get(o)),xt=(o,e,t)=>e.has(o)?va("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(o):e.set(o,t),Rt=(o,e,t,r)=>(ba(o,e,"write to private field"),r?r.call(o,t):e.set(o,t),t);var Ze=(o,e)=>pa(ma(o,"raw",{value:pa(e||o.slice())}));function __vite_legacy_guard(){import.meta.url,import("_").catch(()=>1),(async function*(){})().next()}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const a of s)if(a.type==="childList")for(const l of a.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function t(s){const a={};return s.integrity&&(a.integrity=s.integrity),s.referrerPolicy&&(a.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?a.credentials="include":s.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(s){if(s.ep)return;s.ep=!0;const a=t(s);fetch(s.href,a)}})();const scriptRel="modulepreload",assetsURL=function(o){return"/tmagic-editor/playground/"+o},seen={},__vitePreload=function(e,t,r){let s=Promise.resolve();if(t&&t.length>0){let d=function(u){return Promise.all(u.map(g=>Promise.resolve(g).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));s=d(t.map(u=>{if(u=assetsURL(u),u in seen)return;seen[u]=!0;const g=u.endsWith(".css"),f=g?'[rel="stylesheet"]':"";if(document.querySelector('link[href="'.concat(u,'"]').concat(f)))return;const m=document.createElement("link");if(m.rel=g?"stylesheet":scriptRel,g||(m.as="script"),m.crossOrigin="",m.href=u,c&&m.setAttribute("nonce",c),document.head.appendChild(m),g)return new Promise((_,v)=>{m.addEventListener("load",_),m.addEventListener("error",()=>v(new Error("Unable to preload CSS for ".concat(u))))})}))}function a(l){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=l,window.dispatchEvent(c),!c.defaultPrevented)throw l}return s.then(l=>{for(const c of l||[])c.status==="rejected"&&a(c.reason);return e().catch(a)})};function makeMap(o){const e=Object.create(null);for(const t of o.split(","))e[t]=1;return t=>t in e}const EMPTY_OBJ={},EMPTY_ARR=[],NOOP=()=>{},NO=()=>!1,isOn=o=>o.charCodeAt(0)===111&&o.charCodeAt(1)===110&&(o.charCodeAt(2)>122||o.charCodeAt(2)<97),isModelListener=o=>o.startsWith("onUpdate:"),extend$1=Object.assign,remove=(o,e)=>{const t=o.indexOf(e);t>-1&&o.splice(t,1)},hasOwnProperty$j=Object.prototype.hasOwnProperty,hasOwn=(o,e)=>hasOwnProperty$j.call(o,e),isArray$3=Array.isArray,isMap$1=o=>toTypeString(o)==="[object Map]",isSet$1=o=>toTypeString(o)==="[object Set]",isDate$1=o=>toTypeString(o)==="[object Date]",isFunction$4=o=>typeof o=="function",isString$3=o=>typeof o=="string",isSymbol$1=o=>typeof o=="symbol",isObject$6=o=>o!==null&&typeof o=="object",isPromise=o=>(isObject$6(o)||isFunction$4(o))&&isFunction$4(o.then)&&isFunction$4(o.catch),objectToString$1=Object.prototype.toString,toTypeString=o=>objectToString$1.call(o),toRawType=o=>toTypeString(o).slice(8,-1),isPlainObject$1=o=>toTypeString(o)==="[object Object]",isIntegerKey=o=>isString$3(o)&&o!=="NaN"&&o[0]!=="-"&&""+parseInt(o,10)===o,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),cacheStringFunction=o=>{const e=Object.create(null);return(t=>e[t]||(e[t]=o(t)))},camelizeRE=/-\w/g,camelize$1=cacheStringFunction(o=>o.replace(camelizeRE,e=>e.slice(1).toUpperCase())),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(o=>o.replace(hyphenateRE,"-$1").toLowerCase()),capitalize$1=cacheStringFunction(o=>o.charAt(0).toUpperCase()+o.slice(1)),toHandlerKey=cacheStringFunction(o=>o?"on".concat(capitalize$1(o)):""),hasChanged=(o,e)=>!Object.is(o,e),invokeArrayFns=(o,...e)=>{for(let t=0;t<o.length;t++)o[t](...e)},def$1=(o,e,t,r=!1)=>{Object.defineProperty(o,e,{configurable:!0,enumerable:!1,writable:r,value:t})},looseToNumber=o=>{const e=parseFloat(o);return isNaN(e)?o:e},toNumber$1=o=>{const e=isString$3(o)?Number(o):NaN;return isNaN(e)?o:e};let _globalThis;const getGlobalThis=()=>_globalThis||(_globalThis=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function normalizeStyle(o){if(isArray$3(o)){const e={};for(let t=0;t<o.length;t++){const r=o[t],s=isString$3(r)?parseStringStyle(r):normalizeStyle(r);if(s)for(const a in s)e[a]=s[a]}return e}else if(isString$3(o)||isObject$6(o))return o}const listDelimiterRE=/;(?![^(]*\))/g,propertyDelimiterRE=/:([^]+)/,styleCommentRE=/\/\*[^]*?\*\//g;function parseStringStyle(o){const e={};return o.replace(styleCommentRE,"").split(listDelimiterRE).forEach(t=>{if(t){const r=t.split(propertyDelimiterRE);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e}function normalizeClass(o){let e="";if(isString$3(o))e=o;else if(isArray$3(o))for(let t=0;t<o.length;t++){const r=normalizeClass(o[t]);r&&(e+=r+" ")}else if(isObject$6(o))for(const t in o)o[t]&&(e+=t+" ");return e.trim()}function normalizeProps(o){if(!o)return null;let{class:e,style:t}=o;return e&&!isString$3(e)&&(o.class=normalizeClass(e)),t&&(o.style=normalizeStyle(t)),o}const specialBooleanAttrs="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",isSpecialBooleanAttr=makeMap(specialBooleanAttrs);function includeBooleanAttr(o){return!!o||o===""}function looseCompareArrays(o,e){if(o.length!==e.length)return!1;let t=!0;for(let r=0;t&&r<o.length;r++)t=looseEqual(o[r],e[r]);return t}function looseEqual(o,e){if(o===e)return!0;let t=isDate$1(o),r=isDate$1(e);if(t||r)return t&&r?o.getTime()===e.getTime():!1;if(t=isSymbol$1(o),r=isSymbol$1(e),t||r)return o===e;if(t=isArray$3(o),r=isArray$3(e),t||r)return t&&r?looseCompareArrays(o,e):!1;if(t=isObject$6(o),r=isObject$6(e),t||r){if(!t||!r)return!1;const s=Object.keys(o).length,a=Object.keys(e).length;if(s!==a)return!1;for(const l in o){const c=o.hasOwnProperty(l),d=e.hasOwnProperty(l);if(c&&!d||!c&&d||!looseEqual(o[l],e[l]))return!1}}return String(o)===String(e)}function looseIndexOf(o,e){return o.findIndex(t=>looseEqual(t,e))}const isRef$1=o=>!!(o&&o.__v_isRef===!0),toDisplayString=o=>isString$3(o)?o:o==null?"":isArray$3(o)||isObject$6(o)&&(o.toString===objectToString$1||!isFunction$4(o.toString))?isRef$1(o)?toDisplayString(o.value):JSON.stringify(o,replacer$1,2):String(o),replacer$1=(o,e)=>isRef$1(e)?replacer$1(o,e.value):isMap$1(e)?{["Map(".concat(e.size,")")]:[...e.entries()].reduce((t,[r,s],a)=>(t[stringifySymbol(r,a)+" =>"]=s,t),{})}:isSet$1(e)?{["Set(".concat(e.size,")")]:[...e.values()].map(t=>stringifySymbol(t))}:isSymbol$1(e)?stringifySymbol(e):isObject$6(e)&&!isArray$3(e)&&!isPlainObject$1(e)?String(e):e,stringifySymbol=(o,e="")=>{var t;return isSymbol$1(o)?"Symbol(".concat((t=o.description)!=null?t:e,")"):o};let activeEffectScope;class EffectScope{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!e&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].pause();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes)for(e=0,t=this.scopes.length;e<t;e++)this.scopes[e].resume();for(e=0,t=this.effects.length;e<t;e++)this.effects[e].resume()}}run(e){if(this._active){const t=activeEffectScope;try{return activeEffectScope=this,e()}finally{activeEffectScope=t}}}on(){++this._on===1&&(this.prevScope=activeEffectScope,activeEffectScope=this)}off(){this._on>0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){this._active=!1;let t,r;for(t=0,r=this.effects.length;t<r;t++)this.effects[t].stop();for(this.effects.length=0,t=0,r=this.cleanups.length;t<r;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){for(t=0,r=this.scopes.length;t<r;t++)this.scopes[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const s=this.parent.scopes.pop();s&&s!==this&&(this.parent.scopes[this.index]=s,s.index=this.index)}this.parent=void 0}}}function getCurrentScope(){return activeEffectScope}function onScopeDispose(o,e=!1){activeEffectScope&&activeEffectScope.cleanups.push(o)}let activeSub;const pausedQueueEffects=new WeakSet;class ReactiveEffect{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,activeEffectScope&&activeEffectScope.active&&activeEffectScope.effects.push(this)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,pausedQueueEffects.has(this)&&(pausedQueueEffects.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||batch(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,cleanupEffect(this),prepareDeps(this);const e=activeSub,t=shouldTrack;activeSub=this,shouldTrack=!0;try{return this.fn()}finally{cleanupDeps(this),activeSub=e,shouldTrack=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)removeSub(e);this.deps=this.depsTail=void 0,cleanupEffect(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?pausedQueueEffects.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){isDirty(this)&&this.run()}get dirty(){return isDirty(this)}}let batchDepth=0,batchedSub,batchedComputed;function batch(o,e=!1){if(o.flags|=8,e){o.next=batchedComputed,batchedComputed=o;return}o.next=batchedSub,batchedSub=o}function startBatch(){batchDepth++}function endBatch(){if(--batchDepth>0)return;if(batchedComputed){let e=batchedComputed;for(batchedComputed=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let o;for(;batchedSub;){let e=batchedSub;for(batchedSub=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(r){o||(o=r)}e=t}}if(o)throw o}function prepareDeps(o){for(let e=o.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function cleanupDeps(o){let e,t=o.depsTail,r=t;for(;r;){const s=r.prevDep;r.version===-1?(r===t&&(t=s),removeSub(r),removeDep(r)):e=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}o.deps=e,o.depsTail=t}function isDirty(o){for(let e=o.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(refreshComputed(e.dep.computed)||e.dep.version!==e.version))return!0;return!!o._dirty}function refreshComputed(o){if(o.flags&4&&!(o.flags&16)||(o.flags&=-17,o.globalVersion===globalVersion)||(o.globalVersion=globalVersion,!o.isSSR&&o.flags&128&&(!o.deps&&!o._dirty||!isDirty(o))))return;o.flags|=2;const e=o.dep,t=activeSub,r=shouldTrack;activeSub=o,shouldTrack=!0;try{prepareDeps(o);const s=o.fn(o._value);(e.version===0||hasChanged(s,o._value))&&(o.flags|=128,o._value=s,e.version++)}catch(s){throw e.version++,s}finally{activeSub=t,shouldTrack=r,cleanupDeps(o),o.flags&=-3}}function removeSub(o,e=!1){const{dep:t,prevSub:r,nextSub:s}=o;if(r&&(r.nextSub=s,o.prevSub=void 0),s&&(s.prevSub=r,o.nextSub=void 0),t.subs===o&&(t.subs=r,!r&&t.computed)){t.computed.flags&=-5;for(let a=t.computed.deps;a;a=a.nextDep)removeSub(a,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function removeDep(o){const{prevDep:e,nextDep:t}=o;e&&(e.nextDep=t,o.prevDep=void 0),t&&(t.prevDep=e,o.nextDep=void 0)}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const o=trackStack.pop();shouldTrack=o===void 0?!0:o}function cleanupEffect(o){const{cleanup:e}=o;if(o.cleanup=void 0,e){const t=activeSub;activeSub=void 0;try{e()}finally{activeSub=t}}}let globalVersion=0,Link$3=class{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},Dep$1=class{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==activeSub)t=this.activeLink=new Link$3(activeSub,this),activeSub.deps?(t.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=t,activeSub.depsTail=t):activeSub.deps=activeSub.depsTail=t,addSub(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const r=t.nextDep;r.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=r),t.prevDep=activeSub.depsTail,t.nextDep=void 0,activeSub.depsTail.nextDep=t,activeSub.depsTail=t,activeSub.deps===t&&(activeSub.deps=r)}return t}trigger(e){this.version++,globalVersion++,this.notify(e)}notify(e){startBatch();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{endBatch()}}};function addSub(o){if(o.dep.sc++,o.sub.flags&4){const e=o.dep.computed;if(e&&!o.dep.subs){e.flags|=20;for(let r=e.deps;r;r=r.nextDep)addSub(r)}const t=o.dep.subs;t!==o&&(o.prevSub=t,t&&(t.nextSub=o)),o.dep.subs=o}}const targetMap=new WeakMap,ITERATE_KEY=Symbol(""),MAP_KEY_ITERATE_KEY=Symbol(""),ARRAY_ITERATE_KEY=Symbol("");function track(o,e,t){if(shouldTrack&&activeSub){let r=targetMap.get(o);r||targetMap.set(o,r=new Map);let s=r.get(t);s||(r.set(t,s=new Dep$1),s.map=r,s.key=t),s.track()}}function trigger(o,e,t,r,s,a){const l=targetMap.get(o);if(!l){globalVersion++;return}const c=d=>{d&&d.trigger()};if(startBatch(),e==="clear")l.forEach(c);else{const d=isArray$3(o),u=d&&isIntegerKey(t);if(d&&t==="length"){const g=Number(r);l.forEach((f,m)=>{(m==="length"||m===ARRAY_ITERATE_KEY||!isSymbol$1(m)&&m>=g)&&c(f)})}else switch((t!==void 0||l.has(void 0))&&c(l.get(t)),u&&c(l.get(ARRAY_ITERATE_KEY)),e){case"add":d?u&&c(l.get("length")):(c(l.get(ITERATE_KEY)),isMap$1(o)&&c(l.get(MAP_KEY_ITERATE_KEY)));break;case"delete":d||(c(l.get(ITERATE_KEY)),isMap$1(o)&&c(l.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(o)&&c(l.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(o,e){const t=targetMap.get(o);return t&&t.get(e)}function reactiveReadArray(o){const e=toRaw(o);return e===o?e:(track(e,"iterate",ARRAY_ITERATE_KEY),isShallow(o)?e:e.map(toReactive))}function shallowReadArray(o){return track(o=toRaw(o),"iterate",ARRAY_ITERATE_KEY),o}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator(this,Symbol.iterator,toReactive)},concat(...o){return reactiveReadArray(this).concat(...o.map(e=>isArray$3(e)?reactiveReadArray(e):e))},entries(){return iterator(this,"entries",o=>(o[1]=toReactive(o[1]),o))},every(o,e){return apply$2(this,"every",o,e,void 0,arguments)},filter(o,e){return apply$2(this,"filter",o,e,t=>t.map(toReactive),arguments)},find(o,e){return apply$2(this,"find",o,e,toReactive,arguments)},findIndex(o,e){return apply$2(this,"findIndex",o,e,void 0,arguments)},findLast(o,e){return apply$2(this,"findLast",o,e,toReactive,arguments)},findLastIndex(o,e){return apply$2(this,"findLastIndex",o,e,void 0,arguments)},forEach(o,e){return apply$2(this,"forEach",o,e,void 0,arguments)},includes(...o){return searchProxy(this,"includes",o)},indexOf(...o){return searchProxy(this,"indexOf",o)},join(o){return reactiveReadArray(this).join(o)},lastIndexOf(...o){return searchProxy(this,"lastIndexOf",o)},map(o,e){return apply$2(this,"map",o,e,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...o){return noTracking(this,"push",o)},reduce(o,...e){return reduce(this,"reduce",o,e)},reduceRight(o,...e){return reduce(this,"reduceRight",o,e)},shift(){return noTracking(this,"shift")},some(o,e){return apply$2(this,"some",o,e,void 0,arguments)},splice(...o){return noTracking(this,"splice",o)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(o){return reactiveReadArray(this).toSorted(o)},toSpliced(...o){return reactiveReadArray(this).toSpliced(...o)},unshift(...o){return noTracking(this,"unshift",o)},values(){return iterator(this,"values",toReactive)}};function iterator(o,e,t){const r=shallowReadArray(o),s=r[e]();return r!==o&&!isShallow(o)&&(s._next=s.next,s.next=()=>{const a=s._next();return a.done||(a.value=t(a.value)),a}),s}const arrayProto$1=Array.prototype;function apply$2(o,e,t,r,s,a){const l=shallowReadArray(o),c=l!==o&&!isShallow(o),d=l[e];if(d!==arrayProto$1[e]){const f=d.apply(o,a);return c?toReactive(f):f}let u=t;l!==o&&(c?u=function(f,m){return t.call(this,toReactive(f),m,o)}:t.length>2&&(u=function(f,m){return t.call(this,f,m,o)}));const g=d.call(l,u,r);return c&&s?s(g):g}function reduce(o,e,t,r){const s=shallowReadArray(o);let a=t;return s!==o&&(isShallow(o)?t.length>3&&(a=function(l,c,d){return t.call(this,l,c,d,o)}):a=function(l,c,d){return t.call(this,l,toReactive(c),d,o)}),s[e](a,...r)}function searchProxy(o,e,t){const r=toRaw(o);track(r,"iterate",ARRAY_ITERATE_KEY);const s=r[e](...t);return(s===-1||s===!1)&&isProxy(t[0])?(t[0]=toRaw(t[0]),r[e](...t)):s}function noTracking(o,e,t=[]){pauseTracking(),startBatch();const r=toRaw(o)[e].apply(o,t);return endBatch(),resetTracking(),r}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(o=>o!=="arguments"&&o!=="caller").map(o=>Symbol[o]).filter(isSymbol$1));function hasOwnProperty$i(o){isSymbol$1(o)||(o=String(o));const e=toRaw(this);return track(e,"has",o),e.hasOwnProperty(o)}class BaseReactiveHandler{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,r){if(t==="__v_skip")return e.__v_skip;const s=this._isReadonly,a=this._isShallow;if(t==="__v_isReactive")return!s;if(t==="__v_isReadonly")return s;if(t==="__v_isShallow")return a;if(t==="__v_raw")return r===(s?a?shallowReadonlyMap:readonlyMap:a?shallowReactiveMap:reactiveMap).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(r)?e:void 0;const l=isArray$3(e);if(!s){let d;if(l&&(d=arrayInstrumentations[t]))return d;if(t==="hasOwnProperty")return hasOwnProperty$i}const c=Reflect.get(e,t,isRef(e)?e:r);if((isSymbol$1(t)?builtInSymbols.has(t):isNonTrackableKeys(t))||(s||track(e,"get",t),a))return c;if(isRef(c)){const d=l&&isIntegerKey(t)?c:c.value;return s&&isObject$6(d)?readonly(d):d}return isObject$6(c)?s?readonly(c):reactive$1(c):c}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(e=!1){super(!1,e)}set(e,t,r,s){let a=e[t];if(!this._isShallow){const d=isReadonly(a);if(!isShallow(r)&&!isReadonly(r)&&(a=toRaw(a),r=toRaw(r)),!isArray$3(e)&&isRef(a)&&!isRef(r))return d||(a.value=r),!0}const l=isArray$3(e)&&isIntegerKey(t)?Number(t)<e.length:hasOwn(e,t),c=Reflect.set(e,t,r,isRef(e)?e:s);return e===toRaw(s)&&(l?hasChanged(r,a)&&trigger(e,"set",t,r):trigger(e,"add",t,r)),c}deleteProperty(e,t){const r=hasOwn(e,t);e[t];const s=Reflect.deleteProperty(e,t);return s&&r&&trigger(e,"delete",t,void 0),s}has(e,t){const r=Reflect.has(e,t);return(!isSymbol$1(t)||!builtInSymbols.has(t))&&track(e,"has",t),r}ownKeys(e){return track(e,"iterate",isArray$3(e)?"length":ITERATE_KEY),Reflect.ownKeys(e)}}class ReadonlyReactiveHandler extends BaseReactiveHandler{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}const mutableHandlers=new MutableReactiveHandler,readonlyHandlers=new ReadonlyReactiveHandler,shallowReactiveHandlers=new MutableReactiveHandler(!0),shallowReadonlyHandlers=new ReadonlyReactiveHandler(!0),toShallow=o=>o,getProto=o=>Reflect.getPrototypeOf(o);function createIterableMethod(o,e,t){return function(...r){const s=this.__v_raw,a=toRaw(s),l=isMap$1(a),c=o==="entries"||o===Symbol.iterator&&l,d=o==="keys"&&l,u=s[o](...r),g=t?toShallow:e?toReadonly:toReactive;return!e&&track(a,"iterate",d?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:f,done:m}=u.next();return m?{value:f,done:m}:{value:c?[g(f[0]),g(f[1])]:g(f),done:m}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(o){return function(...e){return o==="delete"?!1:o==="clear"?void 0:this}}function createInstrumentations(o,e){const t={get(s){const a=this.__v_raw,l=toRaw(a),c=toRaw(s);o||(hasChanged(s,c)&&track(l,"get",s),track(l,"get",c));const{has:d}=getProto(l),u=e?toShallow:o?toReadonly:toReactive;if(d.call(l,s))return u(a.get(s));if(d.call(l,c))return u(a.get(c));a!==l&&a.get(s)},get size(){const s=this.__v_raw;return!o&&track(toRaw(s),"iterate",ITERATE_KEY),s.size},has(s){const a=this.__v_raw,l=toRaw(a),c=toRaw(s);return o||(hasChanged(s,c)&&track(l,"has",s),track(l,"has",c)),s===c?a.has(s):a.has(s)||a.has(c)},forEach(s,a){const l=this,c=l.__v_raw,d=toRaw(c),u=e?toShallow:o?toReadonly:toReactive;return!o&&track(d,"iterate",ITERATE_KEY),c.forEach((g,f)=>s.call(a,u(g),u(f),l))}};return extend$1(t,o?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(s){!e&&!isShallow(s)&&!isReadonly(s)&&(s=toRaw(s));const a=toRaw(this);return getProto(a).has.call(a,s)||(a.add(s),trigger(a,"add",s,s)),this},set(s,a){!e&&!isShallow(a)&&!isReadonly(a)&&(a=toRaw(a));const l=toRaw(this),{has:c,get:d}=getProto(l);let u=c.call(l,s);u||(s=toRaw(s),u=c.call(l,s));const g=d.call(l,s);return l.set(s,a),u?hasChanged(a,g)&&trigger(l,"set",s,a):trigger(l,"add",s,a),this},delete(s){const a=toRaw(this),{has:l,get:c}=getProto(a);let d=l.call(a,s);d||(s=toRaw(s),d=l.call(a,s)),c&&c.call(a,s);const u=a.delete(s);return d&&trigger(a,"delete",s,void 0),u},clear(){const s=toRaw(this),a=s.size!==0,l=s.clear();return a&&trigger(s,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(s=>{t[s]=createIterableMethod(s,o,e)}),t}function createInstrumentationGetter(o,e){const t=createInstrumentations(o,e);return(r,s,a)=>s==="__v_isReactive"?!o:s==="__v_isReadonly"?o:s==="__v_raw"?r:Reflect.get(hasOwn(t,s)&&s in r?t:r,s,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)},reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(o){switch(o){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(o){return o.__v_skip||!Object.isExtensible(o)?0:targetTypeMap(toRawType(o))}function reactive$1(o){return isReadonly(o)?o:createReactiveObject(o,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(o){return createReactiveObject(o,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(o){return createReactiveObject(o,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(o){return createReactiveObject(o,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(o,e,t,r,s){if(!isObject$6(o)||o.__v_raw&&!(e&&o.__v_isReactive))return o;const a=getTargetType(o);if(a===0)return o;const l=s.get(o);if(l)return l;const c=new Proxy(o,a===2?r:t);return s.set(o,c),c}function isReactive(o){return isReadonly(o)?isReactive(o.__v_raw):!!(o&&o.__v_isReactive)}function isReadonly(o){return!!(o&&o.__v_isReadonly)}function isShallow(o){return!!(o&&o.__v_isShallow)}function isProxy(o){return o?!!o.__v_raw:!1}function toRaw(o){const e=o&&o.__v_raw;return e?toRaw(e):o}function markRaw(o){return!hasOwn(o,"__v_skip")&&Object.isExtensible(o)&&def$1(o,"__v_skip",!0),o}const toReactive=o=>isObject$6(o)?reactive$1(o):o,toReadonly=o=>isObject$6(o)?readonly(o):o;function isRef(o){return o?o.__v_isRef===!0:!1}function ref$1(o){return createRef$1(o,!1)}function shallowRef(o){return createRef$1(o,!0)}function createRef$1(o,e){return isRef(o)?o:new RefImpl(o,e)}class RefImpl{constructor(e,t){this.dep=new Dep$1,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:toRaw(e),this._value=t?e:toReactive(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,r=this.__v_isShallow||isShallow(e)||isReadonly(e);e=r?e:toRaw(e),hasChanged(e,t)&&(this._rawValue=e,this._value=r?e:toReactive(e),this.dep.trigger())}}function triggerRef(o){o.dep&&o.dep.trigger()}function unref(o){return isRef(o)?o.value:o}const shallowUnwrapHandlers={get:(o,e,t)=>e==="__v_raw"?o:unref(Reflect.get(o,e,t)),set:(o,e,t,r)=>{const s=o[e];return isRef(s)&&!isRef(t)?(s.value=t,!0):Reflect.set(o,e,t,r)}};function proxyRefs(o){return isReactive(o)?o:new Proxy(o,shallowUnwrapHandlers)}class CustomRefImpl{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new Dep$1,{get:r,set:s}=e(t.track.bind(t),t.trigger.bind(t));this._get=r,this._set=s}get value(){return this._value=this._get()}set value(e){this._set(e)}}function customRef(o){return new CustomRefImpl(o)}function toRefs(o){const e=isArray$3(o)?new Array(o.length):{};for(const t in o)e[t]=propertyToRef(o,t);return e}class ObjectRefImpl{constructor(e,t,r){this._object=e,this._key=t,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const e=this._object[this._key];return this._value=e===void 0?this._defaultValue:e}set value(e){this._object[this._key]=e}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(o,e,t){return isRef(o)?o:isFunction$4(o)?new GetterRefImpl(o):isObject$6(o)&&arguments.length>1?propertyToRef(o,e,t):ref$1(o)}function propertyToRef(o,e,t){const r=o[e];return isRef(r)?r:new ObjectRefImpl(o,e,t)}class ComputedRefImpl{constructor(e,t,r){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Dep$1(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const e=this.dep.track();return refreshComputed(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function computed$2(o,e,t=!1){let r,s;return isFunction$4(o)?r=o:(r=o.get,s=o.set),new ComputedRefImpl(r,s,t)}const INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function onWatcherCleanup(o,e=!1,t=activeWatcher){if(t){let r=cleanupMap.get(t);r||cleanupMap.set(t,r=[]),r.push(o)}}function watch$1(o,e,t=EMPTY_OBJ){const{immediate:r,deep:s,once:a,scheduler:l,augmentJob:c,call:d}=t,u=E=>s?E:isShallow(E)||s===!1||s===0?traverse(E,1):traverse(E);let g,f,m,_,v=!1,b=!1;if(isRef(o)?(f=()=>o.value,v=isShallow(o)):isReactive(o)?(f=()=>u(o),v=!0):isArray$3(o)?(b=!0,v=o.some(E=>isReactive(E)||isShallow(E)),f=()=>o.map(E=>{if(isRef(E))return E.value;if(isReactive(E))return u(E);if(isFunction$4(E))return d?d(E,2):E()})):isFunction$4(o)?e?f=d?()=>d(o,2):o:f=()=>{if(m){pauseTracking();try{m()}finally{resetTracking()}}const E=activeWatcher;activeWatcher=g;try{return d?d(o,3,[_]):o(_)}finally{activeWatcher=E}}:f=NOOP,e&&s){const E=f,x=s===!0?1/0:s;f=()=>traverse(E(),x)}const C=getCurrentScope(),y=()=>{g.stop(),C&&C.active&&remove(C.effects,g)};if(a&&e){const E=e;e=(...x)=>{E(...x),y()}}let S=b?new Array(o.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const w=E=>{if(!(!(g.flags&1)||!g.dirty&&!E))if(e){const x=g.run();if(s||v||(b?x.some((L,k)=>hasChanged(L,S[k])):hasChanged(x,S))){m&&m();const L=activeWatcher;activeWatcher=g;try{const k=[x,S===INITIAL_WATCHER_VALUE?void 0:b&&S[0]===INITIAL_WATCHER_VALUE?[]:S,_];S=x,d?d(e,3,k):e(...k)}finally{activeWatcher=L}}}else g.run()};return c&&c(w),g=new ReactiveEffect(f),g.scheduler=l?()=>l(w,!1):w,_=E=>onWatcherCleanup(E,!1,g),m=g.onStop=()=>{const E=cleanupMap.get(g);if(E){if(d)d(E,4);else for(const x of E)x();cleanupMap.delete(g)}},e?r?w(!0):S=g.run():l?l(w.bind(null,!0),!0):g.run(),y.pause=g.pause.bind(g),y.resume=g.resume.bind(g),y.stop=y,y}function traverse(o,e=1/0,t){if(e<=0||!isObject$6(o)||o.__v_skip||(t=t||new Map,(t.get(o)||0)>=e))return o;if(t.set(o,e),e--,isRef(o))traverse(o.value,e,t);else if(isArray$3(o))for(let r=0;r<o.length;r++)traverse(o[r],e,t);else if(isSet$1(o)||isMap$1(o))o.forEach(r=>{traverse(r,e,t)});else if(isPlainObject$1(o)){for(const r in o)traverse(o[r],e,t);for(const r of Object.getOwnPropertySymbols(o))Object.prototype.propertyIsEnumerable.call(o,r)&&traverse(o[r],e,t)}return o}const stack=[];let isWarning=!1;function warn$1(o,...e){if(isWarning)return;isWarning=!0,pauseTracking();const t=stack.length?stack[stack.length-1].component:null,r=t&&t.appContext.config.warnHandler,s=getComponentTrace();if(r)callWithErrorHandling(r,t,11,[o+e.map(a=>{var l,c;return(c=(l=a.toString)==null?void 0:l.call(a))!=null?c:JSON.stringify(a)}).join(""),t&&t.proxy,s.map(({vnode:a})=>"at <".concat(formatComponentName(t,a.type),">")).join("\n"),s]);else{const a=["[Vue warn]: ".concat(o),...e];s.length&&a.push("\n",...formatTrace(s)),console.warn(...a)}resetTracking(),isWarning=!1}function getComponentTrace(){let o=stack[stack.length-1];if(!o)return[];const e=[];for(;o;){const t=e[0];t&&t.vnode===o?t.recurseCount++:e.push({vnode:o,recurseCount:0});const r=o.component&&o.component.parent;o=r&&r.vnode}return e}function formatTrace(o){const e=[];return o.forEach((t,r)=>{e.push(...r===0?[]:["\n"],...formatTraceEntry(t))}),e}function formatTraceEntry({vnode:o,recurseCount:e}){const t=e>0?"... (".concat(e," recursive calls)"):"",r=o.component?o.component.parent==null:!1,s=" at <".concat(formatComponentName(o.component,o.type,r)),a=">"+t;return o.props?[s,...formatProps(o.props),a]:[s+a]}function formatProps(o){const e=[],t=Object.keys(o);return t.slice(0,3).forEach(r=>{e.push(...formatProp(r,o[r]))}),t.length>3&&e.push(" ..."),e}function formatProp(o,e,t){return isString$3(e)?(e=JSON.stringify(e),t?e:["".concat(o,"=").concat(e)]):typeof e=="number"||typeof e=="boolean"||e==null?t?e:["".concat(o,"=").concat(e)]:isRef(e)?(e=formatProp(o,toRaw(e.value),!0),t?e:["".concat(o,"=Ref<"),e,">"]):isFunction$4(e)?["".concat(o,"=fn").concat(e.name?"<".concat(e.name,">"):"")]:(e=toRaw(e),t?e:["".concat(o,"="),e])}function callWithErrorHandling(o,e,t,r){try{return r?o(...r):o()}catch(s){handleError(s,e,t)}}function callWithAsyncErrorHandling(o,e,t,r){if(isFunction$4(o)){const s=callWithErrorHandling(o,e,t,r);return s&&isPromise(s)&&s.catch(a=>{handleError(a,e,t)}),s}if(isArray$3(o)){const s=[];for(let a=0;a<o.length;a++)s.push(callWithAsyncErrorHandling(o[a],e,t,r));return s}}function handleError(o,e,t,r=!0){const s=e?e.vnode:null,{errorHandler:a,throwUnhandledErrorInProduction:l}=e&&e.appContext.config||EMPTY_OBJ;if(e){let c=e.parent;const d=e.proxy,u="https://vuejs.org/error-reference/#runtime-".concat(t);for(;c;){const g=c.ec;if(g){for(let f=0;f<g.length;f++)if(g[f](o,d,u)===!1)return}c=c.parent}if(a){pauseTracking(),callWithErrorHandling(a,null,10,[o,d,u]),resetTracking();return}}logError(o,t,s,r,l)}function logError(o,e,t,r=!0,s=!1){if(s)throw o;console.error(o)}const queue=[];let flushIndex=-1;const pendingPostFlushCbs=[];let activePostFlushCbs=null,postFlushIndex=0;const resolvedPromise=Promise.resolve();let currentFlushPromise=null;function nextTick(o){const e=currentFlushPromise||resolvedPromise;return o?e.then(this?o.bind(this):o):e}function findInsertionIndex$1(o){let e=flushIndex+1,t=queue.length;for(;e<t;){const r=e+t>>>1,s=queue[r],a=getId(s);a<o||a===o&&s.flags&2?e=r+1:t=r}return e}function queueJob(o){if(!(o.flags&1)){const e=getId(o),t=queue[queue.length-1];!t||!(o.flags&2)&&e>=getId(t)?queue.push(o):queue.splice(findInsertionIndex$1(e),0,o),o.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(o){isArray$3(o)?pendingPostFlushCbs.push(...o):activePostFlushCbs&&o.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,o):o.flags&1||(pendingPostFlushCbs.push(o),o.flags|=1),queueFlush()}function flushPreFlushCbs(o,e,t=flushIndex+1){for(;t<queue.length;t++){const r=queue[t];if(r&&r.flags&2){if(o&&r.id!==o.uid)continue;queue.splice(t,1),t--,r.flags&4&&(r.flags&=-2),r(),r.flags&4||(r.flags&=-2)}}}function flushPostFlushCbs(o){if(pendingPostFlushCbs.length){const e=[...new Set(pendingPostFlushCbs)].sort((t,r)=>getId(t)-getId(r));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...e);return}for(activePostFlushCbs=e,postFlushIndex=0;postFlushIndex<activePostFlushCbs.length;postFlushIndex++){const t=activePostFlushCbs[postFlushIndex];t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2}activePostFlushCbs=null,postFlushIndex=0}}const getId=o=>o.id==null?o.flags&2?-1:1/0:o.id;function flushJobs(o){try{for(flushIndex=0;flushIndex<queue.length;flushIndex++){const e=queue[flushIndex];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),callWithErrorHandling(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;flushIndex<queue.length;flushIndex++){const e=queue[flushIndex];e&&(e.flags&=-2)}flushIndex=-1,queue.length=0,flushPostFlushCbs(),currentFlushPromise=null,(queue.length||pendingPostFlushCbs.length)&&flushJobs()}}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(o){const e=currentRenderingInstance;return currentRenderingInstance=o,currentScopeId=o&&o.type.__scopeId||null,e}function withCtx(o,e=currentRenderingInstance,t){if(!e||o._n)return o;const r=(...s)=>{r._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(e);let l;try{l=o(...s)}finally{setCurrentRenderingInstance(a),r._d&&setBlockTracking(1)}return l};return r._n=!0,r._c=!0,r._d=!0,r}function withDirectives(o,e){if(currentRenderingInstance===null)return o;const t=getComponentPublicInstance(currentRenderingInstance),r=o.dirs||(o.dirs=[]);for(let s=0;s<e.length;s++){let[a,l,c,d=EMPTY_OBJ]=e[s];a&&(isFunction$4(a)&&(a={mounted:a,updated:a}),a.deep&&traverse(l),r.push({dir:a,instance:t,value:l,oldValue:void 0,arg:c,modifiers:d}))}return o}function invokeDirectiveHook(o,e,t,r){const s=o.dirs,a=e&&e.dirs;for(let l=0;l<s.length;l++){const c=s[l];a&&(c.oldValue=a[l].value);let d=c.dir[r];d&&(pauseTracking(),callWithAsyncErrorHandling(d,t,8,[o.el,c,o,e]),resetTracking())}}const TeleportEndKey=Symbol("_vte"),isTeleport=o=>o.__isTeleport,isTeleportDisabled=o=>o&&(o.disabled||o.disabled===""),isTeleportDeferred=o=>o&&(o.defer||o.defer===""),isTargetSVG=o=>typeof SVGElement<"u"&&o instanceof SVGElement,isTargetMathML=o=>typeof MathMLElement=="function"&&o instanceof MathMLElement,resolveTarget=(o,e)=>{const t=o&&o.to;return isString$3(t)?e?e(t):null:t},TeleportImpl={name:"Teleport",__isTeleport:!0,process(o,e,t,r,s,a,l,c,d,u){const{mc:g,pc:f,pbc:m,o:{insert:_,querySelector:v,createText:b,createComment:C}}=u,y=isTeleportDisabled(e.props);let{shapeFlag:S,children:w,dynamicChildren:E}=e;if(o==null){const x=e.el=b(""),L=e.anchor=b("");_(x,t,r),_(L,t,r);const k=(I,T)=>{S&16&&g(w,I,T,s,a,l,c,d)},D=()=>{const I=e.target=resolveTarget(e.props,v),T=prepareAnchor(I,e,b,_);I&&(l!=="svg"&&isTargetSVG(I)?l="svg":l!=="mathml"&&isTargetMathML(I)&&(l="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(I),y||(k(I,T),updateCssVars(e,!1)))};y&&(k(t,L),updateCssVars(e,!0)),isTeleportDeferred(e.props)?(e.el.__isMounted=!1,queuePostRenderEffect(()=>{D(),delete e.el.__isMounted},a)):D()}else{if(isTeleportDeferred(e.props)&&o.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(o,e,t,r,s,a,l,c,d,u)},a);return}e.el=o.el,e.targetStart=o.targetStart;const x=e.anchor=o.anchor,L=e.target=o.target,k=e.targetAnchor=o.targetAnchor,D=isTeleportDisabled(o.props),I=D?t:L,T=D?x:k;if(l==="svg"||isTargetSVG(L)?l="svg":(l==="mathml"||isTargetMathML(L))&&(l="mathml"),E?(m(o.dynamicChildren,E,I,s,a,l,c),traverseStaticChildren(o,e,!0)):d||f(o,e,I,T,s,a,l,c,!1),y)D?e.props&&o.props&&e.props.to!==o.props.to&&(e.props.to=o.props.to):moveTeleport(e,t,x,u,1);else if((e.props&&e.props.to)!==(o.props&&o.props.to)){const M=e.target=resolveTarget(e.props,v);M&&moveTeleport(e,M,null,u,0)}else D&&moveTeleport(e,L,k,u,1);updateCssVars(e,y)}},remove(o,e,t,{um:r,o:{remove:s}},a){const{shapeFlag:l,children:c,anchor:d,targetStart:u,targetAnchor:g,target:f,props:m}=o;if(f&&(s(u),s(g)),a&&s(d),l&16){const _=a||!isTeleportDisabled(m);for(let v=0;v<c.length;v++){const b=c[v];r(b,e,t,_,!!b.dynamicChildren)}}},move:moveTeleport,hydrate:hydrateTeleport};function moveTeleport(o,e,t,{o:{insert:r},m:s},a=2){a===0&&r(o.targetAnchor,e,t);const{el:l,anchor:c,shapeFlag:d,children:u,props:g}=o,f=a===2;if(f&&r(l,e,t),(!f||isTeleportDisabled(g))&&d&16)for(let m=0;m<u.length;m++)s(u[m],e,t,2);f&&r(c,e,t)}function hydrateTeleport(o,e,t,r,s,a,{o:{nextSibling:l,parentNode:c,querySelector:d,insert:u,createText:g}},f){function m(b,C,y,S){C.anchor=f(l(b),C,c(b),t,r,s,a),C.targetStart=y,C.targetAnchor=S}const _=e.target=resolveTarget(e.props,d),v=isTeleportDisabled(e.props);if(_){const b=_._lpa||_.firstChild;if(e.shapeFlag&16)if(v)m(o,e,b,b&&l(b));else{e.anchor=l(o);let C=b;for(;C;){if(C&&C.nodeType===8){if(C.data==="teleport start anchor")e.targetStart=C;else if(C.data==="teleport anchor"){e.targetAnchor=C,_._lpa=e.targetAnchor&&l(e.targetAnchor);break}}C=l(C)}e.targetAnchor||prepareAnchor(_,e,g,u),f(b&&l(b),e,_,t,r,s,a)}updateCssVars(e,v)}else v&&e.shapeFlag&16&&m(o,e,o,l(o));return e.anchor&&l(e.anchor)}const Teleport=TeleportImpl;function updateCssVars(o,e){const t=o.ctx;if(t&&t.ut){let r,s;for(e?(r=o.el,s=o.anchor):(r=o.targetStart,s=o.targetAnchor);r&&r!==s;)r.nodeType===1&&r.setAttribute("data-v-owner",t.uid),r=r.nextSibling;t.ut()}}function prepareAnchor(o,e,t,r){const s=e.targetStart=t(""),a=e.targetAnchor=t("");return s[TeleportEndKey]=a,o&&(r(s,o),r(a,o)),a}const leaveCbKey=Symbol("_leaveCb"),enterCbKey$1=Symbol("_enterCb");function useTransitionState(){const o={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return onMounted(()=>{o.isMounted=!0}),onBeforeUnmount(()=>{o.isUnmounting=!0}),o}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=o=>{const e=o.subTree;return e.component?recursiveGetSubtree(e.component):e},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(o,{slots:e}){const t=getCurrentInstance$1(),r=useTransitionState();return()=>{const s=e.default&&getTransitionRawChildren(e.default(),!0);if(!s||!s.length)return;const a=findNonCommentChild(s),l=toRaw(o),{mode:c}=l;if(r.isLeaving)return emptyPlaceholder(a);const d=getInnerChild$1(a);if(!d)return emptyPlaceholder(a);let u=resolveTransitionHooks(d,l,r,t,f=>u=f);d.type!==Comment&&setTransitionHooks(d,u);let g=t.subTree&&getInnerChild$1(t.subTree);if(g&&g.type!==Comment&&!isSameVNodeType(g,d)&&recursiveGetSubtree(t).type!==Comment){let f=resolveTransitionHooks(g,l,r,t);if(setTransitionHooks(g,f),c==="out-in"&&d.type!==Comment)return r.isLeaving=!0,f.afterLeave=()=>{r.isLeaving=!1,t.job.flags&8||t.update(),delete f.afterLeave,g=void 0},emptyPlaceholder(a);c==="in-out"&&d.type!==Comment?f.delayLeave=(m,_,v)=>{const b=getLeavingNodesForType(r,g);b[String(g.key)]=g,m[leaveCbKey]=()=>{_(),m[leaveCbKey]=void 0,delete u.delayedLeave,g=void 0},u.delayedLeave=()=>{v(),delete u.delayedLeave,g=void 0}}:g=void 0}else g&&(g=void 0);return a}}};function findNonCommentChild(o){let e=o[0];if(o.length>1){for(const t of o)if(t.type!==Comment){e=t;break}}return e}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(o,e){const{leavingVNodes:t}=o;let r=t.get(e.type);return r||(r=Object.create(null),t.set(e.type,r)),r}function resolveTransitionHooks(o,e,t,r,s){const{appear:a,mode:l,persisted:c=!1,onBeforeEnter:d,onEnter:u,onAfterEnter:g,onEnterCancelled:f,onBeforeLeave:m,onLeave:_,onAfterLeave:v,onLeaveCancelled:b,onBeforeAppear:C,onAppear:y,onAfterAppear:S,onAppearCancelled:w}=e,E=String(o.key),x=getLeavingNodesForType(t,o),L=(I,T)=>{I&&callWithAsyncErrorHandling(I,r,9,T)},k=(I,T)=>{const M=T[1];L(I,T),isArray$3(I)?I.every(R=>R.length<=1)&&M():I.length<=1&&M()},D={mode:l,persisted:c,beforeEnter(I){let T=d;if(!t.isMounted)if(a)T=C||d;else return;I[leaveCbKey]&&I[leaveCbKey](!0);const M=x[E];M&&isSameVNodeType(o,M)&&M.el[leaveCbKey]&&M.el[leaveCbKey](),L(T,[I])},enter(I){let T=u,M=g,R=f;if(!t.isMounted)if(a)T=y||u,M=S||g,R=w||f;else return;let N=!1;const A=I[enterCbKey$1]=O=>{N||(N=!0,O?L(R,[I]):L(M,[I]),D.delayedLeave&&D.delayedLeave(),I[enterCbKey$1]=void 0)};T?k(T,[I,A]):A()},leave(I,T){const M=String(o.key);if(I[enterCbKey$1]&&I[enterCbKey$1](!0),t.isUnmounting)return T();L(m,[I]);let R=!1;const N=I[leaveCbKey]=A=>{R||(R=!0,T(),A?L(b,[I]):L(v,[I]),I[leaveCbKey]=void 0,x[M]===o&&delete x[M])};x[M]=o,_?k(_,[I,N]):N()},clone(I){const T=resolveTransitionHooks(I,e,t,r,s);return s&&s(T),T}};return D}function emptyPlaceholder(o){if(isKeepAlive(o))return o=cloneVNode(o),o.children=null,o}function getInnerChild$1(o){if(!isKeepAlive(o))return isTeleport(o.type)&&o.children?findNonCommentChild(o.children):o;if(o.component)return o.component.subTree;const{shapeFlag:e,children:t}=o;if(t){if(e&16)return t[0];if(e&32&&isFunction$4(t.default))return t.default()}}function setTransitionHooks(o,e){o.shapeFlag&6&&o.component?(o.transition=e,setTransitionHooks(o.component.subTree,e)):o.shapeFlag&128?(o.ssContent.transition=e.clone(o.ssContent),o.ssFallback.transition=e.clone(o.ssFallback)):o.transition=e}function getTransitionRawChildren(o,e=!1,t){let r=[],s=0;for(let a=0;a<o.length;a++){let l=o[a];const c=t==null?l.key:String(t)+String(l.key!=null?l.key:a);l.type===Fragment?(l.patchFlag&128&&s++,r=r.concat(getTransitionRawChildren(l.children,e,c))):(e||l.type!==Comment)&&r.push(c!=null?cloneVNode(l,{key:c}):l)}if(s>1)for(let a=0;a<r.length;a++)r[a].patchFlag=-2;return r}function defineComponent(o,e){return isFunction$4(o)?extend$1({name:o.name},e,{setup:o}):o}function markAsyncBoundary(o){o.ids=[o.ids[0]+o.ids[2]+++"-",0,0]}function useTemplateRef(o){const e=getCurrentInstance$1(),t=shallowRef(null);if(e){const s=e.refs===EMPTY_OBJ?e.refs={}:e.refs;Object.defineProperty(s,o,{enumerable:!0,get:()=>t.value,set:a=>t.value=a})}return t}const pendingSetRefMap=new WeakMap;function setRef(o,e,t,r,s=!1){if(isArray$3(o)){o.forEach((v,b)=>setRef(v,e&&(isArray$3(e)?e[b]:e),t,r,s));return}if(isAsyncWrapper(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&setRef(o,e,t,r.component.subTree);return}const a=r.shapeFlag&4?getComponentPublicInstance(r.component):r.el,l=s?null:a,{i:c,r:d}=o,u=e&&e.r,g=c.refs===EMPTY_OBJ?c.refs={}:c.refs,f=c.setupState,m=toRaw(f),_=f===EMPTY_OBJ?NO:v=>hasOwn(m,v);if(u!=null&&u!==d){if(invalidatePendingSetRef(e),isString$3(u))g[u]=null,_(u)&&(f[u]=null);else if(isRef(u)){u.value=null;const v=e;v.k&&(g[v.k]=null)}}if(isFunction$4(d))callWithErrorHandling(d,c,12,[l,g]);else{const v=isString$3(d),b=isRef(d);if(v||b){const C=()=>{if(o.f){const y=v?_(d)?f[d]:g[d]:d.value;if(s)isArray$3(y)&&remove(y,a);else if(isArray$3(y))y.includes(a)||y.push(a);else if(v)g[d]=[a],_(d)&&(f[d]=g[d]);else{const S=[a];d.value=S,o.k&&(g[o.k]=S)}}else v?(g[d]=l,_(d)&&(f[d]=l)):b&&(d.value=l,o.k&&(g[o.k]=l))};if(l){const y=()=>{C(),pendingSetRefMap.delete(o)};y.id=-1,pendingSetRefMap.set(o,y),queuePostRenderEffect(y,t)}else invalidatePendingSetRef(o),C()}}}function invalidatePendingSetRef(o){const e=pendingSetRefMap.get(o);e&&(e.flags|=8,pendingSetRefMap.delete(o))}getGlobalThis().requestIdleCallback;getGlobalThis().cancelIdleCallback;const isAsyncWrapper=o=>!!o.type.__asyncLoader,isKeepAlive=o=>o.type.__isKeepAlive;function onActivated(o,e){registerKeepAliveHook(o,"a",e)}function onDeactivated(o,e){registerKeepAliveHook(o,"da",e)}function registerKeepAliveHook(o,e,t=currentInstance){const r=o.__wdc||(o.__wdc=()=>{let s=t;for(;s;){if(s.isDeactivated)return;s=s.parent}return o()});if(injectHook(e,r,t),t){let s=t.parent;for(;s&&s.parent;)isKeepAlive(s.parent.vnode)&&injectToKeepAliveRoot(r,e,t,s),s=s.parent}}function injectToKeepAliveRoot(o,e,t,r){const s=injectHook(e,o,r,!0);onUnmounted(()=>{remove(r[e],s)},t)}function injectHook(o,e,t=currentInstance,r=!1){if(t){const s=t[o]||(t[o]=[]),a=e.__weh||(e.__weh=(...l)=>{pauseTracking();const c=setCurrentInstance$1(t),d=callWithAsyncErrorHandling(e,t,o,l);return c(),resetTracking(),d});return r?s.unshift(a):s.push(a),a}}const createHook=o=>(e,t=currentInstance)=>{(!isInSSRComponentSetup||o==="sp")&&injectHook(o,(...r)=>e(...r),t)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(o,e=currentInstance){injectHook("ec",o,e)}const COMPONENTS="components",DIRECTIVES="directives";function resolveComponent(o,e){return resolveAsset(COMPONENTS,o,!0,e)||o}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveDynamicComponent(o){return isString$3(o)?resolveAsset(COMPONENTS,o,!1)||o:o||NULL_DYNAMIC_COMPONENT}function resolveDirective(o){return resolveAsset(DIRECTIVES,o)}function resolveAsset(o,e,t=!0,r=!1){const s=currentRenderingInstance||currentInstance;if(s){const a=s.type;if(o===COMPONENTS){const c=getComponentName(a,!1);if(c&&(c===e||c===camelize$1(e)||c===capitalize$1(camelize$1(e))))return a}const l=resolve$2(s[o]||a[o],e)||resolve$2(s.appContext[o],e);return!l&&r?a:l}}function resolve$2(o,e){return o&&(o[e]||o[camelize$1(e)]||o[capitalize$1(camelize$1(e))])}function renderList(o,e,t,r){let s;const a=t,l=isArray$3(o);if(l||isString$3(o)){const c=l&&isReactive(o);let d=!1,u=!1;c&&(d=!isShallow(o),u=isReadonly(o),o=shallowReadArray(o)),s=new Array(o.length);for(let g=0,f=o.length;g<f;g++)s[g]=e(d?u?toReadonly(toReactive(o[g])):toReactive(o[g]):o[g],g,void 0,a)}else if(typeof o=="number"){s=new Array(o);for(let c=0;c<o;c++)s[c]=e(c+1,c,void 0,a)}else if(isObject$6(o))if(o[Symbol.iterator])s=Array.from(o,(c,d)=>e(c,d,void 0,a));else{const c=Object.keys(o);s=new Array(c.length);for(let d=0,u=c.length;d<u;d++){const g=c[d];s[d]=e(o[g],g,d,a)}}else s=[];return s}function createSlots(o,e){for(let t=0;t<e.length;t++){const r=e[t];if(isArray$3(r))for(let s=0;s<r.length;s++)o[r[s].name]=r[s].fn;else r&&(o[r.name]=r.key?(...s)=>{const a=r.fn(...s);return a&&(a.key=r.key),a}:r.fn)}return o}function renderSlot(o,e,t={},r,s){if(currentRenderingInstance.ce||currentRenderingInstance.parent&&isAsyncWrapper(currentRenderingInstance.parent)&&currentRenderingInstance.parent.ce){const u=Object.keys(t).length>0;return e!=="default"&&(t.name=e),openBlock(),createBlock(Fragment,null,[createVNode("slot",t,r&&r())],u?-2:64)}let a=o[e];a&&a._c&&(a._d=!1),openBlock();const l=a&&ensureValidVNode(a(t)),c=t.key||l&&l.key,d=createBlock(Fragment,{key:(c&&!isSymbol$1(c)?c:"_".concat(e))+(!l&&r?"_fb":"")},l||(r?r():[]),l&&o._===1?64:-2);return d.scopeId&&(d.slotScopeIds=[d.scopeId+"-s"]),a&&a._c&&(a._d=!0),d}function ensureValidVNode(o){return o.some(e=>isVNode(e)?!(e.type===Comment||e.type===Fragment&&!ensureValidVNode(e.children)):!0)?o:null}function toHandlers(o,e){const t={};for(const r in o)t[toHandlerKey(r)]=o[r];return t}const getPublicInstance=o=>o?isStatefulComponent(o)?getComponentPublicInstance(o):getPublicInstance(o.parent):null,publicPropertiesMap=extend$1(Object.create(null),{$:o=>o,$el:o=>o.vnode.el,$data:o=>o.data,$props:o=>o.props,$attrs:o=>o.attrs,$slots:o=>o.slots,$refs:o=>o.refs,$parent:o=>getPublicInstance(o.parent),$root:o=>getPublicInstance(o.root),$host:o=>o.ce,$emit:o=>o.emit,$options:o=>resolveMergedOptions(o),$forceUpdate:o=>o.f||(o.f=()=>{queueJob(o.update)}),$nextTick:o=>o.n||(o.n=nextTick.bind(o.proxy)),$watch:o=>instanceWatch.bind(o)}),hasSetupBinding=(o,e)=>o!==EMPTY_OBJ&&!o.__isScriptSetup&&hasOwn(o,e),PublicInstanceProxyHandlers={get({_:o},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:r,data:s,props:a,accessCache:l,type:c,appContext:d}=o;let u;if(e[0]!=="$"){const _=l[e];if(_!==void 0)switch(_){case 1:return r[e];case 2:return s[e];case 4:return t[e];case 3:return a[e]}else{if(hasSetupBinding(r,e))return l[e]=1,r[e];if(s!==EMPTY_OBJ&&hasOwn(s,e))return l[e]=2,s[e];if((u=o.propsOptions[0])&&hasOwn(u,e))return l[e]=3,a[e];if(t!==EMPTY_OBJ&&hasOwn(t,e))return l[e]=4,t[e];shouldCacheAccess&&(l[e]=0)}}const g=publicPropertiesMap[e];let f,m;if(g)return e==="$attrs"&&track(o.attrs,"get",""),g(o);if((f=c.__cssModules)&&(f=f[e]))return f;if(t!==EMPTY_OBJ&&hasOwn(t,e))return l[e]=4,t[e];if(m=d.config.globalProperties,hasOwn(m,e))return m[e]},set({_:o},e,t){const{data:r,setupState:s,ctx:a}=o;return hasSetupBinding(s,e)?(s[e]=t,!0):r!==EMPTY_OBJ&&hasOwn(r,e)?(r[e]=t,!0):hasOwn(o.props,e)||e[0]==="$"&&e.slice(1)in o?!1:(a[e]=t,!0)},has({_:{data:o,setupState:e,accessCache:t,ctx:r,appContext:s,propsOptions:a,type:l}},c){let d,u;return!!(t[c]||o!==EMPTY_OBJ&&c[0]!=="$"&&hasOwn(o,c)||hasSetupBinding(e,c)||(d=a[0])&&hasOwn(d,c)||hasOwn(r,c)||hasOwn(publicPropertiesMap,c)||hasOwn(s.config.globalProperties,c)||(u=l.__cssModules)&&u[c])},defineProperty(o,e,t){return t.get!=null?o._.accessCache[e]=0:hasOwn(t,"value")&&this.set(o,e,t.value,null),Reflect.defineProperty(o,e,t)}};function useSlots(){return getContext().slots}function useAttrs(){return getContext().attrs}function getContext(o){const e=getCurrentInstance$1();return e.setupContext||(e.setupContext=createSetupContext(e))}function normalizePropsOrEmits(o){return isArray$3(o)?o.reduce((e,t)=>(e[t]=null,e),{}):o}function mergeDefaults(o,e){const t=normalizePropsOrEmits(o);for(const r in e){if(r.startsWith("__skip"))continue;let s=t[r];s?isArray$3(s)||isFunction$4(s)?s=t[r]={type:s,default:e[r]}:s.default=e[r]:s===null&&(s=t[r]={default:e[r]}),s&&e["__skip_".concat(r)]&&(s.skipFactory=!0)}return t}function mergeModels(o,e){return!o||!e?o||e:isArray$3(o)&&isArray$3(e)?o.concat(e):extend$1({},normalizePropsOrEmits(o),normalizePropsOrEmits(e))}let shouldCacheAccess=!0;function applyOptions(o){const e=resolveMergedOptions(o),t=o.proxy,r=o.ctx;shouldCacheAccess=!1,e.beforeCreate&&callHook$1(e.beforeCreate,o,"bc");const{data:s,computed:a,methods:l,watch:c,provide:d,inject:u,created:g,beforeMount:f,mounted:m,beforeUpdate:_,updated:v,activated:b,deactivated:C,beforeDestroy:y,beforeUnmount:S,destroyed:w,unmounted:E,render:x,renderTracked:L,renderTriggered:k,errorCaptured:D,serverPrefetch:I,expose:T,inheritAttrs:M,components:R,directives:N,filters:A}=e;if(u&&resolveInjections(u,r,null),l)for(const F in l){const B=l[F];isFunction$4(B)&&(r[F]=B.bind(t))}if(s){const F=s.call(t,t);isObject$6(F)&&(o.data=reactive$1(F))}if(shouldCacheAccess=!0,a)for(const F in a){const B=a[F],H=isFunction$4(B)?B.bind(t,t):isFunction$4(B.get)?B.get.bind(t,t):NOOP,V=!isFunction$4(B)&&isFunction$4(B.set)?B.set.bind(t):NOOP,U=computed$1({get:H,set:V});Object.defineProperty(r,F,{enumerable:!0,configurable:!0,get:()=>U.value,set:j=>U.value=j})}if(c)for(const F in c)createWatcher(c[F],r,t,F);if(d){const F=isFunction$4(d)?d.call(t):d;Reflect.ownKeys(F).forEach(B=>{provide(B,F[B])})}g&&callHook$1(g,o,"c");function P(F,B){isArray$3(B)?B.forEach(H=>F(H.bind(t))):B&&F(B.bind(t))}if(P(onBeforeMount,f),P(onMounted,m),P(onBeforeUpdate,_),P(onUpdated,v),P(onActivated,b),P(onDeactivated,C),P(onErrorCaptured,D),P(onRenderTracked,L),P(onRenderTriggered,k),P(onBeforeUnmount,S),P(onUnmounted,E),P(onServerPrefetch,I),isArray$3(T))if(T.length){const F=o.exposed||(o.exposed={});T.forEach(B=>{Object.defineProperty(F,B,{get:()=>t[B],set:H=>t[B]=H,enumerable:!0})})}else o.exposed||(o.exposed={});x&&o.render===NOOP&&(o.render=x),M!=null&&(o.inheritAttrs=M),R&&(o.components=R),N&&(o.directives=N),I&&markAsyncBoundary(o)}function resolveInjections(o,e,t=NOOP){isArray$3(o)&&(o=normalizeInject(o));for(const r in o){const s=o[r];let a;isObject$6(s)?"default"in s?a=inject(s.from||r,s.default,!0):a=inject(s.from||r):a=inject(s),isRef(a)?Object.defineProperty(e,r,{enumerable:!0,configurable:!0,get:()=>a.value,set:l=>a.value=l}):e[r]=a}}function callHook$1(o,e,t){callWithAsyncErrorHandling(isArray$3(o)?o.map(r=>r.bind(e.proxy)):o.bind(e.proxy),e,t)}function createWatcher(o,e,t,r){let s=r.includes(".")?createPathGetter(t,r):()=>t[r];if(isString$3(o)){const a=e[o];isFunction$4(a)&&watch(s,a)}else if(isFunction$4(o))watch(s,o.bind(t));else if(isObject$6(o))if(isArray$3(o))o.forEach(a=>createWatcher(a,e,t,r));else{const a=isFunction$4(o.handler)?o.handler.bind(t):e[o.handler];isFunction$4(a)&&watch(s,a,o)}}function resolveMergedOptions(o){const e=o.type,{mixins:t,extends:r}=e,{mixins:s,optionsCache:a,config:{optionMergeStrategies:l}}=o.appContext,c=a.get(e);let d;return c?d=c:!s.length&&!t&&!r?d=e:(d={},s.length&&s.forEach(u=>mergeOptions$1(d,u,l,!0)),mergeOptions$1(d,e,l)),isObject$6(e)&&a.set(e,d),d}function mergeOptions$1(o,e,t,r=!1){const{mixins:s,extends:a}=e;a&&mergeOptions$1(o,a,t,!0),s&&s.forEach(l=>mergeOptions$1(o,l,t,!0));for(const l in e)if(!(r&&l==="expose")){const c=internalOptionMergeStrats[l]||t&&t[l];o[l]=c?c(o[l],e[l]):e[l]}return o}const internalOptionMergeStrats={data:mergeDataFn,props:mergeEmitsOrPropsOptions,emits:mergeEmitsOrPropsOptions,methods:mergeObjectOptions,computed:mergeObjectOptions,beforeCreate:mergeAsArray,created:mergeAsArray,beforeMount:mergeAsArray,mounted:mergeAsArray,beforeUpdate:mergeAsArray,updated:mergeAsArray,beforeDestroy:mergeAsArray,beforeUnmount:mergeAsArray,destroyed:mergeAsArray,unmounted:mergeAsArray,activated:mergeAsArray,deactivated:mergeAsArray,errorCaptured:mergeAsArray,serverPrefetch:mergeAsArray,components:mergeObjectOptions,directives:mergeObjectOptions,watch:mergeWatchOptions,provide:mergeDataFn,inject:mergeInject};function mergeDataFn(o,e){return e?o?function(){return extend$1(isFunction$4(o)?o.call(this,this):o,isFunction$4(e)?e.call(this,this):e)}:e:o}function mergeInject(o,e){return mergeObjectOptions(normalizeInject(o),normalizeInject(e))}function normalizeInject(o){if(isArray$3(o)){const e={};for(let t=0;t<o.length;t++)e[o[t]]=o[t];return e}return o}function mergeAsArray(o,e){return o?[...new Set([].concat(o,e))]:e}function mergeObjectOptions(o,e){return o?extend$1(Object.create(null),o,e):e}function mergeEmitsOrPropsOptions(o,e){return o?isArray$3(o)&&isArray$3(e)?[...new Set([...o,...e])]:extend$1(Object.create(null),normalizePropsOrEmits(o),normalizePropsOrEmits(e!=null?e:{})):e}function mergeWatchOptions(o,e){if(!o)return e;if(!e)return o;const t=extend$1(Object.create(null),o);for(const r in e)t[r]=mergeAsArray(o[r],e[r]);return t}function createAppContext(){return{app:null,config:{isNativeTag:NO,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let uid$1=0;function createAppAPI(o,e){return function(r,s=null){isFunction$4(r)||(r=extend$1({},r)),s!=null&&!isObject$6(s)&&(s=null);const a=createAppContext(),l=new WeakSet,c=[];let d=!1;const u=a.app={_uid:uid$1++,_component:r,_props:s,_container:null,_context:a,_instance:null,version:version$1,get config(){return a.config},set config(g){},use(g,...f){return l.has(g)||(g&&isFunction$4(g.install)?(l.add(g),g.install(u,...f)):isFunction$4(g)&&(l.add(g),g(u,...f))),u},mixin(g){return a.mixins.includes(g)||a.mixins.push(g),u},component(g,f){return f?(a.components[g]=f,u):a.components[g]},directive(g,f){return f?(a.directives[g]=f,u):a.directives[g]},mount(g,f,m){if(!d){const _=u._ceVNode||createVNode(r,s);return _.appContext=a,m===!0?m="svg":m===!1&&(m=void 0),o(_,g,m),d=!0,u._container=g,g.__vue_app__=u,getComponentPublicInstance(_.component)}},onUnmount(g){c.push(g)},unmount(){d&&(callWithAsyncErrorHandling(c,u._instance,16),o(null,u._container),delete u._container.__vue_app__)},provide(g,f){return a.provides[g]=f,u},runWithContext(g){const f=currentApp;currentApp=u;try{return g()}finally{currentApp=f}}};return u}}let currentApp=null;function provide(o,e){if(currentInstance){let t=currentInstance.provides;const r=currentInstance.parent&&currentInstance.parent.provides;r===t&&(t=currentInstance.provides=Object.create(r)),t[o]=e}}function inject(o,e,t=!1){const r=getCurrentInstance$1();if(r||currentApp){let s=currentApp?currentApp._context.provides:r?r.parent==null||r.ce?r.vnode.appContext&&r.vnode.appContext.provides:r.parent.provides:void 0;if(s&&o in s)return s[o];if(arguments.length>1)return t&&isFunction$4(e)?e.call(r&&r.proxy):e}}const internalObjectProto={},createInternalObject=()=>Object.create(internalObjectProto),isInternalObject=o=>Object.getPrototypeOf(o)===internalObjectProto;function initProps(o,e,t,r=!1){const s={},a=createInternalObject();o.propsDefaults=Object.create(null),setFullProps(o,e,s,a);for(const l in o.propsOptions[0])l in s||(s[l]=void 0);t?o.props=r?s:shallowReactive(s):o.type.props?o.props=s:o.props=a,o.attrs=a}function updateProps(o,e,t,r){const{props:s,attrs:a,vnode:{patchFlag:l}}=o,c=toRaw(s),[d]=o.propsOptions;let u=!1;if((r||l>0)&&!(l&16)){if(l&8){const g=o.vnode.dynamicProps;for(let f=0;f<g.length;f++){let m=g[f];if(isEmitListener(o.emitsOptions,m))continue;const _=e[m];if(d)if(hasOwn(a,m))_!==a[m]&&(a[m]=_,u=!0);else{const v=camelize$1(m);s[v]=resolvePropValue(d,c,v,_,o,!1)}else _!==a[m]&&(a[m]=_,u=!0)}}}else{setFullProps(o,e,s,a)&&(u=!0);let g;for(const f in c)(!e||!hasOwn(e,f)&&((g=hyphenate(f))===f||!hasOwn(e,g)))&&(d?t&&(t[f]!==void 0||t[g]!==void 0)&&(s[f]=resolvePropValue(d,c,f,void 0,o,!0)):delete s[f]);if(a!==c)for(const f in a)(!e||!hasOwn(e,f))&&(delete a[f],u=!0)}u&&trigger(o.attrs,"set","")}function setFullProps(o,e,t,r){const[s,a]=o.propsOptions;let l=!1,c;if(e)for(let d in e){if(isReservedProp(d))continue;const u=e[d];let g;s&&hasOwn(s,g=camelize$1(d))?!a||!a.includes(g)?t[g]=u:(c||(c={}))[g]=u:isEmitListener(o.emitsOptions,d)||(!(d in r)||u!==r[d])&&(r[d]=u,l=!0)}if(a){const d=toRaw(t),u=c||EMPTY_OBJ;for(let g=0;g<a.length;g++){const f=a[g];t[f]=resolvePropValue(s,d,f,u[f],o,!hasOwn(u,f))}}return l}function resolvePropValue(o,e,t,r,s,a){const l=o[t];if(l!=null){const c=hasOwn(l,"default");if(c&&r===void 0){const d=l.default;if(l.type!==Function&&!l.skipFactory&&isFunction$4(d)){const{propsDefaults:u}=s;if(t in u)r=u[t];else{const g=setCurrentInstance$1(s);r=u[t]=d.call(null,e),g()}}else r=d;s.ce&&s.ce._setProp(t,r)}l[0]&&(a&&!c?r=!1:l[1]&&(r===""||r===hyphenate(t))&&(r=!0))}return r}const mixinPropsCache=new WeakMap;function normalizePropsOptions(o,e,t=!1){const r=t?mixinPropsCache:e.propsCache,s=r.get(o);if(s)return s;const a=o.props,l={},c=[];let d=!1;if(!isFunction$4(o)){const g=f=>{d=!0;const[m,_]=normalizePropsOptions(f,e,!0);extend$1(l,m),_&&c.push(..._)};!t&&e.mixins.length&&e.mixins.forEach(g),o.extends&&g(o.extends),o.mixins&&o.mixins.forEach(g)}if(!a&&!d)return isObject$6(o)&&r.set(o,EMPTY_ARR),EMPTY_ARR;if(isArray$3(a))for(let g=0;g<a.length;g++){const f=camelize$1(a[g]);validatePropName(f)&&(l[f]=EMPTY_OBJ)}else if(a)for(const g in a){const f=camelize$1(g);if(validatePropName(f)){const m=a[g],_=l[f]=isArray$3(m)||isFunction$4(m)?{type:m}:extend$1({},m),v=_.type;let b=!1,C=!0;if(isArray$3(v))for(let y=0;y<v.length;++y){const S=v[y],w=isFunction$4(S)&&S.name;if(w==="Boolean"){b=!0;break}else w==="String"&&(C=!1)}else b=isFunction$4(v)&&v.name==="Boolean";_[0]=b,_[1]=C,(b||hasOwn(_,"default"))&&c.push(f)}}const u=[l,c];return isObject$6(o)&&r.set(o,u),u}function validatePropName(o){return o[0]!=="$"&&!isReservedProp(o)}const isInternalKey=o=>o==="_"||o==="_ctx"||o==="$stable",normalizeSlotValue=o=>isArray$3(o)?o.map(normalizeVNode):[normalizeVNode(o)],normalizeSlot$1=(o,e,t)=>{if(e._n)return e;const r=withCtx((...s)=>normalizeSlotValue(e(...s)),t);return r._c=!1,r},normalizeObjectSlots=(o,e,t)=>{const r=o._ctx;for(const s in o){if(isInternalKey(s))continue;const a=o[s];if(isFunction$4(a))e[s]=normalizeSlot$1(s,a,r);else if(a!=null){const l=normalizeSlotValue(a);e[s]=()=>l}}},normalizeVNodeSlots=(o,e)=>{const t=normalizeSlotValue(e);o.slots.default=()=>t},assignSlots=(o,e,t)=>{for(const r in e)(t||!isInternalKey(r))&&(o[r]=e[r])},initSlots=(o,e,t)=>{const r=o.slots=createInternalObject();if(o.vnode.shapeFlag&32){const s=e._;s?(assignSlots(r,e,t),t&&def$1(r,"_",s,!0)):normalizeObjectSlots(e,r)}else e&&normalizeVNodeSlots(o,e)},updateSlots=(o,e,t)=>{const{vnode:r,slots:s}=o;let a=!0,l=EMPTY_OBJ;if(r.shapeFlag&32){const c=e._;c?t&&c===1?a=!1:assignSlots(s,e,t):(a=!e.$stable,normalizeObjectSlots(e,s)),l=e}else e&&(normalizeVNodeSlots(o,e),l={default:1});if(a)for(const c in s)!isInternalKey(c)&&l[c]==null&&delete s[c]},queuePostRenderEffect=queueEffectWithSuspense;function createRenderer(o){return baseCreateRenderer(o)}function baseCreateRenderer(o,e){const t=getGlobalThis();t.__VUE__=!0;const{insert:r,remove:s,patchProp:a,createElement:l,createText:c,createComment:d,setText:u,setElementText:g,parentNode:f,nextSibling:m,setScopeId:_=NOOP,insertStaticContent:v}=o,b=(W,G,Y,ie=null,ne=null,oe=null,ue=void 0,ae=null,le=!!G.dynamicChildren)=>{if(W===G)return;W&&!isSameVNodeType(W,G)&&(ie=q(W),j(W,ne,oe,!0),W=null),G.patchFlag===-2&&(le=!1,G.dynamicChildren=null);const{type:ce,ref:ve,shapeFlag:he}=G;switch(ce){case Text$1:C(W,G,Y,ie);break;case Comment:y(W,G,Y,ie);break;case Static:W==null&&S(G,Y,ie,ue);break;case Fragment:R(W,G,Y,ie,ne,oe,ue,ae,le);break;default:he&1?x(W,G,Y,ie,ne,oe,ue,ae,le):he&6?N(W,G,Y,ie,ne,oe,ue,ae,le):(he&64||he&128)&&ce.process(W,G,Y,ie,ne,oe,ue,ae,le,de)}ve!=null&&ne?setRef(ve,W&&W.ref,oe,G||W,!G):ve==null&&W&&W.ref!=null&&setRef(W.ref,null,oe,W,!0)},C=(W,G,Y,ie)=>{if(W==null)r(G.el=c(G.children),Y,ie);else{const ne=G.el=W.el;G.children!==W.children&&u(ne,G.children)}},y=(W,G,Y,ie)=>{W==null?r(G.el=d(G.children||""),Y,ie):G.el=W.el},S=(W,G,Y,ie)=>{[W.el,W.anchor]=v(W.children,G,Y,ie,W.el,W.anchor)},w=({el:W,anchor:G},Y,ie)=>{let ne;for(;W&&W!==G;)ne=m(W),r(W,Y,ie),W=ne;r(G,Y,ie)},E=({el:W,anchor:G})=>{let Y;for(;W&&W!==G;)Y=m(W),s(W),W=Y;s(G)},x=(W,G,Y,ie,ne,oe,ue,ae,le)=>{if(G.type==="svg"?ue="svg":G.type==="math"&&(ue="mathml"),W==null)L(G,Y,ie,ne,oe,ue,ae,le);else{const ce=W.el&&W.el._isVueCE?W.el:null;try{ce&&ce._beginPatch(),I(W,G,ne,oe,ue,ae,le)}finally{ce&&ce._endPatch()}}},L=(W,G,Y,ie,ne,oe,ue,ae)=>{let le,ce;const{props:ve,shapeFlag:he,transition:fe,dirs:pe}=W;if(le=W.el=l(W.type,oe,ve&&ve.is,ve),he&8?g(le,W.children):he&16&&D(W.children,le,null,ie,ne,resolveChildrenNamespace(W,oe),ue,ae),pe&&invokeDirectiveHook(W,null,ie,"created"),k(le,W,W.scopeId,ue,ie),ve){for(const we in ve)we!=="value"&&!isReservedProp(we)&&a(le,we,null,ve[we],oe,ie);"value"in ve&&a(le,"value",null,ve.value,oe),(ce=ve.onVnodeBeforeMount)&&invokeVNodeHook(ce,ie,W)}pe&&invokeDirectiveHook(W,null,ie,"beforeMount");const ye=needTransition(ne,fe);ye&&fe.beforeEnter(le),r(le,G,Y),((ce=ve&&ve.onVnodeMounted)||ye||pe)&&queuePostRenderEffect(()=>{ce&&invokeVNodeHook(ce,ie,W),ye&&fe.enter(le),pe&&invokeDirectiveHook(W,null,ie,"mounted")},ne)},k=(W,G,Y,ie,ne)=>{if(Y&&_(W,Y),ie)for(let oe=0;oe<ie.length;oe++)_(W,ie[oe]);if(ne){let oe=ne.subTree;if(G===oe||isSuspense(oe.type)&&(oe.ssContent===G||oe.ssFallback===G)){const ue=ne.vnode;k(W,ue,ue.scopeId,ue.slotScopeIds,ne.parent)}}},D=(W,G,Y,ie,ne,oe,ue,ae,le=0)=>{for(let ce=le;ce<W.length;ce++){const ve=W[ce]=ae?cloneIfMounted(W[ce]):normalizeVNode(W[ce]);b(null,ve,G,Y,ie,ne,oe,ue,ae)}},I=(W,G,Y,ie,ne,oe,ue)=>{const ae=G.el=W.el;let{patchFlag:le,dynamicChildren:ce,dirs:ve}=G;le|=W.patchFlag&16;const he=W.props||EMPTY_OBJ,fe=G.props||EMPTY_OBJ;let pe;if(Y&&toggleRecurse(Y,!1),(pe=fe.onVnodeBeforeUpdate)&&invokeVNodeHook(pe,Y,G,W),ve&&invokeDirectiveHook(G,W,Y,"beforeUpdate"),Y&&toggleRecurse(Y,!0),(he.innerHTML&&fe.innerHTML==null||he.textContent&&fe.textContent==null)&&g(ae,""),ce?T(W.dynamicChildren,ce,ae,Y,ie,resolveChildrenNamespace(G,ne),oe):ue||B(W,G,ae,null,Y,ie,resolveChildrenNamespace(G,ne),oe,!1),le>0){if(le&16)M(ae,he,fe,Y,ne);else if(le&2&&he.class!==fe.class&&a(ae,"class",null,fe.class,ne),le&4&&a(ae,"style",he.style,fe.style,ne),le&8){const ye=G.dynamicProps;for(let we=0;we<ye.length;we++){const xe=ye[we],Te=he[xe],Ae=fe[xe];(Ae!==Te||xe==="value")&&a(ae,xe,Te,Ae,ne,Y)}}le&1&&W.children!==G.children&&g(ae,G.children)}else!ue&&ce==null&&M(ae,he,fe,Y,ne);((pe=fe.onVnodeUpdated)||ve)&&queuePostRenderEffect(()=>{pe&&invokeVNodeHook(pe,Y,G,W),ve&&invokeDirectiveHook(G,W,Y,"updated")},ie)},T=(W,G,Y,ie,ne,oe,ue)=>{for(let ae=0;ae<G.length;ae++){const le=W[ae],ce=G[ae],ve=le.el&&(le.type===Fragment||!isSameVNodeType(le,ce)||le.shapeFlag&198)?f(le.el):Y;b(le,ce,ve,null,ie,ne,oe,ue,!0)}},M=(W,G,Y,ie,ne)=>{if(G!==Y){if(G!==EMPTY_OBJ)for(const oe in G)!isReservedProp(oe)&&!(oe in Y)&&a(W,oe,G[oe],null,ne,ie);for(const oe in Y){if(isReservedProp(oe))continue;const ue=Y[oe],ae=G[oe];ue!==ae&&oe!=="value"&&a(W,oe,ae,ue,ne,ie)}"value"in Y&&a(W,"value",G.value,Y.value,ne)}},R=(W,G,Y,ie,ne,oe,ue,ae,le)=>{const ce=G.el=W?W.el:c(""),ve=G.anchor=W?W.anchor:c("");let{patchFlag:he,dynamicChildren:fe,slotScopeIds:pe}=G;pe&&(ae=ae?ae.concat(pe):pe),W==null?(r(ce,Y,ie),r(ve,Y,ie),D(G.children||[],Y,ve,ne,oe,ue,ae,le)):he>0&&he&64&&fe&&W.dynamicChildren?(T(W.dynamicChildren,fe,Y,ne,oe,ue,ae),(G.key!=null||ne&&G===ne.subTree)&&traverseStaticChildren(W,G,!0)):B(W,G,Y,ve,ne,oe,ue,ae,le)},N=(W,G,Y,ie,ne,oe,ue,ae,le)=>{G.slotScopeIds=ae,W==null?G.shapeFlag&512?ne.ctx.activate(G,Y,ie,ue,le):A(G,Y,ie,ne,oe,ue,le):O(W,G,le)},A=(W,G,Y,ie,ne,oe,ue)=>{const ae=W.component=createComponentInstance(W,ie,ne);if(isKeepAlive(W)&&(ae.ctx.renderer=de),setupComponent(ae,!1,ue),ae.asyncDep){if(ne&&ne.registerDep(ae,P,ue),!W.el){const le=ae.subTree=createVNode(Comment);y(null,le,G,Y),W.placeholder=le.el}}else P(ae,W,G,Y,ne,oe,ue)},O=(W,G,Y)=>{const ie=G.component=W.component;if(shouldUpdateComponent(W,G,Y))if(ie.asyncDep&&!ie.asyncResolved){F(ie,G,Y);return}else ie.next=G,ie.update();else G.el=W.el,ie.vnode=G},P=(W,G,Y,ie,ne,oe,ue)=>{const ae=()=>{if(W.isMounted){let{next:he,bu:fe,u:pe,parent:ye,vnode:we}=W;{const Me=locateNonHydratedAsyncRoot(W);if(Me){he&&(he.el=we.el,F(W,he,ue)),Me.asyncDep.then(()=>{W.isUnmounted||ae()});return}}let xe=he,Te;toggleRecurse(W,!1),he?(he.el=we.el,F(W,he,ue)):he=we,fe&&invokeArrayFns(fe),(Te=he.props&&he.props.onVnodeBeforeUpdate)&&invokeVNodeHook(Te,ye,he,we),toggleRecurse(W,!0);const Ae=renderComponentRoot(W),Oe=W.subTree;W.subTree=Ae,b(Oe,Ae,f(Oe.el),q(Oe),W,ne,oe),he.el=Ae.el,xe===null&&updateHOCHostEl(W,Ae.el),pe&&queuePostRenderEffect(pe,ne),(Te=he.props&&he.props.onVnodeUpdated)&&queuePostRenderEffect(()=>invokeVNodeHook(Te,ye,he,we),ne)}else{let he;const{el:fe,props:pe}=G,{bm:ye,m:we,parent:xe,root:Te,type:Ae}=W,Oe=isAsyncWrapper(G);toggleRecurse(W,!1),ye&&invokeArrayFns(ye),!Oe&&(he=pe&&pe.onVnodeBeforeMount)&&invokeVNodeHook(he,xe,G),toggleRecurse(W,!0);{Te.ce&&Te.ce._def.shadowRoot!==!1&&Te.ce._injectChildStyle(Ae);const Me=W.subTree=renderComponentRoot(W);b(null,Me,Y,ie,W,ne,oe),G.el=Me.el}if(we&&queuePostRenderEffect(we,ne),!Oe&&(he=pe&&pe.onVnodeMounted)){const Me=G;queuePostRenderEffect(()=>invokeVNodeHook(he,xe,Me),ne)}(G.shapeFlag&256||xe&&isAsyncWrapper(xe.vnode)&&xe.vnode.shapeFlag&256)&&W.a&&queuePostRenderEffect(W.a,ne),W.isMounted=!0,G=Y=ie=null}};W.scope.on();const le=W.effect=new ReactiveEffect(ae);W.scope.off();const ce=W.update=le.run.bind(le),ve=W.job=le.runIfDirty.bind(le);ve.i=W,ve.id=W.uid,le.scheduler=()=>queueJob(ve),toggleRecurse(W,!0),ce()},F=(W,G,Y)=>{G.component=W;const ie=W.vnode.props;W.vnode=G,W.next=null,updateProps(W,G.props,ie,Y),updateSlots(W,G.children,Y),pauseTracking(),flushPreFlushCbs(W),resetTracking()},B=(W,G,Y,ie,ne,oe,ue,ae,le=!1)=>{const ce=W&&W.children,ve=W?W.shapeFlag:0,he=G.children,{patchFlag:fe,shapeFlag:pe}=G;if(fe>0){if(fe&128){V(ce,he,Y,ie,ne,oe,ue,ae,le);return}else if(fe&256){H(ce,he,Y,ie,ne,oe,ue,ae,le);return}}pe&8?(ve&16&&J(ce,ne,oe),he!==ce&&g(Y,he)):ve&16?pe&16?V(ce,he,Y,ie,ne,oe,ue,ae,le):J(ce,ne,oe,!0):(ve&8&&g(Y,""),pe&16&&D(he,Y,ie,ne,oe,ue,ae,le))},H=(W,G,Y,ie,ne,oe,ue,ae,le)=>{W=W||EMPTY_ARR,G=G||EMPTY_ARR;const ce=W.length,ve=G.length,he=Math.min(ce,ve);let fe;for(fe=0;fe<he;fe++){const pe=G[fe]=le?cloneIfMounted(G[fe]):normalizeVNode(G[fe]);b(W[fe],pe,Y,null,ne,oe,ue,ae,le)}ce>ve?J(W,ne,oe,!0,!1,he):D(G,Y,ie,ne,oe,ue,ae,le,he)},V=(W,G,Y,ie,ne,oe,ue,ae,le)=>{let ce=0;const ve=G.length;let he=W.length-1,fe=ve-1;for(;ce<=he&&ce<=fe;){const pe=W[ce],ye=G[ce]=le?cloneIfMounted(G[ce]):normalizeVNode(G[ce]);if(isSameVNodeType(pe,ye))b(pe,ye,Y,null,ne,oe,ue,ae,le);else break;ce++}for(;ce<=he&&ce<=fe;){const pe=W[he],ye=G[fe]=le?cloneIfMounted(G[fe]):normalizeVNode(G[fe]);if(isSameVNodeType(pe,ye))b(pe,ye,Y,null,ne,oe,ue,ae,le);else break;he--,fe--}if(ce>he){if(ce<=fe){const pe=fe+1,ye=pe<ve?G[pe].el:ie;for(;ce<=fe;)b(null,G[ce]=le?cloneIfMounted(G[ce]):normalizeVNode(G[ce]),Y,ye,ne,oe,ue,ae,le),ce++}}else if(ce>fe)for(;ce<=he;)j(W[ce],ne,oe,!0),ce++;else{const pe=ce,ye=ce,we=new Map;for(ce=ye;ce<=fe;ce++){const Le=G[ce]=le?cloneIfMounted(G[ce]):normalizeVNode(G[ce]);Le.key!=null&&we.set(Le.key,ce)}let xe,Te=0;const Ae=fe-ye+1;let Oe=!1,Me=0;const Qe=new Array(Ae);for(ce=0;ce<Ae;ce++)Qe[ce]=0;for(ce=pe;ce<=he;ce++){const Le=W[ce];if(Te>=Ae){j(Le,ne,oe,!0);continue}let Pe;if(Le.key!=null)Pe=we.get(Le.key);else for(xe=ye;xe<=fe;xe++)if(Qe[xe-ye]===0&&isSameVNodeType(Le,G[xe])){Pe=xe;break}Pe===void 0?j(Le,ne,oe,!0):(Qe[Pe-ye]=ce+1,Pe>=Me?Me=Pe:Oe=!0,b(Le,G[Pe],Y,null,ne,oe,ue,ae,le),Te++)}const je=Oe?getSequence(Qe):EMPTY_ARR;for(xe=je.length-1,ce=Ae-1;ce>=0;ce--){const Le=ye+ce,Pe=G[Le],yt=G[Le+1],St=Le+1<ve?yt.el||yt.placeholder:ie;Qe[ce]===0?b(null,Pe,Y,St,ne,oe,ue,ae,le):Oe&&(xe<0||ce!==je[xe]?U(Pe,Y,St,2):xe--)}}},U=(W,G,Y,ie,ne=null)=>{const{el:oe,type:ue,transition:ae,children:le,shapeFlag:ce}=W;if(ce&6){U(W.component.subTree,G,Y,ie);return}if(ce&128){W.suspense.move(G,Y,ie);return}if(ce&64){ue.move(W,G,Y,de);return}if(ue===Fragment){r(oe,G,Y);for(let he=0;he<le.length;he++)U(le[he],G,Y,ie);r(W.anchor,G,Y);return}if(ue===Static){w(W,G,Y);return}if(ie!==2&&ce&1&&ae)if(ie===0)ae.beforeEnter(oe),r(oe,G,Y),queuePostRenderEffect(()=>ae.enter(oe),ne);else{const{leave:he,delayLeave:fe,afterLeave:pe}=ae,ye=()=>{W.ctx.isUnmounted?s(oe):r(oe,G,Y)},we=()=>{oe._isLeaving&&oe[leaveCbKey](!0),he(oe,()=>{ye(),pe&&pe()})};fe?fe(oe,ye,we):we()}else r(oe,G,Y)},j=(W,G,Y,ie=!1,ne=!1)=>{const{type:oe,props:ue,ref:ae,children:le,dynamicChildren:ce,shapeFlag:ve,patchFlag:he,dirs:fe,cacheIndex:pe}=W;if(he===-2&&(ne=!1),ae!=null&&(pauseTracking(),setRef(ae,null,Y,W,!0),resetTracking()),pe!=null&&(G.renderCache[pe]=void 0),ve&256){G.ctx.deactivate(W);return}const ye=ve&1&&fe,we=!isAsyncWrapper(W);let xe;if(we&&(xe=ue&&ue.onVnodeBeforeUnmount)&&invokeVNodeHook(xe,G,W),ve&6)Z(W.component,Y,ie);else{if(ve&128){W.suspense.unmount(Y,ie);return}ye&&invokeDirectiveHook(W,null,G,"beforeUnmount"),ve&64?W.type.remove(W,G,Y,de,ie):ce&&!ce.hasOnce&&(oe!==Fragment||he>0&&he&64)?J(ce,G,Y,!1,!0):(oe===Fragment&&he&384||!ne&&ve&16)&&J(le,G,Y),ie&&X(W)}(we&&(xe=ue&&ue.onVnodeUnmounted)||ye)&&queuePostRenderEffect(()=>{xe&&invokeVNodeHook(xe,G,W),ye&&invokeDirectiveHook(W,null,G,"unmounted")},Y)},X=W=>{const{type:G,el:Y,anchor:ie,transition:ne}=W;if(G===Fragment){ee(Y,ie);return}if(G===Static){E(W);return}const oe=()=>{s(Y),ne&&!ne.persisted&&ne.afterLeave&&ne.afterLeave()};if(W.shapeFlag&1&&ne&&!ne.persisted){const{leave:ue,delayLeave:ae}=ne,le=()=>ue(Y,oe);ae?ae(W.el,oe,le):le()}else oe()},ee=(W,G)=>{let Y;for(;W!==G;)Y=m(W),s(W),W=Y;s(G)},Z=(W,G,Y)=>{const{bum:ie,scope:ne,job:oe,subTree:ue,um:ae,m:le,a:ce}=W;invalidateMount(le),invalidateMount(ce),ie&&invokeArrayFns(ie),ne.stop(),oe&&(oe.flags|=8,j(ue,W,G,Y)),ae&&queuePostRenderEffect(ae,G),queuePostRenderEffect(()=>{W.isUnmounted=!0},G)},J=(W,G,Y,ie=!1,ne=!1,oe=0)=>{for(let ue=oe;ue<W.length;ue++)j(W[ue],G,Y,ie,ne)},q=W=>{if(W.shapeFlag&6)return q(W.component.subTree);if(W.shapeFlag&128)return W.suspense.next();const G=m(W.anchor||W.el),Y=G&&G[TeleportEndKey];return Y?m(Y):G};let Q=!1;const re=(W,G,Y)=>{W==null?G._vnode&&j(G._vnode,null,null,!0):b(G._vnode||null,W,G,null,null,null,Y),G._vnode=W,Q||(Q=!0,flushPreFlushCbs(),flushPostFlushCbs(),Q=!1)},de={p:b,um:j,m:U,r:X,mt:A,mc:D,pc:B,pbc:T,n:q,o};return{render:re,hydrate:void 0,createApp:createAppAPI(re)}}function resolveChildrenNamespace({type:o,props:e},t){return t==="svg"&&o==="foreignObject"||t==="mathml"&&o==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function toggleRecurse({effect:o,job:e},t){t?(o.flags|=32,e.flags|=4):(o.flags&=-33,e.flags&=-5)}function needTransition(o,e){return(!o||o&&!o.pendingBranch)&&e&&!e.persisted}function traverseStaticChildren(o,e,t=!1){const r=o.children,s=e.children;if(isArray$3(r)&&isArray$3(s))for(let a=0;a<r.length;a++){const l=r[a];let c=s[a];c.shapeFlag&1&&!c.dynamicChildren&&((c.patchFlag<=0||c.patchFlag===32)&&(c=s[a]=cloneIfMounted(s[a]),c.el=l.el),!t&&c.patchFlag!==-2&&traverseStaticChildren(l,c)),c.type===Text$1&&c.patchFlag!==-1&&(c.el=l.el),c.type===Comment&&!c.el&&(c.el=l.el)}}function getSequence(o){const e=o.slice(),t=[0];let r,s,a,l,c;const d=o.length;for(r=0;r<d;r++){const u=o[r];if(u!==0){if(s=t[t.length-1],o[s]<u){e[r]=s,t.push(r);continue}for(a=0,l=t.length-1;a<l;)c=a+l>>1,o[t[c]]<u?a=c+1:l=c;u<o[t[a]]&&(a>0&&(e[r]=t[a-1]),t[a]=r)}}for(a=t.length,l=t[a-1];a-- >0;)t[a]=l,l=e[l];return t}function locateNonHydratedAsyncRoot(o){const e=o.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:locateNonHydratedAsyncRoot(e)}function invalidateMount(o){if(o)for(let e=0;e<o.length;e++)o[e].flags|=8}const ssrContextKey=Symbol.for("v-scx"),useSSRContext=()=>inject(ssrContextKey);function watchEffect(o,e){return doWatch(o,null,e)}function watchSyncEffect(o,e){return doWatch(o,null,{flush:"sync"})}function watch(o,e,t){return doWatch(o,e,t)}function doWatch(o,e,t=EMPTY_OBJ){const{immediate:r,deep:s,flush:a,once:l}=t,c=extend$1({},t),d=e&&r||!e&&a!=="post";let u;if(isInSSRComponentSetup){if(a==="sync"){const _=useSSRContext();u=_.__watcherHandles||(_.__watcherHandles=[])}else if(!d){const _=()=>{};return _.stop=NOOP,_.resume=NOOP,_.pause=NOOP,_}}const g=currentInstance;c.call=(_,v,b)=>callWithAsyncErrorHandling(_,g,v,b);let f=!1;a==="post"?c.scheduler=_=>{queuePostRenderEffect(_,g&&g.suspense)}:a!=="sync"&&(f=!0,c.scheduler=(_,v)=>{v?_():queueJob(_)}),c.augmentJob=_=>{e&&(_.flags|=4),f&&(_.flags|=2,g&&(_.id=g.uid,_.i=g))};const m=watch$1(o,e,c);return isInSSRComponentSetup&&(u?u.push(m):d&&m()),m}function instanceWatch(o,e,t){const r=this.proxy,s=isString$3(o)?o.includes(".")?createPathGetter(r,o):()=>r[o]:o.bind(r,r);let a;isFunction$4(e)?a=e:(a=e.handler,t=e);const l=setCurrentInstance$1(this),c=doWatch(s,a.bind(r),t);return l(),c}function createPathGetter(o,e){const t=e.split(".");return()=>{let r=o;for(let s=0;s<t.length&&r;s++)r=r[t[s]];return r}}function useModel(o,e,t=EMPTY_OBJ){const r=getCurrentInstance$1(),s=camelize$1(e),a=hyphenate(e),l=getModelModifiers(o,s),c=customRef((d,u)=>{let g,f=EMPTY_OBJ,m;return watchSyncEffect(()=>{const _=o[s];hasChanged(g,_)&&(g=_,u())}),{get(){return d(),t.get?t.get(g):g},set(_){const v=t.set?t.set(_):_;if(!hasChanged(v,g)&&!(f!==EMPTY_OBJ&&hasChanged(_,f)))return;const b=r.vnode.props;b&&(e in b||s in b||a in b)&&("onUpdate:".concat(e)in b||"onUpdate:".concat(s)in b||"onUpdate:".concat(a)in b)||(g=_,u()),r.emit("update:".concat(e),v),hasChanged(_,v)&&hasChanged(_,f)&&!hasChanged(v,m)&&u(),f=_,m=v}}});return c[Symbol.iterator]=()=>{let d=0;return{next(){return d<2?{value:d++?l||EMPTY_OBJ:c,done:!1}:{done:!0}}}},c}const getModelModifiers=(o,e)=>e==="modelValue"||e==="model-value"?o.modelModifiers:o["".concat(e,"Modifiers")]||o["".concat(camelize$1(e),"Modifiers")]||o["".concat(hyphenate(e),"Modifiers")];function emit(o,e,...t){if(o.isUnmounted)return;const r=o.vnode.props||EMPTY_OBJ;let s=t;const a=e.startsWith("update:"),l=a&&getModelModifiers(r,e.slice(7));l&&(l.trim&&(s=t.map(g=>isString$3(g)?g.trim():g)),l.number&&(s=t.map(looseToNumber)));let c,d=r[c=toHandlerKey(e)]||r[c=toHandlerKey(camelize$1(e))];!d&&a&&(d=r[c=toHandlerKey(hyphenate(e))]),d&&callWithAsyncErrorHandling(d,o,6,s);const u=r[c+"Once"];if(u){if(!o.emitted)o.emitted={};else if(o.emitted[c])return;o.emitted[c]=!0,callWithAsyncErrorHandling(u,o,6,s)}}const mixinEmitsCache=new WeakMap;function normalizeEmitsOptions(o,e,t=!1){const r=t?mixinEmitsCache:e.emitsCache,s=r.get(o);if(s!==void 0)return s;const a=o.emits;let l={},c=!1;if(!isFunction$4(o)){const d=u=>{const g=normalizeEmitsOptions(u,e,!0);g&&(c=!0,extend$1(l,g))};!t&&e.mixins.length&&e.mixins.forEach(d),o.extends&&d(o.extends),o.mixins&&o.mixins.forEach(d)}return!a&&!c?(isObject$6(o)&&r.set(o,null),null):(isArray$3(a)?a.forEach(d=>l[d]=null):extend$1(l,a),isObject$6(o)&&r.set(o,l),l)}function isEmitListener(o,e){return!o||!isOn(e)?!1:(e=e.slice(2).replace(/Once$/,""),hasOwn(o,e[0].toLowerCase()+e.slice(1))||hasOwn(o,hyphenate(e))||hasOwn(o,e))}function markAttrsAccessed(){}function renderComponentRoot(o){const{type:e,vnode:t,proxy:r,withProxy:s,propsOptions:[a],slots:l,attrs:c,emit:d,render:u,renderCache:g,props:f,data:m,setupState:_,ctx:v,inheritAttrs:b}=o,C=setCurrentRenderingInstance(o);let y,S;try{if(t.shapeFlag&4){const E=s||r,x=E;y=normalizeVNode(u.call(x,E,g,f,_,m,v)),S=c}else{const E=e;y=normalizeVNode(E.length>1?E(f,{attrs:c,slots:l,emit:d}):E(f,null)),S=e.props?c:getFunctionalFallthrough(c)}}catch(E){blockStack.length=0,handleError(E,o,1),y=createVNode(Comment)}let w=y;if(S&&b!==!1){const E=Object.keys(S),{shapeFlag:x}=w;E.length&&x&7&&(a&&E.some(isModelListener)&&(S=filterModelListeners(S,a)),w=cloneVNode(w,S,!1,!0))}return t.dirs&&(w=cloneVNode(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(t.dirs):t.dirs),t.transition&&setTransitionHooks(w,t.transition),y=w,setCurrentRenderingInstance(C),y}const getFunctionalFallthrough=o=>{let e;for(const t in o)(t==="class"||t==="style"||isOn(t))&&((e||(e={}))[t]=o[t]);return e},filterModelListeners=(o,e)=>{const t={};for(const r in o)(!isModelListener(r)||!(r.slice(9)in e))&&(t[r]=o[r]);return t};function shouldUpdateComponent(o,e,t){const{props:r,children:s,component:a}=o,{props:l,children:c,patchFlag:d}=e,u=a.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&d>=0){if(d&1024)return!0;if(d&16)return r?hasPropsChanged(r,l,u):!!l;if(d&8){const g=e.dynamicProps;for(let f=0;f<g.length;f++){const m=g[f];if(l[m]!==r[m]&&!isEmitListener(u,m))return!0}}}else return(s||c)&&(!c||!c.$stable)?!0:r===l?!1:r?l?hasPropsChanged(r,l,u):!0:!!l;return!1}function hasPropsChanged(o,e,t){const r=Object.keys(e);if(r.length!==Object.keys(o).length)return!0;for(let s=0;s<r.length;s++){const a=r[s];if(e[a]!==o[a]&&!isEmitListener(t,a))return!0}return!1}function updateHOCHostEl({vnode:o,parent:e},t){for(;e;){const r=e.subTree;if(r.suspense&&r.suspense.activeBranch===o&&(r.el=o.el),r===o)(o=e.vnode).el=t,e=e.parent;else break}}const isSuspense=o=>o.__isSuspense;function queueEffectWithSuspense(o,e){e&&e.pendingBranch?isArray$3(o)?e.effects.push(...o):e.effects.push(o):queuePostFlushCb(o)}const Fragment=Symbol.for("v-fgt"),Text$1=Symbol.for("v-txt"),Comment=Symbol.for("v-cmt"),Static=Symbol.for("v-stc"),blockStack=[];let currentBlock=null;function openBlock(o=!1){blockStack.push(currentBlock=o?null:[])}function closeBlock(){blockStack.pop(),currentBlock=blockStack[blockStack.length-1]||null}let isBlockTreeEnabled=1;function setBlockTracking(o,e=!1){isBlockTreeEnabled+=o,o<0&&currentBlock&&e&&(currentBlock.hasOnce=!0)}function setupBlock(o){return o.dynamicChildren=isBlockTreeEnabled>0?currentBlock||EMPTY_ARR:null,closeBlock(),isBlockTreeEnabled>0&&currentBlock&&currentBlock.push(o),o}function createElementBlock(o,e,t,r,s,a){return setupBlock(createBaseVNode(o,e,t,r,s,a,!0))}function createBlock(o,e,t,r,s){return setupBlock(createVNode(o,e,t,r,s,!0))}function isVNode(o){return o?o.__v_isVNode===!0:!1}function isSameVNodeType(o,e){return o.type===e.type&&o.key===e.key}const normalizeKey=({key:o})=>o!=null?o:null,normalizeRef=({ref:o,ref_key:e,ref_for:t})=>(typeof o=="number"&&(o=""+o),o!=null?isString$3(o)||isRef(o)||isFunction$4(o)?{i:currentRenderingInstance,r:o,k:e,f:!!t}:o:null);function createBaseVNode(o,e=null,t=null,r=0,s=null,a=o===Fragment?0:1,l=!1,c=!1){const d={__v_isVNode:!0,__v_skip:!0,type:o,props:e,key:e&&normalizeKey(e),ref:e&&normalizeRef(e),scopeId:currentScopeId,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:currentRenderingInstance};return c?(normalizeChildren(d,t),a&128&&o.normalize(d)):t&&(d.shapeFlag|=isString$3(t)?8:16),isBlockTreeEnabled>0&&!l&&currentBlock&&(d.patchFlag>0||a&6)&&d.patchFlag!==32&&currentBlock.push(d),d}const createVNode=_createVNode;function _createVNode(o,e=null,t=null,r=0,s=null,a=!1){if((!o||o===NULL_DYNAMIC_COMPONENT)&&(o=Comment),isVNode(o)){const c=cloneVNode(o,e,!0);return t&&normalizeChildren(c,t),isBlockTreeEnabled>0&&!a&&currentBlock&&(c.shapeFlag&6?currentBlock[currentBlock.indexOf(o)]=c:currentBlock.push(c)),c.patchFlag=-2,c}if(isClassComponent(o)&&(o=o.__vccOpts),e){e=guardReactiveProps(e);let{class:c,style:d}=e;c&&!isString$3(c)&&(e.class=normalizeClass(c)),isObject$6(d)&&(isProxy(d)&&!isArray$3(d)&&(d=extend$1({},d)),e.style=normalizeStyle(d))}const l=isString$3(o)?1:isSuspense(o)?128:isTeleport(o)?64:isObject$6(o)?4:isFunction$4(o)?2:0;return createBaseVNode(o,e,t,r,s,l,a,!0)}function guardReactiveProps(o){return o?isProxy(o)||isInternalObject(o)?extend$1({},o):o:null}function cloneVNode(o,e,t=!1,r=!1){const{props:s,ref:a,patchFlag:l,children:c,transition:d}=o,u=e?mergeProps(s||{},e):s,g={__v_isVNode:!0,__v_skip:!0,type:o.type,props:u,key:u&&normalizeKey(u),ref:e&&e.ref?t&&a?isArray$3(a)?a.concat(normalizeRef(e)):[a,normalizeRef(e)]:normalizeRef(e):a,scopeId:o.scopeId,slotScopeIds:o.slotScopeIds,children:c,target:o.target,targetStart:o.targetStart,targetAnchor:o.targetAnchor,staticCount:o.staticCount,shapeFlag:o.shapeFlag,patchFlag:e&&o.type!==Fragment?l===-1?16:l|16:l,dynamicProps:o.dynamicProps,dynamicChildren:o.dynamicChildren,appContext:o.appContext,dirs:o.dirs,transition:d,component:o.component,suspense:o.suspense,ssContent:o.ssContent&&cloneVNode(o.ssContent),ssFallback:o.ssFallback&&cloneVNode(o.ssFallback),placeholder:o.placeholder,el:o.el,anchor:o.anchor,ctx:o.ctx,ce:o.ce};return d&&r&&setTransitionHooks(g,d.clone(g)),g}function createTextVNode(o=" ",e=0){return createVNode(Text$1,null,o,e)}function createStaticVNode(o,e){const t=createVNode(Static,null,o);return t.staticCount=e,t}function createCommentVNode(o="",e=!1){return e?(openBlock(),createBlock(Comment,null,o)):createVNode(Comment,null,o)}function normalizeVNode(o){return o==null||typeof o=="boolean"?createVNode(Comment):isArray$3(o)?createVNode(Fragment,null,o.slice()):isVNode(o)?cloneIfMounted(o):createVNode(Text$1,null,String(o))}function cloneIfMounted(o){return o.el===null&&o.patchFlag!==-1||o.memo?o:cloneVNode(o)}function normalizeChildren(o,e){let t=0;const{shapeFlag:r}=o;if(e==null)e=null;else if(isArray$3(e))t=16;else if(typeof e=="object")if(r&65){const s=e.default;s&&(s._c&&(s._d=!1),normalizeChildren(o,s()),s._c&&(s._d=!0));return}else{t=32;const s=e._;!s&&!isInternalObject(e)?e._ctx=currentRenderingInstance:s===3&&currentRenderingInstance&&(currentRenderingInstance.slots._===1?e._=1:(e._=2,o.patchFlag|=1024))}else isFunction$4(e)?(e={default:e,_ctx:currentRenderingInstance},t=32):(e=String(e),r&64?(t=16,e=[createTextVNode(e)]):t=8);o.children=e,o.shapeFlag|=t}function mergeProps(...o){const e={};for(let t=0;t<o.length;t++){const r=o[t];for(const s in r)if(s==="class")e.class!==r.class&&(e.class=normalizeClass([e.class,r.class]));else if(s==="style")e.style=normalizeStyle([e.style,r.style]);else if(isOn(s)){const a=e[s],l=r[s];l&&a!==l&&!(isArray$3(a)&&a.includes(l))&&(e[s]=a?[].concat(a,l):l)}else s!==""&&(e[s]=r[s])}return e}function invokeVNodeHook(o,e,t,r=null){callWithAsyncErrorHandling(o,e,7,[t,r])}const emptyAppContext=createAppContext();let uid=0;function createComponentInstance(o,e,t){const r=o.type,s=(e?e.appContext:o.appContext)||emptyAppContext,a={uid:uid++,vnode:o,type:r,parent:e,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new EffectScope(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(s.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:normalizePropsOptions(r,s),emitsOptions:normalizeEmitsOptions(r,s),emit:null,emitted:null,propsDefaults:EMPTY_OBJ,inheritAttrs:r.inheritAttrs,ctx:EMPTY_OBJ,data:EMPTY_OBJ,props:EMPTY_OBJ,attrs:EMPTY_OBJ,slots:EMPTY_OBJ,refs:EMPTY_OBJ,setupState:EMPTY_OBJ,setupContext:null,suspense:t,suspenseId:t?t.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return a.ctx={_:a},a.root=e?e.root:a,a.emit=emit.bind(null,a),o.ce&&o.ce(a),a}let currentInstance=null;const getCurrentInstance$1=()=>currentInstance||currentRenderingInstance;let internalSetCurrentInstance,setInSSRSetupState;{const o=getGlobalThis(),e=(t,r)=>{let s;return(s=o[t])||(s=o[t]=[]),s.push(r),a=>{s.length>1?s.forEach(l=>l(a)):s[0](a)}};internalSetCurrentInstance=e("__VUE_INSTANCE_SETTERS__",t=>currentInstance=t),setInSSRSetupState=e("__VUE_SSR_SETTERS__",t=>isInSSRComponentSetup=t)}const setCurrentInstance$1=o=>{const e=currentInstance;return internalSetCurrentInstance(o),o.scope.on(),()=>{o.scope.off(),internalSetCurrentInstance(e)}},unsetCurrentInstance=()=>{currentInstance&&currentInstance.scope.off(),internalSetCurrentInstance(null)};function isStatefulComponent(o){return o.vnode.shapeFlag&4}let isInSSRComponentSetup=!1;function setupComponent(o,e=!1,t=!1){e&&setInSSRSetupState(e);const{props:r,children:s}=o.vnode,a=isStatefulComponent(o);initProps(o,r,a,e),initSlots(o,s,t||e);const l=a?setupStatefulComponent(o,e):void 0;return e&&setInSSRSetupState(!1),l}function setupStatefulComponent(o,e){const t=o.type;o.accessCache=Object.create(null),o.proxy=new Proxy(o.ctx,PublicInstanceProxyHandlers);const{setup:r}=t;if(r){pauseTracking();const s=o.setupContext=r.length>1?createSetupContext(o):null,a=setCurrentInstance$1(o),l=callWithErrorHandling(r,o,0,[o.props,s]),c=isPromise(l);if(resetTracking(),a(),(c||o.sp)&&!isAsyncWrapper(o)&&markAsyncBoundary(o),c){if(l.then(unsetCurrentInstance,unsetCurrentInstance),e)return l.then(d=>{handleSetupResult(o,d)}).catch(d=>{handleError(d,o,0)});o.asyncDep=l}else handleSetupResult(o,l)}else finishComponentSetup(o)}function handleSetupResult(o,e,t){isFunction$4(e)?o.type.__ssrInlineRender?o.ssrRender=e:o.render=e:isObject$6(e)&&(o.setupState=proxyRefs(e)),finishComponentSetup(o)}function finishComponentSetup(o,e,t){const r=o.type;o.render||(o.render=r.render||NOOP);{const s=setCurrentInstance$1(o);pauseTracking();try{applyOptions(o)}finally{resetTracking(),s()}}}const attrsProxyHandlers={get(o,e){return track(o,"get",""),o[e]}};function createSetupContext(o){const e=t=>{o.exposed=t||{}};return{attrs:new Proxy(o.attrs,attrsProxyHandlers),slots:o.slots,emit:o.emit,expose:e}}function getComponentPublicInstance(o){return o.exposed?o.exposeProxy||(o.exposeProxy=new Proxy(proxyRefs(markRaw(o.exposed)),{get(e,t){if(t in e)return e[t];if(t in publicPropertiesMap)return publicPropertiesMap[t](o)},has(e,t){return t in e||t in publicPropertiesMap}})):o.proxy}const classifyRE=/(?:^|[-_])\w/g,classify=o=>o.replace(classifyRE,e=>e.toUpperCase()).replace(/[-_]/g,"");function getComponentName(o,e=!0){return isFunction$4(o)?o.displayName||o.name:o.name||e&&o.__name}function formatComponentName(o,e,t=!1){let r=getComponentName(e);if(!r&&e.__file){const s=e.__file.match(/([^/\\]+)\.\w+$/);s&&(r=s[1])}if(!r&&o&&o.parent){const s=a=>{for(const l in a)if(a[l]===e)return l};r=s(o.components||o.parent.type.components)||s(o.appContext.components)}return r?classify(r):t?"App":"Anonymous"}function isClassComponent(o){return isFunction$4(o)&&"__vccOpts"in o}const computed$1=(o,e)=>computed$2(o,e,isInSSRComponentSetup);function h$1(o,e,t){try{setBlockTracking(-1);const r=arguments.length;return r===2?isObject$6(e)&&!isArray$3(e)?isVNode(e)?createVNode(o,null,[e]):createVNode(o,e):createVNode(o,null,e):(r>3?t=Array.prototype.slice.call(arguments,2):r===3&&isVNode(t)&&(t=[t]),createVNode(o,e,t))}finally{setBlockTracking(1)}}const version$1="3.5.24",warn=NOOP;let policy;const tt=typeof window<"u"&&window.trustedTypes;if(tt)try{policy=tt.createPolicy("vue",{createHTML:o=>o})}catch(o){}const unsafeToTrustedHTML=policy?o=>policy.createHTML(o):o=>o,svgNS="http://www.w3.org/2000/svg",mathmlNS="http://www.w3.org/1998/Math/MathML",doc$1=typeof document<"u"?document:null,templateContainer=doc$1&&doc$1.createElement("template"),nodeOps={insert:(o,e,t)=>{e.insertBefore(o,t||null)},remove:o=>{const e=o.parentNode;e&&e.removeChild(o)},createElement:(o,e,t,r)=>{const s=e==="svg"?doc$1.createElementNS(svgNS,o):e==="mathml"?doc$1.createElementNS(mathmlNS,o):t?doc$1.createElement(o,{is:t}):doc$1.createElement(o);return o==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:o=>doc$1.createTextNode(o),createComment:o=>doc$1.createComment(o),setText:(o,e)=>{o.nodeValue=e},setElementText:(o,e)=>{o.textContent=e},parentNode:o=>o.parentNode,nextSibling:o=>o.nextSibling,querySelector:o=>doc$1.querySelector(o),setScopeId(o,e){o.setAttribute(e,"")},insertStaticContent(o,e,t,r,s,a){const l=t?t.previousSibling:e.lastChild;if(s&&(s===a||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),t),!(s===a||!(s=s.nextSibling)););else{templateContainer.innerHTML=unsafeToTrustedHTML(r==="svg"?"<svg>".concat(o,"</svg>"):r==="mathml"?"<math>".concat(o,"</math>"):o);const c=templateContainer.content;if(r==="svg"||r==="mathml"){const d=c.firstChild;for(;d.firstChild;)c.appendChild(d.firstChild);c.removeChild(d)}e.insertBefore(c,t)}return[l?l.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},TRANSITION="transition",ANIMATION$1="animation",vtcKey=Symbol("_vtc"),DOMTransitionPropsValidators={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},TransitionPropsValidators=extend$1({},BaseTransitionPropsValidators,DOMTransitionPropsValidators),decorate$1=o=>(o.displayName="Transition",o.props=TransitionPropsValidators,o),Transition=decorate$1((o,{slots:e})=>h$1(BaseTransition,resolveTransitionProps(o),e)),callHook=(o,e=[])=>{isArray$3(o)?o.forEach(t=>t(...e)):o&&o(...e)},hasExplicitCallback=o=>o?isArray$3(o)?o.some(e=>e.length>1):o.length>1:!1;function resolveTransitionProps(o){const e={};for(const R in o)R in DOMTransitionPropsValidators||(e[R]=o[R]);if(o.css===!1)return e;const{name:t="v",type:r,duration:s,enterFromClass:a="".concat(t,"-enter-from"),enterActiveClass:l="".concat(t,"-enter-active"),enterToClass:c="".concat(t,"-enter-to"),appearFromClass:d=a,appearActiveClass:u=l,appearToClass:g=c,leaveFromClass:f="".concat(t,"-leave-from"),leaveActiveClass:m="".concat(t,"-leave-active"),leaveToClass:_="".concat(t,"-leave-to")}=o,v=normalizeDuration(s),b=v&&v[0],C=v&&v[1],{onBeforeEnter:y,onEnter:S,onEnterCancelled:w,onLeave:E,onLeaveCancelled:x,onBeforeAppear:L=y,onAppear:k=S,onAppearCancelled:D=w}=e,I=(R,N,A,O)=>{R._enterCancelled=O,removeTransitionClass(R,N?g:c),removeTransitionClass(R,N?u:l),A&&A()},T=(R,N)=>{R._isLeaving=!1,removeTransitionClass(R,f),removeTransitionClass(R,_),removeTransitionClass(R,m),N&&N()},M=R=>(N,A)=>{const O=R?k:S,P=()=>I(N,R,A);callHook(O,[N,P]),nextFrame(()=>{removeTransitionClass(N,R?d:a),addTransitionClass(N,R?g:c),hasExplicitCallback(O)||whenTransitionEnds(N,r,b,P)})};return extend$1(e,{onBeforeEnter(R){callHook(y,[R]),addTransitionClass(R,a),addTransitionClass(R,l)},onBeforeAppear(R){callHook(L,[R]),addTransitionClass(R,d),addTransitionClass(R,u)},onEnter:M(!1),onAppear:M(!0),onLeave(R,N){R._isLeaving=!0;const A=()=>T(R,N);addTransitionClass(R,f),R._enterCancelled?(addTransitionClass(R,m),forceReflow(R)):(forceReflow(R),addTransitionClass(R,m)),nextFrame(()=>{R._isLeaving&&(removeTransitionClass(R,f),addTransitionClass(R,_),hasExplicitCallback(E)||whenTransitionEnds(R,r,C,A))}),callHook(E,[R,A])},onEnterCancelled(R){I(R,!1,void 0,!0),callHook(w,[R])},onAppearCancelled(R){I(R,!0,void 0,!0),callHook(D,[R])},onLeaveCancelled(R){T(R),callHook(x,[R])}})}function normalizeDuration(o){if(o==null)return null;if(isObject$6(o))return[NumberOf(o.enter),NumberOf(o.leave)];{const e=NumberOf(o);return[e,e]}}function NumberOf(o){return toNumber$1(o)}function addTransitionClass(o,e){e.split(/\s+/).forEach(t=>t&&o.classList.add(t)),(o[vtcKey]||(o[vtcKey]=new Set)).add(e)}function removeTransitionClass(o,e){e.split(/\s+/).forEach(r=>r&&o.classList.remove(r));const t=o[vtcKey];t&&(t.delete(e),t.size||(o[vtcKey]=void 0))}function nextFrame(o){requestAnimationFrame(()=>{requestAnimationFrame(o)})}let endId=0;function whenTransitionEnds(o,e,t,r){const s=o._endId=++endId,a=()=>{s===o._endId&&r()};if(t!=null)return setTimeout(a,t);const{type:l,timeout:c,propCount:d}=getTransitionInfo(o,e);if(!l)return r();const u=l+"end";let g=0;const f=()=>{o.removeEventListener(u,m),a()},m=_=>{_.target===o&&++g>=d&&f()};setTimeout(()=>{g<d&&f()},c+1),o.addEventListener(u,m)}function getTransitionInfo(o,e){const t=window.getComputedStyle(o),r=v=>(t[v]||"").split(", "),s=r("".concat(TRANSITION,"Delay")),a=r("".concat(TRANSITION,"Duration")),l=getTimeout(s,a),c=r("".concat(ANIMATION$1,"Delay")),d=r("".concat(ANIMATION$1,"Duration")),u=getTimeout(c,d);let g=null,f=0,m=0;e===TRANSITION?l>0&&(g=TRANSITION,f=l,m=a.length):e===ANIMATION$1?u>0&&(g=ANIMATION$1,f=u,m=d.length):(f=Math.max(l,u),g=f>0?l>u?TRANSITION:ANIMATION$1:null,m=g?g===TRANSITION?a.length:d.length:0);const _=g===TRANSITION&&/\b(?:transform|all)(?:,|$)/.test(r("".concat(TRANSITION,"Property")).toString());return{type:g,timeout:f,propCount:m,hasTransform:_}}function getTimeout(o,e){for(;o.length<e.length;)o=o.concat(o);return Math.max(...e.map((t,r)=>toMs(t)+toMs(o[r])))}function toMs(o){return o==="auto"?0:Number(o.slice(0,-1).replace(",","."))*1e3}function forceReflow(o){return(o?o.ownerDocument:document).body.offsetHeight}function patchClass(o,e,t){const r=o[vtcKey];r&&(e=(e?[e,...r]:[...r]).join(" ")),e==null?o.removeAttribute("class"):t?o.setAttribute("class",e):o.className=e}const vShowOriginalDisplay=Symbol("_vod"),vShowHidden=Symbol("_vsh"),vShow={name:"show",beforeMount(o,{value:e},{transition:t}){o[vShowOriginalDisplay]=o.style.display==="none"?"":o.style.display,t&&e?t.beforeEnter(o):setDisplay(o,e)},mounted(o,{value:e},{transition:t}){t&&e&&t.enter(o)},updated(o,{value:e,oldValue:t},{transition:r}){!e!=!t&&(r?e?(r.beforeEnter(o),setDisplay(o,!0),r.enter(o)):r.leave(o,()=>{setDisplay(o,!1)}):setDisplay(o,e))},beforeUnmount(o,{value:e}){setDisplay(o,e)}};function setDisplay(o,e){o.style.display=e?o[vShowOriginalDisplay]:"none",o[vShowHidden]=!e}const CSS_VAR_TEXT=Symbol(""),displayRE=/(?:^|;)\s*display\s*:/;function patchStyle(o,e,t){const r=o.style,s=isString$3(t);let a=!1;if(t&&!s){if(e)if(isString$3(e))for(const l of e.split(";")){const c=l.slice(0,l.indexOf(":")).trim();t[c]==null&&setStyle(r,c,"")}else for(const l in e)t[l]==null&&setStyle(r,l,"");for(const l in t)l==="display"&&(a=!0),setStyle(r,l,t[l])}else if(s){if(e!==t){const l=r[CSS_VAR_TEXT];l&&(t+=";"+l),r.cssText=t,a=displayRE.test(t)}}else e&&o.removeAttribute("style");vShowOriginalDisplay in o&&(o[vShowOriginalDisplay]=a?r.display:"",o[vShowHidden]&&(r.display="none"))}const importantRE=/\s*!important$/;function setStyle(o,e,t){if(isArray$3(t))t.forEach(r=>setStyle(o,e,r));else if(t==null&&(t=""),e.startsWith("--"))o.setProperty(e,t);else{const r=autoPrefix(o,e);importantRE.test(t)?o.setProperty(hyphenate(r),t.replace(importantRE,""),"important"):o[r]=t}}const prefixes$1=["Webkit","Moz","ms"],prefixCache={};function autoPrefix(o,e){const t=prefixCache[e];if(t)return t;let r=camelize$1(e);if(r!=="filter"&&r in o)return prefixCache[e]=r;r=capitalize$1(r);for(let s=0;s<prefixes$1.length;s++){const a=prefixes$1[s]+r;if(a in o)return prefixCache[e]=a}return e}const xlinkNS="http://www.w3.org/1999/xlink";function patchAttr(o,e,t,r,s,a=isSpecialBooleanAttr(e)){r&&e.startsWith("xlink:")?t==null?o.removeAttributeNS(xlinkNS,e.slice(6,e.length)):o.setAttributeNS(xlinkNS,e,t):t==null||a&&!includeBooleanAttr(t)?o.removeAttribute(e):o.setAttribute(e,a?"":isSymbol$1(t)?String(t):t)}function patchDOMProp(o,e,t,r,s){if(e==="innerHTML"||e==="textContent"){t!=null&&(o[e]=e==="innerHTML"?unsafeToTrustedHTML(t):t);return}const a=o.tagName;if(e==="value"&&a!=="PROGRESS"&&!a.includes("-")){const c=a==="OPTION"?o.getAttribute("value")||"":o.value,d=t==null?o.type==="checkbox"?"on":"":String(t);(c!==d||!("_value"in o))&&(o.value=d),t==null&&o.removeAttribute(e),o._value=t;return}let l=!1;if(t===""||t==null){const c=typeof o[e];c==="boolean"?t=includeBooleanAttr(t):t==null&&c==="string"?(t="",l=!0):c==="number"&&(t=0,l=!0)}try{o[e]=t}catch(c){}l&&o.removeAttribute(s||e)}function addEventListener(o,e,t,r){o.addEventListener(e,t,r)}function removeEventListener(o,e,t,r){o.removeEventListener(e,t,r)}const veiKey=Symbol("_vei");function patchEvent(o,e,t,r,s=null){const a=o[veiKey]||(o[veiKey]={}),l=a[e];if(r&&l)l.value=r;else{const[c,d]=parseName(e);if(r){const u=a[e]=createInvoker(r,s);addEventListener(o,c,u,d)}else l&&(removeEventListener(o,c,l,d),a[e]=void 0)}}const optionsModifierRE=/(?:Once|Passive|Capture)$/;function parseName(o){let e;if(optionsModifierRE.test(o)){e={};let r;for(;r=o.match(optionsModifierRE);)o=o.slice(0,o.length-r[0].length),e[r[0].toLowerCase()]=!0}return[o[2]===":"?o.slice(3):hyphenate(o.slice(2)),e]}let cachedNow=0;const p=Promise.resolve(),getNow=()=>cachedNow||(p.then(()=>cachedNow=0),cachedNow=Date.now());function createInvoker(o,e){const t=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=t.attached)return;callWithAsyncErrorHandling(patchStopImmediatePropagation(r,t.value),e,5,[r])};return t.value=o,t.attached=getNow(),t}function patchStopImmediatePropagation(o,e){if(isArray$3(e)){const t=o.stopImmediatePropagation;return o.stopImmediatePropagation=()=>{t.call(o),o._stopped=!0},e.map(r=>s=>!s._stopped&&r&&r(s))}else return e}const isNativeOn=o=>o.charCodeAt(0)===111&&o.charCodeAt(1)===110&&o.charCodeAt(2)>96&&o.charCodeAt(2)<123,patchProp=(o,e,t,r,s,a)=>{const l=s==="svg";e==="class"?patchClass(o,r,l):e==="style"?patchStyle(o,t,r):isOn(e)?isModelListener(e)||patchEvent(o,e,t,r,a):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):shouldSetAsProp(o,e,r,l))?(patchDOMProp(o,e,r),!o.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&patchAttr(o,e,r,l,a,e!=="value")):o._isVueCE&&(/[A-Z]/.test(e)||!isString$3(r))?patchDOMProp(o,camelize$1(e),r,a,e):(e==="true-value"?o._trueValue=r:e==="false-value"&&(o._falseValue=r),patchAttr(o,e,r,l))};function shouldSetAsProp(o,e,t,r){if(r)return!!(e==="innerHTML"||e==="textContent"||e in o&&isNativeOn(e)&&isFunction$4(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&o.tagName==="IFRAME"||e==="form"||e==="list"&&o.tagName==="INPUT"||e==="type"&&o.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=o.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return isNativeOn(e)&&isString$3(t)?!1:e in o}const positionMap=new WeakMap,newPositionMap=new WeakMap,moveCbKey=Symbol("_moveCb"),enterCbKey=Symbol("_enterCb"),decorate=o=>(delete o.props.mode,o),TransitionGroupImpl=decorate({name:"TransitionGroup",props:extend$1({},TransitionPropsValidators,{tag:String,moveClass:String}),setup(o,{slots:e}){const t=getCurrentInstance$1(),r=useTransitionState();let s,a;return onUpdated(()=>{if(!s.length)return;const l=o.moveClass||"".concat(o.name||"v","-move");if(!hasCSSTransform(s[0].el,t.vnode.el,l)){s=[];return}s.forEach(callPendingCbs),s.forEach(recordPosition);const c=s.filter(applyTranslation);forceReflow(t.vnode.el),c.forEach(d=>{const u=d.el,g=u.style;addTransitionClass(u,l),g.transform=g.webkitTransform=g.transitionDuration="";const f=u[moveCbKey]=m=>{m&&m.target!==u||(!m||m.propertyName.endsWith("transform"))&&(u.removeEventListener("transitionend",f),u[moveCbKey]=null,removeTransitionClass(u,l))};u.addEventListener("transitionend",f)}),s=[]}),()=>{const l=toRaw(o),c=resolveTransitionProps(l);let d=l.tag||Fragment;if(s=[],a)for(let u=0;u<a.length;u++){const g=a[u];g.el&&g.el instanceof Element&&(s.push(g),setTransitionHooks(g,resolveTransitionHooks(g,c,r,t)),positionMap.set(g,{left:g.el.offsetLeft,top:g.el.offsetTop}))}a=e.default?getTransitionRawChildren(e.default()):[];for(let u=0;u<a.length;u++){const g=a[u];g.key!=null&&setTransitionHooks(g,resolveTransitionHooks(g,c,r,t))}return createVNode(d,null,a)}}}),TransitionGroup=TransitionGroupImpl;function callPendingCbs(o){const e=o.el;e[moveCbKey]&&e[moveCbKey](),e[enterCbKey]&&e[enterCbKey]()}function recordPosition(o){newPositionMap.set(o,{left:o.el.offsetLeft,top:o.el.offsetTop})}function applyTranslation(o){const e=positionMap.get(o),t=newPositionMap.get(o),r=e.left-t.left,s=e.top-t.top;if(r||s){const a=o.el.style;return a.transform=a.webkitTransform="translate(".concat(r,"px,").concat(s,"px)"),a.transitionDuration="0s",o}}function hasCSSTransform(o,e,t){const r=o.cloneNode(),s=o[vtcKey];s&&s.forEach(c=>{c.split(/\s+/).forEach(d=>d&&r.classList.remove(d))}),t.split(/\s+/).forEach(c=>c&&r.classList.add(c)),r.style.display="none";const a=e.nodeType===1?e:e.parentNode;a.appendChild(r);const{hasTransform:l}=getTransitionInfo(r);return a.removeChild(r),l}const getModelAssigner=o=>{const e=o.props["onUpdate:modelValue"]||!1;return isArray$3(e)?t=>invokeArrayFns(e,t):e};function onCompositionStart(o){o.target.composing=!0}function onCompositionEnd(o){const e=o.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const assignKey=Symbol("_assign");function castValue(o,e,t){return e&&(o=o.trim()),t&&(o=looseToNumber(o)),o}const vModelText={created(o,{modifiers:{lazy:e,trim:t,number:r}},s){o[assignKey]=getModelAssigner(s);const a=r||s.props&&s.props.type==="number";addEventListener(o,e?"change":"input",l=>{l.target.composing||o[assignKey](castValue(o.value,t,a))}),(t||a)&&addEventListener(o,"change",()=>{o.value=castValue(o.value,t,a)}),e||(addEventListener(o,"compositionstart",onCompositionStart),addEventListener(o,"compositionend",onCompositionEnd),addEventListener(o,"change",onCompositionEnd))},mounted(o,{value:e}){o.value=e==null?"":e},beforeUpdate(o,{value:e,oldValue:t,modifiers:{lazy:r,trim:s,number:a}},l){if(o[assignKey]=getModelAssigner(l),o.composing)return;const c=(a||o.type==="number")&&!/^0\d/.test(o.value)?looseToNumber(o.value):o.value,d=e==null?"":e;c!==d&&(document.activeElement===o&&o.type!=="range"&&(r&&e===t||s&&o.value.trim()===d)||(o.value=d))}},vModelCheckbox={deep:!0,created(o,e,t){o[assignKey]=getModelAssigner(t),addEventListener(o,"change",()=>{const r=o._modelValue,s=getValue$2(o),a=o.checked,l=o[assignKey];if(isArray$3(r)){const c=looseIndexOf(r,s),d=c!==-1;if(a&&!d)l(r.concat(s));else if(!a&&d){const u=[...r];u.splice(c,1),l(u)}}else if(isSet$1(r)){const c=new Set(r);a?c.add(s):c.delete(s),l(c)}else l(getCheckboxValue(o,a))})},mounted:setChecked,beforeUpdate(o,e,t){o[assignKey]=getModelAssigner(t),setChecked(o,e,t)}};function setChecked(o,{value:e,oldValue:t},r){o._modelValue=e;let s;if(isArray$3(e))s=looseIndexOf(e,r.props.value)>-1;else if(isSet$1(e))s=e.has(r.props.value);else{if(e===t)return;s=looseEqual(e,getCheckboxValue(o,!0))}o.checked!==s&&(o.checked=s)}const vModelRadio={created(o,{value:e},t){o.checked=looseEqual(e,t.props.value),o[assignKey]=getModelAssigner(t),addEventListener(o,"change",()=>{o[assignKey](getValue$2(o))})},beforeUpdate(o,{value:e,oldValue:t},r){o[assignKey]=getModelAssigner(r),e!==t&&(o.checked=looseEqual(e,r.props.value))}};function getValue$2(o){return"_value"in o?o._value:o.value}function getCheckboxValue(o,e){const t=e?"_trueValue":"_falseValue";return t in o?o[t]:e}const systemModifiers=["ctrl","shift","alt","meta"],modifierGuards={stop:o=>o.stopPropagation(),prevent:o=>o.preventDefault(),self:o=>o.target!==o.currentTarget,ctrl:o=>!o.ctrlKey,shift:o=>!o.shiftKey,alt:o=>!o.altKey,meta:o=>!o.metaKey,left:o=>"button"in o&&o.button!==0,middle:o=>"button"in o&&o.button!==1,right:o=>"button"in o&&o.button!==2,exact:(o,e)=>systemModifiers.some(t=>o["".concat(t,"Key")]&&!e.includes(t))},withModifiers=(o,e)=>{const t=o._withMods||(o._withMods={}),r=e.join(".");return t[r]||(t[r]=((s,...a)=>{for(let l=0;l<e.length;l++){const c=modifierGuards[e[l]];if(c&&c(s,e))return}return o(s,...a)}))},keyNames={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},withKeys=(o,e)=>{const t=o._withKeys||(o._withKeys={}),r=e.join(".");return t[r]||(t[r]=(s=>{if(!("key"in s))return;const a=hyphenate(s.key);if(e.some(l=>l===a||keyNames[l]===a))return o(s)}))},rendererOptions=extend$1({patchProp},nodeOps);let renderer;function ensureRenderer(){return renderer||(renderer=createRenderer(rendererOptions))}const render=((...o)=>{ensureRenderer().render(...o)}),createApp=((...o)=>{const e=ensureRenderer().createApp(...o),{mount:t}=e;return e.mount=r=>{const s=normalizeContainer(r);if(!s)return;const a=e._component;!isFunction$4(a)&&!a.render&&!a.template&&(a.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const l=t(s,!1,resolveRootNamespace(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),l},e});function resolveRootNamespace(o){if(o instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&o instanceof MathMLElement)return"mathml"}function normalizeContainer(o){return isString$3(o)?document.querySelector(o):o}function WorkerWrapper$5(o){return new Worker("/tmagic-editor/playground/assets/editor.worker-BWr3CRpM.js",{name:o==null?void 0:o.name})}function WorkerWrapper$4(o){return new Worker("/tmagic-editor/playground/assets/css.worker-CeqXzFOx.js",{name:o==null?void 0:o.name})}function WorkerWrapper$3(o){return new Worker("/tmagic-editor/playground/assets/html.worker-ZRWmz9vv.js",{name:o==null?void 0:o.name})}function WorkerWrapper$2(o){return new Worker("/tmagic-editor/playground/assets/json.worker-CQBb3msm.js",{name:o==null?void 0:o.name})}function WorkerWrapper$1(o){return new Worker("/tmagic-editor/playground/assets/ts.worker-BzaIlkf9.js",{name:o==null?void 0:o.name})}var top="top",bottom="bottom",right="right",left="left",auto="auto",basePlacements=[top,bottom,right,left],start="start",end="end",clippingParents="clippingParents",viewport="viewport",popper="popper",reference="reference",variationPlacements=basePlacements.reduce(function(o,e){return o.concat([e+"-"+start,e+"-"+end])},[]),placements=[].concat(basePlacements,[auto]).reduce(function(o,e){return o.concat([e,e+"-"+start,e+"-"+end])},[]),beforeRead="beforeRead",read="read",afterRead="afterRead",beforeMain="beforeMain",main="main",afterMain="afterMain",beforeWrite="beforeWrite",write="write",afterWrite="afterWrite",modifierPhases=[beforeRead,read,afterRead,beforeMain,main,afterMain,beforeWrite,write,afterWrite];function getNodeName(o){return o?(o.nodeName||"").toLowerCase():null}function getWindow$2(o){if(o==null)return window;if(o.toString()!=="[object Window]"){var e=o.ownerDocument;return e&&e.defaultView||window}return o}function isElement(o){var e=getWindow$2(o).Element;return o instanceof e||o instanceof Element}function isHTMLElement$1(o){var e=getWindow$2(o).HTMLElement;return o instanceof e||o instanceof HTMLElement}function isShadowRoot$1(o){if(typeof ShadowRoot>"u")return!1;var e=getWindow$2(o).ShadowRoot;return o instanceof e||o instanceof ShadowRoot}function applyStyles(o){var e=o.state;Object.keys(e.elements).forEach(function(t){var r=e.styles[t]||{},s=e.attributes[t]||{},a=e.elements[t];!isHTMLElement$1(a)||!getNodeName(a)||(Object.assign(a.style,r),Object.keys(s).forEach(function(l){var c=s[l];c===!1?a.removeAttribute(l):a.setAttribute(l,c===!0?"":c)}))})}function effect$2(o){var e=o.state,t={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,t.popper),e.styles=t,e.elements.arrow&&Object.assign(e.elements.arrow.style,t.arrow),function(){Object.keys(e.elements).forEach(function(r){var s=e.elements[r],a=e.attributes[r]||{},l=Object.keys(e.styles.hasOwnProperty(r)?e.styles[r]:t[r]),c=l.reduce(function(d,u){return d[u]="",d},{});!isHTMLElement$1(s)||!getNodeName(s)||(Object.assign(s.style,c),Object.keys(a).forEach(function(d){s.removeAttribute(d)}))})}}const applyStyles$1={name:"applyStyles",enabled:!0,phase:"write",fn:applyStyles,effect:effect$2,requires:["computeStyles"]};function getBasePlacement(o){return o.split("-")[0]}var max=Math.max,min=Math.min,round=Math.round;function getUAString(){var o=navigator.userAgentData;return o!=null&&o.brands&&Array.isArray(o.brands)?o.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function isLayoutViewport(){return!/^((?!chrome|android).)*safari/i.test(getUAString())}function getBoundingClientRect(o,e,t){e===void 0&&(e=!1),t===void 0&&(t=!1);var r=o.getBoundingClientRect(),s=1,a=1;e&&isHTMLElement$1(o)&&(s=o.offsetWidth>0&&round(r.width)/o.offsetWidth||1,a=o.offsetHeight>0&&round(r.height)/o.offsetHeight||1);var l=isElement(o)?getWindow$2(o):window,c=l.visualViewport,d=!isLayoutViewport()&&t,u=(r.left+(d&&c?c.offsetLeft:0))/s,g=(r.top+(d&&c?c.offsetTop:0))/a,f=r.width/s,m=r.height/a;return{width:f,height:m,top:g,right:u+f,bottom:g+m,left:u,x:u,y:g}}function getLayoutRect(o){var e=getBoundingClientRect(o),t=o.offsetWidth,r=o.offsetHeight;return Math.abs(e.width-t)<=1&&(t=e.width),Math.abs(e.height-r)<=1&&(r=e.height),{x:o.offsetLeft,y:o.offsetTop,width:t,height:r}}function contains(o,e){var t=e.getRootNode&&e.getRootNode();if(o.contains(e))return!0;if(t&&isShadowRoot$1(t)){var r=e;do{if(r&&o.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function getComputedStyle$3(o){return getWindow$2(o).getComputedStyle(o)}function isTableElement(o){return["table","td","th"].indexOf(getNodeName(o))>=0}function getDocumentElement$1(o){return((isElement(o)?o.ownerDocument:o.document)||window.document).documentElement}function getParentNode(o){return getNodeName(o)==="html"?o:o.assignedSlot||o.parentNode||(isShadowRoot$1(o)?o.host:null)||getDocumentElement$1(o)}function getTrueOffsetParent(o){return!isHTMLElement$1(o)||getComputedStyle$3(o).position==="fixed"?null:o.offsetParent}function getContainingBlock(o){var e=/firefox/i.test(getUAString()),t=/Trident/i.test(getUAString());if(t&&isHTMLElement$1(o)){var r=getComputedStyle$3(o);if(r.position==="fixed")return null}var s=getParentNode(o);for(isShadowRoot$1(s)&&(s=s.host);isHTMLElement$1(s)&&["html","body"].indexOf(getNodeName(s))<0;){var a=getComputedStyle$3(s);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||e&&a.willChange==="filter"||e&&a.filter&&a.filter!=="none")return s;s=s.parentNode}return null}function getOffsetParent(o){for(var e=getWindow$2(o),t=getTrueOffsetParent(o);t&&isTableElement(t)&&getComputedStyle$3(t).position==="static";)t=getTrueOffsetParent(t);return t&&(getNodeName(t)==="html"||getNodeName(t)==="body"&&getComputedStyle$3(t).position==="static")?e:t||getContainingBlock(o)||e}function getMainAxisFromPlacement(o){return["top","bottom"].indexOf(o)>=0?"x":"y"}function within(o,e,t){return max(o,min(e,t))}function withinMaxClamp(o,e,t){var r=within(o,e,t);return r>t?t:r}function getFreshSideObject(){return{top:0,right:0,bottom:0,left:0}}function mergePaddingObject(o){return Object.assign({},getFreshSideObject(),o)}function expandToHashMap(o,e){return e.reduce(function(t,r){return t[r]=o,t},{})}var toPaddingObject=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,mergePaddingObject(typeof e!="number"?e:expandToHashMap(e,basePlacements))};function arrow(o){var e,t=o.state,r=o.name,s=o.options,a=t.elements.arrow,l=t.modifiersData.popperOffsets,c=getBasePlacement(t.placement),d=getMainAxisFromPlacement(c),u=[left,right].indexOf(c)>=0,g=u?"height":"width";if(!(!a||!l)){var f=toPaddingObject(s.padding,t),m=getLayoutRect(a),_=d==="y"?top:left,v=d==="y"?bottom:right,b=t.rects.reference[g]+t.rects.reference[d]-l[d]-t.rects.popper[g],C=l[d]-t.rects.reference[d],y=getOffsetParent(a),S=y?d==="y"?y.clientHeight||0:y.clientWidth||0:0,w=b/2-C/2,E=f[_],x=S-m[g]-f[v],L=S/2-m[g]/2+w,k=within(E,L,x),D=d;t.modifiersData[r]=(e={},e[D]=k,e.centerOffset=k-L,e)}}function effect$1(o){var e=o.state,t=o.options,r=t.element,s=r===void 0?"[data-popper-arrow]":r;s!=null&&(typeof s=="string"&&(s=e.elements.popper.querySelector(s),!s)||contains(e.elements.popper,s)&&(e.elements.arrow=s))}const arrow$1={name:"arrow",enabled:!0,phase:"main",fn:arrow,effect:effect$1,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function getVariation(o){return o.split("-")[1]}var unsetSides={top:"auto",right:"auto",bottom:"auto",left:"auto"};function roundOffsetsByDPR(o,e){var t=o.x,r=o.y,s=e.devicePixelRatio||1;return{x:round(t*s)/s||0,y:round(r*s)/s||0}}function mapToStyles(o){var e,t=o.popper,r=o.popperRect,s=o.placement,a=o.variation,l=o.offsets,c=o.position,d=o.gpuAcceleration,u=o.adaptive,g=o.roundOffsets,f=o.isFixed,m=l.x,_=m===void 0?0:m,v=l.y,b=v===void 0?0:v,C=typeof g=="function"?g({x:_,y:b}):{x:_,y:b};_=C.x,b=C.y;var y=l.hasOwnProperty("x"),S=l.hasOwnProperty("y"),w=left,E=top,x=window;if(u){var L=getOffsetParent(t),k="clientHeight",D="clientWidth";if(L===getWindow$2(t)&&(L=getDocumentElement$1(t),getComputedStyle$3(L).position!=="static"&&c==="absolute"&&(k="scrollHeight",D="scrollWidth")),L=L,s===top||(s===left||s===right)&&a===end){E=bottom;var I=f&&L===x&&x.visualViewport?x.visualViewport.height:L[k];b-=I-r.height,b*=d?1:-1}if(s===left||(s===top||s===bottom)&&a===end){w=right;var T=f&&L===x&&x.visualViewport?x.visualViewport.width:L[D];_-=T-r.width,_*=d?1:-1}}var M=Object.assign({position:c},u&&unsetSides),R=g===!0?roundOffsetsByDPR({x:_,y:b},getWindow$2(t)):{x:_,y:b};if(_=R.x,b=R.y,d){var N;return Object.assign({},M,(N={},N[E]=S?"0":"",N[w]=y?"0":"",N.transform=(x.devicePixelRatio||1)<=1?"translate("+_+"px, "+b+"px)":"translate3d("+_+"px, "+b+"px, 0)",N))}return Object.assign({},M,(e={},e[E]=S?b+"px":"",e[w]=y?_+"px":"",e.transform="",e))}function computeStyles(o){var e=o.state,t=o.options,r=t.gpuAcceleration,s=r===void 0?!0:r,a=t.adaptive,l=a===void 0?!0:a,c=t.roundOffsets,d=c===void 0?!0:c,u={placement:getBasePlacement(e.placement),variation:getVariation(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,mapToStyles(Object.assign({},u,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:l,roundOffsets:d})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,mapToStyles(Object.assign({},u,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:d})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const computeStyles$1={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:computeStyles,data:{}};var passive={passive:!0};function effect(o){var e=o.state,t=o.instance,r=o.options,s=r.scroll,a=s===void 0?!0:s,l=r.resize,c=l===void 0?!0:l,d=getWindow$2(e.elements.popper),u=[].concat(e.scrollParents.reference,e.scrollParents.popper);return a&&u.forEach(function(g){g.addEventListener("scroll",t.update,passive)}),c&&d.addEventListener("resize",t.update,passive),function(){a&&u.forEach(function(g){g.removeEventListener("scroll",t.update,passive)}),c&&d.removeEventListener("resize",t.update,passive)}}const eventListeners={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect,data:{}};var hash$3={left:"right",right:"left",bottom:"top",top:"bottom"};function getOppositePlacement(o){return o.replace(/left|right|bottom|top/g,function(e){return hash$3[e]})}var hash$2={start:"end",end:"start"};function getOppositeVariationPlacement(o){return o.replace(/start|end/g,function(e){return hash$2[e]})}function getWindowScroll(o){var e=getWindow$2(o),t=e.pageXOffset,r=e.pageYOffset;return{scrollLeft:t,scrollTop:r}}function getWindowScrollBarX(o){return getBoundingClientRect(getDocumentElement$1(o)).left+getWindowScroll(o).scrollLeft}function getViewportRect(o,e){var t=getWindow$2(o),r=getDocumentElement$1(o),s=t.visualViewport,a=r.clientWidth,l=r.clientHeight,c=0,d=0;if(s){a=s.width,l=s.height;var u=isLayoutViewport();(u||!u&&e==="fixed")&&(c=s.offsetLeft,d=s.offsetTop)}return{width:a,height:l,x:c+getWindowScrollBarX(o),y:d}}function getDocumentRect(o){var e,t=getDocumentElement$1(o),r=getWindowScroll(o),s=(e=o.ownerDocument)==null?void 0:e.body,a=max(t.scrollWidth,t.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),l=max(t.scrollHeight,t.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),c=-r.scrollLeft+getWindowScrollBarX(o),d=-r.scrollTop;return getComputedStyle$3(s||t).direction==="rtl"&&(c+=max(t.clientWidth,s?s.clientWidth:0)-a),{width:a,height:l,x:c,y:d}}function isScrollParent(o){var e=getComputedStyle$3(o),t=e.overflow,r=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(t+s+r)}function getScrollParent$1(o){return["html","body","#document"].indexOf(getNodeName(o))>=0?o.ownerDocument.body:isHTMLElement$1(o)&&isScrollParent(o)?o:getScrollParent$1(getParentNode(o))}function listScrollParents(o,e){var t;e===void 0&&(e=[]);var r=getScrollParent$1(o),s=r===((t=o.ownerDocument)==null?void 0:t.body),a=getWindow$2(r),l=s?[a].concat(a.visualViewport||[],isScrollParent(r)?r:[]):r,c=e.concat(l);return s?c:c.concat(listScrollParents(getParentNode(l)))}function rectToClientRect(o){return Object.assign({},o,{left:o.x,top:o.y,right:o.x+o.width,bottom:o.y+o.height})}function getInnerBoundingClientRect(o,e){var t=getBoundingClientRect(o,!1,e==="fixed");return t.top=t.top+o.clientTop,t.left=t.left+o.clientLeft,t.bottom=t.top+o.clientHeight,t.right=t.left+o.clientWidth,t.width=o.clientWidth,t.height=o.clientHeight,t.x=t.left,t.y=t.top,t}function getClientRectFromMixedType(o,e,t){return e===viewport?rectToClientRect(getViewportRect(o,t)):isElement(e)?getInnerBoundingClientRect(e,t):rectToClientRect(getDocumentRect(getDocumentElement$1(o)))}function getClippingParents(o){var e=listScrollParents(getParentNode(o)),t=["absolute","fixed"].indexOf(getComputedStyle$3(o).position)>=0,r=t&&isHTMLElement$1(o)?getOffsetParent(o):o;return isElement(r)?e.filter(function(s){return isElement(s)&&contains(s,r)&&getNodeName(s)!=="body"}):[]}function getClippingRect(o,e,t,r){var s=e==="clippingParents"?getClippingParents(o):[].concat(e),a=[].concat(s,[t]),l=a[0],c=a.reduce(function(d,u){var g=getClientRectFromMixedType(o,u,r);return d.top=max(g.top,d.top),d.right=min(g.right,d.right),d.bottom=min(g.bottom,d.bottom),d.left=max(g.left,d.left),d},getClientRectFromMixedType(o,l,r));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c}function computeOffsets(o){var e=o.reference,t=o.element,r=o.placement,s=r?getBasePlacement(r):null,a=r?getVariation(r):null,l=e.x+e.width/2-t.width/2,c=e.y+e.height/2-t.height/2,d;switch(s){case top:d={x:l,y:e.y-t.height};break;case bottom:d={x:l,y:e.y+e.height};break;case right:d={x:e.x+e.width,y:c};break;case left:d={x:e.x-t.width,y:c};break;default:d={x:e.x,y:e.y}}var u=s?getMainAxisFromPlacement(s):null;if(u!=null){var g=u==="y"?"height":"width";switch(a){case start:d[u]=d[u]-(e[g]/2-t[g]/2);break;case end:d[u]=d[u]+(e[g]/2-t[g]/2);break}}return d}function detectOverflow(o,e){e===void 0&&(e={});var t=e,r=t.placement,s=r===void 0?o.placement:r,a=t.strategy,l=a===void 0?o.strategy:a,c=t.boundary,d=c===void 0?clippingParents:c,u=t.rootBoundary,g=u===void 0?viewport:u,f=t.elementContext,m=f===void 0?popper:f,_=t.altBoundary,v=_===void 0?!1:_,b=t.padding,C=b===void 0?0:b,y=mergePaddingObject(typeof C!="number"?C:expandToHashMap(C,basePlacements)),S=m===popper?reference:popper,w=o.rects.popper,E=o.elements[v?S:m],x=getClippingRect(isElement(E)?E:E.contextElement||getDocumentElement$1(o.elements.popper),d,g,l),L=getBoundingClientRect(o.elements.reference),k=computeOffsets({reference:L,element:w,placement:s}),D=rectToClientRect(Object.assign({},w,k)),I=m===popper?D:L,T={top:x.top-I.top+y.top,bottom:I.bottom-x.bottom+y.bottom,left:x.left-I.left+y.left,right:I.right-x.right+y.right},M=o.modifiersData.offset;if(m===popper&&M){var R=M[s];Object.keys(T).forEach(function(N){var A=[right,bottom].indexOf(N)>=0?1:-1,O=[top,bottom].indexOf(N)>=0?"y":"x";T[N]+=R[O]*A})}return T}function computeAutoPlacement(o,e){e===void 0&&(e={});var t=e,r=t.placement,s=t.boundary,a=t.rootBoundary,l=t.padding,c=t.flipVariations,d=t.allowedAutoPlacements,u=d===void 0?placements:d,g=getVariation(r),f=g?c?variationPlacements:variationPlacements.filter(function(v){return getVariation(v)===g}):basePlacements,m=f.filter(function(v){return u.indexOf(v)>=0});m.length===0&&(m=f);var _=m.reduce(function(v,b){return v[b]=detectOverflow(o,{placement:b,boundary:s,rootBoundary:a,padding:l})[getBasePlacement(b)],v},{});return Object.keys(_).sort(function(v,b){return _[v]-_[b]})}function getExpandedFallbackPlacements(o){if(getBasePlacement(o)===auto)return[];var e=getOppositePlacement(o);return[getOppositeVariationPlacement(o),e,getOppositeVariationPlacement(e)]}function flip(o){var e=o.state,t=o.options,r=o.name;if(!e.modifiersData[r]._skip){for(var s=t.mainAxis,a=s===void 0?!0:s,l=t.altAxis,c=l===void 0?!0:l,d=t.fallbackPlacements,u=t.padding,g=t.boundary,f=t.rootBoundary,m=t.altBoundary,_=t.flipVariations,v=_===void 0?!0:_,b=t.allowedAutoPlacements,C=e.options.placement,y=getBasePlacement(C),S=y===C,w=d||(S||!v?[getOppositePlacement(C)]:getExpandedFallbackPlacements(C)),E=[C].concat(w).reduce(function(ee,Z){return ee.concat(getBasePlacement(Z)===auto?computeAutoPlacement(e,{placement:Z,boundary:g,rootBoundary:f,padding:u,flipVariations:v,allowedAutoPlacements:b}):Z)},[]),x=e.rects.reference,L=e.rects.popper,k=new Map,D=!0,I=E[0],T=0;T<E.length;T++){var M=E[T],R=getBasePlacement(M),N=getVariation(M)===start,A=[top,bottom].indexOf(R)>=0,O=A?"width":"height",P=detectOverflow(e,{placement:M,boundary:g,rootBoundary:f,altBoundary:m,padding:u}),F=A?N?right:left:N?bottom:top;x[O]>L[O]&&(F=getOppositePlacement(F));var B=getOppositePlacement(F),H=[];if(a&&H.push(P[R]<=0),c&&H.push(P[F]<=0,P[B]<=0),H.every(function(ee){return ee})){I=M,D=!1;break}k.set(M,H)}if(D)for(var V=v?3:1,U=function(Z){var J=E.find(function(q){var Q=k.get(q);if(Q)return Q.slice(0,Z).every(function(re){return re})});if(J)return I=J,"break"},j=V;j>0;j--){var X=U(j);if(X==="break")break}e.placement!==I&&(e.modifiersData[r]._skip=!0,e.placement=I,e.reset=!0)}}const flip$1={name:"flip",enabled:!0,phase:"main",fn:flip,requiresIfExists:["offset"],data:{_skip:!1}};function getSideOffsets(o,e,t){return t===void 0&&(t={x:0,y:0}),{top:o.top-e.height-t.y,right:o.right-e.width+t.x,bottom:o.bottom-e.height+t.y,left:o.left-e.width-t.x}}function isAnySideFullyClipped(o){return[top,right,bottom,left].some(function(e){return o[e]>=0})}function hide$1(o){var e=o.state,t=o.name,r=e.rects.reference,s=e.rects.popper,a=e.modifiersData.preventOverflow,l=detectOverflow(e,{elementContext:"reference"}),c=detectOverflow(e,{altBoundary:!0}),d=getSideOffsets(l,r),u=getSideOffsets(c,s,a),g=isAnySideFullyClipped(d),f=isAnySideFullyClipped(u);e.modifiersData[t]={referenceClippingOffsets:d,popperEscapeOffsets:u,isReferenceHidden:g,hasPopperEscaped:f},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":g,"data-popper-escaped":f})}const hide$2={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:hide$1};function distanceAndSkiddingToXY(o,e,t){var r=getBasePlacement(o),s=[left,top].indexOf(r)>=0?-1:1,a=typeof t=="function"?t(Object.assign({},e,{placement:o})):t,l=a[0],c=a[1];return l=l||0,c=(c||0)*s,[left,right].indexOf(r)>=0?{x:c,y:l}:{x:l,y:c}}function offset(o){var e=o.state,t=o.options,r=o.name,s=t.offset,a=s===void 0?[0,0]:s,l=placements.reduce(function(g,f){return g[f]=distanceAndSkiddingToXY(f,e.rects,a),g},{}),c=l[e.placement],d=c.x,u=c.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=d,e.modifiersData.popperOffsets.y+=u),e.modifiersData[r]=l}const offset$1={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:offset};function popperOffsets(o){var e=o.state,t=o.name;e.modifiersData[t]=computeOffsets({reference:e.rects.reference,element:e.rects.popper,placement:e.placement})}const popperOffsets$1={name:"popperOffsets",enabled:!0,phase:"read",fn:popperOffsets,data:{}};function getAltAxis(o){return o==="x"?"y":"x"}function preventOverflow(o){var e=o.state,t=o.options,r=o.name,s=t.mainAxis,a=s===void 0?!0:s,l=t.altAxis,c=l===void 0?!1:l,d=t.boundary,u=t.rootBoundary,g=t.altBoundary,f=t.padding,m=t.tether,_=m===void 0?!0:m,v=t.tetherOffset,b=v===void 0?0:v,C=detectOverflow(e,{boundary:d,rootBoundary:u,padding:f,altBoundary:g}),y=getBasePlacement(e.placement),S=getVariation(e.placement),w=!S,E=getMainAxisFromPlacement(y),x=getAltAxis(E),L=e.modifiersData.popperOffsets,k=e.rects.reference,D=e.rects.popper,I=typeof b=="function"?b(Object.assign({},e.rects,{placement:e.placement})):b,T=typeof I=="number"?{mainAxis:I,altAxis:I}:Object.assign({mainAxis:0,altAxis:0},I),M=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,R={x:0,y:0};if(L){if(a){var N,A=E==="y"?top:left,O=E==="y"?bottom:right,P=E==="y"?"height":"width",F=L[E],B=F+C[A],H=F-C[O],V=_?-D[P]/2:0,U=S===start?k[P]:D[P],j=S===start?-D[P]:-k[P],X=e.elements.arrow,ee=_&&X?getLayoutRect(X):{width:0,height:0},Z=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:getFreshSideObject(),J=Z[A],q=Z[O],Q=within(0,k[P],ee[P]),re=w?k[P]/2-V-Q-J-T.mainAxis:U-Q-J-T.mainAxis,de=w?-k[P]/2+V+Q+q+T.mainAxis:j+Q+q+T.mainAxis,se=e.elements.arrow&&getOffsetParent(e.elements.arrow),W=se?E==="y"?se.clientTop||0:se.clientLeft||0:0,G=(N=M==null?void 0:M[E])!=null?N:0,Y=F+re-G-W,ie=F+de-G,ne=within(_?min(B,Y):B,F,_?max(H,ie):H);L[E]=ne,R[E]=ne-F}if(c){var oe,ue=E==="x"?top:left,ae=E==="x"?bottom:right,le=L[x],ce=x==="y"?"height":"width",ve=le+C[ue],he=le-C[ae],fe=[top,left].indexOf(y)!==-1,pe=(oe=M==null?void 0:M[x])!=null?oe:0,ye=fe?ve:le-k[ce]-D[ce]-pe+T.altAxis,we=fe?le+k[ce]+D[ce]-pe-T.altAxis:he,xe=_&&fe?withinMaxClamp(ye,le,we):within(_?ye:ve,le,_?we:he);L[x]=xe,R[x]=xe-le}e.modifiersData[r]=R}}const preventOverflow$1={name:"preventOverflow",enabled:!0,phase:"main",fn:preventOverflow,requiresIfExists:["offset"]};function getHTMLElementScroll(o){return{scrollLeft:o.scrollLeft,scrollTop:o.scrollTop}}function getNodeScroll(o){return o===getWindow$2(o)||!isHTMLElement$1(o)?getWindowScroll(o):getHTMLElementScroll(o)}function isElementScaled(o){var e=o.getBoundingClientRect(),t=round(e.width)/o.offsetWidth||1,r=round(e.height)/o.offsetHeight||1;return t!==1||r!==1}function getCompositeRect(o,e,t){t===void 0&&(t=!1);var r=isHTMLElement$1(e),s=isHTMLElement$1(e)&&isElementScaled(e),a=getDocumentElement$1(e),l=getBoundingClientRect(o,s,t),c={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(r||!r&&!t)&&((getNodeName(e)!=="body"||isScrollParent(a))&&(c=getNodeScroll(e)),isHTMLElement$1(e)?(d=getBoundingClientRect(e,!0),d.x+=e.clientLeft,d.y+=e.clientTop):a&&(d.x=getWindowScrollBarX(a))),{x:l.left+c.scrollLeft-d.x,y:l.top+c.scrollTop-d.y,width:l.width,height:l.height}}function order(o){var e=new Map,t=new Set,r=[];o.forEach(function(a){e.set(a.name,a)});function s(a){t.add(a.name);var l=[].concat(a.requires||[],a.requiresIfExists||[]);l.forEach(function(c){if(!t.has(c)){var d=e.get(c);d&&s(d)}}),r.push(a)}return o.forEach(function(a){t.has(a.name)||s(a)}),r}function orderModifiers(o){var e=order(o);return modifierPhases.reduce(function(t,r){return t.concat(e.filter(function(s){return s.phase===r}))},[])}function debounce$1(o){var e;return function(){return e||(e=new Promise(function(t){Promise.resolve().then(function(){e=void 0,t(o())})})),e}}function mergeByName(o){var e=o.reduce(function(t,r){var s=t[r.name];return t[r.name]=s?Object.assign({},s,r,{options:Object.assign({},s.options,r.options),data:Object.assign({},s.data,r.data)}):r,t},{});return Object.keys(e).map(function(t){return e[t]})}var DEFAULT_OPTIONS={placement:"bottom",modifiers:[],strategy:"absolute"};function areValidElements(){for(var o=arguments.length,e=new Array(o),t=0;t<o;t++)e[t]=arguments[t];return!e.some(function(r){return!(r&&typeof r.getBoundingClientRect=="function")})}function popperGenerator(o){o===void 0&&(o={});var e=o,t=e.defaultModifiers,r=t===void 0?[]:t,s=e.defaultOptions,a=s===void 0?DEFAULT_OPTIONS:s;return function(c,d,u){u===void 0&&(u=a);var g={placement:"bottom",orderedModifiers:[],options:Object.assign({},DEFAULT_OPTIONS,a),modifiersData:{},elements:{reference:c,popper:d},attributes:{},styles:{}},f=[],m=!1,_={state:g,setOptions:function(y){var S=typeof y=="function"?y(g.options):y;b(),g.options=Object.assign({},a,g.options,S),g.scrollParents={reference:isElement(c)?listScrollParents(c):c.contextElement?listScrollParents(c.contextElement):[],popper:listScrollParents(d)};var w=orderModifiers(mergeByName([].concat(r,g.options.modifiers)));return g.orderedModifiers=w.filter(function(E){return E.enabled}),v(),_.update()},forceUpdate:function(){if(!m){var y=g.elements,S=y.reference,w=y.popper;if(areValidElements(S,w)){g.rects={reference:getCompositeRect(S,getOffsetParent(w),g.options.strategy==="fixed"),popper:getLayoutRect(w)},g.reset=!1,g.placement=g.options.placement,g.orderedModifiers.forEach(function(T){return g.modifiersData[T.name]=Object.assign({},T.data)});for(var E=0;E<g.orderedModifiers.length;E++){if(g.reset===!0){g.reset=!1,E=-1;continue}var x=g.orderedModifiers[E],L=x.fn,k=x.options,D=k===void 0?{}:k,I=x.name;typeof L=="function"&&(g=L({state:g,options:D,name:I,instance:_})||g)}}}},update:debounce$1(function(){return new Promise(function(C){_.forceUpdate(),C(g)})}),destroy:function(){b(),m=!0}};if(!areValidElements(c,d))return _;_.setOptions(u).then(function(C){!m&&u.onFirstUpdate&&u.onFirstUpdate(C)});function v(){g.orderedModifiers.forEach(function(C){var y=C.name,S=C.options,w=S===void 0?{}:S,E=C.effect;if(typeof E=="function"){var x=E({state:g,name:y,instance:_,options:w}),L=function(){};f.push(x||L)}})}function b(){f.forEach(function(C){return C()}),f=[]}return _}}var defaultModifiers=[eventListeners,popperOffsets$1,computeStyles$1,applyStyles$1,offset$1,flip$1,preventOverflow$1,arrow$1,hide$2],createPopper=popperGenerator({defaultModifiers});let $MAGIC_DESIGN={};const setDesignConfig=o=>{$MAGIC_DESIGN=o},getDesignConfig=o=>$MAGIC_DESIGN[o],_sfc_main$G$1=defineComponent({name:"TMBadge",__name:"Badge",props:{value:{},type:{},max:{},isDot:{type:Boolean},hidden:{type:Boolean}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.badge,r=(t==null?void 0:t.component)||"el-badge",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-badge"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$F$1=defineComponent({name:"TMButton",__name:"Button",props:{type:{},size:{},link:{type:Boolean},text:{type:Boolean},circle:{type:Boolean},icon:{},variant:{}},emits:["click"],setup(o,{emit:e}){var d;const t=o,r=(d=getDesignConfig("components"))==null?void 0:d.button,s=(r==null?void 0:r.component)||"el-button",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=(...u)=>{l("click",...u)};return(u,g)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-button"},a.value,{onClick:c}),createSlots({_:2},[u.$slots.icon?{name:"icon",fn:withCtx(()=>[renderSlot(u.$slots,"icon")]),key:"0"}:void 0,u.$slots.default?{name:"default",fn:withCtx(()=>[renderSlot(u.$slots,"default")]),key:"1"}:void 0]),1040))}}),_sfc_main$E$1=defineComponent({name:"TMCard",__name:"Card",props:{bodyStyle:{},shadow:{},header:{}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.card,r=(t==null?void 0:t.component)||"el-card",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-card"},s.value),createSlots({_:2},[l.$slots.header?{name:"header",fn:withCtx(()=>[renderSlot(l.$slots,"header",{class:"header"})]),key:"0"}:void 0,l.$slots.default?{name:"default",fn:withCtx(()=>[renderSlot(l.$slots,"default")]),key:"1"}:void 0]),1040))}}),_sfc_main$D$1=defineComponent({name:"TMCascader",__name:"Cascader",props:{modelValue:{},placeholder:{},disabled:{type:Boolean},clearable:{type:Boolean},filterable:{type:Boolean},options:{},size:{},popperClass:{},props:{}},emits:["change","update:modelValue"],setup(o,{expose:e,emit:t}){var f;const r=o,s=(f=getDesignConfig("components"))==null?void 0:f.cascader,a=(s==null?void 0:s.component)||"el-cascader",l=computed$1(()=>(s==null?void 0:s.props(r))||r),c=ref$1(),d=t,u=m=>{d("change",m)},g=m=>{d("update:modelValue",m)};return e({setQuery(m){c.value&&(c.value.query=m)},setPreviousQuery(m){c.value&&(c.value.previousQuery=m)}}),(m,_)=>(openBlock(),createBlock(resolveDynamicComponent(unref(a)),mergeProps({ref_key:"cascader",ref:c,class:"tmagic-design-cascader"},l.value,{"onUpdate:modelValue":g,onChange:u}),null,16))}}),_sfc_main$C$1=defineComponent({name:"TMCheckbox",__name:"Checkbox",props:{modelValue:{type:[String,Number,Boolean]},value:{type:[String,Number,Boolean]},label:{},trueValue:{default:void 0},falseValue:{default:void 0},disabled:{type:Boolean},size:{}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.checkbox,s=(r==null?void 0:r.component)||"el-checkbox",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-checkbox"},a.value,{"onUpdate:modelValue":d,onChange:c}),createSlots({_:2},[g.$slots.default?{name:"default",fn:withCtx(()=>[renderSlot(g.$slots,"default")]),key:"0"}:void 0]),1040))}}),_sfc_main$B$2=defineComponent({name:"TMCheckboxGroup",__name:"CheckboxGroup",props:{modelValue:{},label:{},disabled:{type:Boolean},size:{}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.checkboxGroup,s=(r==null?void 0:r.component)||"el-checkbox-group",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-checkbox-group"},a.value,{onChange:c,"onUpdate:modelValue":d}),{default:withCtx(()=>[renderSlot(g.$slots,"default")]),_:3},16))}}),_sfc_main$A$2=defineComponent({name:"TMCol",__name:"Col",props:{span:{}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.col,r=(t==null?void 0:t.component)||"el-col",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-col"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$z$2=defineComponent({name:"TMCollapse",__name:"Collapse",props:{modelValue:{},accordion:{type:Boolean}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.collapse,s=(r==null?void 0:r.component)||"el-collapse",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-collapse"},a.value,{"onUpdate:modelValue":d,onChange:c}),{default:withCtx(()=>[renderSlot(g.$slots,"default")]),_:3},16))}}),_sfc_main$y$2=defineComponent({name:"TMCollapseItem",__name:"CollapseItem",props:{name:{},title:{},disabled:{type:Boolean}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.collapseItem,s=(r==null?void 0:r.component)||"el-collapse-item",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-collapse-item"},a.value,{"onUpdate:modelValue":d,onChange:c}),{title:withCtx(()=>[renderSlot(g.$slots,"title")]),header:withCtx(()=>[renderSlot(g.$slots,"title")]),default:withCtx(()=>[renderSlot(g.$slots,"default")]),_:3},16))}}),_sfc_main$x$2=defineComponent({name:"TMColorPicker",__name:"ColorPicker",props:{modelValue:{},disabled:{type:Boolean,default:!1},showAlpha:{type:Boolean,default:!1},size:{}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.colorPicker,s=(r==null?void 0:r.component)||"el-color-picker",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-color-picker"},a.value,{onChange:c,"onUpdate:modelValue":d}),null,16))}}),_sfc_main$w$2=defineComponent({name:"TMDatePicker",__name:"DatePicker",props:{type:{default:"date"},modelValue:{},disabled:{type:Boolean},placeholder:{},rangeSeparator:{},startPlaceholder:{},endPlaceholder:{},format:{},dateFormat:{},timeFormat:{},valueFormat:{},unlinkPanels:{type:Boolean},defaultTime:{},size:{}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.datePicker,s=(r==null?void 0:r.component)||"el-date-picker",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-date-picker"},a.value,{onChange:c,"onUpdate:modelValue":d}),null,16))}}),_sfc_main$v$2=defineComponent({name:"TMDialog",__name:"Dialog",props:{modelValue:{type:Boolean},appendToBody:{type:Boolean},beforeClose:{},title:{},width:{},fullscreen:{type:Boolean},closeOnClickModal:{type:Boolean},closeOnPressEscape:{type:Boolean},destroyOnClose:{type:Boolean},showClose:{type:Boolean}},emits:["close","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=e,s=(u=getDesignConfig("components"))==null?void 0:u.dialog,a=(s==null?void 0:s.component)||"el-dialog",l=computed$1(()=>(s==null?void 0:s.props(t))||t),c=(...g)=>{r("close",...g)},d=g=>{r("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(a)),mergeProps({class:"tmagic-design-dialog"},l.value,{onClose:c,"onUpdate:modelValue":d}),{footer:withCtx(()=>[renderSlot(g.$slots,"footer")]),default:withCtx(()=>[renderSlot(g.$slots,"default")]),_:3},16))}}),_sfc_main$u$2=defineComponent({name:"TMDivider",__name:"Divider",props:{direction:{},borderStyle:{},contentPosition:{}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.divider,r=(t==null?void 0:t.component)||"el-divider",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-divider"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$s$2=defineComponent({name:"TMDropdown",__name:"Dropdown",props:{type:{},size:{},maxHeight:{},splitButton:{type:Boolean},disable:{type:Boolean},placement:{},trigger:{},hideOnClick:{type:Boolean},showTimeout:{},role:{},tabindex:{},popperClass:{},popperOptions:{}},emits:["command"],setup(o,{emit:e}){var d;const t=o,r=(d=getDesignConfig("components"))==null?void 0:d.dropdown,s=(r==null?void 0:r.component)||"el-dropdown",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=(...u)=>{l("command",...u)};return(u,g)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-dropdown"},a.value,{onCommand:c}),{dropdown:withCtx(()=>[renderSlot(u.$slots,"dropdown")]),default:withCtx(()=>[renderSlot(u.$slots,"default")]),_:3},16))}}),_sfc_main$r$2=defineComponent({name:"TMDropdownItem",__name:"DropdownItem",props:{command:{},disabled:{type:Boolean},divided:{type:Boolean},icon:{}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.dropdownItem,r=(t==null?void 0:t.component)||"el-dropdown-item",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-dropdown-item"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$q$2=defineComponent({name:"TMDropdownMenu",__name:"DropdownMenu",setup(o){var r;const e=(r=getDesignConfig("components"))==null?void 0:r.dropdownMenu,t=(e==null?void 0:e.component)||"el-dropdown-menu";return(s,a)=>(openBlock(),createBlock(resolveDynamicComponent(unref(t)),{class:"tmagic-design-dropdown-menu"},{default:withCtx(()=>[renderSlot(s.$slots,"default")]),_:3}))}}),_sfc_main$p$2=defineComponent({name:"TMForm",__name:"Form",props:{model:{},labelWidth:{},disabled:{type:Boolean},inline:{type:Boolean},labelPosition:{}},setup(o,{expose:e}){var c;const t=o,r=(c=getDesignConfig("components"))==null?void 0:c.form,s=(r==null?void 0:r.component)||"el-form",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=ref$1();return e({validate(){var d;return(d=l.value)==null?void 0:d.validate()},resetFields(){var d,u,g,f;if(typeof((d=l.value)==null?void 0:d.resetFields)=="function")return(u=l.value)==null?void 0:u.resetFields();if(typeof((g=l.value)==null?void 0:g.reset)=="function")return(f=l.value)==null?void 0:f.reset()}}),(d,u)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:["tmagic-design-form",{"tmagic-design-form-inline":o.inline}],ref_key:"form",ref:l},a.value),{default:withCtx(()=>[renderSlot(d.$slots,"default")]),_:3},16,["class"]))}}),_hoisted_1$1$4=["innerHTML"],_sfc_main$o$2=defineComponent({name:"TMFormItem",__name:"FormItem",props:{prop:{},labelWidth:{},rules:{},extra:{},labelPosition:{}},setup(o){var l;const e=o,t=(l=getDesignConfig("components"))==null?void 0:l.formItem,r=(t==null?void 0:t.component)||"el-form-item",s=getDesignConfig("adapterType"),a=computed$1(()=>{const{extra:c,...d}=(t==null?void 0:t.props(e))||e;return d});return(c,d)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-form-item"},a.value),{label:withCtx(()=>[renderSlot(c.$slots,"label")]),default:withCtx(()=>[renderSlot(c.$slots,"default"),unref(s)==="element-plus"&&o.extra?(openBlock(),createElementBlock("div",{key:0,innerHTML:o.extra,class:"m-form-tip"},null,8,_hoisted_1$1$4)):createCommentVNode("v-if",!0)]),_:3},16))}}),_sfc_main$n$2=defineComponent({name:"TMIcon",__name:"Icon",props:{size:{}},setup(o){var a;const e=(a=getDesignConfig("components"))==null?void 0:a.icon,t=(e==null?void 0:e.component)||"el-icon",r=o,s=computed$1(()=>(e==null?void 0:e.props(r))||r);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(t)),mergeProps({class:"tmagic-design-icon"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$m$2=defineComponent({name:"TMInput",__name:"Input",props:{modelValue:{},clearable:{type:Boolean},disabled:{type:Boolean},placeholder:{},rows:{},type:{},size:{},autosize:{type:[Boolean,Object]}},emits:["change","input","blur","focus","click","update:modelValue"],setup(o,{expose:e,emit:t}){var b;const r=o,s=(b=getDesignConfig("components"))==null?void 0:b.input,a=(s==null?void 0:s.component)||"el-input",l=computed$1(()=>(s==null?void 0:s.props(r))||r),c=t,d=ref$1(),u=(...C)=>{c("change",...C)},g=(...C)=>{c("input",...C)},f=(...C)=>{c("update:modelValue",...C)},m=(...C)=>{c("blur",...C)},_=(...C)=>{c("focus",...C)},v=(...C)=>{c("click",...C)};return e({instance:d,getInput(){var C,y;return d.value.input?d.value.input:(y=(C=d.value)==null?void 0:C.$el)==null?void 0:y.querySelector("input")},getTextarea(){var C,y;return d.value.textarea?d.value.textarea:(y=(C=d.value)==null?void 0:C.$el)==null?void 0:y.querySelector("textarea")}}),(C,y)=>(openBlock(),createBlock(resolveDynamicComponent(unref(a)),mergeProps({ref_key:"instance",ref:d,class:"tmagic-design-input"},l.value,{onChange:u,onInput:g,"onUpdate:modelValue":f,onBlur:m,onFocus:_,onClick:v}),createSlots({_:2},[C.$slots.prepend?{name:"prepend",fn:withCtx(()=>[renderSlot(C.$slots,"prepend")]),key:"0"}:void 0,C.$slots.append?{name:"append",fn:withCtx(()=>[renderSlot(C.$slots,"append")]),key:"1"}:void 0,C.$slots.prefix?{name:"prefix",fn:withCtx(()=>[renderSlot(C.$slots,"prefix")]),key:"2"}:void 0,C.$slots.suffix?{name:"suffix",fn:withCtx(()=>[renderSlot(C.$slots,"suffix")]),key:"3"}:void 0]),1040))}}),_sfc_main$l$2=defineComponent({name:"TMInputNumber",__name:"InputNumber",props:{modelValue:{type:[String,Number,Boolean]},clearable:{type:Boolean},controlsPosition:{},disabled:{type:Boolean},placeholder:{},step:{},min:{},max:{},size:{}},emits:["change","input","update:modelValue"],setup(o,{emit:e}){var g;const t=o,r=(g=getDesignConfig("components"))==null?void 0:g.inputNumber,s=(r==null?void 0:r.component)||"el-input-number",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=(...f)=>{l("change",...f)},d=(...f)=>{l("input",...f)},u=(...f)=>{l("update:modelValue",...f)};return(f,m)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-input-number"},a.value,{onChange:c,onInput:d,"onUpdate:modelValue":u}),null,16))}}),_sfc_main$k$2=defineComponent({name:"TMOption",__name:"Option",props:{value:{},label:{},disabled:{type:Boolean}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.option,r=(t==null?void 0:t.component)||"el-option",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-option"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$i$2=defineComponent({name:"TMPagination",__name:"Pagination",props:{layout:{},hideOnSinglePage:{type:Boolean},curPage:{},pageSizes:{},pageSize:{},total:{},size:{}},emits:["size-change","current-change","update:current-page","update:page-size"],setup(o,{emit:e}){var f;const t=o,r=e,s=(f=getDesignConfig("components"))==null?void 0:f.pagination,a=(s==null?void 0:s.component)||"el-pagination",l=computed$1(()=>(s==null?void 0:s.props(t))||t),c=(...m)=>{r("size-change",...m)},d=(...m)=>{r("current-change",...m)},u=(...m)=>{r("update:current-page",...m)},g=(...m)=>{r("update:page-size",...m)};return(m,_)=>(openBlock(),createBlock(resolveDynamicComponent(unref(a)),mergeProps({class:"tmagic-design-pagination"},l.value,{onSizeChange:c,onCurrentChange:d,"onUpdate:currentPage":u,"onUpdate:pageSize":g}),null,16))}}),_hoisted_1$12=["tabindex"],_sfc_main$h$2=defineComponent({name:"TMPopper",inheritAttrs:!1,__name:"Popover",props:{placement:{},width:{},trigger:{default:"hover"},disabled:{type:Boolean,default:!1},visible:{type:Boolean,default:void 0},popperClass:{},tabindex:{default:0},destroyOnClose:{type:Boolean,default:!1}},setup(o){const e=o,t=ref$1(!1),r=watch(()=>e.visible,b=>{if(typeof b>"u"){nextTick(()=>{r()});return}t.value=b},{immediate:!0}),s=computed$1(()=>{if(!e.width)return{};let{width:b}=e;return typeof b=="number"&&(b="".concat(b,"px")),{width:b}}),a=ref$1(),l=ref$1(),c=shallowRef();onMounted(()=>{var b,C;a.value=(C=(b=getCurrentInstance$1())==null?void 0:b.proxy)==null?void 0:C.$el.nextElementSibling});const d=useZIndex();watch([a,l,t],([b,C,y])=>{v(),!(!b||!C||!y)&&(C.style.zIndex="".concat(d.nextZIndex()),c.value=createPopper(b,C,{placement:e.placement||"bottom",strategy:"absolute",modifiers:[{name:"offset",options:{offset:[0,10]}}]}))});const u=()=>{var b;(b=l.value)==null||b.focus()},g=()=>{e.disabled||(t.value=!t.value)},f=()=>{e.disabled||(m&&clearTimeout(m),t.value=!0)};let m=null;const _=()=>{e.disabled||(m&&clearTimeout(m),m=globalThis.setTimeout(()=>{t.value=!1,m=null},350))};e.trigger==="click"&&typeof e.visible>"u"&&watch(a,(b,C)=>{b==null||b.addEventListener("click",g),C==null||C.removeEventListener("click",g)},{immediate:!0}),e.trigger==="hover"&&typeof e.visible>"u"&&(watch(a,(b,C)=>{b==null||b.addEventListener("mouseenter",f),C==null||C.removeEventListener("mouseenter",f),b==null||b.addEventListener("mouseleave",_),C==null||C.removeEventListener("mouseleave",_)},{immediate:!0}),watch(l,(b,C)=>{b==null||b.addEventListener("mouseenter",f),C==null||C.removeEventListener("mouseenter",f),b==null||b.addEventListener("mouseleave",_),C==null||C.removeEventListener("mouseleave",_)}));const v=()=>{c.value&&(c.value.destroy(),c.value=void 0)};return onBeforeUnmount(()=>{v()}),(b,C)=>(openBlock(),createElementBlock(Fragment,null,[renderSlot(b.$slots,"reference"),(openBlock(),createBlock(Teleport,{to:"body"},[t.value||!o.destroyOnClose?withDirectives((openBlock(),createElementBlock("div",{key:0,class:normalizeClass(["tmagic-design-popper",o.popperClass]),ref_key:"popperElementRef",ref:l,tabindex:o.tabindex,style:normalizeStyle(s.value),onMouseenterOnce:u},[renderSlot(b.$slots,"default"),C[0]||(C[0]=createBaseVNode("span",{class:"tmagic-design-popper-arrow","data-popper-arrow":""},null,-1))],46,_hoisted_1$12)),[[vShow,t.value]]):createCommentVNode("v-if",!0)]))],64))}}),_sfc_main$g$2=defineComponent({name:"TMRadio",__name:"Radio",props:{modelValue:{type:[String,Number,Boolean]},value:{type:[String,Number,Boolean]},label:{type:[String,Number,Boolean]}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.radio,r=(t==null?void 0:t.component)||"el-radio",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-radio"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$f$2=defineComponent({name:"TMRadioButton",__name:"RadioButton",props:{value:{type:[String,Number,Boolean]},label:{type:[String,Number,Boolean]},disabled:{type:Boolean},name:{}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.radioButton,r=(t==null?void 0:t.component)||"el-radio-button",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-radio-button"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$e$2=defineComponent({name:"TMRadioGroup",__name:"RadioGroup",props:{modelValue:{type:[String,Number,Boolean]},disabled:{type:Boolean},size:{}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.radioGroup,s=(r==null?void 0:r.component)||"el-radio-group",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-radio-group"},a.value,{onChange:c,"onUpdate:modelValue":d}),{default:withCtx(()=>[renderSlot(g.$slots,"default")]),_:3},16))}}),_sfc_main$d$2=defineComponent({name:"TMRow",__name:"Row",setup(o){var t;const e=((t=getDesignConfig("components"))==null?void 0:t.row.component)||"el-row";return(r,s)=>(openBlock(),createBlock(resolveDynamicComponent(unref(e)),{class:"tmagic-design-row"},{default:withCtx(()=>[renderSlot(r.$slots,"default")]),_:3}))}}),_sfc_main$c$2=defineComponent({name:"TMScrollbar",__name:"Scrollbar",setup(o){var r;const e=(r=getDesignConfig("components"))==null?void 0:r.scrollbar,t=(e==null?void 0:e.component)||"el-scrollbar";return(s,a)=>(openBlock(),createBlock(resolveDynamicComponent(unref(t)),{class:"tmagic-design-scrollbar"},{default:withCtx(()=>[renderSlot(s.$slots,"default")]),_:3}))}}),_sfc_main$b$2=defineComponent({name:"TMSelect",__name:"Select",props:{modelValue:{},clearable:{type:Boolean},filterable:{type:Boolean},popperClass:{},disabled:{type:Boolean},placeholder:{},remote:{type:Boolean},multiple:{type:Boolean},allowCreate:{type:Boolean},valueKey:{},remoteMethod:{},loading:{type:Boolean},size:{},onSearch:{}},emits:["change","update:modelValue","visible-change"],setup(o,{expose:e,emit:t}){var v;const r=o,s=t,a=(v=getDesignConfig("components"))==null?void 0:v.select,l=(a==null?void 0:a.component)||"el-select",c=computed$1(()=>(a==null?void 0:a.props(r))||r),d=ref$1(),u=(...b)=>{s("change",...b)},g=(...b)=>{s("update:modelValue",...b)},f=(...b)=>{s("visible-change",...b)},m=ref$1(),_=watch(()=>{var b,C,y,S,w,E;return((C=(b=d.value)==null?void 0:b.scrollbar)==null?void 0:C.wrap$)||((S=(y=d.value)==null?void 0:y.scrollbar)==null?void 0:S.wrapRef)||((E=(w=d.value)==null?void 0:w.scrollbarRef)==null?void 0:E.wrapRef)},b=>{b&&(nextTick(()=>_()),m.value=b)},{immediate:!0});return e({scrollbarWrap:m,setQuery(b){d.value&&(d.value.query=b)},setPreviousQuery(b){d.value&&(d.value.previousQuery=b)},setSelectedLabel(b){d.value&&(d.value.selectedLabel=b)},setSelected(){if(d.value)return d.value.setSelected()}}),(b,C)=>(openBlock(),createBlock(resolveDynamicComponent(unref(l)),mergeProps({class:"tmagic-design-select",ref_key:"select",ref:d},c.value,{onChange:u,onVisibleChange:f,onPopupVisibleChange:f,"onUpdate:modelValue":g}),{default:withCtx(()=>[renderSlot(b.$slots,"default")]),_:3},16))}}),_sfc_main$a$2=defineComponent({name:"TMStep",__name:"Step",props:{title:{},active:{},props:{},status:{}},emits:["click"],setup(o,{emit:e}){var d;const t=o,r=e,s=(...u)=>{r("click",...u)},a=(d=getDesignConfig("components"))==null?void 0:d.step,l=(a==null?void 0:a.component)||"el-step",c=computed$1(()=>(a==null?void 0:a.props(t))||t);return(u,g)=>(openBlock(),createBlock(resolveDynamicComponent(unref(l)),mergeProps({class:"tmagic-design-step"},c.value,{onClick:s}),{default:withCtx(()=>[renderSlot(u.$slots,"default")]),_:3},16))}}),_sfc_main$9$2=defineComponent({name:"TMSteps",__name:"Steps",props:{active:{},space:{}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.steps,r=(t==null?void 0:t.component)||"el-steps",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-steps"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$8$3=defineComponent({name:"TMSwitch",__name:"Switch",props:{modelValue:{type:[String,Number,Boolean]},label:{},activeValue:{type:[String,Number,Boolean]},inactiveValue:{type:[String,Number,Boolean]},disabled:{type:Boolean},size:{}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.switch,s=(r==null?void 0:r.component)||"el-switch",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-switch"},a.value,{"onUpdate:modelValue":d,onChange:c}),{default:withCtx(()=>[renderSlot(g.$slots,"default")]),_:3},16))}}),_sfc_main$7$3=defineComponent({name:"TMTable",__name:"Table",props:{columns:{},data:{default:()=>[]},border:{type:Boolean},maxHeight:{},defaultExpandAll:{type:Boolean},showHeader:{type:Boolean},rowKey:{},treeProps:{},emptyText:{},tooltipEffect:{},tooltipOptions:{},showOverflowTooltip:{type:Boolean},spanMethod:{}},emits:["select","sort-change","expand-change","cell-click"],setup(o,{expose:e,emit:t}){var _;const r=o,s=(_=getDesignConfig("components"))==null?void 0:_.table,a=(s==null?void 0:s.component)||"el-table",l=computed$1(()=>(s==null?void 0:s.props(r))||r),c=t,d=useTemplateRef("table"),u=(...v)=>{c("select",...v)},g=(...v)=>{c("sort-change",...v)},f=(...v)=>{c("expand-change",...v)},m=(...v)=>{c("cell-click",...v)};return e({getEl:()=>{var v;return(v=d.value)==null?void 0:v.getTableRef().$el},getTableRef:()=>d.value.getTableRef(),clearSelection(...v){var b;return(b=d.value)==null?void 0:b.clearSelection(...v)},toggleRowSelection(...v){var b;return(b=d.value)==null?void 0:b.toggleRowSelection(...v)},toggleRowExpansion(...v){var b;return(b=d.value)==null?void 0:b.toggleRowExpansion(...v)}}),(v,b)=>(openBlock(),createBlock(resolveDynamicComponent(unref(a)),mergeProps({class:"tmagic-design-table",ref:"table"},l.value,{"row-class-name":"tmagic-design-table-row","cell-class-name":"tmagic-design-table-cell",onSelect:u,onSortChange:g,onExpandChange:f,onCellClick:m}),{default:withCtx(()=>[renderSlot(v.$slots,"default")]),_:3},16))}}),_sfc_main$6$3=defineComponent({name:"TMTabPane",__name:"TabPane",props:{name:{},label:{},lazy:{type:Boolean}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.tabPane,r=(t==null?void 0:t.component)||"el-tab-pane",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-tab-pane"},s.value),createSlots({default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:2},[l.$slots.label?{name:"label",fn:withCtx(()=>[renderSlot(l.$slots,"label")]),key:"0"}:void 0]),1040))}}),_sfc_main$5$4=defineComponent({name:"TMTabs",__name:"Tabs",props:{type:{},editable:{type:Boolean},tabPosition:{},modelValue:{}},emits:["tab-click","tab-add","tab-remove","update:model-value"],setup(o,{emit:e}){var f;const t=o,r=(f=getDesignConfig("components"))==null?void 0:f.tabs,s=(r==null?void 0:r.component)||"el-tabs",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=(...m)=>{l("tab-click",...m)},d=(...m)=>{l("tab-add",...m)},u=(...m)=>{l("tab-remove",...m)},g=(...m)=>{l("update:model-value",...m)};return(m,_)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-tabs"},a.value,{onTabClick:c,onTabAdd:d,onTabRemove:u,"onUpdate:modelValue":g}),createSlots({default:withCtx(()=>[renderSlot(m.$slots,"default")]),_:2},[m.$slots["add-icon"]?{name:"add-icon",fn:withCtx(()=>[renderSlot(m.$slots,"add-icon")]),key:"0"}:void 0]),1040))}}),_sfc_main$4$4=defineComponent({name:"TMTag",__name:"Tag",props:{type:{},disableTransition:{type:Boolean}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.tag,r=(t==null?void 0:t.component)||"el-tag",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-tag"},s.value),{default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$3$4=defineComponent({name:"TMTimePicker",__name:"TimePicker",props:{modelValue:{},disabled:{type:Boolean},placeholder:{},size:{}},emits:["change","update:modelValue"],setup(o,{emit:e}){var u;const t=o,r=(u=getDesignConfig("components"))==null?void 0:u.timePicker,s=(r==null?void 0:r.component)||"el-time-picker",a=computed$1(()=>(r==null?void 0:r.props(t))||t),l=e,c=g=>{l("change",g)},d=g=>{l("update:modelValue",g)};return(g,f)=>(openBlock(),createBlock(resolveDynamicComponent(unref(s)),mergeProps({class:"tmagic-design-time-picker"},a.value,{onChange:c,"onUpdate:modelValue":d}),null,16))}}),_sfc_main$2$4=defineComponent({name:"TMTooltip",__name:"Tooltip",props:{placement:{},disabled:{type:Boolean},content:{},effect:{},transition:{},offset:{}},setup(o){var a;const e=o,t=(a=getDesignConfig("components"))==null?void 0:a.tooltip,r=(t==null?void 0:t.component)||"el-tooltip",s=computed$1(()=>(t==null?void 0:t.props(e))||e);return(l,c)=>(openBlock(),createBlock(resolveDynamicComponent(unref(r)),mergeProps({class:"tmagic-design-tooltip"},s.value),{content:withCtx(()=>[renderSlot(l.$slots,"content")]),default:withCtx(()=>[renderSlot(l.$slots,"default")]),_:3},16))}}),_sfc_main$1$3=defineComponent({name:"TMUpload",__name:"Upload",props:{action:{},autoUpload:{type:Boolean},disabled:{type:Boolean}},emits:["change"],setup(o,{expose:e,emit:t}){var g;const r=o,s=t,a=(...f)=>{s("change",...f)},l=(g=getDesignConfig("components"))==null?void 0:g.upload,c=(l==null?void 0:l.component)||"el-upload",d=computed$1(()=>(l==null?void 0:l.props(r))||r),u=ref$1();return e({clearFiles(...f){var m;return(m=u.value)==null?void 0:m.clearFiles(...f)}}),(f,m)=>(openBlock(),createBlock(resolveDynamicComponent(unref(c)),mergeProps({class:"tmagic-design-upload",ref_key:"upload",ref:u},d.value,{onChange:a}),null,16))}});let tMagicMessage;const tMagicMessageBox={alert:o=>{console.log(o)},confirm:o=>{console.log(o)},close:o=>{console.log(o)}},zIndex=ref$1(0),DEFAULT_INITIAL_Z_INDEX=2e3;let useZIndex=o=>{const e=o,t=computed$1(()=>{const a=unref(e);return a!=null?a:DEFAULT_INITIAL_Z_INDEX}),r=computed$1(()=>t.value+zIndex.value);return{initialZIndex:t,currentZIndex:r,nextZIndex:()=>(zIndex.value+=1,r.value)}};const index$6={install(o,e){var t,r,s,a,l;tMagicMessage=e.message||{error:c=>{console.error(c)},success:c=>{console.log(c)},warning:c=>{console.warn(c)},info:c=>{console.info(c)},closeAll:c=>{}},e.messageBox&&(tMagicMessageBox.alert=(t=e.messageBox)==null?void 0:t.alert,tMagicMessageBox.confirm=(r=e.messageBox)==null?void 0:r.confirm,tMagicMessageBox.prompt=(s=e.messageBox)==null?void 0:s.prompt,tMagicMessageBox.close=(a=e.messageBox)==null?void 0:a.close),e.loading&&!o.directive("loading")&&o.directive("loading",e.loading),e.useZIndex&&(useZIndex=e.useZIndex),e.adapterType&&((l=globalThis.document)!=null&&l.documentElement)&&globalThis.document.documentElement.classList.add("tmagic-adapter-".concat(e.adapterType)),o.config.globalProperties.$MAGIC_DESIGN=e,setDesignConfig(e)}};var _sfc_main6=defineComponent({name:"ArrowDown",__name:"arrow-down",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}}),arrow_down_default=_sfc_main6,_sfc_main7=defineComponent({name:"ArrowLeftBold",__name:"arrow-left-bold",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M685.248 104.704a64 64 0 0 1 0 90.496L368.448 512l316.8 316.8a64 64 0 0 1-90.496 90.496L232.704 557.248a64 64 0 0 1 0-90.496l362.048-362.048a64 64 0 0 1 90.496 0"})]))}}),arrow_left_bold_default=_sfc_main7,_sfc_main8=defineComponent({name:"ArrowLeft",__name:"arrow-left",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0"})]))}}),arrow_left_default=_sfc_main8,_sfc_main9=defineComponent({name:"ArrowRightBold",__name:"arrow-right-bold",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M338.752 104.704a64 64 0 0 0 0 90.496l316.8 316.8-316.8 316.8a64 64 0 0 0 90.496 90.496l362.048-362.048a64 64 0 0 0 0-90.496L429.248 104.704a64 64 0 0 0-90.496 0"})]))}}),arrow_right_bold_default=_sfc_main9,_sfc_main10=defineComponent({name:"ArrowRight",__name:"arrow-right",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),arrow_right_default=_sfc_main10,_sfc_main12=defineComponent({name:"ArrowUp",__name:"arrow-up",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),arrow_up_default=_sfc_main12,_sfc_main14=defineComponent({name:"Back",__name:"back",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"}),createBaseVNode("path",{fill:"currentColor",d:"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312z"})]))}}),back_default=_sfc_main14,_sfc_main22=defineComponent({name:"Bottom",__name:"bottom",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}}),bottom_default=_sfc_main22,_sfc_main29=defineComponent({name:"Calendar",__name:"calendar",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64"})]))}}),calendar_default=_sfc_main29,_sfc_main32=defineComponent({name:"CaretBottom",__name:"caret-bottom",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m192 384 320 384 320-384z"})]))}}),caret_bottom_default=_sfc_main32,_sfc_main34=defineComponent({name:"CaretRight",__name:"caret-right",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M384 192v640l384-320.064z"})]))}}),caret_right_default=_sfc_main34,_sfc_main35=defineComponent({name:"CaretTop",__name:"caret-top",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 320 192 704h639.936z"})]))}}),caret_top_default=_sfc_main35,_sfc_main43=defineComponent({name:"Check",__name:"check",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"})]))}}),check_default=_sfc_main43,_sfc_main49=defineComponent({name:"CircleCheck",__name:"circle-check",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),createBaseVNode("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}}),circle_check_default=_sfc_main49,_sfc_main50=defineComponent({name:"CircleCloseFilled",__name:"circle-close-filled",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),circle_close_filled_default=_sfc_main50,_sfc_main51=defineComponent({name:"CircleClose",__name:"circle-close",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),createBaseVNode("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),circle_close_default=_sfc_main51,_sfc_main54=defineComponent({name:"Clock",__name:"clock",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),createBaseVNode("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),createBaseVNode("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}}),clock_default=_sfc_main54,_sfc_main55=defineComponent({name:"CloseBold",__name:"close-bold",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504 738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512 828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496 285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512 195.2 285.696a64 64 0 0 1 0-90.496"})]))}}),close_bold_default=_sfc_main55,_sfc_main56=defineComponent({name:"Close",__name:"close",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),close_default=_sfc_main56,_sfc_main60=defineComponent({name:"Coin",__name:"coin",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m161.92 580.736 29.888 58.88C171.328 659.776 160 681.728 160 704c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 615.808 928 657.664 928 704c0 129.728-188.544 224-416 224S96 833.728 96 704c0-46.592 24.32-88.576 65.92-123.264"}),createBaseVNode("path",{fill:"currentColor",d:"m161.92 388.736 29.888 58.88C171.328 467.84 160 489.792 160 512c0 82.304 155.328 160 352 160s352-77.696 352-160c0-22.272-11.392-44.16-31.808-64.32l30.464-58.432C903.936 423.808 928 465.664 928 512c0 129.728-188.544 224-416 224S96 641.728 96 512c0-46.592 24.32-88.576 65.92-123.264"}),createBaseVNode("path",{fill:"currentColor",d:"M512 544c-227.456 0-416-94.272-416-224S284.544 96 512 96s416 94.272 416 224-188.544 224-416 224m0-64c196.672 0 352-77.696 352-160S708.672 160 512 160s-352 77.696-352 160 155.328 160 352 160"})]))}}),coin_default=_sfc_main60,_sfc_main66=defineComponent({name:"Connection",__name:"connection",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192z"}),createBaseVNode("path",{fill:"currentColor",d:"M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.06 192.06 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192z"})]))}}),connection_default=_sfc_main66,_sfc_main68=defineComponent({name:"CopyDocument",__name:"copy-document",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M768 832a128 128 0 0 1-128 128H192A128 128 0 0 1 64 832V384a128 128 0 0 1 128-128v64a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64z"}),createBaseVNode("path",{fill:"currentColor",d:"M384 128a64 64 0 0 0-64 64v448a64 64 0 0 0 64 64h448a64 64 0 0 0 64-64V192a64 64 0 0 0-64-64zm0-64h448a128 128 0 0 1 128 128v448a128 128 0 0 1-128 128H384a128 128 0 0 1-128-128V192A128 128 0 0 1 384 64"})]))}}),copy_document_default=_sfc_main68,_sfc_main72=defineComponent({name:"DArrowLeft",__name:"d-arrow-left",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.59 30.59 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.59 30.59 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672zm256 0a29.12 29.12 0 0 1 41.728 0 30.59 30.59 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.59 30.59 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672z"})]))}}),d_arrow_left_default=_sfc_main72,_sfc_main73=defineComponent({name:"DArrowRight",__name:"d-arrow-right",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.59 30.59 0 0 1 0-42.752L764.736 512 452.864 192a30.59 30.59 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.59 30.59 0 0 1 0-42.752L508.736 512 196.864 192a30.59 30.59 0 0 1 0-42.688"})]))}}),d_arrow_right_default=_sfc_main73,_sfc_main80=defineComponent({name:"Delete",__name:"delete",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}}),delete_default=_sfc_main80,_sfc_main87=defineComponent({name:"DocumentCopy",__name:"document-copy",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M128 320v576h576V320zm-32-64h640a32 32 0 0 1 32 32v640a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32M960 96v704a32 32 0 0 1-32 32h-96v-64h64V128H384v64h-64V96a32 32 0 0 1 32-32h576a32 32 0 0 1 32 32M256 672h320v64H256zm0-192h320v64H256z"})]))}}),document_copy_default=_sfc_main87,_sfc_main90=defineComponent({name:"Document",__name:"document",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"})]))}}),document_default=_sfc_main90,_sfc_main93=defineComponent({name:"EditPen",__name:"edit-pen",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m199.04 672.64 193.984 112 224-387.968-193.92-112-224 388.032zm-23.872 60.16 32.896 148.288 144.896-45.696zM455.04 229.248l193.92 112 56.704-98.112-193.984-112zM104.32 708.8l384-665.024 304.768 175.936L409.152 884.8h.064l-248.448 78.336zm384 254.272v-64h448v64z"})]))}}),edit_pen_default=_sfc_main93,_sfc_main94=defineComponent({name:"Edit",__name:"edit",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640z"}),createBaseVNode("path",{fill:"currentColor",d:"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z"})]))}}),edit_default=_sfc_main94,_sfc_main101=defineComponent({name:"Files",__name:"files",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M128 384v448h768V384zm-32-64h832a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32m64-128h704v64H160zm96-128h512v64H256z"})]))}}),files_default=_sfc_main101,_sfc_main111=defineComponent({name:"FolderOpened",__name:"folder-opened",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M878.08 448H241.92l-96 384h636.16zM832 384v-64H485.76L357.504 192H128v448l57.92-231.744A32 32 0 0 1 216.96 384zm-24.96 512H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h287.872l128.384 128H864a32 32 0 0 1 32 32v96h23.04a32 32 0 0 1 31.04 39.744l-112 448A32 32 0 0 1 807.04 896"})]))}}),folder_opened_default=_sfc_main111,_sfc_main118=defineComponent({name:"FullScreen",__name:"full-screen",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z"})]))}}),full_screen_default=_sfc_main118,_sfc_main125=defineComponent({name:"Goods",__name:"goods",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M320 288v-22.336C320 154.688 405.504 64 512 64s192 90.688 192 201.664v22.4h131.072a32 32 0 0 1 31.808 28.8l57.6 576a32 32 0 0 1-31.808 35.2H131.328a32 32 0 0 1-31.808-35.2l57.6-576a32 32 0 0 1 31.808-28.8H320zm64 0h256v-22.336C640 189.248 582.272 128 512 128s-128 61.248-128 137.664v22.4zm-64 64H217.92l-51.2 512h690.56l-51.264-512H704v96a32 32 0 1 1-64 0v-96H384v96a32 32 0 0 1-64 0z"})]))}}),goods_default=_sfc_main125,_sfc_main127=defineComponent({name:"Grid",__name:"grid",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M640 384v256H384V384zm64 0h192v256H704zm-64 512H384V704h256zm64 0V704h192v192zm-64-768v192H384V128zm64 0h192v192H704zM320 384v256H128V384zm0 512H128V704h192zm0-768v192H128V128z"})]))}}),grid_default=_sfc_main127,_sfc_main133=defineComponent({name:"Hide",__name:"hide",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),createBaseVNode("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}}),hide_default=_sfc_main133,_sfc_main143=defineComponent({name:"InfoFilled",__name:"info-filled",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),info_filled_default=_sfc_main143,_sfc_main149=defineComponent({name:"List",__name:"list",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M704 192h160v736H160V192h160v64h384zM288 512h448v-64H288zm0 256h448v-64H288zm96-576V96h256v96z"})]))}}),list_default=_sfc_main149,_sfc_main150=defineComponent({name:"Loading",__name:"loading",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}}),loading_default=_sfc_main150,_sfc_main162=defineComponent({name:"Memo",__name:"memo",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg","xml:space":"preserve",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M480 320h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32"}),createBaseVNode("path",{fill:"currentColor",d:"M887.01 72.99C881.01 67 873.34 64 864 64H160c-9.35 0-17.02 3-23.01 8.99C131 78.99 128 86.66 128 96v832c0 9.35 2.99 17.02 8.99 23.01S150.66 960 160 960h704c9.35 0 17.02-2.99 23.01-8.99S896 937.34 896 928V96c0-9.35-3-17.02-8.99-23.01M192 896V128h96v768zm640 0H352V128h480z"}),createBaseVNode("path",{fill:"currentColor",d:"M480 512h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32m0 192h192c21.33 0 32-10.67 32-32s-10.67-32-32-32H480c-21.33 0-32 10.67-32 32s10.67 32 32 32"})]))}}),memo_default=_sfc_main162,_sfc_main169=defineComponent({name:"Minus",__name:"minus",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64"})]))}}),minus_default=_sfc_main169,_sfc_main174=defineComponent({name:"MoreFilled",__name:"more-filled",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224"})]))}}),more_filled_default=_sfc_main174,_sfc_main195=defineComponent({name:"PictureFilled",__name:"picture-filled",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M96 896a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h832a32 32 0 0 1 32 32v704a32 32 0 0 1-32 32zm315.52-228.48-68.928-68.928a32 32 0 0 0-45.248 0L128 768.064h778.688l-242.112-290.56a32 32 0 0 0-49.216 0L458.752 665.408a32 32 0 0 1-47.232 2.112M256 384a96 96 0 1 0 192.064-.064A96 96 0 0 0 256 384"})]))}}),picture_filled_default=_sfc_main195,_sfc_main201=defineComponent({name:"Plus",__name:"plus",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),plus_default=_sfc_main201,_sfc_main203=defineComponent({name:"Position",__name:"position",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m249.6 417.088 319.744 43.072 39.168 310.272L845.12 178.88zm-129.024 47.168a32 32 0 0 1-7.68-61.44l777.792-311.04a32 32 0 0 1 41.6 41.6l-310.336 775.68a32 32 0 0 1-61.44-7.808L512 516.992z"})]))}}),position_default=_sfc_main203,_sfc_main211=defineComponent({name:"QuestionFilled",__name:"question-filled",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"})]))}}),question_filled_default=_sfc_main211,_sfc_main221=defineComponent({name:"Right",__name:"right",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M754.752 480H160a32 32 0 1 0 0 64h594.752L521.344 777.344a32 32 0 0 0 45.312 45.312l288-288a32 32 0 0 0 0-45.312l-288-288a32 32 0 1 0-45.312 45.312z"})]))}}),right_default=_sfc_main221,_sfc_main222=defineComponent({name:"ScaleToOriginal",__name:"scale-to-original",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.12 30.12 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.12 30.12 0 0 0-30.118-30.118m-361.412 0a30.12 30.12 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.12 30.12 0 0 0-30.118-30.118M512 361.412a30.12 30.12 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.12 30.12 0 0 0 512 361.412M512 512a30.12 30.12 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.12 30.12 0 0 0 512 512"})]))}}),scale_to_original_default=_sfc_main222,_sfc_main225=defineComponent({name:"Search",__name:"search",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}}),search_default=_sfc_main225,_sfc_main249=defineComponent({name:"SuccessFilled",__name:"success-filled",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),success_filled_default=_sfc_main249,_sfc_main250=defineComponent({name:"Sugar",__name:"sugar",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m801.728 349.184 4.48 4.48a128 128 0 0 1 0 180.992L534.656 806.144a128 128 0 0 1-181.056 0l-4.48-4.48-19.392 109.696a64 64 0 0 1-108.288 34.176L78.464 802.56a64 64 0 0 1 34.176-108.288l109.76-19.328-4.544-4.544a128 128 0 0 1 0-181.056l271.488-271.488a128 128 0 0 1 181.056 0l4.48 4.48 19.392-109.504a64 64 0 0 1 108.352-34.048l142.592 143.04a64 64 0 0 1-34.24 108.16zm-548.8 198.72h447.168v2.24l60.8-60.8a63.8 63.8 0 0 0 18.752-44.416h-426.88l-89.664 89.728a64 64 0 0 0-10.24 13.248zm0 64q4.128 7.104 10.176 13.248l135.744 135.744a64 64 0 0 0 90.496 0L638.4 611.904zm490.048-230.976L625.152 263.104a64 64 0 0 0-90.496 0L416.768 380.928zM123.712 757.312l142.976 142.976 24.32-137.6a25.6 25.6 0 0 0-29.696-29.632zm633.6-633.344-24.32 137.472a25.6 25.6 0 0 0 29.632 29.632l137.28-24.064-142.656-143.04z"})]))}}),sugar_default=_sfc_main250,_sfc_main256=defineComponent({name:"SwitchButton",__name:"switch-button",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M352 159.872V230.4a352 352 0 1 0 320 0v-70.528A416.128 416.128 0 0 1 512 960a416 416 0 0 1-160-800.128"}),createBaseVNode("path",{fill:"currentColor",d:"M512 64q32 0 32 32v320q0 32-32 32t-32-32V96q0-32 32-32"})]))}}),switch_button_default=_sfc_main256,_sfc_main260=defineComponent({name:"Ticket",__name:"ticket",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M640 832H64V640a128 128 0 1 0 0-256V192h576v160h64V192h256v192a128 128 0 1 0 0 256v192H704V672h-64zm0-416v192h64V416z"})]))}}),ticket_default=_sfc_main260,_sfc_main261=defineComponent({name:"Tickets",__name:"tickets",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M192 128v768h640V128zm-32-64h704a32 32 0 0 1 32 32v832a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h192v64H320zm0 384h384v64H320z"})]))}}),tickets_default=_sfc_main261,_sfc_main267=defineComponent({name:"Top",__name:"top",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}}),top_default=_sfc_main267,_sfc_main283=defineComponent({name:"View",__name:"view",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),view_default=_sfc_main283,_sfc_main287=defineComponent({name:"WarningFilled",__name:"warning-filled",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),warning_filled_default=_sfc_main287,_sfc_main292=defineComponent({name:"ZoomIn",__name:"zoom-in",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704m-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64z"})]))}}),zoom_in_default=_sfc_main292,_sfc_main293=defineComponent({name:"ZoomOut",__name:"zoom-out",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[createBaseVNode("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704M352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64"})]))}}),zoom_out_default=_sfc_main293,freeGlobal=typeof global=="object"&&global&&global.Object===Object&&global,freeSelf=typeof self=="object"&&self&&self.Object===Object&&self,root$1=freeGlobal||freeSelf||Function("return this")(),Symbol$1=root$1.Symbol,objectProto$h=Object.prototype,hasOwnProperty$h=objectProto$h.hasOwnProperty,nativeObjectToString$1=objectProto$h.toString,symToStringTag$1=Symbol$1?Symbol$1.toStringTag:void 0;function getRawTag(o){var e=hasOwnProperty$h.call(o,symToStringTag$1),t=o[symToStringTag$1];try{o[symToStringTag$1]=void 0;var r=!0}catch(a){}var s=nativeObjectToString$1.call(o);return r&&(e?o[symToStringTag$1]=t:delete o[symToStringTag$1]),s}var objectProto$g=Object.prototype,nativeObjectToString=objectProto$g.toString;function objectToString(o){return nativeObjectToString.call(o)}var nullTag="[object Null]",undefinedTag="[object Undefined]",symToStringTag=Symbol$1?Symbol$1.toStringTag:void 0;function baseGetTag(o){return o==null?o===void 0?undefinedTag:nullTag:symToStringTag&&symToStringTag in Object(o)?getRawTag(o):objectToString(o)}function isObjectLike(o){return o!=null&&typeof o=="object"}var symbolTag$3="[object Symbol]";function isSymbol(o){return typeof o=="symbol"||isObjectLike(o)&&baseGetTag(o)==symbolTag$3}function arrayMap(o,e){for(var t=-1,r=o==null?0:o.length,s=Array(r);++t<r;)s[t]=e(o[t],t,o);return s}var isArray$2=Array.isArray,symbolProto$2=Symbol$1?Symbol$1.prototype:void 0,symbolToString=symbolProto$2?symbolProto$2.toString:void 0;function baseToString(o){if(typeof o=="string")return o;if(isArray$2(o))return arrayMap(o,baseToString)+"";if(isSymbol(o))return symbolToString?symbolToString.call(o):"";var e=o+"";return e=="0"&&1/o==-1/0?"-0":e}var reWhitespace=/\s/;function trimmedEndIndex(o){for(var e=o.length;e--&&reWhitespace.test(o.charAt(e)););return e}var reTrimStart=/^\s+/;function baseTrim(o){return o&&o.slice(0,trimmedEndIndex(o)+1).replace(reTrimStart,"")}function isObject$5(o){var e=typeof o;return o!=null&&(e=="object"||e=="function")}var NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber(o){if(typeof o=="number")return o;if(isSymbol(o))return NAN;if(isObject$5(o)){var e=typeof o.valueOf=="function"?o.valueOf():o;o=isObject$5(e)?e+"":e}if(typeof o!="string")return o===0?o:+o;o=baseTrim(o);var t=reIsBinary.test(o);return t||reIsOctal.test(o)?freeParseInt(o.slice(2),t?2:8):reIsBadHex.test(o)?NAN:+o}function identity$1(o){return o}var asyncTag="[object AsyncFunction]",funcTag$2="[object Function]",genTag$1="[object GeneratorFunction]",proxyTag="[object Proxy]";function isFunction$3(o){if(!isObject$5(o))return!1;var e=baseGetTag(o);return e==funcTag$2||e==genTag$1||e==asyncTag||e==proxyTag}var coreJsData=root$1["__core-js_shared__"],maskSrcKey=(function(){var o=/[^.]+$/.exec(coreJsData&&coreJsData.keys&&coreJsData.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""})();function isMasked(o){return!!maskSrcKey&&maskSrcKey in o}var funcProto$2=Function.prototype,funcToString$2=funcProto$2.toString;function toSource(o){if(o!=null){try{return funcToString$2.call(o)}catch(e){}try{return o+""}catch(e){}}return""}var reRegExpChar=/[\\^$.*+?()[\]{}|]/g,reIsHostCtor=/^\[object .+?Constructor\]$/,funcProto$1=Function.prototype,objectProto$f=Object.prototype,funcToString$1=funcProto$1.toString,hasOwnProperty$g=objectProto$f.hasOwnProperty,reIsNative=RegExp("^"+funcToString$1.call(hasOwnProperty$g).replace(reRegExpChar,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function baseIsNative(o){if(!isObject$5(o)||isMasked(o))return!1;var e=isFunction$3(o)?reIsNative:reIsHostCtor;return e.test(toSource(o))}function getValue$1(o,e){return o==null?void 0:o[e]}function getNative(o,e){var t=getValue$1(o,e);return baseIsNative(t)?t:void 0}var WeakMap$1=getNative(root$1,"WeakMap"),objectCreate=Object.create,baseCreate=(function(){function o(){}return function(e){if(!isObject$5(e))return{};if(objectCreate)return objectCreate(e);o.prototype=e;var t=new o;return o.prototype=void 0,t}})();function apply$1(o,e,t){switch(t.length){case 0:return o.call(e);case 1:return o.call(e,t[0]);case 2:return o.call(e,t[0],t[1]);case 3:return o.call(e,t[0],t[1],t[2])}return o.apply(e,t)}function noop$1(){}function copyArray(o,e){var t=-1,r=o.length;for(e||(e=Array(r));++t<r;)e[t]=o[t];return e}var HOT_COUNT=800,HOT_SPAN=16,nativeNow=Date.now;function shortOut(o){var e=0,t=0;return function(){var r=nativeNow(),s=HOT_SPAN-(r-t);if(t=r,s>0){if(++e>=HOT_COUNT)return arguments[0]}else e=0;return o.apply(void 0,arguments)}}function constant(o){return function(){return o}}var defineProperty=(function(){try{var o=getNative(Object,"defineProperty");return o({},"",{}),o}catch(e){}})(),baseSetToString=defineProperty?function(o,e){return defineProperty(o,"toString",{configurable:!0,enumerable:!1,value:constant(e),writable:!0})}:identity$1,setToString=shortOut(baseSetToString);function arrayEach(o,e){for(var t=-1,r=o==null?0:o.length;++t<r&&e(o[t],t,o)!==!1;);return o}function baseFindIndex(o,e,t,r){for(var s=o.length,a=t+(r?1:-1);r?a--:++a<s;)if(e(o[a],a,o))return a;return-1}function baseIsNaN(o){return o!==o}function strictIndexOf(o,e,t){for(var r=t-1,s=o.length;++r<s;)if(o[r]===e)return r;return-1}function baseIndexOf(o,e,t){return e===e?strictIndexOf(o,e,t):baseFindIndex(o,baseIsNaN,t)}function arrayIncludes(o,e){var t=o==null?0:o.length;return!!t&&baseIndexOf(o,e,0)>-1}var MAX_SAFE_INTEGER$1=9007199254740991,reIsUint=/^(?:0|[1-9]\d*)$/;function isIndex(o,e){var t=typeof o;return e=e==null?MAX_SAFE_INTEGER$1:e,!!e&&(t=="number"||t!="symbol"&&reIsUint.test(o))&&o>-1&&o%1==0&&o<e}function baseAssignValue(o,e,t){e=="__proto__"&&defineProperty?defineProperty(o,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):o[e]=t}function eq(o,e){return o===e||o!==o&&e!==e}var objectProto$e=Object.prototype,hasOwnProperty$f=objectProto$e.hasOwnProperty;function assignValue(o,e,t){var r=o[e];(!(hasOwnProperty$f.call(o,e)&&eq(r,t))||t===void 0&&!(e in o))&&baseAssignValue(o,e,t)}function copyObject(o,e,t,r){var s=!t;t||(t={});for(var a=-1,l=e.length;++a<l;){var c=e[a],d=void 0;d===void 0&&(d=o[c]),s?baseAssignValue(t,c,d):assignValue(t,c,d)}return t}var nativeMax$1=Math.max;function overRest(o,e,t){return e=nativeMax$1(e===void 0?o.length-1:e,0),function(){for(var r=arguments,s=-1,a=nativeMax$1(r.length-e,0),l=Array(a);++s<a;)l[s]=r[e+s];s=-1;for(var c=Array(e+1);++s<e;)c[s]=r[s];return c[e]=t(l),apply$1(o,this,c)}}function baseRest(o,e){return setToString(overRest(o,e,identity$1),o+"")}var MAX_SAFE_INTEGER=9007199254740991;function isLength(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=MAX_SAFE_INTEGER}function isArrayLike$1(o){return o!=null&&isLength(o.length)&&!isFunction$3(o)}function isIterateeCall(o,e,t){if(!isObject$5(t))return!1;var r=typeof e;return(r=="number"?isArrayLike$1(t)&&isIndex(e,t.length):r=="string"&&e in t)?eq(t[e],o):!1}function createAssigner(o){return baseRest(function(e,t){var r=-1,s=t.length,a=s>1?t[s-1]:void 0,l=s>2?t[2]:void 0;for(a=o.length>3&&typeof a=="function"?(s--,a):void 0,l&&isIterateeCall(t[0],t[1],l)&&(a=s<3?void 0:a,s=1),e=Object(e);++r<s;){var c=t[r];c&&o(e,c,r,a)}return e})}var objectProto$d=Object.prototype;function isPrototype(o){var e=o&&o.constructor,t=typeof e=="function"&&e.prototype||objectProto$d;return o===t}function baseTimes(o,e){for(var t=-1,r=Array(o);++t<o;)r[t]=e(t);return r}var argsTag$3="[object Arguments]";function baseIsArguments(o){return isObjectLike(o)&&baseGetTag(o)==argsTag$3}var objectProto$c=Object.prototype,hasOwnProperty$e=objectProto$c.hasOwnProperty,propertyIsEnumerable$1=objectProto$c.propertyIsEnumerable,isArguments=baseIsArguments((function(){return arguments})())?baseIsArguments:function(o){return isObjectLike(o)&&hasOwnProperty$e.call(o,"callee")&&!propertyIsEnumerable$1.call(o,"callee")};function stubFalse(){return!1}var freeExports$2=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule$2=freeExports$2&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports$2=freeModule$2&&freeModule$2.exports===freeExports$2,Buffer$2=moduleExports$2?root$1.Buffer:void 0,nativeIsBuffer=Buffer$2?Buffer$2.isBuffer:void 0,isBuffer=nativeIsBuffer||stubFalse,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$3="[object Boolean]",dateTag$3="[object Date]",errorTag$2="[object Error]",funcTag$1="[object Function]",mapTag$6="[object Map]",numberTag$3="[object Number]",objectTag$4="[object Object]",regexpTag$3="[object RegExp]",setTag$6="[object Set]",stringTag$3="[object String]",weakMapTag$2="[object WeakMap]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0;typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$3]=typedArrayTags[boolTag$3]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$3]=typedArrayTags[errorTag$2]=typedArrayTags[funcTag$1]=typedArrayTags[mapTag$6]=typedArrayTags[numberTag$3]=typedArrayTags[objectTag$4]=typedArrayTags[regexpTag$3]=typedArrayTags[setTag$6]=typedArrayTags[stringTag$3]=typedArrayTags[weakMapTag$2]=!1;function baseIsTypedArray(o){return isObjectLike(o)&&isLength(o.length)&&!!typedArrayTags[baseGetTag(o)]}function baseUnary(o){return function(e){return o(e)}}var freeExports$1=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule$1=freeExports$1&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports$1=freeModule$1&&freeModule$1.exports===freeExports$1,freeProcess=moduleExports$1&&freeGlobal.process,nodeUtil=(function(){try{var o=freeModule$1&&freeModule$1.require&&freeModule$1.require("util").types;return o||freeProcess&&freeProcess.binding&&freeProcess.binding("util")}catch(e){}})(),nodeIsTypedArray=nodeUtil&&nodeUtil.isTypedArray,isTypedArray$1=nodeIsTypedArray?baseUnary(nodeIsTypedArray):baseIsTypedArray,objectProto$b=Object.prototype,hasOwnProperty$d=objectProto$b.hasOwnProperty;function arrayLikeKeys(o,e){var t=isArray$2(o),r=!t&&isArguments(o),s=!t&&!r&&isBuffer(o),a=!t&&!r&&!s&&isTypedArray$1(o),l=t||r||s||a,c=l?baseTimes(o.length,String):[],d=c.length;for(var u in o)(e||hasOwnProperty$d.call(o,u))&&!(l&&(u=="length"||s&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||isIndex(u,d)))&&c.push(u);return c}function overArg(o,e){return function(t){return o(e(t))}}var nativeKeys=overArg(Object.keys,Object),objectProto$a=Object.prototype,hasOwnProperty$c=objectProto$a.hasOwnProperty;function baseKeys(o){if(!isPrototype(o))return nativeKeys(o);var e=[];for(var t in Object(o))hasOwnProperty$c.call(o,t)&&t!="constructor"&&e.push(t);return e}function keys$1(o){return isArrayLike$1(o)?arrayLikeKeys(o):baseKeys(o)}function nativeKeysIn(o){var e=[];if(o!=null)for(var t in Object(o))e.push(t);return e}var objectProto$9=Object.prototype,hasOwnProperty$b=objectProto$9.hasOwnProperty;function baseKeysIn(o){if(!isObject$5(o))return nativeKeysIn(o);var e=isPrototype(o),t=[];for(var r in o)r=="constructor"&&(e||!hasOwnProperty$b.call(o,r))||t.push(r);return t}function keysIn(o){return isArrayLike$1(o)?arrayLikeKeys(o,!0):baseKeysIn(o)}var reIsDeepProp=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,reIsPlainProp=/^\w*$/;function isKey(o,e){if(isArray$2(o))return!1;var t=typeof o;return t=="number"||t=="symbol"||t=="boolean"||o==null||isSymbol(o)?!0:reIsPlainProp.test(o)||!reIsDeepProp.test(o)||e!=null&&o in Object(e)}var nativeCreate=getNative(Object,"create");function hashClear(){this.__data__=nativeCreate?nativeCreate(null):{},this.size=0}function hashDelete(o){var e=this.has(o)&&delete this.__data__[o];return this.size-=e?1:0,e}var HASH_UNDEFINED$2="__lodash_hash_undefined__",objectProto$8=Object.prototype,hasOwnProperty$a=objectProto$8.hasOwnProperty;function hashGet(o){var e=this.__data__;if(nativeCreate){var t=e[o];return t===HASH_UNDEFINED$2?void 0:t}return hasOwnProperty$a.call(e,o)?e[o]:void 0}var objectProto$7=Object.prototype,hasOwnProperty$9=objectProto$7.hasOwnProperty;function hashHas(o){var e=this.__data__;return nativeCreate?e[o]!==void 0:hasOwnProperty$9.call(e,o)}var HASH_UNDEFINED$1="__lodash_hash_undefined__";function hashSet(o,e){var t=this.__data__;return this.size+=this.has(o)?0:1,t[o]=nativeCreate&&e===void 0?HASH_UNDEFINED$1:e,this}function Hash(o){var e=-1,t=o==null?0:o.length;for(this.clear();++e<t;){var r=o[e];this.set(r[0],r[1])}}Hash.prototype.clear=hashClear;Hash.prototype.delete=hashDelete;Hash.prototype.get=hashGet;Hash.prototype.has=hashHas;Hash.prototype.set=hashSet;function listCacheClear(){this.__data__=[],this.size=0}function assocIndexOf(o,e){for(var t=o.length;t--;)if(eq(o[t][0],e))return t;return-1}var arrayProto=Array.prototype,splice$2=arrayProto.splice;function listCacheDelete(o){var e=this.__data__,t=assocIndexOf(e,o);if(t<0)return!1;var r=e.length-1;return t==r?e.pop():splice$2.call(e,t,1),--this.size,!0}function listCacheGet(o){var e=this.__data__,t=assocIndexOf(e,o);return t<0?void 0:e[t][1]}function listCacheHas(o){return assocIndexOf(this.__data__,o)>-1}function listCacheSet(o,e){var t=this.__data__,r=assocIndexOf(t,o);return r<0?(++this.size,t.push([o,e])):t[r][1]=e,this}function ListCache(o){var e=-1,t=o==null?0:o.length;for(this.clear();++e<t;){var r=o[e];this.set(r[0],r[1])}}ListCache.prototype.clear=listCacheClear;ListCache.prototype.delete=listCacheDelete;ListCache.prototype.get=listCacheGet;ListCache.prototype.has=listCacheHas;ListCache.prototype.set=listCacheSet;var Map$1=getNative(root$1,"Map");function mapCacheClear(){this.size=0,this.__data__={hash:new Hash,map:new(Map$1||ListCache),string:new Hash}}function isKeyable(o){var e=typeof o;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?o!=="__proto__":o===null}function getMapData(o,e){var t=o.__data__;return isKeyable(e)?t[typeof e=="string"?"string":"hash"]:t.map}function mapCacheDelete(o){var e=getMapData(this,o).delete(o);return this.size-=e?1:0,e}function mapCacheGet(o){return getMapData(this,o).get(o)}function mapCacheHas(o){return getMapData(this,o).has(o)}function mapCacheSet(o,e){var t=getMapData(this,o),r=t.size;return t.set(o,e),this.size+=t.size==r?0:1,this}function MapCache(o){var e=-1,t=o==null?0:o.length;for(this.clear();++e<t;){var r=o[e];this.set(r[0],r[1])}}MapCache.prototype.clear=mapCacheClear;MapCache.prototype.delete=mapCacheDelete;MapCache.prototype.get=mapCacheGet;MapCache.prototype.has=mapCacheHas;MapCache.prototype.set=mapCacheSet;var FUNC_ERROR_TEXT$2="Expected a function";function memoize$1(o,e){if(typeof o!="function"||e!=null&&typeof e!="function")throw new TypeError(FUNC_ERROR_TEXT$2);var t=function(){var r=arguments,s=e?e.apply(this,r):r[0],a=t.cache;if(a.has(s))return a.get(s);var l=o.apply(this,r);return t.cache=a.set(s,l)||a,l};return t.cache=new(memoize$1.Cache||MapCache),t}memoize$1.Cache=MapCache;var MAX_MEMOIZE_SIZE=500;function memoizeCapped(o){var e=memoize$1(o,function(r){return t.size===MAX_MEMOIZE_SIZE&&t.clear(),r}),t=e.cache;return e}var rePropName=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,reEscapeChar=/\\(\\)?/g,stringToPath=memoizeCapped(function(o){var e=[];return o.charCodeAt(0)===46&&e.push(""),o.replace(rePropName,function(t,r,s,a){e.push(s?a.replace(reEscapeChar,"$1"):r||t)}),e});function toString(o){return o==null?"":baseToString(o)}function castPath(o,e){return isArray$2(o)?o:isKey(o,e)?[o]:stringToPath(toString(o))}function toKey(o){if(typeof o=="string"||isSymbol(o))return o;var e=o+"";return e=="0"&&1/o==-1/0?"-0":e}function baseGet(o,e){e=castPath(e,o);for(var t=0,r=e.length;o!=null&&t<r;)o=o[toKey(e[t++])];return t&&t==r?o:void 0}function get(o,e,t){var r=o==null?void 0:baseGet(o,e);return r===void 0?t:r}function arrayPush$1(o,e){for(var t=-1,r=e.length,s=o.length;++t<r;)o[s+t]=e[t];return o}var spreadableSymbol=Symbol$1?Symbol$1.isConcatSpreadable:void 0;function isFlattenable(o){return isArray$2(o)||isArguments(o)||!!(spreadableSymbol&&o&&o[spreadableSymbol])}function baseFlatten(o,e,t,r,s){var a=-1,l=o.length;for(t||(t=isFlattenable),s||(s=[]);++a<l;){var c=o[a];e>0&&t(c)?e>1?baseFlatten(c,e-1,t,r,s):arrayPush$1(s,c):r||(s[s.length]=c)}return s}function flatten(o){var e=o==null?0:o.length;return e?baseFlatten(o,1):[]}function flatRest(o){return setToString(overRest(o,void 0,flatten),o+"")}var getPrototype=overArg(Object.getPrototypeOf,Object),objectTag$3="[object Object]",funcProto=Function.prototype,objectProto$6=Object.prototype,funcToString=funcProto.toString,hasOwnProperty$8=objectProto$6.hasOwnProperty,objectCtorString=funcToString.call(Object);function isPlainObject(o){if(!isObjectLike(o)||baseGetTag(o)!=objectTag$3)return!1;var e=getPrototype(o);if(e===null)return!0;var t=hasOwnProperty$8.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&funcToString.call(t)==objectCtorString}function stackClear(){this.__data__=new ListCache,this.size=0}function stackDelete(o){var e=this.__data__,t=e.delete(o);return this.size=e.size,t}function stackGet(o){return this.__data__.get(o)}function stackHas(o){return this.__data__.has(o)}var LARGE_ARRAY_SIZE$1=200;function stackSet(o,e){var t=this.__data__;if(t instanceof ListCache){var r=t.__data__;if(!Map$1||r.length<LARGE_ARRAY_SIZE$1-1)return r.push([o,e]),this.size=++t.size,this;t=this.__data__=new MapCache(r)}return t.set(o,e),this.size=t.size,this}function Stack$1(o){var e=this.__data__=new ListCache(o);this.size=e.size}Stack$1.prototype.clear=stackClear;Stack$1.prototype.delete=stackDelete;Stack$1.prototype.get=stackGet;Stack$1.prototype.has=stackHas;Stack$1.prototype.set=stackSet;function baseAssign(o,e){return o&&copyObject(e,keys$1(e),o)}function baseAssignIn(o,e){return o&&copyObject(e,keysIn(e),o)}var freeExports=typeof exports=="object"&&exports&&!exports.nodeType&&exports,freeModule=freeExports&&typeof module=="object"&&module&&!module.nodeType&&module,moduleExports=freeModule&&freeModule.exports===freeExports,Buffer$1=moduleExports?root$1.Buffer:void 0,allocUnsafe=Buffer$1?Buffer$1.allocUnsafe:void 0;function cloneBuffer(o,e){if(e)return o.slice();var t=o.length,r=allocUnsafe?allocUnsafe(t):new o.constructor(t);return o.copy(r),r}function arrayFilter(o,e){for(var t=-1,r=o==null?0:o.length,s=0,a=[];++t<r;){var l=o[t];e(l,t,o)&&(a[s++]=l)}return a}function stubArray(){return[]}var objectProto$5=Object.prototype,propertyIsEnumerable=objectProto$5.propertyIsEnumerable,nativeGetSymbols$1=Object.getOwnPropertySymbols,getSymbols=nativeGetSymbols$1?function(o){return o==null?[]:(o=Object(o),arrayFilter(nativeGetSymbols$1(o),function(e){return propertyIsEnumerable.call(o,e)}))}:stubArray;function copySymbols(o,e){return copyObject(o,getSymbols(o),e)}var nativeGetSymbols=Object.getOwnPropertySymbols,getSymbolsIn=nativeGetSymbols?function(o){for(var e=[];o;)arrayPush$1(e,getSymbols(o)),o=getPrototype(o);return e}:stubArray;function copySymbolsIn(o,e){return copyObject(o,getSymbolsIn(o),e)}function baseGetAllKeys(o,e,t){var r=e(o);return isArray$2(o)?r:arrayPush$1(r,t(o))}function getAllKeys(o){return baseGetAllKeys(o,keys$1,getSymbols)}function getAllKeysIn(o){return baseGetAllKeys(o,keysIn,getSymbolsIn)}var DataView$1=getNative(root$1,"DataView"),Promise$1=getNative(root$1,"Promise"),Set$1=getNative(root$1,"Set"),mapTag$5="[object Map]",objectTag$2="[object Object]",promiseTag="[object Promise]",setTag$5="[object Set]",weakMapTag$1="[object WeakMap]",dataViewTag$3="[object DataView]",dataViewCtorString=toSource(DataView$1),mapCtorString=toSource(Map$1),promiseCtorString=toSource(Promise$1),setCtorString=toSource(Set$1),weakMapCtorString=toSource(WeakMap$1),getTag=baseGetTag;(DataView$1&&getTag(new DataView$1(new ArrayBuffer(1)))!=dataViewTag$3||Map$1&&getTag(new Map$1)!=mapTag$5||Promise$1&&getTag(Promise$1.resolve())!=promiseTag||Set$1&&getTag(new Set$1)!=setTag$5||WeakMap$1&&getTag(new WeakMap$1)!=weakMapTag$1)&&(getTag=function(o){var e=baseGetTag(o),t=e==objectTag$2?o.constructor:void 0,r=t?toSource(t):"";if(r)switch(r){case dataViewCtorString:return dataViewTag$3;case mapCtorString:return mapTag$5;case promiseCtorString:return promiseTag;case setCtorString:return setTag$5;case weakMapCtorString:return weakMapTag$1}return e});var objectProto$4=Object.prototype,hasOwnProperty$7=objectProto$4.hasOwnProperty;function initCloneArray(o){var e=o.length,t=new o.constructor(e);return e&&typeof o[0]=="string"&&hasOwnProperty$7.call(o,"index")&&(t.index=o.index,t.input=o.input),t}var Uint8Array$1=root$1.Uint8Array;function cloneArrayBuffer(o){var e=new o.constructor(o.byteLength);return new Uint8Array$1(e).set(new Uint8Array$1(o)),e}function cloneDataView(o,e){var t=e?cloneArrayBuffer(o.buffer):o.buffer;return new o.constructor(t,o.byteOffset,o.byteLength)}var reFlags=/\w*$/;function cloneRegExp(o){var e=new o.constructor(o.source,reFlags.exec(o));return e.lastIndex=o.lastIndex,e}var symbolProto$1=Symbol$1?Symbol$1.prototype:void 0,symbolValueOf$1=symbolProto$1?symbolProto$1.valueOf:void 0;function cloneSymbol(o){return symbolValueOf$1?Object(symbolValueOf$1.call(o)):{}}function cloneTypedArray(o,e){var t=e?cloneArrayBuffer(o.buffer):o.buffer;return new o.constructor(t,o.byteOffset,o.length)}var boolTag$2="[object Boolean]",dateTag$2="[object Date]",mapTag$4="[object Map]",numberTag$2="[object Number]",regexpTag$2="[object RegExp]",setTag$4="[object Set]",stringTag$2="[object String]",symbolTag$2="[object Symbol]",arrayBufferTag$2="[object ArrayBuffer]",dataViewTag$2="[object DataView]",float32Tag$1="[object Float32Array]",float64Tag$1="[object Float64Array]",int8Tag$1="[object Int8Array]",int16Tag$1="[object Int16Array]",int32Tag$1="[object Int32Array]",uint8Tag$1="[object Uint8Array]",uint8ClampedTag$1="[object Uint8ClampedArray]",uint16Tag$1="[object Uint16Array]",uint32Tag$1="[object Uint32Array]";function initCloneByTag(o,e,t){var r=o.constructor;switch(e){case arrayBufferTag$2:return cloneArrayBuffer(o);case boolTag$2:case dateTag$2:return new r(+o);case dataViewTag$2:return cloneDataView(o,t);case float32Tag$1:case float64Tag$1:case int8Tag$1:case int16Tag$1:case int32Tag$1:case uint8Tag$1:case uint8ClampedTag$1:case uint16Tag$1:case uint32Tag$1:return cloneTypedArray(o,t);case mapTag$4:return new r;case numberTag$2:case stringTag$2:return new r(o);case regexpTag$2:return cloneRegExp(o);case setTag$4:return new r;case symbolTag$2:return cloneSymbol(o)}}function initCloneObject(o){return typeof o.constructor=="function"&&!isPrototype(o)?baseCreate(getPrototype(o)):{}}var mapTag$3="[object Map]";function baseIsMap(o){return isObjectLike(o)&&getTag(o)==mapTag$3}var nodeIsMap=nodeUtil&&nodeUtil.isMap,isMap=nodeIsMap?baseUnary(nodeIsMap):baseIsMap,setTag$3="[object Set]";function baseIsSet(o){return isObjectLike(o)&&getTag(o)==setTag$3}var nodeIsSet=nodeUtil&&nodeUtil.isSet,isSet=nodeIsSet?baseUnary(nodeIsSet):baseIsSet,CLONE_DEEP_FLAG$1=1,CLONE_FLAT_FLAG=2,CLONE_SYMBOLS_FLAG$1=4,argsTag$1="[object Arguments]",arrayTag$1="[object Array]",boolTag$1="[object Boolean]",dateTag$1="[object Date]",errorTag$1="[object Error]",funcTag="[object Function]",genTag="[object GeneratorFunction]",mapTag$2="[object Map]",numberTag$1="[object Number]",objectTag$1="[object Object]",regexpTag$1="[object RegExp]",setTag$2="[object Set]",stringTag$1="[object String]",symbolTag$1="[object Symbol]",weakMapTag="[object WeakMap]",arrayBufferTag$1="[object ArrayBuffer]",dataViewTag$1="[object DataView]",float32Tag="[object Float32Array]",float64Tag="[object Float64Array]",int8Tag="[object Int8Array]",int16Tag="[object Int16Array]",int32Tag="[object Int32Array]",uint8Tag="[object Uint8Array]",uint8ClampedTag="[object Uint8ClampedArray]",uint16Tag="[object Uint16Array]",uint32Tag="[object Uint32Array]",cloneableTags={};cloneableTags[argsTag$1]=cloneableTags[arrayTag$1]=cloneableTags[arrayBufferTag$1]=cloneableTags[dataViewTag$1]=cloneableTags[boolTag$1]=cloneableTags[dateTag$1]=cloneableTags[float32Tag]=cloneableTags[float64Tag]=cloneableTags[int8Tag]=cloneableTags[int16Tag]=cloneableTags[int32Tag]=cloneableTags[mapTag$2]=cloneableTags[numberTag$1]=cloneableTags[objectTag$1]=cloneableTags[regexpTag$1]=cloneableTags[setTag$2]=cloneableTags[stringTag$1]=cloneableTags[symbolTag$1]=cloneableTags[uint8Tag]=cloneableTags[uint8ClampedTag]=cloneableTags[uint16Tag]=cloneableTags[uint32Tag]=!0;cloneableTags[errorTag$1]=cloneableTags[funcTag]=cloneableTags[weakMapTag]=!1;function baseClone(o,e,t,r,s,a){var l,c=e&CLONE_DEEP_FLAG$1,d=e&CLONE_FLAT_FLAG,u=e&CLONE_SYMBOLS_FLAG$1;if(t&&(l=s?t(o,r,s,a):t(o)),l!==void 0)return l;if(!isObject$5(o))return o;var g=isArray$2(o);if(g){if(l=initCloneArray(o),!c)return copyArray(o,l)}else{var f=getTag(o),m=f==funcTag||f==genTag;if(isBuffer(o))return cloneBuffer(o,c);if(f==objectTag$1||f==argsTag$1||m&&!s){if(l=d||m?{}:initCloneObject(o),!c)return d?copySymbolsIn(o,baseAssignIn(l,o)):copySymbols(o,baseAssign(l,o))}else{if(!cloneableTags[f])return s?o:{};l=initCloneByTag(o,f,c)}}a||(a=new Stack$1);var _=a.get(o);if(_)return _;a.set(o,l),isSet(o)?o.forEach(function(C){l.add(baseClone(C,e,t,C,o,a))}):isMap(o)&&o.forEach(function(C,y){l.set(y,baseClone(C,e,t,y,o,a))});var v=u?d?getAllKeysIn:getAllKeys:d?keysIn:keys$1,b=g?void 0:v(o);return arrayEach(b||o,function(C,y){b&&(y=C,C=o[y]),assignValue(l,y,baseClone(C,e,t,y,o,a))}),l}var CLONE_DEEP_FLAG=1,CLONE_SYMBOLS_FLAG=4;function cloneDeep(o){return baseClone(o,CLONE_DEEP_FLAG|CLONE_SYMBOLS_FLAG)}var HASH_UNDEFINED="__lodash_hash_undefined__";function setCacheAdd(o){return this.__data__.set(o,HASH_UNDEFINED),this}function setCacheHas(o){return this.__data__.has(o)}function SetCache(o){var e=-1,t=o==null?0:o.length;for(this.__data__=new MapCache;++e<t;)this.add(o[e])}SetCache.prototype.add=SetCache.prototype.push=setCacheAdd;SetCache.prototype.has=setCacheHas;function arraySome(o,e){for(var t=-1,r=o==null?0:o.length;++t<r;)if(e(o[t],t,o))return!0;return!1}function cacheHas(o,e){return o.has(e)}var COMPARE_PARTIAL_FLAG$5=1,COMPARE_UNORDERED_FLAG$3=2;function equalArrays(o,e,t,r,s,a){var l=t&COMPARE_PARTIAL_FLAG$5,c=o.length,d=e.length;if(c!=d&&!(l&&d>c))return!1;var u=a.get(o),g=a.get(e);if(u&&g)return u==e&&g==o;var f=-1,m=!0,_=t&COMPARE_UNORDERED_FLAG$3?new SetCache:void 0;for(a.set(o,e),a.set(e,o);++f<c;){var v=o[f],b=e[f];if(r)var C=l?r(b,v,f,e,o,a):r(v,b,f,o,e,a);if(C!==void 0){if(C)continue;m=!1;break}if(_){if(!arraySome(e,function(y,S){if(!cacheHas(_,S)&&(v===y||s(v,y,t,r,a)))return _.push(S)})){m=!1;break}}else if(!(v===b||s(v,b,t,r,a))){m=!1;break}}return a.delete(o),a.delete(e),m}function mapToArray(o){var e=-1,t=Array(o.size);return o.forEach(function(r,s){t[++e]=[s,r]}),t}function setToArray(o){var e=-1,t=Array(o.size);return o.forEach(function(r){t[++e]=r}),t}var COMPARE_PARTIAL_FLAG$4=1,COMPARE_UNORDERED_FLAG$2=2,boolTag="[object Boolean]",dateTag="[object Date]",errorTag="[object Error]",mapTag$1="[object Map]",numberTag="[object Number]",regexpTag="[object RegExp]",setTag$1="[object Set]",stringTag="[object String]",symbolTag="[object Symbol]",arrayBufferTag="[object ArrayBuffer]",dataViewTag="[object DataView]",symbolProto=Symbol$1?Symbol$1.prototype:void 0,symbolValueOf=symbolProto?symbolProto.valueOf:void 0;function equalByTag(o,e,t,r,s,a,l){switch(t){case dataViewTag:if(o.byteLength!=e.byteLength||o.byteOffset!=e.byteOffset)return!1;o=o.buffer,e=e.buffer;case arrayBufferTag:return!(o.byteLength!=e.byteLength||!a(new Uint8Array$1(o),new Uint8Array$1(e)));case boolTag:case dateTag:case numberTag:return eq(+o,+e);case errorTag:return o.name==e.name&&o.message==e.message;case regexpTag:case stringTag:return o==e+"";case mapTag$1:var c=mapToArray;case setTag$1:var d=r&COMPARE_PARTIAL_FLAG$4;if(c||(c=setToArray),o.size!=e.size&&!d)return!1;var u=l.get(o);if(u)return u==e;r|=COMPARE_UNORDERED_FLAG$2,l.set(o,e);var g=equalArrays(c(o),c(e),r,s,a,l);return l.delete(o),g;case symbolTag:if(symbolValueOf)return symbolValueOf.call(o)==symbolValueOf.call(e)}return!1}var COMPARE_PARTIAL_FLAG$3=1,objectProto$3=Object.prototype,hasOwnProperty$6=objectProto$3.hasOwnProperty;function equalObjects(o,e,t,r,s,a){var l=t&COMPARE_PARTIAL_FLAG$3,c=getAllKeys(o),d=c.length,u=getAllKeys(e),g=u.length;if(d!=g&&!l)return!1;for(var f=d;f--;){var m=c[f];if(!(l?m in e:hasOwnProperty$6.call(e,m)))return!1}var _=a.get(o),v=a.get(e);if(_&&v)return _==e&&v==o;var b=!0;a.set(o,e),a.set(e,o);for(var C=l;++f<d;){m=c[f];var y=o[m],S=e[m];if(r)var w=l?r(S,y,m,e,o,a):r(y,S,m,o,e,a);if(!(w===void 0?y===S||s(y,S,t,r,a):w)){b=!1;break}C||(C=m=="constructor")}if(b&&!C){var E=o.constructor,x=e.constructor;E!=x&&"constructor"in o&&"constructor"in e&&!(typeof E=="function"&&E instanceof E&&typeof x=="function"&&x instanceof x)&&(b=!1)}return a.delete(o),a.delete(e),b}var COMPARE_PARTIAL_FLAG$2=1,argsTag="[object Arguments]",arrayTag="[object Array]",objectTag="[object Object]",objectProto$2=Object.prototype,hasOwnProperty$5=objectProto$2.hasOwnProperty;function baseIsEqualDeep(o,e,t,r,s,a){var l=isArray$2(o),c=isArray$2(e),d=l?arrayTag:getTag(o),u=c?arrayTag:getTag(e);d=d==argsTag?objectTag:d,u=u==argsTag?objectTag:u;var g=d==objectTag,f=u==objectTag,m=d==u;if(m&&isBuffer(o)){if(!isBuffer(e))return!1;l=!0,g=!1}if(m&&!g)return a||(a=new Stack$1),l||isTypedArray$1(o)?equalArrays(o,e,t,r,s,a):equalByTag(o,e,d,t,r,s,a);if(!(t&COMPARE_PARTIAL_FLAG$2)){var _=g&&hasOwnProperty$5.call(o,"__wrapped__"),v=f&&hasOwnProperty$5.call(e,"__wrapped__");if(_||v){var b=_?o.value():o,C=v?e.value():e;return a||(a=new Stack$1),s(b,C,t,r,a)}}return m?(a||(a=new Stack$1),equalObjects(o,e,t,r,s,a)):!1}function baseIsEqual(o,e,t,r,s){return o===e?!0:o==null||e==null||!isObjectLike(o)&&!isObjectLike(e)?o!==o&&e!==e:baseIsEqualDeep(o,e,t,r,baseIsEqual,s)}var COMPARE_PARTIAL_FLAG$1=1,COMPARE_UNORDERED_FLAG$1=2;function baseIsMatch(o,e,t,r){var s=t.length,a=s;if(o==null)return!a;for(o=Object(o);s--;){var l=t[s];if(l[2]?l[1]!==o[l[0]]:!(l[0]in o))return!1}for(;++s<a;){l=t[s];var c=l[0],d=o[c],u=l[1];if(l[2]){if(d===void 0&&!(c in o))return!1}else{var g=new Stack$1,f;if(!(f===void 0?baseIsEqual(u,d,COMPARE_PARTIAL_FLAG$1|COMPARE_UNORDERED_FLAG$1,r,g):f))return!1}}return!0}function isStrictComparable(o){return o===o&&!isObject$5(o)}function getMatchData(o){for(var e=keys$1(o),t=e.length;t--;){var r=e[t],s=o[r];e[t]=[r,s,isStrictComparable(s)]}return e}function matchesStrictComparable(o,e){return function(t){return t==null?!1:t[o]===e&&(e!==void 0||o in Object(t))}}function baseMatches(o){var e=getMatchData(o);return e.length==1&&e[0][2]?matchesStrictComparable(e[0][0],e[0][1]):function(t){return t===o||baseIsMatch(t,o,e)}}function baseHasIn(o,e){return o!=null&&e in Object(o)}function hasPath(o,e,t){e=castPath(e,o);for(var r=-1,s=e.length,a=!1;++r<s;){var l=toKey(e[r]);if(!(a=o!=null&&t(o,l)))break;o=o[l]}return a||++r!=s?a:(s=o==null?0:o.length,!!s&&isLength(s)&&isIndex(l,s)&&(isArray$2(o)||isArguments(o)))}function hasIn(o,e){return o!=null&&hasPath(o,e,baseHasIn)}var COMPARE_PARTIAL_FLAG=1,COMPARE_UNORDERED_FLAG=2;function baseMatchesProperty(o,e){return isKey(o)&&isStrictComparable(e)?matchesStrictComparable(toKey(o),e):function(t){var r=get(t,o);return r===void 0&&r===e?hasIn(t,o):baseIsEqual(e,r,COMPARE_PARTIAL_FLAG|COMPARE_UNORDERED_FLAG)}}function baseProperty(o){return function(e){return e==null?void 0:e[o]}}function basePropertyDeep(o){return function(e){return baseGet(e,o)}}function property$1(o){return isKey(o)?baseProperty(toKey(o)):basePropertyDeep(o)}function baseIteratee(o){return typeof o=="function"?o:o==null?identity$1:typeof o=="object"?isArray$2(o)?baseMatchesProperty(o[0],o[1]):baseMatches(o):property$1(o)}function createBaseFor(o){return function(e,t,r){for(var s=-1,a=Object(e),l=r(e),c=l.length;c--;){var d=l[++s];if(t(a[d],d,a)===!1)break}return e}}var baseFor=createBaseFor();function baseForOwn(o,e){return o&&baseFor(o,e,keys$1)}function createBaseEach(o,e){return function(t,r){if(t==null)return t;if(!isArrayLike$1(t))return o(t,r);for(var s=t.length,a=-1,l=Object(t);++a<s&&r(l[a],a,l)!==!1;);return t}}var baseEach=createBaseEach(baseForOwn),now$1=function(){return root$1.Date.now()},FUNC_ERROR_TEXT$1="Expected a function",nativeMax=Math.max,nativeMin=Math.min;function debounce(o,e,t){var r,s,a,l,c,d,u=0,g=!1,f=!1,m=!0;if(typeof o!="function")throw new TypeError(FUNC_ERROR_TEXT$1);e=toNumber(e)||0,isObject$5(t)&&(g=!!t.leading,f="maxWait"in t,a=f?nativeMax(toNumber(t.maxWait)||0,e):a,m="trailing"in t?!!t.trailing:m);function _(L){var k=r,D=s;return r=s=void 0,u=L,l=o.apply(D,k),l}function v(L){return u=L,c=setTimeout(y,e),g?_(L):l}function b(L){var k=L-d,D=L-u,I=e-k;return f?nativeMin(I,a-D):I}function C(L){var k=L-d,D=L-u;return d===void 0||k>=e||k<0||f&&D>=a}function y(){var L=now$1();if(C(L))return S(L);c=setTimeout(y,b(L))}function S(L){return c=void 0,m&&r?_(L):(r=s=void 0,l)}function w(){c!==void 0&&clearTimeout(c),u=0,r=d=s=c=void 0}function E(){return c===void 0?l:S(now$1())}function x(){var L=now$1(),k=C(L);if(r=arguments,s=this,d=L,k){if(c===void 0)return v(d);if(f)return clearTimeout(c),c=setTimeout(y,e),_(d)}return c===void 0&&(c=setTimeout(y,e)),l}return x.cancel=w,x.flush=E,x}function assignMergeValue(o,e,t){(t!==void 0&&!eq(o[e],t)||t===void 0&&!(e in o))&&baseAssignValue(o,e,t)}function isArrayLikeObject(o){return isObjectLike(o)&&isArrayLike$1(o)}function safeGet(o,e){if(!(e==="constructor"&&typeof o[e]=="function")&&e!="__proto__")return o[e]}function toPlainObject(o){return copyObject(o,keysIn(o))}function baseMergeDeep(o,e,t,r,s,a,l){var c=safeGet(o,t),d=safeGet(e,t),u=l.get(d);if(u){assignMergeValue(o,t,u);return}var g=a?a(c,d,t+"",o,e,l):void 0,f=g===void 0;if(f){var m=isArray$2(d),_=!m&&isBuffer(d),v=!m&&!_&&isTypedArray$1(d);g=d,m||_||v?isArray$2(c)?g=c:isArrayLikeObject(c)?g=copyArray(c):_?(f=!1,g=cloneBuffer(d,!0)):v?(f=!1,g=cloneTypedArray(d,!0)):g=[]:isPlainObject(d)||isArguments(d)?(g=c,isArguments(c)?g=toPlainObject(c):(!isObject$5(c)||isFunction$3(c))&&(g=initCloneObject(d))):f=!1}f&&(l.set(d,g),s(g,d,r,a,l),l.delete(d)),assignMergeValue(o,t,g)}function baseMerge(o,e,t,r,s){o!==e&&baseFor(e,function(a,l){if(s||(s=new Stack$1),isObject$5(a))baseMergeDeep(o,e,l,t,baseMerge,r,s);else{var c=r?r(safeGet(o,l),a,l+"",o,e,s):void 0;c===void 0&&(c=a),assignMergeValue(o,l,c)}},keysIn)}var mergeWith=createAssigner(function(o,e,t,r){baseMerge(o,e,t,r)});function arrayIncludesWith(o,e,t){for(var r=-1,s=o==null?0:o.length;++r<s;)if(t(e,o[r]))return!0;return!1}function baseMap(o,e){var t=-1,r=isArrayLike$1(o)?Array(o.length):[];return baseEach(o,function(s,a,l){r[++t]=e(s,a,l)}),r}function map(o,e){var t=isArray$2(o)?arrayMap:baseMap;return t(o,baseIteratee(e))}var objectProto$1=Object.prototype,hasOwnProperty$4=objectProto$1.hasOwnProperty;function baseHas(o,e){return o!=null&&hasOwnProperty$4.call(o,e)}function has(o,e){return o!=null&&hasPath(o,e,baseHas)}var mapTag="[object Map]",setTag="[object Set]",objectProto=Object.prototype,hasOwnProperty$3=objectProto.hasOwnProperty;function isEmpty$2(o){if(o==null)return!0;if(isArrayLike$1(o)&&(isArray$2(o)||typeof o=="string"||typeof o.splice=="function"||isBuffer(o)||isTypedArray$1(o)||isArguments(o)))return!o.length;var e=getTag(o);if(e==mapTag||e==setTag)return!o.size;if(isPrototype(o))return!baseKeys(o).length;for(var t in o)if(hasOwnProperty$3.call(o,t))return!1;return!0}function isEqual$1(o,e){return baseIsEqual(o,e)}var merge$1=createAssigner(function(o,e,t){baseMerge(o,e,t)});function baseSet(o,e,t,r){if(!isObject$5(o))return o;e=castPath(e,o);for(var s=-1,a=e.length,l=a-1,c=o;c!=null&&++s<a;){var d=toKey(e[s]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return o;if(s!=l){var g=c[d];u=void 0,u===void 0&&(u=isObject$5(g)?g:isIndex(e[s+1])?[]:{})}assignValue(c,d,u),c=c[d]}return o}function basePickBy(o,e,t){for(var r=-1,s=e.length,a={};++r<s;){var l=e[r],c=baseGet(o,l);t(c,l)&&baseSet(a,castPath(l,o),c)}return a}function basePick(o,e){return basePickBy(o,e,function(t,r){return hasIn(o,r)})}var pick=flatRest(function(o,e){return o==null?{}:basePick(o,e)});function set(o,e,t){return o==null?o:baseSet(o,e,t)}var FUNC_ERROR_TEXT="Expected a function";function throttle$2(o,e,t){var r=!0,s=!0;if(typeof o!="function")throw new TypeError(FUNC_ERROR_TEXT);return isObject$5(t)&&(r="leading"in t?!!t.leading:r,s="trailing"in t?!!t.trailing:s),debounce(o,e,{leading:r,maxWait:e,trailing:s})}var INFINITY=1/0,createSet=Set$1&&1/setToArray(new Set$1([,-0]))[1]==INFINITY?function(o){return new Set$1(o)}:noop$1,LARGE_ARRAY_SIZE=200;function baseUniq(o,e,t){var r=-1,s=arrayIncludes,a=o.length,l=!0,c=[],d=c;if(t)l=!1,s=arrayIncludesWith;else if(a>=LARGE_ARRAY_SIZE){var u=e?null:createSet(o);if(u)return setToArray(u);l=!1,s=cacheHas,d=new SetCache}else d=e?[]:c;e:for(;++r<a;){var g=o[r],f=e?e(g):g;if(g=t||g!==0?g:0,l&&f===f){for(var m=d.length;m--;)if(d[m]===f)continue e;e&&d.push(f),c.push(g)}else s(d,f,t)||(d!==c&&d.push(f),c.push(g))}return c}var union=baseRest(function(o){return baseUniq(baseFlatten(o,1,isArrayLikeObject,!0))});function uniq(o){return o&&o.length?baseUniq(o):[]}var NodeType=(o=>(o.CONTAINER="container",o.PAGE="page",o.ROOT="app",o.PAGE_FRAGMENT="page-fragment",o))(NodeType||{});const NODE_CONDS_KEY="displayConds",NODE_CONDS_RESULT_KEY="displayCondsResultReverse",NODE_DISABLE_DATA_SOURCE_KEY="_tmagic_node_disabled_data_source",NODE_DISABLE_CODE_BLOCK_KEY="_tmagic_node_disabled_code_block";var ActionType=(o=>(o.COMP="comp",o.CODE="code",o.DATA_SOURCE="data-source",o))(ActionType||{}),HookType=(o=>(o.CODE="code",o))(HookType||{}),HookCodeType=(o=>(o.CODE="code",o.DATA_SOURCE_METHOD="data-source-method",o))(HookCodeType||{});const asyncLoadJs=(()=>{const o=new Map;return(e,t,r=globalThis.document)=>{let s=o.get(r);if(s||(s=new Map,o.set(r,s)),s.get(e))return s.get(e);const a=new Promise((l,c)=>{const d=r.createElement("script");d.type="text/javascript",t&&(d.crossOrigin=t),d.src=e,r.body.appendChild(d),d.onload=()=>{l()},d.onerror=()=>{c(new Error("加载失败"))},setTimeout(()=>{c(new Error("timeout"))},60*1e3)}).catch(l=>{throw s.delete(e),l});return s.set(e,a),s.get(e)}})(),addClassName=(o,e,t)=>{const r=e.querySelector(".".concat(t));r&&r!==o&&removeClassName(r,t),o.classList.contains(t)||o.classList.add(t)},removeClassName=(o,...e)=>{o.classList.remove(...e)},removeClassNameByClassName=(o,e)=>{const t=o.querySelector(".".concat(e));return t==null||t.classList.remove(e),t},injectStyle$1=(o,e)=>{const t=o.createElement("style");return t.innerHTML=e,o.head.appendChild(t),t},createDiv=({className:o,cssText:e})=>{const t=globalThis.document.createElement("div");return t.className=o,t.style.cssText=e,t},getDocument$2=()=>globalThis.document,calcValueByFontsize=(o,e)=>{if(!o)return e;const{fontSize:t}=o.documentElement.style;if(t){const r=globalThis.parseFloat(t)/100;return Number((e/r).toFixed(2))}return e},dslDomRelateConfig={getIdFromEl:o=>{var e;return(e=o==null?void 0:o.dataset)==null?void 0:e.tmagicId},getElById:(o,e)=>o==null?void 0:o.querySelector('[data-tmagic-id="'.concat(e,'"]')),setIdToEl:(o,e)=>{o.dataset.tmagicId="".concat(e)}},getIdFromEl=()=>dslDomRelateConfig.getIdFromEl,getElById=()=>dslDomRelateConfig.getElById,setIdToEl=()=>dslDomRelateConfig.setIdToEl,toLine=(o="")=>o.replace(/\B([A-Z])/g,"-$1").toLowerCase(),getNodePath=(o,e=[])=>{const t=[],r=function(s,a){if(!Array.isArray(a))return null;for(let l=0,c=a.length;l<c;l++){const d=a[l];if(t.push(d),"".concat(d.id)==="".concat(s))return d;if(d.items){const u=r(s,d.items);if(u)return u}t.pop()}return null};return r(o,e),t},getNodeInfo=(o,e)=>{const t={node:null,parent:null,page:null};if(!e)return t;if(o===e.id)return t.node=e,t;const r=getNodePath(o,e.items);return r.length&&(r.unshift(e),t.node=r[r.length-1],t.parent=r[r.length-2],r.forEach(s=>{if(isPage(s)||isPageFragment(s)){t.page=s;return}})),t},isObject$4=o=>Object.prototype.toString.call(o)==="[object Object]",isPop=o=>{var e;return!!((e=o==null?void 0:o.type)!=null&&e.toLowerCase().endsWith("pop"))},isPage=o=>{var e;return o?((e=o.type)==null?void 0:e.toLowerCase())===NodeType.PAGE:!1},isPageFragment=o=>{var e;return o?((e=o.type)==null?void 0:e.toLowerCase())===NodeType.PAGE_FRAGMENT:!1},isNumber$4=o=>/^(-?\d+)(\.\d+)?$/.test(o),getHost=o=>{var e;return(e=o.match(/\/\/([^/]+)/))==null?void 0:e[1]},isSameDomain=(o="",e=globalThis.location.host)=>/^(http[s]?:)?\/\//.test(o)?getHost(o)===e:!0,guid=(o=8)=>"x".repeat(o).replace(/[xy]/g,e=>{const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)}),getKeysArray=o=>"".concat(o).replace(/\[(\d+)\]/g,".$1").split("."),getValueByKeyPath=(o="",e={})=>(Array.isArray(o)?o:getKeysArray(o)).reduce((r,s)=>{if(isObject$4(r)||Array.isArray(r)&&/^\d*$/.test("".concat(s)))return r[s];throw new Error("".concat(e,"中不存在").concat(o))},e),setValueByKeyPath=(o,e,t={})=>set(t,o,e),getNodes=(o,e=[])=>{const t=[],r=function(s,a){if(Array.isArray(a))for(const l of a){const c=s.findIndex(d=>"".concat(d)==="".concat(l.id));c>-1&&(s.splice(c,1),t.push(l)),l.items&&r(s,l.items)}};return r(o,e),t},getDepKeys=(o={},e)=>Array.from(Object.values(o).reduce((t,r)=>{var s;return(((s=r[e])==null?void 0:s.keys)||[]).forEach(a=>t.add(a)),t},new Set)),getDepNodeIds=(o={})=>Array.from(Object.values(o).reduce((e,t)=>(Object.keys(t).forEach(r=>{e.add(r)}),e),new Set)),replaceChildNode=(o,e,t)=>{var c;const r=getNodePath(o.id,e),s=r.pop();let a=r.pop();if(t&&(a=getNodePath(t,e).pop()),!s){console.warn("未找到目标节点(".concat(o.id,")"));return}if(!a){console.warn("未找到父节点(".concat(o.id,")"));return}const l=(c=a.items)==null?void 0:c.findIndex(d=>d.id===s.id);a.items.splice(l,1,o)},DSL_NODE_KEY_COPY_PREFIX="__tmagic__",compiledNode=(o,e,t={},r)=>{let s=[];if(!r)s=getDepKeys(t,e.id);else{const a=t[r];s=(a==null?void 0:a[e.id].keys)||[]}return s.forEach(a=>{const l=getKeysArray(a),c=l.map((g,f)=>f<l.length-1?g:"".concat(DSL_NODE_KEY_COPY_PREFIX).concat(g));let d=getValueByKeyPath(c,e);if(typeof d>"u")try{const g=getValueByKeyPath(a,e);setValueByKeyPath(c.join("."),g,e),d=g}catch(g){console.warn(g);return}let u;try{u=o(d)}catch(g){console.error(g),u=""}setValueByKeyPath(a,u,e)}),e},compiledCond=(o,e,t,r=[])=>{var s,a;switch(typeof e=="string"&&typeof t>"u"&&(t=""),o){case"is":return e===t;case"not":return e!==t;case"=":return e===t;case"!=":return e!==t;case">":return e>t;case">=":return e>=t;case"<":return e<t;case"<=":return e<=t;case"between":return r.length>1&&e>=r[0]&&e<=r[1];case"not_between":return r.length<2||e<r[0]||e>r[1];case"include":return(s=e==null?void 0:e.includes)==null?void 0:s.call(e,t);case"not_include":return typeof e>"u"||!((a=e.includes)!=null&&a.call(e,t))}return!1},getDefaultValueFromFields=o=>{const e={},t={string:void 0,object:{},array:[],boolean:void 0,number:void 0,null:null,any:void 0};return o.forEach(r=>{if(typeof r.defaultValue<"u"){if(r.type==="array"&&!Array.isArray(r.defaultValue)){e[r.name]=t.array;return}if(r.type==="object"&&!isObject$4(r.defaultValue)){if(typeof r.defaultValue=="string"){try{e[r.name]=JSON.parse(r.defaultValue)}catch(s){e[r.name]=t.object,console.warn("defaultValue 解析失败",r.defaultValue,s)}return}e[r.name]=t.object;return}e[r.name]=cloneDeep(r.defaultValue);return}if(r.type==="object"){e[r.name]=r.fields?getDefaultValueFromFields(r.fields):t.object;return}if(r.type){e[r.name]=t[r.type];return}e[r.name]=void 0}),e},DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX="ds-field::",DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX="ds-field-changed",getKeys$1=Object.keys,calculatePercentage=(o,e)=>{const t=globalThis.parseFloat(e)/100;return o*t},isPercentage=o=>/^(\d+)(\.\d+)?%$/.test("".concat(o)),convertToNumber=(o,e=0)=>typeof o=="number"?o:typeof o=="string"&&isPercentage(o)?calculatePercentage(e,o):parseFloat(o),dataSourceTemplateRegExp=/\$\{([\s\S]+?)\}/g,traverseNode=(o,e,t=[],r=!1)=>{r||e(o,t),Array.isArray(o.items)&&o.items.length&&(t.push(o),o.items.forEach(s=>{traverseNode(s,e,[...t],r)})),r&&e(o,t)},isValueIncludeDataSource=o=>!!(typeof o=="string"&&/\$\{([\s\S]+?)\}/.test(o)||Array.isArray(o)&&"".concat(o[0]).startsWith(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX)||o!=null&&o.isBindDataSource&&o.dataSourceId||o!=null&&o.isBindDataSourceField&&o.dataSourceId);function getDefaultExportFromCjs(o){return o&&o.__esModule&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o}var dayjs_min$1={exports:{}},dayjs_min=dayjs_min$1.exports,hasRequiredDayjs_min;function requireDayjs_min(){return hasRequiredDayjs_min||(hasRequiredDayjs_min=1,(function(o,e){(function(t,r){o.exports=r()})(dayjs_min,(function(){var t=1e3,r=6e4,s=36e5,a="millisecond",l="second",c="minute",d="hour",u="day",g="week",f="month",m="quarter",_="year",v="date",b="Invalid Date",C=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,S={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(A){var O=["th","st","nd","rd"],P=A%100;return"["+A+(O[(P-20)%10]||O[P]||O[0])+"]"}},w=function(A,O,P){var F=String(A);return!F||F.length>=O?A:""+Array(O+1-F.length).join(P)+A},E={s:w,z:function(A){var O=-A.utcOffset(),P=Math.abs(O),F=Math.floor(P/60),B=P%60;return(O<=0?"+":"-")+w(F,2,"0")+":"+w(B,2,"0")},m:function A(O,P){if(O.date()<P.date())return-A(P,O);var F=12*(P.year()-O.year())+(P.month()-O.month()),B=O.clone().add(F,f),H=P-B<0,V=O.clone().add(F+(H?-1:1),f);return+(-(F+(P-B)/(H?B-V:V-B))||0)},a:function(A){return A<0?Math.ceil(A)||0:Math.floor(A)},p:function(A){return{M:f,y:_,w:g,d:u,D:v,h:d,m:c,s:l,ms:a,Q:m}[A]||String(A||"").toLowerCase().replace(/s$/,"")},u:function(A){return A===void 0}},x="en",L={};L[x]=S;var k="$isDayjsObject",D=function(A){return A instanceof R||!(!A||!A[k])},I=function A(O,P,F){var B;if(!O)return x;if(typeof O=="string"){var H=O.toLowerCase();L[H]&&(B=H),P&&(L[H]=P,B=H);var V=O.split("-");if(!B&&V.length>1)return A(V[0])}else{var U=O.name;L[U]=O,B=U}return!F&&B&&(x=B),B||!F&&x},T=function(A,O){if(D(A))return A.clone();var P=typeof O=="object"?O:{};return P.date=A,P.args=arguments,new R(P)},M=E;M.l=I,M.i=D,M.w=function(A,O){return T(A,{locale:O.$L,utc:O.$u,x:O.$x,$offset:O.$offset})};var R=(function(){function A(P){this.$L=I(P.locale,null,!0),this.parse(P),this.$x=this.$x||P.x||{},this[k]=!0}var O=A.prototype;return O.parse=function(P){this.$d=(function(F){var B=F.date,H=F.utc;if(B===null)return new Date(NaN);if(M.u(B))return new Date;if(B instanceof Date)return new Date(B);if(typeof B=="string"&&!/Z$/i.test(B)){var V=B.match(C);if(V){var U=V[2]-1||0,j=(V[7]||"0").substring(0,3);return H?new Date(Date.UTC(V[1],U,V[3]||1,V[4]||0,V[5]||0,V[6]||0,j)):new Date(V[1],U,V[3]||1,V[4]||0,V[5]||0,V[6]||0,j)}}return new Date(B)})(P),this.init()},O.init=function(){var P=this.$d;this.$y=P.getFullYear(),this.$M=P.getMonth(),this.$D=P.getDate(),this.$W=P.getDay(),this.$H=P.getHours(),this.$m=P.getMinutes(),this.$s=P.getSeconds(),this.$ms=P.getMilliseconds()},O.$utils=function(){return M},O.isValid=function(){return this.$d.toString()!==b},O.isSame=function(P,F){var B=T(P);return this.startOf(F)<=B&&B<=this.endOf(F)},O.isAfter=function(P,F){return T(P)<this.startOf(F)},O.isBefore=function(P,F){return this.endOf(F)<T(P)},O.$g=function(P,F,B){return M.u(P)?this[F]:this.set(B,P)},O.unix=function(){return Math.floor(this.valueOf()/1e3)},O.valueOf=function(){return this.$d.getTime()},O.startOf=function(P,F){var B=this,H=!!M.u(F)||F,V=M.p(P),U=function(re,de){var se=M.w(B.$u?Date.UTC(B.$y,de,re):new Date(B.$y,de,re),B);return H?se:se.endOf(u)},j=function(re,de){return M.w(B.toDate()[re].apply(B.toDate("s"),(H?[0,0,0,0]:[23,59,59,999]).slice(de)),B)},X=this.$W,ee=this.$M,Z=this.$D,J="set"+(this.$u?"UTC":"");switch(V){case _:return H?U(1,0):U(31,11);case f:return H?U(1,ee):U(0,ee+1);case g:var q=this.$locale().weekStart||0,Q=(X<q?X+7:X)-q;return U(H?Z-Q:Z+(6-Q),ee);case u:case v:return j(J+"Hours",0);case d:return j(J+"Minutes",1);case c:return j(J+"Seconds",2);case l:return j(J+"Milliseconds",3);default:return this.clone()}},O.endOf=function(P){return this.startOf(P,!1)},O.$set=function(P,F){var B,H=M.p(P),V="set"+(this.$u?"UTC":""),U=(B={},B[u]=V+"Date",B[v]=V+"Date",B[f]=V+"Month",B[_]=V+"FullYear",B[d]=V+"Hours",B[c]=V+"Minutes",B[l]=V+"Seconds",B[a]=V+"Milliseconds",B)[H],j=H===u?this.$D+(F-this.$W):F;if(H===f||H===_){var X=this.clone().set(v,1);X.$d[U](j),X.init(),this.$d=X.set(v,Math.min(this.$D,X.daysInMonth())).$d}else U&&this.$d[U](j);return this.init(),this},O.set=function(P,F){return this.clone().$set(P,F)},O.get=function(P){return this[M.p(P)]()},O.add=function(P,F){var B,H=this;P=Number(P);var V=M.p(F),U=function(ee){var Z=T(H);return M.w(Z.date(Z.date()+Math.round(ee*P)),H)};if(V===f)return this.set(f,this.$M+P);if(V===_)return this.set(_,this.$y+P);if(V===u)return U(1);if(V===g)return U(7);var j=(B={},B[c]=r,B[d]=s,B[l]=t,B)[V]||1,X=this.$d.getTime()+P*j;return M.w(X,this)},O.subtract=function(P,F){return this.add(-1*P,F)},O.format=function(P){var F=this,B=this.$locale();if(!this.isValid())return B.invalidDate||b;var H=P||"YYYY-MM-DDTHH:mm:ssZ",V=M.z(this),U=this.$H,j=this.$m,X=this.$M,ee=B.weekdays,Z=B.months,J=B.meridiem,q=function(de,se,W,G){return de&&(de[se]||de(F,H))||W[se].slice(0,G)},Q=function(de){return M.s(U%12||12,de,"0")},re=J||function(de,se,W){var G=de<12?"AM":"PM";return W?G.toLowerCase():G};return H.replace(y,(function(de,se){return se||(function(W){switch(W){case"YY":return String(F.$y).slice(-2);case"YYYY":return M.s(F.$y,4,"0");case"M":return X+1;case"MM":return M.s(X+1,2,"0");case"MMM":return q(B.monthsShort,X,Z,3);case"MMMM":return q(Z,X);case"D":return F.$D;case"DD":return M.s(F.$D,2,"0");case"d":return String(F.$W);case"dd":return q(B.weekdaysMin,F.$W,ee,2);case"ddd":return q(B.weekdaysShort,F.$W,ee,3);case"dddd":return ee[F.$W];case"H":return String(U);case"HH":return M.s(U,2,"0");case"h":return Q(1);case"hh":return Q(2);case"a":return re(U,j,!0);case"A":return re(U,j,!1);case"m":return String(j);case"mm":return M.s(j,2,"0");case"s":return String(F.$s);case"ss":return M.s(F.$s,2,"0");case"SSS":return M.s(F.$ms,3,"0");case"Z":return V}return null})(de)||V.replace(":","")}))},O.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},O.diff=function(P,F,B){var H,V=this,U=M.p(F),j=T(P),X=(j.utcOffset()-this.utcOffset())*r,ee=this-j,Z=function(){return M.m(V,j)};switch(U){case _:H=Z()/12;break;case f:H=Z();break;case m:H=Z()/3;break;case g:H=(ee-X)/6048e5;break;case u:H=(ee-X)/864e5;break;case d:H=ee/s;break;case c:H=ee/r;break;case l:H=ee/t;break;default:H=ee}return B?H:M.a(H)},O.daysInMonth=function(){return this.endOf(f).$D},O.$locale=function(){return L[this.$L]},O.locale=function(P,F){if(!P)return this.$L;var B=this.clone(),H=I(P,F,!0);return H&&(B.$L=H),B},O.clone=function(){return M.w(this.$d,this)},O.toDate=function(){return new Date(this.valueOf())},O.toJSON=function(){return this.isValid()?this.toISOString():null},O.toISOString=function(){return this.$d.toISOString()},O.toString=function(){return this.$d.toUTCString()},A})(),N=R.prototype;return T.prototype=N,[["$ms",a],["$s",l],["$m",c],["$H",d],["$W",u],["$M",f],["$y",_],["$D",v]].forEach((function(A){N[A[1]]=function(O){return this.$g(O,A[0],A[1])}})),T.extend=function(A,O){return A.$i||(A(O,R,T),A.$i=!0),T},T.locale=I,T.isDayjs=D,T.unix=function(A){return T(1e3*A)},T.en=L[x],T.Ls=L,T.p={},T}))})(dayjs_min$1)),dayjs_min$1.exports}var dayjs_minExports=requireDayjs_min();const dayjs=getDefaultExportFromCjs(dayjs_minExports);var utc$2={exports:{}},utc$1=utc$2.exports,hasRequiredUtc;function requireUtc(){return hasRequiredUtc||(hasRequiredUtc=1,(function(o,e){(function(t,r){o.exports=r()})(utc$1,(function(){var t="minute",r=/[+-]\d\d(?::?\d\d)?/g,s=/([+-]|\d\d)/g;return function(a,l,c){var d=l.prototype;c.utc=function(b){var C={date:b,utc:!0,args:arguments};return new l(C)},d.utc=function(b){var C=c(this.toDate(),{locale:this.$L,utc:!0});return b?C.add(this.utcOffset(),t):C},d.local=function(){return c(this.toDate(),{locale:this.$L,utc:!1})};var u=d.parse;d.parse=function(b){b.utc&&(this.$u=!0),this.$utils().u(b.$offset)||(this.$offset=b.$offset),u.call(this,b)};var g=d.init;d.init=function(){if(this.$u){var b=this.$d;this.$y=b.getUTCFullYear(),this.$M=b.getUTCMonth(),this.$D=b.getUTCDate(),this.$W=b.getUTCDay(),this.$H=b.getUTCHours(),this.$m=b.getUTCMinutes(),this.$s=b.getUTCSeconds(),this.$ms=b.getUTCMilliseconds()}else g.call(this)};var f=d.utcOffset;d.utcOffset=function(b,C){var y=this.$utils().u;if(y(b))return this.$u?0:y(this.$offset)?f.call(this):this.$offset;if(typeof b=="string"&&(b=(function(x){x===void 0&&(x="");var L=x.match(r);if(!L)return null;var k=(""+L[0]).match(s)||["-",0,0],D=k[0],I=60*+k[1]+ +k[2];return I===0?0:D==="+"?I:-I})(b),b===null))return this;var S=Math.abs(b)<=16?60*b:b;if(S===0)return this.utc(C);var w=this.clone();if(C)return w.$offset=S,w.$u=!1,w;var E=this.$u?this.toDate().getTimezoneOffset():-1*this.utcOffset();return(w=this.local().add(S+E,t)).$offset=S,w.$x.$localOffset=E,w};var m=d.format;d.format=function(b){var C=b||(this.$u?"YYYY-MM-DDTHH:mm:ss[Z]":"");return m.call(this,C)},d.valueOf=function(){var b=this.$utils().u(this.$offset)?0:this.$offset+(this.$x.$localOffset||this.$d.getTimezoneOffset());return this.$d.valueOf()-6e4*b},d.isUTC=function(){return!!this.$u},d.toISOString=function(){return this.toDate().toISOString()},d.toString=function(){return this.toDate().toUTCString()};var _=d.toDate;d.toDate=function(b){return b==="s"&&this.$offset?c(this.format("YYYY-MM-DD HH:mm:ss:SSS")).toDate():_.call(this)};var v=d.diff;d.diff=function(b,C,y){if(b&&this.$u===b.$u)return v.call(this,b,C,y);var S=this.local(),w=c(b).local();return v.call(S,w,C,y)}}}))})(utc$2)),utc$2.exports}var utcExports=requireUtc();const utc=getDefaultExportFromCjs(utcExports);function ownKeys(o,e){var t=Object.keys(o);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(o);e&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(o,s).enumerable})),t.push.apply(t,r)}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(r){_defineProperty(o,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(o,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(o,r,Object.getOwnPropertyDescriptor(t,r))})}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 r in t)Object.prototype.hasOwnProperty.call(t,r)&&(o[r]=t[r])}return o},_extends.apply(this,arguments)}function _objectWithoutPropertiesLoose(o,e){if(o==null)return{};var t={},r=Object.keys(o),s,a;for(a=0;a<r.length;a++)s=r[a],!(e.indexOf(s)>=0)&&(t[s]=o[s]);return t}function _objectWithoutProperties(o,e){if(o==null)return{};var t=_objectWithoutPropertiesLoose(o,e),r,s;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(o);for(s=0;s<a.length;s++)r=a[s],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(o,r)&&(t[r]=o[r])}return t}var version="1.15.6";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(t){return!1}return!1}}function getParentOrHost(o){return o.host&&o!==document&&o.host.nodeType?o.host:o.parentNode}function closest(o,e,t,r){if(o){t=t||document;do{if(e!=null&&(e[0]===">"?o.parentNode===t&&matches(o,e):matches(o,e))||r&&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 r=(" "+o.className+" ").replace(R_SPACE," ").replace(" "+e+" "," ");o.className=(r+(t?" "+e:"")).replace(R_SPACE," ")}}function css$2(o,e,t){var r=o&&o.style;if(r){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 r)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),r[e]=t+(typeof t=="string"?"":"px")}}function matrix(o,e){var t="";if(typeof o=="string")t=o;else do{var r=css$2(o,"transform");r&&r!=="none"&&(t=r+" "+t)}while(!e&&(o=o.parentNode));var s=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return s&&new s(t)}function find$3(o,e,t){if(o){var r=o.getElementsByTagName(e),s=0,a=r.length;if(t)for(;s<a;s++)t(r[s],s);return r}return[]}function getWindowScrollingElement(){var o=document.scrollingElement;return o||document.documentElement}function getRect$1(o,e,t,r,s){if(!(!o.getBoundingClientRect&&o!==window)){var a,l,c,d,u,g,f;if(o!==window&&o.parentNode&&o!==getWindowScrollingElement()?(a=o.getBoundingClientRect(),l=a.top,c=a.left,d=a.bottom,u=a.right,g=a.height,f=a.width):(l=0,c=0,d=window.innerHeight,u=window.innerWidth,g=window.innerHeight,f=window.innerWidth),(e||t)&&o!==window&&(s=s||o.parentNode,!IE11OrLess))do if(s&&s.getBoundingClientRect&&(css$2(s,"transform")!=="none"||t&&css$2(s,"position")!=="static")){var m=s.getBoundingClientRect();l-=m.top+parseInt(css$2(s,"border-top-width")),c-=m.left+parseInt(css$2(s,"border-left-width")),d=l+a.height,u=c+a.width;break}while(s=s.parentNode);if(r&&o!==window){var _=matrix(s||o),v=_&&_.a,b=_&&_.d;_&&(l/=b,c/=v,f/=v,g/=b,d=l+g,u=c+f)}return{top:l,left:c,bottom:d,right:u,width:f,height:g}}}function isScrolledPast(o,e,t){for(var r=getParentAutoScrollElement(o,!0),s=getRect$1(o)[e];r;){var a=getRect$1(r)[t],l=void 0;if(l=s>=a,!l)return r;if(r===getWindowScrollingElement())break;r=getParentAutoScrollElement(r,!1)}return!1}function getChild(o,e,t,r){for(var s=0,a=0,l=o.children;a<l.length;){if(l[a].style.display!=="none"&&l[a]!==Sortable.ghost&&(r||l[a]!==Sortable.dragged)&&closest(l[a],t.draggable,o,!1)){if(s===e)return l[a];s++}a++}return null}function lastChild(o,e){for(var t=o.lastElementChild;t&&(t===Sortable.ghost||css$2(t,"display")==="none"||e&&!matches(t,e));)t=t.previousElementSibling;return t||null}function index$5(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,r=getWindowScrollingElement();if(o)do{var s=matrix(o),a=s.a,l=s.d;e+=o.scrollLeft*a,t+=o.scrollTop*l}while(o!==r&&(o=o.parentNode));return[e,t]}function indexOfObject(o,e){for(var t in o)if(o.hasOwnProperty(t)){for(var r in e)if(e.hasOwnProperty(r)&&e[r]===o[t][r])return Number(t)}return-1}function getParentAutoScrollElement(o,e){if(!o||!o.getBoundingClientRect)return getWindowScrollingElement();var t=o,r=!1;do if(t.clientWidth<t.scrollWidth||t.clientHeight<t.scrollHeight){var s=css$2(t);if(t.clientWidth<t.scrollWidth&&(s.overflowX=="auto"||s.overflowX=="scroll")||t.clientHeight<t.scrollHeight&&(s.overflowY=="auto"||s.overflowY=="scroll")){if(!t.getBoundingClientRect||t===document.body)return getWindowScrollingElement();if(r||e)return t;r=!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$1(o,e){return function(){if(!_throttleTimeout){var t=arguments,r=this;t.length===1?o.call(r,t[0]):o.apply(r,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$2(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 getChildContainingRectFromElement(o,e,t){var r={};return Array.from(o.children).forEach(function(s){var a,l,c,d;if(!(!closest(s,e.draggable,o,!1)||s.animated||s===t)){var u=getRect$1(s);r.left=Math.min((a=r.left)!==null&&a!==void 0?a:1/0,u.left),r.top=Math.min((l=r.top)!==null&&l!==void 0?l:1/0,u.top),r.right=Math.max((c=r.right)!==null&&c!==void 0?c:-1/0,u.right),r.bottom=Math.max((d=r.bottom)!==null&&d!==void 0?d:-1/0,u.bottom)}}),r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}var expando="Sortable"+new Date().getTime();function AnimationStateManager(){var o=[],e;return{captureAnimationState:function(){if(o=[],!!this.options.animation){var r=[].slice.call(this.el.children);r.forEach(function(s){if(!(css$2(s,"display")==="none"||s===Sortable.ghost)){o.push({target:s,rect:getRect$1(s)});var a=_objectSpread2({},o[o.length-1].rect);if(s.thisAnimationDuration){var l=matrix(s,!0);l&&(a.top-=l.f,a.left-=l.e)}s.fromRect=a}})}},addAnimationState:function(r){o.push(r)},removeAnimationState:function(r){o.splice(indexOfObject(o,{target:r}),1)},animateAll:function(r){var s=this;if(!this.options.animation){clearTimeout(e),typeof r=="function"&&r();return}var a=!1,l=0;o.forEach(function(c){var d=0,u=c.target,g=u.fromRect,f=getRect$1(u),m=u.prevFromRect,_=u.prevToRect,v=c.rect,b=matrix(u,!0);b&&(f.top-=b.f,f.left-=b.e),u.toRect=f,u.thisAnimationDuration&&isRectEqual(m,f)&&!isRectEqual(g,f)&&(v.top-f.top)/(v.left-f.left)===(g.top-f.top)/(g.left-f.left)&&(d=calculateRealTime(v,m,_,s.options)),isRectEqual(f,g)||(u.prevFromRect=g,u.prevToRect=f,d||(d=s.options.animation),s.animate(u,v,f,d)),d&&(a=!0,l=Math.max(l,d),clearTimeout(u.animationResetTimer),u.animationResetTimer=setTimeout(function(){u.animationTime=0,u.prevFromRect=null,u.fromRect=null,u.prevToRect=null,u.thisAnimationDuration=null},d),u.thisAnimationDuration=d)}),clearTimeout(e),a?e=setTimeout(function(){typeof r=="function"&&r()},l):typeof r=="function"&&r(),o=[]},animate:function(r,s,a,l){if(l){css$2(r,"transition",""),css$2(r,"transform","");var c=matrix(this.el),d=c&&c.a,u=c&&c.d,g=(s.left-a.left)/(d||1),f=(s.top-a.top)/(u||1);r.animatingX=!!g,r.animatingY=!!f,css$2(r,"transform","translate3d("+g+"px,"+f+"px,0)"),this.forRepaintDummy=repaint(r),css$2(r,"transition","transform "+l+"ms"+(this.options.easing?" "+this.options.easing:"")),css$2(r,"transform","translate3d(0,0,0)"),typeof r.animated=="number"&&clearTimeout(r.animated),r.animated=setTimeout(function(){css$2(r,"transition",""),css$2(r,"transform",""),r.animated=!1,r.animatingX=!1,r.animatingY=!1},l)}}}}function repaint(o){return o.offsetWidth}function calculateRealTime(o,e,t,r){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))*r.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(r){if(r.pluginName===e.pluginName)throw"Sortable: Cannot mount plugin ".concat(e.pluginName," more than once")}),plugins.push(e)},pluginEvent:function(e,t,r){var s=this;this.eventCanceled=!1,r.cancel=function(){s.eventCanceled=!0};var a=e+"Global";plugins.forEach(function(l){t[l.pluginName]&&(t[l.pluginName][a]&&t[l.pluginName][a](_objectSpread2({sortable:t},r)),t.options[l.pluginName]&&t[l.pluginName][e]&&t[l.pluginName][e](_objectSpread2({sortable:t},r)))})},initializePlugins:function(e,t,r,s){plugins.forEach(function(c){var d=c.pluginName;if(!(!e.options[d]&&!c.initializeByDefault)){var u=new c(e,t,e.options);u.sortable=e,u.options=e.options,e[d]=u,_extends(r,u.defaults)}});for(var a in e.options)if(e.options.hasOwnProperty(a)){var l=this.modifyOption(e,a,e.options[a]);typeof l<"u"&&(e.options[a]=l)}},getEventProperties:function(e,t){var r={};return plugins.forEach(function(s){typeof s.eventProperties=="function"&&_extends(r,s.eventProperties.call(t[s.pluginName],e))}),r},modifyOption:function(e,t,r){var s;return plugins.forEach(function(a){e[a.pluginName]&&a.optionListeners&&typeof a.optionListeners[t]=="function"&&(s=a.optionListeners[t].call(e[a.pluginName],r))}),s}};function dispatchEvent(o){var e=o.sortable,t=o.rootEl,r=o.name,s=o.targetEl,a=o.cloneEl,l=o.toEl,c=o.fromEl,d=o.oldIndex,u=o.newIndex,g=o.oldDraggableIndex,f=o.newDraggableIndex,m=o.originalEvent,_=o.putSortable,v=o.extraEventProperties;if(e=e||t&&t[expando],!!e){var b,C=e.options,y="on"+r.charAt(0).toUpperCase()+r.substr(1);window.CustomEvent&&!IE11OrLess&&!Edge?b=new CustomEvent(r,{bubbles:!0,cancelable:!0}):(b=document.createEvent("Event"),b.initEvent(r,!0,!0)),b.to=l||t,b.from=c||t,b.item=s||t,b.clone=a,b.oldIndex=d,b.newIndex=u,b.oldDraggableIndex=g,b.newDraggableIndex=f,b.originalEvent=m,b.pullMode=_?_.lastPutMode:void 0;var S=_objectSpread2(_objectSpread2({},v),PluginManager.getEventProperties(r,e));for(var w in S)b[w]=S[w];t&&t.dispatchEvent(b),C[y]&&C[y].call(e,b)}}var _excluded=["evt"],pluginEvent=function(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=r.evt,a=_objectWithoutProperties(r,_excluded);PluginManager.pluginEvent.bind(Sortable)(e,t,_objectSpread2({dragEl,parentEl,ghostEl,rootEl,nextEl,lastDownEl,cloneEl,cloneHidden,dragStarted:moved,putSortable,activeSortable:Sortable.active,originalEvent:s,oldIndex,oldDraggableIndex,newIndex,newDraggableIndex,hideGhostForTarget:_hideGhostForTarget,unhideGhostForTarget:_unhideGhostForTarget,cloneNowHidden:function(){cloneHidden=!0},cloneNowShown:function(){cloneHidden=!1},dispatchSortableEvent:function(c){_dispatchEvent({sortable:t,name:c,originalEvent:s})}},a))};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 r=css$2(e),s=parseInt(r.width)-parseInt(r.paddingLeft)-parseInt(r.paddingRight)-parseInt(r.borderLeftWidth)-parseInt(r.borderRightWidth),a=getChild(e,0,t),l=getChild(e,1,t),c=a&&css$2(a),d=l&&css$2(l),u=c&&parseInt(c.marginLeft)+parseInt(c.marginRight)+getRect$1(a).width,g=d&&parseInt(d.marginLeft)+parseInt(d.marginRight)+getRect$1(l).width;if(r.display==="flex")return r.flexDirection==="column"||r.flexDirection==="column-reverse"?"vertical":"horizontal";if(r.display==="grid")return r.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(a&&c.float&&c.float!=="none"){var f=c.float==="left"?"left":"right";return l&&(d.clear==="both"||d.clear===f)?"vertical":"horizontal"}return a&&(c.display==="block"||c.display==="flex"||c.display==="table"||c.display==="grid"||u>=s&&r[CSSFloatProperty]==="none"||l&&r[CSSFloatProperty]==="none"&&u+g>s)?"vertical":"horizontal"},_dragElInRowColumn=function(e,t,r){var s=r?e.left:e.top,a=r?e.right:e.bottom,l=r?e.width:e.height,c=r?t.left:t.top,d=r?t.right:t.bottom,u=r?t.width:t.height;return s===c||a===d||s+l/2===c+u/2},_detectNearestEmptySortable=function(e,t){var r;return sortables.some(function(s){var a=s[expando].options.emptyInsertThreshold;if(!(!a||lastChild(s))){var l=getRect$1(s),c=e>=l.left-a&&e<=l.right+a,d=t>=l.top-a&&t<=l.bottom+a;if(c&&d)return r=s}}),r},_prepareGroup=function(e){function t(a,l){return function(c,d,u,g){var f=c.options.group.name&&d.options.group.name&&c.options.group.name===d.options.group.name;if(a==null&&(l||f))return!0;if(a==null||a===!1)return!1;if(l&&a==="clone")return a;if(typeof a=="function")return t(a(c,d,u,g),l)(c,d,u,g);var m=(l?c:d).options.group.name;return a===!0||typeof a=="string"&&a===m||a.join&&a.indexOf(m)>-1}}var r={},s=e.group;(!s||_typeof(s)!="object")&&(s={name:s}),r.name=s.name,r.checkPull=t(s.pull,!0),r.checkPut=t(s.put),r.revertClone=s.revertClone,e.group=r},_hideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css$2(ghostEl,"display","none")},_unhideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css$2(ghostEl,"display","")};documentExists&&!ChromeForAndroid&&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 r={};for(var s in e)e.hasOwnProperty(s)&&(r[s]=e[s]);r.target=r.rootEl=t,r.preventDefault=void 0,r.stopPropagation=void 0,t[expando]._onDragOver(r)}}},_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(l,c){l.setData("Text",c.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||IOS),emptyInsertThreshold:5};PluginManager.initializePlugins(this,o,t);for(var r in t)!(r in e)&&(e[r]=t[r]);_prepareGroup(e);for(var s in this)s.charAt(0)==="_"&&typeof this[s]=="function"&&(this[s]=this[s].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,r=this.el,s=this.options,a=s.preventOnFilter,l=e.type,c=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,d=(c||e).target,u=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||d,g=s.filter;if(_saveInputCheckedState(r),!dragEl&&!(/mousedown|pointerdown/.test(l)&&e.button!==0||s.disabled)&&!u.isContentEditable&&!(!this.nativeDraggable&&Safari&&d&&d.tagName.toUpperCase()==="SELECT")&&(d=closest(d,s.draggable,r,!1),!(d&&d.animated)&&lastDownEl!==d)){if(oldIndex=index$5(d),oldDraggableIndex=index$5(d,s.draggable),typeof g=="function"){if(g.call(this,e,d,this)){_dispatchEvent({sortable:t,rootEl:u,name:"filter",targetEl:d,toEl:r,fromEl:r}),pluginEvent("filter",t,{evt:e}),a&&e.preventDefault();return}}else if(g&&(g=g.split(",").some(function(f){if(f=closest(u,f.trim(),r,!1),f)return _dispatchEvent({sortable:t,rootEl:f,name:"filter",targetEl:d,fromEl:r,toEl:r}),pluginEvent("filter",t,{evt:e}),!0}),g)){a&&e.preventDefault();return}s.handle&&!closest(u,s.handle,r,!1)||this._prepareDragStart(e,c,d)}}},_prepareDragStart:function(e,t,r){var s=this,a=s.el,l=s.options,c=a.ownerDocument,d;if(r&&!dragEl&&r.parentNode===a){var u=getRect$1(r);if(rootEl=a,dragEl=r,parentEl=dragEl.parentNode,nextEl=dragEl.nextSibling,lastDownEl=r,activeGroup=l.group,Sortable.dragged=dragEl,tapEvt={target:dragEl,clientX:(t||e).clientX,clientY:(t||e).clientY},tapDistanceLeft=tapEvt.clientX-u.left,tapDistanceTop=tapEvt.clientY-u.top,this._lastX=(t||e).clientX,this._lastY=(t||e).clientY,dragEl.style["will-change"]="all",d=function(){if(pluginEvent("delayEnded",s,{evt:e}),Sortable.eventCanceled){s._onDrop();return}s._disableDelayedDragEvents(),!FireFox&&s.nativeDraggable&&(dragEl.draggable=!0),s._triggerDragStart(e,t),_dispatchEvent({sortable:s,name:"choose",originalEvent:e}),toggleClass(dragEl,l.chosenClass,!0)},l.ignore.split(",").forEach(function(g){find$3(dragEl,g.trim(),_disableDraggable)}),on(c,"dragover",nearestEmptyInsertDetectEvent),on(c,"mousemove",nearestEmptyInsertDetectEvent),on(c,"touchmove",nearestEmptyInsertDetectEvent),l.supportPointer?(on(c,"pointerup",s._onDrop),!this.nativeDraggable&&on(c,"pointercancel",s._onDrop)):(on(c,"mouseup",s._onDrop),on(c,"touchend",s._onDrop),on(c,"touchcancel",s._onDrop)),FireFox&&this.nativeDraggable&&(this.options.touchStartThreshold=4,dragEl.draggable=!0),pluginEvent("delayStart",this,{evt:e}),l.delay&&(!l.delayOnTouchOnly||t)&&(!this.nativeDraggable||!(Edge||IE11OrLess))){if(Sortable.eventCanceled){this._onDrop();return}l.supportPointer?(on(c,"pointerup",s._disableDelayedDrag),on(c,"pointercancel",s._disableDelayedDrag)):(on(c,"mouseup",s._disableDelayedDrag),on(c,"touchend",s._disableDelayedDrag),on(c,"touchcancel",s._disableDelayedDrag)),on(c,"mousemove",s._delayedDragTouchMoveHandler),on(c,"touchmove",s._delayedDragTouchMoveHandler),l.supportPointer&&on(c,"pointermove",s._delayedDragTouchMoveHandler),s._dragStartTimer=setTimeout(d,l.delay)}else d()}},_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,"pointerup",this._disableDelayedDrag),off(e,"pointercancel",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(r){}},_dragStarted:function(e,t){if(awaitingDragStarted=!1,rootEl&&dragEl){pluginEvent("dragStarted",this,{evt:t}),this.nativeDraggable&&on(document,"dragover",_checkOutsideTargetEl);var r=this.options;!e&&toggleClass(dragEl,r.dragClass,!1),toggleClass(dragEl,r.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 r=void 0;if(r=t[expando]._onDragOver({clientX:touchEvt.clientX,clientY:touchEvt.clientY,target:e,rootEl:t}),r&&!this.options.dragoverBubble)break}e=t}while(t=getParentOrHost(t));_unhideGhostForTarget()}},_onTouchMove:function(e){if(tapEvt){var t=this.options,r=t.fallbackTolerance,s=t.fallbackOffset,a=e.touches?e.touches[0]:e,l=ghostEl&&matrix(ghostEl,!0),c=ghostEl&&l&&l.a,d=ghostEl&&l&&l.d,u=PositionGhostAbsolutely&&ghostRelativeParent&&getRelativeScrollOffset(ghostRelativeParent),g=(a.clientX-tapEvt.clientX+s.x)/(c||1)+(u?u[0]-ghostRelativeParentInitialScroll[0]:0)/(c||1),f=(a.clientY-tapEvt.clientY+s.y)/(d||1)+(u?u[1]-ghostRelativeParentInitialScroll[1]:0)/(d||1);if(!Sortable.active&&!awaitingDragStarted){if(r&&Math.max(Math.abs(a.clientX-this._lastX),Math.abs(a.clientY-this._lastY))<r)return;this._onDragStart(e,!0)}if(ghostEl){l?(l.e+=g-(lastDx||0),l.f+=f-(lastDy||0)):l={a:1,b:0,c:0,d:1,e:g,f};var m="matrix(".concat(l.a,",").concat(l.b,",").concat(l.c,",").concat(l.d,",").concat(l.e,",").concat(l.f,")");css$2(ghostEl,"webkitTransform",m),css$2(ghostEl,"mozTransform",m),css$2(ghostEl,"msTransform",m),css$2(ghostEl,"transform",m),lastDx=g,lastDy=f,touchEvt=a}e.cancelable&&e.preventDefault()}},_appendGhost:function(){if(!ghostEl){var e=this.options.fallbackOnBody?document.body:rootEl,t=getRect$1(dragEl,!0,PositionGhostAbsolutely,!0,e),r=this.options;if(PositionGhostAbsolutely){for(ghostRelativeParent=e;css$2(ghostRelativeParent,"position")==="static"&&css$2(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,r.ghostClass,!1),toggleClass(ghostEl,r.fallbackClass,!0),toggleClass(ghostEl,r.dragClass,!0),css$2(ghostEl,"transition",""),css$2(ghostEl,"transform",""),css$2(ghostEl,"box-sizing","border-box"),css$2(ghostEl,"margin",0),css$2(ghostEl,"top",t.top),css$2(ghostEl,"left",t.left),css$2(ghostEl,"width",t.width),css$2(ghostEl,"height",t.height),css$2(ghostEl,"opacity","0.8"),css$2(ghostEl,"position",PositionGhostAbsolutely?"absolute":"fixed"),css$2(ghostEl,"zIndex","100000"),css$2(ghostEl,"pointerEvents","none"),Sortable.ghost=ghostEl,e.appendChild(ghostEl),css$2(ghostEl,"transform-origin",tapDistanceLeft/parseInt(ghostEl.style.width)*100+"% "+tapDistanceTop/parseInt(ghostEl.style.height)*100+"%")}},_onDragStart:function(e,t){var r=this,s=e.dataTransfer,a=r.options;if(pluginEvent("dragStart",this,{evt:e}),Sortable.eventCanceled){this._onDrop();return}pluginEvent("setupClone",this),Sortable.eventCanceled||(cloneEl=clone$2(dragEl),cloneEl.removeAttribute("id"),cloneEl.draggable=!1,cloneEl.style["will-change"]="",this._hideClone(),toggleClass(cloneEl,this.options.chosenClass,!1),Sortable.clone=cloneEl),r.cloneId=_nextTick(function(){pluginEvent("clone",r),!Sortable.eventCanceled&&(r.options.removeCloneOnHide||rootEl.insertBefore(cloneEl,dragEl),r._hideClone(),_dispatchEvent({sortable:r,name:"clone"}))}),!t&&toggleClass(dragEl,a.dragClass,!0),t?(ignoreNextClick=!0,r._loopId=setInterval(r._emulateDragOver,50)):(off(document,"mouseup",r._onDrop),off(document,"touchend",r._onDrop),off(document,"touchcancel",r._onDrop),s&&(s.effectAllowed="move",a.setData&&a.setData.call(r,s,dragEl)),on(document,"drop",r),css$2(dragEl,"transform","translateZ(0)")),awaitingDragStarted=!0,r._dragStartId=_nextTick(r._dragStarted.bind(r,t,e)),on(document,"selectstart",r),moved=!0,window.getSelection().removeAllRanges(),Safari&&css$2(document.body,"user-select","none")},_onDragOver:function(e){var t=this.el,r=e.target,s,a,l,c=this.options,d=c.group,u=Sortable.active,g=activeGroup===d,f=c.sort,m=putSortable||u,_,v=this,b=!1;if(_silent)return;function C(B,H){pluginEvent(B,v,_objectSpread2({evt:e,isOwner:g,axis:_?"vertical":"horizontal",revert:l,dragRect:s,targetRect:a,canSort:f,fromSortable:m,target:r,completed:S,onMove:function(U,j){return _onMove(rootEl,t,dragEl,s,U,getRect$1(U),e,j)},changed:w},H))}function y(){C("dragOverAnimationCapture"),v.captureAnimationState(),v!==m&&m.captureAnimationState()}function S(B){return C("dragOverCompleted",{insertion:B}),B&&(g?u._hideClone():u._showClone(v),v!==m&&(toggleClass(dragEl,putSortable?putSortable.options.ghostClass:u.options.ghostClass,!1),toggleClass(dragEl,c.ghostClass,!0)),putSortable!==v&&v!==Sortable.active?putSortable=v:v===Sortable.active&&putSortable&&(putSortable=null),m===v&&(v._ignoreWhileAnimating=r),v.animateAll(function(){C("dragOverAnimationComplete"),v._ignoreWhileAnimating=null}),v!==m&&(m.animateAll(),m._ignoreWhileAnimating=null)),(r===dragEl&&!dragEl.animated||r===t&&!r.animated)&&(lastTarget=null),!c.dragoverBubble&&!e.rootEl&&r!==document&&(dragEl.parentNode[expando]._isOutsideThisEl(e.target),!B&&nearestEmptyInsertDetectEvent(e)),!c.dragoverBubble&&e.stopPropagation&&e.stopPropagation(),b=!0}function w(){newIndex=index$5(dragEl),newDraggableIndex=index$5(dragEl,c.draggable),_dispatchEvent({sortable:v,name:"change",toEl:t,newIndex,newDraggableIndex,originalEvent:e})}if(e.preventDefault!==void 0&&e.cancelable&&e.preventDefault(),r=closest(r,c.draggable,t,!0),C("dragOver"),Sortable.eventCanceled)return b;if(dragEl.contains(e.target)||r.animated&&r.animatingX&&r.animatingY||v._ignoreWhileAnimating===r)return S(!1);if(ignoreNextClick=!1,u&&!c.disabled&&(g?f||(l=parentEl!==rootEl):putSortable===this||(this.lastPutMode=activeGroup.checkPull(this,u,dragEl,e))&&d.checkPut(this,u,dragEl,e))){if(_=this._getDirection(e,r)==="vertical",s=getRect$1(dragEl),C("dragOverValid"),Sortable.eventCanceled)return b;if(l)return parentEl=rootEl,y(),this._hideClone(),C("revert"),Sortable.eventCanceled||(nextEl?rootEl.insertBefore(dragEl,nextEl):rootEl.appendChild(dragEl)),S(!0);var E=lastChild(t,c.draggable);if(!E||_ghostIsLast(e,_,this)&&!E.animated){if(E===dragEl)return S(!1);if(E&&t===e.target&&(r=E),r&&(a=getRect$1(r)),_onMove(rootEl,t,dragEl,s,r,a,e,!!r)!==!1)return y(),E&&E.nextSibling?t.insertBefore(dragEl,E.nextSibling):t.appendChild(dragEl),parentEl=t,w(),S(!0)}else if(E&&_ghostIsFirst(e,_,this)){var x=getChild(t,0,c,!0);if(x===dragEl)return S(!1);if(r=x,a=getRect$1(r),_onMove(rootEl,t,dragEl,s,r,a,e,!1)!==!1)return y(),t.insertBefore(dragEl,x),parentEl=t,w(),S(!0)}else if(r.parentNode===t){a=getRect$1(r);var L=0,k,D=dragEl.parentNode!==t,I=!_dragElInRowColumn(dragEl.animated&&dragEl.toRect||s,r.animated&&r.toRect||a,_),T=_?"top":"left",M=isScrolledPast(r,"top","top")||isScrolledPast(dragEl,"top","top"),R=M?M.scrollTop:void 0;lastTarget!==r&&(k=a[T],pastFirstInvertThresh=!1,isCircumstantialInvert=!I&&c.invertSwap||D),L=_getSwapDirection(e,r,a,_,I?1:c.swapThreshold,c.invertedSwapThreshold==null?c.swapThreshold:c.invertedSwapThreshold,isCircumstantialInvert,lastTarget===r);var N;if(L!==0){var A=index$5(dragEl);do A-=L,N=parentEl.children[A];while(N&&(css$2(N,"display")==="none"||N===ghostEl))}if(L===0||N===r)return S(!1);lastTarget=r,lastDirection=L;var O=r.nextElementSibling,P=!1;P=L===1;var F=_onMove(rootEl,t,dragEl,s,r,a,e,P);if(F!==!1)return(F===1||F===-1)&&(P=F===1),_silent=!0,setTimeout(_unsilent,30),y(),P&&!O?t.appendChild(dragEl):r.parentNode.insertBefore(dragEl,P?O:r),M&&scrollBy(M,0,R-M.scrollTop),parentEl=dragEl.parentNode,k!==void 0&&!isCircumstantialInvert&&(targetMoveDistance=Math.abs(k-getRect$1(r)[T])),w(),S(!0)}if(t.contains(dragEl))return S(!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,"pointercancel",this._onDrop),off(e,"touchcancel",this._onDrop),off(document,"selectstart",this)},_onDrop:function(e){var t=this.el,r=this.options;if(newIndex=index$5(dragEl),newDraggableIndex=index$5(dragEl,r.draggable),pluginEvent("drop",this,{evt:e}),parentEl=dragEl&&dragEl.parentNode,newIndex=index$5(dragEl),newDraggableIndex=index$5(dragEl,r.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$2(document.body,"user-select",""),css$2(dragEl,"transform",""),e&&(moved&&(e.cancelable&&e.preventDefault(),!r.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,r=this.el.children,s=0,a=r.length,l=this.options;s<a;s++)t=r[s],closest(t,l.draggable,this.el,!1)&&e.push(t.getAttribute(l.dataIdAttr)||_generateId(t));return e},sort:function(e,t){var r={},s=this.el;this.toArray().forEach(function(a,l){var c=s.children[l];closest(c,this.options.draggable,s,!1)&&(r[a]=c)},this),t&&this.captureAnimationState(),e.forEach(function(a){r[a]&&(s.removeChild(r[a]),s.appendChild(r[a]))}),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 r=this.options;if(t===void 0)return r[e];var s=PluginManager.modifyOption(this,e,t);typeof s<"u"?r[e]=s:r[e]=t,e==="group"&&_prepareGroup(r)},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$2(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$2(cloneEl,"display",""),cloneHidden=!1}}};function _globalDragOver(o){o.dataTransfer&&(o.dataTransfer.dropEffect="move"),o.cancelable&&o.preventDefault()}function _onMove(o,e,t,r,s,a,l,c){var d,u=o[expando],g=u.options.onMove,f;return window.CustomEvent&&!IE11OrLess&&!Edge?d=new CustomEvent("move",{bubbles:!0,cancelable:!0}):(d=document.createEvent("Event"),d.initEvent("move",!0,!0)),d.to=e,d.from=o,d.dragged=t,d.draggedRect=r,d.related=s||e,d.relatedRect=a||getRect$1(e),d.willInsertAfter=c,d.originalEvent=l,o.dispatchEvent(d),g&&(f=g.call(u,d,l)),f}function _disableDraggable(o){o.draggable=!1}function _unsilent(){_silent=!1}function _ghostIsFirst(o,e,t){var r=getRect$1(getChild(t.el,0,t.options,!0)),s=getChildContainingRectFromElement(t.el,t.options,ghostEl),a=10;return e?o.clientX<s.left-a||o.clientY<r.top&&o.clientX<r.right:o.clientY<s.top-a||o.clientY<r.bottom&&o.clientX<r.left}function _ghostIsLast(o,e,t){var r=getRect$1(lastChild(t.el,t.options.draggable)),s=getChildContainingRectFromElement(t.el,t.options,ghostEl),a=10;return e?o.clientX>s.right+a||o.clientY>r.bottom&&o.clientX>r.left:o.clientY>s.bottom+a||o.clientX>r.right&&o.clientY>r.top}function _getSwapDirection(o,e,t,r,s,a,l,c){var d=r?o.clientY:o.clientX,u=r?t.height:t.width,g=r?t.top:t.left,f=r?t.bottom:t.right,m=!1;if(!l){if(c&&targetMoveDistance<u*s){if(!pastFirstInvertThresh&&(lastDirection===1?d>g+u*a/2:d<f-u*a/2)&&(pastFirstInvertThresh=!0),pastFirstInvertThresh)m=!0;else if(lastDirection===1?d<g+targetMoveDistance:d>f-targetMoveDistance)return-lastDirection}else if(d>g+u*(1-s)/2&&d<f-u*(1-s)/2)return _getInsertDirection(e)}return m=m||l,m&&(d<g+u*a/2||d>f-u*a/2)?d>g+u/2?1:-1:0}function _getInsertDirection(o){return index$5(dragEl)<index$5(o)?1:-1}function _generateId(o){for(var e=o.tagName+o.className+o.src+o.href+o.textContent,t=e.length,r=0;t--;)r+=e.charCodeAt(t);return r.toString(36)}function _saveInputCheckedState(o){savedInputChecked.length=0;for(var e=o.getElementsByTagName("input"),t=e.length;t--;){var r=e[t];r.checked&&savedInputChecked.push(r)}}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:css$2,find:find$3,is:function(e,t){return!!closest(e,t,e,!1)},extend,throttle:throttle$1,closest,toggleClass,clone:clone$2,index:index$5,nextTick:_nextTick,cancelNextTick:_cancelNextTick,detectDirection:_detectDirection,getChild,expando};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(r){if(!r.prototype||!r.prototype.constructor)throw"Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(r));r.utils&&(Sortable.utils=_objectSpread2(_objectSpread2({},Sortable.utils),r.utils)),PluginManager.mount(r)})};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 r=t.originalEvent;this.sortable.nativeDraggable?on(document,"dragover",this._handleAutoScroll):this.options.supportPointer?on(document,"pointermove",this._handleFallbackAutoScroll):r.touches?on(document,"touchmove",this._handleFallbackAutoScroll):on(document,"mousemove",this._handleFallbackAutoScroll)},dragOverCompleted:function(t){var r=t.originalEvent;!this.options.dragOverBubble&&!r.rootEl&&this._handleAutoScroll(r)},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,r){var s=this,a=(t.touches?t.touches[0]:t).clientX,l=(t.touches?t.touches[0]:t).clientY,c=document.elementFromPoint(a,l);if(touchEvt$1=t,r||this.options.forceAutoScrollFallback||Edge||IE11OrLess||Safari){autoScroll(t,this.options,c,r);var d=getParentAutoScrollElement(c,!0);scrolling&&(!pointerElemChangedInterval||a!==lastAutoScrollX||l!==lastAutoScrollY)&&(pointerElemChangedInterval&&clearPointerElemChangedInterval(),pointerElemChangedInterval=setInterval(function(){var u=getParentAutoScrollElement(document.elementFromPoint(a,l),!0);u!==d&&(d=u,clearAutoScrolls()),autoScroll(t,s.options,u,r)},10),lastAutoScrollX=a,lastAutoScrollY=l)}else{if(!this.options.bubbleScroll||getParentAutoScrollElement(c,!0)===getWindowScrollingElement()){clearAutoScrolls();return}autoScroll(t,this.options,getParentAutoScrollElement(c,!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$1(function(o,e,t,r){if(e.scroll){var s=(o.touches?o.touches[0]:o).clientX,a=(o.touches?o.touches[0]:o).clientY,l=e.scrollSensitivity,c=e.scrollSpeed,d=getWindowScrollingElement(),u=!1,g;scrollRootEl!==t&&(scrollRootEl=t,clearAutoScrolls(),scrollEl=e.scroll,g=e.scrollFn,scrollEl===!0&&(scrollEl=getParentAutoScrollElement(t,!0)));var f=0,m=scrollEl;do{var _=m,v=getRect$1(_),b=v.top,C=v.bottom,y=v.left,S=v.right,w=v.width,E=v.height,x=void 0,L=void 0,k=_.scrollWidth,D=_.scrollHeight,I=css$2(_),T=_.scrollLeft,M=_.scrollTop;_===d?(x=w<k&&(I.overflowX==="auto"||I.overflowX==="scroll"||I.overflowX==="visible"),L=E<D&&(I.overflowY==="auto"||I.overflowY==="scroll"||I.overflowY==="visible")):(x=w<k&&(I.overflowX==="auto"||I.overflowX==="scroll"),L=E<D&&(I.overflowY==="auto"||I.overflowY==="scroll"));var R=x&&(Math.abs(S-s)<=l&&T+w<k)-(Math.abs(y-s)<=l&&!!T),N=L&&(Math.abs(C-a)<=l&&M+E<D)-(Math.abs(b-a)<=l&&!!M);if(!autoScrolls[f])for(var A=0;A<=f;A++)autoScrolls[A]||(autoScrolls[A]={});(autoScrolls[f].vx!=R||autoScrolls[f].vy!=N||autoScrolls[f].el!==_)&&(autoScrolls[f].el=_,autoScrolls[f].vx=R,autoScrolls[f].vy=N,clearInterval(autoScrolls[f].pid),(R!=0||N!=0)&&(u=!0,autoScrolls[f].pid=setInterval((function(){r&&this.layer===0&&Sortable.active._onTouchMove(touchEvt$1);var O=autoScrolls[this.layer].vy?autoScrolls[this.layer].vy*c:0,P=autoScrolls[this.layer].vx?autoScrolls[this.layer].vx*c:0;typeof g=="function"&&g.call(Sortable.dragged.parentNode[expando],P,O,o,touchEvt$1,autoScrolls[this.layer].el)!=="continue"||scrollBy(autoScrolls[this.layer].el,P,O)}).bind({layer:f}),24))),f++}while(e.bubbleScroll&&m!==d&&(m=getParentAutoScrollElement(m,!1)));scrolling=u}},30),drop=function(e){var t=e.originalEvent,r=e.putSortable,s=e.dragEl,a=e.activeSortable,l=e.dispatchSortableEvent,c=e.hideGhostForTarget,d=e.unhideGhostForTarget;if(t){var u=r||a;c();var g=t.changedTouches&&t.changedTouches.length?t.changedTouches[0]:t,f=document.elementFromPoint(g.clientX,g.clientY);d(),u&&!u.el.contains(f)&&(l("spill"),this.onSpill({dragEl:s,putSortable:r}))}};function Revert(){}Revert.prototype={startIndex:null,dragStart:function(e){var t=e.oldDraggableIndex;this.startIndex=t},onSpill:function(e){var t=e.dragEl,r=e.putSortable;this.sortable.captureAnimationState(),r&&r.captureAnimationState();var s=getChild(this.sortable.el,this.startIndex,this.options);s?this.sortable.el.insertBefore(t,s):this.sortable.el.appendChild(t),this.sortable.animateAll(),r&&r.animateAll()},drop};_extends(Revert,{pluginName:"revertOnSpill"});function Remove(){}Remove.prototype={onSpill:function(e){var t=e.dragEl,r=e.putSortable,s=r||this.sortable;s.captureAnimationState(),t.parentNode&&t.parentNode.removeChild(t),s.animateAll()},drop};_extends(Remove,{pluginName:"removeOnSpill"});Sortable.mount(new AutoScrollPlugin);Sortable.mount(Remove,Revert);const defineFormConfig=o=>o,isTableSelect=o=>typeof o=="string"&&["table-select","tableSelect"].includes(o),asyncLoadConfig=(o,e,{asyncLoad:t,name:r,type:s})=>{s==="html"&&typeof t=="object"&&typeof r<"u"&&(t.name=r,o.asyncLoad=typeof e.asyncLoad=="object"?e.asyncLoad:t)},isMultipleValue=o=>typeof o=="string"&&["checkbox-group","checkboxGroup","table","cascader","group-list","groupList"].includes(o),initItemsValue=(o,e,t,{items:r,name:s,extensible:a})=>{Array.isArray(t[s])?e[s]=t[s].map((l,c)=>{var d;return createValues(o,r,l,(d=e[s])==null?void 0:d[c])}):(e[s]=createValues(o,r,t[s],e[s]),a&&(e[s]=Object.assign({},t[s],e[s])))},setValue=(o,e,t,r)=>{const{items:s,name:a,type:l,checkbox:c}=r;if((isMultipleValue(l)||l==="tab"&&r.dynamic)&&(e[a]=t[a]||[]),s?initItemsValue(o,e,t,r):e[a]=getDefaultValue$1(o,r),l==="fieldset"&&c){const d=typeof c=="object"&&typeof c.name=="string"?c.name:"value",u=typeof c=="object"&&typeof c.falseValue<"u"?c.falseValue:0;a&&typeof e[a]=="object"&&(e[a][d]=typeof t[a]=="object"&&t[a][d]||u)}},initValueItem=function(o,e,t,r){const{items:s}=e,{names:a}=e,{type:l,name:c}=e;return isTableSelect(l)&&c?(r[c]=t[c]||"",r):(asyncLoadConfig(r,t,e),c&&!s&&typeof t[c]<"u"?(typeof r[c]>"u"&&(l==="number"?r[c]=Number(t[c]):r[c]=typeof t[c]=="object"?cloneDeep(t[c]):t[c]),r):a?a.forEach(d=>r[d]=t[d]||""):c?(setValue(o,r,t,e),l==="table"&&(e.defautSort?sortChange(r[c],e.defautSort):e.defaultSort&&sortChange(r[c],e.defaultSort),e.sort&&e.sortKey&&r[c].sort((d,u)=>u[e.sortKey]-d[e.sortKey])),r):createValues(o,s,t,r))},createValues=function(o,e=[],t={},r={}){return Array.isArray(e)&&e.forEach(s=>{initValueItem(o,s,t,r)}),r},getDefaultValue$1=function(o,{defaultValue:e,type:t,filter:r,multiple:s}){if(typeof e=="function")return e(o);if(e!=="undefined")return typeof e<"u"?e:t==="number"||r==="number"?0:["switch","checkbox"].includes(t)?!1:s||t==="number-range"?[]:""},filterFunction=(o,e,t)=>typeof e=="function"?e(o,{values:(o==null?void 0:o.initValues)||{},model:t.model,parent:(o==null?void 0:o.parentValues)||{},formValue:(o==null?void 0:o.values)||t.model,prop:t.prop,config:t.config,index:t.index,getFormValue:r=>getValueByKeyPath(r,(o==null?void 0:o.values)||t.model)}):e,display$1=function(o,e,t){return e==="expand"?e:typeof e=="function"?filterFunction(o,e,t):e!==!1},getRules=function(o,e=[],t){return e=cloneDeep(e),typeof e=="object"&&!Array.isArray(e)&&(e=[e]),e.map(r=>{if(typeof r.validator=="function"){const s=r.validator;r.validator=(a,l,c,d,u)=>s({rule:a,value:t.config.names?t.model:l,callback:c,source:d,options:u},{values:(o==null?void 0:o.initValues)||{},model:t.model,parent:(o==null?void 0:o.parentValues)||{},formValue:(o==null?void 0:o.values)||t.model,prop:t.prop,config:t.config},o)}return r})},initValue=async(o,{initValues:e,config:t})=>{if(!Array.isArray(t))throw new Error("config应该为数组");let r=createValues(o,t,toRaw(e),{});const[s]=t;return s&&typeof s.onInitValue=="function"&&(r=await s.onInitValue(o,{formValue:r,initValue:e})),r||{}},datetimeFormatter=(o,e="-",t="YYYY-MM-DD HH:mm:ss")=>{if(o){let r;return["x","timestamp"].includes(t)?r=dayjs(o).valueOf():typeof o=="string"&&o.includes("Z")||o.constructor===Date?(dayjs.extend(utc),r=dayjs(o).utcOffset(8).format(t)):r=dayjs(o).format(t),r!=="Invalid Date"?r:e}return e},getDataByPage=(o=[],e,t)=>o.filter((r,s)=>s>=e*t&&s+1<=(e+1)*t),sortArray=(o,e,t,r)=>{if(e===t||e<0||e>=o.length||t<0||t>=o.length)return o;const s=o.toSpliced(e,0,...o.splice(t,1));if(r)for(let a=s.length-1,l=0;a>=0;a--,l++)s[l][r]=a;return cloneDeep(s)},sortChange=(o,{prop:e,order:t})=>{t==="ascending"?o=o.sort((r,s)=>r[e]-s[e]):t==="descending"&&(o=o.sort((r,s)=>s[e]-r[e]))},_hoisted_1$e$1={key:0,style:{display:"inline-flex","align-items":"center"}},_hoisted_2$8$1=["innerHTML","title"],_hoisted_3$6$1=["innerHTML"],_hoisted_4$5$1=["innerHTML","title"],_sfc_main$B$1=defineComponent({__name:"FormLabel",props:{tip:{},type:{},useLabel:{type:Boolean},text:{},labelTitle:{}},setup(o){return(e,t)=>o.tip?(openBlock(),createElementBlock("span",_hoisted_1$e$1,[createBaseVNode("span",{innerHTML:o.type==="checkbox"&&!o.useLabel?"":o.text,title:o.labelTitle},null,8,_hoisted_2$8$1),o.tip&&(o.type!=="checkbox"||o.useLabel)?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,placement:"top"},{content:withCtx(()=>[createBaseVNode("div",{innerHTML:o.tip},null,8,_hoisted_3$6$1)]),default:withCtx(()=>[createVNode(unref(_sfc_main$n$2),{style:{"margin-left":"5px",display:"flex"}},{default:withCtx(()=>[createVNode(unref(warning_filled_default))]),_:1})]),_:1})):createCommentVNode("v-if",!0)])):(openBlock(),createElementBlock("span",{key:1,innerHTML:o.type==="checkbox"&&!o.useLabel?"":o.text,title:o.labelTitle},null,8,_hoisted_4$5$1))}}),_hoisted_1$d$1=["data-tmagic-id","data-tmagic-form-item-prop"],_hoisted_2$7$1=["innerHTML"],_hoisted_3$5$1=["innerHTML"],_hoisted_4$4$1=["innerHTML"],_hoisted_5$3=["innerHTML"],_hoisted_6$1$1=["innerHTML"],_hoisted_7$1=["innerHTML"],_hoisted_8$1={key:5,style:{"text-align":"center"}},_sfc_main$A$1=defineComponent({name:"MFormContainer",__name:"Container",props:{model:{},lastValues:{default:()=>({})},config:{},prop:{default:""},disabled:{type:Boolean},labelWidth:{},expandMore:{type:Boolean,default:!1},stepActive:{},size:{default:"small"},isCompare:{type:Boolean,default:!1}},emits:["change","addDiffCount"],setup(o,{emit:e}){const t=o,r=e,s=inject("mForm"),a=ref$1(!1),l=computed$1(()=>t.config.name||""),c=computed$1(()=>{if(!t.isCompare)return!1;const N=l.value?t.model[l.value]:t.model,A=l.value?t.lastValues[l.value]:t.lastValues;return!isEqual$1(N,A)}),d=computed$1(()=>t.config.items),u=computed$1(()=>{let N="";if(l.value)N=l.value;else return t.prop;return typeof t.prop<"u"&&t.prop!==""?"".concat(t.prop,".").concat(N):"".concat(N)}),g=computed$1(()=>b.value==="component"&&t.config.component?t.config.component:"m-".concat(d.value?"form":"fields","-").concat(b.value)),f=computed$1(()=>t.disabled||filterFunction(s,t.config.disabled,t)),m=computed$1(()=>filterFunction(s,t.config.text,t)),_=computed$1(()=>{const N=filterFunction(s,t.config.tooltip,t);return typeof N=="string"?{text:N,placement:"top"}:{text:N==null?void 0:N.text,placement:(N==null?void 0:N.placement)||"top"}}),v=computed$1(()=>getRules(s,t.config.rules,t)),b=computed$1(()=>{let{type:N}=t.config;return N=N&&filterFunction(s,N,t),N==="form"||N==="container"?"":(N==null?void 0:N.replace(/([A-Z])/g,"-$1").toLowerCase())||(d.value?"":"text")}),C=computed$1(()=>{const N=display$1(s,t.config.display,t);return N==="expand"?a.value:N}),y=computed$1(()=>({size:t.size,config:t.config,name:l.value,disabled:f.value,prop:u.value,key:t.config[s==null?void 0:s.keyProps],style:t.config.fieldStyle})),S=computed$1(()=>({prop:u.value,labelWidth:w.value,labelPosition:t.config.labelPosition,rules:v.value,extra:filterFunction(s,t.config.extra,t)})),w=computed$1(()=>{var N;return(N=t.config.labelWidth)!=null?N:t.labelWidth});watchEffect(()=>{a.value=t.expandMore}),watch(c,N=>{b.value!=="hidden"&&(d.value&&!m.value&&b.value&&C.value||C.value&&N&&b.value&&r("addDiffCount"))},{immediate:!0});const E=()=>a.value=!a.value,x=N=>N[s==null?void 0:s.keyProps],L=(N,A)=>typeof N=="function"?N(s,A,{model:t.model,values:s==null?void 0:s.initValues,formValue:s==null?void 0:s.values,prop:u.value,config:t.config,getFormValue:O=>getValueByKeyPath(O,(s==null?void 0:s.values)||t.model)}):N==="number"?+A:A,k=(N,A)=>{if(typeof A=="string"&&N)return A.replace(/^\s*/,"").replace(/\s*$/,"")},D=()=>r("addDiffCount"),I=N=>typeof(N==null?void 0:N.modifyKey)<"u"&&N.modifyKey!=="",T=()=>{const N=typeof l.value;return N!=="string"&&N!=="symbol"&&N!=="number"||l.value===""?!1:typeof l.value=="number"?l.value>=0:!0},M=(N,A,O="")=>new Proxy(N,{get:(P,F)=>{const B=P[F];if(B&&typeof B=="object"){const H=O?"".concat(O,".").concat(F):F;return M(B,A,H)}return B},set:(P,F,B)=>(A(O?"".concat(O,".").concat(F):F,B),!0)}),R=async function(N,A={}){var j,X;const{filter:O,onChange:P,trim:F}=t.config;let B=toRaw(N);const H=A.changeRecords||[],V=[...H];try{if(B=L(O,N),typeof P=="function"){const ee=(J,q)=>{t.config.name?V.push({propPath:u.value.replace("".concat(t.config.name),J),value:q}):V.push({propPath:u.value,value:q})},Z=(J,q)=>{V.push({propPath:J,value:q})};B=(j=await P(s,B,{model:M(t.model,ee),values:s?readonly(s.initValues):null,formValue:M((s==null?void 0:s.values)||{},Z),prop:u.value,config:t.config,changeRecords:V,setModel:ee,setFormValue:Z,getFormValue:J=>getValueByKeyPath(J,(s==null?void 0:s.values)||t.model)}))!=null?j:B}B=(X=k(F,B))!=null?X:B}catch(ee){console.error(ee)}let U=u.value;I(A)&&(U=U?"".concat(U,".").concat(A.modifyKey):A.modifyKey,delete A.modifyKey),H.length===0&&V.push({propPath:U,value:B}),r("change",t.model,{...A,changeRecords:V})};return(N,A)=>{const O=resolveComponent("m-fields-hidden"),P=resolveComponent("Container",!0);return openBlock(),createElementBlock("div",{"data-tmagic-id":o.config.id,"data-tmagic-form-item-prop":u.value,class:normalizeClass("m-form-container m-container-".concat(b.value||""," ").concat(o.config.className||"").concat(o.config.tip?" has-tip":"")),style:normalizeStyle(o.config.style)},[b.value==="hidden"?(openBlock(),createBlock(O,mergeProps({key:0},y.value,{model:o.model}),null,16,["model"])):d.value&&!m.value&&b.value&&C.value?(openBlock(),createBlock(resolveDynamicComponent(g.value),mergeProps({key:1},y.value,{model:o.model,"last-values":o.lastValues,"is-compare":o.isCompare,"step-active":o.stepActive,"expand-more":a.value,"label-width":w.value,style:o.config.fieldStyle,onChange:R,onAddDiffCount:D}),null,16,["model","last-values","is-compare","step-active","expand-more","label-width","style"])):b.value&&C.value&&!c.value?(openBlock(),createElementBlock(Fragment,{key:2},[createVNode(unref(_sfc_main$o$2),mergeProps(S.value,{class:{"tmagic-form-hidden":"".concat(w.value)==="0"||!m.value}}),{label:withCtx(()=>[createVNode(_sfc_main$B$1,{tip:o.config.tip,type:b.value,"use-label":o.config.useLabel,"label-title":o.config.labelTitle,text:m.value},null,8,["tip","type","use-label","label-title","text"])]),default:withCtx(()=>[_.value.text?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,placement:_.value.placement},{content:withCtx(()=>[createBaseVNode("div",{innerHTML:_.value.text},null,8,_hoisted_2$7$1)]),default:withCtx(()=>[(openBlock(),createBlock(resolveDynamicComponent(g.value),mergeProps(y.value,{model:o.model,"last-values":o.lastValues,"is-compare":o.isCompare,onChange:R,onAddDiffCount:D}),null,16,["model","last-values","is-compare"]))]),_:1},8,["placement"])):(openBlock(),createBlock(resolveDynamicComponent(g.value),mergeProps({key:1},y.value,{model:o.model,"last-values":o.lastValues,"is-compare":o.isCompare,onChange:R,onAddDiffCount:D}),null,16,["model","last-values","is-compare"]))]),_:1},16,["class"]),o.config.tip&&b.value==="checkbox"&&!o.config.useLabel?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,placement:"top"},{content:withCtx(()=>[createBaseVNode("div",{innerHTML:o.config.tip},null,8,_hoisted_3$5$1)]),default:withCtx(()=>[createVNode(unref(_sfc_main$n$2),{style:{"line-height":"40px","margin-left":"5px"}},{default:withCtx(()=>[createVNode(unref(warning_filled_default))]),_:1})]),_:1})):createCommentVNode("v-if",!0)],64)):b.value&&C.value&&c.value?(openBlock(),createElementBlock(Fragment,{key:3},[createCommentVNode(" 对比 "),createCommentVNode(" 上次内容 "),createVNode(unref(_sfc_main$o$2),mergeProps(S.value,{class:{"tmagic-form-hidden":"".concat(w.value)==="0"||!m.value,"show-diff":!0}}),{label:withCtx(()=>[createVNode(_sfc_main$B$1,{tip:o.config.tip,type:b.value,"use-label":o.config.useLabel,"label-title":o.config.labelTitle,text:m.value},null,8,["tip","type","use-label","label-title","text"])]),default:withCtx(()=>[_.value.text?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,placement:_.value.placement},{content:withCtx(()=>[createBaseVNode("div",{innerHTML:_.value.text},null,8,_hoisted_4$4$1)]),default:withCtx(()=>[(openBlock(),createBlock(resolveDynamicComponent(g.value),mergeProps(y.value,{model:o.lastValues,onChange:R}),null,16,["model"]))]),_:1},8,["placement"])):(openBlock(),createBlock(resolveDynamicComponent(g.value),mergeProps({key:1},y.value,{model:o.lastValues,onChange:R}),null,16,["model"]))]),_:1},16,["class"]),o.config.tip&&b.value==="checkbox"&&!o.config.useLabel?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,placement:"top"},{content:withCtx(()=>[createBaseVNode("div",{innerHTML:o.config.tip},null,8,_hoisted_5$3)]),default:withCtx(()=>[createVNode(unref(_sfc_main$n$2),{style:{"line-height":"40px","margin-left":"5px"}},{default:withCtx(()=>[createVNode(unref(warning_filled_default))]),_:1})]),_:1})):createCommentVNode("v-if",!0),createCommentVNode(" 当前内容 "),createVNode(unref(_sfc_main$o$2),mergeProps(S.value,{style:o.config.tip?"flex: 1":"",class:{"tmagic-form-hidden":"".concat(w.value)==="0"||!m.value,"show-diff":!0}}),{label:withCtx(()=>[createVNode(_sfc_main$B$1,{tip:o.config.tip,type:b.value,"use-label":o.config.useLabel,"label-title":o.config.labelTitle,text:m.value},null,8,["tip","type","use-label","label-title","text"])]),default:withCtx(()=>[_.value.text?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,placement:_.value.placement},{content:withCtx(()=>[createBaseVNode("div",{innerHTML:_.value.text},null,8,_hoisted_6$1$1)]),default:withCtx(()=>[(openBlock(),createBlock(resolveDynamicComponent(g.value),mergeProps(y.value,{model:o.model,onChange:R}),null,16,["model"]))]),_:1},8,["placement"])):(openBlock(),createBlock(resolveDynamicComponent(g.value),mergeProps({key:1},y.value,{model:o.model,onChange:R}),null,16,["model"]))]),_:1},16,["style","class"]),o.config.tip&&b.value==="checkbox"&&!o.config.useLabel?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:1,placement:"top"},{content:withCtx(()=>[createBaseVNode("div",{innerHTML:o.config.tip},null,8,_hoisted_7$1)]),default:withCtx(()=>[createVNode(unref(_sfc_main$n$2),{style:{"line-height":"40px","margin-left":"5px"}},{default:withCtx(()=>[createVNode(unref(warning_filled_default))]),_:1})]),_:1})):createCommentVNode("v-if",!0)],64)):d.value&&C.value?(openBlock(),createElementBlock(Fragment,{key:4},[(T()?o.model[l.value]:o.model)?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(d.value,F=>(openBlock(),createBlock(P,{key:x(F),model:T()?o.model[l.value]:o.model,"last-values":T()?o.lastValues[l.value]||{}:o.lastValues,"is-compare":o.isCompare,config:F,size:o.size,disabled:f.value,"step-active":o.stepActive,"expand-more":a.value,"label-width":w.value,prop:u.value,onChange:R,onAddDiffCount:D},null,8,["model","last-values","is-compare","config","size","disabled","step-active","expand-more","label-width","prop"]))),128)):createCommentVNode("v-if",!0)],64)):createCommentVNode("v-if",!0),o.config.expand&&b.value!=="fieldset"?(openBlock(),createElementBlock("div",_hoisted_8$1,[createVNode(unref(_sfc_main$F$1),{type:"primary",size:"small",disabled:!1,link:"",onClick:E},{default:withCtx(()=>[createTextVNode(toDisplayString(a.value?"收起配置":"展开更多配置"),1)]),_:1})])):createCommentVNode("v-if",!0)],14,_hoisted_1$d$1)}}}),_hoisted_1$c$1=["innerHTML"],_hoisted_2$6$1=["innerHTML"],_hoisted_3$4$1={key:1},_hoisted_4$3$1=["innerHTML"],_hoisted_5$2$1=["innerHTML"],_hoisted_6$3={key:2,style:{display:"flex"}},_hoisted_7={style:{flex:"1"}},_hoisted_8=["src"],_sfc_main$z$1=defineComponent({name:"MFormFieldset",__name:"Fieldset",props:{labelWidth:{},prop:{default:""},size:{},model:{},lastValues:{default:()=>({})},isCompare:{type:Boolean,default:!1},config:{},rules:{default:{}},disabled:{type:Boolean}},emits:["change","addDiffCount"],setup(o,{emit:e}){const t=o,r=e,s=inject("mForm"),a=computed$1(()=>t.config.name||""),l=computed$1(()=>typeof t.config.checkbox=="object"&&typeof t.config.checkbox.name=="string"?t.config.checkbox.name:"value"),c=computed$1(()=>typeof t.config.checkbox=="object"&&typeof t.config.checkbox.trueValue<"u"?t.config.checkbox.trueValue:1),d=computed$1(()=>typeof t.config.checkbox=="object"&&typeof t.config.checkbox.falseValue<"u"?t.config.checkbox.falseValue:0),u=computed$1(()=>{var b;return t.config.expand&&l.value?((b=a.value?t.model[a.value]:t.model)==null?void 0:b[l.value])===c.value:!0}),g=computed$1(()=>t.config.items?t.config.labelWidth||t.labelWidth:t.config.labelWidth||t.labelWidth||(t.config.text?void 0:"0")),f=b=>{r("change",b,{modifyKey:l.value})},m=(b,C)=>r("change",b,C),_=(b,C)=>{var y;return(y=b[(s==null?void 0:s.keyProp)||"__key"])!=null?y:C},v=()=>r("addDiffCount");return(b,C)=>(a.value?o.model[a.value]:o.model)?(openBlock(),createElementBlock("fieldset",{key:0,class:"m-fieldset",style:normalizeStyle(u.value?"padding: 15px":"border: 0")},[a.value&&o.config.checkbox?(openBlock(),createBlock(resolveDynamicComponent(u.value?"legend":"div"),{key:0},{default:withCtx(()=>[createVNode(unref(_sfc_main$C$1),{"model-value":(a.value?o.model[a.value]:o.model)[l.value],prop:"".concat(o.prop).concat(o.prop?".":"").concat(o.config.name,".").concat(l.value),"true-value":c.value,"false-value":d.value,"onUpdate:modelValue":f},{default:withCtx(()=>[createBaseVNode("span",{innerHTML:o.config.legend},null,8,_hoisted_1$c$1),o.config.extra?(openBlock(),createElementBlock("span",{key:0,innerHTML:o.config.extra,class:"m-form-tip"},null,8,_hoisted_2$6$1)):createCommentVNode("v-if",!0)]),_:1},8,["model-value","prop","true-value","false-value"])]),_:1})):(openBlock(),createElementBlock("legend",_hoisted_3$4$1,[createBaseVNode("span",{innerHTML:o.config.legend},null,8,_hoisted_4$3$1),o.config.extra?(openBlock(),createElementBlock("span",{key:0,innerHTML:o.config.extra,class:"m-form-tip"},null,8,_hoisted_5$2$1)):createCommentVNode("v-if",!0)])),o.config.schematic&&u.value?(openBlock(),createElementBlock("div",_hoisted_6$3,[createBaseVNode("div",_hoisted_7,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.config.items,(y,S)=>(openBlock(),createBlock(_sfc_main$A$1,{key:_(y,S),model:a.value?o.model[a.value]:o.model,lastValues:a.value?o.lastValues[a.value]:o.lastValues,"is-compare":o.isCompare,rules:a.value?o.rules[a.value]:[],config:y,prop:o.prop,disabled:o.disabled,labelWidth:g.value,size:o.size,onChange:m,onAddDiffCount:C[0]||(C[0]=w=>v())},null,8,["model","lastValues","is-compare","rules","config","prop","disabled","labelWidth","size"]))),128))]),createBaseVNode("img",{class:"m-form-schematic",src:o.config.schematic},null,8,_hoisted_8)])):u.value?(openBlock(!0),createElementBlock(Fragment,{key:3},renderList(o.config.items,(y,S)=>(openBlock(),createBlock(_sfc_main$A$1,{key:_(y,S),model:a.value?o.model[a.value]:o.model,lastValues:a.value?o.lastValues[a.value]:o.lastValues,"is-compare":o.isCompare,rules:a.value?o.rules[a.value]:[],config:y,prop:o.prop,labelWidth:g.value,size:o.size,disabled:o.disabled,onChange:m,onAddDiffCount:C[1]||(C[1]=w=>v())},null,8,["model","lastValues","is-compare","rules","config","prop","labelWidth","size","disabled"]))),128)):createCommentVNode("v-if",!0)],4)):createCommentVNode("v-if",!0)}}),_sfc_main$y$1=defineComponent({name:"MFormFlexLayout",__name:"FlexLayout",props:{model:{},lastValues:{},isCompare:{type:Boolean},config:{},name:{},labelWidth:{},prop:{},size:{},disabled:{type:Boolean}},emits:["change","addDiffCount"],setup(o,{emit:e}){const t=o,r=e,s=inject("mForm"),a=computed$1(()=>t.config.gap||"16px"),l=(d,u)=>{r("change",t.model,u)},c=()=>r("addDiffCount");return(d,u)=>(openBlock(),createElementBlock("div",{class:"m-form-flex-layout",style:normalizeStyle({display:"flex",flexWrap:"wrap",gap:a.value})},[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.config.items,(g,f)=>{var m,_;return openBlock(),createBlock(_sfc_main$A$1,{key:(_=g[((m=unref(s))==null?void 0:m.keyProp)||"__key"])!=null?_:f,config:g,model:o.name?o.model[o.name]:o.model,lastValues:o.name?o.lastValues[o.name]:o.lastValues,"is-compare":o.isCompare,prop:o.prop,size:o.size,disabled:o.disabled,"label-width":o.config.labelWidth||o.labelWidth,onChange:l,onAddDiffCount:u[0]||(u[0]=v=>c())},null,8,["config","model","lastValues","is-compare","prop","size","disabled","label-width"])}),128))],4))}}),_hoisted_1$b$1={style:{"text-align":"right","margin-top":"20px"}},_hoisted_2$5$1=["innerHTML"],_sfc_main$x$1=defineComponent({name:"MFormGroupListItem",__name:"GroupListItem",props:{model:{},lastValues:{},isCompare:{type:Boolean},groupModel:{},config:{},labelWidth:{},prop:{},size:{},index:{},disabled:{type:Boolean}},emits:["swap-item","remove-item","change","addDiffCount","copy-item"],setup(o,{emit:e}){var k;const t=o,r=e,s=inject("mForm"),a=(k=t.config.defaultExpandQuantity)!=null?k:7,l=ref$1(t.config.expandAll||a>t.index),c=computed$1(()=>({type:"row",span:t.config.span||24,items:t.config.items,labelWidth:t.config.labelWidth,[(s==null?void 0:s.keyProp)||"__key"]:"".concat(t.config[(s==null?void 0:s.keyProp)||"__key"]).concat(String(t.index))})),d=computed$1(()=>{if(t.config.titleKey&&t.model[t.config.titleKey])return t.model[t.config.titleKey];if(t.config.title)return filterFunction(s,t.config.title,t);const D=t.config.titlePrefix||"组";return"".concat(D," ").concat(String(t.index+1))}),u=computed$1(()=>{var D;return((D=t.groupModel)==null?void 0:D.length)||0}),g=computed$1(()=>filterFunction(s,t.config.itemExtra,t)),f=()=>r("remove-item",t.index),m=(D,I)=>{r("change",t.model,I)},_=()=>{l.value=!l.value},v=computed$1(()=>{const D=t.config.delete;return D&&typeof D=="function"?D(t.model,t.index,s==null?void 0:s.values):!0}),b=(D=0)=>r("swap-item",t.index,t.index+D),C=computed$1(()=>{const{movable:D}=t.config;return D===void 0?!0:typeof D=="function"?D(s,t.index||0,t.model,t.groupModel):D}),y=computed$1(()=>filterFunction(s,t.config.copyable,t)),S=()=>r("addDiffCount"),w=()=>{r("copy-item",t.index)},E=ref$1(!1),x=ref$1(1),L=()=>{E.value=!1,r("swap-item",t.index,x.value-1)};return(D,I)=>(openBlock(),createBlock(unref(_sfc_main$E$1),{class:"m-fields-group-list-item","body-style":{display:l.value?"block":"none"}},{header:withCtx(()=>[createBaseVNode("div",null,[createVNode(unref(_sfc_main$F$1),{link:"",disabled:o.disabled,onClick:_},{default:withCtx(()=>[createVNode(unref(_sfc_main$n$2),null,{default:withCtx(()=>[l.value?(openBlock(),createBlock(unref(caret_bottom_default),{key:0})):(openBlock(),createBlock(unref(caret_right_default),{key:1}))]),_:1}),createTextVNode(toDisplayString(d.value),1)]),_:1},8,["disabled"]),withDirectives(createVNode(unref(_sfc_main$F$1),{type:"danger",size:"small",link:"",icon:unref(delete_default),disabled:o.disabled,onClick:f},null,8,["icon","disabled"]),[[vShow,v.value]]),y.value?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,link:"",size:"small",type:"primary",icon:unref(document_copy_default),disabled:o.disabled,onClick:w},{default:withCtx(()=>[...I[6]||(I[6]=[createTextVNode("复制",-1)])]),_:1},8,["icon","disabled"])):createCommentVNode("v-if",!0),C.value?(openBlock(),createElementBlock(Fragment,{key:1},[withDirectives(createVNode(unref(_sfc_main$F$1),{link:"",size:"small",disabled:o.disabled,icon:unref(caret_top_default),onClick:I[0]||(I[0]=T=>b(-1))},{default:withCtx(()=>[...I[7]||(I[7]=[createTextVNode("上移",-1)])]),_:1},8,["disabled","icon"]),[[vShow,o.index!==0]]),withDirectives(createVNode(unref(_sfc_main$F$1),{link:"",size:"small",disabled:o.disabled,icon:unref(caret_bottom_default),onClick:I[1]||(I[1]=T=>b(1))},{default:withCtx(()=>[...I[8]||(I[8]=[createTextVNode("下移",-1)])]),_:1},8,["disabled","icon"]),[[vShow,o.index!==u.value-1]])],64)):createCommentVNode("v-if",!0),o.config.moveSpecifyLocation?(openBlock(),createBlock(unref(_sfc_main$h$2),{key:2,trigger:"click",placement:"top",width:"200",visible:E.value},{reference:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{link:"",size:"small",type:"primary",icon:unref(position_default),disabled:o.disabled,onClick:I[2]||(I[2]=T=>E.value=!0)},{default:withCtx(()=>[...I[9]||(I[9]=[createTextVNode("移动至",-1)])]),_:1},8,["icon","disabled"])]),default:withCtx(()=>[createBaseVNode("div",null,[createBaseVNode("div",null,[I[10]||(I[10]=createTextVNode(" 第",-1)),createVNode(unref(_sfc_main$l$2),{style:{margin:"0 5px"},modelValue:x.value,"onUpdate:modelValue":I[3]||(I[3]=T=>x.value=T),size:"small",min:1,disabled:o.disabled},null,8,["modelValue","disabled"]),I[11]||(I[11]=createTextVNode("行 ",-1))]),createBaseVNode("div",_hoisted_1$b$1,[createVNode(unref(_sfc_main$F$1),{size:"small",text:"",onClick:I[4]||(I[4]=T=>E.value=!1)},{default:withCtx(()=>[...I[12]||(I[12]=[createTextVNode("取消",-1)])]),_:1}),createVNode(unref(_sfc_main$F$1),{size:"small",type:"primary",onClick:L},{default:withCtx(()=>[...I[13]||(I[13]=[createTextVNode("确认",-1)])]),_:1})])])]),_:1},8,["visible"])):createCommentVNode("v-if",!0),g.value?(openBlock(),createElementBlock("span",{key:3,innerHTML:g.value,class:"m-form-tip"},null,8,_hoisted_2$5$1)):createCommentVNode("v-if",!0)])]),default:withCtx(()=>[l.value?(openBlock(),createBlock(_sfc_main$A$1,{key:0,config:c.value,model:o.model,lastValues:o.lastValues,"is-compare":o.isCompare,labelWidth:o.labelWidth,prop:"".concat(o.prop).concat(o.prop?".":"").concat(String(o.index)),size:o.size,disabled:o.disabled,onChange:m,onAddDiffCount:I[5]||(I[5]=T=>S())},null,8,["config","model","lastValues","is-compare","labelWidth","prop","size","disabled"])):createCommentVNode("v-if",!0)]),_:1},8,["body-style"]))}}),_hoisted_1$a$1={class:"m-fields-group-list"},_hoisted_2$4$1=["innerHTML"],_hoisted_3$3$1={key:1,class:"el-table__empty-block"},_hoisted_4$2$1={class:"m-fields-group-list-footer"},_hoisted_5$1$1={style:{display:"flex","justify-content":"flex-end",flex:"1"}},_sfc_main$w$1=defineComponent({name:"MFormGroupList",__name:"GroupList",props:{model:{},lastValues:{},isCompare:{type:Boolean},config:{},name:{},labelWidth:{},prop:{},size:{},disabled:{type:Boolean}},emits:["change","addDiffCount"],setup(o,{emit:e}){const t=o,r=e,s=inject("mForm"),a=computed$1(()=>t.name?typeof t.config.addable=="function"?t.config.addable(s,{model:t.model[t.name],formValue:s==null?void 0:s.values,prop:t.prop,config:t.config}):typeof t.config.addable>"u"?!0:t.config.addable:!1),l=(v,b)=>{r("change",t.model,b)},c=async()=>{if(!t.name)return!1;let v={};typeof t.config.defaultAdd=="function"?v=await t.config.defaultAdd(s,{model:t.model[t.name],formValue:s==null?void 0:s.values,prop:t.prop,config:t.config}):t.config.defaultAdd&&(v=t.config.defaultAdd);const b=await initValue(s,{config:t.config.items,initValues:v});t.model[t.name].push(b),r("change",t.model[t.name],{changeRecords:[{propPath:"".concat(t.prop,".").concat(t.model[t.name].length-1),value:b}]})},d=v=>{if(!t.name)return!1;t.model[t.name].splice(v,1),r("change",t.model[t.name])},u=v=>{t.model[t.name].push(cloneDeep(t.model[t.name][v]))},g=(v,b)=>{if(!t.name)return!1;const{length:C}=t.model[t.name],[y]=t.model[t.name].splice(v,1);t.model[t.name].splice(Math.min(Math.max(b,0),C-1),0,y),r("change",t.model[t.name])},f=()=>{t.config.type="table",t.config.groupItems=t.config.items,t.config.items=t.config.tableItems||t.config.items.map(v=>({...v,label:v.label||v.text,text:null}))},m=()=>r("addDiffCount"),_=(v,b)=>(v==null?void 0:v[b])||{};return(v,b)=>{var C;return openBlock(),createElementBlock("div",_hoisted_1$a$1,[o.config.extra?(openBlock(),createElementBlock("div",{key:0,innerHTML:o.config.extra,style:{color:"rgba(0, 0, 0, 0.45)"}},null,8,_hoisted_2$4$1)):createCommentVNode("v-if",!0),!o.model[o.name]||!o.model[o.name].length?(openBlock(),createElementBlock("div",_hoisted_3$3$1,[...b[1]||(b[1]=[createBaseVNode("span",{class:"el-table__empty-text t-table__empty"},"暂无数据",-1)])])):(openBlock(!0),createElementBlock(Fragment,{key:2},renderList(o.model[o.name],(y,S)=>(openBlock(),createBlock(_sfc_main$x$1,{key:S,model:y,lastValues:_(o.lastValues[o.name],S),"is-compare":o.isCompare,config:o.config,prop:o.prop,index:S,"label-width":o.labelWidth,size:o.size,disabled:o.disabled,"group-model":o.model[o.name],onRemoveItem:d,onCopyItem:u,onSwapItem:g,onChange:l,onAddDiffCount:b[0]||(b[0]=w=>m())},null,8,["model","lastValues","is-compare","config","prop","index","label-width","size","disabled","group-model"]))),128)),createBaseVNode("div",_hoisted_4$2$1,[o.config.enableToggleMode?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,icon:unref(grid_default),size:"small",onClick:f},{default:withCtx(()=>[...b[2]||(b[2]=[createTextVNode("切换为表格",-1)])]),_:1},8,["icon"])):createCommentVNode("v-if",!0),createBaseVNode("div",_hoisted_5$1$1,[a.value?(openBlock(),createBlock(unref(_sfc_main$F$1),mergeProps({key:0,size:o.config.enableToggleMode?"small":"default",icon:unref(plus_default)},((C=o.config.addButtonConfig)==null?void 0:C.props)||{type:"primary"},{disabled:o.disabled,onClick:c}),{default:withCtx(()=>{var y;return[createTextVNode(toDisplayString(((y=o.config.addButtonConfig)==null?void 0:y.text)||"新增"),1)]}),_:1},16,["size","icon","disabled"])):createCommentVNode("v-if",!0)])])])}}}),_hoisted_1$9$1={style:{width:"100%",display:"flex","align-items":"center"}},_hoisted_2$3$1=["innerHTML"],_hoisted_3$2$1={key:0,style:{display:"flex"}},_hoisted_4$1$1={style:{flex:"1"}},_hoisted_5$4=["src"],_sfc_main$v$1=defineComponent({name:"MFormPanel",__name:"Panel",props:{model:{},lastValues:{},isCompare:{type:Boolean},config:{},name:{},labelWidth:{},prop:{},size:{},disabled:{type:Boolean}},emits:["change","addDiffCount"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=inject("mForm"),l=ref$1(r.config.expand!==!1),c=computed$1(()=>r.config.items),d=f=>filterFunction(a,f,r),u=(f,m)=>{s("change",r.model,m)},g=()=>s("addDiffCount");return e({getExpand:()=>l.value,setExpand:f=>{l.value=f}}),(f,m)=>c.value&&c.value.length?(openBlock(),createBlock(unref(_sfc_main$E$1),{key:0,class:"box-card m-form-panel","body-style":{display:l.value?"block":"none"}},{header:withCtx(()=>[createBaseVNode("div",_hoisted_1$9$1,[createVNode(unref(_sfc_main$F$1),{style:{padding:"0"},link:"",icon:l.value?unref(caret_bottom_default):unref(caret_right_default),onClick:m[0]||(m[0]=_=>l.value=!l.value)},null,8,["icon"]),renderSlot(f.$slots,"header",{},()=>[createBaseVNode("span",{style:{cursor:"pointer"},onClick:m[1]||(m[1]=_=>l.value=!l.value)},toDisplayString(d(o.config.title)),1)]),o.config&&o.config.extra?(openBlock(),createElementBlock("span",{key:0,innerHTML:o.config.extra,class:"m-form-tip"},null,8,_hoisted_2$3$1)):createCommentVNode("v-if",!0)])]),default:withCtx(()=>[createBaseVNode("div",null,[renderSlot(f.$slots,"default"),o.config.schematic?(openBlock(),createElementBlock("div",_hoisted_3$2$1,[createBaseVNode("div",_hoisted_4$1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(c.value,(_,v)=>{var b,C;return openBlock(),createBlock(_sfc_main$A$1,{key:(C=_[((b=unref(a))==null?void 0:b.keyProp)||"__key"])!=null?C:v,config:_,model:o.name?o.model[o.name]:o.model,lastValues:o.name?o.lastValues[o.name]:o.lastValues,"is-compare":o.isCompare,prop:o.prop,size:o.size,disabled:o.disabled,"label-width":o.config.labelWidth||o.labelWidth,onChange:u,onAddDiffCount:m[2]||(m[2]=y=>g())},null,8,["config","model","lastValues","is-compare","prop","size","disabled","label-width"])}),128))]),createBaseVNode("img",{class:"m-form-schematic",src:o.config.schematic},null,8,_hoisted_5$4)])):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(c.value,(_,v)=>{var b,C;return openBlock(),createBlock(_sfc_main$A$1,{key:(C=_[((b=unref(a))==null?void 0:b.keyProp)||"__key"])!=null?C:v,config:_,model:o.name?o.model[o.name]:o.model,lastValues:o.name?o.lastValues[o.name]:o.lastValues,"is-compare":o.isCompare,prop:o.prop,size:o.size,disabled:o.disabled,"label-width":o.config.labelWidth||o.labelWidth,onChange:u,onAddDiffCount:m[3]||(m[3]=y=>g())},null,8,["config","model","lastValues","is-compare","prop","size","disabled","label-width"])}),128))])]),_:3},8,["body-style"])):createCommentVNode("v-if",!0)}}),_sfc_main$u$1=defineComponent({name:"MFormCol",__name:"Col",props:{model:{},lastValues:{},isCompare:{type:Boolean},config:{},labelWidth:{},expandMore:{type:Boolean},span:{},size:{},prop:{},disabled:{type:Boolean}},emits:["change","addDiffCount"],setup(o,{emit:e}){const t=o,r=e,s=inject("mForm"),a=computed$1(()=>display$1(s,t.config.display,t)),l=(d,u)=>r("change",d,u),c=()=>r("addDiffCount");return(d,u)=>withDirectives((openBlock(),createBlock(unref(_sfc_main$A$2),{span:o.span},{default:withCtx(()=>[createVNode(_sfc_main$A$1,{model:o.model,lastValues:o.lastValues,"is-compare":o.isCompare,config:o.config,prop:o.prop,"label-width":o.config.labelWidth||o.labelWidth,"expand-more":o.expandMore,size:o.size,disabled:o.disabled,onChange:l,onAddDiffCount:c},null,8,["model","lastValues","is-compare","config","prop","label-width","expand-more","size","disabled"])]),_:1},8,["span"])),[[vShow,a.value&&o.config.type!=="hidden"]])}}),_sfc_main$t$1=defineComponent({name:"MFormRow",__name:"Row",props:{model:{},lastValues:{},isCompare:{type:Boolean},config:{},name:{},labelWidth:{},prop:{},size:{},expandMore:{type:Boolean},disabled:{type:Boolean}},emits:["change","addDiffCount"],setup(o,{emit:e}){const t=o,r=e,s=inject("mForm"),a=(c,d)=>{r("change",t.name?t.model[t.name]:t.model,d)},l=()=>r("addDiffCount");return(c,d)=>(openBlock(),createBlock(unref(_sfc_main$d$2),{gutter:10},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.config.items,(u,g)=>{var f,m;return openBlock(),createBlock(_sfc_main$u$1,{key:(m=u[((f=unref(s))==null?void 0:f.keyProp)||"__key"])!=null?m:g,span:u.span||o.config.span||24/o.config.items.length,config:u,labelWidth:o.config.labelWidth||o.labelWidth,expandMore:o.expandMore,model:o.name?o.model[o.name]:o.model,lastValues:o.name?o.lastValues[o.name]:o.lastValues,"is-compare":o.isCompare,prop:o.prop,size:o.size,disabled:o.disabled,onChange:a,onAddDiffCount:l},null,8,["span","config","labelWidth","expandMore","model","lastValues","is-compare","prop","size","disabled"])}),128))]),_:1}))}}),_sfc_main$s$1=defineComponent({name:"MFormStep",__name:"Step",props:{model:{},name:{},lastValues:{},isCompare:{type:Boolean},config:{},stepActive:{default:1},labelWidth:{},size:{},disabled:{type:Boolean}},emits:["change","addDiffCount"],setup(o,{emit:e}){const t=o,r=e,s=inject("mForm"),a=ref$1(1);watchEffect(()=>{a.value=t.stepActive});const l=u=>{a.value=u+1,s==null||s.$emit("update:stepActive",a.value)},c=(u,g)=>{r("change",t.model,g)},d=()=>r("addDiffCount");return(u,g)=>(openBlock(),createElementBlock("div",null,[createVNode(unref(_sfc_main$9$2),{active:a.value,"align-center":"",space:o.config.space},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.config.items,(f,m)=>(openBlock(),createBlock(unref(_sfc_main$a$2),{key:f.__key,title:f.title,active:a.value,onClick:_=>l(m)},null,8,["title","active","onClick"]))),128))]),_:1},8,["active","space"]),(openBlock(!0),createElementBlock(Fragment,null,renderList(o.config.items,(f,m)=>(openBlock(),createElementBlock(Fragment,null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(f.items,_=>{var v;return openBlock(),createElementBlock(Fragment,null,[_?withDirectives((openBlock(),createBlock(_sfc_main$A$1,{key:_[((v=unref(s))==null?void 0:v.keyProp)||"__key"],config:_,model:f.name?o.model[f.name]:o.model,lastValues:f.name?o.lastValues[f.name]:o.lastValues,"is-compare":o.isCompare,prop:"".concat(f.name),size:o.size,disabled:o.disabled,"label-width":o.config.labelWidth||o.labelWidth,onChange:c,onAddDiffCount:g[0]||(g[0]=b=>d())},null,8,["config","model","lastValues","is-compare","prop","size","disabled","label-width"])),[[vShow,a.value-1===m]]):createCommentVNode("v-if",!0)],64)}),256))],64))),256))]))}}),_sfc_main$r$1=defineComponent({name:"MFormTabs",__name:"Tabs",props:{model:{},lastValues:{default:()=>({})},isCompare:{type:Boolean,default:!1},config:{},name:{},size:{},labelWidth:{},prop:{},expandMore:{type:Boolean},disabled:{type:Boolean}},emits:["change","addDiffCount"],setup(o,{emit:e}){var w,E;const t=(w=getDesignConfig("components"))==null?void 0:w.tabPane,r=(E=getDesignConfig("components"))==null?void 0:E.tabs,s=(x,L,k)=>{const{config:D,model:I,prop:T}=L,{active:M}=D;return typeof M=="function"?M(x,{model:I,formValue:x==null?void 0:x.values,prop:T}):0>=L.config.items.length?"0":typeof M<"u"?M:"0"},a=(x,L,k)=>{const{config:D,model:I,prop:T}=k;L.name=L.paneName,typeof D.onTabClick=="function"&&D.onTabClick(x,L,{model:I,formValue:x==null?void 0:x.values,prop:T,config:D});const M=D.items.find(R=>L.name===R.status);M&&typeof M.onTabClick=="function"&&M.onTabClick(x,L,{model:I,formValue:x==null?void 0:x.values,prop:T,config:D})},l=o,c=e,d=inject("mForm"),u=ref$1(s(d,l)),g=ref$1({}),f=computed$1(()=>{if(l.config.dynamic){if(!l.config.name)throw new Error("dynamic tab 必须配置name");return l.model[l.config.name]||[]}return l.config.items.filter(x=>display$1(d,x.display,l))}),m=x=>filterFunction(d,x,l);watchEffect(()=>{typeof l.config.activeChange=="function"&&l.config.activeChange(d,u.value,{model:l.model,prop:l.prop})});const _=x=>l.config.dynamic?l.config.items:x.items,v=x=>{if(typeof x=="object")a(d,x,l);else{let L=f.value.find(k=>k.status===k);L||(L=f.value[x]),a(d,L,l)}},b=async()=>{if(!l.name)throw new Error("dynamic tab 必须配置name");if(typeof l.config.onTabAdd=="function")l.config.onTabAdd(d,{model:l.model,prop:l.prop,config:l.config}),c("change",l.model);else{const x=await initValue(d,{config:l.config.items,initValues:{}});x.title="标签".concat(f.value.length+1),l.model[l.name].push(x),c("change",l.model[l.name],{changeRecords:[{propPath:"".concat(l.prop,".").concat(l.model[l.name].length-1),value:x}]})}d==null||d.$emit("field-change",l.prop,l.model[l.name])},C=x=>{if(!l.name)throw new Error("dynamic tab 必须配置name");typeof l.config.onTabRemove=="function"?l.config.onTabRemove(d,x,{model:l.model,prop:l.prop,config:l.config}):(l.model[l.name].splice(+x,1),(x<u.value||u.value>=l.model[l.name].length)&&(u.value=(+u.value-1).toString(),a(d,{name:u.value},l))),c("change",l.model),d==null||d.$emit("field-change",l.prop,l.model[l.name])},y=(x,L)=>{c("change",l.model,L)},S=x=>{g.value[x]?g.value[x]+=1:g.value[x]=1,c("addDiffCount")};return(x,L)=>{var k,D;return openBlock(),createBlock(resolveDynamicComponent(((k=unref(r))==null?void 0:k.component)||"el-tabs"),mergeProps({modelValue:u.value,"onUpdate:modelValue":L[0]||(L[0]=I=>u.value=I)},((D=unref(r))==null?void 0:D.props({type:o.config.tabType,editable:o.config.editable||!1,tabPosition:o.config.tabPosition||"top"}))||{},{class:"tmagic-design-tabs ".concat(o.config.dynamic?"magic-form-dynamic-tab":"magic-form-tab"),onTabClick:v,onTabAdd:b,onTabRemove:C}),{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(f.value,(I,T)=>{var M,R,N,A;return openBlock(),createBlock(resolveDynamicComponent(((M=unref(t))==null?void 0:M.component)||"el-tab-pane"),mergeProps({key:(N=I[((R=unref(d))==null?void 0:R.keyProp)||"__key"])!=null?N:T},{ref_for:!0},((A=unref(t))==null?void 0:A.props({name:m(I.status)||T.toString(),lazy:I.lazy||!1}))||{}),{label:withCtx(()=>[createBaseVNode("span",null,[createTextVNode(toDisplayString(m(I.title)),1),createVNode(unref(_sfc_main$G$1),{hidden:!g.value[T],value:g.value[T],class:"diff-count-badge"},null,8,["hidden","value"])])]),default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(_(I),O=>{var P;return openBlock(),createBlock(_sfc_main$A$1,{key:O[((P=unref(d))==null?void 0:P.keyProp)||"__key"],config:O,disabled:o.disabled,model:o.config.dynamic?(o.name?o.model[o.name]:o.model)[T]:I.name?(o.name?o.model[o.name]:o.model)[I.name]:o.name?o.model[o.name]:o.model,"last-values":unref(isEmpty$2)(o.lastValues)?{}:o.config.dynamic?(o.name?o.lastValues[o.name]:o.lastValues)[T]:I.name?(o.name?o.lastValues[o.name]:o.lastValues)[I.name]:o.name?o.lastValues[o.name]:o.lastValues,"is-compare":o.isCompare,prop:o.config.dynamic?"".concat(o.prop).concat(o.prop?".":"").concat(String(T)):o.prop,size:o.size,"label-width":I.labelWidth||o.labelWidth,"expand-more":o.expandMore,onChange:y,onAddDiffCount:F=>S(T)},null,8,["config","disabled","model","last-values","is-compare","prop","size","label-width","expand-more","onAddDiffCount"])}),128))]),_:2},1040)}),128))]),_:1},16,["modelValue","class"])}}});let $MAGIC_FORM={};const setConfig=o=>{$MAGIC_FORM=o},getConfig=o=>$MAGIC_FORM[o],useAddField=o=>{if(!o)return;const e=inject("mForm"),t=getCurrentInstance$1();watch(()=>t==null?void 0:t.proxy,r=>{r?e==null||e.setField(o,r):e==null||e.deleteField(o)},{immediate:!0})},_sfc_main$q$1=defineComponent({name:"MFormCascader",__name:"Cascader",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){var b;const t=o,r=e,s=inject("mForm");useAddField(t.prop);const a=getConfig("request"),l=ref$1(),c=ref$1([]),d=ref$1(null),u=computed$1(()=>filterFunction(s,t.config.checkStrictly,t)),g=computed$1(()=>filterFunction(s,t.config.valueSeparator,t)),f=computed$1(()=>typeof t.model[t.name]=="string"&&g.value?t.model[t.name].split(g.value):t.model[t.name]),m=C=>{let y=C;g.value&&(y=C.join(g.value)),typeof y>"u"&&(Array.isArray(t.model[t.name])?r("change",[]):typeof t.model[t.name]=="string"?r("change",""):typeof t.model[t.name]=="object"&&r("change",null)),r("change",y)},_=async function(){const{config:C}=t,{option:y}=C;if(!y)return;let{body:S}=y;const w={url:y.url,cache:y.cache,timeout:y.timeout,data:{}};S&&s&&(typeof S=="function"&&t.model&&s&&(S=S(s,{model:t.model,formValue:s.values,formValues:s.values,config:t.config})),w.data=S);const E=await a(w);d.value=E[y.root],d.value&&typeof(y==null?void 0:y.item)=="function"&&(c.value=y.item(E[y.root]))};typeof t.config.options=="function"&&t.model&&s?watchEffect(()=>{typeof t.config.options=="function"&&Promise.resolve(t.config.options(s,{model:t.model,prop:t.prop,formValue:s==null?void 0:s.values})).then(C=>{c.value=C})}):!((b=t.config.options)!=null&&b.length)||t.config.remote?Promise.resolve(_()):Array.isArray(t.config.options)&&watchEffect(()=>{c.value=t.config.options});const v=()=>{l.value&&(l.value.setQuery(""),l.value.setPreviousQuery(null))};return(C,y)=>{var S,w,E;return openBlock(),createBlock(unref(_sfc_main$D$1),{"model-value":f.value,ref_key:"tMagicCascader",ref:l,style:{width:"100%"},clearable:"",filterable:"",size:o.size,placeholder:o.config.placeholder,disabled:o.disabled,options:c.value,"popper-class":o.config.popperClass,props:{multiple:(S=o.config.multiple)!=null?S:!1,emitPath:(w=o.config.emitPath)!=null?w:!0,checkStrictly:(E=u.value)!=null?E:!1},"onUpdate:modelValue":m,onChange:v},null,8,["model-value","size","placeholder","disabled","options","popper-class","props"])}}}),_sfc_main$p$1=defineComponent({name:"MFormCheckbox",__name:"Checkbox",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const s=computed$1(()=>{if(typeof t.config.activeValue>"u"){if(t.config.filter==="number")return 1}else return t.config.activeValue}),a=computed$1(()=>{if(typeof t.config.inactiveValue>"u"){if(t.config.filter==="number")return 0}else return t.config.inactiveValue}),l=c=>{r("change",c)};return(c,d)=>(openBlock(),createBlock(unref(_sfc_main$C$1),{"model-value":o.model[o.name],size:o.size,trueValue:s.value,falseValue:a.value,disabled:o.disabled,"onUpdate:modelValue":l},createSlots({_:2},[o.config.useLabel?void 0:{name:"default",fn:withCtx(()=>[createTextVNode(toDisplayString(o.config.text),1)]),key:"0"}]),1032,["model-value","size","trueValue","falseValue","disabled"]))}}),_sfc_main$o$1=defineComponent({name:"MFormCheckGroup",__name:"CheckboxGroup",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop),t.model&&!t.model[t.name]&&(t.model[t.name]=[]);const s=c=>{r("change",c)},a=inject("mForm"),l=computed$1(()=>Array.isArray(t.config.options)?t.config.options:typeof t.config.options=="function"?filterFunction(a,t.config.options,t)||[]:[]);return(c,d)=>(openBlock(),createBlock(unref(_sfc_main$B$2),{"model-value":o.model[o.name],size:o.size,disabled:o.disabled,"onUpdate:modelValue":s},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(l.value,u=>(openBlock(),createBlock(unref(_sfc_main$C$1),{value:u.value,key:u.value,disabled:u.disabled},{default:withCtx(()=>[createTextVNode(toDisplayString(u.text),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["model-value","size","disabled"]))}}),_sfc_main$n$1=defineComponent({name:"MFormColorPicker",__name:"ColorPicker",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const s=a=>r("change",a);return(a,l)=>(openBlock(),createBlock(unref(_sfc_main$x$2),{"model-value":o.model[o.name],size:o.size,disabled:o.disabled,showAlpha:!0,"onUpdate:modelValue":s},null,8,["model-value","size","disabled"]))}}),_sfc_main$m$1=defineComponent({name:"MFormDate",__name:"Date",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop),t.model[t.name]=datetimeFormatter(t.model[t.name],"",t.config.valueFormat||"YYYY/MM/DD");const s=a=>{r("change",a)};return(a,l)=>(openBlock(),createBlock(unref(_sfc_main$w$2),{"model-value":o.model[o.name],type:"date",size:o.size,placeholder:o.config.placeholder,disabled:o.disabled,format:o.config.format||"YYYY/MM/DD","value-format":o.config.valueFormat||"YYYY/MM/DD","onUpdate:modelValue":s},null,8,["model-value","size","placeholder","disabled","format","value-format"]))}}),_sfc_main$l$1=defineComponent({name:"MFormDateRange",__name:"Daterange",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const{names:s}=t.config,a=ref$1([]);if(t.model!==void 0){if(s!=null&&s.length){const c=watch([()=>t.model[s[0]],()=>t.model[s[1]]],([d,u],[g,f])=>{a.value||(a.value=[]);const m="".concat(t.config.dateFormat||"YYYY/MM/DD"," ").concat(t.config.timeFormat||"HH:mm:ss");(!d||!u)&&(a.value=[]),d!==g&&(a.value[0]=datetimeFormatter(d,"",m)),u!==f&&(a.value[1]=datetimeFormatter(u,"",m))},{immediate:!0});onUnmounted(()=>{c()})}else if(t.name&&t.model[t.name]){const c=watch(()=>t.model[t.name],(d,u)=>{const g="".concat(t.config.dateFormat||"YYYY/MM/DD"," ").concat(t.config.timeFormat||"HH:mm:ss");d!==u&&(a.value=d.map(f=>f?datetimeFormatter(f,"",g):void 0))},{immediate:!0});onUnmounted(()=>{c()})}}const l=c=>{var u;const d=c||[];if(t.name)r("change",d);else if((u=t.config.names)!=null&&u.length){const g=[];t.config.names.forEach((f,m)=>{t.model&&(Array.isArray(c)?g.push({propPath:t.prop?"".concat(t.prop,".").concat(f):f,value:c[m]}):g.push({propPath:t.prop?"".concat(t.prop,".").concat(f):f,value:void 0}))}),r("change",t.model,{changeRecords:g})}};return(c,d)=>(openBlock(),createBlock(unref(_sfc_main$w$2),{"model-value":a.value,type:"datetimerange","range-separator":"-","start-placeholder":"开始日期","end-placeholder":"结束日期",size:o.size,"unlink-panels":!0,disabled:o.disabled,"default-time":o.config.defaultTime,format:"".concat(o.config.dateFormat||"YYYY/MM/DD"," ").concat(o.config.timeFormat||"HH:mm:ss"),"value-format":o.config.valueFormat||"YYYY/MM/DD HH:mm:ss","date-format":o.config.dateFormat||"YYYY/MM/DD","time-format":o.config.timeFormat||"HH:mm:ss","onUpdate:modelValue":l},null,8,["model-value","size","disabled","default-time","format","value-format","date-format","time-format"]))}}),_sfc_main$k$1=defineComponent({name:"MFormDateTime",__name:"DateTime",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){var l,c;const t=o,r=e;useAddField(t.prop);const s=(c=(l=t.model)==null?void 0:l[t.name])==null?void 0:c.toString();t.model&&(!s||s==="Invalid Date"?t.model[t.name]="":t.model[t.name]=datetimeFormatter(t.model[t.name],"",t.config.valueFormat||"YYYY/MM/DD HH:mm:ss"));const a=d=>{r("change",d)};return(d,u)=>(openBlock(),createBlock(unref(_sfc_main$w$2),{"model-value":o.model[o.name],"popper-class":"magic-datetime-picker-popper",type:"datetime",size:o.size,placeholder:o.config.placeholder,disabled:o.disabled,format:o.config.format||"YYYY/MM/DD HH:mm:ss","value-format":o.config.valueFormat||"YYYY/MM/DD HH:mm:ss","default-time":o.config.defaultTime,"onUpdate:modelValue":a},null,8,["model-value","size","placeholder","disabled","format","value-format","default-time"]))}}),_hoisted_1$8$1={key:0},_sfc_main$j$1=defineComponent({name:"MFormDisplay",__name:"Display",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},setup(o){const e=o;return e.config.initValue&&e.model&&(e.model[e.name]=e.config.initValue),useAddField(e.prop),(t,r)=>o.model?(openBlock(),createElementBlock("span",_hoisted_1$8$1,toDisplayString(o.model[o.name]),1)):createCommentVNode("v-if",!0)}}),_hoisted_1$7$1={class:"m-fields-dynamic-field"},_sfc_main$i$1=defineComponent({name:"MFormDynamicField",__name:"DynamicField",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const s=getConfig("request"),a=reactive$1({value:{}}),l=reactive$1({value:{}}),c=async()=>{if(typeof t.config.returnFields!="function"||!t.model)return;const g=await t.config.returnFields(t.config,t.model,s);a.value={},l.value={},g.forEach(f=>{var _;if(typeof f!="object"||f.name===void 0)return;let m=((_=t.model)==null?void 0:_[f.name])||"";!m&&f.defaultValue!==void 0&&(m=f.defaultValue,r("change",m,{modifyKey:f.name})),a.value[f.name]=m,l.value[f.name]=f.label||""})},d=watch(()=>{var g;return(g=t.model)==null?void 0:g[t.config.dynamicKey]},g=>{g!==""&&c()},{immediate:!0});onBeforeUnmount(()=>{typeof d=="function"&&d()});const u=g=>{r("change",a.value[g],{modifyKey:g})};return(g,f)=>(openBlock(),createElementBlock("div",_hoisted_1$7$1,[createVNode(unref(_sfc_main$p$2),{size:"small"},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(Object.keys(a.value),m=>(openBlock(),createBlock(unref(_sfc_main$o$2),{key:m,label:l.value[m]},{default:withCtx(()=>[createVNode(unref(_sfc_main$m$2),{modelValue:a.value[m],"onUpdate:modelValue":_=>a.value[m]=_,placeholder:l.value[m],onChange:_=>u(m)},null,8,["modelValue","onUpdate:modelValue","placeholder","onChange"])]),_:2},1032,["label"]))),128))]),_:1})]))}}),_sfc_main$h$1=defineComponent({name:"MFormHidden",__name:"Hidden",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},setup(o){return useAddField(o.prop),(t,r)=>o.model?withDirectives((openBlock(),createElementBlock("input",{key:0,"onUpdate:modelValue":r[0]||(r[0]=s=>o.model[o.name]=s),type:"hidden"},null,512)),[[vModelText,o.model[o.name]]]):createCommentVNode("v-if",!0)}}),_sfc_main$g$1=defineComponent({name:"MForm",__name:"Form",props:{config:{default:()=>[]},initValues:{default:()=>({})},lastValues:{default:()=>({})},isCompare:{type:Boolean,default:!1},parentValues:{default:()=>({})},labelWidth:{default:"200px"},disabled:{type:Boolean,default:!1},height:{default:"auto"},stepActive:{default:1},size:{},inline:{type:Boolean,default:!1},labelPosition:{default:"right"},keyProp:{default:"__key"},popperClass:{},preventSubmitDefault:{type:Boolean},extendState:{}},emits:["change","error","field-input","field-change","update:stepActive"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=useTemplateRef("tMagicForm"),l=ref$1(!1),c=ref$1({}),d=ref$1({}),u=new Map,g=getConfig("request"),f=reactive$1({keyProp:r.keyProp,popperClass:r.popperClass,config:r.config,initValues:r.initValues,isCompare:r.isCompare,lastValues:r.lastValues,parentValues:r.parentValues,values:c,lastValuesProcessed:d,$emit:s,fields:u,setField:(C,y)=>u.set(C,y),getField:C=>u.get(C),deleteField:C=>u.delete(C),$messageBox:tMagicMessageBox,$message:tMagicMessage,post:C=>{if(g)return g({method:"POST",...C})}});watchEffect(async()=>{if(f.initValues=r.initValues,f.lastValues=r.lastValues,f.isCompare=r.isCompare,f.config=r.config,f.keyProp=r.keyProp,f.popperClass=r.popperClass,f.parentValues=r.parentValues,typeof r.extendState=="function"){const C=await r.extendState(f)||{};Object.entries(C).forEach(([y,S])=>{f[y]=S})}}),provide("mForm",f);const m=shallowRef([]);watch([()=>r.config,()=>r.initValues],([C],[y])=>{m.value=[],isEqual$1(toRaw(C),toRaw(y))||(l.value=!1),initValue(f,{initValues:r.initValues,config:r.config}).then(S=>{c.value=S,l.value=!r.isCompare}),r.isCompare&&initValue(f,{initValues:r.lastValues,config:r.config}).then(S=>{d.value=S,l.value=!0})},{immediate:!0});const _=(C,y)=>{var S;if((S=y.changeRecords)!=null&&S.length){for(const w of y.changeRecords)if(w.propPath){const E=m.value.findIndex(x=>x.propPath===w.propPath);E>-1?m.value[E]=w:m.value.push(w),setValueByKeyPath(w.propPath,w.value,c.value)}}s("change",c.value,y)},v=C=>{r.preventSubmitDefault&&C.preventDefault()},b=(C,y=r.config)=>{if(!C||!Array.isArray(y))return;const S=C.split("."),w=(E,x)=>{if(x.length===0)return;const[L,...k]=x;for(const D of E){if(D.name===L){if(k.length===0)return typeof D.text=="string"?D.text:void 0;if(D.items&&Array.isArray(D.items)){const I=w(D.items,k);if(I!==void 0)return I}}if(D.items&&Array.isArray(D.items)){const I=w(D.items,x);if(I!==void 0)return I}}};return w(y,S)};return e({values:c,lastValuesProcessed:d,formState:f,initialized:l,changeRecords:m,changeHandler:_,resetForm:()=>{var C;(C=a.value)==null||C.resetFields(),m.value=[]},submitForm:async C=>{var y;try{const S=await((y=a.value)==null?void 0:y.validate());if(S!==!0)throw S;return m.value=[],C?c.value:cloneDeep(toRaw(c.value))}catch(S){s("error",S);const w=[];throw Object.entries(S).forEach(([E,x])=>{x.forEach(({field:L,message:k})=>{const D=L||E,I=b(D,r.config)||D;w.push("".concat(I," -> ").concat(k))})}),new Error(w.join("<br>"))}},getTextByName:b}),(C,y)=>(openBlock(),createBlock(unref(_sfc_main$p$2),{class:"m-form",ref:"tMagicForm",model:c.value,"label-width":o.labelWidth,style:normalizeStyle("height: ".concat(o.height)),inline:o.inline,"label-position":o.labelPosition,onSubmit:v},{default:withCtx(()=>[l.value&&Array.isArray(o.config)?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(o.config,(S,w)=>{var E;return openBlock(),createBlock(_sfc_main$A$1,{disabled:o.disabled,key:(E=S[o.keyProp])!=null?E:w,config:S,model:c.value,"last-values":d.value,"is-compare":o.isCompare,"label-width":S.labelWidth||o.labelWidth,"step-active":o.stepActive,size:o.size,onChange:_},null,8,["disabled","config","model","last-values","is-compare","label-width","step-active","size"])}),128)):createCommentVNode("v-if",!0)]),_:1},8,["model","label-width","style","inline","label-position"]))}}),_hoisted_1$6$1={style:{"min-height":"1px"}},_sfc_main$f$1=defineComponent({name:"MFormDialog",__name:"FormDialog",props:{config:{default:()=>[]},values:{default:()=>({})},parentValues:{},width:{},labelWidth:{},fullscreen:{type:Boolean},disabled:{type:Boolean},title:{},inline:{type:Boolean},labelPosition:{},zIndex:{},size:{},confirmText:{default:"确定"},preventSubmitDefault:{type:Boolean},closeOnClickModal:{type:Boolean,default:!1},closeOnPressEscape:{type:Boolean,default:!1},destroyOnClose:{type:Boolean,default:!1},showClose:{type:Boolean,default:!0},showCancel:{type:Boolean,default:!0}},emits:["close","submit","error","change"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=ref$1(),l=ref$1(!1),c=ref$1(!1),d=ref$1(1),u=ref$1("".concat(document.body.clientHeight-194,"px")),g=computed$1(()=>{const{length:E}=r.config;for(let x=0;x<E;x++)if(r.config[x].type==="step")return r.config[x].items.length;return 0}),f=computed$1(()=>{const{length:E}=r.config;for(let x=0;x<E;x++)if(r.config[x].type==="step")return!0;return!1}),m=()=>{d.value=1,s("close")},_=async()=>{var E,x;try{const L=(E=a.value)==null?void 0:E.changeRecords,k=await((x=a.value)==null?void 0:x.submitForm());s("submit",k,{changeRecords:L})}catch(L){s("error",L)}},v=()=>{d.value-=1},b=()=>{d.value+=1},C=(E,x)=>{s("change",E,x)},y=()=>{l.value=!0},S=()=>{l.value=!1},w=()=>{S()};return e({form:a,saveFetch:c,dialogVisible:l,cancel:w,save:_,show:y,hide:S}),(E,x)=>(openBlock(),createBlock(unref(_sfc_main$v$2),{modelValue:l.value,"onUpdate:modelValue":x[1]||(x[1]=L=>l.value=L),class:"m-form-dialog",top:"20px","append-to-body":"",title:o.title,width:o.width,zIndex:o.zIndex,fullscreen:o.fullscreen,"close-on-click-modal":o.closeOnClickModal,"close-on-press-escape":o.closeOnPressEscape,"destroy-on-close":o.destroyOnClose,"show-close":o.showClose,onClose:m},{footer:withCtx(()=>[createVNode(unref(_sfc_main$d$2),{class:"dialog-footer"},{default:withCtx(()=>[createVNode(unref(_sfc_main$A$2),{span:12,style:{"text-align":"left"}},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1$6$1,[renderSlot(E.$slots,"left")])]),_:3}),createVNode(unref(_sfc_main$A$2),{span:12},{default:withCtx(()=>[renderSlot(E.$slots,"footer",{},()=>[o.showCancel?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,onClick:w,size:"small"},{default:withCtx(()=>[...x[2]||(x[2]=[createTextVNode("取 消",-1)])]),_:1})):createCommentVNode("v-if",!0),f.value&&d.value>1?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:1,type:"info",size:"small",onClick:v},{default:withCtx(()=>[...x[3]||(x[3]=[createTextVNode("上一步",-1)])]),_:1})):createCommentVNode("v-if",!0),f.value&&g.value>d.value?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:2,type:"info",size:"small",onClick:b},{default:withCtx(()=>[...x[4]||(x[4]=[createTextVNode("下一步",-1)])]),_:1})):(openBlock(),createBlock(unref(_sfc_main$F$1),{key:3,type:"primary",size:"small",disabled:o.disabled,loading:c.value,onClick:_},{default:withCtx(()=>[createTextVNode(toDisplayString(o.confirmText),1)]),_:1},8,["disabled","loading"]))])]),_:3})]),_:3})]),default:withCtx(()=>[l.value?(openBlock(),createElementBlock("div",{key:0,class:"m-dialog-body",style:normalizeStyle("max-height: ".concat(u.value,"; overflow-y: auto; overflow-x: hidden;"))},[createVNode(_sfc_main$g$1,{modelValue:d.value,"onUpdate:modelValue":x[0]||(x[0]=L=>d.value=L),ref_key:"form",ref:a,size:o.size,disabled:o.disabled,config:o.config,"init-values":o.values,"parent-values":o.parentValues,"label-width":o.labelWidth,"label-position":o.labelPosition,inline:o.inline,"prevent-submit-default":o.preventSubmitDefault,onChange:C},null,8,["modelValue","size","disabled","config","init-values","parent-values","label-width","label-position","inline","prevent-submit-default"]),renderSlot(E.$slots,"default")],4)):createCommentVNode("v-if",!0)]),_:3},8,["modelValue","title","width","zIndex","fullscreen","close-on-click-modal","close-on-press-escape","destroy-on-close","show-close"]))}}),_hoisted_1$5$1=["href"],_hoisted_2$2$2={key:2,class:"m-fields-link"},_sfc_main$e$1=defineComponent({name:"MFormLink",__name:"Link",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const s=ref$1({}),a=ref$1(),l=inject("mForm"),c=computed$1(()=>{var _;return typeof t.config.href=="function"&&t.model?t.config.href(t.model):t.config.href||((_=t.model)==null?void 0:_[t.name])}),d=()=>{var _;s.value=((_=t.model)==null?void 0:_[t.name])||{}},u=computed$1(()=>typeof t.config.form=="function"?t.config.form(l,{model:t.model||{},values:l?readonly(l.initValues):null,formValue:t.values||{}}):t.config.form),g=computed$1(()=>typeof t.config.displayText=="function"?t.config.displayText(l,{model:t.model||{}}):t.config.displayText?t.config.displayText:"跳转"),f=()=>{d(),a.value&&(a.value.dialogVisible=!0)},m=_=>{t.model&&(t.model[t.name]=_,s.value=_,r("change",t.model[t.name])),a.value&&(a.value.dialogVisible=!1)};return(_,v)=>o.config.href&&!o.disabled?(openBlock(),createElementBlock("a",{key:0,target:"_blank",href:c.value,style:normalizeStyle(o.config.css||{})},toDisplayString(g.value),13,_hoisted_1$5$1)):o.config.href&&o.disabled?(openBlock(),createElementBlock("span",{key:1,style:normalizeStyle(o.config.disabledCss||{})},toDisplayString(g.value),5)):(openBlock(),createElementBlock("div",_hoisted_2$2$2,[createVNode(unref(_sfc_main$F$1),{link:"",type:"primary",onClick:f},{default:withCtx(()=>[...v[0]||(v[0]=[createTextVNode("点击编辑",-1)])]),_:1}),createVNode(_sfc_main$f$1,{ref_key:"editor",ref:a,title:o.config.formTitle||"编辑扩展配置",width:o.config.formWidth,values:s.value,config:u.value,parentValues:o.values,fullscreen:o.config.fullscreen,onSubmit:m},null,8,["title","width","values","config","parentValues","fullscreen"])]))}}),_sfc_main$d$1=defineComponent({name:"MFormNumber",__name:"Number",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change","input"],setup(o,{emit:e}){const t=o,r=e,s=ref$1();watch(()=>t.model[t.name],d=>{s.value=d},{immediate:!0}),useAddField(t.prop);const a=inject("mForm"),l=d=>{r("change",d)},c=d=>{r("input",d),a==null||a.$emit("field-input",t.prop,d)};return(d,u)=>o.model?(openBlock(),createBlock(unref(_sfc_main$l$2),{key:0,modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=g=>s.value=g),clearable:"","controls-position":"right",size:o.size,max:o.config.max,min:o.config.min,step:o.config.step,placeholder:o.config.placeholder,disabled:o.disabled,onChange:l,onInput:c},null,8,["modelValue","size","max","min","step","placeholder","disabled"])):createCommentVNode("v-if",!0)}}),_hoisted_1$4$1={class:"m-fields-number-range"},_sfc_main$c$1=defineComponent({name:"MFormNumberRange",__name:"NumberRange",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,s=ref$1(),a=ref$1();watch(()=>t.model[t.name],([d,u])=>{s.value=d,a.value=u},{immediate:!0,deep:!0}),useAddField(t.prop),Array.isArray(t.model[t.name])||(t.model[t.name]=[]);const l=d=>{r("change",[Number(d),t.model[t.name][1]])},c=d=>{r("change",[t.model[t.name][0],Number(d)])};return(d,u)=>{var g,f;return openBlock(),createElementBlock("div",_hoisted_1$4$1,[createVNode(unref(_sfc_main$m$2),{modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=m=>s.value=m),clearable:(g=o.config.clearable)!=null?g:!0,size:o.size,disabled:o.disabled,onChange:l},null,8,["modelValue","clearable","size","disabled"]),u[2]||(u[2]=createBaseVNode("span",{class:"split-tag"},"-",-1)),createVNode(unref(_sfc_main$m$2),{modelValue:a.value,"onUpdate:modelValue":u[1]||(u[1]=m=>a.value=m),clearable:(f=o.config.clearable)!=null?f:!0,size:o.size,disabled:o.disabled,onChange:c},null,8,["modelValue","clearable","size","disabled"])])}}}),_sfc_main$b$1=defineComponent({name:"MFormRadioGroup",__name:"RadioGroup",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=computed$1(()=>t.config.childType==="button"?_sfc_main$f$2:_sfc_main$g$2),s=e,a=c=>{s("change",t.model[t.name]===c?"":c)};useAddField(t.prop);const l=computed$1(()=>t.size==="small"?"12":t.size==="large"?"16":"14");return(c,d)=>o.model?(openBlock(),createBlock(unref(_sfc_main$e$2),{key:0,"model-value":o.model[o.name],size:o.size,disabled:o.disabled},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.config.options,u=>(openBlock(),createBlock(resolveDynamicComponent(r.value),{value:u.value,key:"".concat(u.value),onClick:g=>a(u.value)},{default:withCtx(()=>[createVNode(unref(_sfc_main$2$4),{disabled:!u.tooltip,placement:"top-start",content:u.tooltip},{default:withCtx(()=>[createBaseVNode("div",null,[u.icon?(openBlock(),createBlock(unref(_sfc_main$n$2),{key:0,size:l.value},{default:withCtx(()=>[(openBlock(),createBlock(resolveDynamicComponent(u.icon)))]),_:2},1032,["size"])):createCommentVNode("v-if",!0),createBaseVNode("span",null,toDisplayString(u.text),1)])]),_:2},1032,["disabled","content"])]),_:2},1032,["value","onClick"]))),128))]),_:1},8,["model-value","size","disabled"])):createCommentVNode("v-if",!0)}}),_hoisted_1$3$2={key:2},_sfc_main$a$1=defineComponent({name:"MFormSelect",__name:"Select",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{expose:e,emit:t}){var N,A;const r=o,s=t,a=(N=getDesignConfig("components"))==null?void 0:N.option,l=(A=getDesignConfig("components"))==null?void 0:A.optionGroup;if(!r.model)throw new Error("不能没有model");useAddField(r.prop);const c=ref$1(),d=inject("mForm"),u=ref$1([]),g=ref$1([]),f=ref$1(!1),m=ref$1(!1),_=ref$1(0),v=ref$1(0),b=ref$1(20),C=ref$1(""),y=ref$1([]),S=ref$1(!0),w=(O,P)=>{if(typeof P=="object"){const F=r.config.valueKey||"value";return P[F]===O[F]}return O===P},E=O=>{const{option:P={text:"text",value:"value"}}=r.config,{text:F="text",value:B="value"}=P;return O.map(H=>({text:typeof F=="function"?F(H):H[F],value:typeof B=="function"?B(H):H[B]}))},x=async()=>{var q;if(!r.model)return[];if(g.value.length)return g.value;f.value=!0;let O=[];const{option:P}=r.config;if(!P)return[];const{root:F="",totalKey:B="total"}=P;let{body:H={},url:V}=P;typeof V=="function"&&(V=await V(d,{model:r.model,formValue:d==null?void 0:d.values}));let U={method:P.method||"POST",url:V,cache:P.cache,timeout:P.timeout,mode:P.mode,headers:P.headers||{},json:P.json||!1};typeof H=="function"&&(H=H(d,{model:r.model,formValue:d==null?void 0:d.values,formValues:d==null?void 0:d.values,config:r.config})),H.query=C.value,H.pgSize=b.value,H.pgIndex=v.value,U.data=H;const j=getConfig("request");typeof P.beforeRequest=="function"&&(U=await P.beforeRequest(d,U,{model:r.model,formValue:d==null?void 0:d.values,formValues:d==null?void 0:d.values,prop:r.prop,config:r.config})),((q=P.method)==null?void 0:q.toLocaleLowerCase())==="jsonp"&&(U.jsonpCallback=P.jsonpCallback||"callback");let X=await j(U);typeof P.afterRequest=="function"&&(X=await P.afterRequest(d,X,{model:r.model,formValue:d==null?void 0:d.values,formValues:d==null?void 0:d.values,config:r.config,prop:r.prop,postOptions:U}));const ee=getValueByKeyPath(F,X),Z=globalThis.parseInt(getValueByKeyPath(B,X),10);Z>0&&(_.value=Z),y.value=y.value.concat(ee),ee&&(typeof P.item=="function"?O=P.item(ee):ee.map&&(O=E(ee))),f.value=!1;const J=[];return r.config.multiple&&r.model[r.name]&&u.value.forEach(Q=>{var de;((de=r.model)==null?void 0:de[r.name].includes(Q.value))&&!O.find(se=>se.value===Q.value)&&J.push(Q)}),v.value===0?J.concat(O):u.value.concat(O)},L=async()=>{if(!r.model)return[];const O=r.model[r.name],{config:P}=r;return g.value=await x(),S.value=!1,P.group?P.multiple&&O.findIndex?g.value.filter(F=>F.options.findIndex(B=>O.find(H=>w(B.value,H))>-1)>-1):g.value.filter(F=>F.options.findIndex(B=>w(B.value,O))>-1):P.multiple&&O.findIndex?g.value.filter(F=>O.findIndex(B=>w(F.value,B))>-1):g.value.filter(F=>w(F.value,O))},k=async()=>{var Z;if(!r.model)return[];const{option:O}=r.config;if(!O)return[];const{root:P="",initRoot:F=""}=O;let{initBody:B={}}=O,H=[],V=O.initUrl;if(!V)return L();typeof V=="function"&&(V=await V(d,{model:r.model,formValue:d==null?void 0:d.values})),typeof B=="function"&&(B=B(d,{model:r.model,formValue:d==null?void 0:d.values,formValues:d==null?void 0:d.values,config:r.config}));let U={method:O.method||"POST",url:V,data:{id:r.model[r.name],...B},mode:O.mode,headers:O.headers||{},json:O.json||!1};typeof O.beforeInitRequest=="function"&&(U=await O.beforeInitRequest(d,U,{model:r.model,formValue:d==null?void 0:d.values,formValues:d==null?void 0:d.values,config:r.config,prop:r.prop})),((Z=O.method)==null?void 0:Z.toLocaleLowerCase())==="jsonp"&&(U.jsonpCallback=O.jsonpCallback||"callback");let X=await getConfig("request")(U);typeof O.afterRequest=="function"&&(X=await O.afterRequest(d,X,{model:r.model,formValue:d==null?void 0:d.values,formValues:d==null?void 0:d.values,config:r.config,prop:r.prop,postOptions:U}));let ee=getValueByKeyPath(F||P,X);return ee&&(Array.isArray(ee)||(ee=[ee]),typeof O.item=="function"?H=O.item(ee):ee.map&&(H=E(ee))),H},D=O=>{u.value=O};if(typeof r.config.options=="function"?watchEffect(()=>{typeof r.config.options=="function"&&Promise.resolve(r.config.options(d,{model:r.model,prop:r.prop,formValues:d==null?void 0:d.values,formValue:d==null?void 0:d.values,config:r.config})).then(O=>{D(O)})}):Array.isArray(r.config.options)?watchEffect(()=>{D(r.config.options)}):r.config.option&&onBeforeMount(()=>{if(!r.model)return;const O=r.model[r.name];(Array.isArray(O)?O.length:typeof O<"u")&&k().then(P=>{D(P)})}),r.config.remote){const O=watch(()=>{var P;return(P=c.value)==null?void 0:P.scrollbarWrap},P=>{P&&(nextTick(()=>O()),P.addEventListener("scroll",async F=>{const B=F.currentTarget;m.value||B.scrollHeight-B.clientHeight-B.scrollTop>1||_.value<=u.value.length||(m.value=!0,v.value+=1,D(await x()),m.value=!1)}))},{immediate:!0})}const I=d==null?void 0:d.popperClass,T=O=>{s("change",O)},M=async O=>{var P;O&&r.config.remote&&(C.value&&c.value?(c.value.setQuery(C.value),c.value.setPreviousQuery(C.value),c.value.setSelectedLabel(C.value)):u.value.length<=(r.config.multiple?(P=r.model)==null?void 0:P[r.name].length:1)&&D(await x()))},R=async O=>{g.value.length||(C.value=O,v.value=0,D(await x()),r.config.multiple&&setTimeout(()=>{var P;(P=c.value)==null||P.setSelected()},0))};return e({options:u,setOptions:D}),(O,P)=>{const F=resolveDirective("loading");return o.model?withDirectives((openBlock(),createBlock(unref(_sfc_main$b$2),{key:0,"model-value":o.model[o.name],class:"m-select",ref_key:"tMagicSelect",ref:c,clearable:typeof o.config.clearable<"u"?o.config.clearable:!0,filterable:typeof o.config.filterable<"u"?o.config.filterable:!0,"popper-class":"m-select-popper ".concat(unref(I)),size:o.size,remote:S.value,placeholder:o.config.placeholder,multiple:o.config.multiple,"value-key":o.config.valueKey||"value","allow-create":o.config.allowCreate,disabled:o.disabled,"remote-method":o.config.remote&&R,"onUpdate:modelValue":T,onVisibleChange:M},{default:withCtx(()=>[o.config.group?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(u.value,(B,H)=>{var V,U;return openBlock(),createBlock(resolveDynamicComponent(((V=unref(l))==null?void 0:V.component)||"el-option-group"),mergeProps({key:H},{ref_for:!0},((U=unref(l))==null?void 0:U.props({label:B.label,disabled:B.disabled}))||{label:B.label,disabled:B.disabled}),{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(B.options,(j,X)=>{var ee,Z;return openBlock(),createBlock(resolveDynamicComponent(((ee=unref(a))==null?void 0:ee.component)||"el-option"),mergeProps({key:X},{ref_for:!0},((Z=unref(a))==null?void 0:Z.props({label:j.label||j.text,value:j.value,disabled:j.disabled}))||{label:j.label||j.text,value:j.value,disabled:j.disabled}),null,16)}),128))]),_:2},1040)}),128)):(openBlock(!0),createElementBlock(Fragment,{key:1},renderList(u.value,B=>{var H,V;return openBlock(),createBlock(resolveDynamicComponent(((H=unref(a))==null?void 0:H.component)||"el-option"),mergeProps({class:"tmagic-design-option",key:o.config.valueKey?B.value[o.config.valueKey]:B.value},{ref_for:!0},((V=unref(a))==null?void 0:V.props({label:B.text,value:B.value,disabled:B.disabled}))||{label:B.text,value:B.value,disabled:B.disabled}),null,16)}),128)),m.value?withDirectives((openBlock(),createElementBlock("div",_hoisted_1$3$2,null,512)),[[F,!0]]):createCommentVNode("v-if",!0)]),_:1},8,["model-value","clearable","filterable","popper-class","size","remote","placeholder","multiple","value-key","allow-create","disabled","remote-method"])),[[F,f.value]]):createCommentVNode("v-if",!0)}}}),_sfc_main$9$1=defineComponent({name:"MFormSwitch",__name:"Switch",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const s=c=>{r("change",c)},a=computed$1(()=>{if(typeof t.config.activeValue>"u"){if(t.config.filter==="number")return 1}else return t.config.activeValue;return!0}),l=computed$1(()=>{if(typeof t.config.inactiveValue>"u"){if(t.config.filter==="number")return 0}else return t.config.inactiveValue;return!1});return(c,d)=>(openBlock(),createBlock(unref(_sfc_main$8$3),{"model-value":o.model[o.name],size:o.size,activeValue:a.value,inactiveValue:l.value,disabled:o.disabled,"onUpdate:modelValue":s},null,8,["model-value","size","activeValue","inactiveValue","disabled"]))}}),_hoisted_1$2$3={class:"m-fields-text"},_hoisted_2$1$2={key:1},_hoisted_3$1$1={style:{display:"flex","justify-content":"flex-end"}},_sfc_main$8$2=defineComponent({name:"MFormText",__name:"Text",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change","input"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const s=inject("mForm"),a=ref$1("");watch(()=>t.model[t.name],S=>{a.value=S},{immediate:!0});const l=computed$1(()=>{var S;if(typeof t.config.append=="string")return{type:"text",text:t.config.append,handler:void 0};if(typeof t.config.append=="object"){if(typeof((S=t.config.append)==null?void 0:S.handler)=="function")return{type:"button",text:t.config.append.text,handler:t.config.append.handler};if(t.config.append)return t.config.append.value===0?!1:t.config.append}return!1}),c=ref$1(!1),d=()=>{r("change",t.model[t.name].trim()||""),c.value=!1},u=debounce(S=>{typeof S=="string"&&!t.config.trim&&(c.value=S.trim()!==S)},300),g=S=>{r("change",S)},f=S=>{u(S),r("input",S),s==null||s.$emit("field-input",t.prop,S)},m=()=>{if(l.value&&typeof l.value.handler=="function"){const S=[],w=(x,L)=>{S.push({propPath:t.prop.replace("".concat(t.name),x),value:L})},E=(x,L)=>{S.push({propPath:x,value:L})};l.value.handler(s,{model:t.model,values:s?readonly(s.initValues):null,formValue:t.values||{},setModel:w,setFormValue:E}),S.length>0&&r("change",t.model[t.name],{changeRecords:S})}},_=S=>{if(!t.model||!t.name)return;const w=S.key==="ArrowUp",E=S.key==="ArrowDown";if(!w&&!E)return;const x=t.model[t.name];let L,k;if(isNumber$4(x)?L=+x:x.replace(/^([0-9.]+)([a-z%]+)$/,(M,R,N)=>{L=+R,k=N}),L===void 0)return;const D=navigator.platform.match("Mac")?S.metaKey:S.ctrlKey,I=S.shiftKey,T=S.altKey;w?D?L+=100:T?L=(L*1e4+1e3)/1e4:I?L=L+10:L+=1:E&&(D?L-=100:T?L=(L*1e4-1e3)/1e4:I?L-=10:L-=1),t.model[t.name]="".concat(L).concat(k||""),r("change",t.model[t.name])},v=ref$1(),b=ref$1(),C=shallowRef();watch(v,S=>{var w;y(),!(!((w=b.value)!=null&&w.$el)||!S)&&(C.value=createPopper(b.value.$el,S,{placement:t.config.tooltip?"top":"bottom",strategy:"absolute",modifiers:[{name:"offset",options:{offset:[0,10]}}]}))});const y=()=>{C.value&&(C.value.destroy(),C.value=void 0)};return(S,w)=>(openBlock(),createElementBlock("div",_hoisted_1$2$3,[createVNode(unref(_sfc_main$m$2),{modelValue:a.value,"onUpdate:modelValue":w[0]||(w[0]=E=>a.value=E),ref_key:"input",ref:b,clearable:"",size:o.size,placeholder:o.config.placeholder,disabled:o.disabled,onChange:g,onInput:f,onKeyup:w[1]||(w[1]=E=>_(E))},createSlots({_:2},[o.config.prepend?{name:"prepend",fn:withCtx(()=>[createBaseVNode("span",null,toDisplayString(o.config.prepend),1)]),key:"0"}:void 0,l.value?{name:"append",fn:withCtx(()=>[l.value.type==="button"?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,style:{color:"#409eff"},size:o.size,onClick:withModifiers(m,["prevent"])},{default:withCtx(()=>[createTextVNode(toDisplayString(l.value.text),1)]),_:1},8,["size"])):(openBlock(),createElementBlock("span",_hoisted_2$1$2,toDisplayString(l.value.text),1))]),key:"1"}:void 0]),1032,["modelValue","size","placeholder","disabled"]),(openBlock(),createBlock(Teleport,{to:"body"},[c.value?(openBlock(),createElementBlock("div",{key:0,class:"tmagic-form-text-popper m-form-item__content",ref_key:"popoverEl",ref:v},[w[5]||(w[5]=createBaseVNode("div",{class:"m-form-validate__warning"},"输入内容前后有空格,是否移除空格?",-1)),createBaseVNode("div",_hoisted_3$1$1,[createVNode(unref(_sfc_main$F$1),{link:"",size:"small",onClick:w[2]||(w[2]=E=>c.value=!1)},{default:withCtx(()=>[...w[3]||(w[3]=[createTextVNode("保持原样",-1)])]),_:1}),createVNode(unref(_sfc_main$F$1),{type:"primary",size:"small",onClick:d},{default:withCtx(()=>[...w[4]||(w[4]=[createTextVNode("移除空格",-1)])]),_:1})]),w[6]||(w[6]=createBaseVNode("span",{class:"tmagic-form-text-popper-arrow","data-popper-arrow":""},null,-1))],512)):createCommentVNode("v-if",!0)]))]))}}),_sfc_main$7$2=defineComponent({name:"MFormTextarea",__name:"Textarea",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change","input"],setup(o,{emit:e}){const t=o,r=e,s=ref$1("");watch(()=>t.model[t.name],d=>{s.value=d},{immediate:!0}),useAddField(t.prop);const a=inject("mForm"),l=d=>{r("change",d)},c=d=>{r("input",d),a==null||a.$emit("field-input",t.prop,d)};return(d,u)=>(openBlock(),createBlock(unref(_sfc_main$m$2),{modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=g=>s.value=g),type:"textarea",size:o.size,clearable:"",placeholder:o.config.placeholder,disabled:o.disabled,rows:o.config.rows,onChange:l,onInput:c},null,8,["modelValue","size","placeholder","disabled","rows"]))}}),_sfc_main$6$2=defineComponent({name:"MFormTime",__name:"Time",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const s=a=>{r("change",a)};return(a,l)=>(openBlock(),createBlock(unref(_sfc_main$3$4),{"model-value":o.model[o.name],"value-format":o.config.valueFormat||"HH:mm:ss",format:o.config.format||"HH:mm:ss",size:o.size,placeholder:o.config.placeholder,disabled:o.disabled,"onUpdate:modelValue":s},null,8,["model-value","value-format","format","size","placeholder","disabled"]))}}),_sfc_main$5$3=defineComponent({name:"MFormTimeRange",__name:"Timerange",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e;useAddField(t.prop);const{names:s}=t.config,a=ref$1([]);t.model!==void 0&&(s!=null&&s.length)&&watch([()=>t.model[s[0]],()=>t.model[s[1]]],([d,u],[g,f])=>{a.value||(a.value=[]),(!d||!u)&&(a.value=[]),d!==g&&(a.value[0]=d),u!==f&&(a.value[1]=u)},{immediate:!0});const l=d=>{s==null||s.forEach((u,g)=>{t.model&&(Array.isArray(d)?t.model[u]=d[g]:t.model[u]=void 0)})},c=d=>{const u=d||[];s!=null&&s.length&&l(u),r("change",u)};return(d,u)=>(openBlock(),createBlock(unref(_sfc_main$3$4),{"model-value":a.value,"is-range":"","range-separator":"-","start-placeholder":"开始时间","end-placeholder":"结束时间",size:o.size,"unlink-panels":!0,disabled:o.disabled,"default-time":o.config.defaultTime,"onUpdate:modelValue":c},null,8,["model-value","size","disabled","default-time"]))}}),useAdd=(o,e)=>{const t=inject("mForm");return{addable:computed$1(()=>{const a=o.name||o.config.name||"";return o.model[a].length?typeof o.config.addable=="function"?o.config.addable(t,{model:o.model[a],formValue:t==null?void 0:t.values,prop:o.prop}):typeof o.config.addable>"u"?!0:o.config.addable:!0}),newHandler:async a=>{const l=o.name||o.config.name||"";if(o.config.max&&o.model[l].length>=o.config.max){tMagicMessage.error("最多新增配置不能超过".concat(o.config.max,"条"));return}if(typeof o.config.beforeAddRow=="function"&&!o.config.beforeAddRow(t,{model:o.model[l],formValue:t==null?void 0:t.values,prop:o.prop}))return;const c=o.config.items,d=o.config.enum||[];let u=[];const{length:g}=o.model[l],f=o.config.key||"id";let m={};if(d.length){if(g>=d.length)return;u=d.filter(_=>{let v=0;for(;v<g&&_[f]!==o.model[l][v][f];v++);return v===g}),u.length>0&&(m=u[0])}else Array.isArray(a)?c.forEach((_,v)=>{_.name&&(m[_.name]=a[v])}):(typeof o.config.defaultAdd=="function"?m=await o.config.defaultAdd(t,{model:o.model[l],prop:o.prop,formValue:t==null?void 0:t.values}):o.config.defaultAdd&&(m=o.config.defaultAdd),m=await initValue(t,{config:c,initValues:m}));o.sortKey&&g&&(m[o.sortKey]=o.model[l][g-1][o.sortKey]-1),e("change",[...o.model[l],m],{changeRecords:[{propPath:"".concat(o.prop,".").concat(o.model[l].length),value:m}]})}}},useFullscreen=()=>{const o=ref$1(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value?o.value=!1:o.value=!0}}},useImport=(o,e,t)=>{const r=inject("mForm"),s=computed$1(()=>o.name||o.config.name||""),a=computed$1(()=>typeof o.config.importable=="function"?o.config.importable(r,{formValue:r==null?void 0:r.values,model:o.model[s.value]}):typeof o.config.importable>"u"?!1:o.config.importable),l=useTemplateRef("excelBtn");return{importable:a,excelHandler:async u=>{if(!(u!=null&&u.raw))return!1;globalThis.XLSX||await asyncLoadJs("https://cdn.bootcdn.net/ajax/libs/xlsx/0.17.0/xlsx.full.min.js");const g=new FileReader;return g.onload=()=>{const f=g.result,m=globalThis.XLSX.read(f,{type:"array"});m.SheetNames.forEach(_=>{const v=globalThis.XLSX.utils.sheet_to_json(m.Sheets[_],{header:1});v!=null&&v[0]&&v.forEach(b=>{t(b)}),setTimeout(()=>{var b;(b=l.value)==null||b.clearFiles()},300)})},g.readAsArrayBuffer(u.raw),!1},clearHandler:()=>{e("change",[]),r==null||r.$emit("field-change",o.prop,o.model[s.value])}}},usePagination=(o,e)=>{const t=ref$1(10),r=ref$1(0),s=computed$1(()=>getDataByPage(o.model[e.value],r.value,t.value));return{pageSize:t,currentPage:r,paginationData:s,handleSizeChange:c=>{t.value=c},handleCurrentChange:c=>{r.value=c-1}}},useSelection=(o,e,t)=>{const r=inject("mForm");return{selectHandle:(l,c)=>{var d,u;typeof o.config.selection=="string"&&o.config.selection==="single"&&((d=t.value)==null||d.clearSelection(),(u=t.value)==null||u.toggleRowSelection(c,!0)),e("select",l,c),typeof o.config.onSelect=="function"&&o.config.onSelect(r,{selection:l,row:c,config:o.config})},toggleRowSelection:(l,c)=>{var d,u;(u=t.value)==null||u.toggleRowSelection.call((d=t.value)==null?void 0:d.getTableRef(),l,c)}}},useSortable=(o,e,t,r)=>{const s=inject("mForm");let a;const l=()=>{var u;a==null||a.destroy();const c=(u=t.value)==null?void 0:u.getEl(),d=(c==null?void 0:c.querySelector(".el-table__body > tbody"))||(c==null?void 0:c.querySelector(".t-table__body"));d&&(a=Sortable.create(d,{draggable:".tmagic-design-table-row",filter:"input",preventOnFilter:!1,direction:"vertical",onEnd:({newIndex:g,oldIndex:f})=>{if(typeof g>"u"||typeof f>"u")return;const m=sortArray(o.model[r.value],g,f,o.sortKey);e("change",m),s==null||s.$emit("field-change",m)}}))};watchEffect(()=>{o.config.dropSort&&l()})},_sfc_main$4$3=defineComponent({__name:"ActionsColumn",props:{config:{},model:{},name:{},disabled:{type:Boolean},currentPage:{},pageSize:{},index:{},row:{},prop:{},sortKey:{}},emits:["change"],setup(o,{emit:e}){const t=e,r=o,s=inject("mForm"),a=u=>{r.disabled||t("change",r.model[r.name].toSpliced(u,1))},l=u=>{const g=cloneDeep(r.model[r.name][u]),{length:f}=r.model[r.name];r.sortKey&&f&&(g[r.sortKey]=r.model[r.name][f-1][r.sortKey]-1),t("change",[...r.model[r.name],g],{changeRecords:[{propPath:"".concat(r.prop,".").concat(r.model[r.name].length),value:g}]})},c=u=>{var f;const g=r.config.delete;return g&&typeof g=="function"?g(r.model[r.name],u,s==null?void 0:s.values):(f=r.config.delete)!=null?f:!0},d=u=>{var f;const g=r.config.copyable;return g&&typeof g=="function"?g(s,{values:(s==null?void 0:s.initValues)||{},model:r.model,parent:(s==null?void 0:s.parentValues)||{},formValue:(s==null?void 0:s.values)||r.model,prop:r.prop,config:r.config,index:u}):(f=r.config.copyable)!=null?f:!0};return(u,g)=>(openBlock(),createElementBlock(Fragment,null,[renderSlot(u.$slots,"operateCol",{scope:{$index:o.index,row:o.row}}),withDirectives(createVNode(unref(_sfc_main$F$1),{size:"small",type:"danger",link:"",title:"删除",icon:unref(delete_default),onClick:g[0]||(g[0]=f=>a(o.index+1+o.currentPage*o.pageSize-1))},null,8,["icon"]),[[vShow,c(o.index+1+o.currentPage*o.pageSize-1)]]),d(o.index+1+o.currentPage*o.pageSize-1)?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,link:"",size:"small",type:"primary",title:"复制",icon:unref(document_copy_default),disabled:o.disabled,onClick:g[1]||(g[1]=f=>l(o.index+1+o.currentPage*o.pageSize-1))},null,8,["icon","disabled"])):createCommentVNode("v-if",!0)],64))}}),_sfc_main$3$3=defineComponent({__name:"SortColumn",props:{index:{},disabled:{type:Boolean},currentPage:{},pageSize:{},name:{},model:{}},emits:["swap"],setup(o,{emit:e}){const t=o,r=e;let s=null;const a=u=>{s&&clearTimeout(s),s=setTimeout(()=>{r("swap",u,u-1),s=null},300)},l=u=>{s&&clearTimeout(s);const g=u;for(let f=0;f<g;f++)r("swap",u,u-1),u-=1},c=u=>{s&&clearTimeout(s),s=setTimeout(()=>{r("swap",u,u+1),s=null},300)},d=u=>{s&&clearTimeout(s);const g=t.model[t.name].length-1-u;for(let f=0;f<g;f++)r("swap",u,u+1),u+=1};return(u,g)=>(openBlock(),createElementBlock(Fragment,null,[o.index+1+o.currentPage*o.pageSize-1!==0?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,content:"点击上移,双击置顶",placement:"top"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{plain:"",size:"small",type:"primary",icon:unref(arrow_up_default),disabled:o.disabled,link:"",onClick:g[0]||(g[0]=f=>a(o.index+1+o.currentPage*o.pageSize-1)),onDblclick:g[1]||(g[1]=f=>l(o.index+1+o.currentPage*o.pageSize-1))},null,8,["icon","disabled"])]),_:1})):createCommentVNode("v-if",!0),o.index+1+o.currentPage*o.pageSize-1!==o.model[o.name].length-1?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:1,content:"点击下移,双击置底",placement:"top"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{plain:"",size:"small",type:"primary",icon:unref(arrow_down_default),disabled:o.disabled,link:"",onClick:g[2]||(g[2]=f=>c(o.index+1+o.currentPage*o.pageSize-1)),onDblclick:g[3]||(g[3]=f=>d(o.index+1+o.currentPage*o.pageSize-1))},null,8,["icon","disabled"])]),_:1})):createCommentVNode("v-if",!0)],64))}}),useTableColumns=(o,e,t,r,s)=>{const a=inject("mForm"),l=C=>display$1(a,C,o),c=computed$1(()=>o.config.pagination?getDataByPage(o.lastValues[s.value],t.value,r.value):o.lastValues[s.value]||[]),d=(C,y)=>typeof C=="function"?C(a,{values:a==null?void 0:a.initValues,model:o.model,formValue:a?a.values:o.model,prop:o.prop,index:y}):C,u=C=>typeof C=="function"?C(a,{values:a==null?void 0:a.initValues,model:o.model,formValue:a?a.values:o.model,prop:o.prop}):C,g=computed$1(()=>typeof o.config.selection=="function"?o.config.selection(a,{model:o.model[s.value]}):o.config.selection),f=C=>"".concat(o.prop).concat(o.prop?".":"").concat(C+1+t.value*r.value-1),m=(C,y)=>{const S=cloneDeep(C);return typeof C.itemsFunction=="function"&&(S.items=C.itemsFunction(y)),delete S.display,S},_=(C,y)=>{e("change",o.model,y)},v=()=>e("addDiffCount");return{columns:computed$1(()=>{const C=[];o.config.itemExtra&&!o.config.dropSort&&C.push({props:{fixed:"left",width:30,type:"expand"},cell:({$index:w})=>h$1("span",{innerHTML:d(o.config.itemExtra,w),class:"m-form-tip"})});let y=o.config.fixed===!1?void 0:"left";typeof o.config.fixed=="string"&&["left","right"].includes(o.config.fixed)&&(y=o.config.fixed);const S={props:{label:"操作",fixed:y,width:o.config.operateColWidth||112,align:"center"},cell:({row:w,$index:E})=>h$1(_sfc_main$4$3,{row:w,index:E,model:o.model,config:o.config,prop:o.prop,disabled:o.disabled,sortKey:o.sortKey,name:s.value,currentPage:t.value,pageSize:r.value,onChange:x=>{e("change",x)}})};y!=="right"&&C.push(S),o.sort&&o.model[s.value]&&o.model[s.value].length>1&&C.push({props:{label:"排序",width:80},cell:({$index:w})=>h$1(_sfc_main$3$3,{index:w,model:o.model,disabled:o.disabled,name:s.value,currentPage:t.value,pageSize:r.value,onSwap:(E,x)=>{const L=sortArray(o.model[s.value],E,x,o.sortKey);e("change",L),a==null||a.$emit("field-change",L)}})}),g.value&&C.push({props:{align:"center",headerAlign:"center",type:"selection",width:45}}),o.showIndex&&o.config.showIndex&&C.push({props:{label:"序号",width:60},cell:({$index:w})=>h$1("span",w+1+t.value*r.value)});for(const w of o.config.items)if(w.type!=="hidden"&&l(w.display)){const E=u(w.titleTip);C.push({props:{prop:w.name,label:w.label,width:w.width,sortable:w.sortable,sortOrders:["ascending","descending"],class:o.config.dropSort===!0?"el-table__column--dropable":""},cell:({row:x,$index:L})=>h$1(_sfc_main$A$1,{labelWidth:"0",disabled:o.disabled,prop:f(L),rules:w.rules,config:m(w,x),model:x,lastValues:c.value[L],isCompare:o.isCompare,size:o.size,onChange:_,onAddDiffCount:v}),title:E?()=>h$1(_sfc_main$2$4,{placement:"top"},{default:()=>h$1("span",{style:{display:"inline-flex",alignItems:"center",gap:"5px"}},[h$1("span",w.label),h$1(_sfc_main$n$2,{},{default:()=>h$1(warning_filled_default)})]),content:()=>h$1("div",{innerHTML:E})}):void 0})}return y==="right"&&C.push(S),C})}},_hoisted_1$1$3=["innerHTML"],_hoisted_2$r={style:{display:"flex","justify-content":"space-between",margin:"10px 0"}},_hoisted_3$a={style:{display:"flex"}},_hoisted_4$8={key:1,class:"bottom",style:{"text-align":"right"}},_sfc_main$2$3=defineComponent({name:"MFormTable",__name:"Table",props:{model:{},lastValues:{default:()=>({})},isCompare:{type:Boolean,default:!1},config:{},name:{},prop:{default:""},labelWidth:{},sort:{type:Boolean},disabled:{type:Boolean},sortKey:{default:""},text:{},size:{},enableToggleMode:{type:Boolean,default:!0},showIndex:{type:Boolean,default:!0}},emits:["change","select","addDiffCount"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=computed$1(()=>r.name||r.config.name||""),l=useTemplateRef("tMagicTable"),{pageSize:c,currentPage:d,paginationData:u,handleSizeChange:g,handleCurrentChange:f}=usePagination(r,a),{nextZIndex:m}=useZIndex(),{addable:_,newHandler:v}=useAdd(r,s),{columns:b}=useTableColumns(r,s,d,c,a);useSortable(r,s,l,a);const{isFullscreen:C,toggleFullscreen:y}=useFullscreen(),{importable:S,excelHandler:w,clearHandler:E}=useImport(r,s,v),{selectHandle:x,toggleRowSelection:L}=useSelection(r,s,l),k=ref$1(1),D=computed$1(()=>r.config.pagination?u.value:r.model[a.value]),I=()=>{const M=R=>{var O;if(!R)return"0px";const N=((O=R.match(/[^\x00-\xff]/g))==null?void 0:O.length)||0,A=R.length-N;return"".concat(Math.max(A*8+N*20,80),"px")};r.config.type="groupList",r.config.enableToggleMode=!0,r.config.tableItems=r.config.items,r.config.items=r.config.groupItems||r.config.items.map(R=>{const N=R.text||R.label,A=M(N);return{...R,text:N,labelWidth:A,span:R.span||12}})},T=M=>{const R=r.name||r.config.name||"";sortChange(r.model[R],M)};return e({toggleRowSelection:L}),(M,R)=>{var N;return openBlock(),createBlock(Teleport,{to:"body",disabled:!unref(C)},[createBaseVNode("div",mergeProps(M.$attrs,{class:["m-fields-table-wrap",{fixed:unref(C)}],style:unref(C)?"z-index: ".concat(unref(m)()):""}),[createBaseVNode("div",{class:normalizeClass(["m-fields-table",{"m-fields-table-item-extra":o.config.itemExtra}])},[o.config.extra?(openBlock(),createElementBlock("span",{key:0,style:{color:"rgba(0, 0, 0, 0.45)"},innerHTML:o.config.extra},null,8,_hoisted_1$1$3)):createCommentVNode("v-if",!0),createVNode(unref(_sfc_main$2$4),{content:"拖拽可排序",placement:"left-start",disabled:o.config.dropSort!==!0},{default:withCtx(()=>[o.model[a.value]?(openBlock(),createBlock(unref(_sfc_main$7$3),{ref:"tMagicTable",style:{width:"100%"},"show-header":"","row-key":o.config.rowKey||"id",columns:unref(b),data:D.value,border:o.config.border,"max-height":o.config.maxHeight,"default-expand-all":!0,key:k.value,onSelect:unref(x),onSortChange:T},null,8,["row-key","columns","data","border","max-height","onSelect"])):createCommentVNode("v-if",!0)]),_:1},8,["disabled"]),renderSlot(M.$slots,"default"),createBaseVNode("div",_hoisted_2$r,[createBaseVNode("div",_hoisted_3$a,[o.enableToggleMode&&o.config.enableToggleMode!==!1&&!unref(C)?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,icon:unref(grid_default),size:"small",onClick:I},{default:withCtx(()=>[...R[1]||(R[1]=[createTextVNode("展开配置",-1)])]),_:1},8,["icon"])):createCommentVNode("v-if",!0),o.config.enableFullscreen!==!1?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:1,icon:unref(full_screen_default),size:"small",onClick:unref(y)},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(C)?"退出全屏":"全屏编辑"),1)]),_:1},8,["icon","onClick"])):createCommentVNode("v-if",!0),unref(S)?(openBlock(),createBlock(unref(_sfc_main$1$3),{key:2,style:{display:"inline-block"},ref:"excelBtn",action:"/noop",disabled:o.disabled,"on-change":unref(w),"auto-upload":!1},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{size:"small",type:"success",disabled:o.disabled,plain:""},{default:withCtx(()=>[...R[2]||(R[2]=[createTextVNode("导入EXCEL",-1)])]),_:1},8,["disabled"])]),_:1},8,["disabled","on-change"])):createCommentVNode("v-if",!0),unref(S)?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:3,size:"small",type:"warning",disabled:o.disabled,plain:"",onClick:unref(E)},{default:withCtx(()=>[...R[3]||(R[3]=[createTextVNode("清空",-1)])]),_:1},8,["disabled","onClick"])):createCommentVNode("v-if",!0)]),unref(_)?(openBlock(),createBlock(unref(_sfc_main$F$1),mergeProps({key:0,class:"m-form-table-add-button",size:"small",plain:"",icon:unref(plus_default)},((N=o.config.addButtonConfig)==null?void 0:N.props)||{type:"primary"},{disabled:o.disabled,onClick:R[0]||(R[0]=A=>unref(v)())}),{default:withCtx(()=>{var A;return[createTextVNode(toDisplayString(((A=o.config.addButtonConfig)==null?void 0:A.text)||"新增一行"),1)]}),_:1},16,["icon","disabled"])):createCommentVNode("v-if",!0)]),o.config.pagination?(openBlock(),createElementBlock("div",_hoisted_4$8,[createVNode(unref(_sfc_main$i$2),{layout:"total, sizes, prev, pager, next, jumper","hide-on-single-page":o.model[a.value].length<unref(c),"current-page":unref(d)+1,"page-sizes":[unref(c),60,120,300],"page-size":unref(c),total:o.model[a.value].length,onSizeChange:unref(g),onCurrentChange:unref(f)},null,8,["hide-on-single-page","current-page","page-sizes","page-size","total","onSizeChange","onCurrentChange"])])):createCommentVNode("v-if",!0)],2)],16)],8,["disabled"])}}}),footerHeight=60,_sfc_main$1u=defineComponent({name:"MFormBox",__name:"FormBox",props:{config:{default:()=>[]},values:{default:()=>({})},parentValues:{},width:{},height:{},labelWidth:{},disabled:{type:Boolean},size:{},confirmText:{default:"确定"},inline:{type:Boolean},labelPosition:{},preventSubmitDefault:{type:Boolean}},emits:["change","submit","error"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=computed$1(()=>{const _={};return typeof r.width=="number"&&(_.width="".concat(r.width,"px")),typeof r.height=="number"&&(_.height="".concat(r.height,"px")),_}),l=ref$1(),c=ref$1(!1),d=ref$1(0);watchEffect(()=>{r.height&&(d.value=r.height-footerHeight)});const u=async()=>{var _,v;try{const b=(_=l.value)==null?void 0:_.changeRecords,C=await((v=l.value)==null?void 0:v.submitForm());s("submit",C,{changeRecords:b})}catch(b){s("error",b)}},g=(_,v)=>{s("change",_,v)};return e({form:l,saveFetch:c,show:()=>{},hide:()=>{}}),(_,v)=>(openBlock(),createElementBlock("div",{class:"m-form-box",style:normalizeStyle(a.value)},[createBaseVNode("div",{class:"m-box-body",style:normalizeStyle(d.value?{height:"".concat(d.value,"px")}:{})},[createVNode(unref(_sfc_main$c$2),null,{default:withCtx(()=>[createVNode(_sfc_main$g$1,{ref_key:"form",ref:l,size:o.size,disabled:o.disabled,config:o.config,"init-values":o.values,"parent-values":o.parentValues,"label-width":o.labelWidth,"label-position":o.labelPosition,inline:o.inline,"prevent-submit-default":o.preventSubmitDefault,onChange:g},null,8,["size","disabled","config","init-values","parent-values","label-width","label-position","inline","prevent-submit-default"]),renderSlot(_.$slots,"default")]),_:3})],4),createBaseVNode("div",{class:"dialog-footer",style:normalizeStyle("height: ".concat(footerHeight,"px"))},[createBaseVNode("div",null,[renderSlot(_.$slots,"left")]),createBaseVNode("div",null,[renderSlot(_.$slots,"footer",{},()=>[createVNode(unref(_sfc_main$F$1),{type:"primary",size:o.size,disabled:o.disabled,loading:c.value,onClick:u},{default:withCtx(()=>[createTextVNode(toDisplayString(o.confirmText),1)]),_:1},8,["size","disabled","loading"])])])],4)],4))}}),createForm=o=>o,defaultInstallOpt$1={},index$4={install(o,e={}){const t=Object.assign(defaultInstallOpt$1,e);o.config.globalProperties.$MAGIC_FORM=t,setConfig(t),o.component("m-form",_sfc_main$g$1),o.component("m-form-dialog",_sfc_main$f$1),o.component("m-form-container",_sfc_main$A$1),o.component("m-form-fieldset",_sfc_main$z$1),o.component("m-form-group-list",_sfc_main$w$1),o.component("m-form-panel",_sfc_main$v$1),o.component("m-form-row",_sfc_main$t$1),o.component("m-form-step",_sfc_main$s$1),o.component("m-form-table",_sfc_main$2$3),o.component("m-form-tab",_sfc_main$r$1),o.component("m-form-flex-layout",_sfc_main$y$1),o.component("m-fields-text",_sfc_main$8$2),o.component("m-fields-img-upload",_sfc_main$8$2),o.component("m-fields-number",_sfc_main$d$1),o.component("m-fields-number-range",_sfc_main$c$1),o.component("m-fields-textarea",_sfc_main$7$2),o.component("m-fields-hidden",_sfc_main$h$1),o.component("m-fields-date",_sfc_main$m$1),o.component("m-fields-datetime",_sfc_main$k$1),o.component("m-fields-daterange",_sfc_main$l$1),o.component("m-fields-timerange",_sfc_main$5$3),o.component("m-fields-time",_sfc_main$6$2),o.component("m-fields-checkbox",_sfc_main$p$1),o.component("m-fields-switch",_sfc_main$9$1),o.component("m-fields-color-picker",_sfc_main$n$1),o.component("m-fields-checkbox-group",_sfc_main$o$1),o.component("m-fields-radio-group",_sfc_main$b$1),o.component("m-fields-display",_sfc_main$j$1),o.component("m-fields-link",_sfc_main$e$1),o.component("m-fields-select",_sfc_main$a$1),o.component("m-fields-cascader",_sfc_main$q$1),o.component("m-fields-dynamic-field",_sfc_main$i$1)}},_hoisted_1$2$2=["innerHTML"],_sfc_main$5$2=defineComponent({name:"MTableActionsColumn",__name:"ActionsColumn",props:{columns:{default:()=>[]},config:{default:()=>({})},rowkeyName:{default:"c_id"},editState:{default:()=>[]},row:{},index:{}},emits:["after-action"],setup(o,{emit:e}){const t=o,r=e,s=(u,g)=>typeof u=="function"?u(g):typeof u=="boolean"?u:!0,a=(u,g)=>typeof u=="function"?u(g):typeof u=="boolean"?u:!1,l=(u,g)=>typeof u=="function"?u(g):u,c=async(u,g,f)=>{var m,_,v;await((m=u.before)==null?void 0:m.call(u,g,f)),u.type==="edit"?t.editState[f]=g:await((_=u.handler)==null?void 0:_.call(u,g,f)),(v=u.after)==null||v.call(u,g,f)},d=async(u,g)=>{var b,C;const f=(C=(b=g.actions)==null?void 0:b.find(y=>y.type==="edit"))==null?void 0:C.action;if(!f)return;const m={},_=t.editState[u];t.columns.filter(y=>y.type).forEach(y=>{y.prop&&(m[y.prop]=_[y.prop])});const v=await f({data:m});v?v.ret===0?(tMagicMessage.success("保存成功"),t.editState[u]=void 0,r("after-action")):tMagicMessage.error(v.msg||"保存失败"):(t.editState[u]=void 0,r("after-action"))};return(u,g)=>(openBlock(),createElementBlock(Fragment,null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.config.actions,(f,m)=>(openBlock(),createBlock(unref(_sfc_main$2$4),{placement:f.tooltipPlacement||"top",key:m,disabled:!f.tooltip,content:f.tooltip},{default:withCtx(()=>[withDirectives(createVNode(unref(_sfc_main$F$1),{class:"action-btn",link:"",size:"small",type:f.buttonType||"primary",icon:f.icon,disabled:a(f.disabled,o.row),onClick:_=>c(f,o.row,o.index)},{default:withCtx(()=>[createBaseVNode("span",{innerHTML:l(f.text,o.row)},null,8,_hoisted_1$2$2)]),_:2},1032,["type","icon","disabled","onClick"]),[[vShow,s(f.display,o.row)&&!o.editState[o.index]]])]),_:2},1032,["placement","disabled","content"]))),128)),withDirectives(createVNode(unref(_sfc_main$F$1),{class:"action-btn",link:"",type:"primary",size:"small",onClick:g[0]||(g[0]=f=>d(o.index,o.config))},{default:withCtx(()=>[...g[2]||(g[2]=[createTextVNode("保存",-1)])]),_:1},512),[[vShow,o.editState[o.index]]]),withDirectives(createVNode(unref(_sfc_main$F$1),{class:"action-btn",link:"",type:"primary",size:"small",onClick:g[1]||(g[1]=f=>o.editState[o.index]=void 0)},{default:withCtx(()=>[...g[3]||(g[3]=[createTextVNode("取消",-1)])]),_:1},512),[[vShow,o.editState[o.index]]])],64))}}),_sfc_main$4$2=defineComponent({name:"MTableColumn",__name:"ComponentColumn",props:{config:{default:()=>({})},row:{},index:{}},setup(o){const e=o,t=(s,a)=>typeof e.config.props=="function"?e.config.props(s,a)||{}:e.config.props||{},r=(s,a)=>typeof e.config.listeners=="function"?e.config.listeners(s,a)||{}:e.config.listeners||{};return(s,a)=>(openBlock(),createBlock(resolveDynamicComponent(o.config.component),mergeProps(t(o.row,o.index),toHandlers(r(o.row,o.index))),null,16))}}),_hoisted_1$1$2=["innerHTML"],_sfc_main$3$2=defineComponent({name:"MTableExpandColumn",__name:"ExpandColumn",props:{config:{default:()=>({})},row:{}},setup(o){const e=o,t=r=>typeof e.config.props=="function"?e.config.props(r)||{}:e.config.props||{};return(r,s)=>(openBlock(),createElementBlock(Fragment,null,[o.config.table?(openBlock(),createBlock(_sfc_main$1t,{key:0,"show-header":!1,columns:o.config.table,data:o.config.prop&&o.row[o.config.prop]||[]},null,8,["columns","data"])):createCommentVNode("v-if",!0),o.config.form?(openBlock(),createBlock(unref(_sfc_main$g$1),{key:1,config:o.config.form,"init-values":o.config.values||o.config.prop&&o.row[o.config.prop]||{}},null,8,["config","init-values"])):createCommentVNode("v-if",!0),o.config.expandContent?(openBlock(),createElementBlock("div",{key:2,innerHTML:o.config.expandContent(o.row,o.config.prop)},null,8,_hoisted_1$1$2)):createCommentVNode("v-if",!0),o.config.component?(openBlock(),createBlock(resolveDynamicComponent(o.config.component),normalizeProps(mergeProps({key:3},t(o.row))),null,16)):createCommentVNode("v-if",!0)],64))}}),formatter=(o,e,t)=>{if(!o.prop)return"";if(o.formatter){o.formatter==="datetime"&&(o.formatter=r=>datetimeFormatter(r));try{return o.formatter(e[o.prop],e,t)}catch(r){return console.error("Formatter error:",r),e[o.prop]}}else return e[o.prop]},_sfc_main$2$2=defineComponent({name:"MTablePopoverColumn",__name:"PopoverColumn",props:{config:{default:()=>({})},row:{},index:{}},setup(o){return(e,t)=>{var r;return o.config.popover?(openBlock(),createBlock(unref(_sfc_main$h$2),{key:0,placement:o.config.popover.placement,width:o.config.popover.width,trigger:o.config.popover.trigger,"destroy-on-close":(r=o.config.popover.destroyOnClose)!=null?r:!0},{reference:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{link:"",type:"primary"},{default:withCtx(()=>[createTextVNode(toDisplayString(o.config.text||unref(formatter)(o.config,o.row,{index:o.index})),1)]),_:1})]),default:withCtx(()=>[o.config.popover.tableEmbed?(openBlock(),createBlock(_sfc_main$1t,{key:0,"show-header":o.config.showHeader,columns:o.config.table,data:o.config.prop&&o.row[o.config.prop]||[]},null,8,["show-header","columns","data"])):createCommentVNode("v-if",!0)]),_:1},8,["placement","width","trigger","destroy-on-close"])):createCommentVNode("v-if",!0)}}}),_hoisted_1$11={key:0},_hoisted_2$q=["innerHTML"],_hoisted_3$9=["href"],_hoisted_4$7=["src"],_hoisted_5$2=["href"],_hoisted_6$2=["innerHTML"],_sfc_main$1$2=defineComponent({name:"MTableColumn",__name:"TextColumn",props:{config:{default:()=>({})},editState:{default:()=>({})},row:{},index:{}},setup(o){return(e,t)=>{const r=resolveComponent("m-form-container");return o.config.type==="index"?(openBlock(),createElementBlock("div",_hoisted_1$11,toDisplayString(o.config.pageIndex&&o.config.pageSize?o.config.pageIndex*o.config.pageSize+o.index+1:o.index+1),1)):o.config.type&&o.editState[o.index]?(openBlock(),createBlock(unref(_sfc_main$p$2),{key:1,"label-width":"0",model:o.editState[o.index]},{default:withCtx(()=>[createVNode(r,{prop:o.config.prop,rules:o.config.rules,config:o.config,name:o.config.prop,model:o.editState[o.index]},null,8,["prop","rules","config","name","model"])]),_:1},8,["model"])):o.config.action==="actionLink"&&o.config.prop?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:2,link:"",type:"primary",onClick:t[0]||(t[0]=s=>{var a,l;return(l=(a=o.config).handler)==null?void 0:l.call(a,o.row)})},{default:withCtx(()=>[createBaseVNode("span",{innerHTML:unref(formatter)(o.config,o.row,{index:o.index})},null,8,_hoisted_2$q)]),_:1})):o.config.action==="img"&&o.config.prop?(openBlock(),createElementBlock("a",{key:3,target:"_blank",href:o.row[o.config.prop]},[createBaseVNode("img",{src:o.row[o.config.prop],height:"50"},null,8,_hoisted_4$7)],8,_hoisted_3$9)):o.config.action==="link"&&o.config.prop?(openBlock(),createElementBlock("a",{key:4,target:"_blank",href:o.row[o.config.prop],class:"keep-all"},toDisplayString(o.row[o.config.prop]),9,_hoisted_5$2)):o.config.action==="tip"?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:5,placement:"left"},{content:withCtx(()=>[createBaseVNode("div",null,toDisplayString(unref(formatter)(o.config,o.row,{index:o.index})),1)]),default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{link:"",type:"primary"},{default:withCtx(()=>[createTextVNode(toDisplayString(o.config.buttonText||"扩展配置"),1)]),_:1})]),_:1})):o.config.action==="tag"&&o.config.prop?(openBlock(),createBlock(unref(_sfc_main$4$4),{key:6,type:typeof o.config.type=="function"?o.config.type(o.row[o.config.prop],o.row):o.config.type,"close-transition":""},{default:withCtx(()=>[createTextVNode(toDisplayString(unref(formatter)(o.config,o.row,{index:o.index})),1)]),_:1},8,["type"])):(openBlock(),createElementBlock("div",{key:7,innerHTML:unref(formatter)(o.config,o.row,{index:o.index})},null,8,_hoisted_6$2))}}}),_sfc_main$1t=defineComponent({name:"MTable",__name:"Table",props:{data:{},columns:{default:()=>[]},spanMethod:{},loading:{type:Boolean,default:!1},bodyHeight:{},showHeader:{type:Boolean,default:!0},emptyText:{},defaultExpandAll:{type:Boolean,default:!1},rowkeyName:{},border:{type:Boolean,default:!1}},emits:["sort-change","after-action","select","select-all","selection-change","expand-change","cell-click"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=(L,{row:k={},$index:D})=>L.type==="expand"?h$1(_sfc_main$3$2,{config:L,row:k}):L.type==="component"?h$1(_sfc_main$4$2,{config:L,row:k,index:D}):L.actions?h$1(_sfc_main$5$2,{config:L,row:k,index:D,rowkeyName:r.rowkeyName,editState:d.value,columns:r.columns}):L.type==="popover"?h$1(_sfc_main$2$2,{config:L,row:k,index:D}):h$1(_sfc_main$1$2,{config:L,row:k,index:D,editState:d.value}),l=computed$1(()=>r.columns.map(L=>{var D;let k="default";return L.type==="expand"?k="expand":L.selection&&(k="selection"),{props:{label:L.label,fixed:L.fixed,width:(D=L.width)!=null?D:L.selection?40:void 0,prop:L.prop,type:k,selectable:L.selectable},cell:k==="selection"?void 0:({row:I,$index:T})=>a(L,{row:I,$index:T})}})),c=useTemplateRef("tMagicTable"),d=ref$1([]),u=computed$1(()=>{const L=r.columns.filter(k=>k.selection);return L.length?L[0]:null}),g=computed$1(()=>u.value?r.data||[]:cloneDeep(r.data)||[]),f=computed$1(()=>typeof r.border<"u"?r.border:!0),m=L=>{s("sort-change",L)},_=(L,k)=>{const D=u.value;D&&(D.selection,s("select",L,k))},v=L=>{s("select-all",L)},b=L=>{s("selection-change",L)},C=(...L)=>{s("cell-click",...L)},y=(...L)=>{s("expand-change",...L)},S=(L,k)=>{var D;(D=c.value)==null||D.toggleRowSelection(L,k)},w=(L,k)=>{var D;(D=c.value)==null||D.toggleRowExpansion(L,k)},E=()=>{var L;(L=c.value)==null||L.clearSelection()},x=L=>typeof r.spanMethod=="function"?r.spanMethod(L):()=>({rowspan:0,colspan:0});return e({toggleRowSelection:S,toggleRowExpansion:w,clearSelection:E}),(L,k)=>{const D=resolveDirective("loading");return withDirectives((openBlock(),createBlock(unref(_sfc_main$7$3),{class:"m-table",ref:"tMagicTable","show-overflow-tooltip":!0,"tooltip-effect":"dark","tooltip-options":{popperOptions:{strategy:"absolute"}},data:g.value,"show-header":o.showHeader,"max-height":o.bodyHeight,"default-expand-all":o.defaultExpandAll,border:f.value,"row-key":o.rowkeyName||"id","tree-props":{children:"children"},"empty-text":o.emptyText||"暂无数据","span-method":x,columns:l.value,onSortChange:m,onSelect:_,onSelectAll:v,onSelectionChange:b,onCellClick:C,onExpandChange:y},null,8,["data","show-header","max-height","default-expand-all","border","row-key","empty-text","columns"])),[[D,o.loading]])}}}),index$3={install(o){o.component("m-table",_sfc_main$1t)}};var serializeJavascript,hasRequiredSerializeJavascript;function requireSerializeJavascript(){if(hasRequiredSerializeJavascript)return serializeJavascript;hasRequiredSerializeJavascript=1;var o=16,e=g(),t=new RegExp('(\\\\)?"@__(F|R|D|M|S|A|U|I|B|L)-'+e+'-(\\d+)__@"',"g"),r=/\{\s*\[native code\]\s*\}/g,s=/function.*?\(/,a=/.*?=>.*?/,l=/[<>\/\u2028\u2029]/g,c=["*","async"],d={"<":"\\u003C",">":"\\u003E","/":"\\u002F","\u2028":"\\u2028","\u2029":"\\u2029"};function u(m){return d[m]}function g(){for(var m=crypto.getRandomValues(new Uint8Array(o)),_="",v=0;v<o;++v)_+=m[v].toString(16);return _}function f(m){var _=[];for(var v in m)typeof m[v]=="function"&&_.push(v);for(var b=0;b<_.length;b++)delete m[_[b]]}return serializeJavascript=function m(_,v){v||(v={}),(typeof v=="number"||typeof v=="string")&&(v={space:v});var b=[],C=[],y=[],S=[],w=[],E=[],x=[],L=[],k=[],D=[];function I(R,N){if(v.ignoreFunction&&f(N),!N&&N!==void 0&&N!==BigInt(0))return N;var A=this[R],O=typeof A;if(O==="object"){if(A instanceof RegExp)return"@__R-"+e+"-"+(C.push(A)-1)+"__@";if(A instanceof Date)return"@__D-"+e+"-"+(y.push(A)-1)+"__@";if(A instanceof Map)return"@__M-"+e+"-"+(S.push(A)-1)+"__@";if(A instanceof Set)return"@__S-"+e+"-"+(w.push(A)-1)+"__@";if(A instanceof Array){var P=A.filter(function(){return!0}).length!==A.length;if(P)return"@__A-"+e+"-"+(E.push(A)-1)+"__@"}if(A instanceof URL)return"@__L-"+e+"-"+(D.push(A)-1)+"__@"}return O==="function"?"@__F-"+e+"-"+(b.push(A)-1)+"__@":O==="undefined"?"@__U-"+e+"-"+(x.push(A)-1)+"__@":O==="number"&&!isNaN(A)&&!isFinite(A)?"@__I-"+e+"-"+(L.push(A)-1)+"__@":O==="bigint"?"@__B-"+e+"-"+(k.push(A)-1)+"__@":N}function T(R){var N=R.toString();if(r.test(N))throw new TypeError("Serializing native function: "+R.name);if(s.test(N)||a.test(N))return N;var A=N.indexOf("("),O=N.substr(0,A).trim().split(" ").filter(function(F){return F.length>0}),P=O.filter(function(F){return c.indexOf(F)===-1});return P.length>0?(O.indexOf("async")>-1?"async ":"")+"function"+(O.join("").indexOf("*")>-1?"*":"")+N.substr(A):N}if(v.ignoreFunction&&typeof _=="function"&&(_=void 0),_===void 0)return String(_);var M;return v.isJSON&&!v.space?M=JSON.stringify(_):M=JSON.stringify(_,v.isJSON?null:I,v.space),typeof M!="string"?String(M):(v.unsafe!==!0&&(M=M.replace(l,u)),b.length===0&&C.length===0&&y.length===0&&S.length===0&&w.length===0&&E.length===0&&x.length===0&&L.length===0&&k.length===0&&D.length===0?M:M.replace(t,function(R,N,A,O){if(N)return R;if(A==="D")return'new Date("'+y[O].toISOString()+'")';if(A==="R")return"new RegExp("+m(C[O].source)+', "'+C[O].flags+'")';if(A==="M")return"new Map("+m(Array.from(S[O].entries()),v)+")";if(A==="S")return"new Set("+m(Array.from(w[O].values()),v)+")";if(A==="A")return"Array.prototype.slice.call("+m(Object.assign({length:E[O].length},E[O]),v)+")";if(A==="U")return"undefined";if(A==="I")return L[O];if(A==="B")return'BigInt("'+k[O]+'")';if(A==="L")return"new URL("+m(D[O].toString(),v)+")";var P=b[O];return T(P)}))},serializeJavascript}var serializeJavascriptExports=requireSerializeJavascript();const serialize=getDefaultExportFromCjs(serializeJavascriptExports);function isNumber$1$1(o){return o>47&&o<58}function isAlpha$1(o,e,t){return e=e||65,t=t||90,o&=-33,o>=e&&o<=t}function isAlphaNumericWord(o){return isNumber$1$1(o)||isAlphaWord(o)}function isAlphaWord(o){return o===95||isAlpha$1(o)}function isUmlaut(o){return o===196||o==214||o===220||o===228||o===246||o===252}function isWhiteSpace$3(o){return o===32||o===9||o===160}function isSpace$1(o){return isWhiteSpace$3(o)||o===10||o===13}function isQuote$2(o){return o===39||o===34}let Scanner$2=class za{constructor(e,t,r){r==null&&typeof e=="string"&&(r=e.length),this.string=e,this.pos=this.start=t||0,this.end=r||0}eof(){return this.pos>=this.end}limit(e,t){return new za(this.string,e,t)}peek(){return this.string.charCodeAt(this.pos)}next(){if(this.pos<this.string.length)return this.string.charCodeAt(this.pos++)}eat(e){const t=this.peek(),r=typeof e=="function"?e(t):t===e;return r&&this.next(),r}eatWhile(e){const t=this.pos;for(;!this.eof()&&this.eat(e););return this.pos!==t}backUp(e){this.pos-=e||1}current(){return this.substring(this.start,this.pos)}substring(e,t){return this.string.slice(e,t)}error(e,t=this.pos){return new ScannerError("".concat(e," at ").concat(t+1),t,this.string)}};class ScannerError extends Error{constructor(e,t,r){super(e),this.pos=t,this.string=r}}function tokenScanner$1(o){return{tokens:o,start:0,pos:0,size:o.length}}function peek$3(o){return o.tokens[o.pos]}function next(o){return o.tokens[o.pos++]}function slice(o,e=o.start,t=o.pos){return o.tokens.slice(e,t)}function readable$1(o){return o.pos<o.size}function consume$2(o,e){const t=peek$3(o);return t&&e(t)?(o.pos++,!0):!1}function error$1(o,e,t=peek$3(o)){t&&t.start!=null&&(e+=" at ".concat(t.start));const r=new Error(e);return r.pos=t&&t.start,r}function abbreviation(o,e={}){const t=tokenScanner$1(o),r=statements(t,e);if(readable$1(t))throw error$1(t,"Unexpected character");return r}function statements(o,e){const t={type:"TokenGroup",elements:[]};let r=t,s;const a=[];for(;readable$1(o)&&(s=element$2(o,e)||group(o,e));)if(r.elements.push(s),consume$2(o,isChildOperator))a.push(r),r=s;else{if(consume$2(o,isSiblingOperator$1))continue;if(consume$2(o,isClimbOperator))do a.length&&(r=a.pop());while(consume$2(o,isClimbOperator))}return t}function group(o,e){if(consume$2(o,isGroupStart)){const t=statements(o,e),r=next(o);return isBracket$2(r,"group",!1)&&(t.repeat=repeater$1(o)),t}}function element$2(o,e){let t;const r={type:"TokenElement",name:void 0,attributes:void 0,value:void 0,repeat:void 0,selfClose:!1,elements:[]};for(elementName(o,e)&&(r.name=slice(o));readable$1(o);)if(o.start=o.pos,!r.repeat&&!isEmpty$1(r)&&consume$2(o,isRepeater))r.repeat=o.tokens[o.pos-1];else if(!r.value&&text$2(o))r.value=getText(o);else if(t=shortAttribute(o,"id",e)||shortAttribute(o,"class",e)||attributeSet(o))r.attributes?r.attributes=r.attributes.concat(t):r.attributes=Array.isArray(t)?t.slice():[t];else{!isEmpty$1(r)&&consume$2(o,isCloseOperator)&&(r.selfClose=!0,!r.repeat&&consume$2(o,isRepeater)&&(r.repeat=o.tokens[o.pos-1]));break}return isEmpty$1(r)?void 0:r}function attributeSet(o){if(consume$2(o,isAttributeSetStart)){const e=[];let t;for(;readable$1(o);)if(t=attribute(o))e.push(t);else{if(consume$2(o,isAttributeSetEnd))break;if(!consume$2(o,isWhiteSpace$2))throw error$1(o,'Unexpected "'.concat(peek$3(o).type,'" token'))}return e}}function shortAttribute(o,e,t){if(isOperator$1(peek$3(o),e)){o.pos++;let r=1;for(;isOperator$1(peek$3(o),e);)o.pos++,r++;const s={name:[createLiteral$1(e)]};return r>1&&(s.multiple=!0),t.jsx&&text$2(o)?(s.value=getText(o),s.expression=!0):s.value=literal$1$1(o)?slice(o):void 0,s}}function attribute(o){if(quoted(o))return{value:slice(o)};if(literal$1$1(o,!0)){const e=slice(o);let t;return consume$2(o,isEquals)&&(quoted(o)||literal$1$1(o,!0))&&(t=slice(o)),{name:e,value:t}}}function repeater$1(o){return isRepeater(peek$3(o))?o.tokens[o.pos++]:void 0}function quoted(o){const e=o.pos,t=peek$3(o);if(isQuote$1(t)){for(o.pos++;readable$1(o);)if(isQuote$1(next(o),t.single))return o.start=e,!0;throw error$1(o,"Unclosed quote",t)}return!1}function literal$1$1(o,e){const t=o.pos,r={attribute:0,expression:0,group:0};for(;readable$1(o);){const s=peek$3(o);if(r.expression)isBracket$2(s,"expression")&&(r[s.context]+=s.open?1:-1);else{if(isQuote$1(s)||isOperator$1(s)||isWhiteSpace$2(s)||isRepeater(s))break;if(isBracket$2(s)){if(!e)break;if(s.open)r[s.context]++;else if(r[s.context])r[s.context]--;else break}}o.pos++}return t!==o.pos?(o.start=t,!0):!1}function elementName(o,e){const t=o.pos;if(e.jsx&&consume$2(o,isCapitalizedLiteral))for(;readable$1(o);){const{pos:r}=o;if(!consume$2(o,isClassNameOperator)||!consume$2(o,isCapitalizedLiteral)){o.pos=r;break}}for(;readable$1(o)&&consume$2(o,isElementName$1););return o.pos!==t?(o.start=t,!0):!1}function text$2(o){const e=o.pos;if(consume$2(o,isTextStart)){let t=0;for(;readable$1(o);){const r=next(o);if(isBracket$2(r,"expression"))if(r.open)t++;else if(t)t--;else break}return o.start=e,!0}return!1}function getText(o){let e=o.start,t=o.pos;return isBracket$2(o.tokens[e],"expression",!0)&&e++,isBracket$2(o.tokens[t-1],"expression",!1)&&t--,slice(o,e,t)}function isBracket$2(o,e,t){return!!(o&&o.type==="Bracket"&&(!e||o.context===e)&&(t==null||o.open===t))}function isOperator$1(o,e){return!!(o&&o.type==="Operator"&&(!e||o.operator===e))}function isQuote$1(o,e){return!!(o&&o.type==="Quote"&&(e==null||o.single===e))}function isWhiteSpace$2(o){return!!(o&&o.type==="WhiteSpace")}function isEquals(o){return isOperator$1(o,"equal")}function isRepeater(o){return!!(o&&o.type==="Repeater")}function isLiteral$2(o){return o.type==="Literal"}function isCapitalizedLiteral(o){if(isLiteral$2(o)){const e=o.value.charCodeAt(0);return e>=65&&e<=90}return!1}function isElementName$1(o){return o.type==="Literal"||o.type==="RepeaterNumber"||o.type==="RepeaterPlaceholder"}function isClassNameOperator(o){return isOperator$1(o,"class")}function isAttributeSetStart(o){return isBracket$2(o,"attribute",!0)}function isAttributeSetEnd(o){return isBracket$2(o,"attribute",!1)}function isTextStart(o){return isBracket$2(o,"expression",!0)}function isGroupStart(o){return isBracket$2(o,"group",!0)}function createLiteral$1(o){return{type:"Literal",value:o}}function isEmpty$1(o){return!o.name&&!o.value&&!o.attributes}function isChildOperator(o){return isOperator$1(o,"child")}function isSiblingOperator$1(o){return isOperator$1(o,"sibling")}function isClimbOperator(o){return isOperator$1(o,"climb")}function isCloseOperator(o){return isOperator$1(o,"close")}var Chars$3;(function(o){o[o.CurlyBracketOpen=123]="CurlyBracketOpen",o[o.CurlyBracketClose=125]="CurlyBracketClose",o[o.Escape=92]="Escape",o[o.Equals=61]="Equals",o[o.SquareBracketOpen=91]="SquareBracketOpen",o[o.SquareBracketClose=93]="SquareBracketClose",o[o.Asterisk=42]="Asterisk",o[o.Hash=35]="Hash",o[o.Dollar=36]="Dollar",o[o.Dash=45]="Dash",o[o.Dot=46]="Dot",o[o.Slash=47]="Slash",o[o.Colon=58]="Colon",o[o.Excl=33]="Excl",o[o.At=64]="At",o[o.Underscore=95]="Underscore",o[o.RoundBracketOpen=40]="RoundBracketOpen",o[o.RoundBracketClose=41]="RoundBracketClose",o[o.Sibling=43]="Sibling",o[o.Child=62]="Child",o[o.Climb=94]="Climb",o[o.SingleQuote=39]="SingleQuote",o[o.DoubleQuote=34]="DoubleQuote"})(Chars$3||(Chars$3={}));function escaped(o){return o.eat(Chars$3.Escape)?(o.start=o.pos,o.eof()||o.pos++,!0):!1}function tokenize$1(o){const e=new Scanner$2(o),t=[],r={group:0,attribute:0,expression:0,quote:0};let s=0,a;for(;!e.eof();)if(s=e.peek(),a=getToken$1(e,r),a)t.push(a),a.type==="Quote"?r.quote=s===r.quote?0:s:a.type==="Bracket"&&(r[a.context]+=a.open?1:-1);else throw e.error("Unexpected character");return t}function getToken$1(o,e){return field$2(o,e)||repeaterPlaceholder(o)||repeaterNumber(o)||repeater(o)||whiteSpace$1(o)||literal$2(o,e)||operator$1(o)||quote(o)||bracket$1(o)}function literal$2(o,e){const t=o.pos,r=e.expression;let s="";for(;!o.eof();){if(escaped(o)){s+=o.current();continue}const a=o.peek();if(a===Chars$3.Slash&&!e.quote&&!e.expression&&!e.attribute){const l=o.string.charCodeAt(o.pos-1),c=o.string.charCodeAt(o.pos+1);if(isNumber$1$1(l)&&isNumber$1$1(c)){s+=o.string[o.pos++];continue}}if(a===e.quote||a===Chars$3.Dollar||isAllowedOperator(a,e))break;if(r){if(a===Chars$3.CurlyBracketOpen)e.expression++;else if(a===Chars$3.CurlyBracketClose)if(e.expression>r)e.expression--;else break}else if(!e.quote&&(!e.attribute&&!isElementName(a)||isAllowedSpace(a,e)||isAllowedRepeater(a,e)||isQuote$2(a)||bracketType(a)))break;s+=o.string[o.pos++]}if(t!==o.pos)return o.start=t,{type:"Literal",value:s,start:t,end:o.pos}}function whiteSpace$1(o){const e=o.pos;if(o.eatWhile(isSpace$1))return{type:"WhiteSpace",start:e,end:o.pos,value:o.substring(e,o.pos)}}function quote(o){const e=o.peek();if(isQuote$2(e))return{type:"Quote",single:e===Chars$3.SingleQuote,start:o.pos++,end:o.pos}}function bracket$1(o){const e=o.peek(),t=bracketType(e);if(t)return{type:"Bracket",open:isOpenBracket$2(e),context:t,start:o.pos++,end:o.pos}}function operator$1(o){const e=operatorType$1(o.peek());if(e)return{type:"Operator",operator:e,start:o.pos++,end:o.pos}}function repeater(o){const e=o.pos;if(o.eat(Chars$3.Asterisk)){o.start=o.pos;let t=1,r=!1;return o.eatWhile(isNumber$1$1)?t=Number(o.current()):r=!0,{type:"Repeater",count:t,value:0,implicit:r,start:e,end:o.pos}}}function repeaterPlaceholder(o){const e=o.pos;if(o.eat(Chars$3.Dollar)&&o.eat(Chars$3.Hash))return{type:"RepeaterPlaceholder",value:void 0,start:e,end:o.pos};o.pos=e}function repeaterNumber(o){const e=o.pos;if(o.eatWhile(Chars$3.Dollar)){const t=o.pos-e;let r=!1,s=1,a=0;if(o.eat(Chars$3.At)){for(;o.eat(Chars$3.Climb);)a++;r=o.eat(Chars$3.Dash),o.start=o.pos,o.eatWhile(isNumber$1$1)&&(s=Number(o.current()))}return o.start=e,{type:"RepeaterNumber",size:t,reverse:r,base:s,parent:a,start:e,end:o.pos}}}function field$2(o,e){const t=o.pos;if((e.expression||e.attribute)&&o.eat(Chars$3.Dollar)&&o.eat(Chars$3.CurlyBracketOpen)){o.start=o.pos;let r,s="";if(o.eatWhile(isNumber$1$1)?(r=Number(o.current()),s=o.eat(Chars$3.Colon)?consumePlaceholder$2(o):""):isAlpha$1(o.peek())&&(s=consumePlaceholder$2(o)),o.eat(Chars$3.CurlyBracketClose))return{type:"Field",index:r,name:s,start:t,end:o.pos};throw o.error("Expecting }")}o.pos=t}function consumePlaceholder$2(o){const e=[];for(o.start=o.pos;!o.eof();)if(o.eat(Chars$3.CurlyBracketOpen))e.push(o.pos);else if(o.eat(Chars$3.CurlyBracketClose)){if(!e.length){o.pos--;break}e.pop()}else o.pos++;if(e.length)throw o.pos=e.pop(),o.error("Expecting }");return o.current()}function isAllowedOperator(o,e){const t=operatorType$1(o);return!t||e.quote||e.expression?!1:!e.attribute||t==="equal"}function isAllowedSpace(o,e){return isSpace$1(o)&&!e.expression}function isAllowedRepeater(o,e){return o===Chars$3.Asterisk&&!e.attribute&&!e.expression}function bracketType(o){if(o===Chars$3.RoundBracketOpen||o===Chars$3.RoundBracketClose)return"group";if(o===Chars$3.SquareBracketOpen||o===Chars$3.SquareBracketClose)return"attribute";if(o===Chars$3.CurlyBracketOpen||o===Chars$3.CurlyBracketClose)return"expression"}function operatorType$1(o){return o===Chars$3.Child&&"child"||o===Chars$3.Sibling&&"sibling"||o===Chars$3.Climb&&"climb"||o===Chars$3.Dot&&"class"||o===Chars$3.Hash&&"id"||o===Chars$3.Slash&&"close"||o===Chars$3.Equals&&"equal"||void 0}function isOpenBracket$2(o){return o===Chars$3.CurlyBracketOpen||o===Chars$3.SquareBracketOpen||o===Chars$3.RoundBracketOpen}function isElementName(o){return isAlphaNumericWord(o)||isUmlaut(o)||o===Chars$3.Dash||o===Chars$3.Colon||o===Chars$3.Excl}const operators={child:">",class:".",climb:"^",id:"#",equal:"=",close:"/",sibling:"+"},tokenVisitor={Literal(o){return o.value},Quote(o){return o.single?"'":'"'},Bracket(o){return o.context==="attribute"?o.open?"[":"]":o.context==="expression"?o.open?"{":"}":o.open?"(":"}"},Operator(o){return operators[o.operator]},Field(o,e){return o.index!=null?o.name?"${".concat(o.index,":").concat(o.name,"}"):"${".concat(o.index):o.name?e.getVariable(o.name):""},RepeaterPlaceholder(o,e){let t;for(let r=e.repeaters.length-1;r>=0;r--)if(e.repeaters[r].implicit){t=e.repeaters[r];break}return e.inserted=!0,e.getText(t&&t.value)},RepeaterNumber(o,e){let t=1;const r=e.repeaters.length-1,s=e.repeaters[r];if(s&&(t=o.reverse?o.base+s.count-s.value-1:o.base+s.value,o.parent)){const l=Math.max(0,r-o.parent);if(l!==r){const c=e.repeaters[l];t+=s.count*c.value}}let a=String(t);for(;a.length<o.size;)a="0"+a;return a},WhiteSpace(o){return o.value}};function stringify$1(o,e){if(!tokenVisitor[o.type])throw new Error("Unknown token ".concat(o.type));return tokenVisitor[o.type](o,e)}const urlRegex=/^((https?:|ftp:|file:)?\/\/|(www|ftp)\.)[^ ]*$/,emailRegex=/^[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,5}$/;function convert(o,e={}){let t=!1,r;e.text&&(Array.isArray(e.text)?r=e.text.filter(a=>a.trim()):r=e.text);const s={type:"Abbreviation",children:convertGroup(o,{inserted:!1,repeaters:[],text:e.text,cleanText:r,repeatGuard:e.maxRepeat||Number.POSITIVE_INFINITY,getText(a){var l;t=!0;let c;if(Array.isArray(e.text)){if(a!==void 0&&a>=0&&a<r.length)return r[a];c=a!==void 0?e.text[a]:e.text.join("\n")}else c=(l=e.text)!==null&&l!==void 0?l:"";return c},getVariable(a){const l=e.variables&&e.variables[a];return l!=null?l:a}})};if(e.text!=null&&!t){const a=deepestNode(last$1(s.children));if(a){const l=Array.isArray(e.text)?e.text.join("\n"):e.text;insertText(a,l),a.name==="a"&&e.href&&insertHref(a,l)}}return s}function convertStatement(o,e){let t=[];if(o.repeat){const r=o.repeat,s=Object.assign({},r);s.count=s.implicit&&Array.isArray(e.text)?e.cleanText.length:s.count||1;let a;e.repeaters.push(s);for(let l=0;l<s.count;l++){if(s.value=l,o.repeat=s,a=isGroup(o)?convertGroup(o,e):convertElement(o,e),s.implicit&&!e.inserted){const c=last$1(a),d=c&&deepestNode(c);d&&insertText(d,e.getText(s.value))}if(t=t.concat(a),--e.repeatGuard<=0)break}e.repeaters.pop(),o.repeat=r,s.implicit&&(e.inserted=!0)}else t=t.concat(isGroup(o)?convertGroup(o,e):convertElement(o,e));return t}function convertElement(o,e){let t=[];const r={type:"AbbreviationNode",name:o.name&&stringifyName(o.name,e),value:o.value&&stringifyValue$1(o.value,e),attributes:void 0,children:t,repeat:o.repeat&&Object.assign({},o.repeat),selfClosing:o.selfClose};let s=[r];for(const a of o.elements)t=t.concat(convertStatement(a,e));if(o.attributes){r.attributes=[];for(const a of o.attributes)r.attributes.push(convertAttribute(a,e))}return!r.name&&!r.attributes&&r.value&&!r.value.some(isField$1)?s=s.concat(t):r.children=t,s}function convertGroup(o,e){let t=[];for(const r of o.elements)t=t.concat(convertStatement(r,e));return o.repeat&&(t=attachRepeater(t,o.repeat)),t}function convertAttribute(o,e){let t=!1,r=!1,s=o.expression?"expression":"raw",a;const l=o.name&&stringifyName(o.name,e);if(l&&l[0]==="!"&&(t=!0),l&&l[l.length-1]==="."&&(r=!0),o.value){const c=o.value.slice();if(isQuote$1(c[0])){const d=c.shift();c.length&&last$1(c).type===d.type&&c.pop(),s=d.single?"singleQuote":"doubleQuote"}else isBracket$2(c[0],"expression",!0)&&(s="expression",c.shift(),isBracket$2(last$1(c),"expression",!1)&&c.pop());a=stringifyValue$1(c,e)}return{name:r||t?l.slice(t?1:0,r?-1:void 0):l,value:a,boolean:r,implied:t,valueType:s,multiple:o.multiple}}function stringifyName(o,e){let t="";for(let r=0;r<o.length;r++)t+=stringify$1(o[r],e);return t}function stringifyValue$1(o,e){const t=[];let r="";for(let s=0,a;s<o.length;s++)a=o[s],isField$1(a)?(r&&(t.push(r),r=""),t.push(a)):r+=stringify$1(a,e);return r&&t.push(r),t}function isGroup(o){return o.type==="TokenGroup"}function isField$1(o){return typeof o=="object"&&o.type==="Field"&&o.index!=null}function last$1(o){return o[o.length-1]}function deepestNode(o){return o.children.length?deepestNode(last$1(o.children)):o}function insertText(o,e){o.value?typeof last$1(o.value)=="string"?o.value[o.value.length-1]+=e:o.value.push(e):o.value=[e]}function insertHref(o,e){var t;let r="";urlRegex.test(e)?(r=e,!/\w+:/.test(r)&&!r.startsWith("//")&&(r="http://".concat(r))):emailRegex.test(e)&&(r="mailto:".concat(e));const s=(t=o.attributes)===null||t===void 0?void 0:t.find(a=>a.name==="href");s?s.value||(s.value=[r]):(o.attributes||(o.attributes=[]),o.attributes.push({name:"href",value:[r],valueType:"doubleQuote"}))}function attachRepeater(o,e){for(const t of o)t.repeat||(t.repeat=Object.assign({},e));return o}function parseAbbreviation(o,e){try{const t=typeof o=="string"?tokenize$1(o):o;return convert(abbreviation(t,e),e)}catch(t){throw t instanceof ScannerError&&typeof o=="string"&&(t.message+="\n".concat(o,"\n").concat("-".repeat(t.pos),"^")),t}}var OperatorType;(function(o){o.Sibling="+",o.Important="!",o.ArgumentDelimiter=",",o.ValueDelimiter="-",o.PropertyDelimiter=":"})(OperatorType||(OperatorType={}));var Chars$2;(function(o){o[o.Hash=35]="Hash",o[o.Dollar=36]="Dollar",o[o.Dash=45]="Dash",o[o.Dot=46]="Dot",o[o.Colon=58]="Colon",o[o.Comma=44]="Comma",o[o.Excl=33]="Excl",o[o.At=64]="At",o[o.Percent=37]="Percent",o[o.Underscore=95]="Underscore",o[o.RoundBracketOpen=40]="RoundBracketOpen",o[o.RoundBracketClose=41]="RoundBracketClose",o[o.CurlyBracketOpen=123]="CurlyBracketOpen",o[o.CurlyBracketClose=125]="CurlyBracketClose",o[o.Sibling=43]="Sibling",o[o.SingleQuote=39]="SingleQuote",o[o.DoubleQuote=34]="DoubleQuote",o[o.Transparent=116]="Transparent",o[o.Slash=47]="Slash"})(Chars$2||(Chars$2={}));function tokenize$2(o,e){let t=0,r;const s=new Scanner$2(o),a=[];for(;!s.eof();){if(r=getToken(s,t===0&&!e),!r)throw s.error("Unexpected character");if(r.type==="Bracket"&&(!t&&r.open&&mergeTokens(s,a),t+=r.open?1:-1,t<0))throw s.error("Unexpected bracket",r.start);a.push(r),shouldConsumeDashAfter(r)&&(r=operator(s))&&a.push(r)}return a}function getToken(o,e){return field$1(o)||customProperty(o)||numberValue(o)||colorValue(o)||stringValue$1(o)||bracket(o)||operator(o)||whiteSpace(o)||literal$1(o,e)}function field$1(o){const e=o.pos;if(o.eat(Chars$2.Dollar)&&o.eat(Chars$2.CurlyBracketOpen)){o.start=o.pos;let t,r="";if(o.eatWhile(isNumber$1$1)?(t=Number(o.current()),r=o.eat(Chars$2.Colon)?consumePlaceholder$1(o):""):isAlpha$1(o.peek())&&(r=consumePlaceholder$1(o)),o.eat(Chars$2.CurlyBracketClose))return{type:"Field",index:t,name:r,start:e,end:o.pos};throw o.error("Expecting }")}o.pos=e}function consumePlaceholder$1(o){const e=[];for(o.start=o.pos;!o.eof();)if(o.eat(Chars$2.CurlyBracketOpen))e.push(o.pos);else if(o.eat(Chars$2.CurlyBracketClose)){if(!e.length){o.pos--;break}e.pop()}else o.pos++;if(e.length)throw o.pos=e.pop(),o.error("Expecting }");return o.current()}function literal$1(o,e){const t=o.pos;if(o.eat(isIdentPrefix)?o.eatWhile(t?isKeyword:isLiteral$1):o.eat(isAlphaWord)?o.eatWhile(e?isLiteral$1:isKeyword):(o.eat(Chars$2.Dot),o.eatWhile(isLiteral$1)),t!==o.pos)return o.start=t,createLiteral(o,o.start=t)}function createLiteral(o,e=o.start,t=o.pos){return{type:"Literal",value:o.substring(e,t),start:e,end:t}}function numberValue(o){const e=o.pos;if(consumeNumber(o)){o.start=e;const t=o.current();return o.start=o.pos,o.eat(Chars$2.Percent)||o.eatWhile(isAlphaWord),{type:"NumberValue",value:Number(t),rawValue:t,unit:o.current(),start:e,end:o.pos}}}function stringValue$1(o){const e=o.peek(),t=o.pos;let r=!1;if(isQuote$2(e)){for(o.pos++;!o.eof();)if(o.eat(e)){r=!0;break}else o.pos++;return o.start=t,{type:"StringValue",value:o.substring(t+1,o.pos-(r?1:0)),quote:e===Chars$2.SingleQuote?"single":"double",start:t,end:o.pos}}}function colorValue(o){const e=o.pos;if(o.eat(Chars$2.Hash)){const t=o.pos;let r="",s="";if(o.eatWhile(isHex)?(r=o.substring(t,o.pos),s=colorAlpha(o)):o.eat(Chars$2.Transparent)?(r="0",s=colorAlpha(o)||"0"):s=colorAlpha(o),r||s||o.eof()){const{r:a,g:l,b:c,a:d}=parseColor(r,s);return{type:"ColorValue",r:a,g:l,b:c,a:d,raw:o.substring(e+1,o.pos),start:e,end:o.pos}}else return createLiteral(o,e)}o.pos=e}function colorAlpha(o){const e=o.pos;return o.eat(Chars$2.Dot)?(o.start=e,o.eatWhile(isNumber$1$1)?o.current():"1"):""}function whiteSpace(o){const e=o.pos;if(o.eatWhile(isSpace$1))return{type:"WhiteSpace",start:e,end:o.pos}}function customProperty(o){const e=o.pos;if(o.eat(Chars$2.Dash)&&o.eat(Chars$2.Dash))return o.start=e,o.eatWhile(isKeyword),{type:"CustomProperty",value:o.current(),start:e,end:o.pos};o.pos=e}function bracket(o){const e=o.peek();if(isBracket$1(e))return{type:"Bracket",open:e===Chars$2.RoundBracketOpen,start:o.pos++,end:o.pos}}function operator(o){const e=operatorType(o.peek());if(e)return{type:"Operator",operator:e,start:o.pos++,end:o.pos}}function consumeNumber(o){const e=o.pos;o.eat(Chars$2.Dash);const t=o.pos,r=o.eatWhile(isNumber$1$1),s=o.pos;if(o.eat(Chars$2.Dot)){const a=o.eatWhile(isNumber$1$1);!r&&!a&&(o.pos=s)}return o.pos===t&&(o.pos=e),o.pos!==e}function isIdentPrefix(o){return o===Chars$2.At||o===Chars$2.Dollar}function operatorType(o){return o===Chars$2.Sibling&&OperatorType.Sibling||o===Chars$2.Excl&&OperatorType.Important||o===Chars$2.Comma&&OperatorType.ArgumentDelimiter||o===Chars$2.Colon&&OperatorType.PropertyDelimiter||o===Chars$2.Dash&&OperatorType.ValueDelimiter||void 0}function isHex(o){return isNumber$1$1(o)||isAlpha$1(o,65,70)}function isKeyword(o){return isAlphaNumericWord(o)||o===Chars$2.Dash}function isBracket$1(o){return o===Chars$2.RoundBracketOpen||o===Chars$2.RoundBracketClose}function isLiteral$1(o){return isAlphaWord(o)||o===Chars$2.Percent||o===Chars$2.Slash}function parseColor(o,e){let t="0",r="0",s="0",a=Number(e!=null&&e!==""?e:1);if(o==="t")a=0;else switch(o.length){case 0:break;case 1:t=r=s=o+o;break;case 2:t=r=s=o;break;case 3:t=o[0]+o[0],r=o[1]+o[1],s=o[2]+o[2];break;default:o+=o,t=o.slice(0,2),r=o.slice(2,4),s=o.slice(4,6)}return{r:parseInt(t,16),g:parseInt(r,16),b:parseInt(s,16),a}}function shouldConsumeDashAfter(o){return o.type==="ColorValue"||o.type==="NumberValue"&&!o.unit}function mergeTokens(o,e){let t=0,r=0;for(;e.length;){const s=last(e);if(s.type==="Literal"||s.type==="NumberValue")t=s.start,r||(r=s.end),e.pop();else break}t!==r&&e.push(createLiteral(o,t,r))}function last(o){return o[o.length-1]}function tokenScanner(o){return{tokens:o,start:0,pos:0,size:o.length}}function peek$2(o){return o.tokens[o.pos]}function readable(o){return o.pos<o.size}function consume$1(o,e){return e(peek$2(o))?(o.pos++,!0):!1}function error$2(o,e,t=peek$2(o)){t&&t.start!=null&&(e+=" at ".concat(t.start));const r=new Error(e);return r.pos=t&&t.start,r}function parser(o,e={}){const t=tokenScanner(o),r=[];let s;for(;readable(t);)if(s=consumeProperty(t,e))r.push(s);else if(!consume$1(t,isSiblingOperator))throw error$2(t,"Unexpected token");return r}function consumeProperty(o,e){let t,r=!1,s;const a=[],l=peek$2(o),c=!!e.value;for(!c&&isLiteral(l)&&!isFunctionStart(o)&&(o.pos++,t=l.value,consume$1(o,isValueDelimiter)),c&&consume$1(o,isWhiteSpace$1);readable(o);)if(consume$1(o,isImportant))r=!0;else if(s=consumeValue(o,c))a.push(s);else if(!consume$1(o,isFragmentDelimiter))break;if(t||a.length||r)return{name:t,value:a,important:r}}function consumeValue(o,e){const t=[];let r,s;for(;readable(o);)if(r=peek$2(o),isValue(r))o.pos++,isLiteral(r)&&(s=consumeArguments(o))?t.push({type:"FunctionCall",name:r.value,arguments:s}):t.push(r);else if(isValueDelimiter(r)||e&&isWhiteSpace$1(r))o.pos++;else break;return t.length?{type:"CSSValue",value:t}:void 0}function consumeArguments(o){const e=o.pos;if(consume$1(o,isOpenBracket$1)){const t=[];let r;for(;readable(o)&&!consume$1(o,isCloseBracket$1);)if(r=consumeValue(o,!0))t.push(r);else if(!consume$1(o,isWhiteSpace$1)&&!consume$1(o,isArgumentDelimiter))throw error$2(o,"Unexpected token");return o.start=e,t}}function isLiteral(o){return o&&o.type==="Literal"}function isBracket(o,e){return o&&o.type==="Bracket"&&(e==null||o.open===e)}function isOpenBracket$1(o){return isBracket(o,!0)}function isCloseBracket$1(o){return isBracket(o,!1)}function isWhiteSpace$1(o){return o&&o.type==="WhiteSpace"}function isOperator(o,e){return o&&o.type==="Operator"&&(!e||o.operator===e)}function isSiblingOperator(o){return isOperator(o,OperatorType.Sibling)}function isArgumentDelimiter(o){return isOperator(o,OperatorType.ArgumentDelimiter)}function isFragmentDelimiter(o){return isArgumentDelimiter(o)}function isImportant(o){return isOperator(o,OperatorType.Important)}function isValue(o){return o.type==="StringValue"||o.type==="ColorValue"||o.type==="NumberValue"||o.type==="Literal"||o.type==="Field"||o.type==="CustomProperty"}function isValueDelimiter(o){return isOperator(o,OperatorType.PropertyDelimiter)||isOperator(o,OperatorType.ValueDelimiter)}function isFunctionStart(o){const e=o.tokens[o.pos],t=o.tokens[o.pos+1];return e&&t&&isLiteral(e)&&t.type==="Bracket"}function parse$2$1(o,e){try{const t=typeof o=="string"?tokenize$2(o,e&&e.value):o;return parser(t,e)}catch(t){throw t instanceof ScannerError&&typeof o=="string"&&(t.message+="\n".concat(o,"\n").concat("-".repeat(t.pos),"^")),t}}function mergeAttributes(o,e){if(!o.attributes)return;const t=[],r={};for(const s of o.attributes)if(s.name){const a=s.name;if(a in r){const l=r[a];a==="class"?l.value=mergeValue(l.value,s.value," "):mergeDeclarations(l,s,e)}else t.push(r[a]=Object.assign({},s))}else t.push(s);o.attributes=t}function mergeValue(o,e,t){if(o&&e){o.length&&t&&append$3(o,t);for(const s of e)append$3(o,s);return o}const r=o||e;return r&&r.slice()}function mergeDeclarations(o,e,t){return o.name=e.name,t.options["output.reverseAttributes"]||(o.value=e.value),o.implied||(o.implied=e.implied),o.boolean||(o.boolean=e.boolean),o.valueType!=="expression"&&(o.valueType=e.valueType),o}function append$3(o,e){const t=o.length-1;typeof o[t]=="string"&&typeof e=="string"?o[t]+=e:o.push(e)}function walk$1(o,e,t){const r=[o],s=a=>{e(a,r,t),r.push(a),a.children.forEach(s),r.pop()};o.children.forEach(s)}function find$1$1(o,e){for(let t=0;t<o.children.length;t++){const r=o.children[t];if(e(r))return r;const s=find$1$1(r,e);if(s)return s}}function findDeepest(o){let e;for(;o.children.length;)e=o,o=o.children[o.children.length-1];return{parent:e,node:o}}function isNode$1(o){return o.type==="AbbreviationNode"}function resolveSnippets(o,e){const t=[],r=e.options["output.reverseAttributes"],{warn:s}=e,a=l=>{const c=l.name&&e.snippets[l.name];if(!c||t.includes(c))return null;let d;try{d=parseAbbreviation(c,e)}catch(u){return s==null||s('Unable to parse "'.concat(c,'" snippet'),u),null}t.push(c),walkResolve(d,a),t.pop();for(const u of d.children){if(l.attributes){const g=u.attributes||[],f=l.attributes||[];u.attributes=r?f.concat(g):g.concat(f)}mergeNodes(l,u)}return d};return walkResolve(o,a),o}function walkResolve(o,e,t){let r=[];for(const s of o.children){const a=e(s);if(a){r=r.concat(a.children);const l=findDeepest(a);isNode$1(l.node)&&(l.node.children=l.node.children.concat(walkResolve(s,e)))}else r.push(s),s.children=walkResolve(s,e)}return o.children=r}function mergeNodes(o,e){o.selfClosing&&(e.selfClosing=!0),o.value!=null&&(e.value=o.value),o.repeat&&(e.repeat=o.repeat)}const expressionStart="{",expressionEnd="}";function createOutputStream(o,e=0){return{options:o,value:"",level:e,offset:0,line:0,column:0}}function push(o,e){const t=o.options["output.text"];_push(o,t(e,o.offset,o.line,o.column))}function pushString(o,e){const t=splitByLines$1(e);for(let r=0,s=t.length-1;r<=s;r++)push(o,t[r]),r!==s&&pushNewline(o,!0)}function pushNewline(o,e){const t=o.options["output.baseIndent"],r=o.options["output.newline"];push(o,r+t),o.line++,o.column=t.length,e&&pushIndent(o,e===!0?o.level:e)}function pushIndent(o,e=o.level){const t=o.options["output.indent"];push(o,t.repeat(Math.max(e,0)))}function pushField(o,e,t){const r=o.options["output.field"];_push(o,r(e,t,o.offset,o.line,o.column))}function tagName(o,e){return strCase(o,e.options["output.tagCase"])}function attrName(o,e){return strCase(o,e.options["output.attributeCase"])}function attrQuote(o,e,t){return o.valueType==="expression"?t?expressionStart:expressionEnd:e.options["output.attributeQuotes"]==="single"?"'":'"'}function isBooleanAttribute(o,e){return o.boolean||e.options["output.booleanAttributes"].includes((o.name||"").toLowerCase())}function selfClose(o){switch(o.options["output.selfClosingStyle"]){case"xhtml":return" /";case"xml":return"/";default:return""}}function isInline(o,e){return typeof o=="string"?e.options.inlineElements.includes(o.toLowerCase()):o.name?isInline(o.name,e):!!(o.value&&!o.attributes)}function splitByLines$1(o){return o.split(/\r\n|\r|\n/g)}function _push(o,e){o.value+=e,o.offset+=e.length,o.column+=e.length}function strCase(o,e){return e?e==="upper"?o.toUpperCase():o.toLowerCase():o}const elementMap={p:"span",ul:"li",ol:"li",table:"tr",tr:"td",tbody:"tr",thead:"tr",tfoot:"tr",colgroup:"col",select:"option",optgroup:"option",audio:"source",video:"source",object:"param",map:"area"};function implicitTag(o,e,t){!o.name&&o.attributes&&resolveImplicitTag(o,e,t)}function resolveImplicitTag(o,e,t){const r=getParentElement(e),s=t.context?t.context.name:"",a=lowercase(r?r.name:s);o.name=elementMap[a]||(isInline(a,t)?"span":"div")}function lowercase(o){return(o||"").toLowerCase()}function getParentElement(o){for(let e=o.length-1;e>=0;e--){const t=o[e];if(isNode$1(t))return t}}var latin={common:["lorem","ipsum","dolor","sit","amet","consectetur","adipisicing","elit"],words:["exercitationem","perferendis","perspiciatis","laborum","eveniet","sunt","iure","nam","nobis","eum","cum","officiis","excepturi","odio","consectetur","quasi","aut","quisquam","vel","eligendi","itaque","non","odit","tempore","quaerat","dignissimos","facilis","neque","nihil","expedita","vitae","vero","ipsum","nisi","animi","cumque","pariatur","velit","modi","natus","iusto","eaque","sequi","illo","sed","ex","et","voluptatibus","tempora","veritatis","ratione","assumenda","incidunt","nostrum","placeat","aliquid","fuga","provident","praesentium","rem","necessitatibus","suscipit","adipisci","quidem","possimus","voluptas","debitis","sint","accusantium","unde","sapiente","voluptate","qui","aspernatur","laudantium","soluta","amet","quo","aliquam","saepe","culpa","libero","ipsa","dicta","reiciendis","nesciunt","doloribus","autem","impedit","minima","maiores","repudiandae","ipsam","obcaecati","ullam","enim","totam","delectus","ducimus","quis","voluptates","dolores","molestiae","harum","dolorem","quia","voluptatem","molestias","magni","distinctio","omnis","illum","dolorum","voluptatum","ea","quas","quam","corporis","quae","blanditiis","atque","deserunt","laboriosam","earum","consequuntur","hic","cupiditate","quibusdam","accusamus","ut","rerum","error","minus","eius","ab","ad","nemo","fugit","officia","at","in","id","quos","reprehenderit","numquam","iste","fugiat","sit","inventore","beatae","repellendus","magnam","recusandae","quod","explicabo","doloremque","aperiam","consequatur","asperiores","commodi","optio","dolor","labore","temporibus","repellat","veniam","architecto","est","esse","mollitia","nulla","a","similique","eos","alias","dolore","tenetur","deleniti","porro","facere","maxime","corrupti"]},ru={common:["далеко-далеко","за","словесными","горами","в стране","гласных","и согласных","живут","рыбные","тексты"],words:["вдали","от всех","они","буквенных","домах","на берегу","семантика","большого","языкового","океана","маленький","ручеек","даль","журчит","по всей","обеспечивает","ее","всеми","необходимыми","правилами","эта","парадигматическая","страна","которой","жаренные","предложения","залетают","прямо","рот","даже","всемогущая","пунктуация","не","имеет","власти","над","рыбными","текстами","ведущими","безорфографичный","образ","жизни","однажды","одна","маленькая","строчка","рыбного","текста","имени","lorem","ipsum","решила","выйти","большой","мир","грамматики","великий","оксмокс","предупреждал","о","злых","запятых","диких","знаках","вопроса","коварных","точках","запятой","но","текст","дал","сбить","себя","толку","он","собрал","семь","своих","заглавных","букв","подпоясал","инициал","за","пояс","пустился","дорогу","взобравшись","первую","вершину","курсивных","гор","бросил","последний","взгляд","назад","силуэт","своего","родного","города","буквоград","заголовок","деревни","алфавит","подзаголовок","своего","переулка","грустный","реторический","вопрос","скатился","его","щеке","продолжил","свой","путь","дороге","встретил","рукопись","она","предупредила","моей","все","переписывается","несколько","раз","единственное","что","меня","осталось","это","приставка","возвращайся","ты","лучше","свою","безопасную","страну","послушавшись","рукописи","наш","продолжил","свой","путь","вскоре","ему","повстречался","коварный","составитель","рекламных","текстов","напоивший","языком","речью","заманивший","свое","агентство","которое","использовало","снова","снова","своих","проектах","если","переписали","то","живет","там","до","сих","пор"]},sp={common:["mujer","uno","dolor","más","de","poder","mismo","si"],words:["ejercicio","preferencia","perspicacia","laboral","paño","suntuoso","molde","namibia","planeador","mirar","demás","oficinista","excepción","odio","consecuencia","casi","auto","chicharra","velo","elixir","ataque","no","odio","temporal","cuórum","dignísimo","facilismo","letra","nihilista","expedición","alma","alveolar","aparte","león","animal","como","paria","belleza","modo","natividad","justo","ataque","séquito","pillo","sed","ex","y","voluminoso","temporalidad","verdades","racional","asunción","incidente","marejada","placenta","amanecer","fuga","previsor","presentación","lejos","necesariamente","sospechoso","adiposidad","quindío","pócima","voluble","débito","sintió","accesorio","falda","sapiencia","volutas","queso","permacultura","laudo","soluciones","entero","pan","litro","tonelada","culpa","libertario","mosca","dictado","reincidente","nascimiento","dolor","escolar","impedimento","mínima","mayores","repugnante","dulce","obcecado","montaña","enigma","total","deletéreo","décima","cábala","fotografía","dolores","molesto","olvido","paciencia","resiliencia","voluntad","molestias","magnífico","distinción","ovni","marejada","cerro","torre","y","abogada","manantial","corporal","agua","crepúsculo","ataque","desierto","laboriosamente","angustia","afortunado","alma","encefalograma","materialidad","cosas","o","renuncia","error","menos","conejo","abadía","analfabeto","remo","fugacidad","oficio","en","almácigo","vos","pan","represión","números","triste","refugiado","trote","inventor","corchea","repelente","magma","recusado","patrón","explícito","paloma","síndrome","inmune","autoinmune","comodidad","ley","vietnamita","demonio","tasmania","repeler","apéndice","arquitecto","columna","yugo","computador","mula","a","propósito","fantasía","alias","rayo","tenedor","deleznable","ventana","cara","anemia","corrupto"]};const vocabularies={ru,sp,latin},reLorem=/^lorem([a-z]*)(\d*)(-\d*)?$/i;function lorem(o,e,t){let r;if(o.name&&(r=o.name.match(reLorem))){const s=vocabularies[r[1]]||vocabularies.latin,a=r[2]?Math.max(1,Number(r[2])):30,l=r[3]?Math.max(a,Number(r[3].slice(1))):a,c=rand(a,l),d=o.repeat||findRepeater(e);o.name=o.attributes=void 0,o.value=[paragraph$1(s,c,!d||d.value===0)],o.repeat&&e.length>1&&resolveImplicitTag(o,e,t)}}function rand(o,e){return Math.floor(Math.random()*(e-o)+o)}function sample(o,e){const t=o.length,r=Math.min(t,e),s=[];for(;s.length<r;){const a=o[rand(0,t)];s.includes(a)||s.push(a)}return s}function choice(o){return o[rand(0,o.length-1)]}function sentence(o,e){return o.length&&(o=[capitalize(o[0])].concat(o.slice(1))),o.join(" ")+(e||choice("?!..."))}function capitalize(o){return o[0].toUpperCase()+o.slice(1)}function insertCommas(o){if(o.length<2)return o;o=o.slice();const e=o.length,t=/,$/;let r=0;e>3&&e<=6?r=rand(0,1):e>6&&e<=12?r=rand(0,2):r=rand(1,4);for(let s=0,a;s<r;s++)a=rand(0,e-2),t.test(o[a])||(o[a]+=",");return o}function paragraph$1(o,e,t){const r=[];let s=0,a;for(t&&o.common&&(a=o.common.slice(0,e),s+=a.length,r.push(sentence(insertCommas(a),".")));s<e;)a=sample(o.words,Math.min(rand(2,30),e-s)),s+=a.length,r.push(sentence(insertCommas(a)));return r.join(" ")}function findRepeater(o){for(let e=o.length-1;e>=0;e--){const t=o[e];if(t.type==="AbbreviationNode"&&t.repeat)return t.repeat}}function xsl(o){matchesName(o.name)&&o.attributes&&(o.children.length||o.value)&&(o.attributes=o.attributes.filter(isAllowed))}function isAllowed(o){return o.name!=="select"}function matchesName(o){return o==="xsl:variable"||o==="xsl:with-param"}const reElement=/^(-+)([a-z0-9]+[a-z0-9-]*)/i,reModifier=/^(_+)([a-z0-9]+[a-z0-9-_]*)/i,blockCandidates1=o=>/^[a-z]\-/i.test(o),blockCandidates2=o=>/^[a-z]/i.test(o);function bem(o,e,t){expandClassNames(o),expandShortNotation(o,e,t)}function expandClassNames(o){const e=getBEMData(o),t=[];for(const r of e.classNames){const s=r.indexOf("_");s>0&&!r.startsWith("-")?(t.push(r.slice(0,s)),t.push(r.slice(s))):t.push(r)}t.length&&(e.classNames=t.filter(uniqueClass),e.block=findBlockName(e.classNames),updateClass(o,e.classNames.join(" ")))}function expandShortNotation(o,e,t){const r=getBEMData(o),s=[],{options:a}=t,l=e.slice(1).concat(o);for(let d of r.classNames){let u="",g;const f=d;(g=d.match(reElement))&&(u=getBlockName(l,g[1].length,t.context)+a["bem.element"]+g[2],s.push(u),d=d.slice(g[0].length)),(g=d.match(reModifier))&&(u||(u=getBlockName(l,g[1].length),s.push(u)),s.push("".concat(u).concat(a["bem.modifier"]).concat(g[2])),d=d.slice(g[0].length)),d===f&&s.push(f)}const c=s.filter(uniqueClass);c.length&&updateClass(o,c.join(" "))}function getBEMData(o){if(!o._bem){let e="";if(o.attributes){for(const t of o.attributes)if(t.name==="class"&&t.value){e=stringifyValue(t.value);break}}o._bem=parseBEM(e)}return o._bem}function getBEMDataFromContext(o){return o._bem||(o._bem=parseBEM(o.attributes&&o.attributes.class||"")),o._bem}function parseBEM(o){const e=o?o.split(/\s+/):[];return{classNames:e,block:findBlockName(e)}}function getBlockName(o,e=0,t){let s=Math.max(o.length-e,0);do{const a=o[s];if(a){const l=getBEMData(a);if(l.block)return l.block}}while(0<s--);if(t){const a=getBEMDataFromContext(t);if(a.block)return a.block}return""}function findBlockName(o){return find$2(o,blockCandidates1)||find$2(o,blockCandidates2)||void 0}function find$2(o,e){for(const t of o){if(reElement.test(t)||reModifier.test(t))break;if(e(t))return t}}function updateClass(o,e){for(const t of o.attributes)if(t.name==="class"){t.value=[e];break}}function stringifyValue(o){let e="";for(const t of o)e+=typeof t=="string"?t:t.name;return e}function uniqueClass(o,e,t){return!!o&&t.indexOf(o)===e}function label(o){if(o.name==="label"){const e=find$1$1(o,t=>t.name==="input"||t.name==="textarea");e&&(o.attributes&&(o.attributes=o.attributes.filter(t=>!(t.name==="for"&&isEmptyAttribute(t)))),e.attributes&&(e.attributes=e.attributes.filter(t=>!(t.name==="id"&&isEmptyAttribute(t)))))}}function isEmptyAttribute(o){if(!o.value)return!0;if(o.value.length===1){const e=o.value[0];if(e&&typeof e!="string"&&!e.name)return!0}return!1}function walk$2(o,e,t){const r=(a,l,c)=>{const{parent:d,current:u}=t;t.parent=u,t.current=a,e(a,l,c,t,s),t.current=u,t.parent=d},s=(a,l,c)=>{t.ancestors.push(t.current),r(a,l,c),t.ancestors.pop()};o.children.forEach(r)}function createWalkState(o){return{current:null,parent:void 0,ancestors:[],config:o,field:1,out:createOutputStream(o.options)}}const caret$1=[{type:"Field",index:0,name:""}];function isSnippet(o){return o?!o.name&&!o.attributes:!1}function isInlineElement(o,e){return o?isInline(o,e):!1}function isField(o){return typeof o=="object"&&o.type==="Field"}function pushTokens(o,e){const{out:t}=e;let r=-1;for(const s of o)typeof s=="string"?pushString(t,s):(pushField(t,e.field+s.index,s.name),s.index>r&&(r=s.index));r!==-1&&(e.field+=r+1)}function splitByLines(o){const e=[];let t=[];for(const r of o)if(typeof r=="string"){const s=r.split(/\r\n?|\n/g);for(t.push(s.shift()||"");s.length;)e.push(t),t=[s.shift()||""]}else t.push(r);return t.length&&e.push(t),e}function shouldOutputAttribute(o){return!o.implied||o.valueType!=="raw"||!!o.value&&o.value.length>0}var TemplateChars;(function(o){o[o.Start=91]="Start",o[o.End=93]="End",o[o.Underscore=95]="Underscore",o[o.Dash=45]="Dash"})(TemplateChars||(TemplateChars={}));function template$1(o){const e=[],t={pos:0,text:o};let r,s=t.pos,a=t.pos;for(;t.pos<t.text.length;)a=t.pos,(r=consumePlaceholder(t))?(s!==t.pos&&e.push(o.slice(s,a)),e.push(r),s=t.pos):t.pos++;return s!==t.pos&&e.push(o.slice(s)),e}function consumePlaceholder(o){if(peek$1(o)===TemplateChars.Start){const e=++o.pos;let t=e,r=e,s=1;for(;o.pos<o.text.length;){const a=peek$1(o);if(isTokenStart(a)){for(t=o.pos;isToken(peek$1(o));)o.pos++;r=o.pos}else{if(a===TemplateChars.Start)s++;else if(a===TemplateChars.End&&--s===0)return{before:o.text.slice(e,t),after:o.text.slice(r,o.pos++),name:o.text.slice(t,r)};o.pos++}}}}function peek$1(o,e=o.pos){return o.text.charCodeAt(e)}function isTokenStart(o){return o>=65&&o<=90}function isToken(o){return isTokenStart(o)||o>47&&o<58||o===TemplateChars.Underscore||o===TemplateChars.Dash}function createCommentState(o){const{options:e}=o;return{enabled:e["comment.enabled"],trigger:e["comment.trigger"],before:e["comment.before"]?template$1(e["comment.before"]):void 0,after:e["comment.after"]?template$1(e["comment.after"]):void 0}}function commentNodeBefore(o,e){shouldComment(o,e)&&e.comment.before&&output(o,e.comment.before,e)}function commentNodeAfter(o,e){shouldComment(o,e)&&e.comment.after&&output(o,e.comment.after,e)}function shouldComment(o,e){const{comment:t}=e;if(!t.enabled||!t.trigger||!o.name||!o.attributes)return!1;for(const r of o.attributes)if(r.name&&t.trigger.includes(r.name))return!0;return!1}function output(o,e,t){const r={},{out:s}=t;for(const a of o.attributes)a.name&&a.value&&(r[a.name.toUpperCase()]=a.value);for(const a of e)typeof a=="string"?pushString(s,a):r[a.name]&&(pushString(s,a.before),pushTokens(r[a.name],t),pushString(s,a.after))}const htmlTagRegex=/^<([\w\-:]+)[\s>]/,reservedKeywords=new Set(["for","while","of","async","await","const","let","var","continue","break","debugger","do","export","import","in","instanceof","new","return","switch","this","throw","try","catch","typeof","void","with","yield"]);function html$3(o,e){const t=createWalkState(e);return t.comment=createCommentState(e),walk$2(o,element$1,t),t.out.value}function element$1(o,e,t,r,s){const{out:a,config:l}=r,c=shouldFormat$1(o,e,t,r),d=getIndent(r);if(a.level+=d,c&&pushNewline(a,!0),o.name){const u=tagName(o.name,l);if(commentNodeBefore(o,r),pushString(a,"<".concat(u)),o.attributes)for(const g of o.attributes)shouldOutputAttribute(g)&&pushAttribute(g,r);if(o.selfClosing&&!o.children.length&&!o.value)pushString(a,"".concat(selfClose(l),">"));else{if(pushString(a,">"),!pushSnippet(o,r,s)){if(o.value){const g=o.value.some(hasNewline)||startsWithBlockTag(o.value,l);g&&pushNewline(r.out,++a.level),pushTokens(o.value,r),g&&pushNewline(r.out,--a.level)}if(o.children.forEach(s),!o.value&&!o.children.length){const g=l.options["output.formatLeafNode"]||l.options["output.formatForce"].includes(o.name);g&&pushNewline(r.out,++a.level),pushTokens(caret$1,r),g&&pushNewline(r.out,--a.level)}}pushString(a,"</".concat(u,">")),commentNodeAfter(o,r)}}else!pushSnippet(o,r,s)&&o.value&&(pushTokens(o.value,r),o.children.forEach(s));if(c&&e===t.length-1&&r.parent){const u=isSnippet(r.parent)?0:1;pushNewline(a,a.level-u)}a.level-=d}function pushAttribute(o,e){const{out:t,config:r}=e;if(o.name){const s=r.options["markup.attributes"],a=r.options["markup.valuePrefix"];let{name:l,value:c}=o,d=attrQuote(o,r,!0),u=attrQuote(o,r);s&&(l=getMultiValue(l,s,o.multiple)||l),l=attrName(l,r),r.options["jsx.enabled"]&&o.multiple&&(d=expressionStart,u=expressionEnd);const g=a?getMultiValue(o.name,a,o.multiple):null;if(g&&(c==null?void 0:c.length)===1&&typeof c[0]=="string"){const f=c[0];c=[isPropKey(f)?"".concat(g,".").concat(f):"".concat(g,"['").concat(f,"']")],r.options["jsx.enabled"]&&(d=expressionStart,u=expressionEnd)}isBooleanAttribute(o,r)&&!c?r.options["output.compactBoolean"]||(c=[l]):c||(c=caret$1),pushString(t," "+l),c?(pushString(t,"="+d),pushTokens(c,e),pushString(t,u)):r.options["output.selfClosingStyle"]!=="html"&&pushString(t,"="+d+u)}}function pushSnippet(o,e,t){if(o.value&&o.children.length){const r=o.value.findIndex(isField);if(r!==-1){pushTokens(o.value.slice(0,r),e);const s=e.out.line;let a=r+1;return o.children.forEach(t),e.out.line!==s&&typeof o.value[a]=="string"&&pushString(e.out,o.value[a++].trimLeft()),pushTokens(o.value.slice(a),e),!0}}return!1}function shouldFormat$1(o,e,t,r){const{config:s,parent:a}=r;if(!s.options["output.format"]||e===0&&!a||a&&isSnippet(a)&&t.length===1)return!1;if(isSnippet(o)&&(isSnippet(t[e-1])||isSnippet(t[e+1])||o.value.some(hasNewline)||o.value.some(isField)&&o.children.length))return!0;if(isInline(o,s)){if(e===0){for(let l=0;l<t.length;l++)if(!isInline(t[l],s))return!0}else if(!isInline(t[e-1],s))return!0;if(s.options["output.inlineBreak"]){let l=1,c=e,d=e;for(;isInlineElement(t[--c],s);)l++;for(;isInlineElement(t[++d],s);)l++;if(l>=s.options["output.inlineBreak"])return!0}for(let l=0,c=o.children.length;l<c;l++)if(shouldFormat$1(o.children[l],l,o.children,r))return!0;return!1}return!0}function getIndent(o){const{config:e,parent:t}=o;return!t||isSnippet(t)||t.name&&e.options["output.formatSkip"].includes(t.name)?0:1}function hasNewline(o){return typeof o=="string"&&/\r|\n/.test(o)}function startsWithBlockTag(o,e){if(o.length&&typeof o[0]=="string"){const t=htmlTagRegex.exec(o[0]);if(t!=null&&t.length&&!e.options.inlineElements.includes(t[1].toLowerCase()))return!0}return!1}function getMultiValue(o,e,t){return t&&e["".concat(o,"*")]||e[o]}function isPropKey(o){return!reservedKeywords.has(o)&&/^[a-zA-Z_$][\w_$]*$/.test(o)}function indentFormat(o,e,t){const r=createWalkState(e);return r.options=t||{},walk$2(o,element,r),r.out.value}function element(o,e,t,r,s){const{out:a,options:l}=r,{primary:c,secondary:d}=collectAttributes(o),u=r.parent?1:0;a.level+=u,shouldFormat(o,e,t,r)&&pushNewline(a,!0),o.name&&(o.name!=="div"||!c.length)&&pushString(a,(l.beforeName||"")+o.name+(l.afterName||"")),pushPrimaryAttributes(c,r),pushSecondaryAttributes(d.filter(shouldOutputAttribute),r),o.selfClosing&&!o.value&&!o.children.length?r.options.selfClose&&pushString(a,r.options.selfClose):(pushValue(o,r),o.children.forEach(s)),a.level-=u}function collectAttributes(o){const e=[],t=[];if(o.attributes)for(const r of o.attributes)isPrimaryAttribute(r)?e.push(r):t.push(r);return{primary:e,secondary:t}}function pushPrimaryAttributes(o,e){for(const t of o)if(t.value)if(t.name==="class"){pushString(e.out,".");const r=t.value.map(s=>typeof s=="string"?s.replace(/\s+/g,"."):s);pushTokens(r,e)}else pushString(e.out,"#"),pushTokens(t.value,e)}function pushSecondaryAttributes(o,e){if(o.length){const{out:t,config:r,options:s}=e;s.beforeAttribute&&pushString(t,s.beforeAttribute);for(let a=0;a<o.length;a++){const l=o[a];pushString(t,attrName(l.name||"",r)),isBooleanAttribute(l,r)&&!l.value?!r.options["output.compactBoolean"]&&s.booleanValue&&pushString(t,"="+s.booleanValue):(pushString(t,"="+attrQuote(l,r,!0)),pushTokens(l.value||caret$1,e),pushString(t,attrQuote(l,r))),a!==o.length-1&&s.glueAttribute&&pushString(t,s.glueAttribute)}s.afterAttribute&&pushString(t,s.afterAttribute)}}function pushValue(o,e){if(!o.value&&o.children.length)return;const t=o.value||caret$1,r=splitByLines(t),{out:s,options:a}=e;if(r.length===1)(o.name||o.attributes)&&push(s," "),pushTokens(t,e);else{const l=[];let c=0;for(const d of r){const u=valueLength(d);l.push(u),u>c&&(c=u)}s.level++;for(let d=0;d<r.length;d++)pushNewline(s,!0),a.beforeTextLine&&push(s,a.beforeTextLine),pushTokens(r[d],e),a.afterTextLine&&(push(s," ".repeat(c-l[d])),push(s,a.afterTextLine));s.level--}}function isPrimaryAttribute(o){return o.name==="class"||o.name==="id"}function valueLength(o){let e=0;for(const t of o)e+=typeof t=="string"?t.length:t.name.length;return e}function shouldFormat(o,e,t,r){return!r.parent&&e===0?!1:!isSnippet(o)}function haml(o,e){return indentFormat(o,e,{beforeName:"%",beforeAttribute:"(",afterAttribute:")",glueAttribute:" ",afterTextLine:" |",booleanValue:"true",selfClose:"/"})}function slim(o,e){return indentFormat(o,e,{beforeAttribute:" ",glueAttribute:" ",beforeTextLine:"| ",selfClose:"/"})}function pug(o,e){return indentFormat(o,e,{beforeAttribute:"(",afterAttribute:")",glueAttribute:", ",beforeTextLine:"| ",selfClose:e.options["output.selfClosingStyle"]==="xml"?"/":""})}const formatters={html:html$3,haml,slim,pug};function parse$1$1(o,e){let t;if(typeof o=="string"){const r=Object.assign({},e);e.options["jsx.enabled"]&&(r.jsx=!0),e.options["markup.href"]&&(r.href=!0),o=parseAbbreviation(o,r),t=e.text,e.text=void 0}return o=resolveSnippets(o,e),walk$1(o,transform$1,e),e.text=t!=null?t:e.text,o}function stringify$2(o,e){return(formatters[e.syntax]||html$3)(o,e)}function transform$1(o,e,t){implicitTag(o,e,t),mergeAttributes(o,t),lorem(o,e,t),t.syntax==="xsl"&&xsl(o),t.type==="markup"&&label(o),t.options["bem.enabled"]&&bem(o,e,t)}var CSSSnippetType;(function(o){o.Raw="Raw",o.Property="Property"})(CSSSnippetType||(CSSSnippetType={}));const reProperty=/^([a-z-]+)(?:\s*:\s*([^\n\r;]+?);*)?$/,opt={value:!0};function createSnippet(o,e){const t=e.match(reProperty);if(t){const r={},s=t[2]?t[2].split("|").map(parseValue):[];for(const a of s)for(const l of a)collectKeywords(l,r);return{type:CSSSnippetType.Property,key:o,property:t[1],value:s,keywords:r,dependencies:[]}}return{type:CSSSnippetType.Raw,key:o,value:e}}function nest(o){o=o.slice().sort(snippetsSort);const e=[];let t;for(const r of o.filter(isProperty)){for(;e.length;){if(t=e[e.length-1],r.property.startsWith(t.property)&&r.property.charCodeAt(t.property.length)===45){t.dependencies.push(r),e.push(r);break}e.pop()}e.length||e.push(r)}return o}function snippetsSort(o,e){return o.key===e.key?0:o.key<e.key?-1:1}function parseValue(o){return parse$2$1(o.trim(),opt)[0].value}function isProperty(o){return o.type===CSSSnippetType.Property}function collectKeywords(o,e){for(const t of o.value)if(t.type==="Literal")e[t.value]=t;else if(t.type==="FunctionCall")e[t.name]=t;else if(t.type==="Field"){const r=t.name.trim();r&&(e[r]={type:"Literal",value:r})}}function scoreMatch(o,e,t=!1){if(o=o.toLowerCase(),e=e.toLowerCase(),o===e)return 1;if(!o||!e||o.charCodeAt(0)!==e.charCodeAt(0))return 0;const r=o.length,s=e.length;if(!t&&r>s)return 0;const a=Math.min(r,s),l=Math.max(r,s);let c=1,d=1,u=l,g=0,f=0,m=!1,_=!1;for(;c<r;){for(g=o.charCodeAt(c),m=!1,_=!1;d<s;){if(f=e.charCodeAt(d),g===f){m=!0,u+=l-(_?c:d);break}_=f===45,d++}if(!m){if(!t)return 0;break}c++}const v=c/l,b=l-a,C=sum$2(l)-sum$2(b);return u*v/C}function sum$2(o){return o*(o+1)/2}function color(o,e){return!o.r&&!o.g&&!o.b&&!o.a?"transparent":o.a===1?asHex(o,e):asRGB(o)}function asHex(o,e){const t=e&&isShortHex(o.r)&&isShortHex(o.g)&&isShortHex(o.b)?toShortHex:toHex;return"#"+t(o.r)+t(o.g)+t(o.b)}function asRGB(o){const e=[o.r,o.g,o.b];return o.a!==1&&e.push(frac(o.a,8)),"".concat(e.length===3?"rgb":"rgba","(").concat(e.join(", "),")")}function frac(o,e=4){return o.toFixed(e).replace(/\.?0+$/,"")}function isShortHex(o){return!(o%17)}function toShortHex(o){return(o>>4).toString(16)}function toHex(o){return pad(o.toString(16),2)}function pad(o,e){for(;o.length<e;)o="0"+o;return o}const CSSAbbreviationScope={Section:"@@section",Property:"@@property",Value:"@@value"};function css$1(o,e){var t;const r=createOutputStream(e.options),s=e.options["output.format"];((t=e.context)===null||t===void 0?void 0:t.name)===CSSAbbreviationScope.Section&&(o=o.filter(a=>a.snippet));for(let a=0;a<o.length;a++)s&&a!==0&&pushNewline(r,!0),property(o[a],r,e);return r.value}function property(o,e,t){const r=t.options["stylesheet.json"];if(o.name){const s=r?toCamelCase(o.name):o.name;pushString(e,s+t.options["stylesheet.between"]),o.value.length?propertyValue(o,e,t):pushField(e,0,""),r?push(e,","):(outputImportant(o,e,!0),push(e,t.options["stylesheet.after"]))}else{for(const s of o.value)for(const a of s.value)outputToken(a,e,t);outputImportant(o,e,o.value.length>0)}}function propertyValue(o,e,t){const r=t.options["stylesheet.json"],s=r?getSingleNumeric(o):null;if(s&&(!s.unit||s.unit==="px"))push(e,String(s.value));else{const a=getQuote(t);r&&push(e,a);for(let l=0;l<o.value.length;l++)l!==0&&push(e,", "),outputValue(o.value[l],e,t);r&&push(e,a)}}function outputImportant(o,e,t){o.important&&(t&&push(e," "),push(e,"!important"))}function outputValue(o,e,t){for(let r=0,s=-1;r<o.value.length;r++){const a=o.value[r];r!==0&&(a.type!=="Field"||a.start!==s)&&push(e," "),outputToken(a,e,t),s=a.end}}function outputToken(o,e,t){if(o.type==="ColorValue")push(e,color(o,t.options["stylesheet.shortHex"]));else if(o.type==="Literal"||o.type==="CustomProperty")pushString(e,o.value);else if(o.type==="NumberValue")pushString(e,frac(o.value,4)+o.unit);else if(o.type==="StringValue"){const r=o.quote==="double"?'"':"'";pushString(e,r+o.value+r)}else if(o.type==="Field")pushField(e,o.index,o.name);else if(o.type==="FunctionCall"){push(e,o.name+"(");for(let r=0;r<o.arguments.length;r++)r&&push(e,", "),outputValue(o.arguments[r],e,t);push(e,")")}}function getSingleNumeric(o){if(o.value.length===1){const e=o.value[0];if(e.value.length===1&&e.value[0].type==="NumberValue")return e.value[0]}}function toCamelCase(o){return o.replace(/\-(\w)/g,(e,t)=>t.toUpperCase())}function getQuote(o){return o.options["stylesheet.jsonDoubleQuotes"]?'"':"'"}const gradientName="lg";function parse$4(o,e){var t;const r=((t=e.cache)===null||t===void 0?void 0:t.stylesheetSnippets)||convertSnippets(e.snippets),s=[];e.cache&&(e.cache.stylesheetSnippets=r),typeof o=="string"&&(o=parse$2$1(o,{value:isValueScope(e)}));const a=getSnippetsForScope(r,e);for(const l of o){const c=resolveNode(l,a,e);c&&s.push(c)}return s}function convertSnippets(o){const e=[];for(const t of Object.keys(o))e.push(createSnippet(t,o[t]));return nest(e)}function resolveNode(o,e,t){if(!resolveGradient(o,t)){const r=t.options["stylesheet.fuzzySearchMinScore"];if(isValueScope(t)){const s=t.context.name,a=e.find(l=>l.type===CSSSnippetType.Property&&l.property===s);resolveValueKeywords(o,t,a,r),o.snippet=a}else if(o.name){const s=findBestMatch(o.name,e,r,!0);if(o.snippet=s,s){const a=s.type===CSSSnippetType.Property?resolveAsProperty(o,s,t):resolveAsSnippet(o,s);if(a)o=a;else if(t.options["stylesheet.strictMatch"])return null}}}return(o.name||t.context)&&resolveNumericValue(o,t),o}function resolveGradient(o,e){let t=null;const r=o.value.length===1?o.value[0]:null;if(r&&r.value.length===1){const s=r.value[0];s.type==="FunctionCall"&&s.name===gradientName&&(t=s)}return t||o.name===gradientName?(t?t=Object.assign(Object.assign({},t),{name:"linear-gradient"}):t={type:"FunctionCall",name:"linear-gradient",arguments:[cssValue(field(0,""))]},e.context||(o.name="background-image"),o.value=[cssValue(t)],!0):!1}function resolveAsProperty(o,e,t){const r=o.name,s=getUnmatchedPart(r,e.key);if(s){if(o.value.length)return null;const a=resolveKeyword(s,t,e);if(!a)return null;o.value.push(cssValue(a))}if(o.name=e.property,o.value.length)resolveValueKeywords(o,t,e);else if(e.value.length){const a=e.value[0];o.value=e.value.length===1||a.some(hasField)?a:a.map(l=>wrapWithField(l,t))}return o}function resolveValueKeywords(o,e,t,r){for(const s of o.value){const a=[];for(const l of s.value)if(l.type==="Literal")a.push(resolveKeyword(l.value,e,t,r)||l);else if(l.type==="FunctionCall"){const c=resolveKeyword(l.name,e,t,r);c&&c.type==="FunctionCall"?a.push(Object.assign(Object.assign({},c),{arguments:l.arguments.concat(c.arguments.slice(l.arguments.length))})):a.push(l)}else a.push(l);s.value=a}}function resolveAsSnippet(o,e){let t=0,r;const s=/\$\{(\d+)(:[^}]+)?\}/g,a=o.value[0],l=[];for(;r=s.exec(e.value);)t!==r.index&&l.push(literal(e.value.slice(t,r.index))),t=r.index+r[0].length,a&&a.value.length?l.push(a.value.shift()):l.push(field(Number(r[1]),r[2]?r[2].slice(1):""));const c=e.value.slice(t);return c&&l.push(literal(c)),o.name=void 0,o.value=[cssValue(...l)],o}function findBestMatch(o,e,t=0,r=!1){let s=null,a=0;for(const l of e){const c=scoreMatch(o,getScoringPart(l),r);if(c===1)return l;c&&c>=a&&(a=c,s=l)}return a>=t?s:null}function getScoringPart(o){return typeof o=="string"?o:o.key}function getUnmatchedPart(o,e){for(let t=0,r=0;t<o.length;t++){if(r=e.indexOf(o[t],r),r===-1)return o.slice(t);r++}return""}function resolveKeyword(o,e,t,r){let s;if(t){if(s=findBestMatch(o,Object.keys(t.keywords),r))return t.keywords[s];for(const a of t.dependencies)if(s=findBestMatch(o,Object.keys(a.keywords),r))return a.keywords[s]}return(s=findBestMatch(o,e.options["stylesheet.keywords"],r))?literal(s):null}function resolveNumericValue(o,e){const t=e.options["stylesheet.unitAliases"],r=e.options["stylesheet.unitless"];for(const s of o.value)for(const a of s.value)a.type==="NumberValue"&&(a.unit?a.unit=t[a.unit]||a.unit:a.value!==0&&!r.includes(o.name)&&(a.unit=a.rawValue.includes(".")?e.options["stylesheet.floatUnit"]:e.options["stylesheet.intUnit"]))}function cssValue(...o){return{type:"CSSValue",value:o}}function literal(o){return{type:"Literal",value:o}}function field(o,e){return{type:"Field",index:o,name:e}}function hasField(o){for(const e of o.value)if(e.type==="Field"||e.type==="FunctionCall"&&e.arguments.some(hasField))return!0;return!1}function wrapWithField(o,e,t={index:1}){let r=[];for(const s of o.value)switch(s.type){case"ColorValue":r.push(field(t.index++,color(s,e.options["stylesheet.shortHex"])));break;case"Literal":r.push(field(t.index++,s.value));break;case"NumberValue":r.push(field(t.index++,"".concat(s.value).concat(s.unit)));break;case"StringValue":const a=s.quote==="single"?"'":'"';r.push(field(t.index++,a+s.value+a));break;case"FunctionCall":r.push(field(t.index++,s.name),literal("("));for(let l=0,c=s.arguments.length;l<c;l++)r=r.concat(wrapWithField(s.arguments[l],e,t).value),l!==c-1&&r.push(literal(", "));r.push(literal(")"));break;default:r.push(s)}return Object.assign(Object.assign({},o),{value:r})}function isValueScope(o){return o.context?o.context.name===CSSAbbreviationScope.Value||!o.context.name.startsWith("@@"):!1}function getSnippetsForScope(o,e){if(e.context){if(e.context.name===CSSAbbreviationScope.Section)return o.filter(t=>t.type===CSSSnippetType.Raw);if(e.context.name===CSSAbbreviationScope.Property)return o.filter(t=>t.type===CSSSnippetType.Property)}return o}var markupSnippets={a:"a[href]","a:blank":"a[href='http://${0}' target='_blank' rel='noopener noreferrer']","a:link":"a[href='http://${0}']","a:mail":"a[href='mailto:${0}']","a:tel":"a[href='tel:+${0}']",abbr:"abbr[title]","acr|acronym":"acronym[title]",base:"base[href]/",basefont:"basefont/",br:"br/",frame:"frame/",hr:"hr/",bdo:"bdo[dir]","bdo:r":"bdo[dir=rtl]","bdo:l":"bdo[dir=ltr]",col:"col/",link:"link[rel=stylesheet href]/","link:css":"link[href='${1:style}.css']","link:print":"link[href='${1:print}.css' media=print]","link:favicon":"link[rel='shortcut icon' type=image/x-icon href='${1:favicon.ico}']","link:mf|link:manifest":"link[rel='manifest' href='${1:manifest.json}']","link:touch":"link[rel=apple-touch-icon href='${1:favicon.png}']","link:rss":"link[rel=alternate type=application/rss+xml title=RSS href='${1:rss.xml}']","link:atom":"link[rel=alternate type=application/atom+xml title=Atom href='${1:atom.xml}']","link:im|link:import":"link[rel=import href='${1:component}.html']",meta:"meta/","meta:utf":"meta[http-equiv=Content-Type content='text/html;charset=UTF-8']","meta:vp":"meta[name=viewport content='width=${1:device-width}, initial-scale=${2:1.0}']","meta:compat":"meta[http-equiv=X-UA-Compatible content='${1:IE=7}']","meta:edge":"meta:compat[content='${1:ie=edge}']","meta:redirect":"meta[http-equiv=refresh content='0; url=${1:http://example.com}']","meta:refresh":"meta[http-equiv=refresh content='${1:5}']","meta:kw":"meta[name=keywords content]","meta:desc":"meta[name=description content]",style:"style",script:"script","script:src":"script[src]","script:module":"script[type=module src]",img:"img[src alt]/","img:s|img:srcset":"img[srcset src alt]","img:z|img:sizes":"img[sizes srcset src alt]",picture:"picture","src|source":"source/","src:sc|source:src":"source[src type]","src:s|source:srcset":"source[srcset]","src:t|source:type":"source[srcset type='${1:image/}']","src:z|source:sizes":"source[sizes srcset]","src:m|source:media":"source[media='(${1:min-width: })' srcset]","src:mt|source:media:type":"source:media[type='${2:image/}']","src:mz|source:media:sizes":"source:media[sizes srcset]","src:zt|source:sizes:type":"source[sizes srcset type='${1:image/}']",iframe:"iframe[src frameborder=0]",embed:"embed[src type]/",object:"object[data type]",param:"param[name value]/",map:"map[name]",area:"area[shape coords href alt]/","area:d":"area[shape=default]","area:c":"area[shape=circle]","area:r":"area[shape=rect]","area:p":"area[shape=poly]",form:"form[action]","form:get":"form[method=get]","form:post":"form[method=post]",label:"label[for]",input:"input[type=${1:text}]/",inp:"input[name=${1} id=${1}]","input:h|input:hidden":"input[type=hidden name]","input:t|input:text":"inp[type=text]","input:search":"inp[type=search]","input:email":"inp[type=email]","input:url":"inp[type=url]","input:p|input:password":"inp[type=password]","input:datetime":"inp[type=datetime]","input:date":"inp[type=date]","input:datetime-local":"inp[type=datetime-local]","input:month":"inp[type=month]","input:week":"inp[type=week]","input:time":"inp[type=time]","input:tel":"inp[type=tel]","input:number":"inp[type=number]","input:color":"inp[type=color]","input:c|input:checkbox":"inp[type=checkbox]","input:r|input:radio":"inp[type=radio]","input:range":"inp[type=range]","input:f|input:file":"inp[type=file]","input:s|input:submit":"input[type=submit value]","input:i|input:image":"input[type=image src alt]","input:b|input:btn|input:button":"input[type=button value]","input:reset":"input:button[type=reset]",isindex:"isindex/",select:"select[name=${1} id=${1}]","select:d|select:disabled":"select[disabled.]","opt|option":"option[value]",textarea:"textarea[name=${1} id=${1}]","tarea:c|textarea:cols":"textarea[name=${1} id=${1} cols=${2:30}]","tarea:r|textarea:rows":"textarea[name=${1} id=${1} rows=${3:10}]","tarea:cr|textarea:cols:rows":"textarea[name=${1} id=${1} cols=${2:30} rows=${3:10}]",marquee:"marquee[behavior direction]","menu:c|menu:context":"menu[type=context]","menu:t|menu:toolbar":"menu[type=toolbar]",video:"video[src]",audio:"audio[src]","html:xml":"html[xmlns=http://www.w3.org/1999/xhtml]",keygen:"keygen/",command:"command/","btn:s|button:s|button:submit":"button[type=submit]","btn:r|button:r|button:reset":"button[type=reset]","btn:b|button:b|button:button":"button[type=button]","btn:d|button:d|button:disabled":"button[disabled.]","fst:d|fset:d|fieldset:d|fieldset:disabled":"fieldset[disabled.]",bq:"blockquote",fig:"figure",figc:"figcaption",pic:"picture",ifr:"iframe",emb:"embed",obj:"object",cap:"caption",colg:"colgroup",fst:"fieldset",btn:"button",optg:"optgroup",tarea:"textarea",leg:"legend",sect:"section",art:"article",hdr:"header",ftr:"footer",adr:"address",dlg:"dialog",str:"strong",prog:"progress",mn:"main",tem:"template",fset:"fieldset",datal:"datalist",kg:"keygen",out:"output",det:"details",sum:"summary",cmd:"command",data:"data[value]",meter:"meter[value]",time:"time[datetime]","ri:d|ri:dpr":"img:s","ri:v|ri:viewport":"img:z","ri:a|ri:art":"pic>src:m+img","ri:t|ri:type":"pic>src:t+img","!!!":"{<!DOCTYPE html>}",doc:"html[lang=${lang}]>(head>meta[charset=${charset}]+meta:vp+title{${1:Document}})+body","!|html:5":"!!!+doc",c:"{<!-- ${0} -->}","cc:ie":"{<!--[if IE]>${0}<![endif]-->}","cc:noie":"{<!--[if !IE]><!-->${0}<!--<![endif]-->}"},stylesheetSnippets={"@f":"@font-face {\n font-family: ${1};\n src: url(${2});\n}","@ff":"@font-face {\n font-family: '${1:FontName}';\n src: url('${2:FileName}.eot');\n src: url('${2:FileName}.eot?#iefix') format('embedded-opentype'),\n url('${2:FileName}.woff') format('woff'),\n url('${2:FileName}.ttf') format('truetype'),\n url('${2:FileName}.svg#${1:FontName}') format('svg');\n font-style: ${3:normal};\n font-weight: ${4:normal};\n}","@i|@import":"@import url(${0});","@kf":"@keyframes ${1:identifier} {\n ${2}\n}","@m|@media":"@media ${1:screen} {\n ${0}\n}",ac:"align-content:start|end|flex-start|flex-end|center|space-between|space-around|stretch|space-evenly",ai:"align-items:start|end|flex-start|flex-end|center|baseline|stretch",anim:"animation:${1:name} ${2:duration} ${3:timing-function} ${4:delay} ${5:iteration-count} ${6:direction} ${7:fill-mode}",animdel:"animation-delay:time",animdir:"animation-direction:normal|reverse|alternate|alternate-reverse",animdur:"animation-duration:${1:0}s",animfm:"animation-fill-mode:both|forwards|backwards",animic:"animation-iteration-count:1|infinite",animn:"animation-name",animps:"animation-play-state:running|paused",animtf:"animation-timing-function:linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(${1:0.1}, ${2:0.7}, ${3:1.0}, ${3:0.1})",ap:"appearance:none",as:"align-self:start|end|auto|flex-start|flex-end|center|baseline|stretch",b:"bottom",bd:"border:${1:1px} ${2:solid} ${3:#000}",bdb:"border-bottom:${1:1px} ${2:solid} ${3:#000}",bdbc:"border-bottom-color:${1:#000}",bdbi:"border-bottom-image:url(${0})",bdbk:"border-break:close",bdbli:"border-bottom-left-image:url(${0})|continue",bdblrs:"border-bottom-left-radius",bdbri:"border-bottom-right-image:url(${0})|continue",bdbrrs:"border-bottom-right-radius",bdbs:"border-bottom-style",bdbw:"border-bottom-width",bdc:"border-color:${1:#000}",bdci:"border-corner-image:url(${0})|continue",bdcl:"border-collapse:collapse|separate",bdf:"border-fit:repeat|clip|scale|stretch|overwrite|overflow|space",bdi:"border-image:url(${0})",bdl:"border-left:${1:1px} ${2:solid} ${3:#000}",bdlc:"border-left-color:${1:#000}",bdlen:"border-length",bdli:"border-left-image:url(${0})",bdls:"border-left-style",bdlw:"border-left-width",bdr:"border-right:${1:1px} ${2:solid} ${3:#000}",bdrc:"border-right-color:${1:#000}",bdri:"border-right-image:url(${0})",bdrs:"border-radius",bdrst:"border-right-style",bdrw:"border-right-width",bds:"border-style:none|hidden|dotted|dashed|solid|double|dot-dash|dot-dot-dash|wave|groove|ridge|inset|outset",bdsp:"border-spacing",bdt:"border-top:${1:1px} ${2:solid} ${3:#000}",bdtc:"border-top-color:${1:#000}",bdti:"border-top-image:url(${0})",bdtli:"border-top-left-image:url(${0})|continue",bdtlrs:"border-top-left-radius",bdtri:"border-top-right-image:url(${0})|continue",bdtrrs:"border-top-right-radius",bdts:"border-top-style",bdtw:"border-top-width",bdw:"border-width",bbs:"border-block-start",bbe:"border-block-end",bis:"border-inline-start",bie:"border-inline-end",bfv:"backface-visibility:hidden|visible",bg:"background:${1:#000}","bg:n":"background: none",bga:"background-attachment:fixed|scroll",bgbk:"background-break:bounding-box|each-box|continuous",bgc:"background-color:${1:#fff}",bgcp:"background-clip:padding-box|border-box|content-box|no-clip",bgi:"background-image:url(${0})",bgo:"background-origin:padding-box|border-box|content-box",bgp:"background-position:${1:0} ${2:0}",bgpx:"background-position-x",bgpy:"background-position-y",bgr:"background-repeat:no-repeat|repeat-x|repeat-y|space|round",bgsz:"background-size:contain|cover",bs:"block-size",bxsh:"box-shadow:${1:inset }${2:hoff} ${3:voff} ${4:blur} ${5:#000}|none",bxsz:"box-sizing:border-box|content-box|border-box",c:"color:${1:#000}",cg:"column-gap",cr:"color:rgb(${1:0}, ${2:0}, ${3:0})",cra:"color:rgba(${1:0}, ${2:0}, ${3:0}, ${4:.5})",cl:"clear:both|left|right|none",cm:"/* ${0} */",cnt:"content:'${0}'|normal|open-quote|no-open-quote|close-quote|no-close-quote|attr(${0})|counter(${0})|counters(${0})",coi:"counter-increment",colm:"columns",colmc:"column-count",colmf:"column-fill",colmg:"column-gap",colmr:"column-rule",colmrc:"column-rule-color",colmrs:"column-rule-style",colmrw:"column-rule-width",colms:"column-span",colmw:"column-width",cor:"counter-reset",cp:"clip:auto|rect(${1:top} ${2:right} ${3:bottom} ${4:left})",cps:"caption-side:top|bottom",cur:"cursor:pointer|auto|default|crosshair|hand|help|move|pointer|text",d:"display:block|none|flex|inline-flex|inline|inline-block|grid|inline-grid|subgrid|list-item|run-in|contents|table|inline-table|table-caption|table-column|table-column-group|table-header-group|table-footer-group|table-row|table-row-group|table-cell|ruby|ruby-base|ruby-base-group|ruby-text|ruby-text-group",ec:"empty-cells:show|hide",f:"font:${1:1em} ${2:sans-serif}",fd:"font-display:auto|block|swap|fallback|optional",fef:"font-effect:none|engrave|emboss|outline",fem:"font-emphasize",femp:"font-emphasize-position:before|after",fems:"font-emphasize-style:none|accent|dot|circle|disc",ff:"font-family:serif|sans-serif|cursive|fantasy|monospace",fft:'font-family:"Times New Roman", Times, Baskerville, Georgia, serif',ffa:'font-family:Arial, "Helvetica Neue", Helvetica, sans-serif',ffv:"font-family:Verdana, Geneva, sans-serif",fl:"float:left|right|none",fs:"font-style:italic|normal|oblique",fsm:"font-smoothing:antialiased|subpixel-antialiased|none",fst:"font-stretch:normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",fv:"font-variant:normal|small-caps",fvs:"font-variation-settings:normal|inherit|initial|unset",fw:"font-weight:normal|bold|bolder|lighter",fx:"flex",fxb:"flex-basis:fill|max-content|min-content|fit-content|content",fxd:"flex-direction:row|row-reverse|column|column-reverse",fxf:"flex-flow",fxg:"flex-grow",fxsh:"flex-shrink",fxw:"flex-wrap:nowrap|wrap|wrap-reverse",fsz:"font-size",fsza:"font-size-adjust",g:"gap",gtc:"grid-template-columns:repeat(${0})|minmax()",gtr:"grid-template-rows:repeat(${0})|minmax()",gta:"grid-template-areas",gt:"grid-template",gg:"grid-gap",gcg:"grid-column-gap",grg:"grid-row-gap",gac:"grid-auto-columns:auto|minmax()",gar:"grid-auto-rows:auto|minmax()",gaf:"grid-auto-flow:row|column|dense|inherit|initial|unset",gd:"grid",gc:"grid-column",gcs:"grid-column-start",gce:"grid-column-end",gr:"grid-row",grs:"grid-row-start",gre:"grid-row-end",ga:"grid-area",h:"height",is:"inline-size",jc:"justify-content:start|end|stretch|flex-start|flex-end|center|space-between|space-around|space-evenly",ji:"justify-items:start|end|center|stretch",js:"justify-self:start|end|center|stretch",l:"left",lg:"background-image:linear-gradient(${1})",lh:"line-height",lis:"list-style",lisi:"list-style-image",lisp:"list-style-position:inside|outside",list:"list-style-type:disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman",lts:"letter-spacing:normal",m:"margin",mah:"max-height",mar:"max-resolution",maw:"max-width",mb:"margin-bottom",mih:"min-height",mir:"min-resolution",miw:"min-width",ml:"margin-left",mr:"margin-right",mt:"margin-top",mbs:"margin-block-start",mbe:"margin-block-end",mis:"margin-inline-start",mie:"margin-inline-end",ol:"outline",olc:"outline-color:${1:#000}|invert",olo:"outline-offset",ols:"outline-style:none|dotted|dashed|solid|double|groove|ridge|inset|outset",olw:"outline-width:thin|medium|thick","op|opa":"opacity",ord:"order",ori:"orientation:landscape|portrait",orp:"orphans",ov:"overflow:hidden|visible|hidden|scroll|auto",ovs:"overflow-style:scrollbar|auto|scrollbar|panner|move|marquee",ovx:"overflow-x:hidden|visible|hidden|scroll|auto",ovy:"overflow-y:hidden|visible|hidden|scroll|auto",p:"padding",pb:"padding-bottom",pgba:"page-break-after:auto|always|left|right",pgbb:"page-break-before:auto|always|left|right",pgbi:"page-break-inside:auto|avoid",pl:"padding-left",pos:"position:relative|absolute|relative|fixed|static",pr:"padding-right",pt:"padding-top",pbs:"padding-block-start",pbe:"padding-block-end",pis:"padding-inline-start",pie:"padding-inline-end",spbs:"scroll-padding-block-start",spbe:"scroll-padding-block-end",spis:"scroll-padding-inline-start",spie:"scroll-padding-inline-end",q:"quotes",qen:"quotes:'\\201C' '\\201D' '\\2018' '\\2019'",qru:"quotes:'\\00AB' '\\00BB' '\\201E' '\\201C'",r:"right",rg:"row-gap",rsz:"resize:none|both|horizontal|vertical",t:"top",ta:"text-align:left|center|right|justify",tal:"text-align-last:left|center|right",tbl:"table-layout:fixed",td:"text-decoration:none|underline|overline|line-through",te:"text-emphasis:none|accent|dot|circle|disc|before|after",th:"text-height:auto|font-size|text-size|max-size",ti:"text-indent",tj:"text-justify:auto|inter-word|inter-ideograph|inter-cluster|distribute|kashida|tibetan",to:"text-outline:${1:0} ${2:0} ${3:#000}",tov:"text-overflow:ellipsis|clip",tr:"text-replace",trf:"transform:${1}|skewX(${1:angle})|skewY(${1:angle})|scale(${1:x}, ${2:y})|scaleX(${1:x})|scaleY(${1:y})|scaleZ(${1:z})|scale3d(${1:x}, ${2:y}, ${3:z})|rotate(${1:angle})|rotateX(${1:angle})|rotateY(${1:angle})|rotateZ(${1:angle})|translate(${1:x}, ${2:y})|translateX(${1:x})|translateY(${1:y})|translateZ(${1:z})|translate3d(${1:tx}, ${2:ty}, ${3:tz})",trfo:"transform-origin",trfs:"transform-style:preserve-3d",trs:"transition:${1:prop} ${2:time}",trsde:"transition-delay:${1:time}",trsdu:"transition-duration:${1:time}",trsp:"transition-property:${1:prop}",trstf:"transition-timing-function:${1:fn}",tsh:"text-shadow:${1:hoff} ${2:voff} ${3:blur} ${4:#000}",tt:"text-transform:uppercase|lowercase|capitalize|none",tw:"text-wrap:none|normal|unrestricted|suppress",us:"user-select:none",v:"visibility:hidden|visible|collapse",va:"vertical-align:top|super|text-top|middle|baseline|bottom|text-bottom|sub","w|wid":"width",whs:"white-space:nowrap|pre|pre-wrap|pre-line|normal",whsc:"white-space-collapse:normal|keep-all|loose|break-strict|break-all",wido:"widows",wm:"writing-mode:lr-tb|lr-tb|lr-bt|rl-tb|rl-bt|tb-rl|tb-lr|bt-lr|bt-rl",wob:"word-break:normal|keep-all|break-all",wos:"word-spacing",wow:"word-wrap:none|unrestricted|suppress|break-word|normal",z:"z-index",zom:"zoom:1"},xslSnippets={"tm|tmatch":"xsl:template[match mode]","tn|tname":"xsl:template[name]",call:"xsl:call-template[name]",ap:"xsl:apply-templates[select mode]",api:"xsl:apply-imports",imp:"xsl:import[href]",inc:"xsl:include[href]",ch:"xsl:choose","wh|xsl:when":"xsl:when[test]",ot:"xsl:otherwise",if:"xsl:if[test]",par:"xsl:param[name]",pare:"xsl:param[name select]",var:"xsl:variable[name]",vare:"xsl:variable[name select]",wp:"xsl:with-param[name select]",key:"xsl:key[name match use]",elem:"xsl:element[name]",attr:"xsl:attribute[name]",attrs:"xsl:attribute-set[name]",cp:"xsl:copy[select]",co:"xsl:copy-of[select]",val:"xsl:value-of[select]","for|each":"xsl:for-each[select]",tex:"xsl:text",com:"xsl:comment",msg:"xsl:message[terminate=no]",fall:"xsl:fallback",num:"xsl:number[value]",nam:"namespace-alias[stylesheet-prefix result-prefix]",pres:"xsl:preserve-space[elements]",strip:"xsl:strip-space[elements]",proc:"xsl:processing-instruction[name]",sort:"xsl:sort[select order]",choose:"xsl:choose>xsl:when+xsl:otherwise",xsl:"!!!+xsl:stylesheet[version=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform]>{\n|}","!!!":'{<?xml version="1.0" encoding="UTF-8"?>}'},pugSnippets={"!!!":"{doctype html}"},variables={lang:"en",locale:"en-US",charset:"UTF-8",indentation:" ",newline:"\n"};const defaultSyntaxes={markup:"html",stylesheet:"css"},defaultOptions$1$1={inlineElements:["a","abbr","acronym","applet","b","basefont","bdo","big","br","button","cite","code","del","dfn","em","font","i","iframe","img","input","ins","kbd","label","map","object","q","s","samp","select","small","span","strike","strong","sub","sup","textarea","tt","u","var"],"output.indent":" ","output.baseIndent":"","output.newline":"\n","output.tagCase":"","output.attributeCase":"","output.attributeQuotes":"double","output.format":!0,"output.formatLeafNode":!1,"output.formatSkip":["html"],"output.formatForce":["body"],"output.inlineBreak":3,"output.compactBoolean":!1,"output.booleanAttributes":["contenteditable","seamless","async","autofocus","autoplay","checked","controls","defer","disabled","formnovalidate","hidden","ismap","loop","multiple","muted","novalidate","readonly","required","reversed","selected","typemustmatch"],"output.reverseAttributes":!1,"output.selfClosingStyle":"html","output.field":(o,e)=>e,"output.text":o=>o,"markup.href":!0,"comment.enabled":!1,"comment.trigger":["id","class"],"comment.before":"","comment.after":"\n<!-- /[#ID][.CLASS] -->","bem.enabled":!1,"bem.element":"__","bem.modifier":"_","jsx.enabled":!1,"stylesheet.keywords":["auto","inherit","unset","none"],"stylesheet.unitless":["z-index","line-height","opacity","font-weight","zoom","flex","flex-grow","flex-shrink"],"stylesheet.shortHex":!0,"stylesheet.between":": ","stylesheet.after":";","stylesheet.intUnit":"px","stylesheet.floatUnit":"em","stylesheet.unitAliases":{e:"em",p:"%",x:"ex",r:"rem"},"stylesheet.json":!1,"stylesheet.jsonDoubleQuotes":!1,"stylesheet.fuzzySearchMinScore":0,"stylesheet.strictMatch":!1},defaultConfig$1={type:"markup",syntax:"html",variables,snippets:{},options:defaultOptions$1$1},syntaxConfig={markup:{snippets:parseSnippets(markupSnippets)},xhtml:{options:{"output.selfClosingStyle":"xhtml"}},xml:{options:{"output.selfClosingStyle":"xml"}},xsl:{snippets:parseSnippets(xslSnippets),options:{"output.selfClosingStyle":"xml"}},jsx:{options:{"jsx.enabled":!0,"markup.attributes":{class:"className","class*":"styleName",for:"htmlFor"},"markup.valuePrefix":{"class*":"styles"}}},vue:{options:{"markup.attributes":{"class*":":class"}}},svelte:{options:{"jsx.enabled":!0}},pug:{snippets:parseSnippets(pugSnippets)},stylesheet:{snippets:parseSnippets(stylesheetSnippets)},sass:{options:{"stylesheet.after":""}},stylus:{options:{"stylesheet.between":" ","stylesheet.after":""}}};function parseSnippets(o){const e={};return Object.keys(o).forEach(t=>{for(const r of t.split("|"))e[r]=o[t]}),e}function resolveConfig(o={},e={}){const t=o.type||"markup",r=o.syntax||defaultSyntaxes[t];return Object.assign(Object.assign(Object.assign({},defaultConfig$1),o),{type:t,syntax:r,variables:mergedData(t,r,"variables",o,e),snippets:mergedData(t,r,"snippets",o,e),options:mergedData(t,r,"options",o,e)})}function mergedData(o,e,t,r,s={}){const a=syntaxConfig[o],l=s[o],c=syntaxConfig[e],d=s[e];return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},defaultConfig$1[t]),a&&a[t]),c&&c[t]),l&&l[t]),d&&d[t]),r[t])}function backwardScanner(o,e=0){return{text:o,start:e,pos:o.length}}function sol(o){return o.pos===o.start}function peek(o,e=0){return o.text.charCodeAt(o.pos-1+e)}function previous(o){if(!sol(o))return o.text.charCodeAt(--o.pos)}function consume(o,e){if(sol(o))return!1;const t=typeof e=="function"?e(peek(o)):e===peek(o);return t&&o.pos--,!!t}function consumeWhile(o,e){const t=o.pos;for(;consume(o,e););return o.pos<t}var Chars$1;(function(o){o[o.SingleQuote=39]="SingleQuote",o[o.DoubleQuote=34]="DoubleQuote",o[o.Escape=92]="Escape"})(Chars$1||(Chars$1={}));function isQuote$3(o){return o===Chars$1.SingleQuote||o===Chars$1.DoubleQuote}function consumeQuoted(o){const e=o.pos,t=previous(o);if(isQuote$3(t)){for(;!sol(o);)if(previous(o)===t&&peek(o)!==Chars$1.Escape)return!0}return o.pos=e,!1}var Brackets;(function(o){o[o.SquareL=91]="SquareL",o[o.SquareR=93]="SquareR",o[o.RoundL=40]="RoundL",o[o.RoundR=41]="RoundR",o[o.CurlyL=123]="CurlyL",o[o.CurlyR=125]="CurlyR"})(Brackets||(Brackets={}));const bracePairs={[Brackets.SquareL]:Brackets.SquareR,[Brackets.RoundL]:Brackets.RoundR,[Brackets.CurlyL]:Brackets.CurlyR};var Chars;(function(o){o[o.Tab=9]="Tab",o[o.Space=32]="Space",o[o.Dash=45]="Dash",o[o.Slash=47]="Slash",o[o.Colon=58]="Colon",o[o.Equals=61]="Equals",o[o.AngleLeft=60]="AngleLeft",o[o.AngleRight=62]="AngleRight"})(Chars||(Chars={}));function isHtml(o){const e=o.pos;if(!consume(o,Chars.AngleRight))return!1;let t=!1;for(consume(o,Chars.Slash);!sol(o);){if(consumeWhile(o,isWhiteSpace),consumeIdent(o)){if(consume(o,Chars.Slash)){t=consume(o,Chars.AngleLeft);break}else if(consume(o,Chars.AngleLeft)){t=!0;break}else{if(consume(o,isWhiteSpace))continue;if(consume(o,Chars.Equals)){if(consumeIdent(o))continue;break}else if(consumeAttributeWithUnquotedValue(o)){t=!0;break}}break}if(!consumeAttribute(o))break}return o.pos=e,t}function consumeAttribute(o){return consumeAttributeWithQuotedValue(o)||consumeAttributeWithUnquotedValue(o)}function consumeAttributeWithQuotedValue(o){const e=o.pos;return consumeQuoted(o)&&consume(o,Chars.Equals)&&consumeIdent(o)?!0:(o.pos=e,!1)}function consumeAttributeWithUnquotedValue(o){const e=o.pos,t=[];for(;!sol(o);){const r=peek(o);if(isCloseBracket(r))t.push(r);else if(isOpenBracket(r)){if(t.pop()!==bracePairs[r])break}else if(!isUnquotedValue(r))break;o.pos--}return e!==o.pos&&consume(o,Chars.Equals)&&consumeIdent(o)?!0:(o.pos=e,!1)}function consumeIdent(o){return consumeWhile(o,isIdent)}function isIdent(o){return o===Chars.Colon||o===Chars.Dash||isAlpha(o)||isNumber$3(o)}function isAlpha(o){return o&=-33,o>=65&&o<=90}function isNumber$3(o){return o>47&&o<58}function isWhiteSpace(o){return o===Chars.Space||o===Chars.Tab}function isUnquotedValue(o){return!isNaN(o)&&o!==Chars.Equals&&!isWhiteSpace(o)&&!isQuote$3(o)}function isOpenBracket(o){return o===Brackets.CurlyL||o===Brackets.RoundL||o===Brackets.SquareL}function isCloseBracket(o){return o===Brackets.CurlyR||o===Brackets.RoundR||o===Brackets.SquareR}const code=o=>o.charCodeAt(0),specialChars="#.*:$-_!@%^+>/".split("").map(code),defaultOptions$2={type:"markup",lookAhead:!0,prefix:""};function extractAbbreviation$1(o,e=o.length,t={}){const r=Object.assign(Object.assign({},defaultOptions$2),t);e=Math.min(o.length,Math.max(0,e==null?o.length:e)),r.lookAhead&&(e=offsetPastAutoClosed(o,e,r));let s;const a=getStartOffset(o,e,r.prefix||"");if(a===-1)return;const l=backwardScanner(o,a);l.pos=e;const c=[];for(;!sol(l);){if(s=peek(l),c.includes(Brackets.CurlyR)){if(s===Brackets.CurlyR){c.push(s),l.pos--;continue}if(s!==Brackets.CurlyL){l.pos--;continue}}if(isCloseBrace(s,r.type))c.push(s);else if(isOpenBrace(s,r.type)){if(c.pop()!==bracePairs[s])break}else if(c.includes(Brackets.SquareR)||c.includes(Brackets.CurlyR)){l.pos--;continue}else if(isHtml(l)||!isAbbreviation(s))break;l.pos--}if(!c.length&&l.pos!==e){const d=o.slice(l.pos,e).replace(/^[*+>^]+/,"");return{abbreviation:d,location:e-d.length,start:t.prefix?a-t.prefix.length:e-d.length,end:e}}}function offsetPastAutoClosed(o,e,t){for(isQuote$3(o.charCodeAt(e))&&e++;isCloseBrace(o.charCodeAt(e),t.type);)e++;return e}function getStartOffset(o,e,t){if(!t)return 0;const r=backwardScanner(o),s=t.split("").map(code);r.pos=e;let a;for(;!sol(r);)if(!(consumePair(r,Brackets.SquareR,Brackets.SquareL)||consumePair(r,Brackets.CurlyR,Brackets.CurlyL))){if(a=r.pos,consumeArray(r,s))return a;r.pos--}return-1}function consumePair(o,e,t){const r=o.pos;if(consume(o,e))for(;!sol(o);){if(consume(o,t))return!0;o.pos--}return o.pos=r,!1}function consumeArray(o,e){const t=o.pos;let r=!1;for(let s=e.length-1;s>=0&&!sol(o)&&consume(o,e[s]);s--)r=s===0;return r||(o.pos=t),r}function isAbbreviation(o){return o>64&&o<91||o>96&&o<123||o>47&&o<58||specialChars.includes(o)}function isOpenBrace(o,e){return o===Brackets.RoundL||e==="markup"&&(o===Brackets.SquareL||o===Brackets.CurlyL)}function isCloseBrace(o,e){return o===Brackets.RoundR||e==="markup"&&(o===Brackets.SquareR||o===Brackets.CurlyR)}function expandAbbreviation$1(o,e){const t=resolveConfig(e);return t.type==="stylesheet"?stylesheet(o,t):markup(o,t)}function markup(o,e){return stringify$2(parse$1$1(o,e),e)}function stylesheet(o,e){return css$1(parse$4(o,e),e)}const cssData={properties:["additive-symbols","align-content","align-items","justify-items","justify-self","justify-items","align-self","all","alt","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","behavior","block-size","border","border-block-end","border-block-start","border-block-end-color","border-block-start-color","border-block-end-style","border-block-start-style","border-block-end-width","border-block-start-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline-end","border-inline-start","border-inline-end-color","border-inline-start-color","border-inline-end-style","border-inline-start-style","border-inline-end-width","border-inline-start-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation-filters","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","columns","column-span","column-width","contain","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","enable-background","fallback","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","glyph-orientation-horizontal","glyph-orientation-vertical","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","height","hyphens","image-orientation","image-rendering","ime-mode","inline-size","isolation","justify-content","kerning","left","letter-spacing","lighting-color","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block-end","margin-block-start","margin-bottom","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marker","marker-end","marker-mid","marker-start","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","motion","motion-offset","motion-path","motion-rotation","-moz-animation","-moz-animation-delay","-moz-animation-direction","-moz-animation-duration","-moz-animation-iteration-count","-moz-animation-name","-moz-animation-play-state","-moz-animation-timing-function","-moz-appearance","-moz-backface-visibility","-moz-background-clip","-moz-background-inline-policy","-moz-background-origin","-moz-border-bottom-colors","-moz-border-image","-moz-border-left-colors","-moz-border-right-colors","-moz-border-top-colors","-moz-box-align","-moz-box-direction","-moz-box-flex","-moz-box-flexgroup","-moz-box-ordinal-group","-moz-box-orient","-moz-box-pack","-moz-box-sizing","-moz-column-count","-moz-column-gap","-moz-column-rule","-moz-column-rule-color","-moz-column-rule-style","-moz-column-rule-width","-moz-columns","-moz-column-width","-moz-font-feature-settings","-moz-hyphens","-moz-perspective","-moz-perspective-origin","-moz-text-align-last","-moz-text-decoration-color","-moz-text-decoration-line","-moz-text-decoration-style","-moz-text-size-adjust","-moz-transform","-moz-transform-origin","-moz-transition","-moz-transition-delay","-moz-transition-duration","-moz-transition-property","-moz-transition-timing-function","-moz-user-focus","-moz-user-select","-ms-accelerator","-ms-behavior","-ms-block-progression","-ms-content-zoom-chaining","-ms-content-zooming","-ms-content-zoom-limit","-ms-content-zoom-limit-max","-ms-content-zoom-limit-min","-ms-content-zoom-snap","-ms-content-zoom-snap-points","-ms-content-zoom-snap-type","-ms-filter","-ms-flex","-ms-flex-align","-ms-flex-direction","-ms-flex-flow","-ms-flex-item-align","-ms-flex-line-pack","-ms-flex-order","-ms-flex-pack","-ms-flex-wrap","-ms-flow-from","-ms-flow-into","-ms-grid-column","-ms-grid-column-align","-ms-grid-columns","-ms-grid-column-span","-ms-grid-layer","-ms-grid-row","-ms-grid-row-align","-ms-grid-rows","-ms-grid-row-span","-ms-high-contrast-adjust","-ms-hyphenate-limit-chars","-ms-hyphenate-limit-lines","-ms-hyphenate-limit-zone","-ms-hyphens","-ms-ime-mode","-ms-interpolation-mode","-ms-layout-grid","-ms-layout-grid-char","-ms-layout-grid-line","-ms-layout-grid-mode","-ms-layout-grid-type","-ms-line-break","-ms-overflow-style","-ms-perspective","-ms-perspective-origin","-ms-perspective-origin-x","-ms-perspective-origin-y","-ms-progress-appearance","-ms-scrollbar-3dlight-color","-ms-scrollbar-arrow-color","-ms-scrollbar-base-color","-ms-scrollbar-darkshadow-color","-ms-scrollbar-face-color","-ms-scrollbar-highlight-color","-ms-scrollbar-shadow-color","-ms-scrollbar-track-color","-ms-scroll-chaining","-ms-scroll-limit","-ms-scroll-limit-x-max","-ms-scroll-limit-x-min","-ms-scroll-limit-y-max","-ms-scroll-limit-y-min","-ms-scroll-rails","-ms-scroll-snap-points-x","-ms-scroll-snap-points-y","-ms-scroll-snap-type","-ms-scroll-snap-x","-ms-scroll-snap-y","-ms-scroll-translation","-ms-text-align-last","-ms-text-autospace","-ms-text-combine-horizontal","-ms-text-justify","-ms-text-kashida-space","-ms-text-overflow","-ms-text-size-adjust","-ms-text-underline-position","-ms-touch-action","-ms-touch-select","-ms-transform","-ms-transform-origin","-ms-transform-origin-x","-ms-transform-origin-y","-ms-transform-origin-z","-ms-user-select","-ms-word-break","-ms-word-wrap","-ms-wrap-flow","-ms-wrap-margin","-ms-wrap-through","-ms-writing-mode","-ms-zoom","-ms-zoom-animation","nav-down","nav-index","nav-left","nav-right","nav-up","negative","-o-animation","-o-animation-delay","-o-animation-direction","-o-animation-duration","-o-animation-fill-mode","-o-animation-iteration-count","-o-animation-name","-o-animation-play-state","-o-animation-timing-function","object-fit","object-position","-o-border-image","-o-object-fit","-o-object-position","opacity","order","orphans","-o-table-baseline","-o-tab-size","-o-text-overflow","-o-transform","-o-transform-origin","-o-transition","-o-transition-delay","-o-transition-duration","-o-transition-property","-o-transition-timing-function","offset-block-end","offset-block-start","offset-inline-end","offset-inline-start","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","pad","padding","padding-bottom","padding-block-end","padding-block-start","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","paint-order","perspective","perspective-origin","pointer-events","position","prefix","quotes","range","resize","right","ruby-align","ruby-overhang","ruby-position","ruby-span","scrollbar-3dlight-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-darkshadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","scroll-behavior","scroll-snap-coordinate","scroll-snap-destination","scroll-snap-points-x","scroll-snap-points-y","scroll-snap-type","shape-image-threshold","shape-margin","shape-outside","shape-rendering","size","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","suffix","system","symbols","table-layout","tab-size","text-align","text-align-last","text-anchor","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","unicode-range","user-select","vertical-align","visibility","-webkit-animation","-webkit-animation-delay","-webkit-animation-direction","-webkit-animation-duration","-webkit-animation-fill-mode","-webkit-animation-iteration-count","-webkit-animation-name","-webkit-animation-play-state","-webkit-animation-timing-function","-webkit-appearance","-webkit-backdrop-filter","-webkit-backface-visibility","-webkit-background-clip","-webkit-background-composite","-webkit-background-origin","-webkit-border-image","-webkit-box-align","-webkit-box-direction","-webkit-box-flex","-webkit-box-flex-group","-webkit-box-ordinal-group","-webkit-box-orient","-webkit-box-pack","-webkit-box-reflect","-webkit-box-sizing","-webkit-break-after","-webkit-break-before","-webkit-break-inside","-webkit-column-break-after","-webkit-column-break-before","-webkit-column-break-inside","-webkit-column-count","-webkit-column-gap","-webkit-column-rule","-webkit-column-rule-color","-webkit-column-rule-style","-webkit-column-rule-width","-webkit-columns","-webkit-column-span","-webkit-column-width","-webkit-filter","-webkit-flow-from","-webkit-flow-into","-webkit-font-feature-settings","-webkit-hyphens","-webkit-line-break","-webkit-margin-bottom-collapse","-webkit-margin-collapse","-webkit-margin-start","-webkit-margin-top-collapse","-webkit-mask-clip","-webkit-mask-image","-webkit-mask-origin","-webkit-mask-repeat","-webkit-mask-size","-webkit-nbsp-mode","-webkit-overflow-scrolling","-webkit-padding-start","-webkit-perspective","-webkit-perspective-origin","-webkit-region-fragment","-webkit-tap-highlight-color","-webkit-text-fill-color","-webkit-text-size-adjust","-webkit-text-stroke","-webkit-text-stroke-color","-webkit-text-stroke-width","-webkit-touch-callout","-webkit-transform","-webkit-transform-origin","-webkit-transform-origin-x","-webkit-transform-origin-y","-webkit-transform-origin-z","-webkit-transform-style","-webkit-transition","-webkit-transition-delay","-webkit-transition-duration","-webkit-transition-property","-webkit-transition-timing-function","-webkit-user-drag","-webkit-user-modify","-webkit-user-select","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","zoom"]},htmlData={tags:["body","head","html","address","blockquote","dd","div","section","article","aside","header","footer","nav","menu","dl","dt","fieldset","form","frame","frameset","h1","h2","h3","h4","h5","h6","iframe","noframes","object","ol","p","ul","applet","center","dir","hr","pre","a","abbr","acronym","area","b","base","basefont","bdo","big","br","button","caption","cite","code","col","colgroup","del","dfn","em","font","i","img","input","ins","isindex","kbd","label","legend","li","link","map","meta","noscript","optgroup","option","param","q","s","samp","script","select","small","span","strike","strong","style","sub","sup","table","tbody","td","textarea","tfoot","th","thead","title","tr","tt","u","var","canvas","main","figure","plaintext","figcaption","hgroup","details","summary"]},snippetKeyCache=new Map;let markupSnippetKeys;const stylesheetCustomSnippetsKeyCache=new Map,htmlAbbreviationStartRegex=/^[a-z,A-Z,!,(,[,#,\.\{]/,jsxAbbreviationStartRegex=/^[a-z,A-Z,!,(,[,#,\.]/,cssAbbreviationRegex=/^-?[a-z,A-Z,!,@,#]/,htmlAbbreviationRegex=/[a-z,A-Z\.]/,commonlyUsedTags=[...htmlData.tags,"lorem"],bemFilterSuffix="bem",filterDelimitor="|",trimFilterSuffix="t",commentFilterSuffix="c",maxFilters=3;function doComplete(o,e,t,r,s){var a;const l=isStyleSheet(r);if(!l){if(!snippetKeyCache.has(r)){const w=Object.assign(Object.assign({},getDefaultSnippets(r)),customSnippetsRegistry[r]);snippetKeyCache.set(r,Object.keys(w))}markupSnippetKeys=(a=snippetKeyCache.get(r))!==null&&a!==void 0?a:[]}const c={lookAhead:!l,type:getSyntaxType(r)},d=extractAbbreviation(o,e,t,c);if(!d)return;const{abbreviationRange:u,abbreviation:g,currentLineTillPosition:f,filter:m}=d;if(getCurrentWord(f)===g&&f.endsWith("<".concat(g))&&!l)return;const v=getExpandOptions(r,m);let b="",C,y=[];if(((w,E)=>{if(isAbbreviationValid(w,g)){try{b=expandAbbreviation$1(E,v),l&&"!important".startsWith(E)&&(b="!important")}catch(x){}!b||isExpandedTextNoise(w,E,b,v.options)||(C={kind:o.languages.CompletionItemKind.Property,label:g+(m?"|"+m.replace(",","|"):""),documentation:replaceTabStopsWithCursors(b),detail:"Emmet abbreviation",insertTextRules:o.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:u,insertText:escapeNonTabStopDollar(addFinalTabStop(b))},y=[C])}})(r,g),l){if(g.length>4&&cssData.properties.some(w=>w.startsWith(g)))return{suggestions:[],incomplete:!0};if(C&&b.length){C.range=u,C.insertText=escapeNonTabStopDollar(addFinalTabStop(b)),C.documentation=replaceTabStopsWithCursors(b),C.label=removeTabStops(b),C.filterText=g;const w=stylesheetCustomSnippetsKeyCache.has(r)?stylesheetCustomSnippetsKeyCache.get(r):stylesheetCustomSnippetsKeyCache.get("css");if(y=makeSnippetSuggestion(o,w!=null?w:[],g,g,u,v,"Emmet Custom Snippet",!1),!y.find(E=>E.insertText===(C==null?void 0:C.insertText))){const E=new RegExp(".*"+g.split("").map(x=>x==="$"||x==="+"?"\\"+x:x).join(".*")+".*","i");(/\d/.test(g)||E.test(C.label))&&y.push(C)}}}else{let w=g;const E=g.match(/(>|\+)([\w:-]+)$/);if(E&&E.length===3&&(w=E[2]),r!=="xml"){const x=makeSnippetSuggestion(o,commonlyUsedTags,w,g,u,v,"Emmet Abbreviation");y=y.concat(x)}{const x=makeSnippetSuggestion(o,markupSnippetKeys.filter(L=>!commonlyUsedTags.includes(L)),w,g,u,v,"Emmet Abbreviation");C&&x.length>0&&w!==g&&(C.sortText="0"+C.label,x.forEach(L=>{L.filterText=g,L.sortText="9"+g})),y=y.concat(x)}r==="html"&&y.length>=2&&g.includes(":")&&(C==null?void 0:C.insertText)==="<".concat(g,">${0}</").concat(g,">")&&(y=y.filter(x=>x.label!==g))}return y.length?{suggestions:y,incomplete:!0}:void 0}function makeSnippetSuggestion(o,e,t,r,s,a,l,c=!0){if(!t||!e)return[];const d=[];return e.forEach(u=>{if(!u.startsWith(t.toLowerCase())||c&&u===t.toLowerCase())return;const g=r+u.substr(t.length);let f;try{f=expandAbbreviation$1(g,a)}catch(_){}if(!f)return;const m={kind:o.languages.CompletionItemKind.Property,label:t+u.substr(t.length),documentation:replaceTabStopsWithCursors(f),detail:l,insertTextRules:o.languages.CompletionItemInsertTextRule.InsertAsSnippet,range:s,insertText:escapeNonTabStopDollar(addFinalTabStop(f))};d.push(m)}),d}function getCurrentWord(o){if(o){const e=o.match(/[\w,:,-,\.]*$/);if(e)return e[0]}}function replaceTabStopsWithCursors(o){return o.replace(/([^\\])\$\{\d+\}/g,"$1|").replace(/\$\{\d+:([^\}]+)\}/g,"$1")}function removeTabStops(o){return o.replace(/([^\\])\$\{\d+\}/g,"$1").replace(/\$\{\d+:([^\}]+)\}/g,"$1")}function escapeNonTabStopDollar(o){return o&&o.replace(/([^\\])(\$)([^\{])/g,"$1\\$2$3")}function addFinalTabStop(o){if(!o||!o.trim())return o;let e=-1,t=[],r=!1,s=!1,a=0;const l=o.length;try{for(;a<l&&!r;){if(o[a++]!="$"||o[a++]!="{")continue;let c=-1,d=-1;for(;a<l&&/\d/.test(o[a]);)c=c<0?a:c,d=a+1,a++;if(c===-1||d===-1||a>=l||o[a]!="}"&&o[a]!=":")continue;const u=o.substring(c,d);if(r=u==="0",r)break;let g=!1;if(o[a++]==":")for(;a<l;){if(o[a]=="}"){g=!0;break}a++}Number(u)>Number(e)?(e=Number(u),t=[{numberStart:c,numberEnd:d}],s=!g):Number(u)===e&&t.push({numberStart:c,numberEnd:d})}}catch(c){}if(s&&!r)for(let c=0;c<t.length;c++){const d=t[c].numberStart,u=t[c].numberEnd;o=o.substr(0,d)+"0"+o.substr(u)}return o}let customSnippetsRegistry={};const emmetSnippetField=(o,e)=>"${".concat(o).concat(e?":"+e:"","}");function isStyleSheet(o){return o==="css"}function getSyntaxType(o){return isStyleSheet(o)?"stylesheet":"markup"}function getDefaultSyntax(o){return isStyleSheet(o)?"css":"html"}function getDefaultSnippets(o){const t={type:getSyntaxType(o),syntax:o},r=resolveConfig(t);return o==="xml"?{}:r.snippets}function getFilters(o,e){let t;for(let r=0;r<maxFilters;r++)if(o.endsWith("".concat(filterDelimitor).concat(bemFilterSuffix),e))e-=bemFilterSuffix.length+1,t=t?bemFilterSuffix+","+t:bemFilterSuffix;else if(o.endsWith("".concat(filterDelimitor).concat(commentFilterSuffix),e))e-=commentFilterSuffix.length+1,t=t?commentFilterSuffix+","+t:commentFilterSuffix;else if(o.endsWith("".concat(filterDelimitor).concat(trimFilterSuffix),e))e-=trimFilterSuffix.length+1,t=t?trimFilterSuffix+","+t:trimFilterSuffix;else break;return{pos:e,filter:t}}function extractAbbreviation(o,e,t,r){const s=e.getLineContent(t.lineNumber),a=s.substr(0,t.column-1),{pos:l,filter:c}=getFilters(a,t.column-1),d=c?c.length+1:0,u=extractAbbreviation$1(s,l,r);return u?{abbreviationRange:new o.Range(t.lineNumber,u.location+1,t.lineNumber,u.location+u.abbreviation.length+d+1),abbreviation:u.abbreviation,currentLineTillPosition:a,filter:c}:void 0}function isAbbreviationValid(o,e){if(!e)return!1;if(isStyleSheet(o)){if(e.includes("#")){if(e.startsWith("#"))return/^#[\d,a-f,A-F]{1,6}$/.test(e);if(commonlyUsedTags.includes(e.substring(0,e.indexOf("#"))))return!1}return cssAbbreviationRegex.test(e)}return e.startsWith("!")?!/[^!]/.test(e):(/\(/.test(e)||/\)/.test(e))&&!/\{[^\}\{]*[\(\)]+[^\}\{]*\}(?:[>\+\*\^]|$)/.test(e)&&!/\(.*\)[>\+\*\^]/.test(e)&&!/\[[^\[\]\(\)]+=".*"\]/.test(e)&&!/[>\+\*\^]\(.*\)/.test(e)?!1:o==="jsx"?jsxAbbreviationStartRegex.test(e)&&htmlAbbreviationRegex.test(e):htmlAbbreviationStartRegex.test(e)&&htmlAbbreviationRegex.test(e)}function isExpandedTextNoise(o,e,t,r){var s,a;if(isStyleSheet(o)&&r){const c=(s=r["stylesheet.between"])!==null&&s!==void 0?s:": ",d=(a=r["stylesheet.after"])!==null&&a!==void 0?a:";";let u=e.indexOf(c[0],Math.max(e.length-c.length,0));u=u>=0?u:e.length;const g=e.substring(0,u);return t==="".concat(g).concat(c,"${0}").concat(d)||t.replace(/\s/g,"")===e.replace(/\s/g,"")+d}if(o==="xml"&&commonlyUsedTags.some(c=>c.startsWith(e.toLowerCase())))return!0;if(commonlyUsedTags.includes(e.toLowerCase())||markupSnippetKeys.includes(e)||/[-,:]/.test(e)&&!/--|::/.test(e)&&!e.endsWith(":")||e===".")return!1;const l=e.match(/^([a-z,A-Z,\d]*)\.$/);return l?!(l[1]&&htmlData.tags.includes(l[1])):o==="jsx"&&/^([A-Z][A-Za-z0-9]*)+$/.test(e)?!1:t.toLowerCase()==="<".concat(e.toLowerCase(),">${1}</").concat(e.toLowerCase(),">")}function getExpandOptions(o,e){var t;const r=e?e.split(",").map(g=>g.trim()):[],s=r.includes("bem"),a=r.includes("c"),l={"output.formatSkip":["html"],"output.formatForce":["body"],"output.field":emmetSnippetField,"output.inlineBreak":0,"output.compactBoolean":!1,"output.reverseAttributes":!1,"markup.href":!0,"comment.enabled":a,"comment.trigger":["id","class"],"comment.before":"","comment.after":"\n<!-- /[#ID][.CLASS] -->","bem.enabled":s,"bem.element":"__","bem.modifier":"_","jsx.enabled":o==="jsx","stylesheet.shortHex":!0,"stylesheet.between":o==="stylus"?" ":": ","stylesheet.after":o==="sass"||o==="stylus"?"":";","stylesheet.intUnit":"px","stylesheet.floatUnit":"em","stylesheet.unitAliases":{e:"em",p:"%",x:"ex",r:"rem"},"stylesheet.fuzzySearchMinScore":.3,"output.format":!0,"output.selfClosingStyle":"html"},c=getSyntaxType(o),d=getDefaultSyntax(o),u=c==="stylesheet"?(t=customSnippetsRegistry[o])!==null&&t!==void 0?t:customSnippetsRegistry[d]:customSnippetsRegistry[o];return{type:c,options:l,variables:{},snippets:u,syntax:o,text:void 0,maxRepeat:1e3}}function isValidEmmetToken(o,e,t,r){const s=o[e],a=s.type;return t==="html"?a===""&&(e===0||o[e-1].type==="delimiter.html")||o[0].type==="text.html.basic":t==="css"?a===""?!0:a==="tag."+r:t==="jsx"?s.language==="mdx"&&a===""?!0:!!e&&["identifier.js","type.identifier.js","identifier.ts","type.identifier.ts"].includes(a):!1}const tokenEnvCache=new WeakMap;function getTokenizationEnv(o){var e;if(tokenEnvCache.has(o))return tokenEnvCache.get(o);let t=o._tokenization||o.tokenization._tokenization,r=t==null?void 0:t._tokenizationStateStore;if(!t||!r){const l=o.tokenization,c=l.grammarTokens||l._tokens||((e=l.tokens)===null||e===void 0?void 0:e._value);c?(t=c._defaultBackgroundTokenizer,r=t._tokenizerWithStateStore):(Object.values(l).some(d=>t=d.tokenizeViewport&&d),Object.values(t).some(d=>r=d.tokenizationSupport&&d))}const s=r.tokenizationSupport||t._tokenizationSupport,a={_stateStore:r,_support:s};return tokenEnvCache.set(o,a),a}function isValidLocationForEmmetAbbreviation(o,e,t,r){var s;const{column:a,lineNumber:l}=e,{_stateStore:c,_support:d}=getTokenizationEnv(o),u=((s=c.getBeginState)===null||s===void 0?void 0:s.call(c,l-1).clone())||c.getStartState(l).clone(),f=d.tokenize(o.getLineContent(l),!0,u,0).tokens;let m=!1;for(let _=f.length-1;_>=0;_--)if(a-1>f[_].offset){m=isValidEmmetToken(f,_,t,r);break}return m}const LANGUAGE_MODES={html:["!",".","}",":","*","$","]","/",">","0","1","2","3","4","5","6","7","8","9"],jade:["!",".","}",":","*","$","]","/",">","0","1","2","3","4","5","6","7","8","9"],slim:["!",".","}",":","*","$","]","/",">","0","1","2","3","4","5","6","7","8","9"],haml:["!",".","}",":","*","$","]","/",">","0","1","2","3","4","5","6","7","8","9"],xml:[".","}","*","$","]","/",">","0","1","2","3","4","5","6","7","8","9"],xsl:["!",".","}","*","$","/","]",">","0","1","2","3","4","5","6","7","8","9"],css:[":","!","-","0","1","2","3","4","5","6","7","8","9"],scss:[":","!","-","0","1","2","3","4","5","6","7","8","9"],sass:[":","!","0","1","2","3","4","5","6","7","8","9"],less:[":","!","-","0","1","2","3","4","5","6","7","8","9"],stylus:[":","!","0","1","2","3","4","5","6","7","8","9"],javascript:["!",".","}","*","$","]","/",">","0","1","2","3","4","5","6","7","8","9"],typescript:["!",".","}","*","$","]","/",">","0","1","2","3","4","5","6","7","8","9"]},MAPPED_MODES={handlebars:"html",php:"html",twig:"html"};function registerProvider(o,e,t){if(!o){console.error("emmet-monaco-es: 'monaco' should be either declared on window or passed as first parameter");return}const r=e.map(s=>o.languages.registerCompletionItemProvider(s,{triggerCharacters:LANGUAGE_MODES[MAPPED_MODES[s]||s],provideCompletionItems:(a,l)=>isValidLocationForEmmetAbbreviation(a,l,t,s)?doComplete(o,a,l,t):void 0}));return()=>{r.forEach(s=>s.dispose())}}function emmetHTML(o=window.monaco,e=["html"]){return registerProvider(o,e,"html")}function emmetCSS(o=window.monaco,e=["css"]){return registerProvider(o,e,"css")}function getNLSMessages(){return globalThis._VSCODE_NLS_MESSAGES}function getNLSLanguage(){return globalThis._VSCODE_NLS_LANGUAGE}const isPseudo=getNLSLanguage()==="pseudo"||typeof document<"u"&&document.location&&typeof document.location.hash=="string"&&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,(r,s)=>{const a=s[0],l=e[a];let c=r;return typeof l=="string"?c=l:(typeof l=="number"||typeof l=="boolean"||l===void 0||l===null)&&(c=String(l)),c}),isPseudo&&(t=""+t.replace(/[aouei]/g,"$&$&")+""),t}function localize(o,e,...t){return _format$1(typeof o=="number"?lookupMessage(o,e):e,t)}function lookupMessage(o,e){var r;const t=(r=getNLSMessages())==null?void 0:r[o];if(typeof t!="string"){if(typeof e=="string")return e;throw new Error("!!! NLS MISSING: ".concat(o," !!!"))}return t}function localize2(o,e,...t){let r;typeof o=="number"?r=lookupMessage(o,e):r=e;const s=_format$1(r,t);return{value:s,original:e===r?s:_format$1(e,t)}}function ensureCodeWindow(o,e){const t=o;typeof t.vscodeWindowId!="number"&&Object.defineProperty(t,"vscodeWindowId",{get:()=>e})}const mainWindow=window,ro=class ro{constructor(){this.mapWindowIdToZoomFactor=new Map}getZoomFactor(e){var t;return(t=this.mapWindowIdToZoomFactor.get(this.getWindowId(e)))!=null?t:1}getWindowId(e){return e.vscodeWindowId}};ro.INSTANCE=new ro;let WindowManager=ro;function addMatchMediaChangeListener(o,e,t){typeof e=="string"&&(e=o.matchMedia(e)),e.addEventListener("change",t)}function getZoomFactor(o){return WindowManager.INSTANCE.getZoomFactor(o)}const userAgent$1=navigator.userAgent,isFirefox$1=userAgent$1.indexOf("Firefox")>=0,isWebKit=userAgent$1.indexOf("AppleWebKit")>=0,isChrome$1=userAgent$1.indexOf("Chrome")>=0,isSafari$1=!isChrome$1&&userAgent$1.indexOf("Safari")>=0,isWebkitWebView=!isChrome$1&&!isSafari$1&&isWebKit;userAgent$1.indexOf("Electron/")>=0;const isAndroid$1=userAgent$1.indexOf("Android")>=0;let standalone=!1;if(typeof mainWindow.matchMedia=="function"){const o=mainWindow.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),e=mainWindow.matchMedia("(display-mode: fullscreen)");standalone=o.matches,addMatchMediaChangeListener(mainWindow,o,({matches:t})=>{standalone&&e.matches||(standalone=t)})}function getMonacoEnvironment(){return globalThis.MonacoEnvironment}class ErrorHandler{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?ErrorNoTelemetry.isErrorNoTelemetry(e)?new ErrorNoTelemetry(e.message+"\n\n"+e.stack):new Error(e.message+"\n\n"+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 onBugIndicatingError(o){errorHandler.onUnexpectedError(o)}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,cause:r}=o,s=o.stacktrace||o.stack;return{$isError:!0,name:e,message:t,stack:s,noTelemetry:ErrorNoTelemetry.isErrorNoTelemetry(o),cause:r?transformErrorForSerialization(r):void 0,code:o.code}}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: ".concat(o)):new Error("Illegal argument")}function illegalState(o){return o?new Error("Illegal state: ".concat(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 ok(o,e){if(!o)throw new Error(e?"Assertion failed (".concat(e,")"):"Assertion Failed")}function assertNever(o,e="Unreachable"){throw new Error(e)}function assert(o,e="unexpected state"){if(!o)throw typeof e=="string"?new BugIndicatingError("Assertion Failed: ".concat(e)):e}function softAssert(o,e="Soft Assertion Failed"){o||onUnexpectedError(new BugIndicatingError(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 r=o[t],s=o[t+1];if(!e(r,s))return!1;t++}return!0}function isString$2(o){return typeof o=="string"}function isArrayOf$1(o,e){return Array.isArray(o)&&o.every(e)}function isObject$3(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$2(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$2(o){return typeof o>"u"}function isDefined(o){return!isUndefinedOrNull(o)}function isUndefinedOrNull(o){return isUndefined$2(o)||o===null}function assertType(o,e){if(!o)throw new Error(e?"Unexpected type, expected '".concat(e,"'"):"Unexpected type")}function assertReturnsDefined(o){return assert(o!=null,"Argument is `undefined` or `null`."),o}function isFunction$2(o){return typeof o=="function"}function validateConstraints(o,e){const t=Math.min(o.length,e.length);for(let r=0;r<t;r++)validateConstraint(o[r],e[r])}function validateConstraint(o,e){if(isString$2(e)){if(typeof o!==e)throw new Error("argument does not match constraint: typeof ".concat(e))}else if(isFunction$2(e)){try{if(o instanceof e)return}catch(t){}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 upcast(o){return o}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 $globalThis=globalThis;let nodeProcess;var Ca;typeof $globalThis.vscode<"u"&&typeof $globalThis.vscode.process<"u"?nodeProcess=$globalThis.vscode.process:typeof process<"u"&&typeof((Ca=process==null?void 0:process.versions)==null?void 0:Ca.node)=="string"&&(nodeProcess=process);var ya;const isElectronProcess=typeof((ya=nodeProcess==null?void 0:nodeProcess.versions)==null?void 0:ya.electron)=="string",isElectronRenderer=isElectronProcess&&(nodeProcess==null?void 0:nodeProcess.type)==="renderer";var Sa;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||nodeProcess.env.GITHUB_WORKSPACE,_locale=LANGUAGE_DEFAULT,_language=LANGUAGE_DEFAULT;const o=nodeProcess.env.VSCODE_NLS_CONFIG;if(o)try{const e=JSON.parse(o);_locale=e.userLocale,_platformLocale=e.osLocale,_language=e.resolvedLanguage||LANGUAGE_DEFAULT,_translationsConfigFile=(Sa=e.languagePack)==null?void 0:Sa.translationsConfigFile}catch(e){}_isNative=!0}else 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,_language=getNLSLanguage()||LANGUAGE_DEFAULT,_locale=navigator.language.toLowerCase(),_platformLocale=_locale):console.error("Unable to resolve platform.");let _platform=0;_isMacintosh?_platform=1:_isWindows?_platform=3:_isLinux&&(_platform=2);const isWindows=_isWindows,isMacintosh=_isMacintosh,isLinux=_isLinux,isNative=_isNative,isWeb=_isWeb,isWebWorker=_isWeb&&typeof $globalThis.importScripts=="function",webWorkerOrigin=isWebWorker?$globalThis.origin:void 0,isIOS=_isIOS,isMobile=_isMobile,platform$1=_platform,userAgent=_userAgent,language=_language,setTimeout0IsFaster=typeof $globalThis.postMessage=="function"&&!$globalThis.importScripts,setTimeout0=(()=>{if(setTimeout0IsFaster){const o=[];$globalThis.addEventListener("message",t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let r=0,s=o.length;r<s;r++){const a=o[r];if(a.id===t.data.vscodeScheduleAsyncWork){o.splice(r,1),a.callback();return}}});let e=0;return t=>{const r=++e;o.push({id:r,callback:t}),$globalThis.postMessage({vscodeScheduleAsyncWork:r},"*")}}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=!!(userAgent&&userAgent.indexOf("Chrome")>=0),isFirefox=!!(userAgent&&userAgent.indexOf("Firefox")>=0),isSafari=!!(!isChrome&&userAgent&&userAgent.indexOf("Safari")>=0),isEdge=!!(userAgent&&userAgent.indexOf("Edg/")>=0),isAndroid=!!(userAgent&&userAgent.indexOf("Android")>=0),BrowserFeatures={clipboard:{writeText:isNative||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:isNative||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},pointerEvents:mainWindow.PointerEvent&&("ontouchstart"in mainWindow||navigator.maxTouchPoints>0)};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 e=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN","",""],[1,1,"Hyper",0,"",0,"","",""],[1,2,"Super",0,"",0,"","",""],[1,3,"Fn",0,"",0,"","",""],[1,4,"FnLock",0,"",0,"","",""],[1,5,"Suspend",0,"",0,"","",""],[1,6,"Resume",0,"",0,"","",""],[1,7,"Turbo",0,"",0,"","",""],[1,8,"Sleep",0,"",0,"VK_SLEEP","",""],[1,9,"WakeUp",0,"",0,"","",""],[0,10,"KeyA",31,"A",65,"VK_A","",""],[0,11,"KeyB",32,"B",66,"VK_B","",""],[0,12,"KeyC",33,"C",67,"VK_C","",""],[0,13,"KeyD",34,"D",68,"VK_D","",""],[0,14,"KeyE",35,"E",69,"VK_E","",""],[0,15,"KeyF",36,"F",70,"VK_F","",""],[0,16,"KeyG",37,"G",71,"VK_G","",""],[0,17,"KeyH",38,"H",72,"VK_H","",""],[0,18,"KeyI",39,"I",73,"VK_I","",""],[0,19,"KeyJ",40,"J",74,"VK_J","",""],[0,20,"KeyK",41,"K",75,"VK_K","",""],[0,21,"KeyL",42,"L",76,"VK_L","",""],[0,22,"KeyM",43,"M",77,"VK_M","",""],[0,23,"KeyN",44,"N",78,"VK_N","",""],[0,24,"KeyO",45,"O",79,"VK_O","",""],[0,25,"KeyP",46,"P",80,"VK_P","",""],[0,26,"KeyQ",47,"Q",81,"VK_Q","",""],[0,27,"KeyR",48,"R",82,"VK_R","",""],[0,28,"KeyS",49,"S",83,"VK_S","",""],[0,29,"KeyT",50,"T",84,"VK_T","",""],[0,30,"KeyU",51,"U",85,"VK_U","",""],[0,31,"KeyV",52,"V",86,"VK_V","",""],[0,32,"KeyW",53,"W",87,"VK_W","",""],[0,33,"KeyX",54,"X",88,"VK_X","",""],[0,34,"KeyY",55,"Y",89,"VK_Y","",""],[0,35,"KeyZ",56,"Z",90,"VK_Z","",""],[0,36,"Digit1",22,"1",49,"VK_1","",""],[0,37,"Digit2",23,"2",50,"VK_2","",""],[0,38,"Digit3",24,"3",51,"VK_3","",""],[0,39,"Digit4",25,"4",52,"VK_4","",""],[0,40,"Digit5",26,"5",53,"VK_5","",""],[0,41,"Digit6",27,"6",54,"VK_6","",""],[0,42,"Digit7",28,"7",55,"VK_7","",""],[0,43,"Digit8",29,"8",56,"VK_8","",""],[0,44,"Digit9",30,"9",57,"VK_9","",""],[0,45,"Digit0",21,"0",48,"VK_0","",""],[1,46,"Enter",3,"Enter",13,"VK_RETURN","",""],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE","",""],[1,48,"Backspace",1,"Backspace",8,"VK_BACK","",""],[1,49,"Tab",2,"Tab",9,"VK_TAB","",""],[1,50,"Space",10,"Space",32,"VK_SPACE","",""],[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,"",0,"","",""],[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","",""],[1,64,"F1",59,"F1",112,"VK_F1","",""],[1,65,"F2",60,"F2",113,"VK_F2","",""],[1,66,"F3",61,"F3",114,"VK_F3","",""],[1,67,"F4",62,"F4",115,"VK_F4","",""],[1,68,"F5",63,"F5",116,"VK_F5","",""],[1,69,"F6",64,"F6",117,"VK_F6","",""],[1,70,"F7",65,"F7",118,"VK_F7","",""],[1,71,"F8",66,"F8",119,"VK_F8","",""],[1,72,"F9",67,"F9",120,"VK_F9","",""],[1,73,"F10",68,"F10",121,"VK_F10","",""],[1,74,"F11",69,"F11",122,"VK_F11","",""],[1,75,"F12",70,"F12",123,"VK_F12","",""],[1,76,"PrintScreen",0,"",0,"","",""],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL","",""],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE","",""],[1,79,"Insert",19,"Insert",45,"VK_INSERT","",""],[1,80,"Home",14,"Home",36,"VK_HOME","",""],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR","",""],[1,82,"Delete",20,"Delete",46,"VK_DELETE","",""],[1,83,"End",13,"End",35,"VK_END","",""],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT","",""],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",""],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",""],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",""],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",""],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK","",""],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE","",""],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY","",""],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT","",""],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD","",""],[1,94,"NumpadEnter",3,"",0,"","",""],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1","",""],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2","",""],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3","",""],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4","",""],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5","",""],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6","",""],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7","",""],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8","",""],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9","",""],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0","",""],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL","",""],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102","",""],[1,107,"ContextMenu",58,"ContextMenu",93,"","",""],[1,108,"Power",0,"",0,"","",""],[1,109,"NumpadEqual",0,"",0,"","",""],[1,110,"F13",71,"F13",124,"VK_F13","",""],[1,111,"F14",72,"F14",125,"VK_F14","",""],[1,112,"F15",73,"F15",126,"VK_F15","",""],[1,113,"F16",74,"F16",127,"VK_F16","",""],[1,114,"F17",75,"F17",128,"VK_F17","",""],[1,115,"F18",76,"F18",129,"VK_F18","",""],[1,116,"F19",77,"F19",130,"VK_F19","",""],[1,117,"F20",78,"F20",131,"VK_F20","",""],[1,118,"F21",79,"F21",132,"VK_F21","",""],[1,119,"F22",80,"F22",133,"VK_F22","",""],[1,120,"F23",81,"F23",134,"VK_F23","",""],[1,121,"F24",82,"F24",135,"VK_F24","",""],[1,122,"Open",0,"",0,"","",""],[1,123,"Help",0,"",0,"","",""],[1,124,"Select",0,"",0,"","",""],[1,125,"Again",0,"",0,"","",""],[1,126,"Undo",0,"",0,"","",""],[1,127,"Cut",0,"",0,"","",""],[1,128,"Copy",0,"",0,"","",""],[1,129,"Paste",0,"",0,"","",""],[1,130,"Find",0,"",0,"","",""],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE","",""],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP","",""],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN","",""],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR","",""],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1","",""],[1,136,"KanaMode",0,"",0,"","",""],[0,137,"IntlYen",0,"",0,"","",""],[1,138,"Convert",0,"",0,"","",""],[1,139,"NonConvert",0,"",0,"","",""],[1,140,"Lang1",0,"",0,"","",""],[1,141,"Lang2",0,"",0,"","",""],[1,142,"Lang3",0,"",0,"","",""],[1,143,"Lang4",0,"",0,"","",""],[1,144,"Lang5",0,"",0,"","",""],[1,145,"Abort",0,"",0,"","",""],[1,146,"Props",0,"",0,"","",""],[1,147,"NumpadParenLeft",0,"",0,"","",""],[1,148,"NumpadParenRight",0,"",0,"","",""],[1,149,"NumpadBackspace",0,"",0,"","",""],[1,150,"NumpadMemoryStore",0,"",0,"","",""],[1,151,"NumpadMemoryRecall",0,"",0,"","",""],[1,152,"NumpadMemoryClear",0,"",0,"","",""],[1,153,"NumpadMemoryAdd",0,"",0,"","",""],[1,154,"NumpadMemorySubtract",0,"",0,"","",""],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR","",""],[1,156,"NumpadClearEntry",0,"",0,"","",""],[1,0,"",5,"Ctrl",17,"VK_CONTROL","",""],[1,0,"",4,"Shift",16,"VK_SHIFT","",""],[1,0,"",6,"Alt",18,"VK_MENU","",""],[1,0,"",57,"Meta",91,"VK_COMMAND","",""],[1,157,"ControlLeft",5,"",0,"VK_LCONTROL","",""],[1,158,"ShiftLeft",4,"",0,"VK_LSHIFT","",""],[1,159,"AltLeft",6,"",0,"VK_LMENU","",""],[1,160,"MetaLeft",57,"",0,"VK_LWIN","",""],[1,161,"ControlRight",5,"",0,"VK_RCONTROL","",""],[1,162,"ShiftRight",4,"",0,"VK_RSHIFT","",""],[1,163,"AltRight",6,"",0,"VK_RMENU","",""],[1,164,"MetaRight",57,"",0,"VK_RWIN","",""],[1,165,"BrightnessUp",0,"",0,"","",""],[1,166,"BrightnessDown",0,"",0,"","",""],[1,167,"MediaPlay",0,"",0,"","",""],[1,168,"MediaRecord",0,"",0,"","",""],[1,169,"MediaFastForward",0,"",0,"","",""],[1,170,"MediaRewind",0,"",0,"","",""],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK","",""],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK","",""],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP","",""],[1,174,"Eject",0,"",0,"","",""],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE","",""],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT","",""],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL","",""],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2","",""],[1,179,"LaunchApp1",0,"",0,"VK_MEDIA_LAUNCH_APP1","",""],[1,180,"SelectTask",0,"",0,"","",""],[1,181,"LaunchScreenSaver",0,"",0,"","",""],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH","",""],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME","",""],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK","",""],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD","",""],[1,186,"BrowserStop",0,"",0,"VK_BROWSER_STOP","",""],[1,187,"BrowserRefresh",0,"",0,"VK_BROWSER_REFRESH","",""],[1,188,"BrowserFavorites",0,"",0,"VK_BROWSER_FAVORITES","",""],[1,189,"ZoomToggle",0,"",0,"","",""],[1,190,"MailReply",0,"",0,"","",""],[1,191,"MailForward",0,"",0,"","",""],[1,192,"MailSend",0,"",0,"","",""],[1,0,"",114,"KeyInComposition",229,"","",""],[1,0,"",116,"ABNT_C2",194,"VK_ABNT_C2","",""],[1,0,"",96,"OEM_8",223,"VK_OEM_8","",""],[1,0,"",0,"",0,"VK_KANA","",""],[1,0,"",0,"",0,"VK_HANGUL","",""],[1,0,"",0,"",0,"VK_JUNJA","",""],[1,0,"",0,"",0,"VK_FINAL","",""],[1,0,"",0,"",0,"VK_HANJA","",""],[1,0,"",0,"",0,"VK_KANJI","",""],[1,0,"",0,"",0,"VK_CONVERT","",""],[1,0,"",0,"",0,"VK_NONCONVERT","",""],[1,0,"",0,"",0,"VK_ACCEPT","",""],[1,0,"",0,"",0,"VK_MODECHANGE","",""],[1,0,"",0,"",0,"VK_SELECT","",""],[1,0,"",0,"",0,"VK_PRINT","",""],[1,0,"",0,"",0,"VK_EXECUTE","",""],[1,0,"",0,"",0,"VK_SNAPSHOT","",""],[1,0,"",0,"",0,"VK_HELP","",""],[1,0,"",0,"",0,"VK_APPS","",""],[1,0,"",0,"",0,"VK_PROCESSKEY","",""],[1,0,"",0,"",0,"VK_PACKET","",""],[1,0,"",0,"",0,"VK_DBE_SBCSCHAR","",""],[1,0,"",0,"",0,"VK_DBE_DBCSCHAR","",""],[1,0,"",0,"",0,"VK_ATTN","",""],[1,0,"",0,"",0,"VK_CRSEL","",""],[1,0,"",0,"",0,"VK_EXSEL","",""],[1,0,"",0,"",0,"VK_EREOF","",""],[1,0,"",0,"",0,"VK_PLAY","",""],[1,0,"",0,"",0,"VK_ZOOM","",""],[1,0,"",0,"",0,"VK_NONAME","",""],[1,0,"",0,"",0,"VK_PA1","",""],[1,0,"",0,"",0,"VK_OEM_CLEAR","",""]],t=[],r=[];for(const s of e){const[a,l,c,d,u,g,f,m,_]=s;if(r[l]||(r[l]=!0,scanCodeStrToInt[c]=l,scanCodeLowerCaseStrToInt[c.toLowerCase()]=l,a&&(IMMUTABLE_CODE_TO_KEY_CODE[l]=d)),!t[d]){if(t[d]=!0,!u)throw new Error("String representation missing for key code ".concat(d," around scan code ").concat(c));uiMap.define(d,u),userSettingsUSMap.define(d,m||u),userSettingsGeneralMap.define(d,_||m||u)}g&&(EVENT_KEY_CODE_MAP[g]=d)}})();var KeyCodeUtils;(function(o){function e(c){return uiMap.keyCodeToStr(c)}o.toString=e;function t(c){return uiMap.strToKeyCode(c)}o.fromString=t;function r(c){return userSettingsUSMap.keyCodeToStr(c)}o.toUserSettingsUS=r;function s(c){return userSettingsGeneralMap.keyCodeToStr(c)}o.toUserSettingsGeneral=s;function a(c){return userSettingsUSMap.strToKeyCode(c)||userSettingsGeneralMap.strToKeyCode(c)}o.fromUserSettings=a;function l(c){if(c>=98&&c<=113)return null;switch(c){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return uiMap.keyCodeToStr(c)}o.toElectronAccelerator=l})(KeyCodeUtils||(KeyCodeUtils={}));function KeyChord(o,e){const t=(e&65535)<<16>>>0;return(o|t)>>>0}function decodeKeybinding(o,e){if(typeof o=="number"){if(o===0)return null;const t=(o&65535)>>>0,r=(o&4294901760)>>>16;return r!==0?new Keybinding$1([createSimpleKeybinding(t,e),createSimpleKeybinding(r,e)]):new Keybinding$1([createSimpleKeybinding(t,e)])}else{const t=[];for(let r=0;r<o.length;r++)t.push(createSimpleKeybinding(o[r],e));return new Keybinding$1(t)}}function createSimpleKeybinding(o,e){const t=!!(o&2048),r=!!(o&256),s=e===2?r:t,a=!!(o&1024),l=!!(o&512),c=e===2?t:r,d=o&255;return new KeyCodeChord(s,a,l,c,d)}class KeyCodeChord{constructor(e,t,r,s,a){this.ctrlKey=e,this.shiftKey=t,this.altKey=r,this.metaKey=s,this.keyCode=a}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}}let Keybinding$1=class{constructor(e){if(e.length===0)throw illegalArgument("chords");this.chords=e}};class ResolvedChord{constructor(e,t,r,s,a,l){this.ctrlKey=e,this.shiftKey=t,this.altKey=r,this.metaKey=s,this.keyLabel=a,this.keyAriaLabel=l}}class ResolvedKeybinding{}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$1)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$2=isMacintosh?256:2048,altKeyMod=512,shiftKeyMod=1024,metaKeyMod=isMacintosh?2048:256;class StandardKeyboardEvent{constructor(e){var r;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=(r=t.getModifierState)==null?void 0:r.call(t,"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$2),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)}}const sameOriginWindowChainCache=new WeakMap;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 null}catch(e){return null}return o.parent}class IframeUtils{static getSameOriginWindowChain(e){let t=sameOriginWindowChainCache.get(e);if(!t){t=[],sameOriginWindowChainCache.set(e,t);let r=e,s;do s=getParentWindowIfSameOrigin(r),s?t.push({window:new WeakRef(r),iframeElement:r.frameElement||null}):t.push({window:new WeakRef(r),iframeElement:null}),r=s;while(r)}return t.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(e,t){var l,c;if(!t||e===t)return{top:0,left:0};let r=0,s=0;const a=this.getSameOriginWindowChain(e);for(const d of a){const u=d.window.deref();if(r+=(l=u==null?void 0:u.scrollY)!=null?l:0,s+=(c=u==null?void 0:u.scrollX)!=null?c:0,u===t||!d.iframeElement)break;const g=d.iframeElement.getBoundingClientRect();r+=g.top,s+=g.left}return{top:r,left:s}}}class StandardMouseEvent{constructor(e,t){this.timestamp=Date.now(),this.browserEvent=t,this.leftButton=t.button===0,this.middleButton=t.button===1,this.rightButton=t.button===2,this.buttons=t.buttons,this.defaultPrevented=t.defaultPrevented,this.target=t.target,this.detail=t.detail||1,t.type==="dblclick"&&(this.detail=2),this.ctrlKey=t.ctrlKey,this.shiftKey=t.shiftKey,this.altKey=t.altKey,this.metaKey=t.metaKey,typeof t.pageX=="number"?(this.posx=t.pageX,this.posy=t.pageY):(this.posx=t.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=t.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);const r=IframeUtils.getPositionOfChildWindowRelativeToAncestorWindow(e,t.view);this.posx-=r.left,this.posy-=r.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}}class StandardWheelEvent{constructor(e,t=0,r=0){var a;this.browserEvent=e||null,this.target=e?e.target||e.targetNode||e.srcElement:null,this.deltaY=r,this.deltaX=t;let s=!1;if(isChrome$1){const l=navigator.userAgent.match(/Chrome\/(\d+)/);s=(l?parseInt(l[1]):123)<=122}if(e){const l=e,c=e,d=((a=e.view)==null?void 0:a.devicePixelRatio)||1;if(typeof l.wheelDeltaY<"u")s?this.deltaY=l.wheelDeltaY/(120*d):this.deltaY=l.wheelDeltaY/120;else if(typeof c.VERTICAL_AXIS<"u"&&c.axis===c.VERTICAL_AXIS)this.deltaY=-c.detail/3;else if(e.type==="wheel"){const u=e;u.deltaMode===u.DOM_DELTA_LINE?isFirefox$1&&!isMacintosh?this.deltaY=-e.deltaY/3:this.deltaY=-e.deltaY:this.deltaY=-e.deltaY/40}if(typeof l.wheelDeltaX<"u")isSafari$1&&isWindows?this.deltaX=-(l.wheelDeltaX/120):s?this.deltaX=l.wheelDeltaX/(120*d):this.deltaX=l.wheelDeltaX/120;else if(typeof c.HORIZONTAL_AXIS<"u"&&c.axis===c.HORIZONTAL_AXIS)this.deltaX=-e.detail/3;else if(e.type==="wheel"){const u=e;u.deltaMode===u.DOM_DELTA_LINE?isFirefox$1&&!isMacintosh?this.deltaX=-e.deltaX/3:this.deltaX=-e.deltaX:this.deltaX=-e.deltaX/40}this.deltaY===0&&this.deltaX===0&&e.wheelDelta&&(s?this.deltaY=e.wheelDelta/(120*d):this.deltaY=e.wheelDelta/120)}}preventDefault(){var e;(e=this.browserEvent)==null||e.preventDefault()}stopPropagation(){var e;(e=this.browserEvent)==null||e.stopPropagation()}}function createSingleCallFunction(o,e){const t=this;let r=!1,s;return function(){return r||(r=!0,s=o.apply(t,arguments)),s}}var Iterable;(function(o){function e(k){return!!k&&typeof k=="object"&&typeof k[Symbol.iterator]=="function"}o.is=e;const t=Object.freeze([]);function r(){return t}o.empty=r;function*s(k){yield k}o.single=s;function a(k){return e(k)?k:s(k)}o.wrap=a;function l(k){return k||t}o.from=l;function*c(k){for(let D=k.length-1;D>=0;D--)yield k[D]}o.reverse=c;function d(k){return!k||k[Symbol.iterator]().next().done===!0}o.isEmpty=d;function u(k){return k[Symbol.iterator]().next().value}o.first=u;function g(k,D){let I=0;for(const T of k)if(D(T,I++))return!0;return!1}o.some=g;function f(k,D){let I=0;for(const T of k)if(!D(T,I++))return!1;return!0}o.every=f;function m(k,D){for(const I of k)if(D(I))return I}o.find=m;function*_(k,D){for(const I of k)D(I)&&(yield I)}o.filter=_;function*v(k,D){let I=0;for(const T of k)yield D(T,I++)}o.map=v;function*b(k,D){let I=0;for(const T of k)yield*D(T,I++)}o.flatMap=b;function*C(...k){for(const D of k)isIterable(D)?yield*D:yield D}o.concat=C;function y(k,D,I){let T=I;for(const M of k)T=D(T,M);return T}o.reduce=y;function S(k){let D=0;for(const I of k)D++;return D}o.length=S;function*w(k,D,I=k.length){for(D<-k.length&&(D=0),D<0&&(D+=k.length),I<0?I+=k.length:I>k.length&&(I=k.length);D<I;D++)yield k[D]}o.slice=w;function E(k,D=Number.POSITIVE_INFINITY){const I=[];if(D===0)return[I,k];const T=k[Symbol.iterator]();for(let M=0;M<D;M++){const R=T.next();if(R.done)return[I,o.empty()];I.push(R.value)}return[I,{[Symbol.iterator](){return T}}]}o.consume=E;async function x(k){const D=[];for await(const I of k)D.push(I);return D}o.asyncToArray=x;async function L(k){let D=[];for await(const I of k)D=D.concat(I);return D}o.asyncToArrayFlat=L})(Iterable||(Iterable={}));function setParentOfDisposable(o,e){}function markAsSingleton(o){return o}function isDisposable(o){return typeof o=="object"&&o!==null&&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(r){e.push(r)}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))}class FunctionDisposable{constructor(e){this._isDisposed=!1,this._fn=e}dispose(){if(!this._isDisposed){if(!this._fn)throw new Error("Unbound disposable context: Need to use an arrow function to preserve the value of this");this._isDisposed=!0,this._fn()}}}function toDisposable(o){return new FunctionDisposable(o)}var Yi;let DisposableStore$1=(Yi=class{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||e===Disposable$1.None)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?Yi.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}delete(e){if(e){if(e===this)throw new Error("Cannot dispose a disposable on itself!");this._toDispose.delete(e),e.dispose()}}},Yi.DISABLE_DISPOSED_WARNING=!1,Yi);var gr;let Disposable$1=(gr=class{constructor(){this._store=new DisposableStore$1,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)}},gr.None=Object.freeze({dispose(){}}),gr);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.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,(e=this._value)==null||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,r=!1){var s;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),r||(s=this._store.get(e))==null||s.dispose(),this._store.set(e,t)}deleteAndDispose(e){var t;(t=this._store.get(e))==null||t.dispose(),this._store.delete(e)}values(){return this._store.values()}[Symbol.iterator](){return this._store[Symbol.iterator]()}}var Jt;let Node$3=(Jt=class{constructor(e){this.element=e,this.next=Jt.Undefined,this.prev=Jt.Undefined}},Jt.Undefined=new Jt(void 0),Jt);class LinkedList{constructor(){this._first=Node$3.Undefined,this._last=Node$3.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Node$3.Undefined}clear(){let e=this._first;for(;e!==Node$3.Undefined;){const t=e.next;e.prev=Node$3.Undefined,e.next=Node$3.Undefined,e=t}this._first=Node$3.Undefined,this._last=Node$3.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const r=new Node$3(e);if(this._first===Node$3.Undefined)this._first=r,this._last=r;else if(t){const a=this._last;this._last=r,r.prev=a,a.next=r}else{const a=this._first;this._first=r,r.next=a,a.prev=r}this._size+=1;let s=!1;return()=>{s||(s=!0,this._remove(r))}}shift(){if(this._first!==Node$3.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==Node$3.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==Node$3.Undefined&&e.next!==Node$3.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===Node$3.Undefined&&e.next===Node$3.Undefined?(this._first=Node$3.Undefined,this._last=Node$3.Undefined):e.next===Node$3.Undefined?(this._last=this._last.prev,this._last.next=Node$3.Undefined):e.prev===Node$3.Undefined&&(this._first=this._first.next,this._first.prev=Node$3.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==Node$3.Undefined;)yield e.element,e=e.next}}const performanceNow=globalThis.performance.now.bind(globalThis.performance);class StopWatch{static create(e){return new StopWatch(e)}constructor(e){this._now=e===!1?Date.now:performanceNow,this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}var Event$1;(function(o){o.None=()=>Disposable$1.None;function e(R,N){return m(R,()=>{},0,void 0,!0,void 0,N)}o.defer=e;function t(R){return(N,A=null,O)=>{let P=!1,F;return F=R(B=>{if(!P)return F?F.dispose():P=!0,N.call(A,B)},null,O),P&&F.dispose(),F}}o.once=t;function r(R,N){return o.once(o.filter(R,N))}o.onceIf=r;function s(R,N,A){return g((O,P=null,F)=>R(B=>O.call(P,N(B)),null,F),A)}o.map=s;function a(R,N,A){return g((O,P=null,F)=>R(B=>{N(B),O.call(P,B)},null,F),A)}o.forEach=a;function l(R,N,A){return g((O,P=null,F)=>R(B=>N(B)&&O.call(P,B),null,F),A)}o.filter=l;function c(R){return R}o.signal=c;function d(...R){return(N,A=null,O)=>{const P=combinedDisposable(...R.map(F=>F(B=>N.call(A,B))));return f(P,O)}}o.any=d;function u(R,N,A,O){let P=A;return s(R,F=>(P=N(P,F),P),O)}o.reduce=u;function g(R,N){let A;const O={onWillAddFirstListener(){A=R(P.fire,P)},onDidRemoveLastListener(){A==null||A.dispose()}},P=new Emitter$1(O);return N==null||N.add(P),P.event}function f(R,N){return N instanceof Array?N.push(R):N&&N.add(R),R}function m(R,N,A=100,O=!1,P=!1,F,B){let H,V,U,j=0,X;const ee={leakWarningThreshold:F,onWillAddFirstListener(){H=R(J=>{j++,V=N(V,J),O&&!U&&(Z.fire(V),V=void 0),X=()=>{const q=V;V=void 0,U=void 0,(!O||j>1)&&Z.fire(q),j=0},typeof A=="number"?(U&&clearTimeout(U),U=setTimeout(X,A)):U===void 0&&(U=null,queueMicrotask(X))})},onWillRemoveListener(){P&&j>0&&(X==null||X())},onDidRemoveLastListener(){X=void 0,H.dispose()}},Z=new Emitter$1(ee);return B==null||B.add(Z),Z.event}o.debounce=m;function _(R,N=0,A){return o.debounce(R,(O,P)=>O?(O.push(P),O):[P],N,void 0,!0,void 0,A)}o.accumulate=_;function v(R,N=(O,P)=>O===P,A){let O=!0,P;return l(R,F=>{const B=O||!N(F,P);return O=!1,P=F,B},A)}o.latch=v;function b(R,N,A){return[o.filter(R,N,A),o.filter(R,O=>!N(O),A)]}o.split=b;function C(R,N=!1,A=[],O){let P=A.slice(),F=R(V=>{P?P.push(V):H.fire(V)});O&&O.add(F);const B=()=>{P==null||P.forEach(V=>H.fire(V)),P=null},H=new Emitter$1({onWillAddFirstListener(){F||(F=R(V=>H.fire(V)),O&&O.add(F))},onDidAddFirstListener(){P&&(N?setTimeout(B):B())},onDidRemoveLastListener(){F&&F.dispose(),F=null}});return O&&O.add(H),H.event}o.buffer=C;function y(R,N){return(O,P,F)=>{const B=N(new w);return R(function(H){const V=B.evaluate(H);V!==S&&O.call(P,V)},void 0,F)}}o.chain=y;const S=Symbol("HaltChainable");class w{constructor(){this.steps=[]}map(N){return this.steps.push(N),this}forEach(N){return this.steps.push(A=>(N(A),A)),this}filter(N){return this.steps.push(A=>N(A)?A:S),this}reduce(N,A){let O=A;return this.steps.push(P=>(O=N(O,P),O)),this}latch(N=(A,O)=>A===O){let A=!0,O;return this.steps.push(P=>{const F=A||!N(P,O);return A=!1,O=P,F?P:S}),this}evaluate(N){for(const A of this.steps)if(N=A(N),N===S)break;return N}}function E(R,N,A=O=>O){const O=(...H)=>B.fire(A(...H)),P=()=>R.on(N,O),F=()=>R.removeListener(N,O),B=new Emitter$1({onWillAddFirstListener:P,onDidRemoveLastListener:F});return B.event}o.fromNodeEventEmitter=E;function x(R,N,A=O=>O){const O=(...H)=>B.fire(A(...H)),P=()=>R.addEventListener(N,O),F=()=>R.removeEventListener(N,O),B=new Emitter$1({onWillAddFirstListener:P,onDidRemoveLastListener:F});return B.event}o.fromDOMEventEmitter=x;function L(R,N){let A;const O=new Promise((P,F)=>{const B=t(R)(P,null,N);A=()=>B.dispose()});return O.cancel=A,O}o.toPromise=L;function k(R,N){return R(A=>N.fire(A))}o.forward=k;function D(R,N,A){return N(A),R(O=>N(O))}o.runAndSubscribe=D;class I{constructor(N,A){this._observable=N,this._counter=0,this._hasChanged=!1;const O={onWillAddFirstListener:()=>{N.addObserver(this),this._observable.reportChanges()},onDidRemoveLastListener:()=>{N.removeObserver(this)}};this.emitter=new Emitter$1(O),A&&A.add(this.emitter)}beginUpdate(N){this._counter++}handlePossibleChange(N){}handleChange(N,A){this._hasChanged=!0}endUpdate(N){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function T(R,N){return new I(R,N).emitter.event}o.fromObservable=T;function M(R){return(N,A,O)=>{let P=0,F=!1;const B={beginUpdate(){P++},endUpdate(){P--,P===0&&(R.reportChanges(),F&&(F=!1,N.call(A)))},handlePossibleChange(){},handleChange(){F=!0}};R.addObserver(B),R.reportChanges();const H={dispose(){R.removeObserver(B)}};return O instanceof DisposableStore$1?O.add(H):Array.isArray(O)&&O.push(H),H}}o.fromObservableLight=M})(Event$1||(Event$1={}));const Xn=class Xn{constructor(e){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name="".concat(e,"_").concat(Xn._idPool++),Xn.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}}};Xn.all=new Set,Xn._idPool=0;let EventProfiling=Xn,_globalLeakWarningThreshold=-1;const oo=class oo{constructor(e,t,r=(oo._idPool++).toString(16).padStart(3,"0")){this._errorHandler=e,this.threshold=t,this.name=r,this._warnCountdown=0}dispose(){var e;(e=this._stacks)==null||e.clear()}check(e,t){const r=this.threshold;if(r<=0||t<r)return;this._stacks||(this._stacks=new Map);const s=this._stacks.get(e.value)||0;if(this._stacks.set(e.value,s+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=r*.5;const[a,l]=this.getMostFrequentStack(),c="[".concat(this.name,"] potential listener LEAK detected, having ").concat(t," listeners already. MOST frequent listener (").concat(l,"):");console.warn(c),console.warn(a);const d=new ListenerLeakError(c,a);this._errorHandler(d)}return()=>{const a=this._stacks.get(e.value)||0;this._stacks.set(e.value,a-1)}}getMostFrequentStack(){if(!this._stacks)return;let e,t=0;for(const[r,s]of this._stacks)(!e||t<s)&&(e=[r,s],t=s);return e}};oo._idPool=1;let LeakageMonitor=oo;class Stacktrace{static create(){var t;const e=new Error;return new Stacktrace((t=e.stack)!=null?t:"")}constructor(e){this.value=e}print(){console.warn(this.value.split("\n").slice(2).join("\n"))}}class ListenerLeakError extends Error{constructor(e,t){super(e),this.name="ListenerLeakError",this.stack=t}}class ListenerRefusalError extends Error{constructor(e,t){super(e),this.name="ListenerRefusalError",this.stack=t}}class UniqueContainer{constructor(e){this.value=e}}const compactionThreshold=2;let Emitter$1=class{constructor(e){var t,r,s,a,l,c;this._size=0,this._options=e,this._leakageMon=(t=this._options)!=null&&t.leakWarningThreshold?new LeakageMonitor((r=e==null?void 0:e.onListenerError)!=null?r:onUnexpectedError,(a=(s=this._options)==null?void 0:s.leakWarningThreshold)!=null?a:_globalLeakWarningThreshold):void 0,this._perfMon=(l=this._options)!=null&&l._profName?new EventProfiling(this._options._profName):void 0,this._deliveryQueue=(c=this._options)==null?void 0:c.deliveryQueue}dispose(){var e,t,r,s;this._disposed||(this._disposed=!0,((e=this._deliveryQueue)==null?void 0:e.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),(r=(t=this._options)==null?void 0:t.onDidRemoveLastListener)==null||r.call(t),(s=this._leakageMon)==null||s.dispose())}get event(){var e;return(e=this._event)!=null||(this._event=(t,r,s)=>{var d,u,g,f,m,_,v,b,C;if(this._leakageMon&&this._size>this._leakageMon.threshold**2){const y="[".concat(this._leakageMon.name,"] REFUSES to accept new listeners because it exceeded its threshold by far (").concat(this._size," vs ").concat(this._leakageMon.threshold,")");console.warn(y);const S=(d=this._leakageMon.getMostFrequentStack())!=null?d:["UNKNOWN stack",-1],w=new ListenerRefusalError("".concat(y,". HINT: Stack shows most frequent listener (").concat(S[1],"-times)"),S[0]);return(((u=this._options)==null?void 0:u.onListenerError)||onUnexpectedError)(w),Disposable$1.None}if(this._disposed)return Disposable$1.None;r&&(t=t.bind(r));const a=new UniqueContainer(t);let l;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(a.stack=Stacktrace.create(),l=this._leakageMon.check(a.stack,this._size+1)),this._listeners?this._listeners instanceof UniqueContainer?((v=this._deliveryQueue)!=null||(this._deliveryQueue=new EventDeliveryQueuePrivate),this._listeners=[this._listeners,a]):this._listeners.push(a):((f=(g=this._options)==null?void 0:g.onWillAddFirstListener)==null||f.call(g,this),this._listeners=a,(_=(m=this._options)==null?void 0:m.onDidAddFirstListener)==null||_.call(m,this)),(C=(b=this._options)==null?void 0:b.onDidAddListener)==null||C.call(b,this),this._size++;const c=toDisposable(()=>{l==null||l(),this._removeListener(a)});return s instanceof DisposableStore$1?s.add(c):Array.isArray(s)&&s.push(c),c}),this._event}_removeListener(e){var a,l,c,d;if((l=(a=this._options)==null?void 0:a.onWillRemoveListener)==null||l.call(a,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(d=(c=this._options)==null?void 0:c.onDidRemoveLastListener)==null||d.call(c,this),this._size=0;return}const t=this._listeners,r=t.indexOf(e);if(r===-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--,t[r]=void 0;const s=this._deliveryQueue.current===this;if(this._size*compactionThreshold<=t.length){let u=0;for(let g=0;g<t.length;g++)t[g]?t[u++]=t[g]:s&&u<this._deliveryQueue.end&&(this._deliveryQueue.end--,u<this._deliveryQueue.i&&this._deliveryQueue.i--);t.length=u}}_deliver(e,t){var s;if(!e)return;const r=((s=this._options)==null?void 0:s.onListenerError)||onUnexpectedError;if(!r){e.value(t);return}try{e.value(t)}catch(a){r(a)}}_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,r,s,a;if((t=this._deliveryQueue)!=null&&t.current&&(this._deliverQueue(this._deliveryQueue),(r=this._perfMon)==null||r.stop()),(s=this._perfMon)==null||s.start(this._size),this._listeners)if(this._listeners instanceof UniqueContainer)this._deliver(this._listeners,e);else{const l=this._deliveryQueue;l.enqueue(this,e,this._listeners.length),this._deliverQueue(l)}(a=this._perfMon)==null||a.stop()}hasListeners(){return this._size>0}};const createEventDeliveryQueue=()=>new EventDeliveryQueuePrivate;class EventDeliveryQueuePrivate{constructor(){this.i=-1,this.end=0}enqueue(e,t,r){this.i=0,this.end=r,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: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 s=this.events.indexOf(t);this.events.splice(s,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){var t;(t=e.listener)==null||t.dispose(),e.listener=null}dispose(){var e;this.emitter.dispose();for(const t of this.events)(e=t.listener)==null||e.dispose();this.events=[]}}class EventBufferer{constructor(){this.data=[]}wrapEvent(e,t,r){return(s,a,l)=>e(c=>{var g;const d=this.data[this.data.length-1];if(!t){d?d.buffers.push(()=>s.call(a,c)):s.call(a,c);return}const u=d;if(!u){s.call(a,t(r,c));return}(g=u.items)!=null||(u.items=[]),u.items.push(c),u.buffers.length===0&&d.buffers.push(()=>{var f;(f=u.reducedResult)!=null||(u.reducedResult=r?u.items.reduce(t,r):u.items.reduce(t)),s.call(a,u.reducedResult)})},void 0,l)}bufferEvents(e){const t={buffers:new Array};this.data.push(t);const r=e();return this.data.pop(),t.buffers.forEach(s=>s()),r}}class Relay{constructor(){this.listening=!1,this.inputEvent=Event$1.None,this.inputEventListener=Disposable$1.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$1.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.dispose(),this._token?this._token instanceof MutableToken&&this._token.dispose():this._token=CancellationToken.None}};function cancelOnDispose(o){const e=new CancellationTokenSource$1;return o.add({dispose(){e.cancel()}}),e.token}const MicrotaskDelay=Symbol("MicrotaskDelay");function isThenable$1(o){return!!o&&typeof o.then=="function"}function createCancelablePromise(o){const e=new CancellationTokenSource$1,t=o(e.token);let r=!1;const s=new Promise((a,l)=>{const c=e.token.onCancellationRequested(()=>{r=!0,c.dispose(),l(new CancellationError)});Promise.resolve(t).then(d=>{c.dispose(),e.dispose(),r?isDisposable(d)&&d.dispose():a(d)},d=>{c.dispose(),e.dispose(),l(d)})});return new class{cancel(){e.cancel(),e.dispose()}then(a,l){return s.then(a,l)}catch(a){return this.then(void 0,a)}finally(a){return s.finally(a)}}}function raceCancellation(o,e,t){return new Promise((r,s)=>{const a=e.onCancellationRequested(()=>{a.dispose(),r(t)});o.then(r,s).finally(()=>a.dispose())})}function raceCancellationError(o,e){return new Promise((t,r)=>{const s=e.onCancellationRequested(()=>{s.dispose(),r(new CancellationError)});o.then(t,r).finally(()=>s.dispose())})}let Throttler$1=class{constructor(){this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null,this.cancellationTokenSource=new CancellationTokenSource$1}queue(e){if(this.cancellationTokenSource.token.isCancellationRequested)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const t=()=>{if(this.queuedPromise=null,this.cancellationTokenSource.token.isCancellationRequested)return;const r=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,r};this.queuedPromise=new Promise(r=>{this.activePromise.then(t,t).then(r)})}return new Promise((t,r)=>{this.queuedPromise.then(t,r)})}return this.activePromise=e(this.cancellationTokenSource.token),new Promise((t,r)=>{this.activePromise.then(s=>{this.activePromise=null,t(s)},s=>{this.activePromise=null,r(s)})})}dispose(){this.cancellationTokenSource.cancel()}};const timeoutDeferred=(o,e)=>{let t=!0;const r=setTimeout(()=>{t=!1,e()},o);return{isTriggered:()=>t,dispose:()=>{clearTimeout(r),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((s,a)=>{this.doResolve=s,this.doReject=a}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const s=this.task;return this.task=null,s()}}));const r=()=>{var s;this.deferred=null,(s=this.doResolve)==null||s.call(this,null)};return this.deferred=t===MicrotaskDelay?microtaskDeferred(r):timeoutDeferred(t,r),this.completionPromise}isTriggered(){var e;return!!((e=this.deferred)!=null&&e.isTriggered())}cancel(){var e;this.cancelTimeout(),this.completionPromise&&((e=this.doReject)==null||e.call(this,new CancellationError),this.completionPromise=null)}cancelTimeout(){var e;(e=this.deferred)==null||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class ThrottledDelayer{constructor(e){this.delayer=new Delayer(e),this.throttler=new Throttler$1}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,r)=>{const s=setTimeout(()=>{a.dispose(),t()},o),a=e.onCancellationRequested(()=>{clearTimeout(s),a.dispose(),r(new CancellationError)})}):createCancelablePromise(t=>timeout(o,t))}function disposableTimeout(o,e=0,t){const r=setTimeout(()=>{o(),t&&s.dispose()},e),s=toDisposable(()=>{clearTimeout(r),t==null||t.delete(s)});return t==null||t.add(s),s}function first(o,e=r=>!!r,t=null){let r=0;const s=o.length,a=()=>{if(r>=s)return Promise.resolve(t);const l=o[r++];return Promise.resolve(l()).then(d=>e(d)?Promise.resolve(d):a())};return a()}let TaskQueue$1=class{constructor(){this._runningTask=void 0,this._pendingTasks=[]}schedule(e){const t=new DeferredPromise;return this._pendingTasks.push({task:e,deferred:t,setUndefinedWhenCleared:!1}),this._runIfNotRunning(),t.p}_runIfNotRunning(){this._runningTask===void 0&&this._processQueue()}async _processQueue(){if(this._pendingTasks.length===0)return;const e=this._pendingTasks.shift();if(e){if(this._runningTask)throw new BugIndicatingError;this._runningTask=e.task;try{const t=await e.task();e.deferred.complete(t)}catch(t){e.deferred.error(t)}finally{this._runningTask=void 0,this._processQueue()}}}clearPending(){const e=this._pendingTasks;this._pendingTasks=[];for(const t of e)t.setUndefinedWhenCleared?t.deferred.complete(void 0):t.deferred.error(new CancellationError)}};class TimeoutTimer{constructor(e,t){this._isDisposed=!1,this._token=void 0,typeof e=="function"&&typeof t=="number"&&this.setIfNotSet(e,t)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==void 0&&(clearTimeout(this._token),this._token=void 0)}cancelAndSet(e,t){if(this._isDisposed)throw new BugIndicatingError("Calling 'cancelAndSet' on a disposed TimeoutTimer");this.cancel(),this._token=setTimeout(()=>{this._token=void 0,e()},t)}setIfNotSet(e,t){if(this._isDisposed)throw new BugIndicatingError("Calling 'setIfNotSet' on a disposed TimeoutTimer");this._token===void 0&&(this._token=setTimeout(()=>{this._token=void 0,e()},t))}}class IntervalTimer{constructor(){this.disposable=void 0,this.isDisposed=!1}cancel(){var e;(e=this.disposable)==null||e.dispose(),this.disposable=void 0}cancelAndSet(e,t,r=globalThis){if(this.isDisposed)throw new BugIndicatingError("Calling 'cancelAndSet' on a disposed IntervalTimer");this.cancel();const s=r.setInterval(()=>{e()},t);this.disposable=toDisposable(()=>{r.clearInterval(s),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}}class RunOnceScheduler{constructor(e,t){this.timeoutToken=void 0,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=void 0)}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!==void 0}onTimeout(){this.timeoutToken=void 0,this.runner&&this.doRun()}doRun(){var e;(e=this.runner)==null||e.call(this)}}let runWhenGlobalIdle,_runWhenIdle;(function(){const o=globalThis;typeof o.requestIdleCallback!="function"||typeof o.cancelIdleCallback!="function"?_runWhenIdle=(e,t,r)=>{setTimeout0(()=>{if(s)return;const a=Date.now()+15;t(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,a-Date.now())}}))});let s=!1;return{dispose(){s||(s=!0)}}}:_runWhenIdle=(e,t,r)=>{const s=e.requestIdleCallback(t,typeof r=="number"?{timeout:r}:void 0);let a=!1;return{dispose(){a||(a=!0,e.cancelIdleCallback(s))}}},runWhenGlobalIdle=(e,t)=>_runWhenIdle(globalThis,e,t)})();class AbstractIdleValue{constructor(e,t){this._didRun=!1,this._executor=()=>{try{this._value=t()}catch(r){this._error=r}finally{this._didRun=!0}},this._handle=_runWhenIdle(e,()=>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 GlobalIdleValue extends AbstractIdleValue{constructor(e){super(globalThis,e)}}class DeferredPromise{get isRejected(){var e;return((e=this.outcome)==null?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 this.isSettled?Promise.resolve():new Promise(t=>{this.completeCallback(e),this.outcome={outcome:0,value:e},t()})}error(e){return this.isSettled?Promise.resolve():new Promise(t=>{this.errorCallback(e),this.outcome={outcome:1,value:e},t()})}cancel(){return this.error(new CancellationError)}}var Promises;(function(o){async function e(r){let s;const a=await Promise.all(r.map(l=>l.then(c=>c,c=>{s||(s=c)})));if(typeof s<"u")throw s;return a}o.settled=e;function t(r){return new Promise(async(s,a)=>{try{await r(s,a)}catch(l){a(l)}})}o.withAsyncBody=t})(Promises||(Promises={}));function createCancelableAsyncIterableProducer(o){const e=new CancellationTokenSource$1,t=o(e.token);return new CancelableAsyncIterableProducer(e,async r=>{const s=e.token.onCancellationRequested(()=>{s.dispose(),e.dispose(),r.reject(new CancellationError)});try{for await(const a of t){if(e.token.isCancellationRequested)return;r.emitOne(a)}s.dispose(),e.dispose()}catch(a){s.dispose(),e.dispose(),r.reject(a)}})}class ProducerConsumer{constructor(){this._unsatisfiedConsumers=[],this._unconsumedValues=[]}get hasFinalValue(){return!!this._finalValue}produce(e){if(this._ensureNoFinalValue(),this._unsatisfiedConsumers.length>0){const t=this._unsatisfiedConsumers.shift();this._resolveOrRejectDeferred(t,e)}else this._unconsumedValues.push(e)}produceFinal(e){this._ensureNoFinalValue(),this._finalValue=e;for(const t of this._unsatisfiedConsumers)this._resolveOrRejectDeferred(t,e);this._unsatisfiedConsumers.length=0}_ensureNoFinalValue(){if(this._finalValue)throw new BugIndicatingError("ProducerConsumer: cannot produce after final value has been set")}_resolveOrRejectDeferred(e,t){t.ok?e.complete(t.value):e.error(t.error)}consume(){if(this._unconsumedValues.length>0||this._finalValue){const e=this._unconsumedValues.length>0?this._unconsumedValues.shift():this._finalValue;return e.ok?Promise.resolve(e.value):Promise.reject(e.error)}else{const e=new DeferredPromise;return this._unsatisfiedConsumers.push(e),e.p}}}const ot=class ot{constructor(e,t){this._onReturn=t,this._producerConsumer=new ProducerConsumer,this._iterator={next:()=>this._producerConsumer.consume(),return:()=>{var r;return(r=this._onReturn)==null||r.call(this),Promise.resolve({done:!0,value:void 0})},throw:async r=>(this._finishError(r),{done:!0,value:void 0})},queueMicrotask(async()=>{const r=e({emitOne:s=>this._producerConsumer.produce({ok:!0,value:{done:!1,value:s}}),emitMany:s=>{for(const a of s)this._producerConsumer.produce({ok:!0,value:{done:!1,value:a}})},reject:s=>this._finishError(s)});if(!this._producerConsumer.hasFinalValue)try{await r,this._finishOk()}catch(s){this._finishError(s)}})}static fromArray(e){return new ot(t=>{t.emitMany(e)})}static fromPromise(e){return new ot(async t=>{t.emitMany(await e)})}static fromPromisesResolveOrder(e){return new ot(async t=>{await Promise.all(e.map(async r=>t.emitOne(await r)))})}static merge(e){return new ot(async t=>{await Promise.all(e.map(async r=>{for await(const s of r)t.emitOne(s)}))})}static map(e,t){return new ot(async r=>{for await(const s of e)r.emitOne(t(s))})}map(e){return ot.map(this,e)}static coalesce(e){return ot.filter(e,t=>!!t)}coalesce(){return ot.coalesce(this)}static filter(e,t){return new ot(async r=>{for await(const s of e)t(s)&&r.emitOne(s)})}filter(e){return ot.filter(this,e)}_finishOk(){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!0,value:{done:!0,value:void 0}})}_finishError(e){this._producerConsumer.hasFinalValue||this._producerConsumer.produceFinal({ok:!1,error:e})}[Symbol.asyncIterator](){return this._iterator}};ot.EMPTY=ot.fromArray([]);let AsyncIterableProducer=ot;class CancelableAsyncIterableProducer extends AsyncIterableProducer{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}function identity(o){return o}class LRUCachedFunction{constructor(e,t){this.lastCache=void 0,this.lastArgKey=void 0,typeof e=="function"?(this._fn=e,this._computeKey=identity):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){const t=this._computeKey(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this._fn(e)),this.lastCache}}class CachedFunction{get cachedValues(){return this._map}constructor(e,t){this._map=new Map,this._map2=new Map,typeof e=="function"?(this._fn=e,this._computeKey=identity):(this._fn=t,this._computeKey=e.getCacheKey)}get(e){const t=this._computeKey(e);if(this._map2.has(t))return this._map2.get(t);const r=this._fn(e);return this._map.set(e,r),this._map2.set(t,r),r}}var LazyValueState;(function(o){o[o.Uninitialized=0]="Uninitialized",o[o.Running=1]="Running",o[o.Completed=2]="Completed"})(LazyValueState||(LazyValueState={}));class Lazy{constructor(e){this.executor=e,this._state=LazyValueState.Uninitialized}get value(){if(this._state===LazyValueState.Uninitialized){this._state=LazyValueState.Running;try{this._value=this.executor()}catch(e){this._error=e}finally{this._state=LazyValueState.Completed}}else if(this._state===LazyValueState.Running)throw new Error("Cannot read the value of a lazy that is being initialized");if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}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,r){const s=parseInt(r,10);return isNaN(s)||s<0||s>=e.length?t:e[s]})}function htmlAttributeEncodeValue(o){return o.replace(/[<>"'&]/g,e=>{switch(e){case"<":return"&lt;";case">":return"&gt;";case'"':return"&quot;";case"'":return"&apos;";case"&":return"&amp;"}return e})}function escape$2(o){return o.replace(/[<>&]/g,function(e){switch(e){case"<":return"&lt;";case">":return"&gt;";case"&":return"&amp;";default:return e}})}function escapeRegExpCharacters(o){return o.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function trim(o,e=" "){const t=ltrim(o,e);return rtrim$1(t,e)}function ltrim(o,e){if(!o||!e)return o;const t=e.length;if(t===0||o.length===0)return o;let r=0;for(;o.indexOf(e,r)===r;)r=r+t;return o.substring(r)}function rtrim$1(o,e){if(!o||!e)return o;const t=e.length,r=o.length;if(t===0||r===0)return o;let s=r,a=-1;for(;a=o.lastIndexOf(e,s-1),!(a===-1||a+t!==s);){if(a===0)return"";s=a}return o.substring(0,s)}function convertSimple2RegExpPattern(o){return o.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").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 r="";return t.global&&(r+="g"),t.matchCase||(r+="i"),t.multiline&&(r+="m"),t.unicode&&(r+="u"),new RegExp(o,r)}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 r=o.charCodeAt(e);if(r!==32&&r!==9)return e}return-1}function getLeadingWhitespace(o,e=0,t=o.length){for(let r=e;r<t;r++){const s=o.charCodeAt(r);if(s!==32&&s!==9)return o.substring(e,r)}return o.substring(e,t)}function lastNonWhitespaceIndex(o,e=o.length-1){for(let t=e;t>=0;t--){const r=o.charCodeAt(t);if(r!==32&&r!==9)return t}return-1}function compare(o,e){return o<e?-1:o>e?1:0}function compareSubstring(o,e,t=0,r=o.length,s=0,a=e.length){for(;t<r&&s<a;t++,s++){const d=o.charCodeAt(t),u=e.charCodeAt(s);if(d<u)return-1;if(d>u)return 1}const l=r-t,c=a-s;return l<c?-1:l>c?1:0}function compareIgnoreCase(o,e){return compareSubstringIgnoreCase(o,e,0,o.length,0,e.length)}function compareSubstringIgnoreCase(o,e,t=0,r=o.length,s=0,a=e.length){for(;t<r&&s<a;t++,s++){let d=o.charCodeAt(t),u=e.charCodeAt(s);if(d===u)continue;if(d>=128||u>=128)return compareSubstring(o.toLowerCase(),e.toLowerCase(),t,r,s,a);isLowerAsciiLetter(d)&&(d-=32),isLowerAsciiLetter(u)&&(u-=32);const g=d-u;if(g!==0)return g}const l=r-t,c=a-s;return l<c?-1:l>c?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 t<=o.length&&compareSubstringIgnoreCase(o,e,0,t)===0}function endsWithIgnoreCase(o,e){const t=o.length,r=t-e.length;return r>=0&&compareSubstringIgnoreCase(o,e,r,t)===0}function commonPrefixLength(o,e){const t=Math.min(o.length,e.length);let r;for(r=0;r<t;r++)if(o.charCodeAt(r)!==e.charCodeAt(r))return r;return t}function commonSuffixLength(o,e){const t=Math.min(o.length,e.length);let r;const s=o.length-1,a=e.length-1;for(r=0;r<t;r++)if(o.charCodeAt(s-r)!==e.charCodeAt(a-r))return r;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 r=o.charCodeAt(t);if(isHighSurrogate(r)&&t+1<e){const s=o.charCodeAt(t+1);if(isLowSurrogate(s))return computeCodePoint(r,s)}return r}function getPrevCodePoint(o,e){const t=o.charCodeAt(e-1);if(isLowSurrogate(t)&&e>1){const r=o.charCodeAt(e-2);if(isHighSurrogate(r))return computeCodePoint(r,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,r=t.offset;let s=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const a=t.offset,l=e.getGraphemeBreakType(t.nextCodePoint());if(breakBetweenGraphemeBreakType(s,l)){t.setOffset(a);break}s=l}return t.offset-r}prevGraphemeLength(){const e=GraphemeBreakTree.getInstance(),t=this._iterator,r=t.offset;let s=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const a=t.offset,l=e.getGraphemeBreakType(t.prevCodePoint());if(breakBetweenGraphemeBreakType(l,s)){t.setOffset(a);break}s=l}return r-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%52,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)}const Oi=class Oi{static getInstance(){return Oi._INSTANCE||(Oi._INSTANCE=new Oi),Oi._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,r=t.length/3;let s=1;for(;s<=r;)if(e<t[3*s])s=2*s;else if(e>t[3*s+1])s=2*s+1;else return t[3*s+2];return 0}};Oi._INSTANCE=null;let GraphemeBreakTree=Oi;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 r=new CodePointIterator(e,o);return r.prevCodePoint(),r.offset}function getOffsetBeforeLastEmojiComponent(o,e){const t=new CodePointIterator(e,o);let r=t.prevCodePoint();for(;isEmojiModifier(r)||r===65039||r===8419;){if(t.offset===0)return;r=t.prevCodePoint()}if(!isEmojiImprecise(r))return;let s=t.offset;return s>0&&t.prevCodePoint()===8205&&(s=t.offset),s}function isEmojiModifier(o){return 127995<=o&&o<=127999}const noBreakWhitespace=" ",Nt=class Nt{static getInstance(e){return Nt.cache.get(Array.from(e))}static getLocales(){return Nt._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())}};Nt.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,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,1523,96,8242,96,1370,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,118002,50,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,118003,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,118004,52,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,118005,53,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,118006,54,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,118007,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,118008,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,118009,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,117974,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,117975,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,71913,67,71922,67,65315,67,8557,67,8450,67,8493,67,117976,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,117977,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,117978,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,117979,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,117980,71,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,117981,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,117983,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,117984,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,118001,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,117982,108,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,117985,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,117986,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,117987,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,118000,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,117988,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,117989,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,117990,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,117991,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,117992,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,117993,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,117994,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,117995,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,71910,87,71919,87,117996,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,117997,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,117998,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,71909,90,66293,90,65338,90,8484,90,8488,90,117999,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,65283,35,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,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,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"cs":[65374,126,8218,44,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,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"de":[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,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"es":[8211,45,65374,126,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"fr":[65374,126,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"it":[160,32,8211,45,65374,126,8218,44,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,65292,44,65297,49,65307,59,65311,63],"ja":[8211,45,8218,44,65281,33,8216,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,65292,44,65297,49,65307,59],"ko":[8211,45,65374,126,8218,44,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,65292,44,65297,49,65307,59,65311,63],"pl":[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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"pt-BR":[65374,126,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,8218,44,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,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"ru":[65374,126,8218,44,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,8218,44,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,65288,40,65289,41,65292,44,65297,49,65307,59,65311,63],"zh-hans":[160,32,65374,126,8218,44,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,65297,49],"zh-hant":[8211,45,65374,126,8218,44,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]}')),Nt.cache=new LRUCachedFunction({getCacheKey:JSON.stringify},e=>{function t(g){const f=new Map;for(let m=0;m<g.length;m+=2)f.set(g[m],g[m+1]);return f}function r(g,f){const m=new Map(g);for(const[_,v]of f)m.set(_,v);return m}function s(g,f){if(!g)return f;const m=new Map;for(const[_,v]of g)f.has(_)&&m.set(_,v);return m}const a=Nt.ambiguousCharacterData.value;let l=e.filter(g=>!g.startsWith("_")&&Object.hasOwn(a,g));l.length===0&&(l=["_default"]);let c;for(const g of l){const f=t(a[g]);c=s(c,f)}const d=t(a._common),u=r(d,c);return new Nt(u)}),Nt._locales=new Lazy(()=>Object.keys(Nt.ambiguousCharacterData.value).filter(e=>!e.startsWith("_")));let AmbiguousCharacters=Nt;const Zn=class Zn{static getRawData(){return JSON.parse('{"_common":[11,12,13,127,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,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,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],"cs":[173,8203,12288],"de":[173,8203,12288],"es":[8203,12288],"fr":[173,8203,12288],"it":[160,173,12288],"ja":[173],"ko":[173,12288],"pl":[173,8203,12288],"pt-BR":[173,8203,12288],"qps-ploc":[160,173,8203,12288],"ru":[173,12288],"tr":[160,173,8203,12288],"zh-hans":[160,173,8203,12288],"zh-hant":[173,12288]}')}static getData(){return this._data||(this._data=new Set([...Object.values(Zn.getRawData())].flat())),this._data}static isInvisibleCharacter(e){return Zn.getData().has(e)}static get codePoints(){return Zn.getData()}};Zn._data=void 0;let InvisibleCharacters=Zn;var define_process_env_default={};let safeProcess;const vscodeGlobal$1=globalThis.vscode;var wa;if(typeof vscodeGlobal$1<"u"&&typeof vscodeGlobal$1.process<"u"){const o=vscodeGlobal$1.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"&&typeof((wa=process==null?void 0:process.versions)==null?void 0:wa.node)=="string"?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,r){let s;typeof t=="string"&&t.indexOf("not ")===0?(s="must not be",t=t.replace(/^not /,"")):s="must be";const a=e.indexOf(".")!==-1?"property":"argument";let l='The "'.concat(e,'" ').concat(a," ").concat(s," of type ").concat(t);l+=". Received type ".concat(typeof r),super(l),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,r){let s="",a=0,l=-1,c=0,d=0;for(let u=0;u<=o.length;++u){if(u<o.length)d=o.charCodeAt(u);else{if(r(d))break;d=CHAR_FORWARD_SLASH}if(r(d)){if(!(l===u-1||c===1))if(c===2){if(s.length<2||a!==2||s.charCodeAt(s.length-1)!==CHAR_DOT||s.charCodeAt(s.length-2)!==CHAR_DOT){if(s.length>2){const g=s.lastIndexOf(t);g===-1?(s="",a=0):(s=s.slice(0,g),a=s.length-1-s.lastIndexOf(t)),l=u,c=0;continue}else if(s.length!==0){s="",a=0,l=u,c=0;continue}}e&&(s+=s.length>0?"".concat(t,".."):"..",a=2)}else s.length>0?s+="".concat(t).concat(o.slice(l+1,u)):s=o.slice(l+1,u),a=u-l-1;l=u,c=0}else d===CHAR_DOT&&c!==-1?++c:c=-1}return s}function formatExt(o){return o?"".concat(o[0]==="."?"":".").concat(o):""}function _format(o,e){validateObject(e,"pathObject");const t=e.dir||e.root,r=e.base||"".concat(e.name||"").concat(formatExt(e.ext));return t?t===e.root?"".concat(t).concat(r):"".concat(t).concat(o).concat(r):r}const win32={resolve(...o){let e="",t="",r=!1;for(let s=o.length-1;s>=-1;s--){let a;if(s>=0){if(a=o[s],validateString(a,"paths[".concat(s,"]")),a.length===0)continue}else e.length===0?a=cwd():(a=env["=".concat(e)]||cwd(),(a===void 0||a.slice(0,2).toLowerCase()!==e.toLowerCase()&&a.charCodeAt(2)===CHAR_BACKWARD_SLASH)&&(a="".concat(e,"\\")));const l=a.length;let c=0,d="",u=!1;const g=a.charCodeAt(0);if(l===1)isPathSeparator$1(g)&&(c=1,u=!0);else if(isPathSeparator$1(g))if(u=!0,isPathSeparator$1(a.charCodeAt(1))){let f=2,m=f;for(;f<l&&!isPathSeparator$1(a.charCodeAt(f));)f++;if(f<l&&f!==m){const _=a.slice(m,f);for(m=f;f<l&&isPathSeparator$1(a.charCodeAt(f));)f++;if(f<l&&f!==m){for(m=f;f<l&&!isPathSeparator$1(a.charCodeAt(f));)f++;(f===l||f!==m)&&(d="\\\\".concat(_,"\\").concat(a.slice(m,f)),c=f)}}}else c=1;else isWindowsDeviceRoot(g)&&a.charCodeAt(1)===CHAR_COLON&&(d=a.slice(0,2),c=2,l>2&&isPathSeparator$1(a.charCodeAt(2))&&(u=!0,c=3));if(d.length>0)if(e.length>0){if(d.toLowerCase()!==e.toLowerCase())continue}else e=d;if(r){if(e.length>0)break}else if(t="".concat(a.slice(c),"\\").concat(t),r=u,u&&e.length>0)break}return t=normalizeString(t,!r,"\\",isPathSeparator$1),r?"".concat(e,"\\").concat(t):"".concat(e).concat(t)||"."},normalize(o){validateString(o,"path");const e=o.length;if(e===0)return".";let t=0,r,s=!1;const a=o.charCodeAt(0);if(e===1)return isPosixPathSeparator(a)?"\\":o;if(isPathSeparator$1(a))if(s=!0,isPathSeparator$1(o.charCodeAt(1))){let c=2,d=c;for(;c<e&&!isPathSeparator$1(o.charCodeAt(c));)c++;if(c<e&&c!==d){const u=o.slice(d,c);for(d=c;c<e&&isPathSeparator$1(o.charCodeAt(c));)c++;if(c<e&&c!==d){for(d=c;c<e&&!isPathSeparator$1(o.charCodeAt(c));)c++;if(c===e)return"\\\\".concat(u,"\\").concat(o.slice(d),"\\");c!==d&&(r="\\\\".concat(u,"\\").concat(o.slice(d,c)),t=c)}}}else t=1;else isWindowsDeviceRoot(a)&&o.charCodeAt(1)===CHAR_COLON&&(r=o.slice(0,2),t=2,e>2&&isPathSeparator$1(o.charCodeAt(2))&&(s=!0,t=3));let l=t<e?normalizeString(o.slice(t),!s,"\\",isPathSeparator$1):"";if(l.length===0&&!s&&(l="."),l.length>0&&isPathSeparator$1(o.charCodeAt(e-1))&&(l+="\\"),!s&&r===void 0&&o.includes(":")){if(l.length>=2&&isWindowsDeviceRoot(l.charCodeAt(0))&&l.charCodeAt(1)===CHAR_COLON)return".\\".concat(l);let c=o.indexOf(":");do if(c===e-1||isPathSeparator$1(o.charCodeAt(c+1)))return".\\".concat(l);while((c=o.indexOf(":",c+1))!==-1)}return r===void 0?s?"\\".concat(l):l:s?"".concat(r,"\\").concat(l):"".concat(r).concat(l)},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 a=0;a<o.length;++a){const l=o[a];validateString(l,"path"),l.length>0&&(e===void 0?e=t=l:e+="\\".concat(l))}if(e===void 0)return".";let r=!0,s=0;if(typeof t=="string"&&isPathSeparator$1(t.charCodeAt(0))){++s;const a=t.length;a>1&&isPathSeparator$1(t.charCodeAt(1))&&(++s,a>2&&(isPathSeparator$1(t.charCodeAt(2))?++s:r=!1))}if(r){for(;s<e.length&&isPathSeparator$1(e.charCodeAt(s));)s++;s>=2&&(e="\\".concat(e.slice(s)))}return win32.normalize(e)},relative(o,e){if(validateString(o,"from"),validateString(e,"to"),o===e)return"";const t=win32.resolve(o),r=win32.resolve(e);if(t===r||(o=t.toLowerCase(),e=r.toLowerCase(),o===e))return"";if(t.length!==o.length||r.length!==e.length){const v=t.split("\\"),b=r.split("\\");v[v.length-1]===""&&v.pop(),b[b.length-1]===""&&b.pop();const C=v.length,y=b.length,S=C<y?C:y;let w;for(w=0;w<S&&v[w].toLowerCase()===b[w].toLowerCase();w++);return w===0?r:w===S?y>S?b.slice(w).join("\\"):C>S?"..\\".repeat(C-1-w)+"..":"":"..\\".repeat(C-w)+b.slice(w).join("\\")}let s=0;for(;s<o.length&&o.charCodeAt(s)===CHAR_BACKWARD_SLASH;)s++;let a=o.length;for(;a-1>s&&o.charCodeAt(a-1)===CHAR_BACKWARD_SLASH;)a--;const l=a-s;let c=0;for(;c<e.length&&e.charCodeAt(c)===CHAR_BACKWARD_SLASH;)c++;let d=e.length;for(;d-1>c&&e.charCodeAt(d-1)===CHAR_BACKWARD_SLASH;)d--;const u=d-c,g=l<u?l:u;let f=-1,m=0;for(;m<g;m++){const v=o.charCodeAt(s+m);if(v!==e.charCodeAt(c+m))break;v===CHAR_BACKWARD_SLASH&&(f=m)}if(m!==g){if(f===-1)return r}else{if(u>g){if(e.charCodeAt(c+m)===CHAR_BACKWARD_SLASH)return r.slice(c+m+1);if(m===2)return r.slice(c+m)}l>g&&(o.charCodeAt(s+m)===CHAR_BACKWARD_SLASH?f=m:m===2&&(f=3)),f===-1&&(f=0)}let _="";for(m=s+f+1;m<=a;++m)(m===a||o.charCodeAt(m)===CHAR_BACKWARD_SLASH)&&(_+=_.length===0?"..":"\\..");return c+=f,_.length>0?"".concat(_).concat(r.slice(c,d)):(r.charCodeAt(c)===CHAR_BACKWARD_SLASH&&++c,r.slice(c,d))},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\\".concat(e.slice(2))}}else if(isWindowsDeviceRoot(e.charCodeAt(0))&&e.charCodeAt(1)===CHAR_COLON&&e.charCodeAt(2)===CHAR_BACKWARD_SLASH)return"\\\\?\\".concat(e);return e},dirname(o){validateString(o,"path");const e=o.length;if(e===0)return".";let t=-1,r=0;const s=o.charCodeAt(0);if(e===1)return isPathSeparator$1(s)?o:".";if(isPathSeparator$1(s)){if(t=r=1,isPathSeparator$1(o.charCodeAt(1))){let c=2,d=c;for(;c<e&&!isPathSeparator$1(o.charCodeAt(c));)c++;if(c<e&&c!==d){for(d=c;c<e&&isPathSeparator$1(o.charCodeAt(c));)c++;if(c<e&&c!==d){for(d=c;c<e&&!isPathSeparator$1(o.charCodeAt(c));)c++;if(c===e)return o;c!==d&&(t=r=c+1)}}}}else isWindowsDeviceRoot(s)&&o.charCodeAt(1)===CHAR_COLON&&(t=e>2&&isPathSeparator$1(o.charCodeAt(2))?3:2,r=t);let a=-1,l=!0;for(let c=e-1;c>=r;--c)if(isPathSeparator$1(o.charCodeAt(c))){if(!l){a=c;break}}else l=!1;if(a===-1){if(t===-1)return".";a=t}return o.slice(0,a)},basename(o,e){e!==void 0&&validateString(e,"suffix"),validateString(o,"path");let t=0,r=-1,s=!0,a;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 l=e.length-1,c=-1;for(a=o.length-1;a>=t;--a){const d=o.charCodeAt(a);if(isPathSeparator$1(d)){if(!s){t=a+1;break}}else c===-1&&(s=!1,c=a+1),l>=0&&(d===e.charCodeAt(l)?--l===-1&&(r=a):(l=-1,r=c))}return t===r?r=c:r===-1&&(r=o.length),o.slice(t,r)}for(a=o.length-1;a>=t;--a)if(isPathSeparator$1(o.charCodeAt(a))){if(!s){t=a+1;break}}else r===-1&&(s=!1,r=a+1);return r===-1?"":o.slice(t,r)},extname(o){validateString(o,"path");let e=0,t=-1,r=0,s=-1,a=!0,l=0;o.length>=2&&o.charCodeAt(1)===CHAR_COLON&&isWindowsDeviceRoot(o.charCodeAt(0))&&(e=r=2);for(let c=o.length-1;c>=e;--c){const d=o.charCodeAt(c);if(isPathSeparator$1(d)){if(!a){r=c+1;break}continue}s===-1&&(a=!1,s=c+1),d===CHAR_DOT?t===-1?t=c:l!==1&&(l=1):t!==-1&&(l=-1)}return t===-1||s===-1||l===0||l===1&&t===s-1&&t===r+1?"":o.slice(t,s)},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 r=0,s=o.charCodeAt(0);if(t===1)return isPathSeparator$1(s)?(e.root=e.dir=o,e):(e.base=e.name=o,e);if(isPathSeparator$1(s)){if(r=1,isPathSeparator$1(o.charCodeAt(1))){let f=2,m=f;for(;f<t&&!isPathSeparator$1(o.charCodeAt(f));)f++;if(f<t&&f!==m){for(m=f;f<t&&isPathSeparator$1(o.charCodeAt(f));)f++;if(f<t&&f!==m){for(m=f;f<t&&!isPathSeparator$1(o.charCodeAt(f));)f++;f===t?r=f:f!==m&&(r=f+1)}}}}else if(isWindowsDeviceRoot(s)&&o.charCodeAt(1)===CHAR_COLON){if(t<=2)return e.root=e.dir=o,e;if(r=2,isPathSeparator$1(o.charCodeAt(2))){if(t===3)return e.root=e.dir=o,e;r=3}}r>0&&(e.root=o.slice(0,r));let a=-1,l=r,c=-1,d=!0,u=o.length-1,g=0;for(;u>=r;--u){if(s=o.charCodeAt(u),isPathSeparator$1(s)){if(!d){l=u+1;break}continue}c===-1&&(d=!1,c=u+1),s===CHAR_DOT?a===-1?a=u:g!==1&&(g=1):a!==-1&&(g=-1)}return c!==-1&&(a===-1||g===0||g===1&&a===c-1&&a===l+1?e.base=e.name=o.slice(l,c):(e.name=o.slice(l,a),e.base=o.slice(l,c),e.ext=o.slice(a,c))),l>0&&l!==r?e.dir=o.slice(0,l-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 r=o.length-1;r>=0&&!t;r--){const s=o[r];validateString(s,"paths[".concat(r,"]")),s.length!==0&&(e="".concat(s,"/").concat(e),t=s.charCodeAt(0)===CHAR_FORWARD_SLASH)}if(!t){const r=posixCwd();e="".concat(r,"/").concat(e),t=r.charCodeAt(0)===CHAR_FORWARD_SLASH}return e=normalizeString(e,!t,"/",isPosixPathSeparator),t?"/".concat(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?"/".concat(o):o)},isAbsolute(o){return validateString(o,"path"),o.length>0&&o.charCodeAt(0)===CHAR_FORWARD_SLASH},join(...o){if(o.length===0)return".";const e=[];for(let t=0;t<o.length;++t){const r=o[t];validateString(r,"path"),r.length>0&&e.push(r)}return e.length===0?".":posix.normalize(e.join("/"))},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,r=o.length,s=r-t,a=1,l=e.length-a,c=s<l?s:l;let d=-1,u=0;for(;u<c;u++){const f=o.charCodeAt(t+u);if(f!==e.charCodeAt(a+u))break;f===CHAR_FORWARD_SLASH&&(d=u)}if(u===c)if(l>c){if(e.charCodeAt(a+u)===CHAR_FORWARD_SLASH)return e.slice(a+u+1);if(u===0)return e.slice(a+u)}else s>c&&(o.charCodeAt(t+u)===CHAR_FORWARD_SLASH?d=u:u===0&&(d=0));let g="";for(u=t+d+1;u<=r;++u)(u===r||o.charCodeAt(u)===CHAR_FORWARD_SLASH)&&(g+=g.length===0?"..":"/..");return"".concat(g).concat(e.slice(a+d))},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,r=!0;for(let s=o.length-1;s>=1;--s)if(o.charCodeAt(s)===CHAR_FORWARD_SLASH){if(!r){t=s;break}}else r=!1;return t===-1?e?"/":".":e&&t===1?"//":o.slice(0,t)},basename(o,e){e!==void 0&&validateString(e,"suffix"),validateString(o,"path");let t=0,r=-1,s=!0,a;if(e!==void 0&&e.length>0&&e.length<=o.length){if(e===o)return"";let l=e.length-1,c=-1;for(a=o.length-1;a>=0;--a){const d=o.charCodeAt(a);if(d===CHAR_FORWARD_SLASH){if(!s){t=a+1;break}}else c===-1&&(s=!1,c=a+1),l>=0&&(d===e.charCodeAt(l)?--l===-1&&(r=a):(l=-1,r=c))}return t===r?r=c:r===-1&&(r=o.length),o.slice(t,r)}for(a=o.length-1;a>=0;--a)if(o.charCodeAt(a)===CHAR_FORWARD_SLASH){if(!s){t=a+1;break}}else r===-1&&(s=!1,r=a+1);return r===-1?"":o.slice(t,r)},extname(o){validateString(o,"path");let e=-1,t=0,r=-1,s=!0,a=0;for(let l=o.length-1;l>=0;--l){const c=o[l];if(c==="/"){if(!s){t=l+1;break}continue}r===-1&&(s=!1,r=l+1),c==="."?e===-1?e=l:a!==1&&(a=1):e!==-1&&(a=-1)}return e===-1||r===-1||a===0||a===1&&e===r-1&&e===t+1?"":o.slice(e,r)},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 r;t?(e.root="/",r=1):r=0;let s=-1,a=0,l=-1,c=!0,d=o.length-1,u=0;for(;d>=r;--d){const g=o.charCodeAt(d);if(g===CHAR_FORWARD_SLASH){if(!c){a=d+1;break}continue}l===-1&&(c=!1,l=d+1),g===CHAR_DOT?s===-1?s=d:u!==1&&(u=1):s!==-1&&(u=-1)}if(l!==-1){const g=a===0&&t?1:a;s===-1||u===0||u===1&&s===l-1&&s===a+1?e.base=e.name=o.slice(g,l):(e.name=o.slice(g,s),e.base=o.slice(g,l),e.ext=o.slice(s,l))}return a>0?e.dir=o.slice(0,a-1):t&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};posix.win32=win32.win32=win32;posix.posix=win32.posix=posix;const normalize$1=platformIsWin32?win32.normalize:posix.normalize,resolve$1=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: "'.concat(o.authority,'", path: "').concat(o.path,'", query: "').concat(o.query,'", fragment: "').concat(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!="object"?!1: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"}constructor(e,t,r,s,a,l=!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,l),this.authority=t||_empty,this.path=_referenceResolution(this.scheme,r||_empty),this.query=s||_empty,this.fragment=a||_empty,_validateUri(this,l))}get fsPath(){return uriToFsPath(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:r,path:s,query:a,fragment:l}=e;return t===void 0?t=this.scheme:t===null&&(t=_empty),r===void 0?r=this.authority:r===null&&(r=_empty),s===void 0?s=this.path:s===null&&(s=_empty),a===void 0?a=this.query:a===null&&(a=_empty),l===void 0?l=this.fragment:l===null&&(l=_empty),t===this.scheme&&r===this.authority&&s===this.path&&a===this.query&&l===this.fragment?this:new Uri$1(t,r,s,a,l)}static parse(e,t=!1){const r=_regexp.exec(e);return r?new Uri$1(r[2]||_empty,percentDecode(r[4]||_empty),percentDecode(r[5]||_empty),percentDecode(r[7]||_empty),percentDecode(r[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 r=e.indexOf(_slash,2);r===-1?(t=e.substring(2),e=_slash):(t=e.substring(2,r),e=e.substring(r)||_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 r;return isWindows&&e.scheme==="file"?r=URI.file(win32.join(uriToFsPath(e,!0),...t)).path:r=posix.join(e.path,...t),e.with({path:r})}toString(e=!1){return _asFormatted(this,e)}toJSON(){return this}static revive(e){var t,r;if(e){if(e instanceof URI)return e;{const s=new Uri$1(e);return s._formatted=(t=e.external)!=null?t:null,s._fsPath=e._sep===_pathSepMarker&&(r=e.fsPath)!=null?r:null,s}}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 r,s=-1;for(let a=0;a<o.length;a++){const l=o.charCodeAt(a);if(l>=97&&l<=122||l>=65&&l<=90||l>=48&&l<=57||l===45||l===46||l===95||l===126||e&&l===47||t&&l===91||t&&l===93||t&&l===58)s!==-1&&(r+=encodeURIComponent(o.substring(s,a)),s=-1),r!==void 0&&(r+=o.charAt(a));else{r===void 0&&(r=o.substr(0,a));const c=encodeTable[l];c!==void 0?(s!==-1&&(r+=encodeURIComponent(o.substring(s,a)),s=-1),r+=c):s===-1&&(s=a)}}return s!==-1&&(r+=encodeURIComponent(o.substring(s))),r!==void 0?r:o}function encodeURIComponentMinimal(o){let e;for(let t=0;t<o.length;t++){const r=o.charCodeAt(t);r===35||r===63?(e===void 0&&(e=o.substr(0,t)),e+=encodeTable[r]):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="//".concat(o.authority).concat(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 r="",{scheme:s,authority:a,path:l,query:c,fragment:d}=o;if(s&&(r+=s,r+=":"),(a||s==="file")&&(r+=_slash,r+=_slash),a){let u=a.indexOf("@");if(u!==-1){const g=a.substr(0,u);a=a.substr(u+1),u=g.lastIndexOf(":"),u===-1?r+=t(g,!1,!1):(r+=t(g.substr(0,u),!1,!1),r+=":",r+=t(g.substr(u+1),!1,!0)),r+="@"}a=a.toLowerCase(),u=a.lastIndexOf(":"),u===-1?r+=t(a,!1,!0):(r+=t(a.substr(0,u),!1,!0),r+=a.substr(u))}if(l){if(l.length>=3&&l.charCodeAt(0)===47&&l.charCodeAt(2)===58){const u=l.charCodeAt(1);u>=65&&u<=90&&(l="/".concat(String.fromCharCode(u+32),":").concat(l.substr(3)))}else if(l.length>=2&&l.charCodeAt(1)===58){const u=l.charCodeAt(0);u>=65&&u<=90&&(l="".concat(String.fromCharCode(u+32),":").concat(l.substr(2)))}r+=t(l,!0,!1)}return c&&(r+="?",r+=t(c,!1,!1)),d&&(r+="#",r+=e?d:encodeURIComponentFast(d,!1,!1)),r}function decodeURIComponentGraceful(o){try{return decodeURIComponent(o)}catch(e){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}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.vscodeNotebookCellMetadataDiff="vscode-notebook-cell-metadata-diff",o.vscodeNotebookCellOutput="vscode-notebook-cell-output",o.vscodeNotebookCellOutputDiff="vscode-notebook-cell-output-diff",o.vscodeNotebookMetadata="vscode-notebook-metadata",o.vscodeInteractiveInput="vscode-interactive-input",o.vscodeSettings="vscode-settings",o.vscodeWorkspaceTrust="vscode-workspace-trust",o.vscodeTerminal="vscode-terminal",o.vscodeChatCodeBlock="vscode-chat-code-block",o.vscodeChatCodeCompareBlock="vscode-chat-code-compare-block",o.vscodeChatEditor="vscode-chat-editor",o.vscodeChatInput="chatSessionInput",o.vscodeLocalChatSession="vscode-chat-session",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",o.commentsInput="comment",o.codeSetting="code-setting",o.outputChannel="output",o.accessibleView="accessible-view",o.chatEditingSnapshotScheme="chat-editing-snapshot-text-model",o.chatEditingModel="chat-editing-text-model",o.copilotPr="copilot-pr"})(Schemas||(Schemas={}));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))}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._serverRootPath="/"}setPreferredWebSchema(e){this._preferredWebSchema=e}get _remoteResourcesPath(){return posix.join(this._serverRootPath,Schemas.vscodeRemoteResource)}rewrite(e){if(this._delegate)try{return this._delegate(e)}catch(c){return onUnexpectedError(c),e}const t=e.authority;let r=this._hosts[t];r&&r.indexOf(":")!==-1&&r.indexOf("[")===-1&&(r="[".concat(r,"]"));const s=this._ports[t],a=this._connectionTokens[t];let l="path=".concat(encodeURIComponent(e.path));return typeof a=="string"&&(l+="&".concat(connectionTokenQueryName,"=").concat(encodeURIComponent(a))),URI.from({scheme:isWeb?this._preferredWebSchema:Schemas.vscodeRemoteResource,authority:"".concat(r,":").concat(s),path:this._remoteResourcesPath,query:l})}}const RemoteAuthorities=new RemoteAuthoritiesImpl,VSCODE_AUTHORITY="vscode-app",Ar=class Ar{uriToBrowserUri(e){return e.scheme===Schemas.vscodeRemote?RemoteAuthorities.rewrite(e):e.scheme===Schemas.file&&(isNative||webWorkerOrigin==="".concat(Schemas.vscodeFileResource,"://").concat(Ar.FALLBACK_AUTHORITY))?e.with({scheme:Schemas.vscodeFileResource,authority:e.authority||Ar.FALLBACK_AUTHORITY,query:null,fragment:null}):e}};Ar.FALLBACK_AUTHORITY=VSCODE_AUTHORITY;let FileAccessImpl=Ar;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 r(a){let l;typeof a=="string"?l=new URL(a).searchParams:a instanceof URL?l=a.searchParams:URI.isUri(a)&&(l=new URL(a.toString(!0)).searchParams);const c=l==null?void 0:l.get(t);if(c)return e.get(c)}o.getHeadersFromQuery=r;function s(a,l,c){if(!globalThis.crossOriginIsolated)return;const d=l&&c?"3":c?"2":"1";a instanceof URLSearchParams?a.set(t,d):a[t]=d}o.addSearchParam=s})(COI||(COI={}));const hasBuffer=typeof Buffer<"u";new Lazy(()=>new Uint8Array(256));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]*2**24+o[e+1]*2**16+o[e+2]*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}const hexChars="0123456789abcdef";function encodeHex({buffer:o}){let e="";for(let t=0;t<o.length;t++){const r=o[t];e+=hexChars[r>>>4],e+=hexChars[r&15]}return e}function hash$1(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$1(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$1(o,e){e=numberHash(149417,e);for(let t=0,r=o.length;t<r;t++)e=numberHash(o.charCodeAt(t),e);return e}function arrayHash(o,e){return e=numberHash(104579,e),o.reduce((t,r)=>doHash(r,t),e)}function objectHash(o,e){return e=numberHash(181387,e),Object.keys(o).sort().reduce((t,r)=>(t=stringHash$1(r,t),doHash(o[r],t)),e)}function leftRotate$2(o,e,t=32){const r=t-e,s=~((1<<r)-1);return(o<<e|(s&o)>>>r)>>>0}function toHexString(o,e=32){return o instanceof ArrayBuffer?encodeHex(VSBuffer.wrap(new Uint8Array(o))):(o>>>0).toString(16).padStart(e/4,"0")}const so=class so{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 r=this._buff;let s=this._buffLen,a=this._leftoverHighSurrogate,l,c;for(a!==0?(l=a,c=-1,a=0):(l=e.charCodeAt(0),c=0);;){let d=l;if(isHighSurrogate(l))if(c+1<t){const u=e.charCodeAt(c+1);isLowSurrogate(u)?(c++,d=computeCodePoint(l,u)):d=65533}else{a=l;break}else isLowSurrogate(l)&&(d=65533);if(s=this._push(r,s,d),c++,c<t)l=e.charCodeAt(c);else break}this._buffLen=s,this._leftoverHighSurrogate=a}_push(e,t,r){return r<128?e[t++]=r:r<2048?(e[t++]=192|(r&1984)>>>6,e[t++]=128|(r&63)>>>0):r<65536?(e[t++]=224|(r&61440)>>>12,e[t++]=128|(r&4032)>>>6,e[t++]=128|(r&63)>>>0):(e[t++]=240|(r&1835008)>>>18,e[t++]=128|(r&258048)>>>12,e[t++]=128|(r&4032)>>>6,e[t++]=128|(r&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,this._buff.subarray(this._buffLen).fill(0),this._buffLen>56&&(this._step(),this._buff.fill(0));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=so._bigBlock32,t=this._buffDV;for(let f=0;f<64;f+=4)e.setUint32(f,t.getUint32(f,!1),!1);for(let f=64;f<320;f+=4)e.setUint32(f,leftRotate$2(e.getUint32(f-12,!1)^e.getUint32(f-32,!1)^e.getUint32(f-56,!1)^e.getUint32(f-64,!1),1),!1);let r=this._h0,s=this._h1,a=this._h2,l=this._h3,c=this._h4,d,u,g;for(let f=0;f<80;f++)f<20?(d=s&a|~s&l,u=1518500249):f<40?(d=s^a^l,u=1859775393):f<60?(d=s&a|s&l|a&l,u=2400959708):(d=s^a^l,u=3395469782),g=leftRotate$2(r,5)+d+c+u+e.getUint32(f*4,!1)&4294967295,c=l,l=a,a=leftRotate$2(s,30),s=r,r=g;this._h0=this._h0+r&4294967295,this._h1=this._h1+s&4294967295,this._h2=this._h2+a&4294967295,this._h3=this._h3+l&4294967295,this._h4=this._h4+c&4294967295}};so._bigBlock32=new DataView(new ArrayBuffer(320));let StringSHA1=so;function tail(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=(r,s)=>r===s){if(o===e)return!0;if(!o||!e||o.length!==e.length)return!1;for(let r=0,s=o.length;r<s;r++)if(!t(o[r],e[r]))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,r=>t(o[r],e))}function binarySearch2(o,e){let t=0,r=o-1;for(;t<=r;){const s=(t+r)/2|0,a=e(s);if(a<0)t=s+1;else if(a>0)r=s-1;else return s}return-(t+1)}function quickSelect(o,e,t){if(o=o|0,o>=e.length)throw new TypeError("invalid index");const r=e[Math.floor(e.length*Math.random())],s=[],a=[],l=[];for(const c of e){const d=t(c,r);d<0?s.push(c):d>0?a.push(c):l.push(c)}return o<s.length?quickSelect(o,s,t):o<s.length+l.length?l[0]:quickSelect(o-(s.length+l.length),a,t)}function groupBy$1(o,e){const t=[];let r;for(const s of o.slice(0).sort(e))!r||e(r[0],s)!==0?(r=[s],t.push(r)):r.push(s);return t}function*groupAdjacentBy(o,e){let t,r;for(const s of o)r!==void 0&&e(r,s)?t.push(s):(t&&(yield t),t=[s]),r=s;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(r=>{const s=e(r);return t.has(s)?!1:(t.add(s),!0)})}function range(o,e){let t=typeof e=="number"?o:0;typeof e=="number"?t=o:(t=0,e=o);const r=[];if(t<=e)for(let s=t;s<e;s++)r.push(s);else for(let s=t;s>e;s--)r.push(s);return r}function arrayInsert(o,e,t){const r=o.slice(0,e),s=o.slice(e);return r.concat(t,s)}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 mapFilter(o,e){const t=[];for(const r of o){const s=e(r);s!==void 0&&t.push(s)}return t}function asArray(o){return Array.isArray(o)?o:[o]}function insertInto(o,e,t){const r=getActualStartIndex(o,e),s=o.length,a=t.length;o.length=s+a;for(let l=s-1;l>=r;l--)o[l+a]=o[l];for(let l=0;l<a;l++)o[l+r]=t[l]}function splice$1(o,e,t,r){const s=getActualStartIndex(o,e);let a=o.splice(s,t);return a===void 0&&(a=[]),insertInto(o,s,r),a}function getActualStartIndex(o,e){return e<0?Math.max(e+o.length,0):Math.min(e,o.length)}var CompareResult;(function(o){function e(a){return a<0}o.isLessThan=e;function t(a){return a<=0}o.isLessThanOrEqual=t;function r(a){return a>0}o.isGreaterThan=r;function s(a){return a===0}o.isNeitherLessOrGreaterThan=s,o.greaterThan=1,o.lessThan=-1,o.neitherLessOrGreaterThan=0})(CompareResult||(CompareResult={}));function compareBy(o,e){return(t,r)=>e(o(t),o(r))}function tieBreakComparators(...o){return(e,t)=>{for(const r of o){const s=r(e,t);if(!CompareResult.isNeitherLessOrGreaterThan(s))return s}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)}function compareUndefinedSmallest(o){return(e,t)=>e===void 0?t===void 0?CompareResult.neitherLessOrGreaterThan:CompareResult.lessThan:t===void 0?CompareResult.greaterThan:o(e,t)}class ArrayQueue{constructor(e){this.firstIdx=0,this.items=e,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 r=t===this.firstIdx?null:this.items.slice(this.firstIdx,t);return this.firstIdx=t,r}takeFromEndWhile(e){let t=this.lastIdx;for(;t>=0&&e(this.items[t]);)t--;const r=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,r}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}}const Qn=class Qn{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new Qn(t=>this.iterate(r=>e(r)?t(r):!0))}map(e){return new Qn(t=>this.iterate(r=>t(e(r))))}findLast(e){let t;return this.iterate(r=>(e(r)&&(t=r),!0)),t}findLastMaxBy(e){let t,r=!0;return this.iterate(s=>((r||CompareResult.isGreaterThan(e(s,t)))&&(r=!1,t=s),!0)),t}};Qn.empty=new Qn(e=>{});let CallbackIterable=Qn;class Permutation{constructor(e){this._indexMap=e}static createSortPermutation(e,t){const r=Array.from(e.keys()).sort((s,a)=>t(e[s],e[a]));return new Permutation(r)}apply(e){return e.map((t,r)=>e[this._indexMap[r]])}inverse(){const e=this._indexMap.slice();for(let t=0;t<this._indexMap.length;t++)e[this._indexMap[t]]=t;return new Permutation(e)}}function sum$1(o){return o.reduce((e,t)=>e+t,0)}let globalObservableLogger;function addLogger(o){globalObservableLogger?globalObservableLogger instanceof ComposedLogger?globalObservableLogger.loggers.push(o):globalObservableLogger=new ComposedLogger([globalObservableLogger,o]):globalObservableLogger=o}function getLogger(){return globalObservableLogger}class ComposedLogger{constructor(e){this.loggers=e}handleObservableCreated(e,t){for(const r of this.loggers)r.handleObservableCreated(e,t)}handleOnListenerCountChanged(e,t){for(const r of this.loggers)r.handleOnListenerCountChanged(e,t)}handleObservableUpdated(e,t){for(const r of this.loggers)r.handleObservableUpdated(e,t)}handleAutorunCreated(e,t){for(const r of this.loggers)r.handleAutorunCreated(e,t)}handleAutorunDisposed(e){for(const t of this.loggers)t.handleAutorunDisposed(e)}handleAutorunDependencyChanged(e,t,r){for(const s of this.loggers)s.handleAutorunDependencyChanged(e,t,r)}handleAutorunStarted(e){for(const t of this.loggers)t.handleAutorunStarted(e)}handleAutorunFinished(e){for(const t of this.loggers)t.handleAutorunFinished(e)}handleDerivedDependencyChanged(e,t,r){for(const s of this.loggers)s.handleDerivedDependencyChanged(e,t,r)}handleDerivedCleared(e){for(const t of this.loggers)t.handleDerivedCleared(e)}handleBeginTransaction(e){for(const t of this.loggers)t.handleBeginTransaction(e)}handleEndTransaction(e){for(const t of this.loggers)t.handleEndTransaction(e)}}var DebugLocation;(function(o){let e=!1;function t(){e=!0}o.enable=t;function r(){if(!e)return;const s=Error,a=s.stackTraceLimit;s.stackTraceLimit=3;const l=new Error().stack;return s.stackTraceLimit=a,DebugLocationImpl.fromStack(l,2)}o.ofCaller=r})(DebugLocation||(DebugLocation={}));class DebugLocationImpl{static fromStack(e,t){const r=e.split("\n"),s=parseLine(r[t+1]);if(s)return new DebugLocationImpl(s.fileName,s.line,s.column,s.id)}constructor(e,t,r,s){this.fileName=e,this.line=t,this.column=r,this.id=s}}function parseLine(o){const e=o.match(/\((.*):(\d+):(\d+)\)/);if(e)return{fileName:e[1],line:parseInt(e[2]),column:parseInt(e[3]),id:o};const t=o.match(/at ([^\(\)]*):(\d+):(\d+)/);if(t)return{fileName:t[1],line:parseInt(t[2]),column:parseInt(t[3]),id:o}}const strictEquals=(o,e)=>o===e;function itemsEquals(o=strictEquals){return(e,t)=>equals$2(e,t,o)}function itemEquals(){return(o,e)=>o.equals(e)}function equalsIfDefined(o,e,t){if(t!==void 0){const r=o;return r==null||e===void 0||e===null?e===r:t(r,e)}else{const r=o;return(s,a)=>s==null||a===void 0||a===null?a===s:r(s,a)}}function structuralEquals(o,e){if(o===e)return!0;if(Array.isArray(o)&&Array.isArray(e)){if(o.length!==e.length)return!1;for(let t=0;t<o.length;t++)if(!structuralEquals(o[t],e[t]))return!1;return!0}if(o&&typeof o=="object"&&e&&typeof e=="object"&&Object.getPrototypeOf(o)===Object.prototype&&Object.getPrototypeOf(e)===Object.prototype){const t=o,r=e,s=Object.keys(t),a=Object.keys(r),l=new Set(a);if(s.length!==a.length)return!1;for(const c of s)if(!l.has(c)||!structuralEquals(t[c],r[c]))return!1;return!0}return!1}class DebugNameData{constructor(e,t,r){this.owner=e,this.debugNameSource=t,this.referenceFn=r}getDebugName(e){return getDebugName(e,this)}}const countPerName=new Map,cachedDebugName=new WeakMap;function getDebugName(o,e){var s;const t=cachedDebugName.get(o);if(t)return t;const r=computeDebugName(o,e);if(r){let a=(s=countPerName.get(r))!=null?s:0;a++,countPerName.set(r,a);const l=a===1?r:"".concat(r,"#").concat(a);return cachedDebugName.set(o,l),l}}function computeDebugName(o,e){const t=cachedDebugName.get(o);if(t)return t;const r=e.owner?formatOwner(e.owner)+".":"";let s;const a=e.debugNameSource;if(a!==void 0)if(typeof a=="function"){if(s=a(),s!==void 0)return r+s}else return r+a;const l=e.referenceFn;if(l!==void 0&&(s=getFunctionName(l),s!==void 0))return r+s;if(e.owner!==void 0){const c=findKey(e.owner,o);if(c!==void 0)return r+c}}function findKey(o,e){for(const t in o)if(o[t]===e)return t}const countPerClassName=new Map,ownerId=new WeakMap;function formatOwner(o){var a,l;const e=ownerId.get(o);if(e)return e;const t=(a=getClassName$1(o))!=null?a:"Object";let r=(l=countPerClassName.get(t))!=null?l:0;r++,countPerClassName.set(t,r);const s=r===1?t:"".concat(t,"#").concat(r);return ownerId.set(o,s),s}function getClassName$1(o){const e=o.constructor;if(e)return e.name==="Object"?void 0:e.name}function getFunctionName(o){const e=o.toString(),r=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(e),s=r?r[1]:void 0;return s==null?void 0:s.trim()}let _derived;function _setDerivedOpts(o){_derived=o}let _recomputeInitiallyAndOnChange;function _setRecomputeInitiallyAndOnChange(o){_recomputeInitiallyAndOnChange=o}class ConvenientObservable{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t,r=DebugLocation.ofCaller()){const s=t===void 0?void 0:e,a=t===void 0?e:t;return _derived({owner:s,debugName:()=>{const l=getFunctionName(a);if(l!==void 0)return l;const d=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(a.toString());if(d)return"".concat(this.debugName,".").concat(d[2]);if(!s)return"".concat(this.debugName," (mapped)")},debugReferenceFn:a},l=>a(this.read(l),l),r)}flatten(){return _derived({owner:void 0,debugName:()=>"".concat(this.debugName," (flattened)")},e=>this.read(e).read(e))}recomputeInitiallyAndOnChange(e,t){return e.add(_recomputeInitiallyAndOnChange(this,t)),this}}class BaseObservable extends ConvenientObservable{constructor(e){var t;super(),this._observers=new Set,(t=getLogger())==null||t.handleObservableCreated(this,e)}addObserver(e){var r;const t=this._observers.size;this._observers.add(e),t===0&&this.onFirstObserverAdded(),t!==this._observers.size&&((r=getLogger())==null||r.handleOnListenerCountChanged(this,this._observers.size))}removeObserver(e){var r;const t=this._observers.delete(e);t&&this._observers.size===0&&this.onLastObserverRemoved(),t&&((r=getLogger())==null||r.handleOnListenerCountChanged(this,this._observers.size))}onFirstObserverAdded(){}onLastObserverRemoved(){}debugGetObservers(){return this._observers}}function derivedStateToString(o){switch(o){case 0:return"initial";case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}class Derived extends BaseObservable{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!=null?e:"(anonymous)"}constructor(e,t,r,s=void 0,a,l){var c;super(l),this._debugNameData=e,this._computeFn=t,this._changeTracker=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._isUpdating=!1,this._isComputing=!1,this._didReportChange=!1,this._isInBeforeUpdate=!1,this._isReaderValid=!1,this._store=void 0,this._delayedStore=void 0,this._removedObserverToCallEndUpdateOn=null,this._changeSummary=(c=this._changeTracker)==null?void 0:c.createChangeSummary(void 0)}onLastObserverRemoved(){var e,t;this._state=0,this._value=void 0,(e=getLogger())==null||e.handleDerivedCleared(this);for(const r of this._dependencies)r.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._delayedStore!==void 0&&(this._delayedStore.dispose(),this._delayedStore=void 0),(t=this._handleLastObserverRemoved)==null||t.call(this)}get(){var t,r;if(this._isComputing,this._observers.size===0){let s;try{this._isReaderValid=!0;let a;this._changeTracker&&(a=this._changeTracker.createChangeSummary(void 0),(r=(t=this._changeTracker).beforeUpdate)==null||r.call(t,this,a)),s=this._computeFn(this,a)}finally{this._isReaderValid=!1}return this.onLastObserverRemoved(),s}else{do{if(this._state===1){for(const s of this._dependencies)if(s.reportChanges(),this._state===2)break}this._state===1&&(this._state=3),this._state!==3&&this._recompute()}while(this._state!==3);return this._value}}_recompute(){var r,s,a,l;let e=!1;this._isComputing=!0,this._didReportChange=!1;const t=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=t;try{const c=this._changeSummary;this._isReaderValid=!0,this._changeTracker&&(this._isInBeforeUpdate=!0,(s=(r=this._changeTracker).beforeUpdate)==null||s.call(r,this,c),this._isInBeforeUpdate=!1,this._changeSummary=(a=this._changeTracker)==null?void 0:a.createChangeSummary(c));const d=this._state!==0,u=this._value;this._state=3;const g=this._delayedStore;g!==void 0&&(this._delayedStore=void 0);try{this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._value=this._computeFn(this,c)}finally{this._isReaderValid=!1;for(const f of this._dependenciesToBeRemoved)f.removeObserver(this);this._dependenciesToBeRemoved.clear(),g!==void 0&&g.dispose()}e=this._didReportChange||d&&!this._equalityComparator(u,this._value),(l=getLogger())==null||l.handleObservableUpdated(this,{oldValue:u,newValue:this._value,change:void 0,didChange:e,hadValue:d})}catch(c){onBugIndicatingError(c)}if(this._isComputing=!1,!this._didReportChange&&e)for(const c of this._observers)c.handleChange(this,void 0);else this._didReportChange=!1}toString(){return"LazyDerived<".concat(this.debugName,">")}beginUpdate(e){if(this._isUpdating)throw new BugIndicatingError("Cyclic deriveds are not supported yet!");this._updateCount++,this._isUpdating=!0;try{const t=this._updateCount===1;if(this._state===3&&(this._state=1,!t))for(const r of this._observers)r.handlePossibleChange(this);if(t)for(const r of this._observers)r.beginUpdate(this)}finally{this._isUpdating=!1}}endUpdate(e){if(this._updateCount--,this._updateCount===0){const t=[...this._observers];for(const r of t)r.endUpdate(this);if(this._removedObserverToCallEndUpdateOn){const r=[...this._removedObserverToCallEndUpdateOn];this._removedObserverToCallEndUpdateOn=null;for(const s of r)s.endUpdate(this)}}assertFn(()=>this._updateCount>=0)}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){var r;if(this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)||this._isInBeforeUpdate){(r=getLogger())==null||r.handleDerivedDependencyChanged(this,e,t);let s=!1;try{s=this._changeTracker?this._changeTracker.handleChange({changedObservable:e,change:t,didChange:l=>l===e},this._changeSummary):!0}catch(l){onBugIndicatingError(l)}const a=this._state===3;if(s&&(this._state===1||a)&&(this._state=2,a))for(const l of this._observers)l.handlePossibleChange(this)}}_ensureReaderValid(){if(!this._isReaderValid)throw new BugIndicatingError("The reader object cannot be used outside its compute function!")}readObservable(e){this._ensureReaderValid(),e.addObserver(this);const t=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),t}get store(){return this._ensureReaderValid(),this._store===void 0&&(this._store=new DisposableStore$1),this._store}addObserver(e){const t=!this._observers.has(e)&&this._updateCount>0;super.addObserver(e),t&&(this._removedObserverToCallEndUpdateOn&&this._removedObserverToCallEndUpdateOn.has(e)?this._removedObserverToCallEndUpdateOn.delete(e):e.beginUpdate(this))}removeObserver(e){this._observers.has(e)&&this._updateCount>0&&(this._removedObserverToCallEndUpdateOn||(this._removedObserverToCallEndUpdateOn=new Set),this._removedObserverToCallEndUpdateOn.add(e)),super.removeObserver(e)}debugGetState(){return{state:this._state,stateStr:derivedStateToString(this._state),updateCount:this._updateCount,isComputing:this._isComputing,dependencies:this._dependencies,value:this._value}}debugSetValue(e){this._value=e}debugRecompute(){this._isComputing?this._state=2:this._recompute()}setValue(e,t,r){this._value=e;const s=this._observers;t.updateObserver(this,this);for(const a of s)a.handleChange(this,r)}}class DerivedWithSetter extends Derived{constructor(e,t,r,s=void 0,a,l,c){super(e,t,r,s,a,c),this.set=l}}function derived(o,e,t=DebugLocation.ofCaller()){return e!==void 0?new Derived(new DebugNameData(o,void 0,e),e,void 0,void 0,strictEquals,t):new Derived(new DebugNameData(void 0,void 0,o),o,void 0,void 0,strictEquals,t)}function derivedWithSetter(o,e,t,r=DebugLocation.ofCaller()){return new DerivedWithSetter(new DebugNameData(o,void 0,e),e,void 0,void 0,strictEquals,t,r)}function derivedOpts(o,e,t=DebugLocation.ofCaller()){var r;return new Derived(new DebugNameData(o.owner,o.debugName,o.debugReferenceFn),e,void 0,o.onLastObserverRemoved,(r=o.equalsFn)!=null?r:strictEquals,t)}_setDerivedOpts(derivedOpts);function derivedHandleChanges(o,e,t=DebugLocation.ofCaller()){var r;return new Derived(new DebugNameData(o.owner,o.debugName,void 0),e,o.changeTracker,void 0,(r=o.equalityComparer)!=null?r:strictEquals,t)}function derivedDisposable(o,e,t=DebugLocation.ofCaller()){let r,s;e===void 0?(r=o,s=void 0):(s=o,r=e);let a;return new Derived(new DebugNameData(s,void 0,r),l=>{a?a.clear():a=new DisposableStore$1;const c=r(l);return c&&a.add(c),c},void 0,()=>{a&&(a.dispose(),a=void 0)},strictEquals,t)}function autorunStateToString(o){switch(o){case 1:return"dependenciesMightHaveChanged";case 2:return"stale";case 3:return"upToDate";default:return"<unknown>"}}class AutorunObserver{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!=null?e:"(anonymous)"}constructor(e,t,r,s){var a,l;this._debugNameData=e,this._runFn=t,this._changeTracker=r,this._state=2,this._updateCount=0,this._disposed=!1,this._dependencies=new Set,this._dependenciesToBeRemoved=new Set,this._isRunning=!1,this._store=void 0,this._delayedStore=void 0,this._changeSummary=(a=this._changeTracker)==null?void 0:a.createChangeSummary(void 0),(l=getLogger())==null||l.handleAutorunCreated(this,s),this._run()}dispose(){var e;if(!this._disposed){this._disposed=!0;for(const t of this._dependencies)t.removeObserver(this);this._dependencies.clear(),this._store!==void 0&&this._store.dispose(),this._delayedStore!==void 0&&this._delayedStore.dispose(),(e=getLogger())==null||e.handleAutorunDisposed(this)}}_run(){var t,r,s,a;const e=this._dependenciesToBeRemoved;this._dependenciesToBeRemoved=this._dependencies,this._dependencies=e,this._state=3;try{if(!this._disposed){(t=getLogger())==null||t.handleAutorunStarted(this);const l=this._changeSummary,c=this._delayedStore;c!==void 0&&(this._delayedStore=void 0);try{this._isRunning=!0,this._changeTracker&&((s=(r=this._changeTracker).beforeUpdate)==null||s.call(r,this,l),this._changeSummary=this._changeTracker.createChangeSummary(l)),this._store!==void 0&&(this._store.dispose(),this._store=void 0),this._runFn(this,l)}catch(d){onBugIndicatingError(d)}finally{this._isRunning=!1,c!==void 0&&c.dispose()}}}finally{this._disposed||(a=getLogger())==null||a.handleAutorunFinished(this);for(const l of this._dependenciesToBeRemoved)l.removeObserver(this);this._dependenciesToBeRemoved.clear()}}toString(){return"Autorun<".concat(this.debugName,">")}beginUpdate(e){this._state===3&&(this._state=1),this._updateCount++}endUpdate(e){try{if(this._updateCount===1)do{if(this._state===1){this._state=3;for(const t of this._dependencies)if(t.reportChanges(),this._state===2)break}this._state!==3&&this._run()}while(this._state!==3)}finally{this._updateCount--}assertFn(()=>this._updateCount>=0)}handlePossibleChange(e){this._state===3&&this._isDependency(e)&&(this._state=1)}handleChange(e,t){var r;if(this._isDependency(e)){(r=getLogger())==null||r.handleAutorunDependencyChanged(this,e,t);try{(this._changeTracker?this._changeTracker.handleChange({changedObservable:e,change:t,didChange:a=>a===e},this._changeSummary):!0)&&(this._state=2)}catch(s){onBugIndicatingError(s)}}}_isDependency(e){return this._dependencies.has(e)&&!this._dependenciesToBeRemoved.has(e)}_ensureNoRunning(){if(!this._isRunning)throw new BugIndicatingError("The reader object cannot be used outside its compute function!")}readObservable(e){if(this._ensureNoRunning(),this._disposed)return e.get();e.addObserver(this);const t=e.get();return this._dependencies.add(e),this._dependenciesToBeRemoved.delete(e),t}get store(){if(this._ensureNoRunning(),this._disposed)throw new BugIndicatingError("Cannot access store after dispose");return this._store===void 0&&(this._store=new DisposableStore$1),this._store}debugGetState(){return{isRunning:this._isRunning,updateCount:this._updateCount,dependencies:this._dependencies,state:this._state,stateStr:autorunStateToString(this._state)}}debugRerun(){this._isRunning?this._state=2:this._run()}}function autorun(o,e=DebugLocation.ofCaller()){return new AutorunObserver(new DebugNameData(void 0,void 0,o),o,void 0,e)}function autorunOpts(o,e,t=DebugLocation.ofCaller()){var r;return new AutorunObserver(new DebugNameData(o.owner,o.debugName,(r=o.debugReferenceFn)!=null?r:e),e,void 0,t)}function autorunHandleChanges(o,e,t=DebugLocation.ofCaller()){var r;return new AutorunObserver(new DebugNameData(o.owner,o.debugName,(r=o.debugReferenceFn)!=null?r:e),e,o.changeTracker,t)}function autorunWithStoreHandleChanges(o,e){var s;const t=new DisposableStore$1,r=autorunHandleChanges({owner:o.owner,debugName:o.debugName,debugReferenceFn:(s=o.debugReferenceFn)!=null?s:e,changeTracker:o.changeTracker},(a,l)=>{t.clear(),e(a,l,t)});return toDisposable(()=>{r.dispose(),t.dispose()})}function autorunWithStore(o){const e=new DisposableStore$1,t=autorunOpts({owner:void 0,debugName:void 0,debugReferenceFn:o},r=>{e.clear(),o(r,e)});return toDisposable(()=>{t.dispose(),e.dispose()})}function autorunDelta(o,e){let t;return autorunOpts({debugReferenceFn:e},r=>{const s=o.read(r),a=t;t=s,e({lastValue:a,newValue:s})})}function handleBugIndicatingErrorRecovery(o){const e=new Error("BugIndicatingErrorRecovery: "+o);onUnexpectedError(e),console.error("recovered from an error that indicates a bug",e)}function transaction(o,e){const t=new TransactionImpl(o,e);try{o(t)}finally{t.finish()}}let _globalTransaction;function globalTransaction(o){if(_globalTransaction)o(_globalTransaction);else{const e=new TransactionImpl(o,void 0);_globalTransaction=e;try{o(e)}finally{e.finish(),_globalTransaction=void 0}}}async function asyncTransaction(o,e){const t=new TransactionImpl(o,e);try{await o(t)}finally{t.finish()}}function subtransaction(o,e,t){o?e(o):transaction(e,t)}class TransactionImpl{constructor(e,t){var r;this._fn=e,this._getDebugName=t,this._updatingObservers=[],(r=getLogger())==null||r.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():getFunctionName(this._fn)}updateObserver(e,t){if(!this._updatingObservers){handleBugIndicatingErrorRecovery("Transaction already finished!"),transaction(r=>{r.updateObserver(e,t)});return}this._updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){var t;const e=this._updatingObservers;if(!e){handleBugIndicatingErrorRecovery("transaction.finish() has already been called!");return}for(let r=0;r<e.length;r++){const{observer:s,observable:a}=e[r];s.endUpdate(a)}this._updatingObservers=null,(t=getLogger())==null||t.handleEndTransaction(this)}debugGetUpdatingObservers(){return this._updatingObservers}}function observableFromEvent(...o){let e,t,r,s;return o.length===2?[t,r]=o:[e,t,r,s]=o,new FromEventObservable(new DebugNameData(e,void 0,r),t,r,()=>FromEventObservable.globalTransaction,strictEquals,s!=null?s:DebugLocation.ofCaller())}function observableFromEventOpts(o,e,t,r=DebugLocation.ofCaller()){var s,a;return new FromEventObservable(new DebugNameData(o.owner,o.debugName,(s=o.debugReferenceFn)!=null?s:t),e,t,()=>FromEventObservable.globalTransaction,(a=o.equalsFn)!=null?a:strictEquals,r)}class FromEventObservable extends BaseObservable{constructor(e,t,r,s,a,l){super(l),this._debugNameData=e,this.event=t,this._getValue=r,this._getTransaction=s,this._equalityComparator=a,this._hasValue=!1,this.handleEvent=c=>{var m;const d=this._getValue(c),u=this._value,g=!this._hasValue||!this._equalityComparator(u,d);let f=!1;g&&(this._value=d,this._hasValue&&(f=!0,subtransaction(this._getTransaction(),_=>{var v;(v=getLogger())==null||v.handleObservableUpdated(this,{oldValue:u,newValue:d,change:void 0,didChange:g,hadValue:this._hasValue});for(const b of this._observers)_.updateObserver(b,this),b.handleChange(this,void 0)},()=>{const _=this.getDebugName();return"Event fired"+(_?": ".concat(_):"")})),this._hasValue=!0),f||(m=getLogger())==null||m.handleObservableUpdated(this,{oldValue:u,newValue:d,change:void 0,didChange:g,hadValue:this._hasValue})}}getDebugName(){return this._debugNameData.getDebugName(this)}get debugName(){const e=this.getDebugName();return"From Event"+(e?": ".concat(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)}debugSetValue(e){this._value=e}debugGetState(){return{value:this._value,hasValue:this._hasValue}}}(function(o){o.Observer=FromEventObservable;function e(t,r){let s=!1;FromEventObservable.globalTransaction===void 0&&(FromEventObservable.globalTransaction=t,s=!0);try{r()}finally{s&&(FromEventObservable.globalTransaction=void 0)}}o.batchEventsGlobally=e})(observableFromEvent||(observableFromEvent={}));function debouncedObservable(o,e){let t=!1,r,s;return observableFromEvent(a=>{const l=autorun(c=>{const d=o.read(c);t?(s&&clearTimeout(s),s=setTimeout(()=>{r=d,a()},e)):(t=!0,r=d)});return{dispose(){l.dispose(),t=!1,r=void 0}}},()=>t?r:o.get())}function recomputeInitiallyAndOnChange(o,e){const t=new KeepAliveObserver(!0,e);o.addObserver(t);try{t.beginUpdate(o)}finally{t.endUpdate(o)}return toDisposable(()=>{o.removeObserver(t)})}_setRecomputeInitiallyAndOnChange(recomputeInitiallyAndOnChange);class KeepAliveObserver{constructor(e,t){this._forceRecompute=e,this._handleValue=t,this._counter=0}beginUpdate(e){this._counter++}endUpdate(e){this._counter===1&&this._forceRecompute&&(this._handleValue?this._handleValue(e.get()):e.reportChanges()),this._counter--}handlePossibleChange(e){}handleChange(e,t){}}function derivedObservableWithCache(o,e){let t;return derivedOpts({owner:o,debugReferenceFn:e},s=>(t=e(s,t),t))}function mapObservableArrayCached(o,e,t,r){let s=new ArrayMap$1(t,r);return derivedOpts({debugReferenceFn:t,owner:o,onLastObserverRemoved:()=>{s.dispose(),s=new ArrayMap$1(t)}},l=>(s.setItems(e.read(l)),s.getItems()))}let ArrayMap$1=class{constructor(e,t){this._map=e,this._keySelector=t,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(e=>e.store.dispose()),this._cache.clear()}setItems(e){const t=[],r=new Set(this._cache.keys());for(const s of e){const a=this._keySelector?this._keySelector(s):s;let l=this._cache.get(a);if(l)r.delete(a);else{const c=new DisposableStore$1;l={out:this._map(s,c),store:c},this._cache.set(a,l)}t.push(l.out)}for(const s of r)this._cache.get(s).store.dispose(),this._cache.delete(s);this._items=t}getItems(){return this._items}};function formatValue(o,e){switch(typeof o){case"number":return""+o;case"string":return o.length+2<=e?'"'.concat(o,'"'):'"'.concat(o.substr(0,e-7),'"+...');case"boolean":return o?"true":"false";case"undefined":return"undefined";case"object":return o===null?"null":Array.isArray(o)?formatArray(o,e):formatObject(o,e);case"symbol":return o.toString();case"function":return"[[Function".concat(o.name?" "+o.name:"","]]");default:return""+o}}function formatArray(o,e){let t="[ ",r=!0;for(const s of o){if(r||(t+=", "),t.length-5>e){t+="...";break}r=!1,t+="".concat(formatValue(s,e-t.length))}return t+=" ]",t}function formatObject(o,e){if(typeof o.toString=="function"&&o.toString!==Object.prototype.toString){const a=o.toString();return a.length<=e?a:a.substring(0,e-3)+"..."}const t=getClassName$1(o);let r=t?t+"(":"{ ",s=!0;for(const[a,l]of Object.entries(o)){if(s||(r+=", "),r.length-5>e){r+="...";break}s=!1,r+="".concat(a,": ").concat(formatValue(l,e-r.length))}return r+=t?")":" }",r}class SimpleTypedRpcConnection{static createClient(e,t){return new SimpleTypedRpcConnection(e,t)}constructor(e,t){this._channelFactory=e,this._getHandler=t,this._channel=this._channelFactory({handleNotification:a=>{const l=a,c=this._getHandler().notifications[l[0]];if(!c)throw new Error('Unknown notification "'.concat(l[0],'"!'));c(...l[1])},handleRequest:a=>{const l=a;try{return{type:"result",value:this._getHandler().requests[l[0]](...l[1])}}catch(c){return{type:"error",value:c}}}});const r=new Proxy({},{get:(a,l)=>async(...c)=>{const d=await this._channel.sendRequest([l,c]);if(d.type==="error")throw d.value;return d.value}}),s=new Proxy({},{get:(a,l)=>(...c)=>{this._channel.sendNotification([l,c])}});this.api={notifications:s,requests:r}}}function registerDebugChannel(o,e){var d;const t=globalThis;let r=[],s;const{channel:a,handler:l}=createChannelFactoryFromDebugChannel({sendNotification:u=>{s?s.sendNotification(u):r.push(u)}});let c;return((d=t.$$debugValueEditor_debugChannels)!=null?d:t.$$debugValueEditor_debugChannels={})[o]=u=>{c=e(),s=u;for(const g of r)u.sendNotification(g);return r=[],l},SimpleTypedRpcConnection.createClient(a,()=>{if(!c)throw new Error("Not supported");return c})}function createChannelFactoryFromDebugChannel(o){let e;return{channel:r=>(e=r,{sendNotification:s=>{o.sendNotification(s)},sendRequest:s=>{throw new Error("not supported")}}),handler:{handleRequest:r=>r.type==="notification"?e==null?void 0:e.handleNotification(r.data):e==null?void 0:e.handleRequest(r.data)}}}class Throttler{constructor(){this._timeout=void 0}throttle(e,t){this._timeout===void 0&&(this._timeout=setTimeout(()=>{this._timeout=void 0,e()},t))}dispose(){this._timeout!==void 0&&clearTimeout(this._timeout)}}function deepAssign$1(o,e){for(const t in e)o[t]&&typeof o[t]=="object"&&e[t]&&typeof e[t]=="object"?deepAssign$1(o[t],e[t]):o[t]=e[t]}function deepAssignDeleteNulls(o,e){for(const t in e)e[t]===null?delete o[t]:o[t]&&typeof o[t]=="object"&&e[t]&&typeof e[t]=="object"?deepAssignDeleteNulls(o[t],e[t]):o[t]=e[t]}function observableValue(o,e,t=DebugLocation.ofCaller()){let r;return typeof o=="string"?r=new DebugNameData(void 0,o,void 0):r=new DebugNameData(o,void 0,void 0),new ObservableValue(r,e,strictEquals,t)}class ObservableValue extends BaseObservable{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!=null?e:"ObservableValue"}constructor(e,t,r,s){var a;super(s),this._debugNameData=e,this._equalityComparator=r,this._value=t,(a=getLogger())==null||a.handleObservableUpdated(this,{hadValue:!1,newValue:t,change:void 0,didChange:!0,oldValue:void 0})}get(){return this._value}set(e,t,r){var a;if(r===void 0&&this._equalityComparator(this._value,e))return;let s;t||(t=s=new TransactionImpl(()=>{},()=>"Setting ".concat(this.debugName)));try{const l=this._value;this._setValue(e),(a=getLogger())==null||a.handleObservableUpdated(this,{oldValue:l,newValue:e,change:r,didChange:!0,hadValue:!0});for(const c of this._observers)t.updateObserver(c,this),c.handleChange(this,r)}finally{s&&s.finish()}}toString(){return"".concat(this.debugName,": ").concat(this._value)}_setValue(e){this._value=e}debugGetState(){return{value:this._value}}debugSetValue(e){this._value=e}}function disposableObservableValue(o,e,t=DebugLocation.ofCaller()){let r;return typeof o=="string"?r=new DebugNameData(void 0,o,void 0):r=new DebugNameData(o,void 0,void 0),new DisposableObservableValue(r,e,strictEquals,t)}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.dispose()}}const Pi=class Pi{static getInstance(){return Pi._instance===void 0&&(Pi._instance=new Pi),Pi._instance}getTransactionState(){const e=[],t=[...this._activeTransactions];if(t.length===0)return;const r=t.flatMap(a=>{var l;return(l=a.debugGetUpdatingObservers())!=null?l:[]}).map(a=>a.observer),s=new Set;for(;r.length>0;){const a=r.shift();if(s.has(a))continue;s.add(a);const l=this._getInfo(a,c=>{s.has(c)||r.push(c)});l&&e.push(l)}return{names:t.map(a=>{var l;return(l=a.getDebugName())!=null?l:"tx"}),affected:e}}_getObservableInfo(e){const t=this._instanceInfos.get(e);if(!t){onUnexpectedError(new BugIndicatingError("No info found"));return}return t}_getAutorunInfo(e){const t=this._instanceInfos.get(e);if(!t){onUnexpectedError(new BugIndicatingError("No info found"));return}return t}_getInfo(e,t){if(e instanceof Derived){const r=[...e.debugGetObservers()];for(const d of r)t(d);const s=this._getObservableInfo(e);if(!s)return;const a=e.debugGetState(),l={name:e.debugName,instanceId:s.instanceId,updateCount:a.updateCount},c=[...s.changedObservables].map(d=>{var u;return(u=this._instanceInfos.get(d))==null?void 0:u.instanceId}).filter(isDefined);if(a.isComputing)return{...l,type:"observable/derived",state:"updating",changedDependencies:c,initialComputation:!1};switch(a.state){case 0:return{...l,type:"observable/derived",state:"noValue"};case 3:return{...l,type:"observable/derived",state:"upToDate"};case 2:return{...l,type:"observable/derived",state:"stale",changedDependencies:c};case 1:return{...l,type:"observable/derived",state:"possiblyStale"}}}else if(e instanceof AutorunObserver){const r=this._getAutorunInfo(e);if(!r)return;const s={name:e.debugName,instanceId:r.instanceId,updateCount:r.updateCount},a=[...r.changedObservables].map(l=>this._instanceInfos.get(l).instanceId);if(e.debugGetState().isRunning)return{...s,type:"autorun",state:"updating",changedDependencies:a};switch(e.debugGetState().state){case 3:return{...s,type:"autorun",state:"upToDate"};case 2:return{...s,type:"autorun",state:"stale",changedDependencies:a};case 1:return{...s,type:"autorun",state:"possiblyStale"}}}}_formatObservable(e){const t=this._getObservableInfo(e);if(t)return{name:e.debugName,instanceId:t.instanceId}}_formatObserver(e){var r;if(e instanceof Derived)return{name:e.toString(),instanceId:(r=this._getObservableInfo(e))==null?void 0:r.instanceId};const t=this._getAutorunInfo(e);if(t)return{name:e.toString(),instanceId:t.instanceId}}constructor(){this._declarationId=0,this._instanceId=0,this._declarations=new Map,this._instanceInfos=new WeakMap,this._aliveInstances=new Map,this._activeTransactions=new Set,this._channel=registerDebugChannel("observableDevTools",()=>({notifications:{setDeclarationIdFilter:e=>{},logObservableValue:e=>{console.log("logObservableValue",e)},flushUpdates:()=>{this._flushUpdates()},resetUpdates:()=>{this._pendingChanges=null,this._channel.api.notifications.handleChange(this._fullState,!0)}},requests:{getDeclarations:()=>{const e={};for(const t of this._declarations.values())e[t.id]=t;return{decls:e}},getSummarizedInstances:()=>null,getObservableValueInfo:e=>({observers:[...this._aliveInstances.get(e).debugGetObservers()].map(r=>this._formatObserver(r)).filter(isDefined)}),getDerivedInfo:e=>{const t=this._aliveInstances.get(e);return{dependencies:[...t.debugGetState().dependencies].map(r=>this._formatObservable(r)).filter(isDefined),observers:[...t.debugGetObservers()].map(r=>this._formatObserver(r)).filter(isDefined)}},getAutorunInfo:e=>({dependencies:[...this._aliveInstances.get(e).debugGetState().dependencies].map(r=>this._formatObservable(r)).filter(isDefined)}),getTransactionState:()=>this.getTransactionState(),setValue:(e,t)=>{const r=this._aliveInstances.get(e);if(r instanceof Derived)r.debugSetValue(t);else if(r instanceof ObservableValue)r.debugSetValue(t);else if(r instanceof FromEventObservable)r.debugSetValue(t);else throw new BugIndicatingError("Observable is not supported");const s=[...r.debugGetObservers()];for(const a of s)a.beginUpdate(r);for(const a of s)a.handleChange(r,void 0);for(const a of s)a.endUpdate(r)},getValue:e=>{const t=this._aliveInstances.get(e);if(t instanceof Derived)return formatValue(t.debugGetState().value,200);if(t instanceof ObservableValue)return formatValue(t.debugGetState().value,200)},logValue:e=>{const t=this._aliveInstances.get(e);if(t&&"get"in t)console.log("Logged Value:",t.get());else throw new BugIndicatingError("Observable is not supported")},rerun:e=>{const t=this._aliveInstances.get(e);if(t instanceof Derived)t.debugRecompute();else if(t instanceof AutorunObserver)t.debugRerun();else throw new BugIndicatingError("Observable is not supported")}}})),this._pendingChanges=null,this._changeThrottler=new Throttler,this._fullState={},this._flushUpdates=()=>{this._pendingChanges!==null&&(this._channel.api.notifications.handleChange(this._pendingChanges,!1),this._pendingChanges=null)},DebugLocation.enable()}_handleChange(e){deepAssignDeleteNulls(this._fullState,e),this._pendingChanges===null?this._pendingChanges=e:deepAssign$1(this._pendingChanges,e),this._changeThrottler.throttle(this._flushUpdates,10)}_getDeclarationId(e,t){if(!t)return-1;let r=this._declarations.get(t.id);return r===void 0&&(r={id:this._declarationId++,type:e,url:t.fileName,line:t.line,column:t.column},this._declarations.set(t.id,r),this._handleChange({decls:{[r.id]:r}})),r.id}handleObservableCreated(e,t){const s={declarationId:this._getDeclarationId("observable/value",t),instanceId:this._instanceId++,listenerCount:0,lastValue:void 0,updateCount:0,changedObservables:new Set};this._instanceInfos.set(e,s)}handleOnListenerCountChanged(e,t){const r=this._getObservableInfo(e);if(r){if(r.listenerCount===0&&t>0){const s=e instanceof Derived?"observable/derived":"observable/value";this._aliveInstances.set(r.instanceId,e),this._handleChange({instances:{[r.instanceId]:{instanceId:r.instanceId,declarationId:r.declarationId,formattedValue:r.lastValue,type:s,name:e.debugName}}})}else r.listenerCount>0&&t===0&&(this._handleChange({instances:{[r.instanceId]:null}}),this._aliveInstances.delete(r.instanceId));r.listenerCount=t}}handleObservableUpdated(e,t){if(e instanceof Derived){this._handleDerivedRecomputed(e,t);return}const r=this._getObservableInfo(e);r&&t.didChange&&(r.lastValue=formatValue(t.newValue,30),r.listenerCount>0&&this._handleChange({instances:{[r.instanceId]:{formattedValue:r.lastValue}}}))}handleAutorunCreated(e,t){const s={declarationId:this._getDeclarationId("autorun",t),instanceId:this._instanceId++,updateCount:0,changedObservables:new Set};this._instanceInfos.set(e,s),this._aliveInstances.set(s.instanceId,e),s&&this._handleChange({instances:{[s.instanceId]:{instanceId:s.instanceId,declarationId:s.declarationId,runCount:0,type:"autorun",name:e.debugName}}})}handleAutorunDisposed(e){const t=this._getAutorunInfo(e);t&&(this._handleChange({instances:{[t.instanceId]:null}}),this._instanceInfos.delete(e),this._aliveInstances.delete(t.instanceId))}handleAutorunDependencyChanged(e,t,r){const s=this._getAutorunInfo(e);s&&s.changedObservables.add(t)}handleAutorunStarted(e){}handleAutorunFinished(e){const t=this._getAutorunInfo(e);t&&(t.changedObservables.clear(),t.updateCount++,this._handleChange({instances:{[t.instanceId]:{runCount:t.updateCount}}}))}handleDerivedDependencyChanged(e,t,r){const s=this._getObservableInfo(e);s&&s.changedObservables.add(t)}_handleDerivedRecomputed(e,t){const r=this._getObservableInfo(e);if(!r)return;const s=formatValue(t.newValue,30);r.updateCount++,r.changedObservables.clear(),r.lastValue=s,r.listenerCount>0&&this._handleChange({instances:{[r.instanceId]:{formattedValue:s,recomputationCount:r.updateCount}}})}handleDerivedCleared(e){const t=this._getObservableInfo(e);t&&(t.lastValue=void 0,t.changedObservables.clear(),t.listenerCount>0&&this._handleChange({instances:{[t.instanceId]:{formattedValue:void 0}}}))}handleBeginTransaction(e){this._activeTransactions.add(e)}handleEndTransaction(e){this._activeTransactions.delete(e)}};Pi._instance=void 0;let DevToolsLogger=Pi;env&&env.VSCODE_DEV_DEBUG_OBSERVABLES&&addLogger(DevToolsLogger.getInstance());const{getWindow:getWindow$1,getDocument:getDocument$1,getWindows,getWindowsCount,getWindowId,getWindowById,onDidRegisterWindow,onWillUnregisterWindow,onDidUnregisterWindow}=(function(){const o=new Map;ensureCodeWindow(mainWindow,1);const e={window:mainWindow,disposables:new DisposableStore$1};o.set(mainWindow.vscodeWindowId,e);const t=new Emitter$1,r=new Emitter$1,s=new Emitter$1;function a(l,c){const d=typeof l=="number"?o.get(l):void 0;return d!=null?d:c?e:void 0}return{onDidRegisterWindow:t.event,onWillUnregisterWindow:s.event,onDidUnregisterWindow:r.event,registerWindow(l){if(o.has(l.vscodeWindowId))return Disposable$1.None;const c=new DisposableStore$1,d={window:l,disposables:c.add(new DisposableStore$1)};return o.set(l.vscodeWindowId,d),c.add(toDisposable(()=>{o.delete(l.vscodeWindowId),r.fire(l)})),c.add(addDisposableListener(l,EventType$1.BEFORE_UNLOAD,()=>{s.fire(l)})),t.fire(d),c},getWindows(){return o.values()},getWindowsCount(){return o.size},getWindowId(l){return l.vscodeWindowId},hasWindow(l){return o.has(l)},getWindowById:a,getWindow(l){var u;const c=l;if((u=c==null?void 0:c.ownerDocument)!=null&&u.defaultView)return c.ownerDocument.defaultView.window;const d=l;return d!=null&&d.view?d.view.window:mainWindow},getDocument(l){return getWindow$1(l).document}}})();function clearNode(o){for(;o.firstChild;)o.firstChild.remove()}class DomListener{constructor(e,t,r,s){this._node=e,this._type=t,this._handler=r,this._options=s||!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,r){return new DomListener(o,e,t,r)}function _wrapAsStandardMouseEvent(o,e){return function(t){return e(new StandardMouseEvent(o,t))}}function _wrapAsStandardKeyboardEvent(o){return function(e){return o(new StandardKeyboardEvent(e))}}const addStandardDisposableListener=function(e,t,r,s){let a=r;return t==="click"||t==="mousedown"||t==="contextmenu"?a=_wrapAsStandardMouseEvent(getWindow$1(e),r):(t==="keydown"||t==="keypress"||t==="keyup")&&(a=_wrapAsStandardKeyboardEvent(r)),addDisposableListener(e,t,a,s)},addStandardDisposableGenericMouseDownListener=function(e,t,r){const s=_wrapAsStandardMouseEvent(getWindow$1(e),t);return addDisposableGenericMouseDownListener(e,s,r)};function addDisposableGenericMouseDownListener(o,e,t){return addDisposableListener(o,isIOS&&BrowserFeatures.pointerEvents?EventType$1.POINTER_DOWN:EventType$1.MOUSE_DOWN,e,t)}function addDisposableGenericMouseMoveListener(o,e,t){return addDisposableListener(o,isIOS&&BrowserFeatures.pointerEvents?EventType$1.POINTER_MOVE:EventType$1.MOUSE_MOVE,e,t)}function addDisposableGenericMouseUpListener(o,e,t){return addDisposableListener(o,isIOS&&BrowserFeatures.pointerEvents?EventType$1.POINTER_UP:EventType$1.MOUSE_UP,e,t)}function runWhenWindowIdle(o,e,t){return _runWhenIdle(o,e,t)}class WindowIdleValue extends AbstractIdleValue{constructor(e,t){super(e,t)}}let runAtThisOrScheduleAtNextAnimationFrame,scheduleAtNextAnimationFrame;class WindowIntervalTimer extends IntervalTimer{constructor(e){super(),this.defaultTarget=e&&getWindow$1(e)}cancelAndSet(e,t,r){return super.cancelAndSet(e,t,r!=null?r:this.defaultTarget)}}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(){const o=new Map,e=new Map,t=new Map,r=new Map,s=a=>{var c;t.set(a,!1);const l=(c=o.get(a))!=null?c:[];for(e.set(a,l),o.set(a,[]),r.set(a,!0);l.length>0;)l.sort(AnimationFrameQueueItem.sort),l.shift().execute();r.set(a,!1)};scheduleAtNextAnimationFrame=(a,l,c=0)=>{const d=getWindowId(a),u=new AnimationFrameQueueItem(l,c);let g=o.get(d);return g||(g=[],o.set(d,g)),g.push(u),t.get(d)||(t.set(d,!0),a.requestAnimationFrame(()=>s(d))),u},runAtThisOrScheduleAtNextAnimationFrame=(a,l,c)=>{const d=getWindowId(a);if(r.get(d)){const u=new AnimationFrameQueueItem(l,c);let g=e.get(d);return g||(g=[],e.set(d,g)),g.push(u),u}else return scheduleAtNextAnimationFrame(a,l,c)}})();function getComputedStyle$2(o){return getWindow$1(o).getComputedStyle(o,null)}function getClientArea(o,e,t){const r=getWindow$1(o),s=r.document;if(o!==s.body)return new Dimension(o.clientWidth,o.clientHeight);if(isIOS&&(r!=null&&r.visualViewport))return new Dimension(r.visualViewport.width,r.visualViewport.height);if(r!=null&&r.innerWidth&&r.innerHeight)return new Dimension(r.innerWidth,r.innerHeight);if(s.body&&s.body.clientWidth&&s.body.clientHeight)return new Dimension(s.body.clientWidth,s.body.clientHeight);if(s.documentElement&&s.documentElement.clientWidth&&s.documentElement.clientHeight)return new Dimension(s.documentElement.clientWidth,s.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){const r=getComputedStyle$2(e),s=r?r.getPropertyValue(t):"0";return SizeUtils.convertToPixels(e,s)}static getBorderLeftWidth(e){return SizeUtils.getDimension(e,"border-left-width")}static getBorderRightWidth(e){return SizeUtils.getDimension(e,"border-right-width")}static getBorderTopWidth(e){return SizeUtils.getDimension(e,"border-top-width")}static getBorderBottomWidth(e){return SizeUtils.getDimension(e,"border-bottom-width")}static getPaddingLeft(e){return SizeUtils.getDimension(e,"padding-left")}static getPaddingRight(e){return SizeUtils.getDimension(e,"padding-right")}static getPaddingTop(e){return SizeUtils.getDimension(e,"padding-top")}static getPaddingBottom(e){return SizeUtils.getDimension(e,"padding-bottom")}static getMarginLeft(e){return SizeUtils.getDimension(e,"margin-left")}static getMarginTop(e){return SizeUtils.getDimension(e,"margin-top")}static getMarginRight(e){return SizeUtils.getDimension(e,"margin-right")}static getMarginBottom(e){return SizeUtils.getDimension(e,"margin-bottom")}}const $i=class $i{constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new $i(e,t):this}static is(e){return typeof e=="object"&&typeof e.height=="number"&&typeof e.width=="number"}static lift(e){return e instanceof $i?e:new $i(e.width,e.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}};$i.None=new $i(0,0);let Dimension=$i;function getTopLeftOffset(o){let e=o.offsetParent,t=o.offsetTop,r=o.offsetLeft;for(;(o=o.parentNode)!==null&&o!==o.ownerDocument.body&&o!==o.ownerDocument.documentElement;){t-=o.scrollTop;const s=isShadowRoot(o)?null:getComputedStyle$2(o);s&&(r-=s.direction!=="rtl"?o.scrollLeft:-o.scrollLeft),o===e&&(r+=SizeUtils.getBorderLeftWidth(o),t+=SizeUtils.getBorderTopWidth(o),t+=o.offsetTop,r+=o.offsetLeft,e=o.offsetParent)}return{left:r,top:t}}function size(o,e,t){typeof e=="number"&&(o.style.width="".concat(e,"px")),typeof t=="number"&&(o.style.height="".concat(t,"px"))}function getDomNodePagePosition(o){const e=o.getBoundingClientRect(),t=getWindow$1(o);return{left:e.left+t.scrollX,top:e.top+t.scrollY,width:e.width,height:e.height}}function getDomNodeZoomLevel(o){let e=o,t=1;do{const r=getComputedStyle$2(e).zoom;r!=null&&r!=="1"&&(t*=r),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){return!!(e!=null&&e.contains(o))}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$2(o)}function getShadowRoot$2(o){var e;for(;o.parentNode;){if(o===((e=o.ownerDocument)==null?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 isActiveElement(o){return getActiveElement()===o}function isAncestorOfActiveElement(o){return isAncestor$1(getActiveElement(),o)}function getActiveDocument(){var e;return getWindowsCount()<=1?mainWindow.document:(e=Array.from(getWindows()).map(({window:t})=>t.document).find(t=>t.hasFocus()))!=null?e:mainWindow.document}function getActiveWindow(){var e,t;return(t=(e=getActiveDocument().defaultView)==null?void 0:e.window)!=null?t:mainWindow}const sharedMutationObserver=new class{constructor(){this.mutationObservers=new Map}observe(o,e,t){let r=this.mutationObservers.get(o);r||(r=new Map,this.mutationObservers.set(o,r));const s=hash$1(t);let a=r.get(s);if(a)a.users+=1;else{const l=new Emitter$1,c=new MutationObserver(u=>l.fire(u));c.observe(o,t);const d=a={users:1,observer:c,onDidMutate:l.event};e.add(toDisposable(()=>{d.users-=1,d.users===0&&(l.dispose(),c.disconnect(),r==null||r.delete(s),(r==null?void 0:r.size)===0&&this.mutationObservers.delete(o))})),r.set(s,a)}return a.onDidMutate}};function isHTMLElement(o){return o instanceof HTMLElement||o instanceof getWindow$1(o).HTMLElement}function isHTMLAnchorElement(o){return o instanceof HTMLAnchorElement||o instanceof getWindow$1(o).HTMLAnchorElement}function isSVGElement(o){return o instanceof SVGElement||o instanceof getWindow$1(o).SVGElement}function isMouseEvent$1(o){return o instanceof MouseEvent||o instanceof getWindow$1(o).MouseEvent}function isKeyboardEvent(o){return o instanceof KeyboardEvent||o instanceof getWindow$1(o).KeyboardEvent}const EventType$1={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",KEY_DOWN:"keydown",KEY_UP:"keyup",BEFORE_UNLOAD:"beforeunload",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",DRAG_START:"dragstart",DRAG:"drag",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$1={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}let FocusTracker$1=class Ys extends Disposable$1{get onDidFocus(){return this._onDidFocus.event}get onDidBlur(){return this._onDidBlur.event}static hasFocusWithin(e){if(isHTMLElement(e)){const t=getShadowRoot$2(e),r=t?t.activeElement:e.ownerDocument.activeElement;return isAncestor$1(r,e)}else{const t=e;return isAncestor$1(t.document.activeElement,t.document)}}constructor(e){super(),this._onDidFocus=this._register(new Emitter$1),this._onDidBlur=this._register(new Emitter$1);let t=Ys.hasFocusWithin(e),r=!1;const s=()=>{r=!1,t||(t=!0,this._onDidFocus.fire())},a=()=>{t&&(r=!0,(isHTMLElement(e)?getWindow$1(e):e).setTimeout(()=>{r&&(r=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{Ys.hasFocusWithin(e)!==t&&(t?a():s())},this._register(addDisposableListener(e,EventType$1.FOCUS,s,!0)),this._register(addDisposableListener(e,EventType$1.BLUR,a,!0)),isHTMLElement(e)&&(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$1(o)}function after(o,e){return o.after(e),e}function append$2(o,...e){if(o.append(...e),e.length===1&&typeof e[0]!="string")return e[0]}function prepend$2(o,e){return o.insertBefore(e,o.firstChild),e}function reset(o,...e){o.textContent="",append$2(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,...r){const s=SELECTOR_REGEX.exec(e);if(!s)throw new Error("Bad use of emmet");const a=s[1]||"div";let l;return o!==Namespace.HTML?l=document.createElementNS(o,a):l=document.createElement(a),s[3]&&(l.id=s[3]),s[4]&&(l.className=s[4].replace(/\./g," ").trim()),t&&Object.entries(t).forEach(([c,d])=>{typeof d>"u"||(/^on\w+$/.test(c)?l[c]=d:c==="selected"?d&&l.setAttribute(c,"true"):l.setAttribute(c,d))}),l.append(...r),l}function $$m(o,e,...t){return _$(Namespace.HTML,o,e,...t)}$$m.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,e){const t=o.devicePixelRatio*e;return Math.max(1,Math.floor(t))/o.devicePixelRatio}function windowOpenNoOpener(o){mainWindow.open(o,"_blank","noopener")}function animate(o,e){const t=()=>{e(),r=scheduleAtNextAnimationFrame(o,t)};let r=scheduleAtNextAnimationFrame(o,t);return toDisposable(()=>r.dispose())}RemoteAuthorities.setPreferredWebSchema(/^https:/.test(mainWindow.location.href)?"https":"http");class ModifierKeyEmitter extends Emitter$1{constructor(){super(),this._subscriptions=new DisposableStore$1,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(Event$1.runAndSubscribe(onDidRegisterWindow,({window:e,disposables:t})=>this.registerListeners(e,t),{window:mainWindow,disposables:this._subscriptions}))}registerListeners(e,t){t.add(addDisposableListener(e,"keydown",r=>{if(r.defaultPrevented)return;const s=new StandardKeyboardEvent(r);if(!(s.keyCode===6&&r.repeat)){if(r.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(r.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(r.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(r.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(s.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=r.altKey,this._keyStatus.ctrlKey=r.ctrlKey,this._keyStatus.metaKey=r.metaKey,this._keyStatus.shiftKey=r.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=r,this.fire(this._keyStatus))}},!0)),t.add(addDisposableListener(e,"keyup",r=>{r.defaultPrevented||(!r.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!r.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!r.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!r.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=r.altKey,this._keyStatus.ctrlKey=r.ctrlKey,this._keyStatus.metaKey=r.metaKey,this._keyStatus.shiftKey=r.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=r,this.fire(this._keyStatus)))},!0)),t.add(addDisposableListener(e.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(addDisposableListener(e.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(addDisposableListener(e.document.body,"mousemove",r=>{r.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),t.add(addDisposableListener(e,"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$1{constructor(e,t){super(),this.element=e,this.callbacks=t,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(addDisposableListener(this.element,EventType$1.DRAG_START,e=>{var t,r;(r=(t=this.callbacks).onDragStart)==null||r.call(t,e)})),this.callbacks.onDrag&&this._register(addDisposableListener(this.element,EventType$1.DRAG,e=>{var t,r;(r=(t=this.callbacks).onDrag)==null||r.call(t,e)})),this._register(addDisposableListener(this.element,EventType$1.DRAG_ENTER,e=>{var t,r;this.counter++,this.dragStartTime=e.timeStamp,(r=(t=this.callbacks).onDragEnter)==null||r.call(t,e)})),this._register(addDisposableListener(this.element,EventType$1.DRAG_OVER,e=>{var t,r;e.preventDefault(),(r=(t=this.callbacks).onDragOver)==null||r.call(t,e,e.timeStamp-this.dragStartTime)})),this._register(addDisposableListener(this.element,EventType$1.DRAG_LEAVE,e=>{var t,r;this.counter--,this.counter===0&&(this.dragStartTime=0,(r=(t=this.callbacks).onDragLeave)==null||r.call(t,e))})),this._register(addDisposableListener(this.element,EventType$1.DRAG_END,e=>{var t,r;this.counter=0,this.dragStartTime=0,(r=(t=this.callbacks).onDragEnd)==null||r.call(t,e)})),this._register(addDisposableListener(this.element,EventType$1.DROP,e=>{var t,r;this.counter=0,this.dragStartTime=0,(r=(t=this.callbacks).onDrop)==null||r.call(t,e)}))}}const H_REGEX=new RegExp("(?<tag>[\\w\\-]+)?(?:#(?<id>[\\w\\-]+))?(?<class>(?:\\.(?:[\\w\\-]+))*)(?:@(?<name>(?:[\\w\\_])+))?");function h(o,...e){let t,r;Array.isArray(e[0])?(t={},r=e[0]):(t=e[0]||{},r=e[1]);const s=H_REGEX.exec(o);if(!s||!s.groups)throw new Error("Bad use of h");const a=s.groups.tag||"div",l=document.createElement(a);s.groups.id&&(l.id=s.groups.id);const c=[];if(s.groups.class)for(const u of s.groups.class.split("."))u!==""&&c.push(u);if(t.className!==void 0)for(const u of t.className.split("."))u!==""&&c.push(u);c.length>0&&(l.className=c.join(" "));const d={};if(s.groups.name&&(d[s.groups.name]=l),r)for(const u of r)isHTMLElement(u)?l.appendChild(u):typeof u=="string"?l.append(u):"root"in u&&(Object.assign(d,u),l.appendChild(u.root));for(const[u,g]of Object.entries(t))if(u!=="className")if(u==="style")for(const[f,m]of Object.entries(g))l.style.setProperty(camelCaseToHyphenCase(f),typeof m=="number"?m+"px":""+m);else u==="tabIndex"?l.tabIndex=g:l.setAttribute(camelCaseToHyphenCase(u),g.toString());return d.root=l,d}function camelCaseToHyphenCase(o){return o.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}function isEditableElement(o){return o.tagName.toLowerCase()==="input"||o.tagName.toLowerCase()==="textarea"||isHTMLElement(o)&&!!o.editContext}var n;(function(o){function e(s=void 0){return(a,l,c)=>{const d=l.class;delete l.class;const u=l.ref;delete l.ref;const g=l.obsRef;return delete l.obsRef,new ObserverNodeWithElement(a,u,g,s,d,l,c)}}function t(s,a=void 0){const l=e(a);return(c,d)=>l(s,c,d)}o.div=t("div"),o.elem=e(void 0),o.svg=t("svg","http://www.w3.org/2000/svg"),o.svgElem=e("http://www.w3.org/2000/svg");function r(){let s;const a=function(l){s=l};return Object.defineProperty(a,"element",{get(){if(!s)throw new BugIndicatingError("Make sure the ref is set before accessing the element. Maybe wrong initialization order?");return s}}),a}o.ref=r})(n||(n={}));class ObserverNode{constructor(e,t,r,s,a,l,c){this._deriveds=[],this._element=s?document.createElementNS(s,e):document.createElement(e),t&&t(this._element),r&&this._deriveds.push(derived(d=>{r(this),d.store.add({dispose:()=>{r(null)}})})),a&&(hasObservable(a)?this._deriveds.push(derived(this,d=>{setClassName(this._element,getClassName(a,d))})):setClassName(this._element,getClassName(a,void 0)));for(const[d,u]of Object.entries(l))if(d==="style")for(const[g,f]of Object.entries(u)){const m=camelCaseToHyphenCase(g);isObservable(f)?this._deriveds.push(derivedOpts({owner:this,debugName:()=>"set.style.".concat(m)},_=>{this._element.style.setProperty(m,convertCssValue(f.read(_)))})):this._element.style.setProperty(m,convertCssValue(f))}else d==="tabIndex"?isObservable(u)?this._deriveds.push(derived(this,g=>{this._element.tabIndex=u.read(g)})):this._element.tabIndex=u:d.startsWith("on")?this._element[d]=u:isObservable(u)?this._deriveds.push(derivedOpts({owner:this,debugName:()=>"set.".concat(d)},g=>{setOrRemoveAttribute(this._element,d,u.read(g))})):setOrRemoveAttribute(this._element,d,u);if(c){let d=function(g,f){return isObservable(f)?d(g,f.read(g)):Array.isArray(f)?f.flatMap(m=>d(g,m)):f instanceof ObserverNode?(g&&f.readEffect(g),[f._element]):f?[f]:[]};const u=derived(this,g=>{this._element.replaceChildren(...d(g,c))});this._deriveds.push(u),childrenIsObservable(c)||u.get()}}readEffect(e){for(const t of this._deriveds)t.read(e)}keepUpdated(e){return derived(t=>{this.readEffect(t)}).recomputeInitiallyAndOnChange(e),this}toDisposableLiveElement(){const e=new DisposableStore$1;return this.keepUpdated(e),new LiveElement(this._element,e)}}function setClassName(o,e){isSVGElement(o)?o.setAttribute("class",e):o.className=e}function resolve(o,e,t){if(isObservable(o)){t(o.read(e));return}if(Array.isArray(o)){for(const r of o)resolve(r,e,t);return}t(o)}function getClassName(o,e){let t="";return resolve(o,e,r=>{r&&(t.length===0?t=r:t+=" "+r)}),t}function hasObservable(o){return isObservable(o)?!0:Array.isArray(o)?o.some(e=>hasObservable(e)):!1}function convertCssValue(o){return typeof o=="number"?o+"px":o}function childrenIsObservable(o){return isObservable(o)?!0:Array.isArray(o)?o.some(e=>childrenIsObservable(e)):!1}class LiveElement{constructor(e,t){this.element=e,this._disposable=t}dispose(){this._disposable.dispose()}}class ObserverNodeWithElement extends ObserverNode{constructor(){super(...arguments),this._isHovered=void 0,this._didMouseMoveDuringHover=void 0}get element(){return this._element}get isHovered(){if(!this._isHovered){const e=observableValue("hovered",!1);this._element.addEventListener("mouseenter",t=>e.set(!0,void 0)),this._element.addEventListener("mouseleave",t=>e.set(!1,void 0)),this._isHovered=e}return this._isHovered}get didMouseMoveDuringHover(){if(!this._didMouseMoveDuringHover){let e=!1;const t=observableValue("didMouseMoveDuringHover",!1);this._element.addEventListener("mouseenter",r=>{e=!0}),this._element.addEventListener("mousemove",r=>{e&&t.set(!0,void 0)}),this._element.addEventListener("mouseleave",r=>{e=!1,t.set(!1,void 0)}),this._didMouseMoveDuringHover=t}return this._didMouseMoveDuringHover}}function setOrRemoveAttribute(o,e,t){t==null?o.removeAttribute(camelCaseToHyphenCase(e)):o.setAttribute(camelCaseToHyphenCase(e),String(t))}function isObservable(o){return!!o&&o.read!==void 0&&o.reportChanges!==void 0}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 r=document.createElement("div");return r.className="monaco-alert",r.setAttribute("role","alert"),r.setAttribute("aria-atomic","true"),ariaContainer.appendChild(r),r};alertContainer=e(),alertContainer2=e();const t=()=>{const r=document.createElement("div");return r.className="monaco-status",r.setAttribute("aria-live","polite"),r.setAttribute("aria-atomic","true"),ariaContainer.appendChild(r),r};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"}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,r,s){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");storeServiceDependency(e,t,s)};return e.toString=()=>o,_util.serviceIds.set(o,e),e}const ICodeEditorService=createDecorator("codeEditorService");let Position$1=class Mi{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 Mi(e,t)}delta(e=0,t=0){return this.with(Math.max(1,this.lineNumber+e),Math.max(1,this.column+t))}equals(e){return Mi.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return Mi.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 Mi.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 r=e.lineNumber|0,s=t.lineNumber|0;if(r===s){const a=e.column|0,l=t.column|0;return a-l}return r-s}clone(){return new Mi(this.lineNumber,this.column)}toString(){return"("+this.lineNumber+","+this.column+")"}static lift(e){return new Mi(e.lineNumber,e.column)}static isIPosition(e){return!!e&&typeof e.lineNumber=="number"&&typeof e.column=="number"}toJSON(){return{lineNumber:this.lineNumber,column:this.column}}};const IModelService=createDecorator("modelService"),ITextModelService=createDecorator("textModelService");class Action extends Disposable$1{get onDidChange(){return this._onDidChange.event}constructor(e,t="",r="",s=!0,a){super(),this._onDidChange=this._register(new Emitter$1),this._enabled=!0,this._id=e,this._label=t,this._cssClass=r,this._enabled=s,this._actionCallback=a}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}))}async run(e,t){this._actionCallback&&await this._actionCallback(e)}}class ActionRunner extends Disposable$1{constructor(){super(...arguments),this._onWillRun=this._register(new Emitter$1),this._onDidRun=this._register(new Emitter$1)}get onWillRun(){return this._onWillRun.event}get onDidRun(){return this._onDidRun.event}async run(e,t){if(!e.enabled)return;this._onWillRun.fire({action:e});let r;try{await this.runAction(e,t)}catch(s){r=s}this._onDidRun.fire({action:e,error:r})}async runAction(e,t){await e.run(t)}}const Mr=class Mr{constructor(){this.id=Mr.ID,this.label="",this.tooltip="",this.class="separator",this.enabled=!1,this.checked=!1}static join(...e){let t=[];for(const r of e)r.length&&(t.length?t=[...t,new Mr,...r]:t=r);return t}async run(){}};Mr.ID="vs.actions.separator";let Separator=Mr;class SubmenuAction{get actions(){return this._actions}constructor(e,t,r,s){this.tooltip="",this.enabled=!0,this.checked=void 0,this.id=e,this.label=t,this.class=s,this._actions=r}async run(){}}const ao=class ao extends Action{constructor(){super(ao.ID,localize(28,"(empty)"),void 0,!1)}};ao.ID="vs.actions.empty";let EmptySubmenuAction=ao;function toAction(o){var e,t;return{id:o.id,label:o.label,tooltip:(e=o.tooltip)!=null?e:o.label,class:o.class,enabled:(t=o.enabled)!=null?t:!0,checked:o.checked,run:async(...r)=>o.run(...r)}}const _codiconFontCharacters=Object.create(null);function register$2(o,e){if(isString$2(e)){const t=_codiconFontCharacters[e];if(t===void 0)throw new Error("".concat(o," references an unknown codicon: ").concat(e));e=t}return _codiconFontCharacters[o]=e,{id:o}}function getCodiconFontCharacters(){return _codiconFontCharacters}const codiconsLibrary={add:register$2("add",6e4),plus:register$2("plus",6e4),gistNew:register$2("gist-new",6e4),repoCreate:register$2("repo-create",6e4),lightbulb:register$2("lightbulb",60001),lightBulb:register$2("light-bulb",60001),repo:register$2("repo",60002),repoDelete:register$2("repo-delete",60002),gistFork:register$2("gist-fork",60003),repoForked:register$2("repo-forked",60003),gitPullRequest:register$2("git-pull-request",60004),gitPullRequestAbandoned:register$2("git-pull-request-abandoned",60004),recordKeys:register$2("record-keys",60005),keyboard:register$2("keyboard",60005),tag:register$2("tag",60006),gitPullRequestLabel:register$2("git-pull-request-label",60006),tagAdd:register$2("tag-add",60006),tagRemove:register$2("tag-remove",60006),person:register$2("person",60007),personFollow:register$2("person-follow",60007),personOutline:register$2("person-outline",60007),personFilled:register$2("person-filled",60007),sourceControl:register$2("source-control",60008),mirror:register$2("mirror",60009),mirrorPublic:register$2("mirror-public",60009),star:register$2("star",60010),starAdd:register$2("star-add",60010),starDelete:register$2("star-delete",60010),starEmpty:register$2("star-empty",60010),comment:register$2("comment",60011),commentAdd:register$2("comment-add",60011),alert:register$2("alert",60012),warning:register$2("warning",60012),search:register$2("search",60013),searchSave:register$2("search-save",60013),logOut:register$2("log-out",60014),signOut:register$2("sign-out",60014),logIn:register$2("log-in",60015),signIn:register$2("sign-in",60015),eye:register$2("eye",60016),eyeUnwatch:register$2("eye-unwatch",60016),eyeWatch:register$2("eye-watch",60016),circleFilled:register$2("circle-filled",60017),primitiveDot:register$2("primitive-dot",60017),closeDirty:register$2("close-dirty",60017),debugBreakpoint:register$2("debug-breakpoint",60017),debugBreakpointDisabled:register$2("debug-breakpoint-disabled",60017),debugHint:register$2("debug-hint",60017),terminalDecorationSuccess:register$2("terminal-decoration-success",60017),primitiveSquare:register$2("primitive-square",60018),edit:register$2("edit",60019),pencil:register$2("pencil",60019),info:register$2("info",60020),issueOpened:register$2("issue-opened",60020),gistPrivate:register$2("gist-private",60021),gitForkPrivate:register$2("git-fork-private",60021),lock:register$2("lock",60021),mirrorPrivate:register$2("mirror-private",60021),close:register$2("close",60022),removeClose:register$2("remove-close",60022),x:register$2("x",60022),repoSync:register$2("repo-sync",60023),sync:register$2("sync",60023),clone:register$2("clone",60024),desktopDownload:register$2("desktop-download",60024),beaker:register$2("beaker",60025),microscope:register$2("microscope",60025),vm:register$2("vm",60026),deviceDesktop:register$2("device-desktop",60026),file:register$2("file",60027),more:register$2("more",60028),ellipsis:register$2("ellipsis",60028),kebabHorizontal:register$2("kebab-horizontal",60028),mailReply:register$2("mail-reply",60029),reply:register$2("reply",60029),organization:register$2("organization",60030),organizationFilled:register$2("organization-filled",60030),organizationOutline:register$2("organization-outline",60030),newFile:register$2("new-file",60031),fileAdd:register$2("file-add",60031),newFolder:register$2("new-folder",60032),fileDirectoryCreate:register$2("file-directory-create",60032),trash:register$2("trash",60033),trashcan:register$2("trashcan",60033),history:register$2("history",60034),clock:register$2("clock",60034),folder:register$2("folder",60035),fileDirectory:register$2("file-directory",60035),symbolFolder:register$2("symbol-folder",60035),logoGithub:register$2("logo-github",60036),markGithub:register$2("mark-github",60036),github:register$2("github",60036),terminal:register$2("terminal",60037),console:register$2("console",60037),repl:register$2("repl",60037),zap:register$2("zap",60038),symbolEvent:register$2("symbol-event",60038),error:register$2("error",60039),stop:register$2("stop",60039),variable:register$2("variable",60040),symbolVariable:register$2("symbol-variable",60040),array:register$2("array",60042),symbolArray:register$2("symbol-array",60042),symbolModule:register$2("symbol-module",60043),symbolPackage:register$2("symbol-package",60043),symbolNamespace:register$2("symbol-namespace",60043),symbolObject:register$2("symbol-object",60043),symbolMethod:register$2("symbol-method",60044),symbolFunction:register$2("symbol-function",60044),symbolConstructor:register$2("symbol-constructor",60044),symbolBoolean:register$2("symbol-boolean",60047),symbolNull:register$2("symbol-null",60047),symbolNumeric:register$2("symbol-numeric",60048),symbolNumber:register$2("symbol-number",60048),symbolStructure:register$2("symbol-structure",60049),symbolStruct:register$2("symbol-struct",60049),symbolParameter:register$2("symbol-parameter",60050),symbolTypeParameter:register$2("symbol-type-parameter",60050),symbolKey:register$2("symbol-key",60051),symbolText:register$2("symbol-text",60051),symbolReference:register$2("symbol-reference",60052),goToFile:register$2("go-to-file",60052),symbolEnum:register$2("symbol-enum",60053),symbolValue:register$2("symbol-value",60053),symbolRuler:register$2("symbol-ruler",60054),symbolUnit:register$2("symbol-unit",60054),activateBreakpoints:register$2("activate-breakpoints",60055),archive:register$2("archive",60056),arrowBoth:register$2("arrow-both",60057),arrowDown:register$2("arrow-down",60058),arrowLeft:register$2("arrow-left",60059),arrowRight:register$2("arrow-right",60060),arrowSmallDown:register$2("arrow-small-down",60061),arrowSmallLeft:register$2("arrow-small-left",60062),arrowSmallRight:register$2("arrow-small-right",60063),arrowSmallUp:register$2("arrow-small-up",60064),arrowUp:register$2("arrow-up",60065),bell:register$2("bell",60066),bold:register$2("bold",60067),book:register$2("book",60068),bookmark:register$2("bookmark",60069),debugBreakpointConditionalUnverified:register$2("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:register$2("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:register$2("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:register$2("debug-breakpoint-data-unverified",60072),debugBreakpointData:register$2("debug-breakpoint-data",60073),debugBreakpointDataDisabled:register$2("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:register$2("debug-breakpoint-log-unverified",60074),debugBreakpointLog:register$2("debug-breakpoint-log",60075),debugBreakpointLogDisabled:register$2("debug-breakpoint-log-disabled",60075),briefcase:register$2("briefcase",60076),broadcast:register$2("broadcast",60077),browser:register$2("browser",60078),bug:register$2("bug",60079),calendar:register$2("calendar",60080),caseSensitive:register$2("case-sensitive",60081),check:register$2("check",60082),checklist:register$2("checklist",60083),chevronDown:register$2("chevron-down",60084),chevronLeft:register$2("chevron-left",60085),chevronRight:register$2("chevron-right",60086),chevronUp:register$2("chevron-up",60087),chromeClose:register$2("chrome-close",60088),chromeMaximize:register$2("chrome-maximize",60089),chromeMinimize:register$2("chrome-minimize",60090),chromeRestore:register$2("chrome-restore",60091),circleOutline:register$2("circle-outline",60092),circle:register$2("circle",60092),debugBreakpointUnverified:register$2("debug-breakpoint-unverified",60092),terminalDecorationIncomplete:register$2("terminal-decoration-incomplete",60092),circleSlash:register$2("circle-slash",60093),circuitBoard:register$2("circuit-board",60094),clearAll:register$2("clear-all",60095),clippy:register$2("clippy",60096),closeAll:register$2("close-all",60097),cloudDownload:register$2("cloud-download",60098),cloudUpload:register$2("cloud-upload",60099),code:register$2("code",60100),collapseAll:register$2("collapse-all",60101),colorMode:register$2("color-mode",60102),commentDiscussion:register$2("comment-discussion",60103),creditCard:register$2("credit-card",60105),dash:register$2("dash",60108),dashboard:register$2("dashboard",60109),database:register$2("database",60110),debugContinue:register$2("debug-continue",60111),debugDisconnect:register$2("debug-disconnect",60112),debugPause:register$2("debug-pause",60113),debugRestart:register$2("debug-restart",60114),debugStart:register$2("debug-start",60115),debugStepInto:register$2("debug-step-into",60116),debugStepOut:register$2("debug-step-out",60117),debugStepOver:register$2("debug-step-over",60118),debugStop:register$2("debug-stop",60119),debug:register$2("debug",60120),deviceCameraVideo:register$2("device-camera-video",60121),deviceCamera:register$2("device-camera",60122),deviceMobile:register$2("device-mobile",60123),diffAdded:register$2("diff-added",60124),diffIgnored:register$2("diff-ignored",60125),diffModified:register$2("diff-modified",60126),diffRemoved:register$2("diff-removed",60127),diffRenamed:register$2("diff-renamed",60128),diff:register$2("diff",60129),diffSidebyside:register$2("diff-sidebyside",60129),discard:register$2("discard",60130),editorLayout:register$2("editor-layout",60131),emptyWindow:register$2("empty-window",60132),exclude:register$2("exclude",60133),extensions:register$2("extensions",60134),eyeClosed:register$2("eye-closed",60135),fileBinary:register$2("file-binary",60136),fileCode:register$2("file-code",60137),fileMedia:register$2("file-media",60138),filePdf:register$2("file-pdf",60139),fileSubmodule:register$2("file-submodule",60140),fileSymlinkDirectory:register$2("file-symlink-directory",60141),fileSymlinkFile:register$2("file-symlink-file",60142),fileZip:register$2("file-zip",60143),files:register$2("files",60144),filter:register$2("filter",60145),flame:register$2("flame",60146),foldDown:register$2("fold-down",60147),foldUp:register$2("fold-up",60148),fold:register$2("fold",60149),folderActive:register$2("folder-active",60150),folderOpened:register$2("folder-opened",60151),gear:register$2("gear",60152),gift:register$2("gift",60153),gistSecret:register$2("gist-secret",60154),gist:register$2("gist",60155),gitCommit:register$2("git-commit",60156),gitCompare:register$2("git-compare",60157),compareChanges:register$2("compare-changes",60157),gitMerge:register$2("git-merge",60158),githubAction:register$2("github-action",60159),githubAlt:register$2("github-alt",60160),globe:register$2("globe",60161),grabber:register$2("grabber",60162),graph:register$2("graph",60163),gripper:register$2("gripper",60164),heart:register$2("heart",60165),home:register$2("home",60166),horizontalRule:register$2("horizontal-rule",60167),hubot:register$2("hubot",60168),inbox:register$2("inbox",60169),issueReopened:register$2("issue-reopened",60171),issues:register$2("issues",60172),italic:register$2("italic",60173),jersey:register$2("jersey",60174),json:register$2("json",60175),kebabVertical:register$2("kebab-vertical",60176),key:register$2("key",60177),law:register$2("law",60178),lightbulbAutofix:register$2("lightbulb-autofix",60179),linkExternal:register$2("link-external",60180),link:register$2("link",60181),listOrdered:register$2("list-ordered",60182),listUnordered:register$2("list-unordered",60183),liveShare:register$2("live-share",60184),loading:register$2("loading",60185),location:register$2("location",60186),mailRead:register$2("mail-read",60187),mail:register$2("mail",60188),markdown:register$2("markdown",60189),megaphone:register$2("megaphone",60190),mention:register$2("mention",60191),milestone:register$2("milestone",60192),gitPullRequestMilestone:register$2("git-pull-request-milestone",60192),mortarBoard:register$2("mortar-board",60193),move:register$2("move",60194),multipleWindows:register$2("multiple-windows",60195),mute:register$2("mute",60196),noNewline:register$2("no-newline",60197),note:register$2("note",60198),octoface:register$2("octoface",60199),openPreview:register$2("open-preview",60200),package:register$2("package",60201),paintcan:register$2("paintcan",60202),pin:register$2("pin",60203),play:register$2("play",60204),run:register$2("run",60204),plug:register$2("plug",60205),preserveCase:register$2("preserve-case",60206),preview:register$2("preview",60207),project:register$2("project",60208),pulse:register$2("pulse",60209),question:register$2("question",60210),quote:register$2("quote",60211),radioTower:register$2("radio-tower",60212),reactions:register$2("reactions",60213),references:register$2("references",60214),refresh:register$2("refresh",60215),regex:register$2("regex",60216),remoteExplorer:register$2("remote-explorer",60217),remote:register$2("remote",60218),remove:register$2("remove",60219),replaceAll:register$2("replace-all",60220),replace:register$2("replace",60221),repoClone:register$2("repo-clone",60222),repoForcePush:register$2("repo-force-push",60223),repoPull:register$2("repo-pull",60224),repoPush:register$2("repo-push",60225),report:register$2("report",60226),requestChanges:register$2("request-changes",60227),rocket:register$2("rocket",60228),rootFolderOpened:register$2("root-folder-opened",60229),rootFolder:register$2("root-folder",60230),rss:register$2("rss",60231),ruby:register$2("ruby",60232),saveAll:register$2("save-all",60233),saveAs:register$2("save-as",60234),save:register$2("save",60235),screenFull:register$2("screen-full",60236),screenNormal:register$2("screen-normal",60237),searchStop:register$2("search-stop",60238),server:register$2("server",60240),settingsGear:register$2("settings-gear",60241),settings:register$2("settings",60242),shield:register$2("shield",60243),smiley:register$2("smiley",60244),sortPrecedence:register$2("sort-precedence",60245),splitHorizontal:register$2("split-horizontal",60246),splitVertical:register$2("split-vertical",60247),squirrel:register$2("squirrel",60248),starFull:register$2("star-full",60249),starHalf:register$2("star-half",60250),symbolClass:register$2("symbol-class",60251),symbolColor:register$2("symbol-color",60252),symbolConstant:register$2("symbol-constant",60253),symbolEnumMember:register$2("symbol-enum-member",60254),symbolField:register$2("symbol-field",60255),symbolFile:register$2("symbol-file",60256),symbolInterface:register$2("symbol-interface",60257),symbolKeyword:register$2("symbol-keyword",60258),symbolMisc:register$2("symbol-misc",60259),symbolOperator:register$2("symbol-operator",60260),symbolProperty:register$2("symbol-property",60261),wrench:register$2("wrench",60261),wrenchSubaction:register$2("wrench-subaction",60261),symbolSnippet:register$2("symbol-snippet",60262),tasklist:register$2("tasklist",60263),telescope:register$2("telescope",60264),textSize:register$2("text-size",60265),threeBars:register$2("three-bars",60266),thumbsdown:register$2("thumbsdown",60267),thumbsup:register$2("thumbsup",60268),tools:register$2("tools",60269),triangleDown:register$2("triangle-down",60270),triangleLeft:register$2("triangle-left",60271),triangleRight:register$2("triangle-right",60272),triangleUp:register$2("triangle-up",60273),twitter:register$2("twitter",60274),unfold:register$2("unfold",60275),unlock:register$2("unlock",60276),unmute:register$2("unmute",60277),unverified:register$2("unverified",60278),verified:register$2("verified",60279),versions:register$2("versions",60280),vmActive:register$2("vm-active",60281),vmOutline:register$2("vm-outline",60282),vmRunning:register$2("vm-running",60283),watch:register$2("watch",60284),whitespace:register$2("whitespace",60285),wholeWord:register$2("whole-word",60286),window:register$2("window",60287),wordWrap:register$2("word-wrap",60288),zoomIn:register$2("zoom-in",60289),zoomOut:register$2("zoom-out",60290),listFilter:register$2("list-filter",60291),listFlat:register$2("list-flat",60292),listSelection:register$2("list-selection",60293),selection:register$2("selection",60293),listTree:register$2("list-tree",60294),debugBreakpointFunctionUnverified:register$2("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:register$2("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:register$2("debug-breakpoint-function-disabled",60296),debugStackframeActive:register$2("debug-stackframe-active",60297),circleSmallFilled:register$2("circle-small-filled",60298),debugStackframeDot:register$2("debug-stackframe-dot",60298),terminalDecorationMark:register$2("terminal-decoration-mark",60298),debugStackframe:register$2("debug-stackframe",60299),debugStackframeFocused:register$2("debug-stackframe-focused",60299),debugBreakpointUnsupported:register$2("debug-breakpoint-unsupported",60300),symbolString:register$2("symbol-string",60301),debugReverseContinue:register$2("debug-reverse-continue",60302),debugStepBack:register$2("debug-step-back",60303),debugRestartFrame:register$2("debug-restart-frame",60304),debugAlt:register$2("debug-alt",60305),callIncoming:register$2("call-incoming",60306),callOutgoing:register$2("call-outgoing",60307),menu:register$2("menu",60308),expandAll:register$2("expand-all",60309),feedback:register$2("feedback",60310),gitPullRequestReviewer:register$2("git-pull-request-reviewer",60310),groupByRefType:register$2("group-by-ref-type",60311),ungroupByRefType:register$2("ungroup-by-ref-type",60312),account:register$2("account",60313),gitPullRequestAssignee:register$2("git-pull-request-assignee",60313),bellDot:register$2("bell-dot",60314),debugConsole:register$2("debug-console",60315),library:register$2("library",60316),output:register$2("output",60317),runAll:register$2("run-all",60318),syncIgnored:register$2("sync-ignored",60319),pinned:register$2("pinned",60320),githubInverted:register$2("github-inverted",60321),serverProcess:register$2("server-process",60322),serverEnvironment:register$2("server-environment",60323),pass:register$2("pass",60324),issueClosed:register$2("issue-closed",60324),stopCircle:register$2("stop-circle",60325),playCircle:register$2("play-circle",60326),record:register$2("record",60327),debugAltSmall:register$2("debug-alt-small",60328),vmConnect:register$2("vm-connect",60329),cloud:register$2("cloud",60330),merge:register$2("merge",60331),export:register$2("export",60332),graphLeft:register$2("graph-left",60333),magnet:register$2("magnet",60334),notebook:register$2("notebook",60335),redo:register$2("redo",60336),checkAll:register$2("check-all",60337),pinnedDirty:register$2("pinned-dirty",60338),passFilled:register$2("pass-filled",60339),circleLargeFilled:register$2("circle-large-filled",60340),circleLarge:register$2("circle-large",60341),circleLargeOutline:register$2("circle-large-outline",60341),combine:register$2("combine",60342),gather:register$2("gather",60342),table:register$2("table",60343),variableGroup:register$2("variable-group",60344),typeHierarchy:register$2("type-hierarchy",60345),typeHierarchySub:register$2("type-hierarchy-sub",60346),typeHierarchySuper:register$2("type-hierarchy-super",60347),gitPullRequestCreate:register$2("git-pull-request-create",60348),runAbove:register$2("run-above",60349),runBelow:register$2("run-below",60350),notebookTemplate:register$2("notebook-template",60351),debugRerun:register$2("debug-rerun",60352),workspaceTrusted:register$2("workspace-trusted",60353),workspaceUntrusted:register$2("workspace-untrusted",60354),workspaceUnknown:register$2("workspace-unknown",60355),terminalCmd:register$2("terminal-cmd",60356),terminalDebian:register$2("terminal-debian",60357),terminalLinux:register$2("terminal-linux",60358),terminalPowershell:register$2("terminal-powershell",60359),terminalTmux:register$2("terminal-tmux",60360),terminalUbuntu:register$2("terminal-ubuntu",60361),terminalBash:register$2("terminal-bash",60362),arrowSwap:register$2("arrow-swap",60363),copy:register$2("copy",60364),personAdd:register$2("person-add",60365),filterFilled:register$2("filter-filled",60366),wand:register$2("wand",60367),debugLineByLine:register$2("debug-line-by-line",60368),inspect:register$2("inspect",60369),layers:register$2("layers",60370),layersDot:register$2("layers-dot",60371),layersActive:register$2("layers-active",60372),compass:register$2("compass",60373),compassDot:register$2("compass-dot",60374),compassActive:register$2("compass-active",60375),azure:register$2("azure",60376),issueDraft:register$2("issue-draft",60377),gitPullRequestClosed:register$2("git-pull-request-closed",60378),gitPullRequestDraft:register$2("git-pull-request-draft",60379),debugAll:register$2("debug-all",60380),debugCoverage:register$2("debug-coverage",60381),runErrors:register$2("run-errors",60382),folderLibrary:register$2("folder-library",60383),debugContinueSmall:register$2("debug-continue-small",60384),beakerStop:register$2("beaker-stop",60385),graphLine:register$2("graph-line",60386),graphScatter:register$2("graph-scatter",60387),pieChart:register$2("pie-chart",60388),bracket:register$2("bracket",60175),bracketDot:register$2("bracket-dot",60389),bracketError:register$2("bracket-error",60390),lockSmall:register$2("lock-small",60391),azureDevops:register$2("azure-devops",60392),verifiedFilled:register$2("verified-filled",60393),newline:register$2("newline",60394),layout:register$2("layout",60395),layoutActivitybarLeft:register$2("layout-activitybar-left",60396),layoutActivitybarRight:register$2("layout-activitybar-right",60397),layoutPanelLeft:register$2("layout-panel-left",60398),layoutPanelCenter:register$2("layout-panel-center",60399),layoutPanelJustify:register$2("layout-panel-justify",60400),layoutPanelRight:register$2("layout-panel-right",60401),layoutPanel:register$2("layout-panel",60402),layoutSidebarLeft:register$2("layout-sidebar-left",60403),layoutSidebarRight:register$2("layout-sidebar-right",60404),layoutStatusbar:register$2("layout-statusbar",60405),layoutMenubar:register$2("layout-menubar",60406),layoutCentered:register$2("layout-centered",60407),target:register$2("target",60408),indent:register$2("indent",60409),recordSmall:register$2("record-small",60410),errorSmall:register$2("error-small",60411),terminalDecorationError:register$2("terminal-decoration-error",60411),arrowCircleDown:register$2("arrow-circle-down",60412),arrowCircleLeft:register$2("arrow-circle-left",60413),arrowCircleRight:register$2("arrow-circle-right",60414),arrowCircleUp:register$2("arrow-circle-up",60415),layoutSidebarRightOff:register$2("layout-sidebar-right-off",60416),layoutPanelOff:register$2("layout-panel-off",60417),layoutSidebarLeftOff:register$2("layout-sidebar-left-off",60418),blank:register$2("blank",60419),heartFilled:register$2("heart-filled",60420),map:register$2("map",60421),mapHorizontal:register$2("map-horizontal",60421),foldHorizontal:register$2("fold-horizontal",60421),mapFilled:register$2("map-filled",60422),mapHorizontalFilled:register$2("map-horizontal-filled",60422),foldHorizontalFilled:register$2("fold-horizontal-filled",60422),circleSmall:register$2("circle-small",60423),bellSlash:register$2("bell-slash",60424),bellSlashDot:register$2("bell-slash-dot",60425),commentUnresolved:register$2("comment-unresolved",60426),gitPullRequestGoToChanges:register$2("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:register$2("git-pull-request-new-changes",60428),searchFuzzy:register$2("search-fuzzy",60429),commentDraft:register$2("comment-draft",60430),send:register$2("send",60431),sparkle:register$2("sparkle",60432),insert:register$2("insert",60433),mic:register$2("mic",60434),thumbsdownFilled:register$2("thumbsdown-filled",60435),thumbsupFilled:register$2("thumbsup-filled",60436),coffee:register$2("coffee",60437),snake:register$2("snake",60438),game:register$2("game",60439),vr:register$2("vr",60440),chip:register$2("chip",60441),piano:register$2("piano",60442),music:register$2("music",60443),micFilled:register$2("mic-filled",60444),repoFetch:register$2("repo-fetch",60445),copilot:register$2("copilot",60446),lightbulbSparkle:register$2("lightbulb-sparkle",60447),robot:register$2("robot",60448),sparkleFilled:register$2("sparkle-filled",60449),diffSingle:register$2("diff-single",60450),diffMultiple:register$2("diff-multiple",60451),surroundWith:register$2("surround-with",60452),share:register$2("share",60453),gitStash:register$2("git-stash",60454),gitStashApply:register$2("git-stash-apply",60455),gitStashPop:register$2("git-stash-pop",60456),vscode:register$2("vscode",60457),vscodeInsiders:register$2("vscode-insiders",60458),codeOss:register$2("code-oss",60459),runCoverage:register$2("run-coverage",60460),runAllCoverage:register$2("run-all-coverage",60461),coverage:register$2("coverage",60462),githubProject:register$2("github-project",60463),mapVertical:register$2("map-vertical",60464),foldVertical:register$2("fold-vertical",60464),mapVerticalFilled:register$2("map-vertical-filled",60465),foldVerticalFilled:register$2("fold-vertical-filled",60465),goToSearch:register$2("go-to-search",60466),percentage:register$2("percentage",60467),sortPercentage:register$2("sort-percentage",60467),attach:register$2("attach",60468),goToEditingSession:register$2("go-to-editing-session",60469),editSession:register$2("edit-session",60470),codeReview:register$2("code-review",60471),copilotWarning:register$2("copilot-warning",60472),python:register$2("python",60473),copilotLarge:register$2("copilot-large",60474),copilotWarningLarge:register$2("copilot-warning-large",60475),keyboardTab:register$2("keyboard-tab",60476),copilotBlocked:register$2("copilot-blocked",60477),copilotNotConnected:register$2("copilot-not-connected",60478),flag:register$2("flag",60479),lightbulbEmpty:register$2("lightbulb-empty",60480),symbolMethodArrow:register$2("symbol-method-arrow",60481),copilotUnavailable:register$2("copilot-unavailable",60482),repoPinned:register$2("repo-pinned",60483),keyboardTabAbove:register$2("keyboard-tab-above",60484),keyboardTabBelow:register$2("keyboard-tab-below",60485),gitPullRequestDone:register$2("git-pull-request-done",60486),mcp:register$2("mcp",60487),extensionsLarge:register$2("extensions-large",60488),layoutPanelDock:register$2("layout-panel-dock",60489),layoutSidebarLeftDock:register$2("layout-sidebar-left-dock",60490),layoutSidebarRightDock:register$2("layout-sidebar-right-dock",60491),copilotInProgress:register$2("copilot-in-progress",60492),copilotError:register$2("copilot-error",60493),copilotSuccess:register$2("copilot-success",60494),chatSparkle:register$2("chat-sparkle",60495),searchSparkle:register$2("search-sparkle",60496),editSparkle:register$2("edit-sparkle",60497),copilotSnooze:register$2("copilot-snooze",60498),sendToRemoteAgent:register$2("send-to-remote-agent",60499),commentDiscussionSparkle:register$2("comment-discussion-sparkle",60500),chatSparkleWarning:register$2("chat-sparkle-warning",60501),chatSparkleError:register$2("chat-sparkle-error",60502),collection:register$2("collection",60503),newCollection:register$2("new-collection",60504),thinking:register$2("thinking",60505),build:register$2("build",60506),commentDiscussionQuote:register$2("comment-discussion-quote",60507),cursor:register$2("cursor",60508),eraser:register$2("eraser",60509),fileText:register$2("file-text",60510),gitLens:register$2("git-lens",60511),quotes:register$2("quotes",60512),rename:register$2("rename",60513),runWithDeps:register$2("run-with-deps",60514),debugConnected:register$2("debug-connected",60515),strikethrough:register$2("strikethrough",60516),openInProduct:register$2("open-in-product",60517),indexZero:register$2("index-zero",60518),agent:register$2("agent",60519),editCode:register$2("edit-code",60520),repoSelected:register$2("repo-selected",60521),skip:register$2("skip",60522),mergeInto:register$2("merge-into",60523),gitBranchChanges:register$2("git-branch-changes",60524),gitBranchStagedChanges:register$2("git-branch-staged-changes",60525),gitBranchConflicts:register$2("git-branch-conflicts",60526),gitBranch:register$2("git-branch",60527),gitBranchCreate:register$2("git-branch-create",60527),gitBranchDelete:register$2("git-branch-delete",60527),searchLarge:register$2("search-large",60528),terminalGitBash:register$2("terminal-git-bash",60529)},codiconsDerived={dialogError:register$2("dialog-error","error"),dialogWarning:register$2("dialog-warning","warning"),dialogInfo:register$2("dialog-info","info"),dialogClose:register$2("dialog-close","close"),treeItemExpanded:register$2("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:register$2("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:register$2("tree-filter-on-type-off","list-selection"),treeFilterClear:register$2("tree-filter-clear","close"),treeItemLoading:register$2("tree-item-loading","loading"),menuSelection:register$2("menu-selection","check"),menuSubmenu:register$2("menu-submenu","chevron-right"),menuBarMore:register$2("menubar-more","more"),scrollbarButtonLeft:register$2("scrollbar-button-left","triangle-left"),scrollbarButtonRight:register$2("scrollbar-button-right","triangle-right"),scrollbarButtonUp:register$2("scrollbar-button-up","triangle-up"),scrollbarButtonDown:register$2("scrollbar-button-down","triangle-down"),toolBarMore:register$2("toolbar-more","more"),quickInputBack:register$2("quick-input-back","arrow-left"),dropDownButton:register$2("drop-down-button",60084),symbolCustomColor:register$2("symbol-customcolor",60252),exportIcon:register$2("export",60332),workspaceUnspecified:register$2("workspace-unspecified",60355),newLine:register$2("newline",60394),thumbsDownFilled:register$2("thumbsdown-filled",60435),thumbsUpFilled:register$2("thumbsup-filled",60436),gitFetch:register$2("git-fetch",60445),lightbulbSparkleAutofix:register$2("lightbulb-sparkle-autofix",60447),debugBreakpointPending:register$2("debug-breakpoint-pending",60377)},Codicon={...codiconsLibrary,...codiconsDerived};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("^(".concat(o.iconNameExpression,")(").concat(o.iconModifierExpression,")?$"));function t(v){const b=e.exec(v.id);if(!b)return t(Codicon.error);const[,C,y]=b,S=["codicon","codicon-"+C];return y&&S.push("codicon-modifier-"+y.substring(1)),S}o.asClassNameArray=t;function r(v){return t(v).join(" ")}o.asClassName=r;function s(v){return"."+t(v).join(".")}o.asCSSSelector=s;function a(v){return!!v&&typeof v=="object"&&typeof v.id=="string"&&(typeof v.color>"u"||ThemeColor.isThemeColor(v.color))}o.isThemeIcon=a;const l=new RegExp("^\\$\\((".concat(o.iconNameExpression,"(?:").concat(o.iconModifierExpression,")?)\\)$"));function c(v){const b=l.exec(v);if(!b)return;const[,C]=b;return{id:C}}o.fromString=c;function d(v){return{id:v}}o.fromId=d;function u(v,b){let C=v.id;const y=C.lastIndexOf("~");return y!==-1&&(C=C.substring(0,y)),b&&(C="".concat(C,"~").concat(b)),{id:C}}o.modify=u;function g(v){const b=v.id.lastIndexOf("~");if(b!==-1)return v.id.substring(b+1)}o.getModifier=g;function f(v,b){var C,y;return v.id===b.id&&((C=v.color)==null?void 0:C.id)===((y=b.color)==null?void 0:y.id)}o.isEqual=f;function m(v){return(v==null?void 0:v.id)===Codicon.file.id}o.isFile=m;function _(v){return(v==null?void 0:v.id)===Codicon.folder.id}o.isFolder=_})(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.metadata&&Array.isArray(o.metadata.args)){const l=[];for(const d of o.metadata.args)l.push(d.constraint);const c=o.handler;o.handler=function(d,...u){return validateConstraints(u,l),c(d,...u)}}const{id:t}=o;let r=this._commands.get(t);r||(r=new LinkedList,this._commands.set(t,r));const s=r.unshift(o),a=toDisposable(()=>{s();const l=this._commands.get(t);l!=null&&l.isEmpty()&&this._commands.delete(t)});return this._onDidRegisterCommand.fire(t),a}registerCommandAlias(o,e){return CommandsRegistry.registerCommand(o,(t,...r)=>t.get(ICommandService).executeCommand(e,...r))}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(1693,"Did you mean {0}?",o[0]);case 2:return localize(1694,"Did you mean {0} or {1}?",o[0],o[1]);case 3:return localize(1695,"Did you mean {0}, {1} or {2}?",o[0],o[1],o[2]);default:return}}const hintDidYouForgetToOpenOrCloseQuote=localize(1696,"Did you forget to open or close the quote?"),hintDidYouForgetToEscapeSlash=localize(1697,"Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");var ei;let Scanner$1=(ei=class{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: ".concat(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,r=this._input.substring(this._start,this._current),s={type:19,offset:this._start,lexeme:r};this._errors.push({offset:t,lexeme:r,additionalInfo:e}),this._tokens.push(s)}_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),r=ei._keywords.get(t);r?this._addToken(r):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,r=!1;for(;;){if(e>=this._input.length){this._current=e,this._error(hintDidYouForgetToEscapeSlash);return}const a=this._input.charCodeAt(e);if(t)t=!1;else if(a===47&&!r){e++;break}else a===91?r=!0:a===92?t=!0:a===93&&(r=!1);e++}for(;e<this._input.length&&ei._regexFlags.has(this._input.charCodeAt(e));)e++;this._current=e;const s=this._input.substring(this._start,this._current);this._tokens.push({type:10,lexeme:s,offset:this._start})}_isAtEnd(){return this._current>=this._input.length}},ei._regexFlags=new Set(["i","g","s","m","y","u"].map(e=>e.charCodeAt(0))),ei._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]),ei);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);CONSTANT_VALUES.set("isChrome",isChrome);CONSTANT_VALUES.set("isSafari",isSafari);const hasOwnProperty$2=Object.prototype.hasOwnProperty,defaultConfig={regexParsingWithErrorRecovery:!0},errorEmptyString=localize(1675,"Empty context key expression"),hintEmptyString=localize(1676,"Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),errorNoInAfterNot=localize(1677,"'in' after 'not'."),errorClosingParenthesis=localize(1678,"closing parenthesis ')'"),errorUnexpectedToken=localize(1679,"Unexpected token"),hintUnexpectedToken=localize(1680,"Did you forget to put && or || before the token?"),errorUnexpectedEOF=localize(1681,"Unexpected end of expression"),hintUnexpectedEOF=localize(1682,"Did you forget to put a context key?");var zt;let Parser$1=(zt=class{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 r=this._peek(),s=r.type===17?hintUnexpectedToken:void 0;throw this._parsingErrors.push({message:errorUnexpectedToken,offset:r.offset,lexeme:Scanner$1.getLexeme(r),additionalInfo:s}),zt._parseError}return t}catch(t){if(t!==zt._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 s=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),s.type!==10)throw this._errExpectedButGot("REGEX",s);const a=s.lexeme,l=a.lastIndexOf("/"),c=l===a.length-1?void 0:this._removeFlagsGY(a.substring(l+1));let d;try{d=new RegExp(a.substring(1,l),c)}catch(u){throw this._errExpectedButGot("REGEX",s)}return ContextKeyRegexExpr.create(t,d)}switch(s.type){case 10:case 19:{const a=[s.lexeme];this._advance();let l=this._peek(),c=0;for(let m=0;m<s.lexeme.length;m++)s.lexeme.charCodeAt(m)===40?c++:s.lexeme.charCodeAt(m)===41&&c--;for(;!this._isAtEnd()&&l.type!==15&&l.type!==16;){switch(l.type){case 0:c++;break;case 1:c--;break;case 10:case 18:for(let m=0;m<l.lexeme.length;m++)l.lexeme.charCodeAt(m)===40?c++:s.lexeme.charCodeAt(m)===41&&c--}if(c<0)break;a.push(Scanner$1.getLexeme(l)),this._advance(),l=this._peek()}const d=a.join(""),u=d.lastIndexOf("/"),g=u===d.length-1?void 0:this._removeFlagsGY(d.substring(u+1));let f;try{f=new RegExp(d.substring(1,u),g)}catch(m){throw this._errExpectedButGot("REGEX",s)}return ContextKeyExpr.regex(t,f)}case 18:{const a=s.lexeme;this._advance();let l=null;if(!isFalsyOrWhitespace(a)){const c=a.indexOf("/"),d=a.lastIndexOf("/");if(c!==d&&c>=0){const u=a.slice(c+1,d),g=a[d+1]==="i"?"i":"";try{l=new RegExp(u,g)}catch(f){throw this._errExpectedButGot("REGEX",s)}}}if(l===null)throw this._errExpectedButGot("REGEX",s);return ContextKeyRegexExpr.create(t,l)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,errorNoInAfterNot);const s=this._value();return ContextKeyExpr.notIn(t,s)}switch(this._peek().type){case 3:{this._advance();const s=this._value();if(this._previous().type===18)return ContextKeyExpr.equals(t,s);switch(s){case"true":return ContextKeyExpr.has(t);case"false":return ContextKeyExpr.not(t);default:return ContextKeyExpr.equals(t,s)}}case 4:{this._advance();const s=this._value();if(this._previous().type===18)return ContextKeyExpr.notEquals(t,s);switch(s){case"true":return ContextKeyExpr.not(t);case"false":return ContextKeyExpr.has(t);default:return ContextKeyExpr.notEquals(t,s)}}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}),zt._parseError;default:throw this._errExpectedButGot("true | false | KEY \n | KEY '=~' REGEX \n | 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,r){const s=localize(1683,"Expected: {0}\nReceived: '{1}'.",e,Scanner$1.getLexeme(t)),a=t.offset,l=Scanner$1.getLexeme(t);return this._parsingErrors.push({message:s,offset:a,lexeme:l,additionalInfo:r}),zt._parseError}_check(e){return this._peek().type===e}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}},zt._parseError=new Error,zt);const Js=class Js{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)}};Js._parser=new Parser$1({regexParsingWithErrorRecovery:!1});let ContextKeyExpr=Js;function expressionsAreEqualWithConstantSubstitution(o,e){const t=o?o.substituteConstants():void 0,r=e?e.substituteConstants():void 0;return!t&&!r?!0:!t||!r?!1:t.equals(r)}function cmp(o,e){return o.cmp(e)}const lo=class lo{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}};lo.INSTANCE=new lo;let ContextKeyFalseExpr=lo;const co=class co{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}};co.INSTANCE=new co;let ContextKeyTrueExpr=co;class ContextKeyDefinedExpr{static create(e,t=null){const r=CONSTANT_VALUES.get(e);return typeof r=="boolean"?r?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,r=null){if(typeof t=="boolean")return t?ContextKeyDefinedExpr.create(e,r):ContextKeyNotExpr.create(e,r);const s=CONSTANT_VALUES.get(e);return typeof s=="boolean"?t===(s?"true":"false")?ContextKeyTrueExpr.INSTANCE:ContextKeyFalseExpr.INSTANCE:new ContextKeyEqualsExpr(e,t,r)}constructor(e,t,r){this.key=e,this.value=t,this.negated=r,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"".concat(this.key," == '").concat(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),r=e.getValue(this.key);return Array.isArray(t)?t.includes(r):typeof r=="string"&&typeof t=="object"&&t!==null?hasOwnProperty$2.call(t,r):!1}serialize(){return"".concat(this.key," in '").concat(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"".concat(this.key," not in '").concat(this.valueKey,"'")}keys(){return this._negated.keys()}negate(){return this._negated}}class ContextKeyNotEqualsExpr{static create(e,t,r=null){if(typeof t=="boolean")return t?ContextKeyNotExpr.create(e,r):ContextKeyDefinedExpr.create(e,r);const s=CONSTANT_VALUES.get(e);return typeof s=="boolean"?t===(s?"true":"false")?ContextKeyFalseExpr.INSTANCE:ContextKeyTrueExpr.INSTANCE:new ContextKeyNotEqualsExpr(e,t,r)}constructor(e,t,r){this.key=e,this.value=t,this.negated=r,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"".concat(this.key," != '").concat(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 r=CONSTANT_VALUES.get(e);return typeof r=="boolean"?r?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"!".concat(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,r=null){return withFloatOrStr(t,s=>new ContextKeyGreaterExpr(e,s,r))}constructor(e,t,r){this.key=e,this.value=t,this.negated=r,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"".concat(this.key," > ").concat(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,r=null){return withFloatOrStr(t,s=>new ContextKeyGreaterEqualsExpr(e,s,r))}constructor(e,t,r){this.key=e,this.value=t,this.negated=r,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"".concat(this.key," >= ").concat(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,r=null){return withFloatOrStr(t,s=>new ContextKeySmallerExpr(e,s,r))}constructor(e,t,r){this.key=e,this.value=t,this.negated=r,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"".concat(this.key," < ").concat(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,r=null){return withFloatOrStr(t,s=>new ContextKeySmallerEqualsExpr(e,s,r))}constructor(e,t,r){this.key=e,this.value=t,this.negated=r,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"".concat(this.key," <= ").concat(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:"",r=e.regexp?e.regexp.source:"";return t<r?-1:t>r?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",r=e.regexp?e.regexp.source:"";return this.key===e.key&&t===r}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?"/".concat(this.regexp.source,"/").concat(this.regexp.flags):"/invalid/";return"".concat(this.key," =~ ").concat(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"!(".concat(this._actual.serialize(),")")}keys(){return this._actual.keys()}negate(){return this._actual}}function eliminateConstantsInArray(o){let e=null;for(let t=0,r=o.length;t<r;t++){const s=o[t].substituteConstants();if(o[t]!==s&&e===null){e=[];for(let a=0;a<t;a++)e[a]=o[a]}e!==null&&(e[t]=s)}return e===null?o:e}class ContextKeyAndExpr{static create(e,t,r){return ContextKeyAndExpr._normalizeArr(e,t,r)}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,r=this.expr.length;t<r;t++){const s=cmp(this.expr[t],e.expr[t]);if(s!==0)return s}return 0}equals(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(let t=0,r=this.expr.length;t<r;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,r=this.expr.length;t<r;t++)if(!this.expr[t].evaluate(e))return!1;return!0}static _normalizeArr(e,t,r){const s=[];let a=!1;for(const l of e)if(l){if(l.type===1){a=!0;continue}if(l.type===0)return ContextKeyFalseExpr.INSTANCE;if(l.type===6){s.push(...l.expr);continue}s.push(l)}if(s.length===0&&a)return ContextKeyTrueExpr.INSTANCE;if(s.length!==0){if(s.length===1)return s[0];s.sort(cmp);for(let l=1;l<s.length;l++)s[l-1].equals(s[l])&&(s.splice(l,1),l--);if(s.length===1)return s[0];for(;s.length>1;){const l=s[s.length-1];if(l.type!==9)break;s.pop();const c=s.pop(),d=s.length===0,u=ContextKeyOrExpr.create(l.expr.map(g=>ContextKeyAndExpr.create([g,c],null,r)),null,d);u&&(s.push(u),s.sort(cmp))}if(s.length===1)return s[0];if(r){for(let l=0;l<s.length;l++)for(let c=l+1;c<s.length;c++)if(s[l].negate().equals(s[c]))return ContextKeyFalseExpr.INSTANCE;if(s.length===1)return s[0]}return new ContextKeyAndExpr(s,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,r){return ContextKeyOrExpr._normalizeArr(e,t,r)}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,r=this.expr.length;t<r;t++){const s=cmp(this.expr[t],e.expr[t]);if(s!==0)return s}return 0}equals(e){if(e.type===this.type){if(this.expr.length!==e.expr.length)return!1;for(let t=0,r=this.expr.length;t<r;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,r=this.expr.length;t<r;t++)if(this.expr[t].evaluate(e))return!0;return!1}static _normalizeArr(e,t,r){let s=[],a=!1;if(e){for(let l=0,c=e.length;l<c;l++){const d=e[l];if(d){if(d.type===0){a=!0;continue}if(d.type===1)return ContextKeyTrueExpr.INSTANCE;if(d.type===9){s=s.concat(d.expr);continue}s.push(d)}}if(s.length===0&&a)return ContextKeyFalseExpr.INSTANCE;s.sort(cmp)}if(s.length!==0){if(s.length===1)return s[0];for(let l=1;l<s.length;l++)s[l-1].equals(s[l])&&(s.splice(l,1),l--);if(s.length===1)return s[0];if(r){for(let l=0;l<s.length;l++)for(let c=l+1;c<s.length;c++)if(s[l].negate().equals(s[c]))return ContextKeyTrueExpr.INSTANCE;if(s.length===1)return s[0]}return new ContextKeyOrExpr(s,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(),r=e.shift(),s=[];for(const a of getTerminals(t))for(const l of getTerminals(r))s.push(ContextKeyAndExpr.create([a,l],null,!1));e.unshift(ContextKeyOrExpr.create(s,null,!1))}this.negated=ContextKeyOrExpr.create(e,this,!0)}return this.negated}}const Jn=class Jn extends ContextKeyDefinedExpr{static all(){return Jn._info.values()}constructor(e,t,r){super(e,null),this._defaultValue=t,typeof r=="object"?Jn._info.push({...r,key:e}):r!==!0&&Jn._info.push({key:e,description:r,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)}};Jn._info=[];let RawContextKey=Jn;const IContextKeyService=createDecorator("contextKeyService");function cmp1(o,e){return o<e?-1:o>e?1:0}function cmp2(o,e,t,r){return o<t?-1:o>t?1:e<r?-1:e>r?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,r=0;for(;t<o.length&&r<e.length;){const s=o[t].cmp(e[r]);if(s<0)return!1;s===0&&t++,r++}return t===o.length}function getTerminals(o){return o.type===9?o.expr:[o]}class RegistryImpl{constructor(){this.data=new Map}add(e,t){ok(isString$2(e)),ok(isObject$3(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}dispose(){this.data.forEach(e=>{isFunction$2(e.dispose)&&e.dispose()}),this.data.clear()}}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),r=new DisposableStore$1;if(t&&t.primary){const s=decodeKeybinding(t.primary,OS);s&&r.add(this._registerDefaultKeybinding(s,e.id,e.args,e.weight,0,e.when))}if(t&&Array.isArray(t.secondary))for(let s=0,a=t.secondary.length;s<a;s++){const l=t.secondary[s],c=decodeKeybinding(l,OS);c&&r.add(this._registerDefaultKeybinding(c,e.id,e.args,e.weight,-s-1,e.when))}return r}registerCommandAndKeybindingRule(e){return combinedDisposable(this.registerKeybindingRule(e),CommandsRegistry.registerCommand(e))}_registerDefaultKeybinding(e,t,r,s,a,l){const c=this._coreKeybindings.push({keybinding:e,command:t,commandArgs:r,when:l,weight1:s,weight2:a,extensionId:null,isBuiltinExtension:!1});return this._cachedMergedKeybindings=null,toDisposable(()=>{c(),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$3b=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$30=function(o,e){return function(t,r){e(t,r,o)}},MenuItemAction_1;function isIMenuItem(o){return o.command!==void 0}function isISubmenuItem(o){return o.submenu!==void 0}const z=class z{constructor(e){if(z._instances.has(e))throw new TypeError("MenuId with identifier '".concat(e,"' already exists. Use MenuId.for(ident) or a unique identifier"));z._instances.set(e,this),this.id=e}};z._instances=new Map,z.CommandPalette=new z("CommandPalette"),z.DebugBreakpointsContext=new z("DebugBreakpointsContext"),z.DebugCallStackContext=new z("DebugCallStackContext"),z.DebugConsoleContext=new z("DebugConsoleContext"),z.DebugVariablesContext=new z("DebugVariablesContext"),z.NotebookVariablesContext=new z("NotebookVariablesContext"),z.DebugHoverContext=new z("DebugHoverContext"),z.DebugWatchContext=new z("DebugWatchContext"),z.DebugToolBar=new z("DebugToolBar"),z.DebugToolBarStop=new z("DebugToolBarStop"),z.DebugDisassemblyContext=new z("DebugDisassemblyContext"),z.DebugCallStackToolbar=new z("DebugCallStackToolbar"),z.DebugCreateConfiguration=new z("DebugCreateConfiguration"),z.EditorContext=new z("EditorContext"),z.SimpleEditorContext=new z("SimpleEditorContext"),z.EditorContent=new z("EditorContent"),z.EditorLineNumberContext=new z("EditorLineNumberContext"),z.EditorContextCopy=new z("EditorContextCopy"),z.EditorContextPeek=new z("EditorContextPeek"),z.EditorContextShare=new z("EditorContextShare"),z.EditorTitle=new z("EditorTitle"),z.CompactWindowEditorTitle=new z("CompactWindowEditorTitle"),z.EditorTitleRun=new z("EditorTitleRun"),z.EditorTitleContext=new z("EditorTitleContext"),z.EditorTitleContextShare=new z("EditorTitleContextShare"),z.EmptyEditorGroup=new z("EmptyEditorGroup"),z.EmptyEditorGroupContext=new z("EmptyEditorGroupContext"),z.EditorTabsBarContext=new z("EditorTabsBarContext"),z.EditorTabsBarShowTabsSubmenu=new z("EditorTabsBarShowTabsSubmenu"),z.EditorTabsBarShowTabsZenModeSubmenu=new z("EditorTabsBarShowTabsZenModeSubmenu"),z.EditorActionsPositionSubmenu=new z("EditorActionsPositionSubmenu"),z.EditorSplitMoveSubmenu=new z("EditorSplitMoveSubmenu"),z.ExplorerContext=new z("ExplorerContext"),z.ExplorerContextShare=new z("ExplorerContextShare"),z.ExtensionContext=new z("ExtensionContext"),z.ExtensionEditorContextMenu=new z("ExtensionEditorContextMenu"),z.GlobalActivity=new z("GlobalActivity"),z.CommandCenter=new z("CommandCenter"),z.CommandCenterCenter=new z("CommandCenterCenter"),z.LayoutControlMenuSubmenu=new z("LayoutControlMenuSubmenu"),z.LayoutControlMenu=new z("LayoutControlMenu"),z.MenubarMainMenu=new z("MenubarMainMenu"),z.MenubarAppearanceMenu=new z("MenubarAppearanceMenu"),z.MenubarDebugMenu=new z("MenubarDebugMenu"),z.MenubarEditMenu=new z("MenubarEditMenu"),z.MenubarCopy=new z("MenubarCopy"),z.MenubarFileMenu=new z("MenubarFileMenu"),z.MenubarGoMenu=new z("MenubarGoMenu"),z.MenubarHelpMenu=new z("MenubarHelpMenu"),z.MenubarLayoutMenu=new z("MenubarLayoutMenu"),z.MenubarNewBreakpointMenu=new z("MenubarNewBreakpointMenu"),z.PanelAlignmentMenu=new z("PanelAlignmentMenu"),z.PanelPositionMenu=new z("PanelPositionMenu"),z.ActivityBarPositionMenu=new z("ActivityBarPositionMenu"),z.MenubarPreferencesMenu=new z("MenubarPreferencesMenu"),z.MenubarRecentMenu=new z("MenubarRecentMenu"),z.MenubarSelectionMenu=new z("MenubarSelectionMenu"),z.MenubarShare=new z("MenubarShare"),z.MenubarSwitchEditorMenu=new z("MenubarSwitchEditorMenu"),z.MenubarSwitchGroupMenu=new z("MenubarSwitchGroupMenu"),z.MenubarTerminalMenu=new z("MenubarTerminalMenu"),z.MenubarTerminalSuggestStatusMenu=new z("MenubarTerminalSuggestStatusMenu"),z.MenubarViewMenu=new z("MenubarViewMenu"),z.MenubarHomeMenu=new z("MenubarHomeMenu"),z.OpenEditorsContext=new z("OpenEditorsContext"),z.OpenEditorsContextShare=new z("OpenEditorsContextShare"),z.ProblemsPanelContext=new z("ProblemsPanelContext"),z.SCMInputBox=new z("SCMInputBox"),z.SCMChangeContext=new z("SCMChangeContext"),z.SCMResourceContext=new z("SCMResourceContext"),z.SCMResourceContextShare=new z("SCMResourceContextShare"),z.SCMResourceFolderContext=new z("SCMResourceFolderContext"),z.SCMResourceGroupContext=new z("SCMResourceGroupContext"),z.SCMSourceControl=new z("SCMSourceControl"),z.SCMSourceControlInline=new z("SCMSourceControlInline"),z.SCMSourceControlTitle=new z("SCMSourceControlTitle"),z.SCMHistoryTitle=new z("SCMHistoryTitle"),z.SCMHistoryItemContext=new z("SCMHistoryItemContext"),z.SCMHistoryItemChangeContext=new z("SCMHistoryItemChangeContext"),z.SCMHistoryItemRefContext=new z("SCMHistoryItemRefContext"),z.SCMArtifactGroupContext=new z("SCMArtifactGroupContext"),z.SCMArtifactContext=new z("SCMArtifactContext"),z.SCMQuickDiffDecorations=new z("SCMQuickDiffDecorations"),z.SCMTitle=new z("SCMTitle"),z.SearchContext=new z("SearchContext"),z.SearchActionMenu=new z("SearchActionContext"),z.StatusBarWindowIndicatorMenu=new z("StatusBarWindowIndicatorMenu"),z.StatusBarRemoteIndicatorMenu=new z("StatusBarRemoteIndicatorMenu"),z.StickyScrollContext=new z("StickyScrollContext"),z.TestItem=new z("TestItem"),z.TestItemGutter=new z("TestItemGutter"),z.TestProfilesContext=new z("TestProfilesContext"),z.TestMessageContext=new z("TestMessageContext"),z.TestMessageContent=new z("TestMessageContent"),z.TestPeekElement=new z("TestPeekElement"),z.TestPeekTitle=new z("TestPeekTitle"),z.TestCallStack=new z("TestCallStack"),z.TestCoverageFilterItem=new z("TestCoverageFilterItem"),z.TouchBarContext=new z("TouchBarContext"),z.TitleBar=new z("TitleBar"),z.TitleBarContext=new z("TitleBarContext"),z.TitleBarTitleContext=new z("TitleBarTitleContext"),z.TunnelContext=new z("TunnelContext"),z.TunnelPrivacy=new z("TunnelPrivacy"),z.TunnelProtocol=new z("TunnelProtocol"),z.TunnelPortInline=new z("TunnelInline"),z.TunnelTitle=new z("TunnelTitle"),z.TunnelLocalAddressInline=new z("TunnelLocalAddressInline"),z.TunnelOriginInline=new z("TunnelOriginInline"),z.ViewItemContext=new z("ViewItemContext"),z.ViewContainerTitle=new z("ViewContainerTitle"),z.ViewContainerTitleContext=new z("ViewContainerTitleContext"),z.ViewTitle=new z("ViewTitle"),z.ViewTitleContext=new z("ViewTitleContext"),z.CommentEditorActions=new z("CommentEditorActions"),z.CommentThreadTitle=new z("CommentThreadTitle"),z.CommentThreadActions=new z("CommentThreadActions"),z.CommentThreadAdditionalActions=new z("CommentThreadAdditionalActions"),z.CommentThreadTitleContext=new z("CommentThreadTitleContext"),z.CommentThreadCommentContext=new z("CommentThreadCommentContext"),z.CommentTitle=new z("CommentTitle"),z.CommentActions=new z("CommentActions"),z.CommentsViewThreadActions=new z("CommentsViewThreadActions"),z.InteractiveToolbar=new z("InteractiveToolbar"),z.InteractiveCellTitle=new z("InteractiveCellTitle"),z.InteractiveCellDelete=new z("InteractiveCellDelete"),z.InteractiveCellExecute=new z("InteractiveCellExecute"),z.InteractiveInputExecute=new z("InteractiveInputExecute"),z.InteractiveInputConfig=new z("InteractiveInputConfig"),z.ReplInputExecute=new z("ReplInputExecute"),z.IssueReporter=new z("IssueReporter"),z.NotebookToolbar=new z("NotebookToolbar"),z.NotebookToolbarContext=new z("NotebookToolbarContext"),z.NotebookStickyScrollContext=new z("NotebookStickyScrollContext"),z.NotebookCellTitle=new z("NotebookCellTitle"),z.NotebookCellDelete=new z("NotebookCellDelete"),z.NotebookCellInsert=new z("NotebookCellInsert"),z.NotebookCellBetween=new z("NotebookCellBetween"),z.NotebookCellListTop=new z("NotebookCellTop"),z.NotebookCellExecute=new z("NotebookCellExecute"),z.NotebookCellExecuteGoTo=new z("NotebookCellExecuteGoTo"),z.NotebookCellExecutePrimary=new z("NotebookCellExecutePrimary"),z.NotebookDiffCellInputTitle=new z("NotebookDiffCellInputTitle"),z.NotebookDiffDocumentMetadata=new z("NotebookDiffDocumentMetadata"),z.NotebookDiffCellMetadataTitle=new z("NotebookDiffCellMetadataTitle"),z.NotebookDiffCellOutputsTitle=new z("NotebookDiffCellOutputsTitle"),z.NotebookOutputToolbar=new z("NotebookOutputToolbar"),z.NotebookOutlineFilter=new z("NotebookOutlineFilter"),z.NotebookOutlineActionMenu=new z("NotebookOutlineActionMenu"),z.NotebookEditorLayoutConfigure=new z("NotebookEditorLayoutConfigure"),z.NotebookKernelSource=new z("NotebookKernelSource"),z.BulkEditTitle=new z("BulkEditTitle"),z.BulkEditContext=new z("BulkEditContext"),z.TimelineItemContext=new z("TimelineItemContext"),z.TimelineTitle=new z("TimelineTitle"),z.TimelineTitleContext=new z("TimelineTitleContext"),z.TimelineFilterSubMenu=new z("TimelineFilterSubMenu"),z.AccountsContext=new z("AccountsContext"),z.SidebarTitle=new z("SidebarTitle"),z.PanelTitle=new z("PanelTitle"),z.AuxiliaryBarTitle=new z("AuxiliaryBarTitle"),z.TerminalInstanceContext=new z("TerminalInstanceContext"),z.TerminalEditorInstanceContext=new z("TerminalEditorInstanceContext"),z.TerminalNewDropdownContext=new z("TerminalNewDropdownContext"),z.TerminalTabContext=new z("TerminalTabContext"),z.TerminalTabEmptyAreaContext=new z("TerminalTabEmptyAreaContext"),z.TerminalStickyScrollContext=new z("TerminalStickyScrollContext"),z.WebviewContext=new z("WebviewContext"),z.InlineCompletionsActions=new z("InlineCompletionsActions"),z.InlineEditsActions=new z("InlineEditsActions"),z.NewFile=new z("NewFile"),z.MergeInput1Toolbar=new z("MergeToolbar1Toolbar"),z.MergeInput2Toolbar=new z("MergeToolbar2Toolbar"),z.MergeBaseToolbar=new z("MergeBaseToolbar"),z.MergeInputResultToolbar=new z("MergeToolbarResultToolbar"),z.InlineSuggestionToolbar=new z("InlineSuggestionToolbar"),z.InlineEditToolbar=new z("InlineEditToolbar"),z.ChatContext=new z("ChatContext"),z.ChatCodeBlock=new z("ChatCodeblock"),z.ChatCompareBlock=new z("ChatCompareBlock"),z.ChatMessageTitle=new z("ChatMessageTitle"),z.ChatHistory=new z("ChatHistory"),z.ChatWelcomeContext=new z("ChatWelcomeContext"),z.ChatMessageFooter=new z("ChatMessageFooter"),z.ChatExecute=new z("ChatExecute"),z.ChatInput=new z("ChatInput"),z.ChatInputSide=new z("ChatInputSide"),z.ChatModePicker=new z("ChatModePicker"),z.ChatEditingWidgetToolbar=new z("ChatEditingWidgetToolbar"),z.ChatEditingEditorContent=new z("ChatEditingEditorContent"),z.ChatEditingEditorHunk=new z("ChatEditingEditorHunk"),z.ChatEditingDeletedNotebookCell=new z("ChatEditingDeletedNotebookCell"),z.ChatInputAttachmentToolbar=new z("ChatInputAttachmentToolbar"),z.ChatEditingWidgetModifiedFilesToolbar=new z("ChatEditingWidgetModifiedFilesToolbar"),z.ChatInputResourceAttachmentContext=new z("ChatInputResourceAttachmentContext"),z.ChatInputSymbolAttachmentContext=new z("ChatInputSymbolAttachmentContext"),z.ChatInlineResourceAnchorContext=new z("ChatInlineResourceAnchorContext"),z.ChatInlineSymbolAnchorContext=new z("ChatInlineSymbolAnchorContext"),z.ChatMessageCheckpoint=new z("ChatMessageCheckpoint"),z.ChatMessageRestoreCheckpoint=new z("ChatMessageRestoreCheckpoint"),z.ChatNewMenu=new z("ChatNewMenu"),z.ChatEditingCodeBlockContext=new z("ChatEditingCodeBlockContext"),z.ChatTitleBarMenu=new z("ChatTitleBarMenu"),z.ChatAttachmentsContext=new z("ChatAttachmentsContext"),z.ChatToolOutputResourceToolbar=new z("ChatToolOutputResourceToolbar"),z.ChatTextEditorMenu=new z("ChatTextEditorMenu"),z.ChatToolOutputResourceContext=new z("ChatToolOutputResourceContext"),z.ChatMultiDiffContext=new z("ChatMultiDiffContext"),z.ChatSessionsMenu=new z("ChatSessionsMenu"),z.ChatSessionsCreateSubMenu=new z("ChatSessionsCreateSubMenu"),z.ChatConfirmationMenu=new z("ChatConfirmationMenu"),z.ChatEditorInlineExecute=new z("ChatEditorInputExecute"),z.ChatEditorInlineInputSide=new z("ChatEditorInputSide"),z.AccessibleView=new z("AccessibleView"),z.MultiDiffEditorFileToolbar=new z("MultiDiffEditorFileToolbar"),z.DiffEditorHunkToolbar=new z("DiffEditorHunkToolbar"),z.DiffEditorSelectionToolbar=new z("DiffEditorSelectionToolbar");let MenuId=z;const IMenuService=createDecorator("menuService"),Or=class Or{static for(e){let t=this._all.get(e);return t||(t=new Or(e),this._all.set(e,t)),t}static merge(e){const t=new Set;for(const r of e)r instanceof Or&&t.add(r.id);return t}constructor(e){this.id=e,this.has=t=>t===e}};Or._all=new Map;let MenuRegistryChangeEvent=Or;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 r=t.push(e);return this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(o)),toDisposable(()=>{r(),this._onDidChangeMenu.fire(MenuRegistryChangeEvent.for(o))})}appendMenuItems(o){const e=new DisposableStore$1;for(const{id:t,item:r}of o)e.add(this.appendMenuItem(t,r));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,r)=>{e.has(r)||o.push({command:t})})}};class SubmenuItemAction extends SubmenuAction{constructor(e,t,r){super("submenuitem.".concat(e.submenu.id),typeof e.title=="string"?e.title:e.title.value,r,"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,r,s,a,l,c){var u,g;this.hideActions=s,this.menuKeybinding=a,this._commandService=c,this.id=e.id,this.label=MenuItemAction_1.label(e,r),this.tooltip=(g=typeof e.tooltip=="string"?e.tooltip:(u=e.tooltip)==null?void 0:u.value)!=null?g:"",this.enabled=!e.precondition||l.contextMatchesRules(e.precondition),this.checked=void 0;let d;if(e.toggled){const f=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=l.contextMatchesRules(f.condition),this.checked&&f.tooltip&&(this.tooltip=typeof f.tooltip=="string"?f.tooltip:f.tooltip.value),this.checked&&ThemeIcon.isThemeIcon(f.icon)&&(d=f.icon),this.checked&&f.title&&(this.label=typeof f.title=="string"?f.title:f.title.value)}d||(d=ThemeIcon.isThemeIcon(e.icon)?e.icon:void 0),this.item=e,this.alt=t?new MenuItemAction_1(t,void 0,r,s,void 0,l,c):void 0,this._options=r,this.class=d&&ThemeIcon.asClassName(d)}run(...e){var r,s;let t=[];return(r=this._options)!=null&&r.arg&&(t=[...t,this._options.arg]),(s=this._options)!=null&&s.shouldForwardArgs&&(t=[...t,...e]),this._commandService.executeCommand(this.id,...t)}};MenuItemAction=MenuItemAction_1=__decorate$3b([__param$30(5,IContextKeyService),__param$30(6,ICommandService)],MenuItemAction);class Action2{constructor(e){this.desc=e}}function registerAction2(o){var c;const e=[],t=new o,{f1:r,menu:s,keybinding:a,...l}=t.desc;if(CommandsRegistry.getCommand(l.id))throw new Error("Cannot register two commands with the same id: ".concat(l.id));if(e.push(CommandsRegistry.registerCommand({id:l.id,handler:(d,...u)=>t.run(d,...u),metadata:(c=l.metadata)!=null?c:{description:t.desc.title}})),Array.isArray(s))for(const d of s)e.push(MenuRegistry.appendMenuItem(d.id,{command:{...l,precondition:d.precondition===null?void 0:l.precondition},...d}));else s&&e.push(MenuRegistry.appendMenuItem(s.id,{command:{...l,precondition:s.precondition===null?void 0:l.precondition},...s}));if(r&&(e.push(MenuRegistry.appendMenuItem(MenuId.CommandPalette,{command:l,when:l.precondition})),e.push(MenuRegistry.addCommand(l))),Array.isArray(a))for(const d of a)e.push(KeybindingsRegistry.registerKeybindingRule({...d,id:l.id,when:l.precondition?ContextKeyExpr.and(l.precondition,d.when):d.when}));else a&&e.push(KeybindingsRegistry.registerKeybindingRule({...a,id:l.id,when:l.precondition?ContextKeyExpr.and(l.precondition,a.when):a.when}));return{dispose(){dispose(e)}}}const ITelemetryService=createDecorator("telemetryService");var _a$3,_b$1,_c$1;class ResourceMapEntry{constructor(e,t){this.uri=e,this.value=t}}function isEntries(o){return Array.isArray(o)}const Fi=class Fi{constructor(e,t){if(this[_a$3]="ResourceMap",e instanceof Fi)this.map=new Map(e.map),this.toKey=t!=null?t:Fi.defaultToKey;else if(isEntries(e)){this.map=new Map,this.toKey=t!=null?t:Fi.defaultToKey;for(const[r,s]of e)this.set(r,s)}else this.map=new Map,this.toKey=e!=null?e:Fi.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?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[r,s]of this.map)e(s.value,s.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$3=Symbol.toStringTag,Symbol.iterator)](){for(const[,e]of this.map)yield[e.uri,e.value]}};Fi.defaultToKey=e=>e.toString();let ResourceMap=Fi;class ResourceSet{constructor(e,t){this[_b$1]="ResourceSet",!e||typeof e=="function"?this._map=new ResourceMap(e):(this._map=new ResourceMap(t),e.forEach(this.add,this))}get size(){return this._map.size}add(e){return this._map.set(e,e),this}clear(){this._map.clear()}delete(e){return this._map.delete(e)}forEach(e,t){this._map.forEach((r,s)=>e.call(t,s,s,this))}has(e){return this._map.has(e)}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.keys()}[(_b$1=Symbol.toStringTag,Symbol.iterator)](){return this.keys()}}class LinkedMap{constructor(){this[_c$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?void 0:e.value}get last(){var e;return(e=this._tail)==null?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const r=this._map.get(e);if(r)return t!==0&&this.touch(r,t),r.value}set(e,t,r=0){let s=this._map.get(e);if(s)s.value=t,r!==0&&this.touch(s,r);else{switch(s={key:e,value:t,next:void 0,previous:void 0},r){case 0:this.addItemLast(s);break;case 1:this.addItemFirst(s);break;case 2:this.addItemLast(s);break;default:this.addItemLast(s);break}this._map.set(e,s),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 r=this._state;let s=this._head;for(;s;){if(t?e.bind(t)(s.value,s.key,this):e(s.value,s.key,this),this._state!==r)throw new Error("LinkedMap got modified during iteration.");s=s.next}}keys(){const e=this,t=this._state;let r=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(r){const a={value:r.key,done:!1};return r=r.next,a}else return{value:void 0,done:!0}}};return s}values(){const e=this,t=this._state;let r=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(r){const a={value:r.value,done:!1};return r=r.next,a}else return{value:void 0,done:!0}}};return s}entries(){const e=this,t=this._state;let r=this._head;const s={[Symbol.iterator](){return s},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(r){const a={value:[r.key,r.value],done:!1};return r=r.next,a}else return{value:void 0,done:!0}}};return s}[(_c$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,r=this.size;for(;t&&r>e;)this._map.delete(t.key),t=t.next,r--;this._head=t,this._size=r,t&&(t.previous=void 0),this._state++}trimNew(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._tail,r=this.size;for(;t&&r>e;)this._map.delete(t.key),t=t.previous,r--;this._tail=t,this._size=r,t&&(t.next=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,r=e.previous;if(!t||!r)throw new Error("Invalid list");t.previous=r,r.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 r=e.next,s=e.previous;e===this._tail?(s.next=void 0,this._tail=s):(r.previous=s,s.next=r),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 r=e.next,s=e.previous;e===this._head?(r.previous=void 0,this._head=r):(r.previous=s,s.next=r),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){const e=[];return this.forEach((t,r)=>{e.push([r,t])}),e}fromJSON(e){this.clear();for(const[t,r]of e)this.set(t,r)}}class Cache 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.size>this._limit&&this.trim(Math.round(this._limit*this._ratio))}}class LRUCache extends Cache{constructor(e,t=1){super(e,t)}trim(e){this.trimOld(e)}set(e,t){return super.set(e,t),this.checkTrim(),this}}class BidirectionalMap{constructor(e){if(this._m1=new Map,this._m2=new Map,e)for(const[t,r]of e)this.set(t,r)}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 r=this.map.get(e);r||(r=new Set,this.map.set(e,r)),r.add(t)}delete(e,t){const r=this.map.get(e);r&&(r.delete(t),r.size===0&&this.map.delete(e))}forEach(e,t){const r=this.map.get(e);r&&r.forEach(t)}}class NKeyMap{constructor(){this._data=new Map}set(e,...t){let r=this._data;for(let s=0;s<t.length-1;s++)r.has(t[s])||r.set(t[s],new Map),r=r.get(t[s]);r.set(t[t.length-1],e)}get(...e){let t=this._data;for(let r=0;r<e.length-1;r++){if(!t.has(e[r]))return;t=t.get(e[r])}return t.get(e[e.length-1])}clear(){this._data.clear()}toString(){const e=(t,r)=>{let s="";for(const[a,l]of t)s+="".concat(" ".repeat(r)).concat(a,": "),l instanceof Map?s+="\n"+e(l,r+1):s+="".concat(l,"\n");return s};return e(this._data,0)}}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,r=o.charCodeAt(0);if(isPathSeparator(r)){if(isPathSeparator(o.charCodeAt(1))&&!isPathSeparator(o.charCodeAt(2))){let a=3;const l=a;for(;a<t&&!isPathSeparator(o.charCodeAt(a));a++);if(l!==a&&!isPathSeparator(o.charCodeAt(a+1))){for(a+=1;a<t;a++)if(isPathSeparator(o.charCodeAt(a)))return o.slice(0,a+1).replace(/[\\/]/g,e)}}return e}else if(isWindowsDriveLetter(r)&&o.charCodeAt(1)===58)return isPathSeparator(o.charCodeAt(2))?o.slice(0,2)+e:o.slice(0,2);let s=o.indexOf("://");if(s!==-1){for(s+=3;s<t;s++)if(isPathSeparator(o.charCodeAt(s)))return o.slice(0,s+1)}return""}function isEqualOrParent(o,e,t,r=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 a=e.length;return e.charAt(e.length-1)===r&&a--,o.charAt(a)===r}return e.charAt(e.length-1)!==r&&(e+=r),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,r=!1){return e===t?0:compare(this.getComparisonKey(e,r),this.getComparisonKey(t,r))}isEqual(e,t,r=!1){return e===t?!0:!e||!t?!1:this.getComparisonKey(e,r)===this.getComparisonKey(t,r)}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,r=!1){if(e.scheme===t.scheme){if(e.scheme===Schemas.file)return isEqualOrParent(originalFSPath(e),originalFSPath(t),this._ignorePathCasing(e))&&e.query===t.query&&(r||e.fragment===t.fragment);if(isEqualAuthority(e.authority,t.authority))return isEqualOrParent(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(r||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("'.concat(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$1(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 a=relative(originalFSPath(e),originalFSPath(t));return isWindows?toSlashes(a):a}let r=e.path||"/";const s=t.path||"/";if(this._ignorePathCasing(e)){let a=0;for(const l=Math.min(r.length,s.length);a<l&&!(r.charCodeAt(a)!==s.charCodeAt(a)&&r.charAt(a).toLowerCase()!==s.charAt(a).toLowerCase());a++);r=s.substr(0,a)+r.substr(a)}return posix.relative(r,s)}resolvePath(e,t){if(e.scheme===Schemas.file){const r=URI.file(resolve$1(originalFSPath(e),t));return e.with({authority:r.authority,path:r.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 r=originalFSPath(e);return r.length>getRoot(r).length&&r[r.length-1]===t}else{const r=e.path;return r.length>1&&r.charCodeAt(r.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 r=!1;if(e.scheme===Schemas.file){const s=originalFSPath(e);r=s!==void 0&&s.length===getRoot(s).length&&s[s.length-1]===t}else{t="/";const s=e.path;r=s.length===1&&s.charCodeAt(s.length-1)===47}return!r&&!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 r=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(l=>{const[c,d]=l.split(":");c&&d&&r.set(c,d)});const a=t.path.substring(0,t.path.indexOf(";"));return a&&r.set(o.META_DATA_MIME,a),r}o.parseMetaData=e})(DataUri||(DataUri={}));const ILogService=createDecorator("logService"),ILoggerService=createDecorator("loggerService");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;function canLog(o,e){return o!==LogLevel.Off&&o<=e}class AbstractLogger extends Disposable$1{constructor(){super(...arguments),this.level=DEFAULT_LOG_LEVEL,this._onDidChangeLogLevel=this._register(new Emitter$1)}get onDidChangeLogLevel(){return this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return canLog(this.level,e)}canLog(e){return this._store.isDisposed?!1:this.checkLogLevel(e)}}class ConsoleLogger extends AbstractLogger{constructor(e=DEFAULT_LOG_LEVEL,t=!0){super(),this.useColors=t,this.setLevel(e)}trace(e,...t){this.canLog(LogLevel.Trace)&&(this.useColors?console.log("%cTRACE","color: #888",e,...t):console.log(e,...t))}debug(e,...t){this.canLog(LogLevel.Debug)&&(this.useColors?console.log("%cDEBUG","background: #eee; color: #888",e,...t):console.log(e,...t))}info(e,...t){this.canLog(LogLevel.Info)&&(this.useColors?console.log("%c INFO","color: #33f",e,...t):console.log(e,...t))}warn(e,...t){this.canLog(LogLevel.Warning)&&(this.useColors?console.warn("%c WARN","color: #993",e,...t):console.log(e,...t))}error(e,...t){this.canLog(LogLevel.Error)&&(this.useColors?console.error("%c ERR","color: #f33",e,...t):console.error(e,...t))}}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 r of this.loggers)r.trace(e,...t)}debug(e,...t){for(const r of this.loggers)r.debug(e,...t)}info(e,...t){for(const r of this.loggers)r.info(e,...t)}warn(e,...t){for(const r of this.loggers)r.warn(e,...t)}error(e,...t){for(const r of this.loggers)r.error(e,...t)}dispose(){for(const e of this.loggers)e.dispose();super.dispose()}}class AbstractLoggerService extends Disposable$1{constructor(e,t,r){if(super(),this.logLevel=e,this.logsHome=t,this._loggers=new ResourceMap,this._onDidChangeLoggers=this._register(new Emitter$1),this._onDidChangeVisibility=this._register(new Emitter$1),r)for(const s of r)this._loggers.set(s.resource,{logger:void 0,info:s})}getLoggerEntry(e){return isString$2(e)?[...this._loggers.values()].find(t=>t.info.id===e):this._loggers.get(e)}createLogger(e,t){var d,u,g;const r=this.toResource(e),s=isString$2(e)?e:(d=t==null?void 0:t.id)!=null?d:hash$1(r.toString()).toString(16);let a=(u=this._loggers.get(r))==null?void 0:u.logger;const l=(t==null?void 0:t.logLevel)==="always"?LogLevel.Trace:t==null?void 0:t.logLevel;a||(a=this.doCreateLogger(r,(g=l!=null?l:this.getLogLevel(r))!=null?g:this.logLevel,{...t,id:s}));const c={logger:a,info:{resource:r,id:s,logLevel:l,name:t==null?void 0:t.name,hidden:t==null?void 0:t.hidden,group:t==null?void 0:t.group,extensionId:t==null?void 0:t.extensionId,when:t==null?void 0:t.when}};return this.registerLogger(c.info),this._loggers.set(r,c),a}toResource(e){return isString$2(e)?joinPath(this.logsHome,"".concat(e,".log")):e}setVisibility(e,t){const r=this.getLoggerEntry(e);r&&t!==!r.info.hidden&&(r.info.hidden=!t,this._loggers.set(r.info.resource,r),this._onDidChangeVisibility.fire([r.info.resource,t]))}getLogLevel(e){var r;let t;return e&&(t=(r=this._loggers.get(e))==null?void 0:r.info.logLevel),t!=null?t:this.logLevel}registerLogger(e){const t=this._loggers.get(e.resource);t?t.info.hidden!==e.hidden&&this.setVisibility(e.resource,!e.hidden):(this._loggers.set(e.resource,{info:e,logger:void 0}),this._onDidChangeLoggers.fire({added:[e],removed:[]}))}dispose(){this._loggers.forEach(e=>{var t;return(t=e.logger)==null?void 0:t.dispose()}),this._loggers.clear(),super.dispose()}}class NullLogger{constructor(){this.onDidChangeLogLevel=new Emitter$1().event}setLevel(e){}getLevel(){return LogLevel.Info}trace(e,...t){}debug(e,...t){}info(e,...t){}warn(e,...t){}error(e,...t){}dispose(){}}class NullLoggerService extends AbstractLoggerService{constructor(){super(LogLevel.Off,URI.parse("log:///log"))}doCreateLogger(e,t,r){return new NullLogger}}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 Pr=class Pr{static getRegisteredCommands(){return[...Pr.REGISTERED_COMMANDS]}static registerCommand(e){Pr.REGISTERED_COMMANDS.add(e)}};Pr.REGISTERED_COMMANDS=new Set;let TriggerInlineEditCommandsRegistry=Pr,Command$1=class{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this.metadata=e.metadata,this.canTriggerInlineEdits=e.canTriggerInlineEdits}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 r=t.kbExpr;this.precondition&&(r?r=ContextKeyExpr.and(r,this.precondition):r=this.precondition);const s={id:this.id,weight:t.weight,args:t.args,when:r,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};KeybindingsRegistry.registerKeybindingRule(s)}}CommandsRegistry.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),metadata:this.metadata}),this.canTriggerInlineEdits&&TriggerInlineEditCommandsRegistry.registerCommand(this.id)}_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$1{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,r,s){return this._implementations.push({priority:e,name:t,implementation:r,when:s}),this._implementations.sort((a,l)=>l.priority-a.priority),{dispose:()=>{for(let a=0;a<this._implementations.length;a++)if(this._implementations[a].implementation===r){this._implementations.splice(a,1);return}}}}runCommand(e,t){const r=e.get(ILogService),s=e.get(IContextKeyService);r.trace("Executing Command '".concat(this.id,"' which has ").concat(this._implementations.length," bound."));for(const a of this._implementations){if(a.when){const c=s.getContext(getActiveElement());if(!a.when.evaluate(c))continue}const l=a.implementation(e,t);if(l)return r.trace("Command '".concat(this.id,"' was handled by '").concat(a.name,"'.")),typeof l=="boolean"?void 0:l}r.trace("The Command '".concat(this.id,"' was not handled by any implementation."))}}class ProxyCommand extends Command$1{constructor(e,t){super(t),this.command=e}runCommand(e,t){return this.command.runCommand(e,t)}}class EditorCommand extends Command$1{static bindToContribution(e){return class extends EditorCommand{constructor(r){super(r),this._callback=r.handler}runEditorCommand(r,s,a){const l=e(s);l&&this._callback(l,a)}}}static runEditorCommand(e,t,r,s){const a=e.get(ICodeEditorService),l=a.getFocusedCodeEditor()||a.getActiveCodeEditor();if(l)return l.invokeWithinContext(c=>{if(c.get(IContextKeyService).contextMatchesRules(r!=null?r:void 0))return s(c,l,t)})}runCommand(e,t){return EditorCommand.runEditorCommand(e,t,this.precondition,(r,s,a)=>this.runEditorCommand(r,s,a))}}class EditorAction extends EditorCommand{static convertOptions(e){let t;Array.isArray(e.menuOpts)?t=e.menuOpts:e.menuOpts?t=[e.menuOpts]:t=[];function r(s){return s.menuId||(s.menuId=MenuId.EditorContext),s.title||(s.title=typeof e.label=="string"?e.label:e.label.value),s.when=ContextKeyExpr.and(e.precondition,s.when),s}return Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(r)):e.contextMenuOpts&&t.push(r(e.contextMenuOpts)),e.menuOpts=t,e}constructor(e){var t,r;super(EditorAction.convertOptions(e)),typeof e.label=="string"?(this.label=e.label,this.alias=(t=e.alias)!=null?t:e.label):(this.label=e.label.value,this.alias=(r=e.alias)!=null?r:e.label.original)}runEditorCommand(e,t,r){return this.reportTelemetry(e,t),this.run(e,t,r||{})}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((r,s)=>s[0]-r[0]),{dispose:()=>{for(let r=0;r<this._implementations.length;r++)if(this._implementations[r][1]===t){this._implementations.splice(r,1);return}}}}run(e,t,r){for(const s of this._implementations){const a=s[1](e,t,r);if(a)return typeof a=="boolean"?void 0:a}}}class EditorAction2 extends Action2{run(e,...t){const r=e.get(ICodeEditorService),s=r.getFocusedCodeEditor()||r.getActiveCodeEditor();if(s)return s.invokeWithinContext(a=>{var u,g;const l=a.get(IContextKeyService),c=a.get(ILogService);if(!l.contextMatchesRules((u=this.desc.precondition)!=null?u:void 0)){c.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,(g=this.desc.precondition)==null?void 0:g.serialize());return}return this.runEditorCommand(a,s,...t)})}}function registerModelAndPositionCommand(o,e){CommandsRegistry.registerCommand(o,function(t,...r){const s=t.get(IInstantiationService),[a,l]=r;assertType(URI.isUri(a)),assertType(Position$1.isIPosition(l));const c=t.get(IModelService).getModel(a);if(c){const d=Position$1.lift(l);return s.invokeFunction(e,c,d,...r.slice(2))}return t.get(ITextModelService).createModelReference(a).then(d=>new Promise((u,g)=>{try{const f=s.invokeFunction(e,d.object.textEditorModel,Position$1.lift(l),r.slice(2));u(f)}catch(f){g(f)}}).finally(()=>{d.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(l){return EditorContributionRegistry.INSTANCE.getEditorCommand(l)}o.getEditorCommand=e;function t(){return EditorContributionRegistry.INSTANCE.getEditorActions()}o.getEditorActions=t;function r(){return EditorContributionRegistry.INSTANCE.getEditorContributions()}o.getEditorContributions=r;function s(l){return EditorContributionRegistry.INSTANCE.getEditorContributions().filter(c=>l.indexOf(c.id)>=0)}o.getSomeEditorContributions=s;function a(){return EditorContributionRegistry.INSTANCE.getDiffEditorContributions()}o.getDiffEditorContributions=a})(EditorExtensionsRegistry||(EditorExtensionsRegistry={}));const Extensions$8={EditorCommonContributions:"editor.contributions"},uo=class uo{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t,r){this.editorContributions.push({id:e,ctor:t,instantiation:r})}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}};uo.INSTANCE=new uo;let EditorContributionRegistry=uo;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(69,"&&Undo"),order:1},{menuId:MenuId.CommandPalette,group:"",title:localize(70,"Undo"),order:1},{menuId:MenuId.SimpleEditorContext,group:"1_do",title:localize(71,"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(72,"&&Redo"),order:2},{menuId:MenuId.CommandPalette,group:"",title:localize(73,"Redo"),order:1},{menuId:MenuId.SimpleEditorContext,group:"1_do",title:localize(74,"Redo"),order:2}]}));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(75,"&&Select All"),order:1},{menuId:MenuId.CommandPalette,group:"",title:localize(76,"Select All"),order:1},{menuId:MenuId.SimpleEditorContext,group:"9_select",title:localize(77,"Select All"),order:1}]}));let Range$2=class Be{constructor(e,t,r,s){e>r||e===r&&t>s?(this.startLineNumber=r,this.startColumn=s,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=r,this.endColumn=s)}isEmpty(){return Be.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return Be.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 Be.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 Be.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 Be.plusRange(this,e)}static plusRange(e,t){let r,s,a,l;return t.startLineNumber<e.startLineNumber?(r=t.startLineNumber,s=t.startColumn):t.startLineNumber===e.startLineNumber?(r=t.startLineNumber,s=Math.min(t.startColumn,e.startColumn)):(r=e.startLineNumber,s=e.startColumn),t.endLineNumber>e.endLineNumber?(a=t.endLineNumber,l=t.endColumn):t.endLineNumber===e.endLineNumber?(a=t.endLineNumber,l=Math.max(t.endColumn,e.endColumn)):(a=e.endLineNumber,l=e.endColumn),new Be(r,s,a,l)}intersectRanges(e){return Be.intersectRanges(this,e)}static intersectRanges(e,t){let r=e.startLineNumber,s=e.startColumn,a=e.endLineNumber,l=e.endColumn;const c=t.startLineNumber,d=t.startColumn,u=t.endLineNumber,g=t.endColumn;return r<c?(r=c,s=d):r===c&&(s=Math.max(s,d)),a>u?(a=u,l=g):a===u&&(l=Math.min(l,g)),r>a||r===a&&s>l?null:new Be(r,s,a,l)}equalsRange(e){return Be.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 Be.getEndPosition(this)}static getEndPosition(e){return new Position$1(e.endLineNumber,e.endColumn)}getStartPosition(){return Be.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 Be(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new Be(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return Be.collapseToStart(this)}static collapseToStart(e){return new Be(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return Be.collapseToEnd(this)}static collapseToEnd(e){return new Be(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new Be(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}isSingleLine(){return this.startLineNumber===this.endLineNumber}static fromPositions(e,t=e){return new Be(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new Be(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 areOnlyIntersecting(e,t){return!(e.endLineNumber<t.startLineNumber-1||e.endLineNumber===t.startLineNumber&&e.endColumn<t.startColumn-1||t.endLineNumber<e.startLineNumber-1||t.endLineNumber===e.startLineNumber&&t.endColumn<e.startColumn-1)}static compareRangesUsingStarts(e,t){if(e&&t){const a=e.startLineNumber|0,l=t.startLineNumber|0;if(a===l){const c=e.startColumn|0,d=t.startColumn|0;if(c===d){const u=e.endLineNumber|0,g=t.endLineNumber|0;if(u===g){const f=e.endColumn|0,m=t.endColumn|0;return f-m}return u-g}return c-d}return a-l}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 _t extends Range$2{constructor(e,t,r,s){super(e,t,r,s),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=r,this.positionColumn=s}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return _t.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 _t(this.startLineNumber,this.startColumn,e,t):new _t(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 _t(e,t,this.endLineNumber,this.endColumn):new _t(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new _t(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return t===0?new _t(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new _t(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new _t(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 r=0,s=e.length;r<s;r++)if(!this.selectionsEqual(e[r],t[r]))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,r,s,a){return a===0?new _t(e,t,r,s):new _t(r,s,e,t)}};function createScopedLineTokens(o,e){const t=o.getCount(),r=o.findTokenIndexAtOffset(e),s=o.getLanguageId(r);let a=r;for(;a+1<t&&o.getLanguageId(a+1)===s;)a++;let l=r;for(;l>0&&o.getLanguageId(l-1)===s;)l--;return new ScopedLineTokens(o,s,l,a+1,o.getStartOffset(l),o.getEndOffset(a))}class ScopedLineTokens{constructor(e,t,r,s,a,l){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=r,this._lastTokenIndex=s,this.firstCharOffset=a,this._lastCharOffset=l,this.languageIdCodec=e.languageIdCodec}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getLineLength(){return this._lastCharOffset-this.firstCharOffset}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)}toIViewLineTokens(){return this._actual.sliceAndInflate(this.firstCharOffset,this._lastCharOffset,0)}}function ignoreBracketsInToken(o){return(o&3)!==0}class CursorColumns{static _nextVisibleColumn(e,t,r){return e===9?CursorColumns.nextRenderTabStop(t,r):isFullWidthCharacter(e)||isEmojiImprecise(e)?t+2:t+1}static visibleColumnFromColumn(e,t,r){const s=Math.min(t-1,e.length),a=e.substring(0,s),l=new GraphemeIterator(a);let c=0;for(;!l.eol();){const d=getNextCodePoint(a,s,l.offset);l.nextGraphemeLength(),c=this._nextVisibleColumn(d,c,r)}return c}static columnFromVisibleColumn(e,t,r){if(t<=0)return 1;const s=e.length,a=new GraphemeIterator(e);let l=0,c=1;for(;!a.eol();){const d=getNextCodePoint(e,s,a.offset);a.nextGraphemeLength();const u=this._nextVisibleColumn(d,l,r),g=a.offset+1;if(u>=t){const f=t-l;return u-t<f?g:c}l=u,c=g}return s+1}static nextRenderTabStop(e,t){return e+t-e%t}static nextIndentTabStop(e,t){return CursorColumns.nextRenderTabStop(e,t)}static prevRenderTabStop(e,t){return Math.max(0,e-1-(e-1)%t)}static prevIndentTabStop(e,t){return CursorColumns.prevRenderTabStop(e,t)}}function _normalizeIndentationFromWhitespace(o,e,t){let r=0;for(let a=0;a<o.length;a++)o.charAt(a)===" "?r=CursorColumns.nextIndentTabStop(r,e):r++;let s="";if(!t){const a=Math.floor(r/e);r=r%e;for(let l=0;l<a;l++)s+=" "}for(let a=0;a<r;a++)s+=" ";return s}function normalizeIndentation(o,e,t){let r=firstNonWhitespaceIndex(o);return r===-1&&(r=o.length),_normalizeIndentationFromWhitespace(o.substring(0,r),e,t)+o.substring(r)}class InputModeImpl{constructor(){this._inputMode="insert",this._onDidChangeInputMode=new Emitter$1,this.onDidChangeInputMode=this._onDidChangeInputMode.event}getInputMode(){return this._inputMode}}const InputMode=new InputModeImpl,autoCloseAlways=()=>!0,autoCloseNever=()=>!1,autoCloseBeforeWhitespace=o=>o===" "||o===" ";class CursorConfiguration{static shouldRecreate(e){return e.hasChanged(165)||e.hasChanged(148)||e.hasChanged(45)||e.hasChanged(85)||e.hasChanged(88)||e.hasChanged(89)||e.hasChanged(10)||e.hasChanged(11)||e.hasChanged(15)||e.hasChanged(13)||e.hasChanged(14)||e.hasChanged(20)||e.hasChanged(145)||e.hasChanged(141)||e.hasChanged(59)||e.hasChanged(104)||e.hasChanged(147)||e.hasChanged(93)}constructor(e,t,r,s){var g;this.languageConfigurationService=s,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const a=r.options,l=a.get(165),c=a.get(59);this.readOnly=a.get(104),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=a.get(132),this.lineHeight=c.lineHeight,this.typicalHalfwidthCharacterWidth=c.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(l.height/this.lineHeight)-2),this.useTabStops=a.get(145),this.trimWhitespaceOnDelete=a.get(141),this.wordSeparators=a.get(148),this.emptySelectionClipboard=a.get(45),this.copyWithSyntaxHighlighting=a.get(31),this.multiCursorMergeOverlapping=a.get(85),this.multiCursorPaste=a.get(88),this.multiCursorLimit=a.get(89),this.autoClosingBrackets=a.get(10),this.autoClosingComments=a.get(11),this.autoClosingQuotes=a.get(15),this.autoClosingDelete=a.get(13),this.autoClosingOvertype=a.get(14),this.autoSurround=a.get(20),this.autoIndent=a.get(16),this.wordSegmenterLocales=a.get(147),this.overtypeOnPaste=a.get(93),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 f of d)this.surroundingPairs[f.open]=f.close;const u=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=(g=u==null?void 0:u.blockCommentStartToken)!=null?g:null}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)==null?void 0:e.getElectricCharacters();if(t)for(const r of t)this._electricChars[r]=!0}return this._electricChars}get inputMode(){return InputMode.getInputMode()}onElectricCharacter(e,t,r){const s=createScopedLineTokens(t,r-1),a=this.languageConfigurationService.getLanguageConfiguration(s.languageId).electricCharacter;return a?a.onElectricCharacter(e,s,r-s.firstCharOffset):null}normalizeIndentation(e){return normalizeIndentation(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,r){switch(t){case"beforeWhitespace":return autoCloseBeforeWhitespace;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e,r);case"always":return autoCloseAlways;case"never":return autoCloseNever}}_getLanguageDefinedShouldAutoClose(e,t){const r=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return s=>r.indexOf(s)!==-1}visibleColumnFromColumn(e,t){return CursorColumns.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,r){const s=CursorColumns.columnFromVisibleColumn(e.getLineContent(t),r,this.tabSize),a=e.getLineMinColumn(t);if(s<a)return a;const l=e.getLineMaxColumn(t);return s>l?l:s}}let CursorState$1=class Ha{static fromModelState(e){return new PartialModelCursorState(e)}static fromViewState(e){return new PartialViewCursorState(e)}static fromModelSelection(e){const t=Selection$1.liftSelection(e),r=new SingleCursorState(Range$2.fromPositions(t.getSelectionStart()),0,0,t.getPosition(),0);return Ha.fromModelState(r)}static fromModelSelections(e){const t=[];for(let r=0,s=e.length;r<s;r++)t[r]=this.fromModelSelection(e[r]);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,r,s,a){this.selectionStart=e,this.selectionStartKind=t,this.selectionStartLeftoverVisibleColumns=r,this.position=s,this.leftoverVisibleColumns=a,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,r,s){return e?new SingleCursorState(this.selectionStart,this.selectionStartKind,this.selectionStartLeftoverVisibleColumns,new Position$1(t,r),s):new SingleCursorState(new Range$2(t,r,t,r),0,s,new Position$1(t,r),s)}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,r){this._editOperationResultBrand=void 0,this.type=e,this.commands=t,this.shouldPushStackElementBefore=r.shouldPushStackElementBefore,this.shouldPushStackElementAfter=r.shouldPushStackElementAfter}}function isQuote(o){return o==="'"||o==='"'||o==="`"}class ColumnSelection{static columnSelect(e,t,r,s,a,l){const c=Math.abs(a-r)+1,d=r>a,u=s>l,g=s<l,f=[];for(let m=0;m<c;m++){const _=r+(d?-m:m),v=e.columnFromVisibleColumn(t,_,s),b=e.columnFromVisibleColumn(t,_,l),C=e.visibleColumnFromColumn(t,new Position$1(_,v)),y=e.visibleColumnFromColumn(t,new Position$1(_,b));g&&(C>l||y<s)||u&&(y>s||C<l)||f.push(new SingleCursorState(new Range$2(_,v,_,v),0,0,new Position$1(_,b),0))}if(f.length===0)for(let m=0;m<c;m++){const _=r+(d?-m:m),v=t.getLineMaxColumn(_);f.push(new SingleCursorState(new Range$2(_,v,_,v),0,0,new Position$1(_,v),0))}return{viewStates:f,reversed:d,fromLineNumber:r,fromVisualColumn:s,toLineNumber:a,toVisualColumn:l}}static columnSelectLeft(e,t,r){let s=r.toViewVisualColumn;return s>0&&s--,ColumnSelection.columnSelect(e,t,r.fromViewLineNumber,r.fromViewVisualColumn,r.toViewLineNumber,s)}static columnSelectRight(e,t,r){let s=0;const a=Math.min(r.fromViewLineNumber,r.toViewLineNumber),l=Math.max(r.fromViewLineNumber,r.toViewLineNumber);for(let d=a;d<=l;d++){const u=t.getLineMaxColumn(d),g=e.visibleColumnFromColumn(t,new Position$1(d,u));s=Math.max(s,g)}let c=r.toViewVisualColumn;return c<s&&c++,this.columnSelect(e,t,r.fromViewLineNumber,r.fromViewVisualColumn,r.toViewLineNumber,c)}static columnSelectUp(e,t,r,s){const a=s?e.pageSize:1,l=Math.max(1,r.toViewLineNumber-a);return this.columnSelect(e,t,r.fromViewLineNumber,r.fromViewVisualColumn,l,r.toViewVisualColumn)}static columnSelectDown(e,t,r,s){const a=s?e.pageSize:1,l=Math.min(t.getLineCount(),r.toViewLineNumber+a);return this.columnSelect(e,t,r.fromViewLineNumber,r.fromViewVisualColumn,l,r.toViewVisualColumn)}}class ReplaceCommand{constructor(e,t,r=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=r}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return Selection$1.fromPositions(s.getEndPosition())}}class ReplaceOvertypeCommand{constructor(e,t,r=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=r}getEditOperations(e,t){const r=this._range.getStartPosition(),s=this._range.getEndPosition(),a=s.lineNumber,l=this._text.length+(this._range.isEmpty()?0:-1);let c=addPositiveOffsetToModelPosition(e,s,l);c.lineNumber>a&&(c=new Position$1(a,e.getLineMaxColumn(a)));const d=Range$2.fromPositions(r,c);t.addTrackedEditOperation(d,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return Selection$1.fromPositions(s.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 s=t.getInverseEditOperations()[0].range;return Selection$1.fromRange(s,0)}}class ReplaceCommandWithoutChangingPosition{constructor(e,t,r=!1){this._range=e,this._text=t,this.insertsAutoWhitespace=r}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return Selection$1.fromPositions(s.getStartPosition())}}class ReplaceCommandWithOffsetCursorState{constructor(e,t,r,s,a=!1){this._range=e,this._text=t,this._columnDeltaOffset=s,this._lineNumberDeltaOffset=r,this.insertsAutoWhitespace=a}getEditOperations(e,t){t.addTrackedEditOperation(this._range,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return Selection$1.fromPositions(s.getEndPosition().delta(this._lineNumberDeltaOffset,this._columnDeltaOffset))}}class ReplaceOvertypeCommandOnCompositionEnd{constructor(e){this._range=e}getEditOperations(e,t){const r=e.getValueInRange(this._range),s=this._range.getEndPosition(),a=s.lineNumber;let l=addPositiveOffsetToModelPosition(e,s,r.length);l.lineNumber>a&&(l=new Position$1(a,e.getLineMaxColumn(a)));const c=Range$2.fromPositions(s,l);t.addTrackedEditOperation(c,"")}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return Selection$1.fromPositions(s.getEndPosition())}}class ReplaceCommandThatPreservesSelection{constructor(e,t,r,s=!1){this._range=e,this._text=t,this._initialSelection=r,this._forceMoveMarkers=s,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)}}function addPositiveOffsetToModelPosition(o,e,t){if(t<0)throw new Error("Unexpected negative delta");const r=o.getLineCount();let s=new Position$1(r,o.getLineMaxColumn(r));for(let a=e.lineNumber;a<=r;a++)if(a===e.lineNumber){const l=t-o.getLineMaxColumn(e.lineNumber)+e.column;if(l<=0){s=new Position$1(e.lineNumber,e.column+t);break}t=l}else{const l=t-o.getLineMaxColumn(a);if(l<=0){s=new Position$1(a,t);break}t=l}return s}class AtomicTabMoveOperations{static whitespaceVisibleColumn(e,t,r){const s=e.length;let a=0,l=-1,c=-1;for(let d=0;d<s;d++){if(d===t)return[l,c,a];switch(a%r===0&&(l=d,c=a),e.charCodeAt(d)){case 32:a+=1;break;case 9:a=CursorColumns.nextRenderTabStop(a,r);break;default:return[-1,-1,-1]}}return t===s?[l,c,a]:[-1,-1,-1]}static atomicPosition(e,t,r,s){const a=e.length,[l,c,d]=AtomicTabMoveOperations.whitespaceVisibleColumn(e,t,r);if(d===-1)return-1;let u;switch(s){case 0:u=!0;break;case 1:u=!1;break;case 2:if(d%r===0)return t;u=d%r<=r/2;break}if(u){if(l===-1)return-1;let m=c;for(let _=l;_<a;++_){if(m===c+r)return l;switch(e.charCodeAt(_)){case 32:m+=1;break;case 9:m=CursorColumns.nextRenderTabStop(m,r);break;default:return-1}}return m===c+r?l:-1}const g=CursorColumns.nextRenderTabStop(d,r);let f=d;for(let m=t;m<a;m++){if(f===g)return m;switch(e.charCodeAt(m)){case 32:f+=1;break;case 9:f=CursorColumns.nextRenderTabStop(f,r);break;default:return-1}}return f===g?a:-1}}class CursorPosition{constructor(e,t,r){this._cursorPositionBrand=void 0,this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=r}}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 r=t.lineNumber-1;return new Position$1(r,e.getLineMaxColumn(r))}else return t}static leftPositionAtomicSoftTabs(e,t,r){if(t.column<=e.getLineIndentColumn(t.lineNumber)){const s=e.getLineMinColumn(t.lineNumber),a=e.getLineContent(t.lineNumber),l=AtomicTabMoveOperations.atomicPosition(a,t.column-1,r,0);if(l!==-1&&l+1>=s)return new Position$1(t.lineNumber,l+1)}return this.leftPosition(e,t)}static left(e,t,r){const s=e.stickyTabStops?MoveOperations.leftPositionAtomicSoftTabs(t,r,e.tabSize):MoveOperations.leftPosition(t,r);return new CursorPosition(s.lineNumber,s.column,0)}static moveLeft(e,t,r,s,a){let l,c;if(r.hasSelection()&&!s)l=r.selection.startLineNumber,c=r.selection.startColumn;else{const d=r.position.delta(void 0,-(a-1)),u=t.normalizePosition(MoveOperations.clipPositionColumn(d,t),0),g=MoveOperations.left(e,t,u);l=g.lineNumber,c=g.column}return r.move(s,l,c,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,r){return e<t?t:e>r?r:e}static rightPosition(e,t,r){return r<e.getLineMaxColumn(t)?r=r+nextCharLength(e.getLineContent(t),r-1):t<e.getLineCount()&&(t=t+1,r=e.getLineMinColumn(t)),new Position$1(t,r)}static rightPositionAtomicSoftTabs(e,t,r,s,a){if(r<e.getLineIndentColumn(t)){const l=e.getLineContent(t),c=AtomicTabMoveOperations.atomicPosition(l,r-1,s,1);if(c!==-1)return new Position$1(t,c+1)}return this.rightPosition(e,t,r)}static right(e,t,r){const s=e.stickyTabStops?MoveOperations.rightPositionAtomicSoftTabs(t,r.lineNumber,r.column,e.tabSize,e.indentSize):MoveOperations.rightPosition(t,r.lineNumber,r.column);return new CursorPosition(s.lineNumber,s.column,0)}static moveRight(e,t,r,s,a){let l,c;if(r.hasSelection()&&!s)l=r.selection.endLineNumber,c=r.selection.endColumn;else{const d=r.position.delta(void 0,a-1),u=t.normalizePosition(MoveOperations.clipPositionColumn(d,t),1),g=MoveOperations.right(e,t,u);l=g.lineNumber,c=g.column}return r.move(s,l,c,0)}static vertical(e,t,r,s,a,l,c,d){const u=CursorColumns.visibleColumnFromColumn(t.getLineContent(r),s,e.tabSize)+a,g=t.getLineCount(),f=r===1&&s===1,m=r===g&&s===t.getLineMaxColumn(r),_=l<r?f:m;if(r=l,r<1?(r=1,c?s=t.getLineMinColumn(r):s=Math.min(t.getLineMaxColumn(r),s)):r>g?(r=g,c?s=t.getLineMaxColumn(r):s=Math.min(t.getLineMaxColumn(r),s)):s=e.columnFromVisibleColumn(t,r,u),_?a=0:a=u-CursorColumns.visibleColumnFromColumn(t.getLineContent(r),s,e.tabSize),d!==void 0){const v=new Position$1(r,s),b=t.normalizePosition(v,d);a=a+(s-b.column),r=b.lineNumber,s=b.column}return new CursorPosition(r,s,a)}static down(e,t,r,s,a,l,c){return this.vertical(e,t,r,s,a,r+l,c,4)}static moveDown(e,t,r,s,a){let l,c;r.hasSelection()&&!s?(l=r.selection.endLineNumber,c=r.selection.endColumn):(l=r.position.lineNumber,c=r.position.column);let d=0,u;do if(u=MoveOperations.down(e,t,l+d,c,r.leftoverVisibleColumns,a,!0),t.normalizePosition(new Position$1(u.lineNumber,u.column),2).lineNumber>l)break;while(d++<10&&l+d<t.getLineCount());return r.move(s,u.lineNumber,u.column,u.leftoverVisibleColumns)}static translateDown(e,t,r){const s=r.selection,a=MoveOperations.down(e,t,s.selectionStartLineNumber,s.selectionStartColumn,r.selectionStartLeftoverVisibleColumns,1,!1),l=MoveOperations.down(e,t,s.positionLineNumber,s.positionColumn,r.leftoverVisibleColumns,1,!1);return new SingleCursorState(new Range$2(a.lineNumber,a.column,a.lineNumber,a.column),0,a.leftoverVisibleColumns,new Position$1(l.lineNumber,l.column),l.leftoverVisibleColumns)}static up(e,t,r,s,a,l,c){return this.vertical(e,t,r,s,a,r-l,c,3)}static moveUp(e,t,r,s,a){let l,c;r.hasSelection()&&!s?(l=r.selection.startLineNumber,c=r.selection.startColumn):(l=r.position.lineNumber,c=r.position.column);const d=MoveOperations.up(e,t,l,c,r.leftoverVisibleColumns,a,!0);return r.move(s,d.lineNumber,d.column,d.leftoverVisibleColumns)}static translateUp(e,t,r){const s=r.selection,a=MoveOperations.up(e,t,s.selectionStartLineNumber,s.selectionStartColumn,r.selectionStartLeftoverVisibleColumns,1,!1),l=MoveOperations.up(e,t,s.positionLineNumber,s.positionColumn,r.leftoverVisibleColumns,1,!1);return new SingleCursorState(new Range$2(a.lineNumber,a.column,a.lineNumber,a.column),0,a.leftoverVisibleColumns,new Position$1(l.lineNumber,l.column),l.leftoverVisibleColumns)}static _isBlankLine(e,t){return e.getLineFirstNonWhitespaceColumn(t)===0}static moveToPrevBlankLine(e,t,r,s){let a=r.position.lineNumber;for(;a>1&&this._isBlankLine(t,a);)a--;for(;a>1&&!this._isBlankLine(t,a);)a--;return r.move(s,a,t.getLineMinColumn(a),0)}static moveToNextBlankLine(e,t,r,s){const a=t.getLineCount();let l=r.position.lineNumber;for(;l<a&&this._isBlankLine(t,l);)l++;for(;l<a&&!this._isBlankLine(t,l);)l++;return r.move(s,l,t.getLineMinColumn(l),0)}static moveToBeginningOfLine(e,t,r,s){const a=r.position.lineNumber,l=t.getLineMinColumn(a),c=t.getLineFirstNonWhitespaceColumn(a)||l;let d;return r.position.column===c?d=l:d=c,r.move(s,a,d,0)}static moveToEndOfLine(e,t,r,s,a){const l=r.position.lineNumber,c=t.getLineMaxColumn(l);return r.move(s,l,c,a?1073741824-c:0)}static moveToBeginningOfBuffer(e,t,r,s){return r.move(s,1,1,0)}static moveToEndOfBuffer(e,t,r,s){const a=t.getLineCount(),l=t.getLineMaxColumn(a);return r.move(s,a,l,0)}}class DeleteOperations{static deleteRight(e,t,r,s){const a=[];let l=e!==3;for(let c=0,d=s.length;c<d;c++){const u=s[c],g=this.getDeleteRightRange(u,r,t);if(g.isEmpty()){a[c]=null;continue}g.startLineNumber!==g.endLineNumber&&(l=!0),a[c]=new ReplaceCommand(g,"")}return[l,a]}static getDeleteRightRange(e,t,r){if(!e.isEmpty())return e;const s=e.getPosition(),a=MoveOperations.right(r,t,s);if(r.trimWhitespaceOnDelete&&a.lineNumber!==s.lineNumber){const l=t.getLineFirstNonWhitespaceColumn(s.lineNumber)>0,c=t.getLineFirstNonWhitespaceColumn(a.lineNumber);if(l&&c>0)return new Range$2(a.lineNumber,c,s.lineNumber,s.column)}return new Range$2(a.lineNumber,a.column,s.lineNumber,s.column)}static isAutoClosingPairDelete(e,t,r,s,a,l,c){if(t==="never"&&r==="never"||e==="never")return!1;for(let d=0,u=l.length;d<u;d++){const g=l[d],f=g.getPosition();if(!g.isEmpty())return!1;const m=a.getLineContent(f.lineNumber);if(f.column<2||f.column>=m.length+1)return!1;const _=m.charAt(f.column-2),v=s.get(_);if(!v)return!1;if(isQuote(_)){if(r==="never")return!1}else if(t==="never")return!1;const b=m.charAt(f.column-1);let C=!1;for(const y of v)y.open===_&&y.close===b&&(C=!0);if(!C)return!1;if(e==="auto"){let y=!1;for(let S=0,w=c.length;S<w;S++){const E=c[S];if(f.lineNumber===E.startLineNumber&&f.column===E.startColumn){y=!0;break}}if(!y)return!1}}return!0}static _runAutoClosingPairDelete(e,t,r){const s=[];for(let a=0,l=r.length;a<l;a++){const c=r[a].getPosition(),d=new Range$2(c.lineNumber,c.column-1,c.lineNumber,c.column+1);s[a]=new ReplaceCommand(d,"")}return[!0,s]}static deleteLeft(e,t,r,s,a){if(this.isAutoClosingPairDelete(t.autoClosingDelete,t.autoClosingBrackets,t.autoClosingQuotes,t.autoClosingPairs.autoClosingPairsOpenByEnd,r,s,a))return this._runAutoClosingPairDelete(t,r,s);const l=[];let c=e!==2;for(let d=0,u=s.length;d<u;d++){const g=DeleteOperations.getDeleteLeftRange(s[d],r,t);if(g.isEmpty()){l[d]=null;continue}g.startLineNumber!==g.endLineNumber&&(c=!0),l[d]=new ReplaceCommand(g,"")}return[c,l]}static getDeleteLeftRange(e,t,r){if(!e.isEmpty())return e;const s=e.getPosition();if(r.useTabStops&&s.column>1){const a=t.getLineContent(s.lineNumber),l=firstNonWhitespaceIndex(a),c=l===-1?a.length+1:l+1;if(s.column<=c){const d=r.visibleColumnFromColumn(t,s),u=CursorColumns.prevIndentTabStop(d,r.indentSize),g=r.columnFromVisibleColumn(t,s.lineNumber,u);return new Range$2(s.lineNumber,g,s.lineNumber,s.column)}}return Range$2.fromPositions(DeleteOperations.getPositionAfterDeleteLeft(s,t),s)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const r=getLeftDeleteOffset(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,r+1)}else if(e.lineNumber>1){const r=e.lineNumber-1;return new Position$1(r,t.getLineMaxColumn(r))}else return e}static cut(e,t,r){const s=[];let a=null;r.sort((l,c)=>Position$1.compare(l.getStartPosition(),c.getEndPosition()));for(let l=0,c=r.length;l<c;l++){const d=r[l];if(d.isEmpty())if(e.emptySelectionClipboard){const u=d.getPosition();let g,f,m,_;u.lineNumber<t.getLineCount()?(g=u.lineNumber,f=1,m=u.lineNumber+1,_=1):u.lineNumber>1&&(a==null?void 0:a.endLineNumber)!==u.lineNumber?(g=u.lineNumber-1,f=t.getLineMaxColumn(u.lineNumber-1),m=u.lineNumber,_=t.getLineMaxColumn(u.lineNumber)):(g=u.lineNumber,f=1,m=u.lineNumber,_=t.getLineMaxColumn(u.lineNumber));const v=new Range$2(g,f,m,_);a=v,v.isEmpty()?s[l]=null:s[l]=new ReplaceCommand(v,"")}else s[l]=null;else s[l]=new ReplaceCommand(d,"")}return new EditOperationResult(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}const safeIntl={DateTimeFormat(o,e){return new Lazy(()=>{try{return new Intl.DateTimeFormat(o,e)}catch(t){return new Intl.DateTimeFormat(void 0,e)}})},Collator(o,e){return new Lazy(()=>{try{return new Intl.Collator(o,e)}catch(t){return new Intl.Collator(void 0,e)}})},Segmenter(o,e){return new Lazy(()=>{try{return new Intl.Segmenter(o,e)}catch(t){return new Intl.Segmenter(void 0,e)}})},Locale(o,e){return new Lazy(()=>{try{return new Intl.Locale(o,e)}catch(t){return new Intl.Locale(LANGUAGE_DEFAULT,e)}})},NumberFormat(o,e){return new Lazy(()=>{try{return new Intl.NumberFormat(o,e)}catch(t){return new Intl.NumberFormat(void 0,e)}})}};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 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 r=toUint8(t);e>=0&&e<256?this._asciiMap[e]=r:this._map.set(e,r)}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 WordCharacterClassifier extends CharacterClassifier{constructor(e,t){super(0),this._segmenter=null,this._cachedLine=null,this._cachedSegments=[],this.intlSegmenterLocales=t,this.intlSegmenterLocales.length>0?this._segmenter=safeIntl.Segmenter(this.intlSegmenterLocales,{granularity:"word"}):this._segmenter=null;for(let r=0,s=e.length;r<s;r++)this.set(e.charCodeAt(r),2);this.set(32,1),this.set(9,1)}findPrevIntlWordBeforeOrAtOffset(e,t){let r=null;for(const s of this._getIntlSegmenterWordsOnLine(e)){if(s.index>t)break;r=s}return r}findNextIntlWordAtOrAfterOffset(e,t){for(const r of this._getIntlSegmenterWordsOnLine(e))if(!(r.index<t))return r;return null}_getIntlSegmenterWordsOnLine(e){return this._segmenter?this._cachedLine===e?this._cachedSegments:(this._cachedLine=e,this._cachedSegments=this._filterWordSegments(this._segmenter.value.segment(e)),this._cachedSegments):[]}_filterWordSegments(e){const t=[];for(const r of e)this._isWordLike(r)&&t.push(r);return t}_isWordLike(e){return!!e.isWordLike}}const wordClassifierCache=new LRUCache(10);function getMapForWordSeparators(o,e){const t="".concat(o,"/").concat(e.join(","));let r=wordClassifierCache.get(t);return r||(r=new WordCharacterClassifier(o,e),wordClassifierCache.set(t,r)),r}class WordOperations{static _createWord(e,t,r,s,a){return{start:s,end:a,wordType:t,nextCharClass:r}}static _createIntlWord(e,t){return{start:e.index,end:e.index+e.segment.length,wordType:1,nextCharClass:t}}static _findPreviousWordOnLine(e,t,r){const s=t.getLineContent(r.lineNumber);return this._doFindPreviousWordOnLine(s,e,r)}static _doFindPreviousWordOnLine(e,t,r){let s=0;const a=t.findPrevIntlWordBeforeOrAtOffset(e,r.column-2);for(let l=r.column-2;l>=0;l--){const c=e.charCodeAt(l),d=t.get(c);if(a&&l===a.index)return this._createIntlWord(a,d);if(d===0){if(s===2)return this._createWord(e,s,d,l+1,this._findEndOfWord(e,t,s,l+1));s=1}else if(d===2){if(s===1)return this._createWord(e,s,d,l+1,this._findEndOfWord(e,t,s,l+1));s=2}else if(d===1&&s!==0)return this._createWord(e,s,d,l+1,this._findEndOfWord(e,t,s,l+1))}return s!==0?this._createWord(e,s,1,0,this._findEndOfWord(e,t,s,0)):null}static _findEndOfWord(e,t,r,s){const a=t.findNextIntlWordAtOrAfterOffset(e,s),l=e.length;for(let c=s;c<l;c++){const d=e.charCodeAt(c),u=t.get(d);if(a&&c===a.index+a.segment.length||u===1||r===1&&u===2||r===2&&u===0)return c}return l}static _findNextWordOnLine(e,t,r){const s=t.getLineContent(r.lineNumber);return this._doFindNextWordOnLine(s,e,r)}static _doFindNextWordOnLine(e,t,r){let s=0;const a=e.length,l=t.findNextIntlWordAtOrAfterOffset(e,r.column-1);for(let c=r.column-1;c<a;c++){const d=e.charCodeAt(c),u=t.get(d);if(l&&c===l.index)return this._createIntlWord(l,u);if(u===0){if(s===2)return this._createWord(e,s,u,this._findStartOfWord(e,t,s,c-1),c);s=1}else if(u===2){if(s===1)return this._createWord(e,s,u,this._findStartOfWord(e,t,s,c-1),c);s=2}else if(u===1&&s!==0)return this._createWord(e,s,u,this._findStartOfWord(e,t,s,c-1),c)}return s!==0?this._createWord(e,s,1,this._findStartOfWord(e,t,s,a-1),a):null}static _findStartOfWord(e,t,r,s){const a=t.findPrevIntlWordBeforeOrAtOffset(e,s);for(let l=s;l>=0;l--){const c=e.charCodeAt(l),d=t.get(c);if(a&&l===a.index)return l;if(d===1||r===1&&d===2||r===2&&d===0)return l+1}return 0}static moveWordLeft(e,t,r,s,a){let l=r.lineNumber,c=r.column;c===1&&l>1&&(l=l-1,c=t.getLineMaxColumn(l));let d=WordOperations._findPreviousWordOnLine(e,t,new Position$1(l,c));if(s===0)return new Position$1(l,d?d.start+1:1);if(s===1)return!a&&d&&d.wordType===2&&d.end-d.start===1&&d.nextCharClass===0&&(d=WordOperations._findPreviousWordOnLine(e,t,new Position$1(l,d.start+1))),new Position$1(l,d?d.start+1:1);if(s===3){for(;d&&d.wordType===2;)d=WordOperations._findPreviousWordOnLine(e,t,new Position$1(l,d.start+1));return new Position$1(l,d?d.start+1:1)}return d&&c<=d.end+1&&(d=WordOperations._findPreviousWordOnLine(e,t,new Position$1(l,d.start+1))),new Position$1(l,d?d.end+1:1)}static _moveWordPartLeft(e,t){const r=t.lineNumber,s=e.getLineMaxColumn(r);if(t.column===1)return r>1?new Position$1(r-1,e.getLineMaxColumn(r-1)):t;const a=e.getLineContent(r);for(let l=t.column-1;l>1;l--){const c=a.charCodeAt(l-2),d=a.charCodeAt(l-1);if(c===95&&d!==95)return new Position$1(r,l);if(c===45&&d!==45)return new Position$1(r,l);if((isLowerAsciiLetter(c)||isAsciiDigit(c))&&isUpperAsciiLetter(d))return new Position$1(r,l);if(isUpperAsciiLetter(c)&&isUpperAsciiLetter(d)&&l+1<s){const u=a.charCodeAt(l);if(isLowerAsciiLetter(u)||isAsciiDigit(u))return new Position$1(r,l)}}return new Position$1(r,1)}static moveWordRight(e,t,r,s){let a=r.lineNumber,l=r.column,c=!1;l===t.getLineMaxColumn(a)&&a<t.getLineCount()&&(c=!0,a=a+1,l=1);let d=WordOperations._findNextWordOnLine(e,t,new Position$1(a,l));if(s===2)d&&d.wordType===2&&d.end-d.start===1&&d.nextCharClass===0&&(d=WordOperations._findNextWordOnLine(e,t,new Position$1(a,d.end+1))),d?l=d.end+1:l=t.getLineMaxColumn(a);else if(s===3){for(c&&(l=0);d&&(d.wordType===2||d.start+1<=l);)d=WordOperations._findNextWordOnLine(e,t,new Position$1(a,d.end+1));d?l=d.start+1:l=t.getLineMaxColumn(a)}else d&&!c&&l>=d.start+1&&(d=WordOperations._findNextWordOnLine(e,t,new Position$1(a,d.end+1))),d?l=d.start+1:l=t.getLineMaxColumn(a);return new Position$1(a,l)}static _moveWordPartRight(e,t){const r=t.lineNumber,s=e.getLineMaxColumn(r);if(t.column===s)return r<e.getLineCount()?new Position$1(r+1,1):t;const a=e.getLineContent(r);for(let l=t.column+1;l<s;l++){const c=a.charCodeAt(l-2),d=a.charCodeAt(l-1);if(c!==95&&d===95)return new Position$1(r,l);if(c!==45&&d===45)return new Position$1(r,l);if((isLowerAsciiLetter(c)||isAsciiDigit(c))&&isUpperAsciiLetter(d))return new Position$1(r,l);if(isUpperAsciiLetter(c)&&isUpperAsciiLetter(d)&&l+1<s){const u=a.charCodeAt(l);if(isLowerAsciiLetter(u)||isAsciiDigit(u))return new Position$1(r,l)}}return new Position$1(r,s)}static _deleteWordLeftWhitespace(e,t){const r=e.getLineContent(t.lineNumber),s=t.column-2,a=lastNonWhitespaceIndex(r,s);return a+1<s?new Range$2(t.lineNumber,a+2,t.lineNumber,t.column):null}static deleteWordLeft(e,t){const r=e.wordSeparators,s=e.model,a=e.selection,l=e.whitespaceHeuristics;if(!a.isEmpty())return a;if(DeleteOperations.isAutoClosingPairDelete(e.autoClosingDelete,e.autoClosingBrackets,e.autoClosingQuotes,e.autoClosingPairs.autoClosingPairsOpenByEnd,e.model,[e.selection],e.autoClosedCharacters)){const f=e.selection.getPosition();return new Range$2(f.lineNumber,f.column-1,f.lineNumber,f.column+1)}const c=new Position$1(a.positionLineNumber,a.positionColumn);let d=c.lineNumber,u=c.column;if(d===1&&u===1)return null;if(l){const f=this._deleteWordLeftWhitespace(s,c);if(f)return f}let g=WordOperations._findPreviousWordOnLine(r,s,c);return t===0?g?u=g.start+1:u>1?u=1:(d--,u=s.getLineMaxColumn(d)):(g&&u<=g.end+1&&(g=WordOperations._findPreviousWordOnLine(r,s,new Position$1(d,g.start+1))),g?u=g.end+1:u>1?u=1:(d--,u=s.getLineMaxColumn(d))),new Range$2(d,u,c.lineNumber,c.column)}static deleteInsideWord(e,t,r){if(!r.isEmpty())return r;const s=new Position$1(r.positionLineNumber,r.positionColumn),a=this._deleteInsideWordWhitespace(t,s);return a||this._deleteInsideWordDetermineDeleteRange(e,t,s)}static _charAtIsWhitespace(e,t){const r=e.charCodeAt(t);return r===32||r===9}static _deleteInsideWordWhitespace(e,t){const r=e.getLineContent(t.lineNumber),s=r.length;if(s===0)return null;let a=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(r,a))return null;let l=Math.min(t.column-1,s-1);if(!this._charAtIsWhitespace(r,l))return null;for(;a>0&&this._charAtIsWhitespace(r,a-1);)a--;for(;l+1<s&&this._charAtIsWhitespace(r,l+1);)l++;return new Range$2(t.lineNumber,a+1,t.lineNumber,l+2)}static _deleteInsideWordDetermineDeleteRange(e,t,r){const s=t.getLineContent(r.lineNumber),a=s.length;if(a===0)return r.lineNumber>1?new Range$2(r.lineNumber-1,t.getLineMaxColumn(r.lineNumber-1),r.lineNumber,1):r.lineNumber<t.getLineCount()?new Range$2(r.lineNumber,1,r.lineNumber+1,1):new Range$2(r.lineNumber,1,r.lineNumber,1);const l=f=>f.start+1<=r.column&&r.column<=f.end+1,c=(f,m)=>(f=Math.min(f,r.column),m=Math.max(m,r.column),new Range$2(r.lineNumber,f,r.lineNumber,m)),d=f=>{let m=f.start+1,_=f.end+1,v=!1;for(;_-1<a&&this._charAtIsWhitespace(s,_-1);)v=!0,_++;if(!v)for(;m>1&&this._charAtIsWhitespace(s,m-2);)m--;return c(m,_)},u=WordOperations._findPreviousWordOnLine(e,t,r);if(u&&l(u))return d(u);const g=WordOperations._findNextWordOnLine(e,t,r);return g&&l(g)?d(g):u&&g?c(u.end+1,g.start+1):u?c(u.start+1,u.end+1):g?c(g.start+1,g.end+1):c(1,a+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const r=t.getPosition(),s=WordOperations._moveWordPartLeft(e,r);return new Range$2(r.lineNumber,r.column,s.lineNumber,s.column)}static _findFirstNonWhitespaceChar(e,t){const r=e.length;for(let s=t;s<r;s++){const a=e.charAt(s);if(a!==" "&&a!==" ")return s}return r}static _deleteWordRightWhitespace(e,t){const r=e.getLineContent(t.lineNumber),s=t.column-1,a=this._findFirstNonWhitespaceChar(r,s);return s+1<a?new Range$2(t.lineNumber,t.column,t.lineNumber,a+1):null}static deleteWordRight(e,t){const r=e.wordSeparators,s=e.model,a=e.selection,l=e.whitespaceHeuristics;if(!a.isEmpty())return a;const c=new Position$1(a.positionLineNumber,a.positionColumn);let d=c.lineNumber,u=c.column;const g=s.getLineCount(),f=s.getLineMaxColumn(d);if(d===g&&u===f)return null;if(l){const _=this._deleteWordRightWhitespace(s,c);if(_)return _}let m=WordOperations._findNextWordOnLine(r,s,c);return t===2?m?u=m.end+1:u<f||d===g?u=f:(d++,m=WordOperations._findNextWordOnLine(r,s,new Position$1(d,1)),m?u=m.start+1:u=s.getLineMaxColumn(d)):(m&&u>=m.start+1&&(m=WordOperations._findNextWordOnLine(r,s,new Position$1(d,m.end+1))),m?u=m.start+1:u<f||d===g?u=f:(d++,m=WordOperations._findNextWordOnLine(r,s,new Position$1(d,1)),m?u=m.start+1:u=s.getLineMaxColumn(d))),new Range$2(d,u,c.lineNumber,c.column)}static _deleteWordPartRight(e,t){if(!t.isEmpty())return t;const r=t.getPosition(),s=WordOperations._moveWordPartRight(e,r);return new Range$2(r.lineNumber,r.column,s.lineNumber,s.column)}static _createWordAtPosition(e,t,r){const s=new Range$2(t,r.start+1,t,r.end+1);return{word:e.getValueInRange(s),startColumn:s.startColumn,endColumn:s.endColumn}}static getWordAtPosition(e,t,r,s){const a=getMapForWordSeparators(t,r),l=WordOperations._findPreviousWordOnLine(a,e,s);if(l&&l.wordType===1&&l.start<=s.column-1&&s.column-1<=l.end)return WordOperations._createWordAtPosition(e,s.lineNumber,l);const c=WordOperations._findNextWordOnLine(a,e,s);return c&&c.wordType===1&&c.start<=s.column-1&&s.column-1<=c.end?WordOperations._createWordAtPosition(e,s.lineNumber,c):null}static word(e,t,r,s,a){const l=getMapForWordSeparators(e.wordSeparators,e.wordSegmenterLocales),c=WordOperations._findPreviousWordOnLine(l,t,a),d=WordOperations._findNextWordOnLine(l,t,a);if(!s){let _,v;return c&&c.wordType===1&&c.start<=a.column-1&&a.column-1<=c.end||c&&c.wordType===2&&c.start<=a.column-1&&a.column-1<c.end?(_=c.start+1,v=c.end+1):d&&d.wordType===1&&d.start<=a.column-1&&a.column-1<=d.end||d&&d.wordType===2&&d.start<=a.column-1&&a.column-1<d.end?(_=d.start+1,v=d.end+1):(c?_=c.end+1:_=1,d?v=d.start+1:v=t.getLineMaxColumn(a.lineNumber)),new SingleCursorState(new Range$2(a.lineNumber,_,a.lineNumber,v),1,0,new Position$1(a.lineNumber,v),0)}let u,g;c&&c.wordType===1&&c.start<a.column-1&&a.column-1<c.end?(u=c.start+1,g=c.end+1):d&&d.wordType===1&&d.start<a.column-1&&a.column-1<d.end?(u=d.start+1,g=d.end+1):(u=a.column,g=a.column);const f=a.lineNumber;let m;if(r.selectionStart.containsPosition(a))m=r.selectionStart.endColumn;else if(a.isBeforeOrEqual(r.selectionStart.getStartPosition())){m=u;const _=new Position$1(f,m);r.selectionStart.containsPosition(_)&&(m=r.selectionStart.endColumn)}else{m=g;const _=new Position$1(f,m);r.selectionStart.containsPosition(_)&&(m=r.selectionStart.startColumn)}return r.move(!0,f,m,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,r,s){const a=enforceDefined([WordOperations.moveWordLeft(e,t,r,0,s),WordOperations.moveWordLeft(e,t,r,2,s),WordOperations._moveWordPartLeft(t,r)]);return a.sort(Position$1.compare),a[2]}static moveWordPartRight(e,t,r){const s=enforceDefined([WordOperations.moveWordRight(e,t,r,0),WordOperations.moveWordRight(e,t,r,2),WordOperations._moveWordPartRight(t,r)]);return s.sort(Position$1.compare),s[0]}}function enforceDefined(o){return o.filter(e=>!!e)}function deepClone(o){if(!o||typeof o!="object"||o instanceof RegExp)return o;const e=Array.isArray(o)?[]:{};return Object.entries(o).forEach(([t,r])=>{e[t]=r&&typeof r=="object"?deepClone(r):r}),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 r in t)if(_hasOwnProperty.call(t,r)){const s=t[r];typeof s=="object"&&!Object.isFrozen(s)&&!isTypedArray(s)&&e.push(s)}}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 r=e(o);if(typeof r<"u")return r;if(Array.isArray(o)){const s=[];for(const a of o)s.push(_cloneAndChange(a,e,t));return s}if(isObject$3(o)){if(t.has(o))throw new Error("Cannot clone recursive data-structure");t.add(o);const s={};for(const a in o)_hasOwnProperty.call(o,a)&&(s[a]=_cloneAndChange(o[a],e,t));return t.delete(o),s}return o}function mixin(o,e,t=!0){return isObject$3(o)?(isObject$3(e)&&Object.keys(e).forEach(r=>{r in o?t&&(isObject$3(o[r])&&isObject$3(e[r])?mixin(o[r],e[r],t):o[r]=e[r]):o[r]=e[r]}),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,r;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 s=[];for(r in o)s.push(r);s.sort();const a=[];for(r in e)a.push(r);if(a.sort(),!equals$1(s,a))return!1;for(t=0;t<s.length;t++)if(!equals$1(o[s[t]],e[s[t]]))return!1}return!0}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 GlyphMarginLane$1;(function(o){o[o.Left=1]="Left",o[o.Center=2]="Center",o[o.Right=3]="Right"})(GlyphMarginLane$1||(GlyphMarginLane$1={}));var TextDirection$1;(function(o){o[o.LTR=0]="LTR",o[o.RTL=1]="RTL"})(TextDirection$1||(TextDirection$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={}));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,r,s,a,l){this.identifier=e,this.range=t,this.text=r,this.forceMoveMarkers=s,this.isAutoWhitespaceEdit=a,this._isTracked=l}}class SearchData{constructor(e,t,r){this.regex=e,this.wordSeparators=t,this.simpleSearch=r}}class ApplyEditsResult{constructor(e,t,r){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=r}}function shouldSynchronizeModel(o){return!o.isTooLargeForSyncing()&&!o.isForSimpleWidget}class CursorMoveCommands{static addCursorDown(e,t,r){const s=[];let a=0;for(let l=0,c=t.length;l<c;l++){const d=t[l];s[a++]=new CursorState$1(d.modelState,d.viewState),r?s[a++]=CursorState$1.fromModelState(MoveOperations.translateDown(e.cursorConfig,e.model,d.modelState)):s[a++]=CursorState$1.fromViewState(MoveOperations.translateDown(e.cursorConfig,e,d.viewState))}return s}static addCursorUp(e,t,r){const s=[];let a=0;for(let l=0,c=t.length;l<c;l++){const d=t[l];s[a++]=new CursorState$1(d.modelState,d.viewState),r?s[a++]=CursorState$1.fromModelState(MoveOperations.translateUp(e.cursorConfig,e.model,d.modelState)):s[a++]=CursorState$1.fromViewState(MoveOperations.translateUp(e.cursorConfig,e,d.viewState))}return s}static moveToBeginningOfLine(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a];s[a]=this._moveToLineStart(e,c,r)}return s}static _moveToLineStart(e,t,r){const s=t.viewState.position.column,a=t.modelState.position.column,l=s===a,c=t.viewState.position.lineNumber,d=e.getLineFirstNonWhitespaceColumn(c);return!l&&!(s===d)?this._moveToLineStartByView(e,t,r):this._moveToLineStartByModel(e,t,r)}static _moveToLineStartByView(e,t,r){return CursorState$1.fromViewState(MoveOperations.moveToBeginningOfLine(e.cursorConfig,e,t.viewState,r))}static _moveToLineStartByModel(e,t,r){return CursorState$1.fromModelState(MoveOperations.moveToBeginningOfLine(e.cursorConfig,e.model,t.modelState,r))}static moveToEndOfLine(e,t,r,s){const a=[];for(let l=0,c=t.length;l<c;l++){const d=t[l];a[l]=this._moveToLineEnd(e,d,r,s)}return a}static _moveToLineEnd(e,t,r,s){const a=t.viewState.position,l=e.getLineMaxColumn(a.lineNumber),c=a.column===l,d=t.modelState.position,u=e.model.getLineMaxColumn(d.lineNumber),g=l-a.column===u-d.column;return c||g?this._moveToLineEndByModel(e,t,r,s):this._moveToLineEndByView(e,t,r,s)}static _moveToLineEndByView(e,t,r,s){return CursorState$1.fromViewState(MoveOperations.moveToEndOfLine(e.cursorConfig,e,t.viewState,r,s))}static _moveToLineEndByModel(e,t,r,s){return CursorState$1.fromModelState(MoveOperations.moveToEndOfLine(e.cursorConfig,e.model,t.modelState,r,s))}static expandLineSelection(e,t){const r=[];for(let s=0,a=t.length;s<a;s++){const l=t[s],c=l.modelState.selection.startLineNumber,d=e.model.getLineCount();let u=l.modelState.selection.endLineNumber,g;u===d?g=e.model.getLineMaxColumn(d):(u++,g=1),r[s]=CursorState$1.fromModelState(new SingleCursorState(new Range$2(c,1,c,1),0,0,new Position$1(u,g),0))}return r}static moveToBeginningOfBuffer(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a];s[a]=CursorState$1.fromModelState(MoveOperations.moveToBeginningOfBuffer(e.cursorConfig,e.model,c.modelState,r))}return s}static moveToEndOfBuffer(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a];s[a]=CursorState$1.fromModelState(MoveOperations.moveToEndOfBuffer(e.cursorConfig,e.model,c.modelState,r))}return s}static selectAll(e,t){const r=e.model.getLineCount(),s=e.model.getLineMaxColumn(r);return CursorState$1.fromModelState(new SingleCursorState(new Range$2(1,1,1,1),0,0,new Position$1(r,s),0))}static line(e,t,r,s,a){const l=e.model.validatePosition(s),c=a?e.coordinatesConverter.validateViewPosition(new Position$1(a.lineNumber,a.column),l):e.coordinatesConverter.convertModelPositionToViewPosition(l);if(!r){const u=e.model.getLineCount();let g=l.lineNumber+1,f=1;return g>u&&(g=u,f=e.model.getLineMaxColumn(g)),CursorState$1.fromModelState(new SingleCursorState(new Range$2(l.lineNumber,1,g,f),2,0,new Position$1(g,f),0))}const d=t.modelState.selectionStart.getStartPosition().lineNumber;if(l.lineNumber<d)return CursorState$1.fromViewState(t.viewState.move(!0,c.lineNumber,1,0));if(l.lineNumber>d){const u=e.getLineCount();let g=c.lineNumber+1,f=1;return g>u&&(g=u,f=e.getLineMaxColumn(g)),CursorState$1.fromViewState(t.viewState.move(!0,g,f,0))}else{const u=t.modelState.selectionStart.getEndPosition();return CursorState$1.fromModelState(t.modelState.move(!0,u.lineNumber,u.column,0))}}static word(e,t,r,s){const a=e.model.validatePosition(s);return CursorState$1.fromModelState(WordOperations.word(e.cursorConfig,e.model,t.modelState,r,a))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new CursorState$1(t.modelState,t.viewState);const r=t.viewState.position.lineNumber,s=t.viewState.position.column;return CursorState$1.fromViewState(new SingleCursorState(new Range$2(r,s,r,s),0,0,new Position$1(r,s),0))}static moveTo(e,t,r,s,a){if(r){if(t.modelState.selectionStartKind===1)return this.word(e,t,r,s);if(t.modelState.selectionStartKind===2)return this.line(e,t,r,s,a)}const l=e.model.validatePosition(s),c=a?e.coordinatesConverter.validateViewPosition(new Position$1(a.lineNumber,a.column),l):e.coordinatesConverter.convertModelPositionToViewPosition(l);return CursorState$1.fromViewState(t.viewState.move(r,c.lineNumber,c.column,0))}static simpleMove(e,t,r,s,a,l){switch(r){case 0:return l===4?this._moveHalfLineLeft(e,t,s):this._moveLeft(e,t,s,a);case 1:return l===4?this._moveHalfLineRight(e,t,s):this._moveRight(e,t,s,a);case 2:return l===2?this._moveUpByViewLines(e,t,s,a):this._moveUpByModelLines(e,t,s,a);case 3:return l===2?this._moveDownByViewLines(e,t,s,a):this._moveDownByModelLines(e,t,s,a);case 4:return l===2?t.map(c=>CursorState$1.fromViewState(MoveOperations.moveToPrevBlankLine(e.cursorConfig,e,c.viewState,s))):t.map(c=>CursorState$1.fromModelState(MoveOperations.moveToPrevBlankLine(e.cursorConfig,e.model,c.modelState,s)));case 5:return l===2?t.map(c=>CursorState$1.fromViewState(MoveOperations.moveToNextBlankLine(e.cursorConfig,e,c.viewState,s))):t.map(c=>CursorState$1.fromModelState(MoveOperations.moveToNextBlankLine(e.cursorConfig,e.model,c.modelState,s)));case 6:return this._moveToViewMinColumn(e,t,s);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,s);case 8:return this._moveToViewCenterColumn(e,t,s);case 9:return this._moveToViewMaxColumn(e,t,s);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,s);default:return null}}static viewportMove(e,t,r,s,a){const l=e.getCompletelyVisibleViewRange(),c=e.coordinatesConverter.convertViewRangeToModelRange(l);switch(r){case 11:{const d=this._firstLineNumberInRange(e.model,c,a),u=e.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(e,t[0],s,d,u)]}case 13:{const d=this._lastLineNumberInRange(e.model,c,a),u=e.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(e,t[0],s,d,u)]}case 12:{const d=Math.round((c.startLineNumber+c.endLineNumber)/2),u=e.model.getLineFirstNonWhitespaceColumn(d);return[this._moveToModelPosition(e,t[0],s,d,u)]}case 14:{const d=[];for(let u=0,g=t.length;u<g;u++){const f=t[u];d[u]=this.findPositionInViewportIfOutside(e,f,l,s)}return d}default:return null}}static findPositionInViewportIfOutside(e,t,r,s){const a=t.viewState.position.lineNumber;if(r.startLineNumber<=a&&a<=r.endLineNumber-1)return new CursorState$1(t.modelState,t.viewState);{let l;a>r.endLineNumber-1?l=r.endLineNumber-1:a<r.startLineNumber?l=r.startLineNumber:l=a;const c=MoveOperations.vertical(e.cursorConfig,e,a,t.viewState.position.column,t.viewState.leftoverVisibleColumns,l,!1);return CursorState$1.fromViewState(t.viewState.move(s,c.lineNumber,c.column,c.leftoverVisibleColumns))}}static _firstLineNumberInRange(e,t,r){let s=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(s)&&s++,Math.min(t.endLineNumber,s+r-1)}static _lastLineNumberInRange(e,t,r){let s=t.startLineNumber;return t.startColumn!==e.getLineMinColumn(s)&&s++,Math.max(s,t.endLineNumber-r+1)}static _moveLeft(e,t,r,s){return t.map(a=>{const c=e.getTextDirection(a.viewState.position.lineNumber)===TextDirection$1.RTL;return CursorState$1.fromViewState(c?MoveOperations.moveRight(e.cursorConfig,e,a.viewState,r,s):MoveOperations.moveLeft(e.cursorConfig,e,a.viewState,r,s))})}static _moveHalfLineLeft(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=c.viewState.position.lineNumber,u=Math.round(e.getLineLength(d)/2);s[a]=CursorState$1.fromViewState(MoveOperations.moveLeft(e.cursorConfig,e,c.viewState,r,u))}return s}static _moveRight(e,t,r,s){return t.map(a=>{const c=e.getTextDirection(a.viewState.position.lineNumber)===TextDirection$1.RTL;return CursorState$1.fromViewState(c?MoveOperations.moveLeft(e.cursorConfig,e,a.viewState,r,s):MoveOperations.moveRight(e.cursorConfig,e,a.viewState,r,s))})}static _moveHalfLineRight(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=c.viewState.position.lineNumber,u=Math.round(e.getLineLength(d)/2);s[a]=CursorState$1.fromViewState(MoveOperations.moveRight(e.cursorConfig,e,c.viewState,r,u))}return s}static _moveDownByViewLines(e,t,r,s){const a=[];for(let l=0,c=t.length;l<c;l++){const d=t[l];a[l]=CursorState$1.fromViewState(MoveOperations.moveDown(e.cursorConfig,e,d.viewState,r,s))}return a}static _moveDownByModelLines(e,t,r,s){const a=[];for(let l=0,c=t.length;l<c;l++){const d=t[l];a[l]=CursorState$1.fromModelState(MoveOperations.moveDown(e.cursorConfig,e.model,d.modelState,r,s))}return a}static _moveUpByViewLines(e,t,r,s){const a=[];for(let l=0,c=t.length;l<c;l++){const d=t[l];a[l]=CursorState$1.fromViewState(MoveOperations.moveUp(e.cursorConfig,e,d.viewState,r,s))}return a}static _moveUpByModelLines(e,t,r,s){const a=[];for(let l=0,c=t.length;l<c;l++){const d=t[l];a[l]=CursorState$1.fromModelState(MoveOperations.moveUp(e.cursorConfig,e.model,d.modelState,r,s))}return a}static _moveToViewPosition(e,t,r,s,a){return CursorState$1.fromViewState(t.viewState.move(r,s,a,0))}static _moveToModelPosition(e,t,r,s,a){return CursorState$1.fromModelState(t.modelState.move(r,s,a,0))}static _moveToViewMinColumn(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=c.viewState.position.lineNumber,u=e.getLineMinColumn(d);s[a]=this._moveToViewPosition(e,c,r,d,u)}return s}static _moveToViewFirstNonWhitespaceColumn(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=c.viewState.position.lineNumber,u=e.getLineFirstNonWhitespaceColumn(d);s[a]=this._moveToViewPosition(e,c,r,d,u)}return s}static _moveToViewCenterColumn(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=c.viewState.position.lineNumber,u=Math.round((e.getLineMaxColumn(d)+e.getLineMinColumn(d))/2);s[a]=this._moveToViewPosition(e,c,r,d,u)}return s}static _moveToViewMaxColumn(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=c.viewState.position.lineNumber,u=e.getLineMaxColumn(d);s[a]=this._moveToViewPosition(e,c,r,d,u)}return s}static _moveToViewLastNonWhitespaceColumn(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=c.viewState.position.lineNumber,u=e.getLineLastNonWhitespaceColumn(d);s[a]=this._moveToViewPosition(e,c,r,d,u)}return s}}var CursorMove;(function(o){const e=function(r){if(!isObject$3(r))return!1;const s=r;return!(!isString$2(s.to)||!isUndefined$2(s.select)&&!isBoolean(s.select)||!isUndefined$2(s.by)&&!isString$2(s.by)||!isUndefined$2(s.value)&&!isNumber$2(s.value)||!isUndefined$2(s.noHistory)&&!isBoolean(s.noHistory))};o.metadata={description:"Move cursor to a logical position in the view",args:[{name:"Cursor move argument object",description:"Property-value pairs that can be passed through this argument:\n * 'to': A mandatory logical position value providing where to move the cursor.\n ```\n 'left', 'right', 'up', 'down', 'prevBlankLine', 'nextBlankLine',\n 'wrappedLineStart', 'wrappedLineEnd', 'wrappedLineColumnCenter'\n 'wrappedLineFirstNonWhitespaceCharacter', 'wrappedLineLastNonWhitespaceCharacter'\n 'viewPortTop', 'viewPortCenter', 'viewPortBottom', 'viewPortIfOutside'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'character', 'halfLine'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'select': If 'true' makes the selection. Default is 'false'.\n * 'noHistory': If 'true' does not add the movement to navigation history. Default is 'false'.\n ",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},noHistory:{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(r){if(!r.to)return null;let s;switch(r.to){case o.RawDirection.Left:s=0;break;case o.RawDirection.Right:s=1;break;case o.RawDirection.Up:s=2;break;case o.RawDirection.Down:s=3;break;case o.RawDirection.PrevBlankLine:s=4;break;case o.RawDirection.NextBlankLine:s=5;break;case o.RawDirection.WrappedLineStart:s=6;break;case o.RawDirection.WrappedLineFirstNonWhitespaceCharacter:s=7;break;case o.RawDirection.WrappedLineColumnCenter:s=8;break;case o.RawDirection.WrappedLineEnd:s=9;break;case o.RawDirection.WrappedLineLastNonWhitespaceCharacter:s=10;break;case o.RawDirection.ViewPortTop:s=11;break;case o.RawDirection.ViewPortBottom:s=13;break;case o.RawDirection.ViewPortCenter:s=12;break;case o.RawDirection.ViewPortIfOutside:s=14;break;default:return null}let a=0;switch(r.by){case o.RawUnit.Line:a=1;break;case o.RawUnit.WrappedLine:a=2;break;case o.RawUnit.Character:a=3;break;case o.RawUnit.HalfLine:a=4;break}return{direction:s,unit:a,select:!!r.select,value:r.value||1,noHistory:!!r.noHistory}}o.parse=t})(CursorMove||(CursorMove={}));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={}));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,r=e.notIn.length;t<r;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 r=e.findTokenIndexAtOffset(t-2),s=e.getStandardTokenType(r);return this.isOK(s)}_findNeutralCharacterInRange(e,t){for(let r=e;r<=t;r++){const s=String.fromCharCode(r);if(!this.open.includes(s)&&!this.close.includes(s))return s}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])}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,r,s){if(e=ensureValidWordDefinition(e),s||(s=Iterable.first(_defaultConfig)),t.length>s.maxLen){let u=o-s.maxLen/2;return u<0?u=0:r+=u,t=t.substring(u,o+s.maxLen/2),getWordAtText(o,e,t,r,s)}const a=Date.now(),l=o-1-r;let c=-1,d=null;for(let u=1;!(Date.now()-a>=s.timeBudget);u++){const g=l-s.windowSize*u;e.lastIndex=Math.max(0,g);const f=_findRegexMatchEnclosingPosition(e,t,l,c);if(!f&&d||(d=f,g<=0))break;c=g}if(d){const u={word:d[0],startColumn:r+1+d.index,endColumn:r+1+d.index+d[0].length};return e.lastIndex=0,u}return null}function _findRegexMatchEnclosingPosition(o,e,t,r){let s;for(;s=o.exec(e);){const a=s.index||0;if(a<=t&&o.lastIndex>=t)return s;if(r>0&&a>r)return null}return null}const er=class er{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:er.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:er.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}};er.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=";:.,=}])> \n ",er.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS="'\"`;:.,=}])> \n ";let CharacterPairSupport=er,_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 r=new Uint16Array(o.buffer,e,t);return t>0&&(r[0]===65279||r[0]===65534)?compatDecodeUTF16LE(o,e,t):getUTF16LE_TextDecoder().decode(r)}function compatDecodeUTF16LE(o,e,t){const r=[];let s=0;for(let a=0;a<t;a++){const l=readUInt16LE(o,e);e+=2,r[s++]=String.fromCharCode(l)}return r.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 r=0;r<t;r++)this._buffer[this._bufferLength++]=e.charCodeAt(r)}}class RichEditBracket{constructor(e,t,r,s,a,l){this._richEditBracketBrand=void 0,this.languageId=e,this.index=t,this.open=r,this.close=s,this.forwardRegex=a,this.reversedRegex=l,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 r of e)t.add(r);return t}}function groupFuzzyBrackets(o){const e=o.length;o=o.map(l=>[l[0].toLowerCase(),l[1].toLowerCase()]);const t=[];for(let l=0;l<e;l++)t[l]=l;const r=(l,c)=>{const[d,u]=l,[g,f]=c;return d===g||d===f||u===g||u===f},s=(l,c)=>{const d=Math.min(l,c),u=Math.max(l,c);for(let g=0;g<e;g++)t[g]===u&&(t[g]=d)};for(let l=0;l<e;l++){const c=o[l];for(let d=l+1;d<e;d++){const u=o[d];r(c,u)&&s(t[l],t[d])}}const a=[];for(let l=0;l<e;l++){const c=[],d=[];for(let u=0;u<e;u++)if(t[u]===l){const[g,f]=o[u];c.push(g),d.push(f)}c.length>0&&a.push({open:c,close:d})}return a}class RichEditBrackets{constructor(e,t){this._richEditBracketsBrand=void 0;const r=groupFuzzyBrackets(t);this.brackets=r.map((s,a)=>new RichEditBracket(e,a,s.open,s.close,getRegexForBracketPair(s.open,s.close,r,a),getReversedRegexForBracketPair(s.open,s.close,r,a))),this.forwardRegex=getRegexForBrackets(this.brackets),this.reversedRegex=getReversedRegexForBrackets(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const s of this.brackets){for(const a of s.open)this.textIsBracket[a]=s,this.textIsOpenBracket[a]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,a.length);for(const a of s.close)this.textIsBracket[a]=s,this.textIsOpenBracket[a]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,a.length)}}}function collectSuperstrings(o,e,t,r){for(let s=0,a=e.length;s<a;s++){if(s===t)continue;const l=e[s];for(const c of l.open)c.indexOf(o)>=0&&r.push(c);for(const c of l.close)c.indexOf(o)>=0&&r.push(c)}}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 r of o)t.has(r)||(e.push(r),t.add(r));return e}function getRegexForBracketPair(o,e,t,r){let s=[];s=s.concat(o),s=s.concat(e);for(let a=0,l=s.length;a<l;a++)collectSuperstrings(s[a],t,r,s);return s=unique(s),s.sort(lengthcmp),s.reverse(),createBracketOrRegExp(s)}function getReversedRegexForBracketPair(o,e,t,r){let s=[];s=s.concat(o),s=s.concat(e);for(let a=0,l=s.length;a<l;a++)collectSuperstrings(s[a],t,r,s);return s=unique(s),s.sort(lengthcmp),s.reverse(),createBracketOrRegExp(s.map(toReversedString))}function getRegexForBrackets(o){let e=[];for(const t of o){for(const r of t.open)e.push(r);for(const r of t.close)e.push(r)}return e=unique(e),createBracketOrRegExp(e)}function getReversedRegexForBrackets(o){let e=[];for(const t of o){for(const r of t.open)e.push(r);for(const r of t.close)e.push(r)}return e=unique(e),createBracketOrRegExp(e.map(toReversedString))}function prepareBracketForRegExp$1(o){const e=/^[\w ]+$/.test(o);return o=escapeRegExpCharacters(o),e?"\\b".concat(o,"\\b"):o}function createBracketOrRegExp(o,e){const t="(".concat(o.map(prepareBracketForRegExp$1).join(")|("),")");return createRegExp(t,!0,e)}const toReversedString=(function(){function o(r){const s=new Uint16Array(r.length);let a=0;for(let l=r.length-1;l>=0;l--)s[a++]=r.charCodeAt(l);return getPlatformTextDecoder().decode(s)}let e=null,t=null;return function(s){return e!==s&&(e=s,t=o(e)),t}})();class BracketsUtils{static _findPrevBracketInText(e,t,r,s){const a=r.match(e);if(!a)return null;const l=r.length-(a.index||0),c=a[0].length,d=s+l;return new Range$2(t,d-c+1,t,d+1)}static findPrevBracketInRange(e,t,r,s,a){const c=toReversedString(r).substring(r.length-a,r.length-s);return this._findPrevBracketInText(e,t,c,s)}static findNextBracketInText(e,t,r,s){const a=r.match(e);if(!a)return null;const l=a.index||0,c=a[0].length;if(c===0)return null;const d=s+l;return new Range$2(t,d+1,t,d+1+c)}static findNextBracketInRange(e,t,r,s,a){const l=r.substring(s,a);return this.findNextBracketInText(e,t,l,s)}}class BracketElectricCharacterSupport{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const r of t.close){const s=r.charAt(r.length-1);e.push(s)}return distinct(e)}onElectricCharacter(e,t,r){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const s=t.findTokenIndexAtOffset(r-1);if(ignoreBracketsInToken(t.getStandardTokenType(s)))return null;const a=this._richEditBrackets.reversedRegex,l=t.getLineContent().substring(0,r-1)+e,c=BracketsUtils.findPrevBracketInRange(a,1,l,0,l.length);if(!c)return null;const d=l.substring(c.startColumn-1,c.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[d])return null;const g=t.getActualLineContentBefore(c.startColumn-1);return/^\s*$/.test(g)?{matchOpenBracket:d}: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 r=OnEnterSupport._createOpenBracketRegExp(t[0]),s=OnEnterSupport._createCloseBracketRegExp(t[1]);r&&s&&this._brackets.push({open:t[0],openRegExp:r,close:t[1],closeRegExp:s})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,r,s){if(e>=3)for(let a=0,l=this._regExpRules.length;a<l;a++){const c=this._regExpRules[a];if([{reg:c.beforeText,text:r},{reg:c.afterText,text:s},{reg:c.previousLineText,text:t}].every(u=>u.reg?(u.reg.lastIndex=0,u.reg.test(u.text)):!0))return c.action}if(e>=2&&r.length>0&&s.length>0)for(let a=0,l=this._brackets.length;a<l;a++){const c=this._brackets[a];if(c.openRegExp.test(r)&&c.closeRegExp.test(s))return{indentAction:IndentAction$1.IndentOutdent}}if(e>=2&&r.length>0){for(let a=0,l=this._brackets.length;a<l;a++)if(this._brackets[a].openRegExp.test(r))return{indentAction:IndentAction$1.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 r in o)addToValueTree(t,r,o[r],e);return t}function addToValueTree(o,e,t,r){const s=e.split("."),a=s.pop();let l=o;for(let c=0;c<s.length;c++){const d=s[c];let u=l[d];switch(typeof u){case"undefined":u=l[d]=Object.create(null);break;case"object":if(u===null){r("Ignoring ".concat(e," as ").concat(s.slice(0,c+1).join(".")," is null"));return}break;default:r("Ignoring ".concat(e," as ").concat(s.slice(0,c+1).join(".")," is ").concat(JSON.stringify(u)));return}l=u}if(typeof l=="object"&&l!==null)try{l[a]=t}catch(c){r("Ignoring ".concat(e," as ").concat(s.join(".")," is ").concat(JSON.stringify(l)))}else r("Ignoring ".concat(e," as ").concat(s.join(".")," is ").concat(JSON.stringify(l)))}function removeFromValueTree(o,e){const t=e.split(".");doRemoveFromValueTree(o,t)}function doRemoveFromValueTree(o,e){if(!o)return;const t=e.shift();if(e.length===0){delete o[t];return}if(Object.keys(o).indexOf(t)!==-1){const r=o[t];typeof r=="object"&&!Array.isArray(r)&&(doRemoveFromValueTree(r,e),Object.keys(r).length===0&&delete o[t])}}function getConfigurationValue(o,e,t){function r(l,c){let d=l;for(const u of c){if(typeof d!="object"||d===null)return;d=d[u]}return d}const s=e.split("."),a=r(o,s);return typeof a>"u"?t:a}function getLanguageTagSettingPlainKey(o){return o.replace(/^\[/,"").replace(/]$/g,"").replace(/\]\[/g,", ")}const ILanguageService=createDecorator("languageService");class SyncDescriptor{constructor(e,t=[],r=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=r}}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",html:"text/html"}),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 extends Disposable$1{constructor(){super(...arguments),this.schemasById={},this._onDidChangeSchema=this._register(new Emitter$1)}registerSchema(e,t,r){const s=normalizeId(e);this.schemasById[s]=t,this._onDidChangeSchema.fire(e),r&&r.add(toDisposable(()=>{delete this.schemasById[s],this._onDidChangeSchema.fire(e)}))}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}}const jsonContributionRegistry=new JSONContributionRegistry;Registry.add(Extensions$7.JSONContribution,jsonContributionRegistry);let product;const vscodeGlobal=globalThis.vscode;if(typeof vscodeGlobal<"u"&&typeof vscodeGlobal.context<"u"){const o=vscodeGlobal.context.configuration();if(o)product=o.product;else throw new Error("Sandbox: unable to resolve product configuration from preload script.")}else if(globalThis._VSCODE_PRODUCT_JSON&&globalThis._VSCODE_PACKAGE_JSON){if(product=globalThis._VSCODE_PRODUCT_JSON,env.VSCODE_DEV&&Object.assign(product,{nameShort:"".concat(product.nameShort," Dev"),nameLong:"".concat(product.nameLong," Dev"),dataFolderName:"".concat(product.dataFolderName,"-dev"),serverDataFolderName:product.serverDataFolderName?"".concat(product.serverDataFolderName,"-dev"):void 0}),!product.version){const o=globalThis._VSCODE_PACKAGE_JSON;Object.assign(product,{version:o.version})}}else product={},Object.keys(product).length===0&&Object.assign(product,{version:"1.104.0-dev",nameShort:"Code - OSS Dev",nameLong:"Code - OSS Dev",applicationName:"code-oss",dataFolderName:".vscode-oss",urlProtocol:"code-oss",reportIssueUrl:"https://github.com/microsoft/vscode/issues/new",licenseName:"MIT",licenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt",serverLicenseUrl:"https://github.com/microsoft/vscode/blob/main/LICENSE.txt"});var product$1=product;const Extensions$6={Configuration:"base.contributions.configuration"},resourceLanguageSettingsSchemaId="vscode://schemas/settings/resourceLanguage",contributionRegistry=Registry.as(Extensions$7.JSONContribution);class ConfigurationRegistry extends Disposable$1{constructor(){super(),this.registeredConfigurationDefaults=[],this.overrideIdentifiers=new Set,this._onDidSchemaChange=this._register(new Emitter$1),this._onDidUpdateConfiguration=this._register(new Emitter$1),this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:localize(1664,"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){return this.registerConfigurations([e],t),e}registerConfigurations(e,t=!0){const r=new Set;this.doRegisterConfigurations(e,t,r),contributionRegistry.registerSchema(resourceLanguageSettingsSchemaId,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:r})}registerDefaultConfigurations(e){const t=new Set;this.doRegisterDefaultConfigurations(e,t),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,t){var s;this.registeredConfigurationDefaults.push(...e);const r=[];for(const{overrides:a,source:l}of e)for(const c in a){t.add(c);const d=(s=this.configurationDefaultsOverrides.get(c))!=null?s:this.configurationDefaultsOverrides.set(c,{configurationDefaultOverrides:[]}).get(c),u=a[c];if(d.configurationDefaultOverrides.push({value:u,source:l}),OVERRIDE_PROPERTY_REGEX.test(c)){const g=this.mergeDefaultConfigurationsForOverrideIdentifier(c,u,l,d.configurationDefaultOverrideValue);if(!g)continue;d.configurationDefaultOverrideValue=g,this.updateDefaultOverrideProperty(c,g,l),r.push(...overrideIdentifiersFromKey(c))}else{const g=this.mergeDefaultConfigurationsForConfigurationProperty(c,u,l,d.configurationDefaultOverrideValue);if(!g)continue;d.configurationDefaultOverrideValue=g;const f=this.configurationProperties[c];f&&(this.updatePropertyDefaultValue(c,f),this.updateSchema(c,f))}}this.doRegisterOverrideIdentifiers(r)}updateDefaultOverrideProperty(e,t,r){const s={section:{id:this.defaultLanguageConfigurationOverridesNode.id,title:this.defaultLanguageConfigurationOverridesNode.title,order:this.defaultLanguageConfigurationOverridesNode.order,extensionInfo:this.defaultLanguageConfigurationOverridesNode.extensionInfo},type:"object",default:t.value,description:localize(1665,"Configure settings to be overridden for {0}.",getLanguageTagSettingPlainKey(e)),$ref:resourceLanguageSettingsSchemaId,defaultDefaultValue:t.value,source:r,defaultValueSource:r};this.configurationProperties[e]=s,this.defaultLanguageConfigurationOverridesNode.properties[e]=s}mergeDefaultConfigurationsForOverrideIdentifier(e,t,r,s){var c,d;const a=(s==null?void 0:s.value)||{},l=(c=s==null?void 0:s.source)!=null?c:new Map;if(!(l instanceof Map)){console.error("objectConfigurationSources is not a Map");return}for(const u of Object.keys(t)){const g=t[u];if(isObject$3(g)&&(isUndefined$2(a[u])||isObject$3(a[u]))){if(a[u]={...(d=a[u])!=null?d:{},...g},r)for(const m in g)l.set("".concat(u,".").concat(m),r)}else a[u]=g,r?l.set(u,r):l.delete(u)}return{value:a,source:l}}mergeDefaultConfigurationsForConfigurationProperty(e,t,r,s){var u,g;const a=this.configurationProperties[e],l=(u=s==null?void 0:s.value)!=null?u:a==null?void 0:a.defaultDefaultValue;let c=r;if(isObject$3(t)&&(a!==void 0&&a.type==="object"||a===void 0&&(isUndefined$2(l)||isObject$3(l)))){if(c=(g=s==null?void 0:s.source)!=null?g:new Map,!(c instanceof Map)){console.error("defaultValueSource is not a Map");return}for(const f in t)r&&c.set("".concat(e,".").concat(f),r);t={...isObject$3(l)?l:{},...t}}return{value:t,source:c}}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t,r){e.forEach(s=>{this.validateAndRegisterProperties(s,t,s.extensionInfo,s.restrictedProperties,void 0,r),this.configurationContributors.push(s),this.registerJSONConfiguration(s)})}validateAndRegisterProperties(e,t=!0,r,s,a=4,l){var u,g,f,m;a=isUndefinedOrNull(e.scope)?a:e.scope;const c=e.properties;if(c)for(const _ in c){const v=c[_];if(v.section={id:e.id,title:e.title,order:e.order,extensionInfo:e.extensionInfo},t&&validateProperty(_,v,r==null?void 0:r.id)){delete c[_];continue}v.source=r,v.defaultDefaultValue=c[_].default,this.updatePropertyDefaultValue(_,v),OVERRIDE_PROPERTY_REGEX.test(_)?v.scope=void 0:(v.scope=isUndefinedOrNull(v.scope)?a:v.scope,v.restricted=isUndefinedOrNull(v.restricted)?!!(s!=null&&s.includes(_)):v.restricted),v.experiment?(u=v.tags)!=null&&u.some(y=>y.toLowerCase()==="onexp")||(v.tags=(g=v.tags)!=null?g:[],v.tags.push("onExP")):(f=v.tags)!=null&&f.some(y=>y.toLowerCase()==="onexp")&&(console.error("Invalid tag 'onExP' found for property '".concat(_,"'. Please use 'experiment' property instead.")),v.experiment={mode:"startup"});const b=c[_].hasOwnProperty("included")&&!c[_].included,C=(m=c[_].policy)==null?void 0:m.name;b?(this.excludedConfigurationProperties[_]=c[_],C&&(this.policyConfigurations.set(C,_),l.add(_)),delete c[_]):(l.add(_),C&&this.policyConfigurations.set(C,_),this.configurationProperties[_]=c[_],!c[_].deprecationMessage&&c[_].markdownDeprecationMessage&&(c[_].deprecationMessage=c[_].markdownDeprecationMessage))}const d=e.allOf;if(d)for(const _ of d)this.validateAndRegisterProperties(_,t,r,s,a,l)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}getExcludedConfigurationProperties(){return this.excludedConfigurationProperties}registerJSONConfiguration(e){const t=r=>{const s=r.properties;if(s)for(const l in s)this.updateSchema(l,s[l]);const a=r.allOf;a==null||a.forEach(t)};t(e)}updateSchema(e,t){switch(t.scope){case 1:break;case 2:break;case 3:break;case 7:break;case 4:break;case 5:break;case 6:this.resourceLanguageSettingsSchema.properties[e]=t;break}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t="[".concat(e,"]"),r={type:"object",description:localize(1666,"Configure editor settings to be overridden for a language."),errorMessage:localize(1667,"This setting does not support per-language configuration."),$ref:resourceLanguageSettingsSchemaId};this.updatePropertyDefaultValue(t,r)}}registerOverridePropertyPatternKey(){localize(1668,"Configure editor settings to be overridden for a language."),localize(1669,"This setting does not support per-language configuration."),this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){var l;const r=(l=this.configurationDefaultsOverrides.get(e))==null?void 0:l.configurationDefaultOverrideValue;let s,a;r&&(!t.disallowConfigurationDefault||!r.source)&&(s=r.value,a=r.source),isUndefined$2(s)&&(s=t.defaultDefaultValue,a=void 0),isUndefined$2(s)&&(s=getDefaultValue(t.type)),t.default=s,t.defaultValueSource=a}}const OVERRIDE_IDENTIFIER_PATTERN="\\[([^\\]]+)\\]",OVERRIDE_IDENTIFIER_REGEX=new RegExp(OVERRIDE_IDENTIFIER_PATTERN,"g"),OVERRIDE_PROPERTY_PATTERN="^(".concat(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 r=t[1].trim();r&&e.push(r),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,t){var r,s,a,l;return o.trim()?OVERRIDE_PROPERTY_REGEX.test(o)?localize(1671,"Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",o):configurationRegistry$2.getConfigurationProperties()[o]!==void 0&&(!t||!EXTENSION_UNIFICATION_EXTENSION_IDS.has(t.toLowerCase()))?localize(1672,"Cannot register '{0}'. This property is already registered.",o):(r=e.policy)!=null&&r.name&&configurationRegistry$2.getPolicyConfigurations().get((s=e.policy)==null?void 0:s.name)!==void 0?localize(1673,"Cannot register '{0}'. The associated policy {1} is already registered with {2}.",o,(a=e.policy)==null?void 0:a.name,configurationRegistry$2.getPolicyConfigurations().get((l=e.policy)==null?void 0:l.name)):null:localize(1670,"Cannot register an empty property")}const EXTENSION_UNIFICATION_EXTENSION_IDS=new Set(product$1.defaultChatAgent?[product$1.defaultChatAgent.extensionId,product$1.defaultChatAgent.chatExtensionId].map(o=>o.toLowerCase()):[]),Extensions$5={ModesRegistry:"editor.modesRegistry"};class EditorModesRegistry extends Disposable$1{constructor(){super(),this._onDidChangeLanguages=this._register(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,r=this._languages.length;t<r;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(784,"Plain Text"),"text"],mimetypes:[Mimes.text]});Registry.as(Extensions$6.Configuration).registerDefaultConfigurations([{overrides:{"[plaintext]":{"editor.unicodeHighlight.ambiguousCharacters":!1,"editor.unicodeHighlight.invisibleCharacters":!1},"[go]":{"editor.insertSpaces":!1},"[makefile]":{"editor.insertSpaces":!1},"[shellscript]":{"files.eol":"\n"},"[yaml]":{"editor.insertSpaces":!0,"editor.tabSize":2}}}]);class LanguageBracketsConfiguration{constructor(e,t){this.languageId=e;const r=t.brackets?filterValidBrackets(t.brackets):[],s=new CachedFunction(c=>{const d=new Set;return{info:new OpeningBracketKind(this,c,d),closing:d}}),a=new CachedFunction(c=>{const d=new Set,u=new Set;return{info:new ClosingBracketKind(this,c,d,u),opening:d,openingColorized:u}});for(const[c,d]of r){const u=s.get(c),g=a.get(d);u.closing.add(g.info),g.opening.add(u.info)}const l=t.colorizedBracketPairs?filterValidBrackets(t.colorizedBracketPairs):r.filter(c=>!(c[0]==="<"&&c[1]===">"));for(const[c,d]of l){const u=s.get(c),g=a.get(d);u.closing.add(g.info),g.openingColorized.add(u.info),g.opening.add(u.info)}this._openingBrackets=new Map([...s.cachedValues].map(([c,d])=>[c,d.info])),this._closingBrackets=new Map([...a.cachedValues].map(([c,d])=>[c,d.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)}getBracketRegExp(e){const t=Array.from([...this._openingBrackets.keys(),...this._closingBrackets.keys()]);return createBracketOrRegExp(t,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,r){super(e,t),this.openedBrackets=r,this.isOpeningBracket=!0}}class ClosingBracketKind extends BracketKindBase{constructor(e,t,r,s){super(e,t),this.openingBrackets=r,this.openingColorizedBrackets=s,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$3a=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2$=function(o,e){return function(t,r){e(t,r,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$1{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 r=new Set(Object.values(customizedLanguageConfigKeys));this._register(this.configurationService.onDidChangeConfiguration(s=>{const a=s.change.keys.some(c=>r.has(c)),l=s.change.overrides.filter(([c,d])=>d.some(u=>r.has(u))).map(([c])=>c);if(a)this.configurations.clear(),this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(void 0));else for(const c of l)this.languageService.isRegisteredLanguageId(c)&&(this.configurations.delete(c),this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(c)))})),this._register(this._registry.onDidChange(s=>{this.configurations.delete(s.languageId),this.onDidChangeEmitter.fire(new LanguageConfigurationServiceChangeEvent(s.languageId))}))}register(e,t,r){return this._registry.register(e,t,r)}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$3a([__param$2$(0,IConfigurationService),__param$2$(1,ILanguageService)],LanguageConfigurationService);function computeConfig(o,e,t,r){let s=e.getLanguageConfiguration(o);if(!s){if(!r.isRegisteredLanguageId(o))return new ResolvedLanguageConfiguration(o,{});s=new ResolvedLanguageConfiguration(o,{})}const a=getCustomizedLanguageConfig(s.languageId,t),l=combineLanguageConfigurations([s.underlyingConfig,a]);return new ResolvedLanguageConfiguration(s.languageId,l)}const customizedLanguageConfigKeys={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function getCustomizedLanguageConfig(o,e){const t=e.getValue(customizedLanguageConfigKeys.brackets,{overrideIdentifier:o}),r=e.getValue(customizedLanguageConfigKeys.colorizedBracketPairs,{overrideIdentifier:o});return{brackets:validateBracketPairs(t),colorizedBracketPairs:validateBracketPairs(r)}}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 r=o.getLineContent(e);let s=getLeadingWhitespace(r);return s.length>t-1&&(s=s.substring(0,t-1)),s}class ComposedLanguageConfiguration{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const r=new LanguageConfigurationContribution(e,t,++this._order);return this._entries.push(r),this._resolved=null,toDisposable(()=>{for(let s=0;s<this._entries.length;s++)if(this._entries[s]===r){this._entries.splice(s,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,r){this.configuration=e,this.priority=t,this.order=r}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$1{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,r=0){let s=this._entries.get(e);s||(s=new ComposedLanguageConfiguration(e),this._entries.set(e,s));const a=s.register(t,r);return this._onDidChange.fire(new LanguageConfigurationChangeEvent(e)),toDisposable(()=>{a.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,r,s){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,r,s):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 r={};if(t.lineComment&&(typeof t.lineComment=="string"?r.lineCommentToken=t.lineComment:(r.lineCommentToken=t.lineComment.comment,r.lineCommentNoIndent=t.lineComment.noIndent)),t.blockComment){const[s,a]=t.blockComment;r.blockCommentStartToken=s,r.blockCommentEndToken=a}return r}}registerSingleton(ILanguageConfigurationService,LanguageConfigurationService,1);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 r="mtk"+this.getForeground(e);const s=this.getFontStyle(e);return s&1&&(r+=" mtki"),s&2&&(r+=" mtkb"),s&4&&(r+=" mtku"),s&8&&(r+=" mtks"),r}static getInlineStyleFromMetadata(e,t){const r=this.getForeground(e),s=this.getFontStyle(e);let a="color: ".concat(t[r],";");s&1&&(a+="font-style: italic;"),s&2&&(a+="font-weight: bold;");let l="";return s&4&&(l+=" underline"),s&8&&(l+=" line-through"),l&&(a+="text-decoration:".concat(l,";")),a}static getPresentationFromMetadata(e){const t=this.getForeground(e),r=this.getFontStyle(e);return{foreground:t,italic:!!(r&1),bold:!!(r&2),underline:!!(r&4),strikethrough:!!(r&8)}}}class OffsetRange{static fromTo(e,t){return new OffsetRange(e,t)}static addRange(e,t){let r=0;for(;r<t.length&&t[r].endExclusive<e.start;)r++;let s=r;for(;s<t.length&&t[s].start<=e.endExclusive;)s++;if(r===s)t.splice(r,0,e);else{const a=Math.min(e.start,t[r].start),l=Math.max(e.endExclusive,t[s-1].endExclusive);t.splice(r,s-r,new OffsetRange(a,l))}}static tryCreate(e,t){if(!(e>t))return new OffsetRange(e,t)}static ofLength(e){return new OffsetRange(0,e)}static ofStartAndLength(e,t){return new OffsetRange(e,e+t)}static emptyAt(e){return new OffsetRange(e,e)}constructor(e,t){if(this.start=e,this.endExclusive=t,e>t)throw new BugIndicatingError("Invalid range: ".concat(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"[".concat(this.start,", ").concat(this.endExclusive,")")}equals(e){return this.start===e.start&&this.endExclusive===e.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),r=Math.min(this.endExclusive,e.endExclusive);if(t<=r)return new OffsetRange(t,r)}intersectionLength(e){const t=Math.max(this.start,e.start),r=Math.min(this.endExclusive,e.endExclusive);return Math.max(0,r-t)}intersects(e){const t=Math.max(this.start,e.start),r=Math.min(this.endExclusive,e.endExclusive);return t<r}intersectsOrTouches(e){const t=Math.max(this.start,e.start),r=Math.min(this.endExclusive,e.endExclusive);return t<=r}isBefore(e){return this.endExclusive<=e.start}isAfter(e){return this.start>=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}substring(e){return e.substring(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new BugIndicatingError("Invalid clipping range: ".concat(this.toString()));return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new BugIndicatingError("Invalid clipping range: ".concat(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)}joinRightTouching(e){if(this.endExclusive!==e.start)throw new BugIndicatingError("Invalid join: ".concat(this.toString()," and ").concat(e.toString()));return new OffsetRange(this.start,e.endExclusive)}}class OffsetRangeSet{constructor(){this._sortedRanges=[]}addRange(e){let t=0;for(;t<this._sortedRanges.length&&this._sortedRanges[t].endExclusive<e.start;)t++;let r=t;for(;r<this._sortedRanges.length&&this._sortedRanges[r].start<=e.endExclusive;)r++;if(t===r)this._sortedRanges.splice(t,0,e);else{const s=Math.min(e.start,this._sortedRanges[t].start),a=Math.max(e.endExclusive,this._sortedRanges[r-1].endExclusive);this._sortedRanges.splice(t,r-t,new OffsetRange(s,a))}}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 r of this._sortedRanges){const s=r.intersect(e);s&&t.addRange(s)}return t}intersectWithRangeLength(e){return this.intersectWithRange(e).length}get length(){return this._sortedRanges.reduce((e,t)=>e+t.length,0)}}const qt=class qt{static createEmpty(e,t){const r=qt.defaultTokenMetadata,s=new Uint32Array(2);return s[0]=e.length,s[1]=r,new qt(s,e,t)}static createFromTextAndMetadata(e,t){let r=0,s="";const a=new Array;for(const{text:l,metadata:c}of e)a.push(r+l.length,c),r+=l.length,s+=l;return new qt(new Uint32Array(a),s,t)}static convertToEndOffset(e,t){const s=(e.length>>>1)-1;for(let a=0;a<s;a++)e[a<<1]=e[a+1<<1];e[s<<1]=t}static findIndexInTokensArray(e,t){if(e.length<=2)return 0;let r=0,s=(e.length>>>1)-1;for(;r<s;){const a=r+Math.floor((s-r)/2),l=e[a<<1];if(l===t)return a+1;l<t?r=a+1:l>t&&(s=a)}return r}constructor(e,t,r){this._lineTokensBrand=void 0,(e.length>1?e[e.length-2]:0)!==t.length&&onUnexpectedError(new Error("Token length and text length do not match!")),this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this.languageIdCodec=r}getTextLength(){return this._text.length}equals(e){return e instanceof qt?this.slicedEquals(e,0,this._tokensCount):!1}slicedEquals(e,t,r){if(this._text!==e._text||this._tokensCount!==e._tokensCount)return!1;const s=t<<1,a=s+(r<<1);for(let l=s;l<a;l++)if(this._tokens[l]!==e._tokens[l])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],r=TokenMetadata.getLanguageId(t);return this.languageIdCodec.decodeLanguageId(r)}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 r=this._tokens[(e<<1)+1];return TokenMetadata.getInlineStyleFromMetadata(r,t)}getPresentation(e){const t=this._tokens[(e<<1)+1];return TokenMetadata.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return qt.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,r){return new SliceLineTokens(this,e,t,r)}sliceZeroCopy(e){return this.sliceAndInflate(e.start,e.endExclusive,0)}withInserted(e){if(e.length===0)return this;let t=0,r=0,s="";const a=new Array;let l=0;for(;;){const c=t<this._tokensCount?this._tokens[t<<1]:-1,d=r<e.length?e[r]:null;if(c!==-1&&(d===null||c<=d.offset)){s+=this._text.substring(l,c);const u=this._tokens[(t<<1)+1];a.push(s.length,u),t++,l=c}else if(d){if(d.offset>l){s+=this._text.substring(l,d.offset);const u=this._tokens[(t<<1)+1];a.push(s.length,u),l=d.offset}s+=d.text,a.push(s.length,d.tokenMetadata),r++}else break}return new qt(new Uint32Array(a),s,this.languageIdCodec)}getTokensInRange(e){const t=new TokenArrayBuilder,r=this.findTokenIndexAtOffset(e.start),s=this.findTokenIndexAtOffset(e.endExclusive);for(let a=r;a<=s;a++){const c=new OffsetRange(this.getStartOffset(a),this.getEndOffset(a)).intersectionLength(e);c>0&&t.add(c,this.getMetadata(a))}return t.build()}getTokenText(e){const t=this.getStartOffset(e),r=this.getEndOffset(e);return this._text.substring(t,r)}forEach(e){const t=this.getCount();for(let r=0;r<t;r++)e(r)}toString(){let e="";return this.forEach(t=>{e+="[".concat(this.getTokenText(t),"]{").concat(this.getClassName(t),"}")}),e}};qt.defaultTokenMetadata=(32768|2<<24)>>>0;let LineTokens=qt;class SliceLineTokens{constructor(e,t,r,s){this._source=e,this._startOffset=t,this._endOffset=r,this._deltaOffset=s,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this.languageIdCodec=e.languageIdCodec,this._tokensCount=0;for(let a=this._firstTokenIndex,l=e.getCount();a<l&&!(e.getStartOffset(a)>=r);a++)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}getStandardTokenType(e){return this._source.getStandardTokenType(this._firstTokenIndex+e)}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}getTokenText(e){const t=this._firstTokenIndex+e,r=this._source.getStartOffset(t),s=this._source.getEndOffset(t);let a=this._source.getTokenText(t);return r<this._startOffset&&(a=a.substring(this._startOffset-r)),s>this._endOffset&&(a=a.substring(0,a.length-(s-this._endOffset))),a}forEach(e){for(let t=0;t<this.getCount();t++)e(t)}}function getStandardTokenTypeAtPosition(o,e){const t=e.lineNumber;if(!o.tokenization.isCheapToTokenize(t))return;o.tokenization.forceTokenization(t);const r=o.tokenization.getLineTokens(t),s=r.findTokenIndexAtOffset(e.column-1);return r.getStandardTokenType(s)}class TokenArray{static fromLineTokens(e){const t=[];for(let r=0;r<e.getCount();r++)t.push(new TokenInfo(e.getEndOffset(r)-e.getStartOffset(r),e.getMetadata(r)));return TokenArray.create(t)}static create(e){return new TokenArray(e)}constructor(e){this._tokenInfo=e}toLineTokens(e,t){return LineTokens.createFromTextAndMetadata(this.map((r,s)=>({text:r.substring(e),metadata:s.metadata})),t)}forEach(e){let t=0;for(const r of this._tokenInfo){const s=new OffsetRange(t,t+r.length);e(s,r),t+=r.length}}map(e){const t=[];let r=0;for(const s of this._tokenInfo){const a=new OffsetRange(r,r+s.length);t.push(e(a,s)),r+=s.length}return t}slice(e){const t=[];let r=0;for(const s of this._tokenInfo){const a=r,l=a+s.length;if(l>e.start){if(a>=e.endExclusive)break;const c=Math.max(0,e.start-a),d=Math.max(0,l-e.endExclusive);t.push(new TokenInfo(s.length-c-d,s.metadata))}r+=s.length}return TokenArray.create(t)}}class TokenInfo{constructor(e,t){this.length=e,this.metadata=t}}class TokenArrayBuilder{constructor(){this._tokens=[]}add(e,t){this._tokens.push(new TokenInfo(e,t))}build(){return TokenArray.create(this._tokens)}}class ProcessedIndentRulesSupport{constructor(e,t,r){this._indentRulesSupport=t,this._indentationLineProcessor=new IndentationLineProcessor(e,r)}shouldIncrease(e,t){const r=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIncrease(r)}shouldDecrease(e,t){const r=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldDecrease(r)}shouldIgnore(e,t){const r=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIgnore(r)}shouldIndentNextLine(e,t){const r=this._indentationLineProcessor.getProcessedLine(e,t);return this._indentRulesSupport.shouldIndentNextLine(r)}}class IndentationContextProcessor{constructor(e,t){this.model=e,this.indentationLineProcessor=new IndentationLineProcessor(e,t)}getProcessedTokenContextAroundRange(e){const t=this._getProcessedTokensBeforeRange(e),r=this._getProcessedTokensAfterRange(e),s=this._getProcessedPreviousLineTokens(e);return{beforeRangeProcessedTokens:t,afterRangeProcessedTokens:r,previousLineProcessedTokens:s}}_getProcessedTokensBeforeRange(e){this.model.tokenization.forceTokenization(e.startLineNumber);const t=this.model.tokenization.getLineTokens(e.startLineNumber),r=createScopedLineTokens(t,e.startColumn-1);let s;if(isLanguageDifferentFromLineStart(this.model,e.getStartPosition())){const l=e.startColumn-1-r.firstCharOffset,c=r.firstCharOffset,d=c+l;s=t.sliceAndInflate(c,d,0)}else{const l=e.startColumn-1;s=t.sliceAndInflate(0,l,0)}return this.indentationLineProcessor.getProcessedTokens(s)}_getProcessedTokensAfterRange(e){const t=e.isEmpty()?e.getStartPosition():e.getEndPosition();this.model.tokenization.forceTokenization(t.lineNumber);const r=this.model.tokenization.getLineTokens(t.lineNumber),s=createScopedLineTokens(r,t.column-1),a=t.column-1-s.firstCharOffset,l=s.firstCharOffset+a,c=s.firstCharOffset+s.getLineLength(),d=r.sliceAndInflate(l,c,0);return this.indentationLineProcessor.getProcessedTokens(d)}_getProcessedPreviousLineTokens(e){const t=_=>{this.model.tokenization.forceTokenization(_);const v=this.model.tokenization.getLineTokens(_),b=this.model.getLineMaxColumn(_)-1;return createScopedLineTokens(v,b)};this.model.tokenization.forceTokenization(e.startLineNumber);const r=this.model.tokenization.getLineTokens(e.startLineNumber),s=createScopedLineTokens(r,e.startColumn-1),a=LineTokens.createEmpty("",s.languageIdCodec),l=e.startLineNumber-1;if(l===0||!(s.firstCharOffset===0))return a;const u=t(l);if(!(s.languageId===u.languageId))return a;const f=u.toIViewLineTokens();return this.indentationLineProcessor.getProcessedTokens(f)}}class IndentationLineProcessor{constructor(e,t){this.model=e,this.languageConfigurationService=t}getProcessedLine(e,t){var l,c;const r=(d,u)=>{const g=getLeadingWhitespace(d);return u+d.substring(g.length)};(c=(l=this.model.tokenization).forceTokenization)==null||c.call(l,e);const s=this.model.tokenization.getLineTokens(e);let a=this.getProcessedTokens(s).getLineContent();return t!==void 0&&(a=r(a,t)),a}getProcessedTokens(e){const t=d=>d===2||d===3||d===1,r=e.getLanguageId(0),a=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew.getBracketRegExp({global:!0}),l=[];return e.forEach(d=>{const u=e.getStandardTokenType(d);let g=e.getTokenText(d);t(u)&&(g=g.replace(a,""));const f=e.getMetadata(d);l.push({text:g,metadata:f})}),LineTokens.createFromTextAndMetadata(l,e.languageIdCodec)}}function isLanguageDifferentFromLineStart(o,e){o.tokenization.forceTokenization(e.lineNumber);const t=o.tokenization.getLineTokens(e.lineNumber),r=createScopedLineTokens(t,e.column-1),s=r.firstCharOffset===0,a=t.getLanguageId(0)===r.languageId;return!s&&!a}function getEnterAction(o,e,t,r){e.tokenization.forceTokenization(t.startLineNumber);const s=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),a=r.getLanguageConfiguration(s);if(!a)return null;const c=new IndentationContextProcessor(e,r).getProcessedTokenContextAroundRange(t),d=c.previousLineProcessedTokens.getLineContent(),u=c.beforeRangeProcessedTokens.getLineContent(),g=c.afterRangeProcessedTokens.getLineContent(),f=a.onEnter(o,d,u,g);if(!f)return null;const m=f.indentAction;let _=f.appendText;const v=f.removeText||0;_?m===IndentAction$1.Indent&&(_=" "+_):m===IndentAction$1.Indent||m===IndentAction$1.IndentOutdent?_=" ":_="";let b=getIndentationAtPosition(e,t.startLineNumber,t.startColumn);return v&&(b=b.substring(0,b.length-v)),{indentAction:m,appendText:_,removeText:v,indentation:b}}var __decorate$39=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2_=function(o,e){return function(t,r){e(t,r,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 r=t.length;r<=e;r++)t[r]=t[r-1]+o;return t[e]}let ShiftCommand=ShiftCommand_1=class{static unshiftIndent(e,t,r,s,a){const l=CursorColumns.visibleColumnFromColumn(e,t,r);if(a){const c=cachedStringRepeat(" ",s),u=CursorColumns.prevIndentTabStop(l,s)/s;return cachedStringRepeat(c,u)}else{const u=CursorColumns.prevRenderTabStop(l,r)/r;return cachedStringRepeat(" ",u)}}static shiftIndent(e,t,r,s,a){const l=CursorColumns.visibleColumnFromColumn(e,t,r);if(a){const c=cachedStringRepeat(" ",s),u=CursorColumns.nextIndentTabStop(l,s)/s;return cachedStringRepeat(c,u)}else{const u=CursorColumns.nextRenderTabStop(l,r)/r;return cachedStringRepeat(" ",u)}}constructor(e,t,r){this._languageConfigurationService=r,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,r){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,r):e.addEditOperation(t,r)}getEditOperations(e,t){const r=this._selection.startLineNumber;let s=this._selection.endLineNumber;this._selection.endColumn===1&&r!==s&&(s=s-1);const{tabSize:a,indentSize:l,insertSpaces:c}=this._opts,d=r===s;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(r))&&(this._useLastEditRangeForCursorEndPosition=!0);let u=0,g=0;for(let f=r;f<=s;f++,u=g){g=0;const m=e.getLineContent(f);let _=firstNonWhitespaceIndex(m);if(this._opts.isUnshift&&(m.length===0||_===0)||!d&&!this._opts.isUnshift&&m.length===0)continue;if(_===-1&&(_=m.length),f>1&&CursorColumns.visibleColumnFromColumn(m,_+1,a)%l!==0&&e.tokenization.isCheapToTokenize(f-1)){const C=getEnterAction(this._opts.autoIndent,e,new Range$2(f-1,e.getLineMaxColumn(f-1),f-1,e.getLineMaxColumn(f-1)),this._languageConfigurationService);if(C){if(g=u,C.appendText)for(let y=0,S=C.appendText.length;y<S&&g<l&&C.appendText.charCodeAt(y)===32;y++)g++;C.removeText&&(g=Math.max(0,g-C.removeText));for(let y=0;y<g&&!(_===0||m.charCodeAt(_-1)!==32);y++)_--}}if(this._opts.isUnshift&&_===0)continue;let v;this._opts.isUnshift?v=ShiftCommand_1.unshiftIndent(m,_+1,a,l,c):v=ShiftCommand_1.shiftIndent(m,_+1,a,l,c),this._addEditOperation(t,new Range$2(f,1,f,_+1),v),f===r&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn<=_+1)}}else{!this._opts.isUnshift&&this._selection.isEmpty()&&e.getLineLength(r)===0&&(this._useLastEditRangeForCursorEndPosition=!0);const u=c?cachedStringRepeat(" ",l):" ";for(let g=r;g<=s;g++){const f=e.getLineContent(g);let m=firstNonWhitespaceIndex(f);if(!(this._opts.isUnshift&&(f.length===0||m===0))&&!(!d&&!this._opts.isUnshift&&f.length===0)&&(m===-1&&(m=f.length),!(this._opts.isUnshift&&m===0)))if(this._opts.isUnshift){m=Math.min(m,l);for(let _=0;_<m;_++)if(f.charCodeAt(_)===9){m=_+1;break}this._addEditOperation(t,new Range$2(g,1,g,m+1),"")}else this._addEditOperation(t,new Range$2(g,1,g,1),u),g===r&&!this._selection.isEmpty()&&(this._selectionStartColumnStaysPut=this._selection.startColumn===1)}}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){if(this._useLastEditRangeForCursorEndPosition){const s=t.getInverseEditOperations()[0];return new Selection$1(s.range.endLineNumber,s.range.endColumn,s.range.endLineNumber,s.range.endColumn)}const r=t.getTrackedSelection(this._selectionId);if(this._selectionStartColumnStaysPut){const s=this._selection.startColumn;return r.startColumn<=s?r:r.getDirection()===0?new Selection$1(r.startLineNumber,s,r.endLineNumber,r.endColumn):new Selection$1(r.endLineNumber,r.endColumn,r.startLineNumber,s)}return r}};ShiftCommand=ShiftCommand_1=__decorate$39([__param$2_(2,ILanguageConfigurationService)],ShiftCommand);class SurroundSelectionCommand{constructor(e,t,r){this._range=e,this._charBeforeSelection=t,this._charAfterSelection=r}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||null)}computeCursorState(e,t){const r=t.getInverseEditOperations(),s=r[0].range,a=r[1].range;return new Selection$1(s.endLineNumber,s.endColumn,a.endLineNumber,a.endColumn-this._charAfterSelection.length)}}class CompositionSurroundSelectionCommand{constructor(e,t,r){this._position=e,this._text=t,this._charAfter=r}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 s=t.getInverseEditOperations()[0].range;return new Selection$1(s.endLineNumber,s.startColumn,s.endLineNumber,s.endColumn-this._charAfter.length)}}function getPrecedingValidLine(o,e,t){const r=o.tokenization.getLanguageIdAtPosition(e,0);if(e>1){let s,a=-1;for(s=e-1;s>=1;s--){if(o.tokenization.getLanguageIdAtPosition(s,0)!==r)return a;const l=o.getLineContent(s);if(t.shouldIgnore(s)||/^\s+$/.test(l)||l===""){a=s;continue}return s}}return-1}function getInheritIndentForLine(o,e,t,r=!0,s){if(o<4)return null;const a=s.getLanguageConfiguration(e.tokenization.getLanguageId()).indentRulesSupport;if(!a)return null;const l=new ProcessedIndentRulesSupport(e,a,s);if(t<=1)return{indentation:"",action:null};for(let d=t-1;d>0&&e.getLineContent(d)==="";d--)if(d===1)return{indentation:"",action:null};const c=getPrecedingValidLine(e,t,l);if(c<0)return null;if(c<1)return{indentation:"",action:null};if(l.shouldIncrease(c)||l.shouldIndentNextLine(c)){const d=e.getLineContent(c);return{indentation:getLeadingWhitespace(d),action:IndentAction$1.Indent,line:c}}else if(l.shouldDecrease(c)){const d=e.getLineContent(c);return{indentation:getLeadingWhitespace(d),action:null,line:c}}else{if(c===1)return{indentation:getLeadingWhitespace(e.getLineContent(c)),action:null,line:c};const d=c-1,u=a.getIndentMetadata(e.getLineContent(d));if(!(u&3)&&u&4){let g=0;for(let f=d-1;f>0;f--)if(!l.shouldIndentNextLine(f)){g=f;break}return{indentation:getLeadingWhitespace(e.getLineContent(g+1)),action:null,line:g+1}}if(r)return{indentation:getLeadingWhitespace(e.getLineContent(c)),action:null,line:c};for(let g=c;g>0;g--){if(l.shouldIncrease(g))return{indentation:getLeadingWhitespace(e.getLineContent(g)),action:IndentAction$1.Indent,line:g};if(l.shouldIndentNextLine(g)){let f=0;for(let m=g-1;m>0;m--)if(!l.shouldIndentNextLine(g)){f=m;break}return{indentation:getLeadingWhitespace(e.getLineContent(f+1)),action:null,line:f+1}}else if(l.shouldDecrease(g))return{indentation:getLeadingWhitespace(e.getLineContent(g)),action:null,line:g}}return{indentation:getLeadingWhitespace(e.getLineContent(1)),action:null,line:1}}}function getGoodIndentForLine(o,e,t,r,s,a){if(o<4)return null;const l=a.getLanguageConfiguration(t);if(!l)return null;const c=a.getLanguageConfiguration(t).indentRulesSupport;if(!c)return null;const d=new ProcessedIndentRulesSupport(e,c,a),u=getInheritIndentForLine(o,e,r,void 0,a);if(u){const g=u.line;if(g!==void 0){let f=!0;for(let m=g;m<r-1;m++)if(!/^\s*$/.test(e.getLineContent(m))){f=!1;break}if(f){const m=l.onEnter(o,"",e.getLineContent(g),"");if(m){let _=getLeadingWhitespace(e.getLineContent(g));return m.removeText&&(_=_.substring(0,_.length-m.removeText)),m.indentAction===IndentAction$1.Indent||m.indentAction===IndentAction$1.IndentOutdent?_=s.shiftIndent(_):m.indentAction===IndentAction$1.Outdent&&(_=s.unshiftIndent(_)),d.shouldDecrease(r)&&(_=s.unshiftIndent(_)),m.appendText&&(_+=m.appendText),getLeadingWhitespace(_)}}}return d.shouldDecrease(r)?u.action===IndentAction$1.Indent?u.indentation:s.unshiftIndent(u.indentation):u.action===IndentAction$1.Indent?s.shiftIndent(u.indentation):u.indentation}return null}function getIndentForEnter(o,e,t,r,s){if(o<4)return null;const a=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),l=s.getLanguageConfiguration(a).indentRulesSupport;if(!l)return null;e.tokenization.forceTokenization(t.startLineNumber);const d=new IndentationContextProcessor(e,s).getProcessedTokenContextAroundRange(t),u=d.afterRangeProcessedTokens,g=d.beforeRangeProcessedTokens,f=getLeadingWhitespace(g.getLineContent()),m=createVirtualModelWithModifiedTokensAtLine(e,t.startLineNumber,g),_=isLanguageDifferentFromLineStart(e,t.getStartPosition()),v=e.getLineContent(t.startLineNumber),b=getLeadingWhitespace(v),C=getInheritIndentForLine(o,m,t.startLineNumber+1,void 0,s);if(!C){const S=_?b:f;return{beforeEnter:S,afterEnter:S}}let y=_?b:C.indentation;return C.action===IndentAction$1.Indent&&(y=r.shiftIndent(y)),l.shouldDecrease(u.getLineContent())&&(y=r.unshiftIndent(y)),{beforeEnter:_?b:f,afterEnter:y}}function getIndentActionForType(o,e,t,r,s,a){const l=o.autoIndent;if(l<4||isLanguageDifferentFromLineStart(e,t.getStartPosition()))return null;const d=e.getLanguageIdAtPosition(t.startLineNumber,t.startColumn),u=a.getLanguageConfiguration(d).indentRulesSupport;if(!u)return null;const f=new IndentationContextProcessor(e,a).getProcessedTokenContextAroundRange(t),m=f.beforeRangeProcessedTokens.getLineContent(),_=f.afterRangeProcessedTokens.getLineContent(),v=m+_,b=m+r+_;if(!u.shouldDecrease(v)&&u.shouldDecrease(b)){const y=getInheritIndentForLine(l,e,t.startLineNumber,!1,a);if(!y)return null;let S=y.indentation;return y.action!==IndentAction$1.Indent&&(S=s.unshiftIndent(S)),S}const C=t.startLineNumber-1;if(C>0){const y=e.getLineContent(C);if(u.shouldIndentNextLine(y)&&u.shouldIncrease(b)){const S=getInheritIndentForLine(l,e,t.startLineNumber,!1,a),w=S==null?void 0:S.indentation;if(w!==void 0){const E=e.getLineContent(t.startLineNumber),x=getLeadingWhitespace(E),k=s.shiftIndent(w)===x,D=/^\s*$/.test(v),I=o.autoClosingPairs.autoClosingPairsOpenByEnd.get(r),M=I&&I.length>0&&D;if(k&&M)return w}}}return null}function getIndentMetadata(o,e,t){const r=t.getLanguageConfiguration(o.getLanguageId()).indentRulesSupport;return!r||e<1||e>o.getLineCount()?null:r.getIndentMetadata(o.getLineContent(e))}function createVirtualModelWithModifiedTokensAtLine(o,e,t){return{tokenization:{getLineTokens:s=>s===e?t:o.tokenization.getLineTokens(s),getLanguageId:()=>o.getLanguageId(),getLanguageIdAtPosition:(s,a)=>o.getLanguageIdAtPosition(s,a)},getLineContent:s=>s===e?t.getLineContent():o.getLineContent(s)}}class AutoIndentOperation{static getEdits(e,t,r,s,a){if(!a&&this._isAutoIndentType(e,t,r)){const l=[];for(const d of r){const u=this._findActualIndentationForSelection(e,t,d,s);if(u===null)return;l.push({selection:d,indentation:u})}const c=AutoClosingOpenCharTypeOperation.getAutoClosingPairClose(e,t,r,s,!1);return this._getIndentationAndAutoClosingPairEdits(e,t,l,s,c)}}static _isAutoIndentType(e,t,r){if(e.autoIndent<4)return!1;for(let s=0,a=r.length;s<a;s++)if(!t.tokenization.isCheapToTokenize(r[s].getEndPosition().lineNumber))return!1;return!0}static _findActualIndentationForSelection(e,t,r,s){const a=getIndentActionForType(e,t,r,s,{shiftIndent:c=>shiftIndent(e,c),unshiftIndent:c=>unshiftIndent(e,c)},e.languageConfigurationService);if(a===null)return null;const l=getIndentationAtPosition(t,r.startLineNumber,r.startColumn);return a===e.normalizeIndentation(l)?null:a}static _getIndentationAndAutoClosingPairEdits(e,t,r,s,a){const l=r.map(({selection:d,indentation:u})=>{if(a!==null){const g=this._getEditFromIndentationAndSelection(e,t,u,d,s,!1);return new TypeWithIndentationAndAutoClosingCommand(g,d,s,a)}else{const g=this._getEditFromIndentationAndSelection(e,t,u,d,s,!0);return typeCommand(g.range,g.text,!1)}}),c={shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1};return new EditOperationResult(4,l,c)}static _getEditFromIndentationAndSelection(e,t,r,s,a,l=!0){const c=s.startLineNumber,d=t.getLineFirstNonWhitespaceColumn(c);let u=e.normalizeIndentation(r);if(d!==0){const f=t.getLineContent(c);u+=f.substring(d-1,s.startColumn-1)}return u+=l?a:"",{range:new Range$2(c,1,s.endLineNumber,s.endColumn),text:u}}}class AutoClosingOvertypeOperation{static getEdits(e,t,r,s,a,l){if(isAutoClosingOvertype(t,r,s,a,l))return this._runAutoClosingOvertype(e,s,l)}static _runAutoClosingOvertype(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const d=t[a].getPosition(),u=new Range$2(d.lineNumber,d.column,d.lineNumber,d.column+1);s[a]=new ReplaceCommand(u,r)}return new EditOperationResult(4,s,{shouldPushStackElementBefore:shouldPushStackElementBetween(e,4),shouldPushStackElementAfter:!1})}}class AutoClosingOvertypeWithInterceptorsOperation{static getEdits(e,t,r,s,a){if(isAutoClosingOvertype(e,t,r,s,a)){const l=r.map(c=>new ReplaceCommand(new Range$2(c.positionLineNumber,c.positionColumn,c.positionLineNumber,c.positionColumn+1),"",!1));return new EditOperationResult(4,l,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}}class AutoClosingOpenCharTypeOperation{static getEdits(e,t,r,s,a,l){if(!l){const c=this.getAutoClosingPairClose(e,t,r,s,a);if(c!==null)return this._runAutoClosingOpenCharType(r,s,a,c)}}static _runAutoClosingOpenCharType(e,t,r,s){const a=[];for(let l=0,c=e.length;l<c;l++){const d=e[l];a[l]=new TypeWithAutoClosingCommand(d,t,!r,s)}return new EditOperationResult(4,a,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}static getAutoClosingPairClose(e,t,r,s,a){for(const v of r)if(!v.isEmpty())return null;const l=r.map(v=>{const b=v.getPosition();return a?{lineNumber:b.lineNumber,beforeColumn:b.column-s.length,afterColumn:b.column}:{lineNumber:b.lineNumber,beforeColumn:b.column,afterColumn:b.column}}),c=this._findAutoClosingPairOpen(e,t,l.map(v=>new Position$1(v.lineNumber,v.beforeColumn)),s);if(!c)return null;let d,u;if(isQuote(s)?(d=e.autoClosingQuotes,u=e.shouldAutoCloseBefore.quote):(e.blockCommentStartToken?c.open.includes(e.blockCommentStartToken):!1)?(d=e.autoClosingComments,u=e.shouldAutoCloseBefore.comment):(d=e.autoClosingBrackets,u=e.shouldAutoCloseBefore.bracket),d==="never")return null;const f=this._findContainedAutoClosingPair(e,c),m=f?f.close:"";let _=!0;for(const v of l){const{lineNumber:b,beforeColumn:C,afterColumn:y}=v,S=t.getLineContent(b),w=S.substring(0,C-1),E=S.substring(y-1);if(E.startsWith(m)||(_=!1),E.length>0){const D=E.charAt(0);if(!this._isBeforeClosingBrace(e,E)&&!u(D))return null}if(c.open.length===1&&(s==="'"||s==='"')&&d!=="always"){const D=getMapForWordSeparators(e.wordSeparators,[]);if(w.length>0){const I=w.charCodeAt(w.length-1);if(D.get(I)===0)return null}}if(!t.tokenization.isCheapToTokenize(b))return null;t.tokenization.forceTokenization(b);const x=t.tokenization.getLineTokens(b),L=createScopedLineTokens(x,C-1);if(!c.shouldAutoClose(L,C-L.firstCharOffset))return null;const k=c.findNeutralCharacter();if(k){const D=t.tokenization.getTokenTypeIfInsertingCharacter(b,C,k);if(!c.isOK(D))return null}}return _?c.close.substring(0,c.close.length-m.length):c.close}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const r=t.close.charAt(t.close.length-1),s=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(r)||[];let a=null;for(const l of s)l.open!==t.open&&t.open.includes(l.open)&&t.close.endsWith(l.close)&&(!a||l.open.length>a.open.length)&&(a=l);return a}static _findAutoClosingPairOpen(e,t,r,s){const a=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(s);if(!a)return null;let l=null;for(const c of a)if(l===null||c.open.length>l.open.length){let d=!0;for(const u of r)if(t.getValueInRange(new Range$2(u.lineNumber,u.column-c.open.length+1,u.lineNumber,u.column))+s!==c.open){d=!1;break}d&&(l=c)}return l}static _isBeforeClosingBrace(e,t){const r=t.charAt(0),s=e.autoClosingPairs.autoClosingPairsOpenByStart.get(r)||[],a=e.autoClosingPairs.autoClosingPairsCloseByStart.get(r)||[],l=s.some(d=>t.startsWith(d.open)),c=a.some(d=>t.startsWith(d.close));return!l&&c}}class CompositionEndOvertypeOperation{static getEdits(e,t){if(!(e.inputMode==="overtype"))return null;const s=t.map(a=>new ReplaceOvertypeCommandOnCompositionEnd(a.insertedTextRange));return new EditOperationResult(4,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}class SurroundSelectionOperation{static getEdits(e,t,r,s,a){if(!a&&this._isSurroundSelectionType(e,t,r,s))return this._runSurroundSelectionType(e,r,s)}static _runSurroundSelectionType(e,t,r){const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=e.surroundingPairs[r];s[a]=new SurroundSelectionCommand(c,r,d)}return new EditOperationResult(0,s,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _isSurroundSelectionType(e,t,r,s){if(!shouldSurroundChar(e,s)||!e.surroundingPairs.hasOwnProperty(s))return!1;const a=isQuote(s);for(const l of r){if(l.isEmpty())return!1;let c=!0;for(let d=l.startLineNumber;d<=l.endLineNumber;d++){const u=t.getLineContent(d),g=d===l.startLineNumber?l.startColumn-1:0,f=d===l.endLineNumber?l.endColumn-1:u.length,m=u.substring(g,f);if(/[^ \t]/.test(m)){c=!1;break}}if(c)return!1;if(a&&l.startLineNumber===l.endLineNumber&&l.startColumn+1===l.endColumn){const d=t.getValueInRange(l);if(isQuote(d))return!1}}return!0}}class InterceptorElectricCharOperation{static getEdits(e,t,r,s,a,l){if(!l&&this._isTypeInterceptorElectricChar(t,r,s)){const c=this._typeInterceptorElectricChar(e,t,r,s[0],a);if(c)return c}}static _isTypeInterceptorElectricChar(e,t,r){return!!(r.length===1&&t.tokenization.isCheapToTokenize(r[0].getEndPosition().lineNumber))}static _typeInterceptorElectricChar(e,t,r,s,a){if(!t.electricChars.hasOwnProperty(a)||!s.isEmpty())return null;const l=s.getPosition();r.tokenization.forceTokenization(l.lineNumber);const c=r.tokenization.getLineTokens(l.lineNumber);let d;try{d=t.onElectricCharacter(a,c,l.column)}catch(u){return onUnexpectedError(u),null}if(!d)return null;if(d.matchOpenBracket){const u=(c.getLineContent()+a).lastIndexOf(d.matchOpenBracket)+1,g=r.bracketPairs.findMatchingBracketUp(d.matchOpenBracket,{lineNumber:l.lineNumber,column:u},500);if(g){if(g.startLineNumber===l.lineNumber)return null;const f=r.getLineContent(g.startLineNumber),m=getLeadingWhitespace(f),_=t.normalizeIndentation(m),v=r.getLineContent(l.lineNumber),b=r.getLineFirstNonWhitespaceColumn(l.lineNumber)||l.column,C=v.substring(b-1,l.column-1),y=_+C+a,S=new Range$2(l.lineNumber,1,l.lineNumber,l.column),w=new ReplaceCommand(S,y);return new EditOperationResult(getTypingOperation(y,e),[w],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!0})}}return null}}class SimpleCharacterTypeOperation{static getEdits(e,t,r,s,a){const l=[];for(let d=0,u=r.length;d<u;d++){const g=e.inputMode==="overtype"&&!a?ReplaceOvertypeCommand:ReplaceCommand;l[d]=new g(r[d],s)}const c=getTypingOperation(s,t);return new EditOperationResult(c,l,{shouldPushStackElementBefore:shouldPushStackElementBetween(t,c),shouldPushStackElementAfter:!1})}}class EnterOperation{static getEdits(e,t,r,s,a){if(!a&&s==="\n"){const l=[];for(let c=0,d=r.length;c<d;c++)l[c]=this._enter(e,t,!1,r[c]);return new EditOperationResult(4,l,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}}static _enter(e,t,r,s){if(e.autoIndent===0)return typeCommand(s,"\n",r);if(!t.tokenization.isCheapToTokenize(s.getStartPosition().lineNumber)||e.autoIndent===1){const d=t.getLineContent(s.startLineNumber),u=getLeadingWhitespace(d).substring(0,s.startColumn-1);return typeCommand(s,"\n"+e.normalizeIndentation(u),r)}const a=getEnterAction(e.autoIndent,t,s,e.languageConfigurationService);if(a){if(a.indentAction===IndentAction$1.None)return typeCommand(s,"\n"+e.normalizeIndentation(a.indentation+a.appendText),r);if(a.indentAction===IndentAction$1.Indent)return typeCommand(s,"\n"+e.normalizeIndentation(a.indentation+a.appendText),r);if(a.indentAction===IndentAction$1.IndentOutdent){const d=e.normalizeIndentation(a.indentation),u=e.normalizeIndentation(a.indentation+a.appendText),g="\n"+u+"\n"+d;return r?new ReplaceCommandWithoutChangingPosition(s,g,!0):new ReplaceCommandWithOffsetCursorState(s,g,-1,u.length-d.length,!0)}else if(a.indentAction===IndentAction$1.Outdent){const d=unshiftIndent(e,a.indentation);return typeCommand(s,"\n"+e.normalizeIndentation(d+a.appendText),r)}}const l=t.getLineContent(s.startLineNumber),c=getLeadingWhitespace(l).substring(0,s.startColumn-1);if(e.autoIndent>=4){const d=getIndentForEnter(e.autoIndent,t,s,{unshiftIndent:u=>unshiftIndent(e,u),shiftIndent:u=>shiftIndent(e,u),normalizeIndentation:u=>e.normalizeIndentation(u)},e.languageConfigurationService);if(d){let u=e.visibleColumnFromColumn(t,s.getEndPosition());const g=s.endColumn,f=t.getLineContent(s.endLineNumber),m=firstNonWhitespaceIndex(f);if(m>=0?s=s.setEndPosition(s.endLineNumber,Math.max(s.endColumn,m+1)):s=s.setEndPosition(s.endLineNumber,t.getLineMaxColumn(s.endLineNumber)),r)return new ReplaceCommandWithoutChangingPosition(s,"\n"+e.normalizeIndentation(d.afterEnter),!0);{let _=0;return g<=m+1&&(e.insertSpaces||(u=Math.ceil(u/e.indentSize)),_=Math.min(u+1-e.normalizeIndentation(d.afterEnter).length-1,0)),new ReplaceCommandWithOffsetCursorState(s,"\n"+e.normalizeIndentation(d.afterEnter),0,_,!0)}}}return typeCommand(s,"\n"+e.normalizeIndentation(c),r)}static lineInsertBefore(e,t,r){if(t===null||r===null)return[];const s=[];for(let a=0,l=r.length;a<l;a++){let c=r[a].positionLineNumber;if(c===1)s[a]=new ReplaceCommandWithoutChangingPosition(new Range$2(1,1,1,1),"\n");else{c--;const d=t.getLineMaxColumn(c);s[a]=this._enter(e,t,!1,new Range$2(c,d,c,d))}}return s}static lineInsertAfter(e,t,r){if(t===null||r===null)return[];const s=[];for(let a=0,l=r.length;a<l;a++){const c=r[a].positionLineNumber,d=t.getLineMaxColumn(c);s[a]=this._enter(e,t,!1,new Range$2(c,d,c,d))}return s}static lineBreakInsert(e,t,r){const s=[];for(let a=0,l=r.length;a<l;a++)s[a]=this._enter(e,t,!0,r[a]);return s}}class PasteOperation{static getEdits(e,t,r,s,a,l){const c=this._distributePasteToCursors(e,r,s,a,l);return c?(r=r.sort(Range$2.compareRangesUsingStarts),this._distributedPaste(e,t,r,c)):this._simplePaste(e,t,r,s,a)}static _distributePasteToCursors(e,t,r,s,a){if(s||t.length===1)return null;if(a&&a.length===t.length)return a;if(e.multiCursorPaste==="spread"){r.charCodeAt(r.length-1)===10&&(r=r.substring(0,r.length-1)),r.charCodeAt(r.length-1)===13&&(r=r.substring(0,r.length-1));const l=splitLines(r);if(l.length===t.length)return l}return null}static _distributedPaste(e,t,r,s){const a=[];for(let l=0,c=r.length;l<c;l++){const u=e.overtypeOnPaste&&e.inputMode==="overtype"?ReplaceOvertypeCommand:ReplaceCommand;a[l]=new u(r[l],s[l])}return new EditOperationResult(0,a,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}static _simplePaste(e,t,r,s,a){const l=[];for(let c=0,d=r.length;c<d;c++){const u=r[c],g=u.getPosition();if(a&&!u.isEmpty()&&(a=!1),a&&s.indexOf("\n")!==s.length-1&&(a=!1),a){const f=new Range$2(g.lineNumber,1,g.lineNumber,1);l[c]=new ReplaceCommandThatPreservesSelection(f,s,u,!0)}else{const m=e.overtypeOnPaste&&e.inputMode==="overtype"?ReplaceOvertypeCommand:ReplaceCommand;l[c]=new m(u,s)}}return new EditOperationResult(0,l,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}class CompositionOperation{static getEdits(e,t,r,s,a,l,c,d){const u=s.map(g=>this._compositionType(r,g,a,l,c,d));return new EditOperationResult(4,u,{shouldPushStackElementBefore:shouldPushStackElementBetween(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,r,s,a,l){if(!t.isEmpty())return null;const c=t.getPosition(),d=Math.max(1,c.column-s),u=Math.min(e.getLineMaxColumn(c.lineNumber),c.column+a),g=new Range$2(c.lineNumber,d,c.lineNumber,u);return new ReplaceCommandWithOffsetCursorState(g,r,0,l)}}class TypeWithoutInterceptorsOperation{static getEdits(e,t,r){const s=[];for(let l=0,c=t.length;l<c;l++)s[l]=new ReplaceCommand(t[l],r);const a=getTypingOperation(r,e);return new EditOperationResult(a,s,{shouldPushStackElementBefore:shouldPushStackElementBetween(e,a),shouldPushStackElementAfter:!1})}}class TabOperation{static getCommands(e,t,r){const s=[];for(let a=0,l=r.length;a<l;a++){const c=r[a];if(c.isEmpty()){const d=t.getLineContent(c.startLineNumber);if(/^\s*$/.test(d)&&t.tokenization.isCheapToTokenize(c.startLineNumber)){let u=this._goodIndentForLine(e,t,c.startLineNumber);u=u||" ";const g=e.normalizeIndentation(u);if(!d.startsWith(g)){s[a]=new ReplaceCommand(new Range$2(c.startLineNumber,1,c.startLineNumber,d.length+1),g,!0);continue}}s[a]=this._replaceJumpToNextIndent(e,t,c,!0)}else{if(c.startLineNumber===c.endLineNumber){const d=t.getLineMaxColumn(c.startLineNumber);if(c.startColumn!==1||c.endColumn!==d){s[a]=this._replaceJumpToNextIndent(e,t,c,!1);continue}}s[a]=new ShiftCommand(c,{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService)}}return s}static _goodIndentForLine(e,t,r){let s=null,a="";const l=getInheritIndentForLine(e.autoIndent,t,r,!1,e.languageConfigurationService);if(l)s=l.action,a=l.indentation;else if(r>1){let c;for(c=r-1;c>=1;c--){const g=t.getLineContent(c);if(lastNonWhitespaceIndex(g)>=0)break}if(c<1)return null;const d=t.getLineMaxColumn(c),u=getEnterAction(e.autoIndent,t,new Range$2(c,d,c,d),e.languageConfigurationService);u&&(a=u.indentation+u.appendText)}return s&&(s===IndentAction$1.Indent&&(a=shiftIndent(e,a)),s===IndentAction$1.Outdent&&(a=unshiftIndent(e,a)),a=e.normalizeIndentation(a)),a||null}static _replaceJumpToNextIndent(e,t,r,s){let a="";const l=r.getStartPosition();if(e.insertSpaces){const c=e.visibleColumnFromColumn(t,l),d=e.indentSize,u=d-c%d;for(let g=0;g<u;g++)a+=" "}else a=" ";return new ReplaceCommand(r,a,s)}}class BaseTypeWithAutoClosingCommand extends ReplaceCommandWithOffsetCursorState{constructor(e,t,r,s,a,l){super(e,t,r,s),this._openCharacter=a,this._closeCharacter=l,this.closeCharacterRange=null,this.enclosingRange=null}_computeCursorStateWithRange(e,t,r){return this.closeCharacterRange=new Range$2(t.startLineNumber,t.endColumn-this._closeCharacter.length,t.endLineNumber,t.endColumn),this.enclosingRange=new Range$2(t.startLineNumber,t.endColumn-this._openCharacter.length-this._closeCharacter.length,t.endLineNumber,t.endColumn),super.computeCursorState(e,r)}}class TypeWithAutoClosingCommand extends BaseTypeWithAutoClosingCommand{constructor(e,t,r,s){const a=(r?t:"")+s,l=0,c=-s.length;super(e,a,l,c,t,s)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return this._computeCursorStateWithRange(e,s,t)}}class TypeWithIndentationAndAutoClosingCommand extends BaseTypeWithAutoClosingCommand{constructor(e,t,r,s){const a=r+s,l=0,c=r.length;super(t,a,l,c,r,s),this._autoIndentationEdit=e,this._autoClosingEdit={range:t,text:a}}getEditOperations(e,t){t.addTrackedEditOperation(this._autoIndentationEdit.range,this._autoIndentationEdit.text),t.addTrackedEditOperation(this._autoClosingEdit.range,this._autoClosingEdit.text)}computeCursorState(e,t){const r=t.getInverseEditOperations();if(r.length!==2)throw new Error("There should be two inverse edit operations!");const s=r[0].range,a=r[1].range,l=s.plusRange(a);return this._computeCursorStateWithRange(e,l,t)}}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}function isAutoClosingOvertype(o,e,t,r,s){if(o.autoClosingOvertype==="never"||!o.autoClosingPairs.autoClosingPairsCloseSingleChar.has(s))return!1;for(let a=0,l=t.length;a<l;a++){const c=t[a];if(!c.isEmpty())return!1;const d=c.getPosition(),u=e.getLineContent(d.lineNumber);if(u.charAt(d.column-1)!==s)return!1;const f=isQuote(s);if((d.column>2?u.charCodeAt(d.column-2):0)===92&&f)return!1;if(o.autoClosingOvertype==="auto"){let _=!1;for(let v=0,b=r.length;v<b;v++){const C=r[v];if(d.lineNumber===C.startLineNumber&&d.column===C.startColumn){_=!0;break}}if(!_)return!1}}return!0}function typeCommand(o,e,t){return t?new ReplaceCommandWithoutChangingPosition(o,e,!0):new ReplaceCommand(o,e,!0)}function shiftIndent(o,e,t){return t=t||1,ShiftCommand.shiftIndent(e,e.length+t,o.tabSize,o.indentSize,o.insertSpaces)}function unshiftIndent(o,e,t){return t=t||1,ShiftCommand.unshiftIndent(e,e.length+t,o.tabSize,o.indentSize,o.insertSpaces)}function shouldSurroundChar(o,e){return isQuote(e)?o.autoSurround==="quotes"||o.autoSurround==="languageDefined":o.autoSurround==="brackets"||o.autoSurround==="languageDefined"}class TypeOperations{static indent(e,t,r){if(t===null||r===null)return[];const s=[];for(let a=0,l=r.length;a<l;a++)s[a]=new ShiftCommand(r[a],{isUnshift:!1,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return s}static outdent(e,t,r){const s=[];for(let a=0,l=r.length;a<l;a++)s[a]=new ShiftCommand(r[a],{isUnshift:!0,tabSize:e.tabSize,indentSize:e.indentSize,insertSpaces:e.insertSpaces,useTabStops:e.useTabStops,autoIndent:e.autoIndent},e.languageConfigurationService);return s}static paste(e,t,r,s,a,l){return PasteOperation.getEdits(e,t,r,s,a,l)}static tab(e,t,r){return TabOperation.getCommands(e,t,r)}static compositionType(e,t,r,s,a,l,c,d){return CompositionOperation.getEdits(e,t,r,s,a,l,c,d)}static compositionEndWithInterceptors(e,t,r,s,a,l){if(!s)return null;let c=null;for(const m of s)if(c===null)c=m.insertedText;else if(c!==m.insertedText)return null;if(!c||c.length!==1)return CompositionEndOvertypeOperation.getEdits(t,s);const d=c;let u=!1;for(const m of s)if(m.deletedText.length!==0){u=!0;break}if(u){if(!shouldSurroundChar(t,d)||!t.surroundingPairs.hasOwnProperty(d))return null;const m=isQuote(d);for(const b of s)if(b.deletedSelectionStart!==0||b.deletedSelectionEnd!==b.deletedText.length||/^[ \t]+$/.test(b.deletedText)||m&&isQuote(b.deletedText))return null;const _=[];for(const b of a){if(!b.isEmpty())return null;_.push(b.getPosition())}if(_.length!==s.length)return null;const v=[];for(let b=0,C=_.length;b<C;b++)v.push(new CompositionSurroundSelectionCommand(_[b],s[b].deletedText,t.surroundingPairs[d]));return new EditOperationResult(4,v,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const g=AutoClosingOvertypeWithInterceptorsOperation.getEdits(t,r,a,l,d);if(g!==void 0)return g;const f=AutoClosingOpenCharTypeOperation.getEdits(t,r,a,d,!0,!1);return f!==void 0?f:CompositionEndOvertypeOperation.getEdits(t,s)}static typeWithInterceptors(e,t,r,s,a,l,c){const d=EnterOperation.getEdits(r,s,a,c,e);if(d!==void 0)return d;const u=AutoIndentOperation.getEdits(r,s,a,c,e);if(u!==void 0)return u;const g=AutoClosingOvertypeOperation.getEdits(t,r,s,a,l,c);if(g!==void 0)return g;const f=AutoClosingOpenCharTypeOperation.getEdits(r,s,a,c,!1,e);if(f!==void 0)return f;const m=SurroundSelectionOperation.getEdits(r,s,a,c,e);if(m!==void 0)return m;const _=InterceptorElectricCharOperation.getEdits(t,r,s,a,c,e);return _!==void 0?_:SimpleCharacterTypeOperation.getEdits(r,t,a,c,e)}static typeWithoutInterceptors(e,t,r,s,a){return TypeWithoutInterceptorsOperation.getEdits(e,s,a)}}class CompositionOutcome{constructor(e,t,r,s,a,l,c){this.deletedText=e,this.deletedSelectionStart=t,this.deletedSelectionEnd=r,this.insertedText=s,this.insertedSelectionStart=a,this.insertedSelectionEnd=l,this.insertedTextRange=c}}var EditorContextKeys;(function(o){o.editorSimpleInput=new RawContextKey("editorSimpleInput",!1,!0),o.editorTextFocus=new RawContextKey("editorTextFocus",!1,localize(681,"Whether the editor text has focus (cursor is blinking)")),o.focus=new RawContextKey("editorFocus",!1,localize(682,"Whether the editor or an editor widget has focus (e.g. focus is in the find widget)")),o.textInputFocus=new RawContextKey("textInputFocus",!1,localize(683,"Whether an editor or a rich text input has focus (cursor is blinking)")),o.readOnly=new RawContextKey("editorReadonly",!1,localize(684,"Whether the editor is read-only")),o.inDiffEditor=new RawContextKey("inDiffEditor",!1,localize(685,"Whether the context is a diff editor")),o.isEmbeddedDiffEditor=new RawContextKey("isEmbeddedDiffEditor",!1,localize(686,"Whether the context is an embedded diff editor")),o.inMultiDiffEditor=new RawContextKey("inMultiDiffEditor",!1,localize(687,"Whether the context is a multi diff editor")),o.multiDiffEditorAllCollapsed=new RawContextKey("multiDiffEditorAllCollapsed",void 0,localize(688,"Whether all files in multi diff editor are collapsed")),o.hasChanges=new RawContextKey("diffEditorHasChanges",!1,localize(689,"Whether the diff editor has changes")),o.comparingMovedCode=new RawContextKey("comparingMovedCode",!1,localize(690,"Whether a moved code block is selected for comparison")),o.accessibleDiffViewerVisible=new RawContextKey("accessibleDiffViewerVisible",!1,localize(691,"Whether the accessible diff viewer is visible")),o.diffEditorRenderSideBySideInlineBreakpointReached=new RawContextKey("diffEditorRenderSideBySideInlineBreakpointReached",!1,localize(692,"Whether the diff editor render side by side inline breakpoint is reached")),o.diffEditorInlineMode=new RawContextKey("diffEditorInlineMode",!1,localize(693,"Whether inline mode is active")),o.diffEditorOriginalWritable=new RawContextKey("diffEditorOriginalWritable",!1,localize(694,"Whether modified is writable in the diff editor")),o.diffEditorModifiedWritable=new RawContextKey("diffEditorModifiedWritable",!1,localize(695,"Whether modified is writable in the diff editor")),o.diffEditorOriginalUri=new RawContextKey("diffEditorOriginalUri","",localize(696,"The uri of the original document")),o.diffEditorModifiedUri=new RawContextKey("diffEditorModifiedUri","",localize(697,"The uri of the modified document")),o.columnSelection=new RawContextKey("editorColumnSelection",!1,localize(698,"Whether `editor.columnSelection` is enabled")),o.writable=o.readOnly.toNegated(),o.hasNonEmptySelection=new RawContextKey("editorHasSelection",!1,localize(699,"Whether the editor has text selected")),o.hasOnlyEmptySelection=o.hasNonEmptySelection.toNegated(),o.hasMultipleSelections=new RawContextKey("editorHasMultipleSelections",!1,localize(700,"Whether the editor has multiple selections")),o.hasSingleSelection=o.hasMultipleSelections.toNegated(),o.tabMovesFocus=new RawContextKey("editorTabMovesFocus",!1,localize(701,"Whether `Tab` will move focus out of the editor")),o.tabDoesNotMoveFocus=o.tabMovesFocus.toNegated(),o.isInEmbeddedEditor=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(702,"Whether the editor hover is visible")),o.hoverFocused=new RawContextKey("editorHoverFocused",!1,localize(703,"Whether the editor hover is focused")),o.stickyScrollFocused=new RawContextKey("stickyScrollFocused",!1,localize(704,"Whether the sticky scroll is focused")),o.stickyScrollVisible=new RawContextKey("stickyScrollVisible",!1,localize(705,"Whether the sticky scroll is visible")),o.standaloneColorPickerVisible=new RawContextKey("standaloneColorPickerVisible",!1,localize(706,"Whether the standalone color picker is visible")),o.standaloneColorPickerFocused=new RawContextKey("standaloneColorPickerFocused",!1,localize(707,"Whether the standalone color picker is focused")),o.inCompositeEditor=new RawContextKey("inCompositeEditor",void 0,localize(708,"Whether the editor is part of a larger editor (e.g. notebooks)")),o.notInCompositeEditor=o.inCompositeEditor.toNegated(),o.languageId=new RawContextKey("editorLangId","",localize(709,"The language identifier of the editor")),o.hasCompletionItemProvider=new RawContextKey("editorHasCompletionItemProvider",!1,localize(710,"Whether the editor has a completion item provider")),o.hasCodeActionsProvider=new RawContextKey("editorHasCodeActionsProvider",!1,localize(711,"Whether the editor has a code actions provider")),o.hasCodeLensProvider=new RawContextKey("editorHasCodeLensProvider",!1,localize(712,"Whether the editor has a code lens provider")),o.hasDefinitionProvider=new RawContextKey("editorHasDefinitionProvider",!1,localize(713,"Whether the editor has a definition provider")),o.hasDeclarationProvider=new RawContextKey("editorHasDeclarationProvider",!1,localize(714,"Whether the editor has a declaration provider")),o.hasImplementationProvider=new RawContextKey("editorHasImplementationProvider",!1,localize(715,"Whether the editor has an implementation provider")),o.hasTypeDefinitionProvider=new RawContextKey("editorHasTypeDefinitionProvider",!1,localize(716,"Whether the editor has a type definition provider")),o.hasHoverProvider=new RawContextKey("editorHasHoverProvider",!1,localize(717,"Whether the editor has a hover provider")),o.hasDocumentHighlightProvider=new RawContextKey("editorHasDocumentHighlightProvider",!1,localize(718,"Whether the editor has a document highlight provider")),o.hasDocumentSymbolProvider=new RawContextKey("editorHasDocumentSymbolProvider",!1,localize(719,"Whether the editor has a document symbol provider")),o.hasReferenceProvider=new RawContextKey("editorHasReferenceProvider",!1,localize(720,"Whether the editor has a reference provider")),o.hasRenameProvider=new RawContextKey("editorHasRenameProvider",!1,localize(721,"Whether the editor has a rename provider")),o.hasSignatureHelpProvider=new RawContextKey("editorHasSignatureHelpProvider",!1,localize(722,"Whether the editor has a signature help provider")),o.hasInlayHintsProvider=new RawContextKey("editorHasInlayHintsProvider",!1,localize(723,"Whether the editor has an inline hints provider")),o.hasDocumentFormattingProvider=new RawContextKey("editorHasDocumentFormattingProvider",!1,localize(724,"Whether the editor has a document formatting provider")),o.hasDocumentSelectionFormattingProvider=new RawContextKey("editorHasDocumentSelectionFormattingProvider",!1,localize(725,"Whether the editor has a document selection formatting provider")),o.hasMultipleDocumentFormattingProvider=new RawContextKey("editorHasMultipleDocumentFormattingProvider",!1,localize(726,"Whether the editor has multiple document formatting providers")),o.hasMultipleDocumentSelectionFormattingProvider=new RawContextKey("editorHasMultipleDocumentSelectionFormattingProvider",!1,localize(727,"Whether the editor has multiple document selection formatting providers"))})(EditorContextKeys||(EditorContextKeys={}));const CORE_WEIGHT=0;class CoreEditorCommand extends EditorCommand{runEditorCommand(e,t,r){const s=t._getViewModel();s&&this.runCoreEditorCommand(s,r||{})}}var EditorScroll_;(function(o){const e=function(r){if(!isObject$3(r))return!1;const s=r;return!(!isString$2(s.to)||!isUndefined$2(s.by)&&!isString$2(s.by)||!isUndefined$2(s.value)&&!isNumber$2(s.value)||!isUndefined$2(s.revealCursor)&&!isBoolean(s.revealCursor))};o.metadata={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n * 'to': A mandatory direction value.\n ```\n 'up', 'down'\n ```\n * 'by': Unit to move. Default is computed based on 'to' value.\n ```\n 'line', 'wrappedLine', 'page', 'halfPage', 'editor'\n ```\n * 'value': Number of units to move. Default is '1'.\n * 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n ",constraint: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(r){let s;switch(r.to){case o.RawDirection.Up:s=1;break;case o.RawDirection.Right:s=2;break;case o.RawDirection.Down:s=3;break;case o.RawDirection.Left:s=4;break;default:return null}let a;switch(r.by){case o.RawUnit.Line:a=1;break;case o.RawUnit.WrappedLine:a=2;break;case o.RawUnit.Page:a=3;break;case o.RawUnit.HalfPage:a=4;break;case o.RawUnit.Editor:a=5;break;case o.RawUnit.Column:a=6;break;default:a=2}const l=Math.floor(r.value||1),c=!!r.revealCursor;return{direction:s,unit:a,value:l,revealCursor:c,select:!!r.select}}o.parse=t})(EditorScroll_||(EditorScroll_={}));var RevealLine_;(function(o){const e=function(t){if(!isObject$3(t))return!1;const r=t;return!(!isNumber$2(r.lineNumber)&&!isString$2(r.lineNumber)||!isUndefined$2(r.at)&&!isString$2(r.at))};o.metadata={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n * 'lineNumber': A mandatory line number value.\n * 'at': Logical position at which line has to be revealed.\n ```\n 'top', 'center', 'bottom'\n ```\n ",constraint: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,r)=>{const s=t.get(ICodeEditorService).getFocusedCodeEditor();return s&&s.hasTextFocus()?this._runEditorCommand(t,s,r):!1}),e.addImplementation(1e3,"generic-dom-input-textarea",(t,r)=>{const s=getActiveElement();return s&&isEditableElement(s)?(this.runDOMCommand(s),!0):!1}),e.addImplementation(0,"generic-dom",(t,r)=>{const s=t.get(ICodeEditorService).getActiveCodeEditor();return s?(s.focus(),this._runEditorCommand(t,s,r)):!1})}_runEditorCommand(e,t,r){const s=this.runEditorCommand(e,t,r);return s||!0}}var CoreNavigationCommands;(function(o){class e extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){if(!w.position)return;S.model.pushStackElement(),S.setCursorStates(w.source,3,[CursorMoveCommands.moveTo(S,S.getPrimaryCursorState(),this._inSelectionMode,w.position,w.viewPosition)])&&w.revealType!==2&&S.revealAllCursors(w.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(S,w){S.model.pushStackElement();const E=this._getColumnSelectResult(S,S.getPrimaryCursorState(),S.getCursorColumnSelectData(),w);E!==null&&(S.setCursorStates(w.source,3,E.viewStates.map(x=>CursorState$1.fromViewState(x))),S.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:E.fromLineNumber,fromViewVisualColumn:E.fromVisualColumn,toViewLineNumber:E.toLineNumber,toViewVisualColumn:E.toVisualColumn}),E.reversed?S.revealTopMostCursor(w.source):S.revealBottomMostCursor(w.source))}}o.ColumnSelect=registerEditorCommand(new class extends t{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(y,S,w,E){if(typeof E.position>"u"||typeof E.viewPosition>"u"||typeof E.mouseColumn>"u")return null;const x=y.model.validatePosition(E.position),L=y.coordinatesConverter.validateViewPosition(new Position$1(E.viewPosition.lineNumber,E.viewPosition.column),x),k=E.doColumnSelect?w.fromViewLineNumber:L.lineNumber,D=E.doColumnSelect?w.fromViewVisualColumn:E.mouseColumn-1;return ColumnSelection.columnSelect(y.cursorConfig,y,k,D,L.lineNumber,E.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(y,S,w,E){return ColumnSelection.columnSelectLeft(y.cursorConfig,y,w)}}),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(y,S,w,E){return ColumnSelection.columnSelectRight(y.cursorConfig,y,w)}});class r extends t{constructor(S){super(S),this._isPaged=S.isPaged}_getColumnSelectResult(S,w,E,x){return ColumnSelection.columnSelectUp(S.cursorConfig,S,E,this._isPaged)}}o.CursorColumnSelectUp=registerEditorCommand(new r({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3600,linux:{primary:0}}})),o.CursorColumnSelectPageUp=registerEditorCommand(new r({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3595,linux:{primary:0}}}));class s extends t{constructor(S){super(S),this._isPaged=S.isPaged}_getColumnSelectResult(S,w,E,x){return ColumnSelection.columnSelectDown(S.cursorConfig,S,E,this._isPaged)}}o.CursorColumnSelectDown=registerEditorCommand(new s({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3602,linux:{primary:0}}})),o.CursorColumnSelectPageDown=registerEditorCommand(new s({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3596,linux:{primary:0}}}));class a extends CoreEditorCommand{constructor(){super({id:"cursorMove",precondition:void 0,metadata:CursorMove.metadata})}runCoreEditorCommand(S,w){const E=CursorMove.parse(w);E&&this._runCursorMove(S,w.source,E)}_runCursorMove(S,w,E){const x=E.noHistory?"api":w;S.model.pushStackElement(),S.setCursorStates(x,3,a._move(S,S.getCursorStates(),E)),S.revealAllCursors(x,!0)}static _move(S,w,E){const x=E.select,L=E.value;switch(E.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(S,w,E.direction,x,L,E.unit);case 11:case 13:case 12:case 14:return CursorMoveCommands.viewportMove(S,w,E.direction,x,L);default:return null}}}o.CursorMoveImpl=a,o.CursorMove=registerEditorCommand(new a);class l extends CoreEditorCommand{constructor(S){super(S),this._staticArgs=S.args}runCoreEditorCommand(S,w){let E=this._staticArgs;this._staticArgs.value===-1&&(E={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:w.pageSize||S.cursorConfig.pageSize}),S.model.pushStackElement(),S.setCursorStates(w.source,3,CursorMoveCommands.simpleMove(S,S.getCursorStates(),E.direction,E.select,E.value,E.unit)),S.revealAllCursors(w.source,!0)}}o.CursorLeft=registerEditorCommand(new l({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 l({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 l({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 l({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 l({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 l({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 l({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 l({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 l({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 l({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 l({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 l({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(y,S){if(!S.position)return;let w;S.wholeLine?w=CursorMoveCommands.line(y,y.getPrimaryCursorState(),!1,S.position,S.viewPosition):w=CursorMoveCommands.moveTo(y,y.getPrimaryCursorState(),!1,S.position,S.viewPosition);const E=y.getCursorStates();if(E.length>1){const x=w.modelState?w.modelState.position:null,L=w.viewState?w.viewState.position:null;for(let k=0,D=E.length;k<D;k++){const I=E[k];if(!(x&&!I.modelState.selection.containsPosition(x))&&!(L&&!I.viewState.selection.containsPosition(L))){E.splice(k,1),y.model.pushStackElement(),y.setCursorStates(S.source,3,E);return}}}E.push(w),y.model.pushStackElement(),y.setCursorStates(S.source,3,E)}}),o.LastCursorMoveToSelect=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"_lastCursorMoveToSelect",precondition:void 0})}runCoreEditorCommand(y,S){if(!S.position)return;const w=y.getLastAddedCursorIndex(),E=y.getCursorStates(),x=E.slice(0);x[w]=CursorMoveCommands.moveTo(y,E[w],!0,S.position,S.viewPosition),y.model.pushStackElement(),y.setCursorStates(S.source,3,x)}});class c extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){S.model.pushStackElement(),S.setCursorStates(w.source,3,CursorMoveCommands.moveToBeginningOfLine(S,S.getCursorStates(),this._inSelectionMode)),S.revealAllCursors(w.source,!0)}}o.CursorHome=registerEditorCommand(new c({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 c({inSelectionMode:!0,id:"cursorHomeSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));class d extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){S.model.pushStackElement(),S.setCursorStates(w.source,3,this._exec(S.getCursorStates())),S.revealAllCursors(w.source,!0)}_exec(S){const w=[];for(let E=0,x=S.length;E<x;E++){const L=S[E],k=L.modelState.position.lineNumber;w[E]=CursorState$1.fromModelState(L.modelState.move(this._inSelectionMode,k,1,0))}return w}}o.CursorLineStart=registerEditorCommand(new d({inSelectionMode:!1,id:"cursorLineStart",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:287}}})),o.CursorLineStartSelect=registerEditorCommand(new d({inSelectionMode:!0,id:"cursorLineStartSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1311}}}));class u extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){S.model.pushStackElement(),S.setCursorStates(w.source,3,CursorMoveCommands.moveToEndOfLine(S,S.getCursorStates(),this._inSelectionMode,w.sticky||!1)),S.revealAllCursors(w.source,!0)}}o.CursorEnd=registerEditorCommand(new u({inSelectionMode:!1,id:"cursorEnd",precondition:void 0,kbOpts:{args:{sticky:!1},weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},metadata:{description:"Go to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:localize(66,"Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}})),o.CursorEndSelect=registerEditorCommand(new u({inSelectionMode:!0,id:"cursorEndSelect",precondition:void 0,kbOpts:{args:{sticky:!1},weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},metadata:{description:"Select to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:localize(67,"Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}}));class g extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){S.model.pushStackElement(),S.setCursorStates(w.source,3,this._exec(S,S.getCursorStates())),S.revealAllCursors(w.source,!0)}_exec(S,w){const E=[];for(let x=0,L=w.length;x<L;x++){const k=w[x],D=k.modelState.position.lineNumber,I=S.model.getLineMaxColumn(D);E[x]=CursorState$1.fromModelState(k.modelState.move(this._inSelectionMode,D,I,0))}return E}}o.CursorLineEnd=registerEditorCommand(new g({inSelectionMode:!1,id:"cursorLineEnd",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:291}}})),o.CursorLineEndSelect=registerEditorCommand(new g({inSelectionMode:!0,id:"cursorLineEndSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:1315}}}));class f extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){S.model.pushStackElement(),S.setCursorStates(w.source,3,CursorMoveCommands.moveToBeginningOfBuffer(S,S.getCursorStates(),this._inSelectionMode)),S.revealAllCursors(w.source,!0)}}o.CursorTop=registerEditorCommand(new f({inSelectionMode:!1,id:"cursorTop",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:2062,mac:{primary:2064}}})),o.CursorTopSelect=registerEditorCommand(new f({inSelectionMode:!0,id:"cursorTopSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3086,mac:{primary:3088}}}));class m extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){S.model.pushStackElement(),S.setCursorStates(w.source,3,CursorMoveCommands.moveToEndOfBuffer(S,S.getCursorStates(),this._inSelectionMode)),S.revealAllCursors(w.source,!0)}}o.CursorBottom=registerEditorCommand(new m({inSelectionMode:!1,id:"cursorBottom",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:2061,mac:{primary:2066}}})),o.CursorBottomSelect=registerEditorCommand(new m({inSelectionMode:!0,id:"cursorBottomSelect",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus,primary:3085,mac:{primary:3090}}}));class _ extends CoreEditorCommand{constructor(){super({id:"editorScroll",precondition:void 0,metadata:EditorScroll_.metadata})}determineScrollMethod(S){const w=[6],E=[1,2,3,4,5,6],x=[4,2],L=[1,3];return w.includes(S.unit)&&x.includes(S.direction)?this._runHorizontalEditorScroll.bind(this):E.includes(S.unit)&&L.includes(S.direction)?this._runVerticalEditorScroll.bind(this):null}runCoreEditorCommand(S,w){const E=EditorScroll_.parse(w);if(!E)return;const x=this.determineScrollMethod(E);x&&x(S,w.source,E)}_runVerticalEditorScroll(S,w,E){const x=this._computeDesiredScrollTop(S,E);if(E.revealCursor){const L=S.getCompletelyVisibleViewRangeAtScrollTop(x);S.setCursorStates(w,3,[CursorMoveCommands.findPositionInViewportIfOutside(S,S.getPrimaryCursorState(),L,E.select)])}S.viewLayout.setScrollPosition({scrollTop:x},0)}_computeDesiredScrollTop(S,w){if(w.unit===1){const L=S.viewLayout.getFutureViewport(),k=S.getCompletelyVisibleViewRangeAtScrollTop(L.top),D=S.coordinatesConverter.convertViewRangeToModelRange(k);let I;w.direction===1?I=Math.max(1,D.startLineNumber-w.value):I=Math.min(S.model.getLineCount(),D.startLineNumber+w.value);const T=S.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(I,1));return S.viewLayout.getVerticalOffsetForLineNumber(T.lineNumber)}if(w.unit===5){let L=0;return w.direction===3&&(L=S.model.getLineCount()-S.cursorConfig.pageSize),S.viewLayout.getVerticalOffsetForLineNumber(L)}let E;w.unit===3?E=S.cursorConfig.pageSize*w.value:w.unit===4?E=Math.round(S.cursorConfig.pageSize/2)*w.value:E=w.value;const x=(w.direction===1?-1:1)*E;return S.viewLayout.getCurrentScrollTop()+x*S.cursorConfig.lineHeight}_runHorizontalEditorScroll(S,w,E){const x=this._computeDesiredScrollLeft(S,E);S.viewLayout.setScrollPosition({scrollLeft:x},0)}_computeDesiredScrollLeft(S,w){const E=(w.direction===4?-1:1)*w.value;return S.viewLayout.getCurrentScrollLeft()+E*S.cursorConfig.typicalHalfwidthCharacterWidth}}o.EditorScrollImpl=_,o.EditorScroll=registerEditorCommand(new _),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(y,S){o.EditorScroll.runCoreEditorCommand(y,{to:EditorScroll_.RawDirection.Up,by:EditorScroll_.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:S.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(y,S){o.EditorScroll.runCoreEditorCommand(y,{to:EditorScroll_.RawDirection.Up,by:EditorScroll_.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:S.source})}}),o.ScrollEditorTop=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollEditorTop",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus}})}runCoreEditorCommand(y,S){o.EditorScroll.runCoreEditorCommand(y,{to:EditorScroll_.RawDirection.Up,by:EditorScroll_.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:S.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(y,S){o.EditorScroll.runCoreEditorCommand(y,{to:EditorScroll_.RawDirection.Down,by:EditorScroll_.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:S.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(y,S){o.EditorScroll.runCoreEditorCommand(y,{to:EditorScroll_.RawDirection.Down,by:EditorScroll_.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:S.source})}}),o.ScrollEditorBottom=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollEditorBottom",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus}})}runCoreEditorCommand(y,S){o.EditorScroll.runCoreEditorCommand(y,{to:EditorScroll_.RawDirection.Down,by:EditorScroll_.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:S.source})}}),o.ScrollLeft=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollLeft",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus}})}runCoreEditorCommand(y,S){o.EditorScroll.runCoreEditorCommand(y,{to:EditorScroll_.RawDirection.Left,by:EditorScroll_.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:S.source})}}),o.ScrollRight=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"scrollRight",precondition:void 0,kbOpts:{weight:CORE_WEIGHT,kbExpr:EditorContextKeys.textInputFocus}})}runCoreEditorCommand(y,S){o.EditorScroll.runCoreEditorCommand(y,{to:EditorScroll_.RawDirection.Right,by:EditorScroll_.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:S.source})}});class v extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){w.position&&(S.model.pushStackElement(),S.setCursorStates(w.source,3,[CursorMoveCommands.word(S,S.getPrimaryCursorState(),this._inSelectionMode,w.position)]),w.revealType!==2&&S.revealAllCursors(w.source,!0,!0))}}o.WordSelect=registerEditorCommand(new v({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),o.WordSelectDrag=registerEditorCommand(new v({inSelectionMode:!0,id:"_wordSelectDrag",precondition:void 0})),o.LastCursorWordSelect=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"lastCursorWordSelect",precondition:void 0})}runCoreEditorCommand(y,S){if(!S.position)return;const w=y.getLastAddedCursorIndex(),E=y.getCursorStates(),x=E.slice(0),L=E[w];x[w]=CursorMoveCommands.word(y,L,L.modelState.hasSelection(),S.position),y.model.pushStackElement(),y.setCursorStates(S.source,3,x)}});class b extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){w.position&&(S.model.pushStackElement(),S.setCursorStates(w.source,3,[CursorMoveCommands.line(S,S.getPrimaryCursorState(),this._inSelectionMode,w.position,w.viewPosition)]),w.revealType!==2&&S.revealAllCursors(w.source,!1,!0))}}o.LineSelect=registerEditorCommand(new b({inSelectionMode:!1,id:"_lineSelect",precondition:void 0})),o.LineSelectDrag=registerEditorCommand(new b({inSelectionMode:!0,id:"_lineSelectDrag",precondition:void 0}));class C extends CoreEditorCommand{constructor(S){super(S),this._inSelectionMode=S.inSelectionMode}runCoreEditorCommand(S,w){if(!w.position)return;const E=S.getLastAddedCursorIndex(),x=S.getCursorStates(),L=x.slice(0);L[E]=CursorMoveCommands.line(S,x[E],this._inSelectionMode,w.position,w.viewPosition),S.model.pushStackElement(),S.setCursorStates(w.source,3,L)}}o.LastCursorLineSelect=registerEditorCommand(new C({inSelectionMode:!1,id:"lastCursorLineSelect",precondition:void 0})),o.LastCursorLineSelectDrag=registerEditorCommand(new C({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(y,S){y.model.pushStackElement(),y.setCursorStates(S.source,3,[CursorMoveCommands.cancelSelection(y,y.getPrimaryCursorState())]),y.revealAllCursors(S.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(y,S){y.model.pushStackElement(),y.setCursorStates(S.source,3,[y.getPrimaryCursorState()]),y.revealAllCursors(S.source,!0),status(localize(68,"Removed secondary cursors"))}}),o.RevealLine=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"revealLine",precondition:void 0,metadata:RevealLine_.metadata})}runCoreEditorCommand(y,S){const w=S,E=w.lineNumber||0;let x=typeof E=="number"?E+1:parseInt(E)+1;x<1&&(x=1);const L=y.model.getLineCount();x>L&&(x=L);const k=new Range$2(x,1,x,y.model.getLineMaxColumn(x));let D=0;if(w.at)switch(w.at){case RevealLine_.RawAtArgument.Top:D=3;break;case RevealLine_.RawAtArgument.Center:D=1;break;case RevealLine_.RawAtArgument.Bottom:D=4;break}const I=y.coordinatesConverter.convertModelRangeToViewRange(k);y.revealRange(S.source,!1,I,D,0)}}),o.SelectAll=new class extends EditorOrNativeTextInputCommand{constructor(){super(SelectAllCommand)}runDOMCommand(y){isFirefox$1&&(y.focus(),y.select()),y.ownerDocument.execCommand("selectAll")}runEditorCommand(y,S,w){const E=S._getViewModel();E&&this.runCoreEditorCommand(E,w)}runCoreEditorCommand(y,S){y.model.pushStackElement(),y.setCursorStates("keyboard",3,[CursorMoveCommands.selectAll(y,y.getPrimaryCursorState())])}},o.SetSelection=registerEditorCommand(new class extends CoreEditorCommand{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(y,S){S.selection&&(y.model.pushStackElement(),y.setCursorStates(S.source,3,[CursorState$1.fromModelSelection(S.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(r,s,a){const l=s._getViewModel();l&&this.runCoreEditingCommand(s,l,a||{})}}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,r,s){t.pushUndoStop(),t.executeCommands(this.id,EnterOperation.lineBreakInsert(r.cursorConfig,r.model,r.getCursorStates().map(a=>a.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,r,s){t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.outdent(r.cursorConfig,r.model,r.getCursorStates().map(a=>a.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,r,s){t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.tab(r.cursorConfig,r.model,r.getCursorStates().map(a=>a.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,r,s){const[a,l]=DeleteOperations.deleteLeft(r.getPrevEditOperationType(),r.cursorConfig,r.model,r.getCursorStates().map(c=>c.modelState.selection),r.getCursorAutoClosedCharacters());a&&t.pushUndoStop(),t.executeCommands(this.id,l),r.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,r,s){const[a,l]=DeleteOperations.deleteRight(r.getPrevEditOperationType(),r.cursorConfig,r.model,r.getCursorStates().map(c=>c.modelState.selection));a&&t.pushUndoStop(),t.executeCommands(this.id,l),r.setPrevEditOperationType(3)}}),o.Undo=new class extends EditorOrNativeTextInputCommand{constructor(){super(UndoCommand)}runDOMCommand(t){t.ownerDocument.execCommand("undo")}runEditorCommand(t,r,s){if(!(!r.hasModel()||r.getOption(104)===!0))return r.getModel().undo()}},o.Redo=new class extends EditorOrNativeTextInputCommand{constructor(){super(RedoCommand)}runDOMCommand(t){t.ownerDocument.execCommand("redo")}runEditorCommand(t,r,s){if(!(!r.hasModel()||r.getOption(104)===!0))return r.getModel().redo()}}})(CoreEditingCommands||(CoreEditingCommands={}));class EditorHandlerCommand extends Command$1{constructor(e,t,r){super({id:e,precondition:void 0,metadata:r}),this._handlerId=t}runCommand(e,t){const r=e.get(ICodeEditorService).getFocusedCodeEditor();r&&r.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");const IMarkerDecorationsService=createDecorator("markerDecorationsService");var __decorate$38=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2Z=function(o,e){return function(t,r){e(t,r,o)}},fr;let MarkerDecorationsContribution=(fr=class{constructor(e,t){}dispose(){}},fr.ID="editor.contrib.markerDecorations",fr);MarkerDecorationsContribution=__decorate$38([__param$2Z(1,IMarkerDecorationsService)],MarkerDecorationsContribution);registerEditorContribution(MarkerDecorationsContribution.ID,MarkerDecorationsContribution,0);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=""}focus(){this.domNode.focus()}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"?"".concat(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 ElementSizeObserver extends Disposable$1{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 r=!1,s=!1;const a=()=>{if(r&&!s)try{r=!1,s=!0,t()}finally{scheduleAtNextAnimationFrame(getWindow$1(this._referenceDomElement),()=>{s=!1,a()})}};this._resizeObserver=new ResizeObserver(l=>{l&&l[0]&&l[0].contentRect?e={width:l[0].contentRect.width,height:l[0].contentRect.height}:e=null,r=!0,a()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let r=0,s=0;t?(r=t.width,s=t.height):this._referenceDomElement&&(r=this._referenceDomElement.clientWidth,s=this._referenceDomElement.clientHeight),r=Math.max(5,r),s=Math.max(5,s),(this._width!==r||this._height!==s)&&(this._width=r,this._height=s,e&&this._onDidChange.fire())}}class DevicePixelRatioMonitor extends Disposable$1{constructor(e){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(e,!0),this._mediaQueryList=null,this._handleChange(e,!1)}_handleChange(e,t){var r;(r=this._mediaQueryList)==null||r.removeEventListener("change",this._listener),this._mediaQueryList=e.matchMedia("(resolution: ".concat(e.devicePixelRatio,"dppx)")),this._mediaQueryList.addEventListener("change",this._listener),t&&this._onDidChange.fire()}}class PixelRatioMonitorImpl extends Disposable$1{get value(){return this._value}constructor(e){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(e);const t=this._register(new DevicePixelRatioMonitor(e));this._register(t.onDidChange(()=>{this._value=this._getPixelRatio(e),this._onDidChange.fire(this._value)}))}_getPixelRatio(e){const t=document.createElement("canvas").getContext("2d"),r=e.devicePixelRatio||1,s=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return r/s}}class PixelRatioMonitorFacade{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(e){const t=getWindowId(e);let r=this.mapWindowIdToPixelRatioMonitor.get(t);return r||(r=new PixelRatioMonitorImpl(e),this.mapWindowIdToPixelRatioMonitor.set(t,r),Event$1.once(onDidUnregisterWindow)(({vscodeWindowId:s})=>{s===t&&(r==null||r.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(t))})),r}getInstance(e){return this._getOrCreatePixelRatioMonitor(e)}}const PixelRatio=new PixelRatioMonitorFacade;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(e){var t;this._createDomElements(),e.document.body.appendChild(this._container),this._readFromDomElements(),(t=this._container)==null||t.remove(),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 r=document.createElement("div");applyFontInfo(r,this._bareFontInfo),r.style.fontWeight="bold",e.appendChild(r);const s=document.createElement("div");applyFontInfo(s,this._bareFontInfo),s.style.fontStyle="italic",e.appendChild(s);const a=[];for(const l of this._requests){let c;l.type===0&&(c=t),l.type===2&&(c=r),l.type===1&&(c=s),c.appendChild(document.createElement("br"));const d=document.createElement("span");DomCharWidthReader._render(d,l),c.appendChild(d),a.push(d)}this._container=e,this._testElements=a}static _render(e,t){if(t.chr===" "){let r=" ";for(let s=0;s<8;s++)r+=r;e.innerText=r}else{let r=t.chr;for(let s=0;s<8;s++)r+=r;e.textContent=r}}_readFromDomElements(){for(let e=0,t=this._requests.length;e<t;e++){const r=this._requests[e],s=this._testElements[e];r.fulfill(s.offsetWidth/256)}}}function readCharWidths(o,e,t){new DomCharWidthReader(e,t).read(o)}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 _create(e,t,r,s,a,l,c,d,u){l===0?l=GOLDEN_LINE_HEIGHT_RATIO*r:l<MINIMUM_LINE_HEIGHT&&(l=l*r),l=Math.round(l),l<MINIMUM_LINE_HEIGHT&&(l=MINIMUM_LINE_HEIGHT);const g=1+(u?0:EditorZoom.getZoomLevel()*.1);if(r*=g,l*=g,a===FONT_VARIATION_TRANSLATE)if(t==="normal"||t==="bold")a=FONT_VARIATION_OFF;else{const f=parseInt(t,10);a="'wght' ".concat(f),t="normal"}return new BareFontInfo({pixelRatio:d,fontFamily:e,fontWeight:t,fontSize:r,fontFeatureSettings:s,fontVariationSettings:a,lineHeight:l,letterSpacing:c})}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"".concat(this.pixelRatio,"-").concat(this.fontFamily,"-").concat(this.fontWeight,"-").concat(this.fontSize,"-").concat(this.fontFeatureSettings,"-").concat(this.fontVariationSettings,"-").concat(this.lineHeight,"-").concat(this.letterSpacing)}getMassagedFontFamily(){const e=EDITOR_FONT_DEFAULTS.fontFamily,t=BareFontInfo._wrapInQuotes(this.fontFamily);return this.fontFamily!==e?"".concat(t,", ").concat(e):t}static _wrapInQuotes(e){return/[,"']/.test(e)?e:/[+ ]/.test(e)?'"'.concat(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}}const FONT_VARIATION_OFF="normal",FONT_VARIATION_TRANSLATE="translate",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:isWindows?DEFAULT_WINDOWS_FONT_FAMILY:DEFAULT_LINUX_FONT_FAMILY,fontWeight:"normal",fontSize:isMacintosh?12:14,lineHeight:0,letterSpacing:0},EDITOR_MODEL_DEFAULTS={tabSize:4,indentSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},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,r,s){this.id=e,this.name=t,this.defaultValue=r,this.schema=s}applyUpdate(e,t){return applyUpdate(e,t)}compute(e,t,r){return r}}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 r=Array.isArray(o)&&Array.isArray(e)&&equals$2(o,e);return new ApplyUpdateResult(e,!r)}let t=!1;for(const r in e)if(e.hasOwnProperty(r)){const s=applyUpdate(o[r],e[r]);s.didChange&&(o[r]=s.newValue,t=!0)}return new ApplyUpdateResult(o,t)}class ComputedEditorOption{constructor(e,t){this.schema=void 0,this.id=e,this.name="_never_",this.defaultValue=t}applyUpdate(e,t){return applyUpdate(e,t)}validate(e){return this.defaultValue}}class SimpleEditorOption{constructor(e,t,r,s){this.id=e,this.name=t,this.defaultValue=r,this.schema=s}applyUpdate(e,t){return applyUpdate(e,t)}compute(e,t,r){return r}}function boolean(o,e){return typeof o>"u"?e:o==="false"?!1:!!o}class EditorBooleanOption extends SimpleEditorOption{constructor(e,t,r,s=void 0){typeof s<"u"&&(s.type="boolean",s.default=r),super(e,t,r,s)}validate(e){return boolean(e,this.defaultValue)}}function clampedInt(o,e,t,r){if(typeof o=="string"&&(o=parseInt(o,10)),typeof o!="number"||isNaN(o))return e;let s=o;return s=Math.max(t,s),s=Math.min(r,s),s|0}class EditorIntOption extends SimpleEditorOption{static clampedInt(e,t,r,s){return clampedInt(e,t,r,s)}constructor(e,t,r,s,a,l=void 0){typeof l<"u"&&(l.type="integer",l.default=r,l.minimum=s,l.maximum=a),super(e,t,r,l),this.minimum=s,this.maximum=a}validate(e){return EditorIntOption.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}function clampedFloat(o,e,t,r){if(typeof o>"u")return e;const s=EditorFloatOption.float(o,e);return EditorFloatOption.clamp(s,t,r)}class EditorFloatOption extends SimpleEditorOption{static clamp(e,t,r){return e<t?t:e>r?r:e}static float(e,t){return typeof e=="string"&&(e=parseFloat(e)),typeof e!="number"||isNaN(e)?t:e}constructor(e,t,r,s,a,l,c){typeof a<"u"&&(a.type="number",a.default=r,a.minimum=l,a.maximum=c),super(e,t,r,a),this.validationFn=s,this.minimum=l,this.maximum=c}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,r,s=void 0){typeof s<"u"&&(s.type="string",s.default=r),super(e,t,r,s)}validate(e){return EditorStringOption.string(e,this.defaultValue)}}function stringSet(o,e,t,r){return typeof o!="string"?e:r&&o in r?r[o]:t.indexOf(o)===-1?e:o}class EditorStringEnumOption extends SimpleEditorOption{constructor(e,t,r,s,a=void 0){typeof a<"u"&&(a.type="string",a.enum=s.slice(0),a.default=r),super(e,t,r,a),this._allowedValues=s}validate(e){return stringSet(e,this.defaultValue,this._allowedValues)}}class EditorEnumOption extends BaseEditorOption{constructor(e,t,r,s,a,l,c=void 0){typeof c<"u"&&(c.type="string",c.enum=a,c.default=s),super(e,t,r,c),this._allowedValues=a,this._convert=l}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(201,"Use platform APIs to detect when a Screen Reader is attached."),localize(202,"Optimize for usage with a Screen Reader."),localize(203,"Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:localize(204,"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,r){return r===0?e.accessibilitySupport:r}}class EditorComments extends BaseEditorOption{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(29,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:localize(205,"Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:localize(206,"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(162,"")}compute(e,t,r){const s=["monaco-editor"];return t.get(48)&&s.push(t.get(48)),e.extraEditorClassName&&s.push(e.extraEditorClassName),t.get(82)==="default"?s.push("mouse-default"):t.get(82)==="copy"&&s.push("mouse-copy"),t.get(127)&&s.push("showUnused"),t.get(157)&&s.push("showDeprecated"),s.join(" ")}}class EditorEmptySelectionClipboard extends EditorBooleanOption{constructor(){super(45,"emptySelectionClipboard",!0,{description:localize(207,"Controls whether copying without a selection copies the current line.")})}compute(e,t,r){return r&&e.emptySelectionClipboard}}class EditorFind extends BaseEditorOption{constructor(){const e={cursorMoveOnType:!0,findOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0,history:"workspace",replaceHistory:"workspace"};super(50,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:localize(208,"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(209,"Never seed search string from the editor selection."),localize(210,"Always seed search string from the editor selection, including word at cursor position."),localize(211,"Only seed search string from the editor selection.")],description:localize(212,"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(213,"Never turn on Find in Selection automatically (default)."),localize(214,"Always turn on Find in Selection automatically."),localize(215,"Turn on Find in Selection automatically when multiple lines of content are selected.")],description:localize(216,"Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:localize(217,"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(218,"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(219,"Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")},"editor.find.history":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[localize(220,"Do not store search history from the find widget."),localize(221,"Store search history across the active workspace")],description:localize(222,"Controls how the find widget history should be stored")},"editor.find.replaceHistory":{type:"string",enum:["never","workspace"],default:"workspace",enumDescriptions:[localize(223,"Do not store history from the replace widget."),localize(224,"Store replace history across the active workspace")],description:localize(225,"Controls how the replace widget history should be stored")},"editor.find.findOnType":{type:"boolean",default:e.findOnType,description:localize(226,"Controls whether the Find Widget should search as you type.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{cursorMoveOnType:boolean(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),findOnType:boolean(t.findOnType,this.defaultValue.findOnType),seedSearchStringFromSelection:typeof t.seedSearchStringFromSelection=="boolean"?t.seedSearchStringFromSelection?"always":"never":stringSet(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof t.autoFindInSelection=="boolean"?t.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),history:stringSet(t.history,this.defaultValue.history,["never","workspace"]),replaceHistory:stringSet(t.replaceHistory,this.defaultValue.replaceHistory,["never","workspace"])}}}const Yt=class Yt extends BaseEditorOption{constructor(){super(60,"fontLigatures",Yt.OFF,{anyOf:[{type:"boolean",description:localize(227,"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(228,"Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:localize(229,"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"||e.length===0?Yt.OFF:e==="true"?Yt.ON:e:e?Yt.ON:Yt.OFF}};Yt.OFF='"liga" off, "calt" off',Yt.ON='"liga" on, "calt" on';let EditorFontLigatures=Yt;const Xt=class Xt extends BaseEditorOption{constructor(){super(63,"fontVariations",Xt.OFF,{anyOf:[{type:"boolean",description:localize(230,"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(231,"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(232,"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"?Xt.OFF:e==="true"?Xt.TRANSLATE:e:e?Xt.TRANSLATE:Xt.OFF}compute(e,t,r){return e.fontInfo.fontVariationSettings}};Xt.OFF=FONT_VARIATION_OFF,Xt.TRANSLATE=FONT_VARIATION_TRANSLATE;let EditorFontVariations=Xt;class EditorFontInfo extends ComputedEditorOption{constructor(){super(59,new FontInfo({pixelRatio:0,fontFamily:"",fontWeight:"",fontSize:0,fontFeatureSettings:"",fontVariationSettings:"",lineHeight:0,letterSpacing:0,isMonospace:!1,typicalHalfwidthCharacterWidth:0,typicalFullwidthCharacterWidth:0,canUseHalfwidthRightwardsArrow:!1,spaceWidth:0,middotWidth:0,wsmiddotWidth:0,maxDigitWidth:0},!1))}compute(e,t,r){return e.fontInfo}}class EffectiveCursorStyle extends ComputedEditorOption{constructor(){super(161,TextEditorCursorStyle$1.Line)}compute(e,t,r){return e.inputMode==="overtype"?t.get(92):t.get(34)}}class EffectiveEditContextEnabled extends ComputedEditorOption{constructor(){super(170,!1)}compute(e,t){return e.editContextSupported&&t.get(44)}}class EffectiveAllowVariableFonts extends ComputedEditorOption{constructor(){super(172,!1)}compute(e,t){return e.accessibilitySupport===2?t.get(7):t.get(6)}}class EditorFontSize extends SimpleEditorOption{constructor(){super(61,"fontSize",EDITOR_FONT_DEFAULTS.fontSize,{type:"number",minimum:6,maximum:100,default:EDITOR_FONT_DEFAULTS.fontSize,description:localize(233,"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,r){return e.fontInfo.fontSize}}const At=class At extends BaseEditorOption{constructor(){super(62,"fontWeight",EDITOR_FONT_DEFAULTS.fontWeight,{anyOf:[{type:"number",minimum:At.MINIMUM_VALUE,maximum:At.MAXIMUM_VALUE,errorMessage:localize(234,'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:At.SUGGESTION_VALUES}],default:EDITOR_FONT_DEFAULTS.fontWeight,description:localize(235,'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,At.MINIMUM_VALUE,At.MAXIMUM_VALUE))}};At.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],At.MINIMUM_VALUE=1,At.MAXIMUM_VALUE=1e3;let EditorFontWeight=At;class EditorGoToLocation extends BaseEditorOption{constructor(){const e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",multipleTests:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:"",alternativeTestsCommand:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[localize(236,"Show Peek view of the results (default)"),localize(237,"Go to the primary result and show a Peek view"),localize(238,"Go to the primary result and enable Peek-less navigation to others")]},r=["","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(67,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:localize(239,"This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:localize(240,"Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleTypeDefinitions":{description:localize(241,"Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleDeclarations":{description:localize(242,"Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleImplementations":{description:localize(243,"Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleReferences":{description:localize(244,"Controls the behavior the 'Go to References'-command when multiple target locations exist."),...t},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:r,description:localize(245,"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:r,description:localize(246,"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:r,description:localize(247,"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:r,description:localize(248,"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:r,description:localize(249,"Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{multiple:stringSet(t.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:stringSet(t.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:stringSet(t.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:stringSet(t.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:stringSet(t.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:stringSet(t.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),multipleTests:stringSet(t.multipleTests,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:EditorStringOption.string(t.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:EditorStringOption.string(t.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:EditorStringOption.string(t.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:EditorStringOption.string(t.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:EditorStringOption.string(t.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand),alternativeTestsCommand:EditorStringOption.string(t.alternativeTestsCommand,this.defaultValue.alternativeTestsCommand)}}}class EditorHover extends BaseEditorOption{constructor(){const e={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(69,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:localize(250,"Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:localize(251,"Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:localize(252,"Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:e.hidingDelay,markdownDescription:localize(253,"Controls the delay in milliseconds after which the hover is hidden. Requires `#editor.hover.sticky#` to be enabled.")},"editor.hover.above":{type:"boolean",default:e.above,description:localize(254,"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(165,{width:0,height:0,glyphMarginLeft:0,glyphMarginWidth:0,glyphMarginDecorationLaneCount:0,lineNumbersLeft:0,lineNumbersWidth:0,decorationsLeft:0,decorationsWidth:0,contentLeft:0,contentWidth:0,minimap:{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:0,minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:0},viewportColumn:0,isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1,verticalScrollbarWidth:0,horizontalScrollbarHeight:0,overviewRuler:{top:0,width:0,height:0,right:0}})}compute(e,t,r){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,r=Math.floor(e.paddingTop/e.lineHeight);let s=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(s=Math.max(s,t-1));const a=(r+e.viewLineCount+s)/(e.pixelRatio*e.height),l=Math.floor(e.viewLineCount/a);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:r,extraLinesBeyondLastLine:s,desiredRatio:a,minimapLineCount:l}}static _computeMinimapLayout(e,t){const r=e.outerWidth,s=e.outerHeight,a=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(a*s),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:s};const l=t.stableMinimapLayoutInput,c=l&&e.outerHeight===l.outerHeight&&e.lineHeight===l.lineHeight&&e.typicalHalfwidthCharacterWidth===l.typicalHalfwidthCharacterWidth&&e.pixelRatio===l.pixelRatio&&e.scrollBeyondLastLine===l.scrollBeyondLastLine&&e.paddingTop===l.paddingTop&&e.paddingBottom===l.paddingBottom&&e.minimap.enabled===l.minimap.enabled&&e.minimap.side===l.minimap.side&&e.minimap.size===l.minimap.size&&e.minimap.showSlider===l.minimap.showSlider&&e.minimap.renderCharacters===l.minimap.renderCharacters&&e.minimap.maxColumn===l.minimap.maxColumn&&e.minimap.scale===l.minimap.scale&&e.verticalScrollbarWidth===l.verticalScrollbarWidth&&e.isViewportWrapping===l.isViewportWrapping,d=e.lineHeight,u=e.typicalHalfwidthCharacterWidth,g=e.scrollBeyondLastLine,f=e.minimap.renderCharacters;let m=a>=2?Math.round(e.minimap.scale*2):e.minimap.scale;const _=e.minimap.maxColumn,v=e.minimap.size,b=e.minimap.side,C=e.verticalScrollbarWidth,y=e.viewLineCount,S=e.remainingWidth,w=e.isViewportWrapping,E=f?2:3;let x=Math.floor(a*s);const L=x/a;let k=!1,D=!1,I=E*m,T=m/a,M=1;if(v==="fill"||v==="fit"){const{typicalViewportLineCount:B,extraLinesBeforeFirstLine:H,extraLinesBeyondLastLine:V,desiredRatio:U,minimapLineCount:j}=EditorLayoutInfoComputer.computeContainedMinimapLineCount({viewLineCount:y,scrollBeyondLastLine:g,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:s,lineHeight:d,pixelRatio:a});if(y/j>1)k=!0,D=!0,m=1,I=1,T=m/a;else{let ee=!1,Z=m+1;if(v==="fit"){const J=Math.ceil((H+y+V)*I);w&&c&&S<=t.stableFitRemainingWidth?(ee=!0,Z=t.stableFitMaxMinimapScale):ee=J>x}if(v==="fill"||ee){k=!0;const J=m;I=Math.min(d*a,Math.max(1,Math.floor(1/U))),w&&c&&S<=t.stableFitRemainingWidth&&(Z=t.stableFitMaxMinimapScale),m=Math.min(Z,Math.max(1,Math.floor(I/E))),m>J&&(M=Math.min(2,m/J)),T=m/a/M,x=Math.ceil(Math.max(B,H+y+V)*I),w?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=S,t.stableFitMaxMinimapScale=m):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const R=Math.floor(_*T),N=Math.min(R,Math.max(0,Math.floor((S-C-2)*T/(u+T)))+MINIMAP_GUTTER_WIDTH);let A=Math.floor(a*N);const O=A/a;A=Math.floor(A*M);const P=f?1:2,F=b==="left"?0:r-N-C;return{renderMinimap:P,minimapLeft:F,minimapWidth:N,minimapHeightIsEditorHeight:k,minimapIsSampling:D,minimapScale:m,minimapLineHeight:I,minimapCanvasInnerWidth:A,minimapCanvasInnerHeight:x,minimapCanvasOuterWidth:O,minimapCanvasOuterHeight:L}}static computeLayout(e,t){const r=t.outerWidth|0,s=t.outerHeight|0,a=t.lineHeight|0,l=t.lineNumbersDigitCount|0,c=t.typicalHalfwidthCharacterWidth,d=t.maxDigitWidth,u=t.pixelRatio,g=t.viewLineCount,f=e.get(154),m=f==="inherit"?e.get(153):f,_=m==="inherit"?e.get(149):m,v=e.get(152),b=t.isDominatedByLongLines,C=e.get(66),y=e.get(76).renderType!==0,S=e.get(77),w=e.get(119),E=e.get(96),x=e.get(81),L=e.get(117),k=L.verticalScrollbarSize,D=L.verticalHasArrows,I=L.arrowSize,T=L.horizontalScrollbarSize,M=e.get(52),R=e.get(126)!=="never";let N=e.get(74);M&&R&&(N+=16);let A=0;if(y){const Q=Math.max(l,S);A=Math.round(Q*d)}let O=0;C&&(O=a*t.glyphMarginDecorationLaneCount);let P=0,F=P+O,B=F+A,H=B+N;const V=r-O-A-N;let U=!1,j=!1,X=-1;e.get(2)===2&&m==="inherit"&&b?(U=!0,j=!0):_==="on"||_==="bounded"?j=!0:_==="wordWrapColumn"&&(X=v);const ee=EditorLayoutInfoComputer._computeMinimapLayout({outerWidth:r,outerHeight:s,lineHeight:a,typicalHalfwidthCharacterWidth:c,pixelRatio:u,scrollBeyondLastLine:w,paddingTop:E.top,paddingBottom:E.bottom,minimap:x,verticalScrollbarWidth:k,viewLineCount:g,remainingWidth:V,isViewportWrapping:j},t.memory||new ComputeOptionsMemory);ee.renderMinimap!==0&&ee.minimapLeft===0&&(P+=ee.minimapWidth,F+=ee.minimapWidth,B+=ee.minimapWidth,H+=ee.minimapWidth);const Z=V-ee.minimapWidth,J=Math.max(1,Math.floor((Z-k-2)/c)),q=D?I:0;return j&&(X=Math.max(1,J),_==="bounded"&&(X=Math.min(X,v))),{width:r,height:s,glyphMarginLeft:P,glyphMarginWidth:O,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:F,lineNumbersWidth:A,decorationsLeft:B,decorationsWidth:N,contentLeft:H,contentWidth:Z,minimap:ee,viewportColumn:J,isWordWrapMinified:U,isViewportWrapping:j,wrappingColumn:X,verticalScrollbarWidth:k,horizontalScrollbarHeight:T,overviewRuler:{top:q,width:k,height:s-2*q,right:0}}}}class WrappingStrategy extends BaseEditorOption{constructor(){super(156,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[localize(255,"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(256,"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(257,"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,r){return t.get(2)===2?"advanced":r}}var ShowLightbulbIconMode$1;(function(o){o.Off="off",o.OnCode="onCode",o.On="on"})(ShowLightbulbIconMode$1||(ShowLightbulbIconMode$1={}));class EditorLightbulb extends BaseEditorOption{constructor(){const e={enabled:ShowLightbulbIconMode$1.OnCode};super(73,"lightbulb",e,{"editor.lightbulb.enabled":{type:"string",enum:[ShowLightbulbIconMode$1.Off,ShowLightbulbIconMode$1.OnCode,ShowLightbulbIconMode$1.On],default:e.enabled,enumDescriptions:[localize(258,"Disable the code action menu."),localize(259,"Show the code action menu when the cursor is on lines with code."),localize(260,"Show the code action menu when the cursor is on lines with code or on empty lines.")],description:localize(261,"Enables the Code Action lightbulb in the editor.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:stringSet(e.enabled,this.defaultValue.enabled,[ShowLightbulbIconMode$1.Off,ShowLightbulbIconMode$1.OnCode,ShowLightbulbIconMode$1.On])}}}class EditorStickyScroll extends BaseEditorOption{constructor(){const e={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(131,"stickyScroll",e,{"editor.stickyScroll.enabled":{type:"boolean",default:e.enabled,description:localize(262,"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:20,description:localize(263,"Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:e.defaultModel,description:localize(264,"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(265,"Enable scrolling of Sticky Scroll 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,20),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,maximumLength:43};super(159,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:localize(266,"Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[localize(267,"Inlay hints are enabled"),localize(268,"Inlay hints are showing by default and hide when holding {0}",isMacintosh?"Ctrl+Option":"Ctrl+Alt"),localize(269,"Inlay hints are hidden by default and show when holding {0}",isMacintosh?"Ctrl+Option":"Ctrl+Alt"),localize(270,"Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:localize(271,"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(272,"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(273,"Enables the padding around the inlay hints in the editor.")},"editor.inlayHints.maximumLength":{type:"number",default:e.maximumLength,markdownDescription:localize(274,"Maximum overall length of inlay hints, for a single line, before they get truncated by the editor. Set to `0` to never truncate")}})}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),maximumLength:EditorIntOption.clampedInt(t.maximumLength,this.defaultValue.maximumLength,0,Number.MAX_SAFE_INTEGER)}}}class EditorLineDecorationsWidth extends BaseEditorOption{constructor(){super(74,"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,r){return r<0?EditorIntOption.clampedInt(-r*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):r}}class EditorLineHeight extends EditorFloatOption{constructor(){super(75,"lineHeight",EDITOR_FONT_DEFAULTS.lineHeight,e=>EditorFloatOption.clamp(e,0,150),{markdownDescription:localize(275,"Controls the line height. \n - Use 0 to automatically compute the line height from the font size.\n - Values between 0 and 8 will be used as a multiplier with the font size.\n - Values greater than or equal to 8 will be used as effective values.")},0,150)}compute(e,t,r){return e.fontInfo.lineHeight}}class EditorMinimap extends BaseEditorOption{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:"none",renderCharacters:!0,maxColumn:120,scale:1,showRegionSectionHeaders:!0,showMarkSectionHeaders:!0,markSectionHeaderRegex:"\\bMARK:\\s*(?<separator>-?)\\s*(?<label>.*)$",sectionHeaderFontSize:9,sectionHeaderLetterSpacing:1};super(81,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:localize(276,"Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"string",enum:["none","mouseover","scroll"],enumDescriptions:[localize(277,"The minimap is always shown."),localize(278,"The minimap is hidden when mouse is not over the minimap and shown when mouse is over the minimap."),localize(279,"The minimap is only shown when the editor is scrolled")],default:e.autohide,description:localize(280,"Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[localize(281,"The minimap has the same size as the editor contents (and might scroll)."),localize(282,"The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),localize(283,"The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:localize(284,"Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:localize(285,"Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:localize(286,"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(287,"Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:localize(288,"Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:localize(289,"Limit the width of the minimap to render at most a certain number of columns.")},"editor.minimap.showRegionSectionHeaders":{type:"boolean",default:e.showRegionSectionHeaders,description:localize(290,"Controls whether named regions are shown as section headers in the minimap.")},"editor.minimap.showMarkSectionHeaders":{type:"boolean",default:e.showMarkSectionHeaders,description:localize(291,"Controls whether MARK: comments are shown as section headers in the minimap.")},"editor.minimap.markSectionHeaderRegex":{type:"string",default:e.markSectionHeaderRegex,description:localize(292,"Defines the regular expression used to find section headers in comments. The regex must contain a named match group `label` (written as `(?<label>.+)`) that encapsulates the section header, otherwise it will not work. Optionally you can include another match group named `separator`. Use \\n in the pattern to match multi-line headers.")},"editor.minimap.sectionHeaderFontSize":{type:"number",default:e.sectionHeaderFontSize,description:localize(293,"Controls the font size of section headers in the minimap.")},"editor.minimap.sectionHeaderLetterSpacing":{type:"number",default:e.sectionHeaderLetterSpacing,description:localize(294,"Controls the amount of space (in pixels) between characters of section header. This helps the readability of the header in small font sizes.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;let r=this.defaultValue.markSectionHeaderRegex;const s=t.markSectionHeaderRegex;if(typeof s=="string")try{new RegExp(s,"d"),r=s}catch(a){}return{enabled:boolean(t.enabled,this.defaultValue.enabled),autohide:stringSet(t.autohide,this.defaultValue.autohide,["none","mouseover","scroll"]),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),showRegionSectionHeaders:boolean(t.showRegionSectionHeaders,this.defaultValue.showRegionSectionHeaders),showMarkSectionHeaders:boolean(t.showMarkSectionHeaders,this.defaultValue.showMarkSectionHeaders),markSectionHeaderRegex:r,sectionHeaderFontSize:EditorFloatOption.clamp(EditorFloatOption.float(t.sectionHeaderFontSize,this.defaultValue.sectionHeaderFontSize),4,32),sectionHeaderLetterSpacing:EditorFloatOption.clamp(EditorFloatOption.float(t.sectionHeaderLetterSpacing,this.defaultValue.sectionHeaderLetterSpacing),0,5)}}}function _multiCursorModifierFromString(o){return o==="ctrlCmd"?isMacintosh?"metaKey":"ctrlKey":"altKey"}class EditorPadding extends BaseEditorOption{constructor(){super(96,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:localize(295,"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(296,"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(98,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:localize(297,"Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:localize(298,"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(163,1)}compute(e,t,r){return e.pixelRatio}}class PlaceholderOption extends BaseEditorOption{constructor(){super(100,"placeholder",void 0)}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e:this.defaultValue}}class EditorQuickSuggestions extends BaseEditorOption{constructor(){const e={other:"on",comments:"off",strings:"off"},t=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[localize(299,"Quick suggestions show inside the suggest widget"),localize(300,"Quick suggestions show as ghost text"),localize(301,"Quick suggestions are disabled")]}];super(102,"quickSuggestions",e,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:localize(302,"Enable quick suggestions inside strings.")},comments:{anyOf:t,default:e.comments,description:localize(303,"Enable quick suggestions inside comments.")},other:{anyOf:t,default:e.other,description:localize(304,"Enable quick suggestions outside of strings and comments.")}},default:e,markdownDescription:localize(305,"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 u=e?"on":"off";return{comments:u,strings:u,other:u}}if(!e||typeof e!="object")return this.defaultValue;const{other:t,comments:r,strings:s}=e,a=["on","inline","off"];let l,c,d;return typeof t=="boolean"?l=t?"on":"off":l=stringSet(t,this.defaultValue.other,a),typeof r=="boolean"?c=r?"on":"off":c=stringSet(r,this.defaultValue.comments,a),typeof s=="boolean"?d=s?"on":"off":d=stringSet(s,this.defaultValue.strings,a),{other:l,comments:c,strings:d}}}class EditorRenderLineNumbersOption extends BaseEditorOption{constructor(){super(76,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[localize(306,"Line numbers are not rendered."),localize(307,"Line numbers are rendered as absolute number."),localize(308,"Line numbers are rendered as distance in lines to cursor position."),localize(309,"Line numbers are rendered every 10 lines.")],default:"on",description:localize(310,"Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,r=this.defaultValue.renderFn;return typeof e<"u"&&(typeof e=="function"?(t=4,r=e):e==="interval"?t=3:e==="relative"?t=2:e==="on"?t=1:t=0),{renderType:t,renderFn:r}}}function filterValidationDecorations(o){const e=o.get(112);return e==="editable"?o.get(104):e!=="on"}function filterFontDecorations(o){return!o.get(172)}class EditorRulers extends BaseEditorOption{constructor(){const e=[],t={type:"number",description:localize(311,"Number of monospace characters at which this editor ruler will render.")};super(116,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:localize(312,"Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:localize(313,"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 r of e)if(typeof r=="number")t.push({column:EditorIntOption.clampedInt(r,0,0,1e4),color:null});else if(r&&typeof r=="object"){const s=r;t.push({column:EditorIntOption.clampedInt(s.column,0,0,1e4),color:s.color})}return t.sort((r,s)=>r.column-s.column),t}return this.defaultValue}}class ReadonlyMessage extends BaseEditorOption{constructor(){super(105,"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,ignoreHorizontalScrollbarInContentHeight:!1};super(117,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[localize(314,"The vertical scrollbar will be visible only when necessary."),localize(315,"The vertical scrollbar will always be visible."),localize(316,"The vertical scrollbar will always be hidden.")],default:"auto",description:localize(317,"Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[localize(318,"The horizontal scrollbar will be visible only when necessary."),localize(319,"The horizontal scrollbar will always be visible."),localize(320,"The horizontal scrollbar will always be hidden.")],default:"auto",description:localize(321,"Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:localize(322,"The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:localize(323,"The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:localize(324,"Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:e.ignoreHorizontalScrollbarInContentHeight,description:localize(325,"When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e,r=EditorIntOption.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),s=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:r,horizontalSliderSize:EditorIntOption.clampedInt(t.horizontalSliderSize,r,0,1e3),verticalScrollbarSize:s,verticalSliderSize:EditorIntOption.clampedInt(t.verticalSliderSize,s,0,1e3),scrollByPage:boolean(t.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:boolean(t.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}};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(142,"unicodeHighlight",e,{[unicodeHighlightConfigKeys.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,inUntrustedWorkspace],default:e.nonBasicASCII,description:localize(326,"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(327,"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(328,"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(329,"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(330,"Controls whether characters in strings should also be subject to Unicode highlighting.")},[unicodeHighlightConfigKeys.allowedCharacters]:{restricted:!0,type:"object",default:e.allowedCharacters,description:localize(331,"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(332,"Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(e,t){let r=!1;t.allowedCharacters&&e&&(equals$1(e.allowedCharacters,t.allowedCharacters)||(e={...e,allowedCharacters:t.allowedCharacters},r=!0)),t.allowedLocales&&e&&(equals$1(e.allowedLocales,t.allowedLocales)||(e={...e,allowedLocales:t.allowedLocales},r=!0));const s=super.applyUpdate(e,t);return r?new ApplyUpdateResult(s.newValue,!0):s}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(t.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(t.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if(typeof e!="object"||!e)return t;const r={};for(const[s,a]of Object.entries(e))a===!0&&(r[s]=!0);return r}}class InlineEditorSuggest extends BaseEditorOption{constructor(){const e={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default",syntaxHighlightingEnabled:!0,minShowDelay:0,suppressInSnippetMode:!0,edits:{enabled:!0,showCollapsed:!1,renderSideBySide:"auto",allowCodeShifting:"always"},triggerCommandOnProviderChange:!1,experimental:{suppressInlineSuggestions:"",showOnSuggestConflict:"never",emptyResponseInformation:!0}};super(71,"inlineSuggest",e,{"editor.inlineSuggest.enabled":{type:"boolean",default:e.enabled,description:localize(333,"Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[localize(334,"Show the inline suggestion toolbar whenever an inline suggestion is shown."),localize(335,"Show the inline suggestion toolbar when hovering over an inline suggestion."),localize(336,"Never show the inline suggestion toolbar.")],description:localize(337,"Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.syntaxHighlightingEnabled":{type:"boolean",default:e.syntaxHighlightingEnabled,description:localize(338,"Controls whether to show syntax highlighting for inline suggestions in the editor.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:e.suppressSuggestions,description:localize(339,"Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")},"editor.inlineSuggest.suppressInSnippetMode":{type:"boolean",default:e.suppressInSnippetMode,description:localize(340,"Controls whether inline suggestions are suppressed when in snippet mode.")},"editor.inlineSuggest.minShowDelay":{type:"number",default:0,minimum:0,maximum:1e4,description:localize(341,"Controls the minimal delay in milliseconds after which inline suggestions are shown after typing.")},"editor.inlineSuggest.experimental.suppressInlineSuggestions":{type:"string",default:e.experimental.suppressInlineSuggestions,tags:["experimental"],description:localize(342,"Suppresses inline completions for specified extension IDs -- comma separated."),experiment:{mode:"auto"}},"editor.inlineSuggest.experimental.emptyResponseInformation":{type:"boolean",default:e.experimental.emptyResponseInformation,tags:["experimental"],description:localize(343,"Controls whether to send request information from the inline suggestion provider."),experiment:{mode:"auto"}},"editor.inlineSuggest.triggerCommandOnProviderChange":{type:"boolean",default:e.triggerCommandOnProviderChange,tags:["experimental"],description:localize(344,"Controls whether to trigger a command when the inline suggestion provider changes."),experiment:{mode:"auto"}},"editor.inlineSuggest.experimental.showOnSuggestConflict":{type:"string",default:e.experimental.showOnSuggestConflict,tags:["experimental"],enum:["always","never","whenSuggestListIsIncomplete"],description:localize(345,"Controls whether to show inline suggestions when there is a suggest conflict."),experiment:{mode:"auto"}},"editor.inlineSuggest.fontFamily":{type:"string",default:e.fontFamily,description:localize(346,"Controls the font family of the inline suggestions.")},"editor.inlineSuggest.edits.allowCodeShifting":{type:"string",default:e.edits.allowCodeShifting,description:localize(347,"Controls whether showing a suggestion will shift the code to make space for the suggestion inline."),enum:["always","horizontal","never"],tags:["nextEditSuggestions"]},"editor.inlineSuggest.edits.renderSideBySide":{type:"string",default:e.edits.renderSideBySide,description:localize(348,"Controls whether larger suggestions can be shown side by side."),enum:["auto","never"],enumDescriptions:[localize(349,"Larger suggestions will show side by side if there is enough space, otherwise they will be shown below."),localize(350,"Larger suggestions are never shown side by side and will always be shown below.")],tags:["nextEditSuggestions"]},"editor.inlineSuggest.edits.showCollapsed":{type:"boolean",default:e.edits.showCollapsed,description:localize(351,"Controls whether the suggestion will show as collapsed until jumping to it."),tags:["nextEditSuggestions"]}})}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","never"]),suppressSuggestions:boolean(t.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:boolean(t.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:EditorStringOption.string(t.fontFamily,this.defaultValue.fontFamily),syntaxHighlightingEnabled:boolean(t.syntaxHighlightingEnabled,this.defaultValue.syntaxHighlightingEnabled),minShowDelay:EditorIntOption.clampedInt(t.minShowDelay,0,0,1e4),suppressInSnippetMode:boolean(t.suppressInSnippetMode,this.defaultValue.suppressInSnippetMode),edits:this._validateEdits(t.edits),triggerCommandOnProviderChange:boolean(t.triggerCommandOnProviderChange,this.defaultValue.triggerCommandOnProviderChange),experimental:this._validateExperimental(t.experimental)}}_validateEdits(e){if(!e||typeof e!="object")return this.defaultValue.edits;const t=e;return{enabled:boolean(t.enabled,this.defaultValue.edits.enabled),showCollapsed:boolean(t.showCollapsed,this.defaultValue.edits.showCollapsed),allowCodeShifting:stringSet(t.allowCodeShifting,this.defaultValue.edits.allowCodeShifting,["always","horizontal","never"]),renderSideBySide:stringSet(t.renderSideBySide,this.defaultValue.edits.renderSideBySide,["never","auto"])}}_validateExperimental(e){if(!e||typeof e!="object")return this.defaultValue.experimental;const t=e;return{suppressInlineSuggestions:EditorStringOption.string(t.suppressInlineSuggestions,this.defaultValue.experimental.suppressInlineSuggestions),showOnSuggestConflict:stringSet(t.showOnSuggestConflict,this.defaultValue.experimental.showOnSuggestConflict,["always","never","whenSuggestListIsIncomplete"]),emptyResponseInformation:boolean(t.emptyResponseInformation,this.defaultValue.experimental.emptyResponseInformation)}}}class BracketPairColorization extends BaseEditorOption{constructor(){const e={enabled:EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(21,"bracketPairColorization",e,{"editor.bracketPairColorization.enabled":{type:"boolean",default:e.enabled,markdownDescription:localize(352,"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(353,"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(22,"guides",e,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[localize(354,"Enables bracket pair guides."),localize(355,"Enables bracket pair guides only for the active bracket pair."),localize(356,"Disables bracket pair guides.")],default:e.bracketPairs,description:localize(357,"Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[localize(358,"Enables horizontal guides as addition to vertical bracket pair guides."),localize(359,"Enables horizontal guides only for the active bracket pair."),localize(360,"Disables horizontal bracket pair guides.")],default:e.bracketPairsHorizontal,description:localize(361,"Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:e.highlightActiveBracketPair,description:localize(362,"Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:e.indentation,description:localize(363,"Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[localize(364,"Highlights the active indent guide."),localize(365,"Highlights the active indent guide even if bracket guides are highlighted."),localize(366,"Do not highlight the active indent guide.")],default:e.highlightActiveIndentation,description:localize(367,"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 r=t.indexOf(o);return r===-1?e:t[r]}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(134,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[localize(368,"Insert suggestion without overwriting text right of the cursor."),localize(369,"Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:localize(370,"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(371,"Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:localize(372,"Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:localize(373,"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(374,"Always select a suggestion when automatically triggering IntelliSense."),localize(375,"Never select a suggestion when automatically triggering IntelliSense."),localize(376,"Select a suggestion only when triggering IntelliSense from a trigger character."),localize(377,"Select a suggestion only when triggering IntelliSense as you type.")],default:e.selectionMode,markdownDescription:localize(378,"Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions ({0} and {1}) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.","`#editor.quickSuggestions#`","`#editor.suggestOnTriggerCharacters#`")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:localize(379,"Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:localize(380,"Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:localize(381,"Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:e.preview,description:localize(382,"Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:localize(383,"Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:localize(384,"This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:localize(385,"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(386,"When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:localize(387,"When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:localize(388,"When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:localize(389,"When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:localize(390,"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(391,"When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:localize(392,"When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:localize(393,"When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:localize(394,"When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:localize(395,"When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:localize(396,"When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:localize(397,"When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:localize(398,"When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:localize(399,"When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:localize(400,"When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:localize(401,"When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:localize(402,"When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:localize(403,"When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:localize(404,"When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:localize(405,"When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:localize(406,"When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:localize(407,"When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:localize(408,"When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:localize(409,"When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:localize(410,"When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:localize(411,"When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:localize(412,"When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:localize(413,"When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:localize(414,"When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:localize(415,"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(129,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:localize(416,"Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:localize(417,"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 WordSegmenterLocales extends BaseEditorOption{constructor(){const e=[];super(147,"wordSegmenterLocales",e,{anyOf:[{type:"string"},{type:"array",items:{type:"string"}}],description:localize(418,"Locales to be used for word segmentation when doing word related navigations or operations. Specify the BCP 47 language tag of the word you wish to recognize (e.g., ja, zh-CN, zh-Hant-TW, etc.)."),type:"array",items:{type:"string"},default:e})}validate(e){if(typeof e=="string"&&(e=[e]),Array.isArray(e)){const t=[];for(const r of e)if(typeof r=="string")try{Intl.Segmenter.supportedLocalesOf(r).length>0&&t.push(r)}catch(s){}return t}return this.defaultValue}}class WrappingIndentOption extends BaseEditorOption{constructor(){super(155,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[localize(419,"No indentation. Wrapped lines begin at column 1."),localize(420,"Wrapped lines get the same indentation as the parent."),localize(421,"Wrapped lines get +1 indentation toward the parent."),localize(422,"Wrapped lines get +2 indentation toward the parent.")],description:localize(423,"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,r){return t.get(2)===2?0:r}}class EditorWrappingInfoComputer extends ComputedEditorOption{constructor(){super(166,{isDominatedByLongLines:!1,isWordWrapMinified:!1,isViewportWrapping:!1,wrappingColumn:-1})}compute(e,t,r){const s=t.get(165);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:s.isWordWrapMinified,isViewportWrapping:s.isViewportWrapping,wrappingColumn:s.wrappingColumn}}}class EditorDropIntoEditor extends BaseEditorOption{constructor(){const e={enabled:!0,showDropSelector:"afterDrop"};super(43,"dropIntoEditor",e,{"editor.dropIntoEditor.enabled":{type:"boolean",default:e.enabled,markdownDescription:localize(424,"Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:localize(425,"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(426,"Show the drop selector widget after a file is dropped into the editor."),localize(427,"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(97,"pasteAs",e,{"editor.pasteAs.enabled":{type:"boolean",default:e.enabled,markdownDescription:localize(428,"Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:localize(429,"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(430,"Show the paste selector widget after content is pasted into the editor."),localize(431,"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 editorOptionsRegistry=[];function register$1(o){return editorOptionsRegistry[o.id]=o,o}const EditorOptions={acceptSuggestionOnCommitCharacter:register$1(new EditorBooleanOption(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:localize(432,"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$1(new EditorStringEnumOption(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",localize(433,"Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:localize(434,"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$1(new EditorAccessibilitySupport),accessibilityPageSize:register$1(new EditorIntOption(3,"accessibilityPageSize",500,1,1073741824,{description:localize(435,"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"]})),allowOverflow:register$1(new EditorBooleanOption(4,"allowOverflow",!0)),allowVariableLineHeights:register$1(new EditorBooleanOption(5,"allowVariableLineHeights",!0,{description:localize(436,"Controls whether to allow using variable line heights in the editor.")})),allowVariableFonts:register$1(new EditorBooleanOption(6,"allowVariableFonts",!0,{description:localize(437,"Controls whether to allow using variable fonts in the editor.")})),allowVariableFontsInAccessibilityMode:register$1(new EditorBooleanOption(7,"allowVariableFontsInAccessibilityMode",!1,{description:localize(438,"Controls whether to allow using variable fonts in the editor in the accessibility mode."),tags:["accessibility"]})),ariaLabel:register$1(new EditorStringOption(8,"ariaLabel",localize(439,"Editor content"))),ariaRequired:register$1(new EditorBooleanOption(9,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:register$1(new EditorBooleanOption(12,"screenReaderAnnounceInlineSuggestion",!0,{description:localize(440,"Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:register$1(new EditorStringEnumOption(10,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",localize(441,"Use language configurations to determine when to autoclose brackets."),localize(442,"Autoclose brackets only when the cursor is to the left of whitespace."),""],description:localize(443,"Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:register$1(new EditorStringEnumOption(11,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",localize(444,"Use language configurations to determine when to autoclose comments."),localize(445,"Autoclose comments only when the cursor is to the left of whitespace."),""],description:localize(446,"Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:register$1(new EditorStringEnumOption(13,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",localize(447,"Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:localize(448,"Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:register$1(new EditorStringEnumOption(14,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",localize(449,"Type over closing quotes or brackets only if they were automatically inserted."),""],description:localize(450,"Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:register$1(new EditorStringEnumOption(15,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",localize(451,"Use language configurations to determine when to autoclose quotes."),localize(452,"Autoclose quotes only when the cursor is to the left of whitespace."),""],description:localize(453,"Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:register$1(new EditorEnumOption(16,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],_autoIndentFromString,{enumDescriptions:[localize(454,"The editor will not insert indentation automatically."),localize(455,"The editor will keep the current line's indentation."),localize(456,"The editor will keep the current line's indentation and honor language defined brackets."),localize(457,"The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),localize(458,"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(459,"Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),autoIndentOnPaste:register$1(new EditorBooleanOption(17,"autoIndentOnPaste",!1,{description:localize(460,"Controls whether the editor should automatically auto-indent the pasted content.")})),autoIndentOnPasteWithinString:register$1(new EditorBooleanOption(18,"autoIndentOnPasteWithinString",!0,{description:localize(461,"Controls whether the editor should automatically auto-indent the pasted content when pasted within a string. This takes effect when autoIndentOnPaste is true.")})),automaticLayout:register$1(new EditorBooleanOption(19,"automaticLayout",!1)),autoSurround:register$1(new EditorStringEnumOption(20,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[localize(462,"Use language configurations to determine when to automatically surround selections."),localize(463,"Surround with quotes but not brackets."),localize(464,"Surround with brackets but not quotes."),""],description:localize(465,"Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:register$1(new BracketPairColorization),bracketPairGuides:register$1(new GuideOptions),stickyTabStops:register$1(new EditorBooleanOption(132,"stickyTabStops",!1,{description:localize(466,"Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:register$1(new EditorBooleanOption(23,"codeLens",!0,{description:localize(467,"Controls whether the editor shows CodeLens.")})),codeLensFontFamily:register$1(new EditorStringOption(24,"codeLensFontFamily","",{description:localize(468,"Controls the font family for CodeLens.")})),codeLensFontSize:register$1(new EditorIntOption(25,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:localize(469,"Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:register$1(new EditorBooleanOption(26,"colorDecorators",!0,{description:localize(470,"Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:register$1(new EditorStringEnumOption(168,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[localize(471,"Make the color picker appear both on click and hover of the color decorator"),localize(472,"Make the color picker appear on hover of the color decorator"),localize(473,"Make the color picker appear on click of the color decorator")],description:localize(474,"Controls the condition to make a color picker appear from a color decorator.")})),colorDecoratorsLimit:register$1(new EditorIntOption(27,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:localize(475,"Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:register$1(new EditorBooleanOption(28,"columnSelection",!1,{description:localize(476,"Enable that the selection with the mouse and keys is doing column selection.")})),comments:register$1(new EditorComments),contextmenu:register$1(new EditorBooleanOption(30,"contextmenu",!0)),copyWithSyntaxHighlighting:register$1(new EditorBooleanOption(31,"copyWithSyntaxHighlighting",!0,{description:localize(477,"Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:register$1(new EditorEnumOption(32,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],cursorBlinkingStyleFromString,{description:localize(478,"Control the cursor animation style.")})),cursorSmoothCaretAnimation:register$1(new EditorStringEnumOption(33,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[localize(479,"Smooth caret animation is disabled."),localize(480,"Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),localize(481,"Smooth caret animation is always enabled.")],description:localize(482,"Controls whether the smooth caret animation should be enabled.")})),cursorStyle:register$1(new EditorEnumOption(34,"cursorStyle",TextEditorCursorStyle$1.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],cursorStyleFromString,{description:localize(483,"Controls the cursor style in insert input mode.")})),overtypeCursorStyle:register$1(new EditorEnumOption(92,"overtypeCursorStyle",TextEditorCursorStyle$1.Block,"block",["line","block","underline","line-thin","block-outline","underline-thin"],cursorStyleFromString,{description:localize(484,"Controls the cursor style in overtype input mode.")})),cursorSurroundingLines:register$1(new EditorIntOption(35,"cursorSurroundingLines",0,0,1073741824,{description:localize(485,"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$1(new EditorStringEnumOption(36,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[localize(486,"`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),localize(487,"`cursorSurroundingLines` is enforced always.")],markdownDescription:localize(488,"Controls when `#editor.cursorSurroundingLines#` should be enforced.")})),cursorWidth:register$1(new EditorIntOption(37,"cursorWidth",0,0,1073741824,{markdownDescription:localize(489,"Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),cursorHeight:register$1(new EditorIntOption(38,"cursorHeight",0,0,1073741824,{markdownDescription:localize(490,"Controls the height of the cursor when `#editor.cursorStyle#` is set to `line`. Cursor's max height depends on line height.")})),disableLayerHinting:register$1(new EditorBooleanOption(39,"disableLayerHinting",!1)),disableMonospaceOptimizations:register$1(new EditorBooleanOption(40,"disableMonospaceOptimizations",!1)),domReadOnly:register$1(new EditorBooleanOption(41,"domReadOnly",!1)),dragAndDrop:register$1(new EditorBooleanOption(42,"dragAndDrop",!0,{description:localize(491,"Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:register$1(new EditorEmptySelectionClipboard),dropIntoEditor:register$1(new EditorDropIntoEditor),editContext:register$1(new EditorBooleanOption(44,"editContext",!0,{description:localize(492,"Sets whether the EditContext API should be used instead of the text area to power input in the editor."),included:isChrome||isEdge||isNative})),renderRichScreenReaderContent:register$1(new EditorBooleanOption(107,"renderRichScreenReaderContent",!1,{markdownDescription:localize(493,"Whether to render rich screen reader content when the `#editor.editContext#` setting is enabled.")})),stickyScroll:register$1(new EditorStickyScroll),experimentalGpuAcceleration:register$1(new EditorStringEnumOption(46,"experimentalGpuAcceleration","off",["off","on"],{tags:["experimental"],enumDescriptions:[localize(494,"Use regular DOM-based rendering."),localize(495,"Use GPU acceleration.")],description:localize(496,"Controls whether to use the experimental GPU acceleration to render the editor.")})),experimentalWhitespaceRendering:register$1(new EditorStringEnumOption(47,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[localize(497,"Use a new rendering method with svgs."),localize(498,"Use a new rendering method with font characters."),localize(499,"Use the stable rendering method.")],description:localize(500,"Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:register$1(new EditorStringOption(48,"extraEditorClassName","")),fastScrollSensitivity:register$1(new EditorFloatOption(49,"fastScrollSensitivity",5,o=>o<=0?5:o,{markdownDescription:localize(501,"Scrolling speed multiplier when pressing `Alt`.")})),find:register$1(new EditorFind),fixedOverflowWidgets:register$1(new EditorBooleanOption(51,"fixedOverflowWidgets",!1)),folding:register$1(new EditorBooleanOption(52,"folding",!0,{description:localize(502,"Controls whether the editor has code folding enabled.")})),foldingStrategy:register$1(new EditorStringEnumOption(53,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[localize(503,"Use a language-specific folding strategy if available, else the indentation-based one."),localize(504,"Use the indentation-based folding strategy.")],description:localize(505,"Controls the strategy for computing folding ranges.")})),foldingHighlight:register$1(new EditorBooleanOption(54,"foldingHighlight",!0,{description:localize(506,"Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:register$1(new EditorBooleanOption(55,"foldingImportsByDefault",!1,{description:localize(507,"Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:register$1(new EditorIntOption(56,"foldingMaximumRegions",5e3,10,65e3,{description:localize(508,"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$1(new EditorBooleanOption(57,"unfoldOnClickAfterEndOfLine",!1,{description:localize(509,"Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:register$1(new EditorStringOption(58,"fontFamily",EDITOR_FONT_DEFAULTS.fontFamily,{description:localize(510,"Controls the font family.")})),fontInfo:register$1(new EditorFontInfo),fontLigatures2:register$1(new EditorFontLigatures),fontSize:register$1(new EditorFontSize),fontWeight:register$1(new EditorFontWeight),fontVariations:register$1(new EditorFontVariations),formatOnPaste:register$1(new EditorBooleanOption(64,"formatOnPaste",!1,{description:localize(511,"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$1(new EditorBooleanOption(65,"formatOnType",!1,{description:localize(512,"Controls whether the editor should automatically format the line after typing.")})),glyphMargin:register$1(new EditorBooleanOption(66,"glyphMargin",!0,{description:localize(513,"Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:register$1(new EditorGoToLocation),hideCursorInOverviewRuler:register$1(new EditorBooleanOption(68,"hideCursorInOverviewRuler",!1,{description:localize(514,"Controls whether the cursor should be hidden in the overview ruler.")})),hover:register$1(new EditorHover),inDiffEditor:register$1(new EditorBooleanOption(70,"inDiffEditor",!1)),inertialScroll:register$1(new EditorBooleanOption(158,"inertialScroll",!1,{description:localize(515,"Make scrolling inertial - mostly useful with touchpad on linux.")})),letterSpacing:register$1(new EditorFloatOption(72,"letterSpacing",EDITOR_FONT_DEFAULTS.letterSpacing,o=>EditorFloatOption.clamp(o,-5,20),{description:localize(516,"Controls the letter spacing in pixels.")})),lightbulb:register$1(new EditorLightbulb),lineDecorationsWidth:register$1(new EditorLineDecorationsWidth),lineHeight:register$1(new EditorLineHeight),lineNumbers:register$1(new EditorRenderLineNumbersOption),lineNumbersMinChars:register$1(new EditorIntOption(77,"lineNumbersMinChars",5,1,300)),linkedEditing:register$1(new EditorBooleanOption(78,"linkedEditing",!1,{description:localize(517,"Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:register$1(new EditorBooleanOption(79,"links",!0,{description:localize(518,"Controls whether the editor should detect links and make them clickable.")})),matchBrackets:register$1(new EditorStringEnumOption(80,"matchBrackets","always",["always","near","never"],{description:localize(519,"Highlight matching brackets.")})),minimap:register$1(new EditorMinimap),mouseStyle:register$1(new EditorStringEnumOption(82,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:register$1(new EditorFloatOption(83,"mouseWheelScrollSensitivity",1,o=>o===0?1:o,{markdownDescription:localize(520,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:register$1(new EditorBooleanOption(84,"mouseWheelZoom",!1,{markdownDescription:isMacintosh?localize(521,"Zoom the font of the editor when using mouse wheel and holding `Cmd`."):localize(522,"Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:register$1(new EditorBooleanOption(85,"multiCursorMergeOverlapping",!0,{description:localize(523,"Merge multiple cursors when they are overlapping.")})),multiCursorModifier:register$1(new EditorEnumOption(86,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],_multiCursorModifierFromString,{markdownEnumDescriptions:[localize(524,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),localize(525,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:localize(526,"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).")})),mouseMiddleClickAction:register$1(new EditorStringEnumOption(87,"mouseMiddleClickAction","default",["default","openLink","ctrlLeftClick"],{description:localize(527,"Controls what happens when middle mouse button is clicked in the editor.")})),multiCursorPaste:register$1(new EditorStringEnumOption(88,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[localize(528,"Each cursor pastes a single line of the text."),localize(529,"Each cursor pastes the full text.")],markdownDescription:localize(530,"Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:register$1(new EditorIntOption(89,"multiCursorLimit",1e4,1,1e5,{markdownDescription:localize(531,"Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:register$1(new EditorStringEnumOption(90,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[localize(532,"Does not highlight occurrences."),localize(533,"Highlights occurrences only in the current file."),localize(534,"Experimental: Highlights occurrences across all valid open files.")],markdownDescription:localize(535,"Controls whether occurrences should be highlighted across open files.")})),occurrencesHighlightDelay:register$1(new EditorIntOption(91,"occurrencesHighlightDelay",0,0,2e3,{description:localize(536,"Controls the delay in milliseconds after which occurrences are highlighted."),tags:["preview"]})),overtypeOnPaste:register$1(new EditorBooleanOption(93,"overtypeOnPaste",!0,{description:localize(537,"Controls whether pasting should overtype.")})),overviewRulerBorder:register$1(new EditorBooleanOption(94,"overviewRulerBorder",!0,{description:localize(538,"Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:register$1(new EditorIntOption(95,"overviewRulerLanes",3,0,3)),padding:register$1(new EditorPadding),pasteAs:register$1(new EditorPasteAs),parameterHints:register$1(new EditorParameterHints),peekWidgetDefaultFocus:register$1(new EditorStringEnumOption(99,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[localize(539,"Focus the tree when opening peek"),localize(540,"Focus the editor when opening peek")],description:localize(541,"Controls whether to focus the inline editor or the tree in the peek widget.")})),placeholder:register$1(new PlaceholderOption),definitionLinkOpensInPeek:register$1(new EditorBooleanOption(101,"definitionLinkOpensInPeek",!1,{description:localize(542,"Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:register$1(new EditorQuickSuggestions),quickSuggestionsDelay:register$1(new EditorIntOption(103,"quickSuggestionsDelay",10,0,1073741824,{description:localize(543,"Controls the delay in milliseconds after which quick suggestions will show up."),experiment:{mode:"auto"}})),readOnly:register$1(new EditorBooleanOption(104,"readOnly",!1)),readOnlyMessage:register$1(new ReadonlyMessage),renameOnType:register$1(new EditorBooleanOption(106,"renameOnType",!1,{description:localize(544,"Controls whether the editor auto renames on type."),markdownDeprecationMessage:localize(545,"Deprecated, use `#editor.linkedEditing#` instead.")})),renderControlCharacters:register$1(new EditorBooleanOption(108,"renderControlCharacters",!0,{description:localize(546,"Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:register$1(new EditorStringEnumOption(109,"renderFinalNewline",isLinux?"dimmed":"on",["off","on","dimmed"],{description:localize(547,"Render last line number when the file ends with a newline.")})),renderLineHighlight:register$1(new EditorStringEnumOption(110,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",localize(548,"Highlights both the gutter and the current line.")],description:localize(549,"Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:register$1(new EditorBooleanOption(111,"renderLineHighlightOnlyWhenFocus",!1,{description:localize(550,"Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:register$1(new EditorStringEnumOption(112,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:register$1(new EditorStringEnumOption(113,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",localize(551,"Render whitespace characters except for single spaces between words."),localize(552,"Render whitespace characters only on selected text."),localize(553,"Render only trailing whitespace characters."),""],description:localize(554,"Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:register$1(new EditorIntOption(114,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:register$1(new EditorBooleanOption(115,"roundedSelection",!0,{description:localize(555,"Controls whether selections should have rounded corners.")})),rulers:register$1(new EditorRulers),scrollbar:register$1(new EditorScrollbar$1),scrollBeyondLastColumn:register$1(new EditorIntOption(118,"scrollBeyondLastColumn",4,0,1073741824,{description:localize(556,"Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:register$1(new EditorBooleanOption(119,"scrollBeyondLastLine",!0,{description:localize(557,"Controls whether the editor will scroll beyond the last line.")})),scrollOnMiddleClick:register$1(new EditorBooleanOption(171,"scrollOnMiddleClick",!1,{description:localize(558,"Controls whether the editor will scroll when the middle button is pressed.")})),scrollPredominantAxis:register$1(new EditorBooleanOption(120,"scrollPredominantAxis",!0,{description:localize(559,"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$1(new EditorBooleanOption(121,"selectionClipboard",!0,{description:localize(560,"Controls whether the Linux primary clipboard should be supported."),included:isLinux})),selectionHighlight:register$1(new EditorBooleanOption(122,"selectionHighlight",!0,{description:localize(561,"Controls whether the editor should highlight matches similar to the selection.")})),selectionHighlightMaxLength:register$1(new EditorIntOption(123,"selectionHighlightMaxLength",200,0,1073741824,{description:localize(562,"Controls how many characters can be in the selection before similiar matches are not highlighted. Set to zero for unlimited.")})),selectionHighlightMultiline:register$1(new EditorBooleanOption(124,"selectionHighlightMultiline",!1,{description:localize(563,"Controls whether the editor should highlight selection matches that span multiple lines.")})),selectOnLineNumbers:register$1(new EditorBooleanOption(125,"selectOnLineNumbers",!0)),showFoldingControls:register$1(new EditorStringEnumOption(126,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[localize(564,"Always show the folding controls."),localize(565,"Never show the folding controls and reduce the gutter size."),localize(566,"Only show the folding controls when the mouse is over the gutter.")],description:localize(567,"Controls when the folding controls on the gutter are shown.")})),showUnused:register$1(new EditorBooleanOption(127,"showUnused",!0,{description:localize(568,"Controls fading out of unused code.")})),showDeprecated:register$1(new EditorBooleanOption(157,"showDeprecated",!0,{description:localize(569,"Controls strikethrough deprecated variables.")})),inlayHints:register$1(new EditorInlayHints),snippetSuggestions:register$1(new EditorStringEnumOption(128,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[localize(570,"Show snippet suggestions on top of other suggestions."),localize(571,"Show snippet suggestions below other suggestions."),localize(572,"Show snippets suggestions with other suggestions."),localize(573,"Do not show snippet suggestions.")],description:localize(574,"Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:register$1(new SmartSelect),smoothScrolling:register$1(new EditorBooleanOption(130,"smoothScrolling",!1,{description:localize(575,"Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:register$1(new EditorIntOption(133,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:register$1(new EditorSuggest),inlineSuggest:register$1(new InlineEditorSuggest),inlineCompletionsAccessibilityVerbose:register$1(new EditorBooleanOption(169,"inlineCompletionsAccessibilityVerbose",!1,{description:localize(576,"Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:register$1(new EditorIntOption(135,"suggestFontSize",0,0,1e3,{markdownDescription:localize(577,"Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:register$1(new EditorIntOption(136,"suggestLineHeight",0,0,1e3,{markdownDescription:localize(578,"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$1(new EditorBooleanOption(137,"suggestOnTriggerCharacters",!0,{description:localize(579,"Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:register$1(new EditorStringEnumOption(138,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[localize(580,"Always select the first suggestion."),localize(581,"Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),localize(582,"Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:localize(583,"Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:register$1(new EditorStringEnumOption(139,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[localize(584,"Tab complete will insert the best matching suggestion when pressing tab."),localize(585,"Disable tab completions."),localize(586,"Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:localize(587,"Enables tab completions.")})),tabIndex:register$1(new EditorIntOption(140,"tabIndex",0,-1,1073741824)),trimWhitespaceOnDelete:register$1(new EditorBooleanOption(141,"trimWhitespaceOnDelete",!1,{description:localize(588,"Controls whether the editor will also delete the next line's indentation whitespace when deleting a newline.")})),unicodeHighlight:register$1(new UnicodeHighlight),unusualLineTerminators:register$1(new EditorStringEnumOption(143,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[localize(589,"Unusual line terminators are automatically removed."),localize(590,"Unusual line terminators are ignored."),localize(591,"Unusual line terminators prompt to be removed.")],description:localize(592,"Remove unusual line terminators that might cause problems.")})),useShadowDOM:register$1(new EditorBooleanOption(144,"useShadowDOM",!0)),useTabStops:register$1(new EditorBooleanOption(145,"useTabStops",!0,{description:localize(593,"Spaces and tabs are inserted and deleted in alignment with tab stops.")})),wordBreak:register$1(new EditorStringEnumOption(146,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[localize(594,"Use the default line break rule."),localize(595,"Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:localize(596,"Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSegmenterLocales:register$1(new WordSegmenterLocales),wordSeparators:register$1(new EditorStringOption(148,"wordSeparators",USUAL_WORD_SEPARATORS,{description:localize(597,"Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:register$1(new EditorStringEnumOption(149,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[localize(598,"Lines will never wrap."),localize(599,"Lines will wrap at the viewport width."),localize(600,"Lines will wrap at `#editor.wordWrapColumn#`."),localize(601,"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:localize(602,"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:register$1(new EditorStringOption(150,"wordWrapBreakAfterCharacters"," })]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:register$1(new EditorStringOption(151,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥+")),wordWrapColumn:register$1(new EditorIntOption(152,"wordWrapColumn",80,1,1073741824,{markdownDescription:localize(603,"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:register$1(new EditorStringEnumOption(153,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:register$1(new EditorStringEnumOption(154,"wordWrapOverride2","inherit",["off","on","inherit"])),wrapOnEscapedLineFeeds:register$1(new EditorBooleanOption(160,"wrapOnEscapedLineFeeds",!1,{markdownDescription:localize(604,'Controls whether literal `\\n` shall trigger a wordWrap when `#editor.wordWrap#` is enabled.\n\nFor example:\n```c\nchar* str="hello\\nworld"\n```\nwill be displayed as\n```c\nchar* str="hello\\n\n world"\n```')})),effectiveCursorStyle:register$1(new EffectiveCursorStyle),editorClassName:register$1(new EditorClassName),defaultColorDecorators:register$1(new EditorStringEnumOption(167,"defaultColorDecorators","auto",["auto","always","never"],{enumDescriptions:[localize(605,"Show default color decorators only when no extension provides colors decorators."),localize(606,"Always show default color decorators."),localize(607,"Never show default color decorators.")],description:localize(608,"Controls whether inline color decorations should be shown using the default document color provider.")})),pixelRatio:register$1(new EditorPixelRatio),tabFocusMode:register$1(new EditorBooleanOption(164,"tabFocusMode",!1,{markdownDescription:localize(609,"Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:register$1(new EditorLayoutInfoComputer),wrappingInfo:register$1(new EditorWrappingInfoComputer),wrappingIndent:register$1(new WrappingIndentOption),wrappingStrategy:register$1(new WrappingStrategy),effectiveEditContextEnabled:register$1(new EffectiveEditContextEnabled),effectiveAllowVariableFonts:register$1(new EffectiveAllowVariableFonts)};class FontMeasurementsImpl extends Disposable$1{constructor(){super(...arguments),this._cache=new Map,this._evictUntrustedReadingsTimeout=-1,this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event}dispose(){this._evictUntrustedReadingsTimeout!==-1&&(clearTimeout(this._evictUntrustedReadingsTimeout),this._evictUntrustedReadingsTimeout=-1),super.dispose()}clearAllFontInfos(){this._cache.clear(),this._onDidChange.fire()}_ensureCache(e){const t=getWindowId(e);let r=this._cache.get(t);return r||(r=new FontMeasurementsCache,this._cache.set(t,r)),r}_writeToCache(e,t,r){this._ensureCache(e).put(t,r),!r.isTrusted&&this._evictUntrustedReadingsTimeout===-1&&(this._evictUntrustedReadingsTimeout=e.setTimeout(()=>{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(e)},5e3))}_evictUntrustedReadings(e){const t=this._ensureCache(e),r=t.getValues();let s=!1;for(const a of r)a.isTrusted||(s=!0,t.remove(a));s&&this._onDidChange.fire()}readFontInfo(e,t){const r=this._ensureCache(e);if(!r.has(t)){let s=this._actualReadFontInfo(e,t);(s.typicalHalfwidthCharacterWidth<=2||s.typicalFullwidthCharacterWidth<=2||s.spaceWidth<=2||s.maxDigitWidth<=2)&&(s=new FontInfo({pixelRatio:PixelRatio.getInstance(e).value,fontFamily:s.fontFamily,fontWeight:s.fontWeight,fontSize:s.fontSize,fontFeatureSettings:s.fontFeatureSettings,fontVariationSettings:s.fontVariationSettings,lineHeight:s.lineHeight,letterSpacing:s.letterSpacing,isMonospace:s.isMonospace,typicalHalfwidthCharacterWidth:Math.max(s.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(s.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:s.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(s.spaceWidth,5),middotWidth:Math.max(s.middotWidth,5),wsmiddotWidth:Math.max(s.wsmiddotWidth,5),maxDigitWidth:Math.max(s.maxDigitWidth,5)},!1)),this._writeToCache(e,t,s)}return r.get(t)}_createRequest(e,t,r,s){const a=new CharWidthRequest(e,t);return r.push(a),s==null||s.push(a),a}_actualReadFontInfo(e,t){const r=[],s=[],a=this._createRequest("n",0,r,s),l=this._createRequest("",0,r,null),c=this._createRequest(" ",0,r,s),d=this._createRequest("0",0,r,s),u=this._createRequest("1",0,r,s),g=this._createRequest("2",0,r,s),f=this._createRequest("3",0,r,s),m=this._createRequest("4",0,r,s),_=this._createRequest("5",0,r,s),v=this._createRequest("6",0,r,s),b=this._createRequest("7",0,r,s),C=this._createRequest("8",0,r,s),y=this._createRequest("9",0,r,s),S=this._createRequest("→",0,r,s),w=this._createRequest("→",0,r,null),E=this._createRequest("·",0,r,s),x=this._createRequest("⸱",0,r,null),L="|/-_ilm%";for(let M=0,R=L.length;M<R;M++)this._createRequest(L.charAt(M),0,r,s),this._createRequest(L.charAt(M),1,r,s),this._createRequest(L.charAt(M),2,r,s);readCharWidths(e,t,r);const k=Math.max(d.width,u.width,g.width,f.width,m.width,_.width,v.width,b.width,C.width,y.width);let D=t.fontFeatureSettings===EditorFontLigatures.OFF;const I=s[0].width;for(let M=1,R=s.length;D&&M<R;M++){const N=I-s[M].width;if(N<-.001||N>.001){D=!1;break}}let T=!0;return D&&w.width!==I&&(T=!1),w.width>S.width&&(T=!1),new FontInfo({pixelRatio:PixelRatio.getInstance(e).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:D,typicalHalfwidthCharacterWidth:a.width,typicalFullwidthCharacterWidth:l.width,canUseHalfwidthRightwardsArrow:T,spaceWidth:c.width,middotWidth:E.width,wsmiddotWidth:x.width,maxDigitWidth:k},!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 r=e.getId();this._keys[r]=e,this._values[r]=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,tr=class tr{constructor(e,t){this.key=e,this.migrate=t}apply(e){const t=tr._read(e,this.key),r=a=>tr._read(e,a),s=(a,l)=>tr._write(e,a,l);this.migrate(t,r,s)}static _read(e,t){if(typeof e>"u"||e===null)return;const r=t.indexOf(".");if(r>=0){const s=t.substring(0,r);return this._read(e[s],t.substring(r+1))}return e[t]}static _write(e,t,r){const s=t.indexOf(".");if(s>=0){const a=t.substring(0,s);e[a]=e[a]||{},this._write(e[a],t.substring(s+1),r);return}e[t]=r}};tr.items=[];let EditorSettingMigration=tr;function registerEditorSettingMigration(o,e){EditorSettingMigration.items.push(new EditorSettingMigration(o,e))}function registerSimpleEditorSettingMigration(o,e){registerEditorSettingMigration(o,(t,r,s)=>{if(typeof t<"u"){for(const[a,l]of e)if(t===a){s(o,l);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"]]);registerSimpleEditorSettingMigration("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]);registerSimpleEditorSettingMigration("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]);registerSimpleEditorSettingMigration("defaultColorDecorators",[[!0,"auto"],[!1,"never"]]);registerSimpleEditorSettingMigration("minimap.autohide",[[!0,"mouseover"],[!1,"none"]]);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 r of Object.entries(suggestFilteredTypesMapping))o[r[0]]===!1&&typeof e("suggest.".concat(r[1]))>"u"&&t("suggest.".concat(r[1]),!1);t("suggest.filteredTypes",void 0)}});registerEditorSettingMigration("quickSuggestions",(o,e,t)=>{if(typeof o=="boolean"){const r=o?"on":"off";t("quickSuggestions",{comments:r,strings:r,other:r})}});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))});registerEditorSettingMigration("editor.experimentalEditContextEnabled",(o,e,t)=>{typeof o=="boolean"&&(t("editor.experimentalEditContextEnabled",void 0),typeof e("editor.editContext")>"u"&&t("editor.editContext",o))});registerEditorSettingMigration("codeActionsOnSave",(o,e,t)=>{if(o&&typeof o=="object"){let r=!1;const s={};for(const a of Object.entries(o))typeof a[1]=="boolean"?(r=!0,s[a[0]]=a[1]?"explicit":"never"):s[a[0]]=a[1];r&&t("codeActionsOnSave",s)}});registerEditorSettingMigration("codeActionWidget.includeNearbyQuickfixes",(o,e,t)=>{typeof o=="boolean"&&(t("codeActionWidget.includeNearbyQuickfixes",void 0),typeof e("codeActionWidget.includeNearbyQuickFixes")>"u"&&t("codeActionWidget.includeNearbyQuickFixes",o))});registerEditorSettingMigration("lightbulb.enabled",(o,e,t)=>{typeof o=="boolean"&&t("lightbulb.enabled",o?void 0:"off")});registerEditorSettingMigration("inlineSuggest.edits.codeShifting",(o,e,t)=>{typeof o=="boolean"&&(t("inlineSuggest.edits.codeShifting",void 0),t("inlineSuggest.edits.allowCodeShifting",o?"always":"never"))});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;function createBareFontInfoFromValidatedSettings(o,e,t){const r=o.get(58),s=o.get(62),a=o.get(61),l=o.get(60),c=o.get(63),d=o.get(75),u=o.get(72);return BareFontInfo._create(r,s,a,l,c,d,u,e,t)}function createBareFontInfoFromRawSettings(o,e,t=!1){const r=EditorOptions.fontFamily.validate(o.fontFamily),s=EditorOptions.fontWeight.validate(o.fontWeight),a=EditorOptions.fontSize.validate(o.fontSize),l=EditorOptions.fontLigatures2.validate(o.fontLigatures),c=EditorOptions.fontVariations.validate(o.fontVariations),d=EditorOptions.lineHeight.validate(o.lineHeight),u=EditorOptions.letterSpacing.validate(o.letterSpacing);return BareFontInfo._create(r,s,a,l,c,d,u,e,t)}const IAccessibilityService=createDecorator("accessibilityService"),CONTEXT_ACCESSIBILITY_MODE_ENABLED=new RawContextKey("accessibilityModeEnabled",!1);var __decorate$37=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2Y=function(o,e){return function(t,r){e(t,r,o)}};let EditorConfiguration=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._accessibilityService=a,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.contextMenuId=t,this._containerObserver=this._register(new ElementSizeObserver(s,r.dimension)),this._targetWindowId=getWindow$1(s).vscodeWindowId,this._rawOptions=deepCloneAndMigrateOptions(r),this._validatedOptions=EditorOptionsUtil.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(19)&&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.getInstance(getWindow$1(s)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions())),this._register(InputMode.onDidChangeInputMode(()=>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=createBareFontInfoFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),r=this._readFontInfo(t),s={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:r,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:this._validatedOptions.get(164)||TabFocus.getTabFocusMode(),inputMode:InputMode.getInputMode(),accessibilitySupport:e.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount,editContextSupported:e.editContextSupported};return EditorOptionsUtil.computeOptions(this._validatedOptions,s)}_readEnvConfiguration(){return{extraEditorClassName:getExtraEditorClassName(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:isWebKit||isFirefox$1,pixelRatio:PixelRatio.getInstance(getWindowById(this._targetWindowId,!0).window).value,editContextSupported:typeof globalThis.EditContext=="function",accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return FontMeasurements.readFontInfo(getWindowById(this._targetWindowId,!0).window,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$37([__param$2Y(4,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$1||isWebkitWebView?(o+="no-minimap-shadow ",o+="enable-user-select "):o+="no-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 r of editorOptionsRegistry){const s=r.name==="_never_"?void 0:e[r.name];t._write(r.id,r.validate(s))}return t}static computeOptions(e,t){const r=new ComputedEditorOptions;for(const s of editorOptionsRegistry)r._write(s.id,s.compute(t,r,e._read(s.id)));return r}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 r in e)if(!EditorOptionsUtil._deepEquals(e[r],t[r]))return!1;return!0}static checkEquals(e,t){const r=[];let s=!1;for(const a of editorOptionsRegistry){const l=!EditorOptionsUtil._deepEquals(e._read(a.id),t._read(a.id));r[a.id]=l,l&&(s=!0)}return s?new ConfigurationChangedEvent(r):null}static applyUpdate(e,t){let r=!1;for(const s of editorOptionsRegistry)if(t.hasOwnProperty(s.name)){const a=s.applyUpdate(e[s.name],t[s.name]);e[s.name]=a.newValue,r=r||a.didChange}return r}}function deepCloneAndMigrateOptions(o){const e=deepClone(o);return migrateOptions(e),e}var inputLatency;(function(o){const e={total:0,min:Number.MAX_VALUE,max:0},t={...e},r={...e},s={...e};let a=0;const l={keydown:0,input:0,render:0};function c(){y(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),l.keydown=1,queueMicrotask(d)}o.onKeyDown=c;function d(){l.keydown===1&&(performance.mark("keydown/end"),l.keydown=2)}function u(){performance.mark("input/start"),l.input=1,C()}o.onBeforeInput=u;function g(){l.input===0&&u(),queueMicrotask(f)}o.onInput=g;function f(){l.input===1&&(performance.mark("input/end"),l.input=2)}function m(){y()}o.onKeyUp=m;function _(){y()}o.onSelectionChange=_;function v(){l.keydown===2&&l.input===2&&l.render===0&&(performance.mark("render/start"),l.render=1,queueMicrotask(b),C())}o.onRenderStart=v;function b(){l.render===1&&(performance.mark("render/end"),l.render=2)}function C(){setTimeout(y)}function y(){l.keydown===2&&l.input===2&&l.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"),S("keydown",e),S("input",t),S("render",r),S("inputlatency",s),a++,w())}function S(k,D){const I=performance.getEntriesByName(k)[0].duration;D.total+=I,D.min=Math.min(D.min,I),D.max=Math.max(D.max,I)}function w(){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"),l.keydown=0,l.input=0,l.render=0}function E(){if(a===0)return;const k={keydown:x(e),input:x(t),render:x(r),total:x(s),sampleCount:a};return L(e),L(t),L(r),L(s),a=0,k}o.getAndClearMeasurements=E;function x(k){return{average:k.total/a,max:k.max,min:k.min}}function L(k){k.total=0,k.min=Number.MAX_VALUE,k.max=0}})(inputLatency||(inputLatency={}));const globalStylesheets=new Map;function createStyleSheet2(){return new WrappedStyleElement}class WrappedStyleElement{constructor(){this._currentCssStyle="",this._styleSheet=void 0}setStyle(e){e!==this._currentCssStyle&&(this._currentCssStyle=e,this._styleSheet?this._styleSheet.textContent=e:this._styleSheet=createStyleSheet(mainWindow.document.head,t=>t.textContent=e))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function createStyleSheet(o=mainWindow.document.head,e,t){const r=document.createElement("style");if(r.type="text/css",r.media="screen",e==null||e(r),o.appendChild(r),t&&t.add(toDisposable(()=>r.remove())),o===mainWindow.document.head){const s=new Set;globalStylesheets.set(r,s),t&&t.add(toDisposable(()=>globalStylesheets.delete(r)));for(const{window:a,disposables:l}of getWindows()){if(a===mainWindow)continue;const c=l.add(cloneGlobalStyleSheet(r,s,a));t==null||t.add(c)}}return r}function cloneGlobalStyleSheet(o,e,t){var a,l;const r=new DisposableStore$1,s=o.cloneNode(!0);t.document.head.appendChild(s),r.add(toDisposable(()=>s.remove()));for(const c of getDynamicStyleSheetRules(o))(l=s.sheet)==null||l.insertRule(c.cssText,(a=s.sheet)==null?void 0:a.cssRules.length);return r.add(sharedMutationObserver.observe(o,r,{childList:!0,subtree:isFirefox$1,characterData:isFirefox$1})(()=>{s.textContent=o.textContent})),e.add(s),r.add(toDisposable(()=>e.delete(s))),r}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.rules?o.sheet.rules:(t=o==null?void 0:o.sheet)!=null&&t.cssRules?o.sheet.cssRules:[]}function createCSSRule(o,e,t=getSharedStyleSheet()){var r,s;if(!(!t||!e)){(r=t.sheet)==null||r.insertRule("".concat(o," {").concat(e,"}"),0);for(const a of(s=globalStylesheets.get(t))!=null?s:[])createCSSRule(o,e,a)}}function removeCSSRulesContainingSelector(o,e=getSharedStyleSheet()){var s,a;if(!e)return;const t=getDynamicStyleSheetRules(e),r=[];for(let l=0;l<t.length;l++){const c=t[l];isCSSStyleRule(c)&&c.selectorText.indexOf(o)!==-1&&r.push(l)}for(let l=r.length-1;l>=0;l--)(s=e.sheet)==null||s.deleteRule(r[l]);for(const l of(a=globalStylesheets.get(e))!=null?a:[])removeCSSRulesContainingSelector(o,l)}function isCSSStyleRule(o){return typeof o.selectorText=="string"}function createStyleSheetFromObservable(o){const e=new DisposableStore$1,t=e.add(createStyleSheet2());return e.add(autorun(r=>{t.setStyle(o.read(r))})),e}class GlobalPointerMoveMonitor{constructor(){this._hooks=new DisposableStore$1,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 r=this._onStopCallback;this._onStopCallback=null,e&&r&&r(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,r,s,a){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=s,this._onStopCallback=a;let l=e;try{e.setPointerCapture(t),this._hooks.add(toDisposable(()=>{try{e.releasePointerCapture(t)}catch(c){}}))}catch(c){l=getWindow$1(e)}this._hooks.add(addDisposableListener(l,EventType$1.POINTER_MOVE,c=>{if(c.buttons!==r){this.stopMonitoring(!0);return}c.preventDefault(),this._pointerMoveCallback(c)})),this._hooks.add(addDisposableListener(l,EventType$1.POINTER_UP,c=>this.stopMonitoring(!0)))}}function roundFloat(o,e){const t=Math.pow(10,e);return Math.round(o*t)/t}let RGBA$1=class{constructor(e,t,r,s=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,r))|0,this.a=roundFloat(Math.max(Math.min(1,s),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}},HSLA$1=class Nr{constructor(e,t,r,s){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,r),0),3),this.a=roundFloat(Math.max(Math.min(1,s),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,r=e.g/255,s=e.b/255,a=e.a,l=Math.max(t,r,s),c=Math.min(t,r,s);let d=0,u=0;const g=(c+l)/2,f=l-c;if(f>0){switch(u=Math.min(g<=.5?f/(2*g):f/(2-2*g),1),l){case t:d=(r-s)/f+(r<s?6:0);break;case r:d=(s-t)/f+2;break;case s:d=(t-r)/f+4;break}d*=60,d=Math.round(d)}return new Nr(d,u,g,a)}static _hue2rgb(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}static toRGBA(e){const t=e.h/360,{s:r,l:s,a}=e;let l,c,d;if(r===0)l=c=d=s;else{const u=s<.5?s*(1+r):s+r-s*r,g=2*s-u;l=Nr._hue2rgb(g,u,t+1/3),c=Nr._hue2rgb(g,u,t),d=Nr._hue2rgb(g,u,t-1/3)}return new RGBA$1(Math.round(l*255),Math.round(c*255),Math.round(d*255),a)}};class HSVA{constructor(e,t,r,s){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,r),0),3),this.a=roundFloat(Math.max(Math.min(1,s),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,r=e.g/255,s=e.b/255,a=Math.max(t,r,s),l=Math.min(t,r,s),c=a-l,d=a===0?0:c/a;let u;return c===0?u=0:a===t?u=((r-s)/c%6+6)%6:a===r?u=(s-t)/c+2:u=(t-r)/c+4,new HSVA(Math.round(u*60),d,a,e.a)}static toRGBA(e){const{h:t,s:r,v:s,a}=e,l=s*r,c=l*(1-Math.abs(t/60%2-1)),d=s-l;let[u,g,f]=[0,0,0];return t<60?(u=l,g=c):t<120?(u=c,g=l):t<180?(g=l,f=c):t<240?(g=c,f=l):t<300?(u=c,f=l):t<=360&&(u=l,f=c),u=Math.round((u+d)*255),g=Math.round((g+d)*255),f=Math.round((f+d)*255),new RGBA$1(u,g,f,a)}}const ke=class ke{static fromHex(e){return ke.Format.CSS.parseHex(e)||ke.red}static equals(e,t){return!e&&!t?!0:!e||!t?!1:e.equals(t)}get hsla(){return this._hsla?this._hsla:HSLA$1.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:HSVA.fromRGBA(this.rgba)}constructor(e){if(e)if(e instanceof RGBA$1)this.rgba=e;else if(e instanceof HSLA$1)this._hsla=e,this.rgba=HSLA$1.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$1.equals(this.rgba,e.rgba)&&HSLA$1.equals(this.hsla,e.hsla)&&HSVA.equals(this.hsva,e.hsva)}getRelativeLuminance(){const e=ke._relativeLuminanceForComponent(this.rgba.r),t=ke._relativeLuminanceForComponent(this.rgba.g),r=ke._relativeLuminanceForComponent(this.rgba.b),s=.2126*e+.7152*t+.0722*r;return roundFloat(s,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(),r=e.getRelativeLuminance();return t>r}isDarkerThan(e){const t=this.getRelativeLuminance(),r=e.getRelativeLuminance();return t<r}lighten(e){return new ke(new HSLA$1(this.hsla.h,this.hsla.s,this.hsla.l+this.hsla.l*e,this.hsla.a))}darken(e){return new ke(new HSLA$1(this.hsla.h,this.hsla.s,this.hsla.l-this.hsla.l*e,this.hsla.a))}transparent(e){const{r:t,g:r,b:s,a}=this.rgba;return new ke(new RGBA$1(t,r,s,a*e))}isTransparent(){return this.rgba.a===0}isOpaque(){return this.rgba.a===1}opposite(){return new ke(new RGBA$1(255-this.rgba.r,255-this.rgba.g,255-this.rgba.b,this.rgba.a))}mix(e,t=.5){const r=Math.min(Math.max(t,0),1),s=this.rgba,a=e.rgba,l=s.r+(a.r-s.r)*r,c=s.g+(a.g-s.g)*r,d=s.b+(a.b-s.b)*r,u=s.a+(a.a-s.a)*r;return new ke(new RGBA$1(l,c,d,u))}makeOpaque(e){if(this.isOpaque()||e.rgba.a!==1)return this;const{r:t,g:r,b:s,a}=this.rgba;return new ke(new RGBA$1(e.rgba.r-a*(e.rgba.r-t),e.rgba.g-a*(e.rgba.g-r),e.rgba.b-a*(e.rgba.b-s),1))}toString(){return this._toString||(this._toString=ke.Format.CSS.format(this)),this._toString}toNumber32Bit(){return this._toNumber32Bit||(this._toNumber32Bit=(this.rgba.r<<24|this.rgba.g<<16|this.rgba.b<<8|this.rgba.a*255<<0)>>>0),this._toNumber32Bit}static getLighterColor(e,t,r){if(e.isLighterThan(t))return e;r=r||.5;const s=e.getRelativeLuminance(),a=t.getRelativeLuminance();return r=r*(a-s)/a,e.lighten(r)}static getDarkerColor(e,t,r){if(e.isDarkerThan(t))return e;r=r||.5;const s=e.getRelativeLuminance(),a=t.getRelativeLuminance();return r=r*(s-a)/s,e.darken(r)}};ke.white=new ke(new RGBA$1(255,255,255,1)),ke.black=new ke(new RGBA$1(0,0,0,1)),ke.red=new ke(new RGBA$1(255,0,0,1)),ke.blue=new ke(new RGBA$1(0,0,255,1)),ke.green=new ke(new RGBA$1(0,255,0,1)),ke.cyan=new ke(new RGBA$1(0,255,255,1)),ke.lightgrey=new ke(new RGBA$1(211,211,211,1)),ke.transparent=new ke(new RGBA$1(0,0,0,0));let Color=ke;(function(o){(function(e){(function(t){function r(b){return b.rgba.a===1?"rgb(".concat(b.rgba.r,", ").concat(b.rgba.g,", ").concat(b.rgba.b,")"):o.Format.CSS.formatRGBA(b)}t.formatRGB=r;function s(b){return"rgba(".concat(b.rgba.r,", ").concat(b.rgba.g,", ").concat(b.rgba.b,", ").concat(+b.rgba.a.toFixed(2),")")}t.formatRGBA=s;function a(b){return b.hsla.a===1?"hsl(".concat(b.hsla.h,", ").concat(Math.round(b.hsla.s*100),"%, ").concat(Math.round(b.hsla.l*100),"%)"):o.Format.CSS.formatHSLA(b)}t.formatHSL=a;function l(b){return"hsla(".concat(b.hsla.h,", ").concat(Math.round(b.hsla.s*100),"%, ").concat(Math.round(b.hsla.l*100),"%, ").concat(b.hsla.a.toFixed(2),")")}t.formatHSLA=l;function c(b){const C=b.toString(16);return C.length!==2?"0"+C:C}function d(b){return"#".concat(c(b.rgba.r)).concat(c(b.rgba.g)).concat(c(b.rgba.b))}t.formatHex=d;function u(b,C=!1){return C&&b.rgba.a===1?o.Format.CSS.formatHex(b):"#".concat(c(b.rgba.r)).concat(c(b.rgba.g)).concat(c(b.rgba.b)).concat(c(Math.round(b.rgba.a*255)))}t.formatHexA=u;function g(b){return b.isOpaque()?o.Format.CSS.formatHex(b):o.Format.CSS.formatRGBA(b)}t.format=g;function f(b){var C,y,S,w,E,x,L,k,D,I,T,M,R,N;if(b==="transparent")return o.transparent;if(b.startsWith("#"))return _(b);if(b.startsWith("rgba(")){const A=b.match(new RegExp("rgba\\((?<r>(?:\\+|-)?\\d+), *(?<g>(?:\\+|-)?\\d+), *(?<b>(?:\\+|-)?\\d+), *(?<a>(?:\\+|-)?\\d+(\\.\\d+)?)\\)"));if(!A)throw new Error("Invalid color format "+b);const O=parseInt((y=(C=A.groups)==null?void 0:C.r)!=null?y:"0"),P=parseInt((w=(S=A.groups)==null?void 0:S.g)!=null?w:"0"),F=parseInt((x=(E=A.groups)==null?void 0:E.b)!=null?x:"0"),B=parseFloat((k=(L=A.groups)==null?void 0:L.a)!=null?k:"0");return new o(new RGBA$1(O,P,F,B))}if(b.startsWith("rgb(")){const A=b.match(new RegExp("rgb\\((?<r>(?:\\+|-)?\\d+), *(?<g>(?:\\+|-)?\\d+), *(?<b>(?:\\+|-)?\\d+)\\)"));if(!A)throw new Error("Invalid color format "+b);const O=parseInt((I=(D=A.groups)==null?void 0:D.r)!=null?I:"0"),P=parseInt((M=(T=A.groups)==null?void 0:T.g)!=null?M:"0"),F=parseInt((N=(R=A.groups)==null?void 0:R.b)!=null?N:"0");return new o(new RGBA$1(O,P,F))}return m(b)}t.parse=f;function m(b){switch(b){case"aliceblue":return new o(new RGBA$1(240,248,255,1));case"antiquewhite":return new o(new RGBA$1(250,235,215,1));case"aqua":return new o(new RGBA$1(0,255,255,1));case"aquamarine":return new o(new RGBA$1(127,255,212,1));case"azure":return new o(new RGBA$1(240,255,255,1));case"beige":return new o(new RGBA$1(245,245,220,1));case"bisque":return new o(new RGBA$1(255,228,196,1));case"black":return new o(new RGBA$1(0,0,0,1));case"blanchedalmond":return new o(new RGBA$1(255,235,205,1));case"blue":return new o(new RGBA$1(0,0,255,1));case"blueviolet":return new o(new RGBA$1(138,43,226,1));case"brown":return new o(new RGBA$1(165,42,42,1));case"burlywood":return new o(new RGBA$1(222,184,135,1));case"cadetblue":return new o(new RGBA$1(95,158,160,1));case"chartreuse":return new o(new RGBA$1(127,255,0,1));case"chocolate":return new o(new RGBA$1(210,105,30,1));case"coral":return new o(new RGBA$1(255,127,80,1));case"cornflowerblue":return new o(new RGBA$1(100,149,237,1));case"cornsilk":return new o(new RGBA$1(255,248,220,1));case"crimson":return new o(new RGBA$1(220,20,60,1));case"cyan":return new o(new RGBA$1(0,255,255,1));case"darkblue":return new o(new RGBA$1(0,0,139,1));case"darkcyan":return new o(new RGBA$1(0,139,139,1));case"darkgoldenrod":return new o(new RGBA$1(184,134,11,1));case"darkgray":return new o(new RGBA$1(169,169,169,1));case"darkgreen":return new o(new RGBA$1(0,100,0,1));case"darkgrey":return new o(new RGBA$1(169,169,169,1));case"darkkhaki":return new o(new RGBA$1(189,183,107,1));case"darkmagenta":return new o(new RGBA$1(139,0,139,1));case"darkolivegreen":return new o(new RGBA$1(85,107,47,1));case"darkorange":return new o(new RGBA$1(255,140,0,1));case"darkorchid":return new o(new RGBA$1(153,50,204,1));case"darkred":return new o(new RGBA$1(139,0,0,1));case"darksalmon":return new o(new RGBA$1(233,150,122,1));case"darkseagreen":return new o(new RGBA$1(143,188,143,1));case"darkslateblue":return new o(new RGBA$1(72,61,139,1));case"darkslategray":return new o(new RGBA$1(47,79,79,1));case"darkslategrey":return new o(new RGBA$1(47,79,79,1));case"darkturquoise":return new o(new RGBA$1(0,206,209,1));case"darkviolet":return new o(new RGBA$1(148,0,211,1));case"deeppink":return new o(new RGBA$1(255,20,147,1));case"deepskyblue":return new o(new RGBA$1(0,191,255,1));case"dimgray":return new o(new RGBA$1(105,105,105,1));case"dimgrey":return new o(new RGBA$1(105,105,105,1));case"dodgerblue":return new o(new RGBA$1(30,144,255,1));case"firebrick":return new o(new RGBA$1(178,34,34,1));case"floralwhite":return new o(new RGBA$1(255,250,240,1));case"forestgreen":return new o(new RGBA$1(34,139,34,1));case"fuchsia":return new o(new RGBA$1(255,0,255,1));case"gainsboro":return new o(new RGBA$1(220,220,220,1));case"ghostwhite":return new o(new RGBA$1(248,248,255,1));case"gold":return new o(new RGBA$1(255,215,0,1));case"goldenrod":return new o(new RGBA$1(218,165,32,1));case"gray":return new o(new RGBA$1(128,128,128,1));case"green":return new o(new RGBA$1(0,128,0,1));case"greenyellow":return new o(new RGBA$1(173,255,47,1));case"grey":return new o(new RGBA$1(128,128,128,1));case"honeydew":return new o(new RGBA$1(240,255,240,1));case"hotpink":return new o(new RGBA$1(255,105,180,1));case"indianred":return new o(new RGBA$1(205,92,92,1));case"indigo":return new o(new RGBA$1(75,0,130,1));case"ivory":return new o(new RGBA$1(255,255,240,1));case"khaki":return new o(new RGBA$1(240,230,140,1));case"lavender":return new o(new RGBA$1(230,230,250,1));case"lavenderblush":return new o(new RGBA$1(255,240,245,1));case"lawngreen":return new o(new RGBA$1(124,252,0,1));case"lemonchiffon":return new o(new RGBA$1(255,250,205,1));case"lightblue":return new o(new RGBA$1(173,216,230,1));case"lightcoral":return new o(new RGBA$1(240,128,128,1));case"lightcyan":return new o(new RGBA$1(224,255,255,1));case"lightgoldenrodyellow":return new o(new RGBA$1(250,250,210,1));case"lightgray":return new o(new RGBA$1(211,211,211,1));case"lightgreen":return new o(new RGBA$1(144,238,144,1));case"lightgrey":return new o(new RGBA$1(211,211,211,1));case"lightpink":return new o(new RGBA$1(255,182,193,1));case"lightsalmon":return new o(new RGBA$1(255,160,122,1));case"lightseagreen":return new o(new RGBA$1(32,178,170,1));case"lightskyblue":return new o(new RGBA$1(135,206,250,1));case"lightslategray":return new o(new RGBA$1(119,136,153,1));case"lightslategrey":return new o(new RGBA$1(119,136,153,1));case"lightsteelblue":return new o(new RGBA$1(176,196,222,1));case"lightyellow":return new o(new RGBA$1(255,255,224,1));case"lime":return new o(new RGBA$1(0,255,0,1));case"limegreen":return new o(new RGBA$1(50,205,50,1));case"linen":return new o(new RGBA$1(250,240,230,1));case"magenta":return new o(new RGBA$1(255,0,255,1));case"maroon":return new o(new RGBA$1(128,0,0,1));case"mediumaquamarine":return new o(new RGBA$1(102,205,170,1));case"mediumblue":return new o(new RGBA$1(0,0,205,1));case"mediumorchid":return new o(new RGBA$1(186,85,211,1));case"mediumpurple":return new o(new RGBA$1(147,112,219,1));case"mediumseagreen":return new o(new RGBA$1(60,179,113,1));case"mediumslateblue":return new o(new RGBA$1(123,104,238,1));case"mediumspringgreen":return new o(new RGBA$1(0,250,154,1));case"mediumturquoise":return new o(new RGBA$1(72,209,204,1));case"mediumvioletred":return new o(new RGBA$1(199,21,133,1));case"midnightblue":return new o(new RGBA$1(25,25,112,1));case"mintcream":return new o(new RGBA$1(245,255,250,1));case"mistyrose":return new o(new RGBA$1(255,228,225,1));case"moccasin":return new o(new RGBA$1(255,228,181,1));case"navajowhite":return new o(new RGBA$1(255,222,173,1));case"navy":return new o(new RGBA$1(0,0,128,1));case"oldlace":return new o(new RGBA$1(253,245,230,1));case"olive":return new o(new RGBA$1(128,128,0,1));case"olivedrab":return new o(new RGBA$1(107,142,35,1));case"orange":return new o(new RGBA$1(255,165,0,1));case"orangered":return new o(new RGBA$1(255,69,0,1));case"orchid":return new o(new RGBA$1(218,112,214,1));case"palegoldenrod":return new o(new RGBA$1(238,232,170,1));case"palegreen":return new o(new RGBA$1(152,251,152,1));case"paleturquoise":return new o(new RGBA$1(175,238,238,1));case"palevioletred":return new o(new RGBA$1(219,112,147,1));case"papayawhip":return new o(new RGBA$1(255,239,213,1));case"peachpuff":return new o(new RGBA$1(255,218,185,1));case"peru":return new o(new RGBA$1(205,133,63,1));case"pink":return new o(new RGBA$1(255,192,203,1));case"plum":return new o(new RGBA$1(221,160,221,1));case"powderblue":return new o(new RGBA$1(176,224,230,1));case"purple":return new o(new RGBA$1(128,0,128,1));case"rebeccapurple":return new o(new RGBA$1(102,51,153,1));case"red":return new o(new RGBA$1(255,0,0,1));case"rosybrown":return new o(new RGBA$1(188,143,143,1));case"royalblue":return new o(new RGBA$1(65,105,225,1));case"saddlebrown":return new o(new RGBA$1(139,69,19,1));case"salmon":return new o(new RGBA$1(250,128,114,1));case"sandybrown":return new o(new RGBA$1(244,164,96,1));case"seagreen":return new o(new RGBA$1(46,139,87,1));case"seashell":return new o(new RGBA$1(255,245,238,1));case"sienna":return new o(new RGBA$1(160,82,45,1));case"silver":return new o(new RGBA$1(192,192,192,1));case"skyblue":return new o(new RGBA$1(135,206,235,1));case"slateblue":return new o(new RGBA$1(106,90,205,1));case"slategray":return new o(new RGBA$1(112,128,144,1));case"slategrey":return new o(new RGBA$1(112,128,144,1));case"snow":return new o(new RGBA$1(255,250,250,1));case"springgreen":return new o(new RGBA$1(0,255,127,1));case"steelblue":return new o(new RGBA$1(70,130,180,1));case"tan":return new o(new RGBA$1(210,180,140,1));case"teal":return new o(new RGBA$1(0,128,128,1));case"thistle":return new o(new RGBA$1(216,191,216,1));case"tomato":return new o(new RGBA$1(255,99,71,1));case"turquoise":return new o(new RGBA$1(64,224,208,1));case"violet":return new o(new RGBA$1(238,130,238,1));case"wheat":return new o(new RGBA$1(245,222,179,1));case"white":return new o(new RGBA$1(255,255,255,1));case"whitesmoke":return new o(new RGBA$1(245,245,245,1));case"yellow":return new o(new RGBA$1(255,255,0,1));case"yellowgreen":return new o(new RGBA$1(154,205,50,1));default:return null}}function _(b){const C=b.length;if(C===0||b.charCodeAt(0)!==35)return null;if(C===7){const y=16*v(b.charCodeAt(1))+v(b.charCodeAt(2)),S=16*v(b.charCodeAt(3))+v(b.charCodeAt(4)),w=16*v(b.charCodeAt(5))+v(b.charCodeAt(6));return new o(new RGBA$1(y,S,w,1))}if(C===9){const y=16*v(b.charCodeAt(1))+v(b.charCodeAt(2)),S=16*v(b.charCodeAt(3))+v(b.charCodeAt(4)),w=16*v(b.charCodeAt(5))+v(b.charCodeAt(6)),E=16*v(b.charCodeAt(7))+v(b.charCodeAt(8));return new o(new RGBA$1(y,S,w,E/255))}if(C===4){const y=v(b.charCodeAt(1)),S=v(b.charCodeAt(2)),w=v(b.charCodeAt(3));return new o(new RGBA$1(16*y+y,16*S+S,16*w+w))}if(C===5){const y=v(b.charCodeAt(1)),S=v(b.charCodeAt(2)),w=v(b.charCodeAt(3)),E=v(b.charCodeAt(4));return new o(new RGBA$1(16*y+y,16*S+S,16*w+w,(16*E+E)/255))}return null}t.parseHex=_;function v(b){switch(b){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 asCssVariableName(o){return"--vscode-".concat(o.replace(/\./g,"-"))}function asCssVariable(o){return"var(".concat(asCssVariableName(o),")")}function asCssVariableWithDefault(o,e){return"var(".concat(asCssVariableName(o),", ").concat(e,")")}function isColorDefaults(o){return o!==null&&typeof o=="object"&&"light"in o&&"dark"in o}const Extensions$4={ColorContribution:"base.contributions.colors"},DEFAULT_COLOR_CONFIG_VALUE="default";class ColorRegistry extends Disposable$1{constructor(){super(),this._onDidChangeSchema=this._register(new Emitter$1),this.onDidChangeSchema=this._onDidChangeSchema.event,this.colorSchema={type:"object",properties:{}},this.colorReferenceSchema={type:"string",enum:[],enumDescriptions:[]},this.colorsById={}}registerColor(e,t,r,s=!1,a){const l={id:e,description:r,defaults:t,needsTransparency:s,deprecationMessage:a};this.colorsById[e]=l;const c={type:"string",format:"color-hex",defaultSnippets:[{body:"${1:#ff0000}"}]};return a&&(c.deprecationMessage=a),s&&(c.pattern="^#(?:(?<rgba>[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$",c.patternErrorMessage=localize(2022,"This color must be transparent or it will obscure content")),this.colorSchema.properties[e]={description:r,oneOf:[c,{type:"string",const:DEFAULT_COLOR_CONFIG_VALUE,description:localize(2023,"Use the default color.")}]},this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(r),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map(e=>this.colorsById[e])}resolveDefaultColor(e,t){const r=this.colorsById[e];if(r!=null&&r.defaults){const s=isColorDefaults(r.defaults)?r.defaults[t.type]:r.defaults;return resolveColorValue(s,t)}}getColorSchema(){return this.colorSchema}toString(){const e=(t,r)=>{const s=t.indexOf(".")===-1?0:1,a=r.indexOf(".")===-1?0:1;return s!==a?s-a:t.localeCompare(r)};return Object.keys(this.colorsById).sort(e).map(t=>"- `".concat(t,"`: ").concat(this.colorsById[t].description)).join("\n")}}const colorRegistry$1=new ColorRegistry;Registry.add(Extensions$4.ColorContribution,colorRegistry$1);function registerColor(o,e,t,r,s){return colorRegistry$1.registerColor(o,e,t,r,s)}function executeTransform(o,e){var t,r,s,a;switch(o.op){case 0:return(t=resolveColorValue(o.value,e))==null?void 0:t.darken(o.factor);case 1:return(r=resolveColorValue(o.value,e))==null?void 0:r.lighten(o.factor);case 2:return(s=resolveColorValue(o.value,e))==null?void 0:s.transparent(o.factor);case 7:{const l=resolveColorValue(o.color,e)||Color.transparent,c=resolveColorValue(o.with,e)||Color.transparent;return l.mix(c,o.ratio)}case 3:{const l=resolveColorValue(o.background,e);return l?(a=resolveColorValue(o.value,e))==null?void 0:a.makeOpaque(l):resolveColorValue(o.value,e)}case 4:for(const l of o.values){const c=resolveColorValue(l,e);if(c)return c}return;case 6:return resolveColorValue(e.defines(o.if)?o.then:o.else,e);case 5:{const l=resolveColorValue(o.value,e);if(!l)return;const c=resolveColorValue(o.background,e);return c?l.isDarkerThan(c)?Color.getLighterColor(l,c,o.factor).transparent(o.transparency):Color.getDarkerColor(l,c,o.factor).transparent(o.transparency):l.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,r){return{op:5,value:o,background:e,factor:t,transparency:r}}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()});const foreground=registerColor("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},localize(1773,"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(1774,"Overall foreground for disabled elements. This color is only used if not overridden by a component."));registerColor("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},localize(1775,"Overall foreground color for error messages. This color is only used if not overridden by a component."));const descriptionForeground=registerColor("descriptionForeground",{light:"#717171",dark:transparent(foreground,.7),hcDark:transparent(foreground,.7),hcLight:transparent(foreground,.7)},localize(1776,"Foreground color for description text providing additional information, for example for a label.")),iconForeground=registerColor("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},localize(1777,"The default color for icons in the workbench.")),focusBorder=registerColor("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},localize(1778,"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(1779,"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(1780,"An extra border around active elements to separate them from others for greater contrast."));registerColor("selection.background",null,localize(1781,"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."));const textLinkForeground=registerColor("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},localize(1782,"Foreground color for links in text."));registerColor("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},localize(1783,"Foreground color for links in text when clicked on and on mouse hover."));registerColor("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:Color.black,hcLight:"#292929"},localize(1784,"Color for text separators."));registerColor("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},localize(1785,"Foreground color for preformatted text segments."));registerColor("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},localize(1786,"Background color for preformatted text segments."));registerColor("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},localize(1787,"Background color for block quotes in text."));registerColor("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:Color.white,hcLight:"#292929"},localize(1788,"Border color for block quotes in text."));registerColor("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:Color.black,hcLight:"#F2F2F2"},localize(1789,"Background color for code blocks in text."));registerColor("sash.hoverBorder",focusBorder,localize(1994,"Border color of active sashes."));const badgeBackground=registerColor("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:Color.black,hcLight:"#0F4A85"},localize(1995,"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(1996,"Badge foreground color. Badges are small information labels, e.g. for search results count."));registerColor("activityWarningBadge.foreground",{dark:Color.black.lighten(.2),light:Color.white,hcDark:null,hcLight:Color.black.lighten(.2)},localize(1997,"Foreground color of the warning activity badge"));registerColor("activityWarningBadge.background",{dark:"#CCA700",light:"#BF8803",hcDark:null,hcLight:"#CCA700"},localize(1998,"Background color of the warning activity badge"));registerColor("activityErrorBadge.foreground",{dark:Color.black.lighten(.2),light:Color.white,hcDark:null,hcLight:Color.black.lighten(.2)},localize(1999,"Foreground color of the error activity badge"));registerColor("activityErrorBadge.background",{dark:"#F14C4C",light:"#E51400",hcDark:null,hcLight:"#F14C4C"},localize(2e3,"Background color of the error activity badge"));const scrollbarShadow=registerColor("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},localize(2001,"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(2002,"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(2003,"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(2004,"Scrollbar slider background color when clicked on."));registerColor("scrollbar.background",null,localize(2005,"Scrollbar track background color."));const progressBarBackground=registerColor("progressBar.background",{dark:Color.fromHex("#0E70C0"),light:Color.fromHex("#0E70C0"),hcDark:contrastBorder,hcLight:contrastBorder},localize(2006,"Background color of the progress bar that can show for long running operations."));registerColor("chart.line",{dark:"#236B8E",light:"#236B8E",hcDark:"#236B8E",hcLight:"#236B8E"},localize(2007,"Line color for the chart."));registerColor("chart.axis",{dark:Color.fromHex("#BFBFBF").transparent(.4),light:Color.fromHex("#000000").transparent(.6),hcDark:contrastBorder,hcLight:contrastBorder},localize(2008,"Axis color for the chart."));registerColor("chart.guide",{dark:Color.fromHex("#BFBFBF").transparent(.2),light:Color.fromHex("#000000").transparent(.2),hcDark:contrastBorder,hcLight:contrastBorder},localize(2009,"Guide line for the chart."));const editorBackground=registerColor("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:Color.black,hcLight:Color.white},localize(1798,"Editor background color.")),editorForeground=registerColor("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:Color.white,hcLight:foreground},localize(1799,"Editor default foreground color."));registerColor("editorStickyScroll.background",editorBackground,localize(1800,"Background color of sticky scroll in the editor"));registerColor("editorStickyScrollGutter.background",editorBackground,localize(1801,"Background color of the gutter part of sticky scroll in the editor"));registerColor("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:Color.fromHex("#0F4A85").transparent(.1)},localize(1802,"Background color of sticky scroll on hover in the editor"));registerColor("editorStickyScroll.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize(1803,"Border color of sticky scroll in the editor"));registerColor("editorStickyScroll.shadow",scrollbarShadow,localize(1804," Shadow color of sticky scroll in the editor"));const editorWidgetBackground=registerColor("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:Color.white},localize(1805,"Background color of editor widgets, such as find/replace.")),editorWidgetForeground=registerColor("editorWidget.foreground",foreground,localize(1806,"Foreground color of editor widgets, such as find/replace.")),editorWidgetBorder=registerColor("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:contrastBorder,hcLight:contrastBorder},localize(1807,"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."));registerColor("editorWidget.resizeBorder",null,localize(1808,"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."));registerColor("editorError.background",null,localize(1809,"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(1810,"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(1811,"If set, color of double underlines for errors in the editor.")),editorWarningBackground=registerColor("editorWarning.background",null,localize(1812,"Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),editorWarningForeground=registerColor("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},localize(1813,"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(1814,"If set, color of double underlines for warnings in the editor."));registerColor("editorInfo.background",null,localize(1815,"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(1816,"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(1817,"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(1818,"Foreground color of hint squigglies in the editor."));registerColor("editorHint.border",{dark:null,light:null,hcDark:Color.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},localize(1819,"If set, color of double underlines for hints in the editor."));const editorActiveLinkForeground=registerColor("editorLink.activeForeground",{dark:"#4E94CE",light:Color.blue,hcDark:Color.cyan,hcLight:"#292929"},localize(1820,"Color of active links.")),editorSelectionBackground=registerColor("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},localize(1821,"Color of the editor selection.")),editorSelectionForeground=registerColor("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:Color.white},localize(1822,"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(1823,"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(1824,"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(1825,"Border color for regions with the same content as the selection."));registerColor("editor.compositionBorder",{light:"#000000",dark:"#ffffff",hcLight:"#000000",hcDark:"#ffffff"},localize(1826,"The border color for an IME composition."));registerColor("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},localize(1827,"Color of the current search match."));const editorFindMatchForeground=registerColor("editor.findMatchForeground",null,localize(1828,"Text color of the current search match.")),editorFindMatchHighlight=registerColor("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},localize(1829,"Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0),editorFindMatchHighlightForeground=registerColor("editor.findMatchHighlightForeground",null,localize(1830,"Foreground color of the other search matches."),!0);registerColor("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},localize(1831,"Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("editor.findMatchBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize(1832,"Border color of the current search match."));const editorFindMatchHighlightBorder=registerColor("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize(1833,"Border color of the other search matches.")),editorFindRangeHighlightBorder=registerColor("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:transparent(activeContrastBorder,.4),hcLight:transparent(activeContrastBorder,.4)},localize(1834,"Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},localize(1835,"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",editorWidgetBackground,localize(1836,"Background color of the editor hover.")),editorHoverForeground=registerColor("editorHoverWidget.foreground",editorWidgetForeground,localize(1837,"Foreground color of the editor hover.")),editorHoverBorder=registerColor("editorHoverWidget.border",editorWidgetBorder,localize(1838,"Border color of the editor hover."));registerColor("editorHoverWidget.statusBarBackground",{dark:lighten(editorHoverBackground,.2),light:darken(editorHoverBackground,.05),hcDark:editorWidgetBackground,hcLight:editorWidgetBackground},localize(1839,"Background color of the editor hover status bar."));const editorInlayHintForeground=registerColor("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:Color.white,hcLight:Color.black},localize(1840,"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(1841,"Background color of inline hints")),editorInlayHintTypeForeground=registerColor("editorInlayHint.typeForeground",editorInlayHintForeground,localize(1842,"Foreground color of inline hints for types")),editorInlayHintTypeBackground=registerColor("editorInlayHint.typeBackground",editorInlayHintBackground,localize(1843,"Background color of inline hints for types")),editorInlayHintParameterForeground=registerColor("editorInlayHint.parameterForeground",editorInlayHintForeground,localize(1844,"Foreground color of inline hints for parameters")),editorInlayHintParameterBackground=registerColor("editorInlayHint.parameterBackground",editorInlayHintBackground,localize(1845,"Background color of inline hints for parameters")),editorLightBulbForeground=registerColor("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},localize(1846,"The color used for the lightbulb actions icon."));registerColor("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},localize(1847,"The color used for the lightbulb auto fix actions icon."));registerColor("editorLightBulbAi.foreground",editorLightBulbForeground,localize(1848,"The color used for the lightbulb AI icon."));registerColor("editor.snippetTabstopHighlightBackground",{dark:new Color(new RGBA$1(124,124,124,.3)),light:new Color(new RGBA$1(10,50,100,.2)),hcDark:new Color(new RGBA$1(124,124,124,.3)),hcLight:new Color(new RGBA$1(10,50,100,.2))},localize(1849,"Highlight background color of a snippet tabstop."));registerColor("editor.snippetTabstopHighlightBorder",null,localize(1850,"Highlight border color of a snippet tabstop."));registerColor("editor.snippetFinalTabstopHighlightBackground",null,localize(1851,"Highlight background color of the final tabstop of a snippet."));registerColor("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new Color(new RGBA$1(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},localize(1852,"Highlight border color of the final tabstop of a snippet."));const defaultInsertColor=new Color(new RGBA$1(155,185,85,.2)),defaultRemoveColor=new Color(new RGBA$1(255,0,0,.2)),diffInserted=registerColor("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},localize(1853,"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(1854,"Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),diffInsertedLine=registerColor("diffEditor.insertedLineBackground",{dark:defaultInsertColor,light:defaultInsertColor,hcDark:null,hcLight:null},localize(1855,"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(1856,"Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("diffEditorGutter.insertedLineBackground",null,localize(1857,"Background color for the margin where lines got inserted."));registerColor("diffEditorGutter.removedLineBackground",null,localize(1858,"Background color for the margin where lines got removed."));const diffOverviewRulerInserted=registerColor("diffEditorOverview.insertedForeground",null,localize(1859,"Diff overview ruler foreground for inserted content.")),diffOverviewRulerRemoved=registerColor("diffEditorOverview.removedForeground",null,localize(1860,"Diff overview ruler foreground for removed content."));registerColor("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},localize(1861,"Outline color for the text that got inserted."));registerColor("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},localize(1862,"Outline color for text that got removed."));registerColor("diffEditor.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize(1863,"Border color between the two text editors."));registerColor("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},localize(1864,"Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views."));registerColor("diffEditor.unchangedRegionBackground","sideBar.background",localize(1865,"The background color of unchanged blocks in the diff editor."));registerColor("diffEditor.unchangedRegionForeground","foreground",localize(1866,"The foreground color of unchanged blocks in the diff editor."));registerColor("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},localize(1867,"The background color of unchanged code in the diff editor."));const widgetShadow=registerColor("widget.shadow",{dark:transparent(Color.black,.36),light:transparent(Color.black,.16),hcDark:null,hcLight:null},localize(1868,"Shadow color of widgets such as find/replace inside the editor.")),widgetBorder=registerColor("widget.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize(1869,"Border color of widgets such as find/replace inside the editor.")),toolbarHoverBackground=registerColor("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},localize(1870,"Toolbar background when hovering over actions using the mouse"));registerColor("toolbar.hoverOutline",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize(1871,"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(1872,"Toolbar background when holding the mouse over actions"));const breadcrumbsForeground=registerColor("breadcrumb.foreground",transparent(foreground,.8),localize(1873,"Color of focused breadcrumb items.")),breadcrumbsBackground=registerColor("breadcrumb.background",editorBackground,localize(1874,"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(1875,"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(1876,"Color of selected breadcrumb items."));registerColor("breadcrumbPicker.background",editorWidgetBackground,localize(1877,"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(1878,"Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("merge.currentContentBackground",transparent(mergeCurrentHeaderBackground,contentTransparency),localize(1879,"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(1880,"Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("merge.incomingContentBackground",transparent(mergeIncomingHeaderBackground,contentTransparency),localize(1881,"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(1882,"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",transparent(mergeCommonHeaderBackground,contentTransparency),localize(1883,"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(1884,"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(1885,"Current overview ruler foreground for inline merge-conflicts."));registerColor("editorOverviewRuler.incomingContentForeground",{dark:transparent(mergeIncomingHeaderBackground,rulerTransparency),light:transparent(mergeIncomingHeaderBackground,rulerTransparency),hcDark:mergeBorder,hcLight:mergeBorder},localize(1886,"Incoming overview ruler foreground for inline merge-conflicts."));registerColor("editorOverviewRuler.commonContentForeground",{dark:transparent(mergeCommonHeaderBackground,rulerTransparency),light:transparent(mergeCommonHeaderBackground,rulerTransparency),hcDark:mergeBorder,hcLight:mergeBorder},localize(1887,"Common ancestor overview ruler foreground for inline merge-conflicts."));const overviewRulerFindMatchForeground=registerColor("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:"#AB5A00"},localize(1888,"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","#A0A0A0CC",localize(1889,"Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),problemsErrorIconForeground=registerColor("problemsErrorIcon.foreground",editorErrorForeground,localize(1890,"The color used for the problems error icon.")),problemsWarningIconForeground=registerColor("problemsWarningIcon.foreground",editorWarningForeground,localize(1891,"The color used for the problems warning icon.")),problemsInfoIconForeground=registerColor("problemsInfoIcon.foreground",editorInfoForeground,localize(1892,"The color used for the problems info icon.")),minimapFindMatch=registerColor("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},localize(1983,"Minimap marker color for find matches."),!0),minimapSelectionOccurrenceHighlight=registerColor("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},localize(1984,"Minimap marker color for repeating editor selections."),!0),minimapSelection=registerColor("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},localize(1985,"Minimap marker color for the editor selection."),!0),minimapInfo=registerColor("minimap.infoHighlight",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoBorder,hcLight:editorInfoBorder},localize(1986,"Minimap marker color for infos.")),minimapWarning=registerColor("minimap.warningHighlight",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningBorder,hcLight:editorWarningBorder},localize(1987,"Minimap marker color for warnings.")),minimapError=registerColor("minimap.errorHighlight",{dark:new Color(new RGBA$1(255,18,18,.7)),light:new Color(new RGBA$1(255,18,18,.7)),hcDark:new Color(new RGBA$1(255,50,50,1)),hcLight:"#B5200D"},localize(1988,"Minimap marker color for errors.")),minimapBackground=registerColor("minimap.background",null,localize(1989,"Minimap background color.")),minimapForegroundOpacity=registerColor("minimap.foregroundOpacity",Color.fromHex("#000f"),localize(1990,'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.'));registerColor("minimapSlider.background",transparent(scrollbarSliderBackground,.5),localize(1991,"Minimap slider background color."));registerColor("minimapSlider.hoverBackground",transparent(scrollbarSliderHoverBackground,.5),localize(1992,"Minimap slider background color when hovering."));registerColor("minimapSlider.activeBackground",transparent(scrollbarSliderActiveBackground,.5),localize(1993,"Minimap slider background color when clicked on."));registerColor("charts.foreground",foreground,localize(1790,"The foreground color used in charts."));registerColor("charts.lines",transparent(foreground,.5),localize(1791,"The color used for horizontal lines in charts."));registerColor("charts.red",editorErrorForeground,localize(1792,"The red color used in chart visualizations."));registerColor("charts.blue",editorInfoForeground,localize(1793,"The blue color used in chart visualizations."));registerColor("charts.yellow",editorWarningForeground,localize(1794,"The yellow color used in chart visualizations."));registerColor("charts.orange",minimapFindMatch,localize(1795,"The orange color used in chart visualizations."));registerColor("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},localize(1796,"The green color used in chart visualizations."));registerColor("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},localize(1797,"The purple color used in chart visualizations."));const inputBackground=registerColor("input.background",{dark:"#3C3C3C",light:Color.white,hcDark:Color.black,hcLight:Color.white},localize(1893,"Input box background.")),inputForeground=registerColor("input.foreground",foreground,localize(1894,"Input box foreground.")),inputBorder=registerColor("input.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize(1895,"Input box border.")),inputActiveOptionBorder=registerColor("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:contrastBorder,hcLight:contrastBorder},localize(1896,"Border color of activated options in input fields.")),inputActiveOptionHoverBackground=registerColor("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},localize(1897,"Background color of activated options in input fields.")),inputActiveOptionBackground=registerColor("inputOption.activeBackground",{dark:transparent(focusBorder,.4),light:transparent(focusBorder,.2),hcDark:Color.transparent,hcLight:Color.transparent},localize(1898,"Background hover color of options in input fields.")),inputActiveOptionForeground=registerColor("inputOption.activeForeground",{dark:Color.white,light:Color.black,hcDark:foreground,hcLight:foreground},localize(1899,"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(1900,"Input box foreground color for placeholder text."));const inputValidationInfoBackground=registerColor("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:Color.black,hcLight:Color.white},localize(1901,"Input validation background color for information severity.")),inputValidationInfoForeground=registerColor("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize(1902,"Input validation foreground color for information severity.")),inputValidationInfoBorder=registerColor("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:contrastBorder,hcLight:contrastBorder},localize(1903,"Input validation border color for information severity.")),inputValidationWarningBackground=registerColor("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:Color.black,hcLight:Color.white},localize(1904,"Input validation background color for warning severity.")),inputValidationWarningForeground=registerColor("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize(1905,"Input validation foreground color for warning severity.")),inputValidationWarningBorder=registerColor("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:contrastBorder,hcLight:contrastBorder},localize(1906,"Input validation border color for warning severity.")),inputValidationErrorBackground=registerColor("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:Color.black,hcLight:Color.white},localize(1907,"Input validation background color for error severity.")),inputValidationErrorForeground=registerColor("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:foreground},localize(1908,"Input validation foreground color for error severity.")),inputValidationErrorBorder=registerColor("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:contrastBorder,hcLight:contrastBorder},localize(1909,"Input validation border color for error severity.")),selectBackground=registerColor("dropdown.background",{dark:"#3C3C3C",light:Color.white,hcDark:Color.black,hcLight:Color.white},localize(1910,"Dropdown background.")),selectListBackground=registerColor("dropdown.listBackground",{dark:null,light:null,hcDark:Color.black,hcLight:Color.white},localize(1911,"Dropdown list background.")),selectForeground=registerColor("dropdown.foreground",{dark:"#F0F0F0",light:foreground,hcDark:Color.white,hcLight:foreground},localize(1912,"Dropdown foreground.")),selectBorder=registerColor("dropdown.border",{dark:selectBackground,light:"#CECECE",hcDark:contrastBorder,hcLight:contrastBorder},localize(1913,"Dropdown border.")),buttonForeground=registerColor("button.foreground",Color.white,localize(1914,"Button foreground color.")),buttonSeparator=registerColor("button.separator",transparent(buttonForeground,.4),localize(1915,"Button separator color.")),buttonBackground=registerColor("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:Color.black,hcLight:"#0F4A85"},localize(1916,"Button background color.")),buttonHoverBackground=registerColor("button.hoverBackground",{dark:lighten(buttonBackground,.2),light:darken(buttonBackground,.2),hcDark:buttonBackground,hcLight:buttonBackground},localize(1917,"Button background color when hovering.")),buttonBorder=registerColor("button.border",contrastBorder,localize(1918,"Button border color.")),buttonSecondaryForeground=registerColor("button.secondaryForeground",{dark:Color.white,light:Color.white,hcDark:Color.white,hcLight:foreground},localize(1919,"Secondary button foreground color.")),buttonSecondaryBackground=registerColor("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:Color.white},localize(1920,"Secondary button background color.")),buttonSecondaryHoverBackground=registerColor("button.secondaryHoverBackground",{dark:lighten(buttonSecondaryBackground,.2),light:darken(buttonSecondaryBackground,.2),hcDark:null,hcLight:null},localize(1921,"Secondary button background color when hovering.")),radioActiveForeground=registerColor("radio.activeForeground",inputActiveOptionForeground,localize(1922,"Foreground color of active radio option.")),radioActiveBackground=registerColor("radio.activeBackground",inputActiveOptionBackground,localize(1923,"Background color of active radio option.")),radioActiveBorder=registerColor("radio.activeBorder",inputActiveOptionBorder,localize(1924,"Border color of the active radio option.")),radioInactiveForeground=registerColor("radio.inactiveForeground",null,localize(1925,"Foreground color of inactive radio option.")),radioInactiveBackground=registerColor("radio.inactiveBackground",null,localize(1926,"Background color of inactive radio option.")),radioInactiveBorder=registerColor("radio.inactiveBorder",{light:transparent(radioActiveForeground,.2),dark:transparent(radioActiveForeground,.2),hcDark:transparent(radioActiveForeground,.4),hcLight:transparent(radioActiveForeground,.2)},localize(1927,"Border color of the inactive radio option.")),radioInactiveHoverBackground=registerColor("radio.inactiveHoverBackground",inputActiveOptionHoverBackground,localize(1928,"Background color of inactive active radio option when hovering.")),checkboxBackground=registerColor("checkbox.background",selectBackground,localize(1929,"Background color of checkbox widget."));registerColor("checkbox.selectBackground",editorWidgetBackground,localize(1930,"Background color of checkbox widget when the element it's in is selected."));const checkboxForeground=registerColor("checkbox.foreground",selectForeground,localize(1931,"Foreground color of checkbox widget.")),checkboxBorder=registerColor("checkbox.border",selectBorder,localize(1932,"Border color of checkbox widget."));registerColor("checkbox.selectBorder",iconForeground,localize(1933,"Border color of checkbox widget when the element it's in is selected."));const checkboxDisabledBackground=registerColor("checkbox.disabled.background",{op:7,color:checkboxBackground,with:checkboxForeground,ratio:.33},localize(1934,"Background of a disabled checkbox.")),checkboxDisabledForeground=registerColor("checkbox.disabled.foreground",{op:7,color:checkboxForeground,with:checkboxBackground,ratio:.33},localize(1935,"Foreground of a disabled checkbox.")),keybindingLabelBackground=registerColor("keybindingLabel.background",{dark:new Color(new RGBA$1(128,128,128,.17)),light:new Color(new RGBA$1(221,221,221,.4)),hcDark:Color.transparent,hcLight:Color.transparent},localize(1936,"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(1937,"Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),keybindingLabelBorder=registerColor("keybindingLabel.border",{dark:new Color(new RGBA$1(51,51,51,.6)),light:new Color(new RGBA$1(204,204,204,.4)),hcDark:new Color(new RGBA$1(111,195,223)),hcLight:contrastBorder},localize(1938,"Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),keybindingLabelBottomBorder=registerColor("keybindingLabel.bottomBorder",{dark:new Color(new RGBA$1(68,68,68,.6)),light:new Color(new RGBA$1(187,187,187,.4)),hcDark:new Color(new RGBA$1(111,195,223)),hcLight:foreground},localize(1939,"Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),listFocusBackground=registerColor("list.focusBackground",null,localize(1940,"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",null,localize(1941,"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(1942,"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",null,localize(1943,"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(1944,"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(1945,"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",null,localize(1946,"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(1947,"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",null,localize(1948,"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",null,localize(1949,"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",null,localize(1950,"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",null,localize(1951,"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(1952,"List/Tree background when hovering over items using the mouse.")),listHoverForeground=registerColor("list.hoverForeground",null,localize(1953,"List/Tree foreground when hovering over items using the mouse.")),listDropOverBackground=registerColor("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},localize(1954,"List/Tree drag and drop background when moving items over other items when using the mouse.")),listDropBetweenBackground=registerColor("list.dropBetweenBackground",{dark:iconForeground,light:iconForeground,hcDark:null,hcLight:null},localize(1955,"List/Tree drag and drop border color when moving items between items when using the mouse.")),listHighlightForeground=registerColor("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:focusBorder,hcLight:focusBorder},localize(1956,"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(1957,"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(1958,"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(1959,"Foreground color of list items containing errors."));registerColor("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},localize(1960,"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(1961,"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(1962,"Outline color of the type filter widget in lists and trees.")),listFilterWidgetNoMatchesOutline=registerColor("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:contrastBorder,hcLight:contrastBorder},localize(1963,"Outline color of the type filter widget in lists and trees, when there are no matches.")),listFilterWidgetShadow=registerColor("listFilterWidget.shadow",widgetShadow,localize(1964,"Shadow color of the type filter widget in lists and trees."));registerColor("list.filterMatchBackground",{dark:editorFindMatchHighlight,light:editorFindMatchHighlight,hcDark:null,hcLight:null},localize(1965,"Background color of the filtered match."));registerColor("list.filterMatchBorder",{dark:editorFindMatchHighlightBorder,light:editorFindMatchHighlightBorder,hcDark:contrastBorder,hcLight:activeContrastBorder},localize(1966,"Border color of the filtered match."));registerColor("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},localize(1967,"List/Tree foreground color for items that are deemphasized."));const treeIndentGuidesStroke=registerColor("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},localize(1968,"Tree stroke color for the indentation guides.")),treeInactiveIndentGuidesStroke=registerColor("tree.inactiveIndentGuidesStroke",transparent(treeIndentGuidesStroke,.4),localize(1969,"Tree stroke color for the indentation guides that are not active.")),tableColumnsBorder=registerColor("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},localize(1970,"Table border color between columns.")),tableOddRowsBackgroundColor=registerColor("tree.tableOddRowsBackground",{dark:transparent(foreground,.04),light:transparent(foreground,.04),hcDark:null,hcLight:null},localize(1971,"Background color for odd table rows."));registerColor("editorActionList.background",editorWidgetBackground,localize(1972,"Action List background color."));const editorActionListForeground=registerColor("editorActionList.foreground",editorWidgetForeground,localize(1973,"Action List foreground color."));registerColor("editorActionList.focusForeground",listActiveSelectionForeground,localize(1974,"Action List foreground color for the focused item."));registerColor("editorActionList.focusBackground",listActiveSelectionBackground,localize(1975,"Action List background color for the focused item."));const menuBorder=registerColor("menu.border",{dark:null,light:null,hcDark:contrastBorder,hcLight:contrastBorder},localize(1976,"Border color of menus.")),menuForeground=registerColor("menu.foreground",selectForeground,localize(1977,"Foreground color of menu items.")),menuBackground=registerColor("menu.background",selectBackground,localize(1978,"Background color of menu items.")),menuSelectionForeground=registerColor("menu.selectionForeground",listActiveSelectionForeground,localize(1979,"Foreground color of the selected menu item in menus.")),menuSelectionBackground=registerColor("menu.selectionBackground",listActiveSelectionBackground,localize(1980,"Background color of the selected menu item in menus.")),menuSelectionBorder=registerColor("menu.selectionBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize(1981,"Border color of the selected menu item in menus.")),menuSeparatorBackground=registerColor("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:contrastBorder,hcLight:contrastBorder},localize(1982,"Color of a separator menu item in menus.")),quickInputBackground=registerColor("quickInput.background",editorWidgetBackground,localize(2010,"Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),quickInputForeground=registerColor("quickInput.foreground",editorWidgetForeground,localize(2011,"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$1(255,255,255,.105)),light:new Color(new RGBA$1(0,0,0,.06)),hcDark:"#000000",hcLight:Color.white},localize(2012,"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(2013,"Quick picker color for grouping labels.")),pickerGroupBorder=registerColor("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:Color.white,hcLight:"#0F4A85"},localize(2014,"Quick picker color for grouping borders.")),_deprecatedQuickInputListFocusBackground=registerColor("quickInput.list.focusBackground",null,"",void 0,localize(2015,"Please use quickInputList.focusBackground instead")),quickInputListFocusForeground=registerColor("quickInputList.focusForeground",listActiveSelectionForeground,localize(2016,"Quick picker foreground color for the focused item.")),quickInputListFocusIconForeground=registerColor("quickInputList.focusIconForeground",listActiveSelectionIconForeground,localize(2017,"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(2018,"Quick picker background color for the focused item."));registerColor("search.resultsInfoForeground",{light:foreground,dark:transparent(foreground,.65),hcDark:foreground,hcLight:foreground},localize(2019,"Color of the text in the search viewlet's completion message."));registerColor("searchEditor.findMatchBackground",{light:transparent(editorFindMatchHighlight,.66),dark:transparent(editorFindMatchHighlight,.66),hcDark:editorFindMatchHighlight,hcLight:editorFindMatchHighlight},localize(2020,"Color of the Search Editor query matches."));registerColor("searchEditor.findMatchBorder",{light:transparent(editorFindMatchHighlightBorder,.66),dark:transparent(editorFindMatchHighlightBorder,.66),hcDark:editorFindMatchHighlightBorder,hcLight:editorFindMatchHighlightBorder},localize(2021,"Border color of the Search Editor query matches."));class PageCoordinates{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(e){return new ClientCoordinates(this.x-e.scrollX,this.y-e.scrollY)}}class ClientCoordinates{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(e){return new PageCoordinates(this.clientX+e.scrollX,this.clientY+e.scrollY)}}class EditorPagePosition{constructor(e,t,r,s){this.x=e,this.y=t,this.width=r,this.height=s,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 r=e.width/o.offsetWidth,s=e.height/o.offsetHeight,a=(t.x-e.x)/r,l=(t.y-e.y)/s;return new CoordinatesRelativeToEditor(a,l)}class EditorMouseEvent extends StandardMouseEvent{constructor(e,t,r){super(getWindow$1(r),e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new PageCoordinates(this.posx,this.posy),this.editorPos=createEditorPagePosition(r),this.relativePos=createCoordinatesRelativeToEditor(r,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,EventType$1.CONTEXT_MENU,r=>{t(this._create(r))})}onMouseUp(e,t){return addDisposableListener(e,EventType$1.MOUSE_UP,r=>{t(this._create(r))})}onMouseDown(e,t){return addDisposableListener(e,EventType$1.MOUSE_DOWN,r=>{t(this._create(r))})}onPointerDown(e,t){return addDisposableListener(e,EventType$1.POINTER_DOWN,r=>{t(this._create(r),r.pointerId)})}onMouseLeave(e,t){return addDisposableListener(e,EventType$1.MOUSE_LEAVE,r=>{t(this._create(r))})}onMouseMove(e,t){return addDisposableListener(e,EventType$1.MOUSE_MOVE,r=>t(this._create(r)))}}class EditorPointerEventFactory{constructor(e){this._editorViewDomNode=e}_create(e){return new EditorMouseEvent(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return addDisposableListener(e,"pointerup",r=>{t(this._create(r))})}onPointerDown(e,t){return addDisposableListener(e,EventType$1.POINTER_DOWN,r=>{t(this._create(r),r.pointerId)})}onPointerLeave(e,t){return addDisposableListener(e,EventType$1.POINTER_LEAVE,r=>{t(this._create(r))})}onPointerMove(e,t){return addDisposableListener(e,"pointermove",r=>t(this._create(r)))}}class GlobalEditorPointerMoveMonitor extends Disposable$1{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new GlobalPointerMoveMonitor),this._keydownListener=null}startMonitoring(e,t,r,s,a){this._keydownListener=addStandardDisposableListener(e.ownerDocument,"keydown",l=>{l.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,l.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(e,t,r,l=>{s(new EditorMouseEvent(l,!0,this._editorViewDomNode))},l=>{this._keydownListener.dispose(),a(l)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}const ho=class ho{constructor(e){this._editor=e,this._instanceId=++ho._idPool,this._counter=0,this._rules=new DisposableMap,this._garbageCollectionScheduler=new RunOnceScheduler(()=>this.garbageCollect(),1e3)}dispose(){this._rules.dispose(),this._garbageCollectionScheduler.dispose()}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 r=this._rules.get(t);if(!r){const s=this._counter++;r=new RefCountedCssRule(t,"dyn-rule-".concat(this._instanceId,"-").concat(s),isInShadowDOM(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,r)}return r}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(const e of this._rules.values())e.hasReferences()||this._rules.deleteAndDispose(e.key)}};ho._idPool=0;let DynamicCssRules=ho;class RefCountedCssRule{constructor(e,t,r,s){this.key=e,this.className=t,this.properties=s,this._referenceCount=0,this._styleElementDisposables=new DisposableStore$1,this._styleElement=createStyleSheet(r,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let r=".".concat(e," {");for(const s in t){const a=t[s];let l;typeof a=="object"?l=asCssVariable(a.id):l=a;const c=camelToDashes(s);r+="\n ".concat(c,": ").concat(l,";")}return r+="\n}",r}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}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])=>"-".concat(e.toLowerCase()))}class ViewEventHandler extends Disposable$1{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 r=0,s=e.length;r<s;r++){const a=e[r];switch(a.type){case 0:this.onCompositionStart(a)&&(t=!0);break;case 1:this.onCompositionEnd(a)&&(t=!0);break;case 2:this.onConfigurationChanged(a)&&(t=!0);break;case 3:this.onCursorStateChanged(a)&&(t=!0);break;case 4:this.onDecorationsChanged(a)&&(t=!0);break;case 5:this.onFlushed(a)&&(t=!0);break;case 6:this.onFocusChanged(a)&&(t=!0);break;case 7:this.onLanguageConfigurationChanged(a)&&(t=!0);break;case 8:this.onLineMappingChanged(a)&&(t=!0);break;case 9:this.onLinesChanged(a)&&(t=!0);break;case 10:this.onLinesDeleted(a)&&(t=!0);break;case 11:this.onLinesInserted(a)&&(t=!0);break;case 12:this.onRevealRangeRequest(a)&&(t=!0);break;case 13:this.onScrollChanged(a)&&(t=!0);break;case 15:this.onTokensChanged(a)&&(t=!0);break;case 14:this.onThemeChanged(a)&&(t=!0);break;case 16:this.onTokensColorsChanged(a)&&(t=!0);break;case 17:this.onZonesChanged(a)&&(t=!0);break;default:console.info("View received unknown event: "),console.info(a)}}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 r=[];let s=0;for(;e&&e!==e.ownerDocument.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(r[s++]=this.read(e)),e=e.parentElement;const a=new Uint8Array(s);for(let l=0;l<s;l++)a[l]=r[s-l-1];return a}}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 r=this._viewLayout.getCurrentViewport();this.scrollTop=r.top,this.scrollLeft=r.left,this.viewportWidth=r.width,this.viewportHeight=r.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)}getLineHeightForLineNumber(e){return this._viewLayout.getLineHeightForLineNumber(e)}getDecorationsInViewport(){return this.viewportData.getDecorationsInViewport()}}class RenderingContext extends RestrictedRenderingContext{constructor(e,t,r,s){super(e,t),this._renderingContextBrand=void 0,this._viewLines=r,this._viewLinesGpu=s}linesVisibleRangesForRange(e,t){const r=this._viewLines.linesVisibleRangesForRange(e,t);if(!this._viewLinesGpu)return r!=null?r:null;const s=this._viewLinesGpu.linesVisibleRangesForRange(e,t);return r?s?r.concat(s).sort((a,l)=>a.lineNumber-l.lineNumber):r:s}visibleRangeForPosition(e){var t,r,s;return(s=(r=this._viewLines.visibleRangeForPosition(e))!=null?r:(t=this._viewLinesGpu)==null?void 0:t.visibleRangeForPosition(e))!=null?s:null}}class LineVisibleRanges{constructor(e,t,r,s){this.outsideRenderedLine=e,this.lineNumber=t,this.ranges=r,this.continuesOnNextLine=s}}class HorizontalRange{static from(e){const t=new Array(e.length);for(let r=0,s=e.length;r<s;r++){const a=e[r];t[r]=new HorizontalRange(a.left,a.width)}return t}constructor(e,t){this._horizontalRangeBrand=void 0,this.left=Math.round(e),this.width=Math.round(t)}toString(){return"[".concat(this.left,",").concat(this.width,"]")}}class FloatHorizontalRange{constructor(e,t){this._floatHorizontalRangeBrand=void 0,this.left=e,this.width=t}toString(){return"[".concat(this.left,",").concat(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,r,s,a){const l=this._createRange();try{return l.setStart(e,t),l.setEnd(r,s),l.getClientRects()}catch(c){return null}finally{this._detachRange(l,a)}}static _mergeAdjacentRanges(e){if(e.length===1)return e;e.sort(FloatHorizontalRange.compare);const t=[];let r=0,s=e[0];for(let a=1,l=e.length;a<l;a++){const c=e[a];s.left+s.width+.9>=c.left?s.width=Math.max(s.width,c.left+c.width-s.left):(t[r++]=s,s=c)}return t[r++]=s,t}static _createHorizontalRangesFromClientRects(e,t,r){if(!e||e.length===0)return null;const s=[];for(let a=0,l=e.length;a<l;a++){const c=e[a];s[a]=new FloatHorizontalRange(Math.max(0,(c.left-t)/r),c.width/r)}return this._mergeAdjacentRanges(s)}static readHorizontalRanges(e,t,r,s,a,l){const d=e.children.length-1;if(0>d)return null;if(t=Math.min(d,Math.max(0,t)),s=Math.min(d,Math.max(0,s)),t===s&&r===a&&r===0&&!e.children[t].firstChild){const m=e.children[t].getClientRects();return l.markDidDomLayout(),this._createHorizontalRangesFromClientRects(m,l.clientRectDeltaLeft,l.clientRectScale)}t!==s&&s>0&&a===0&&(s--,a=1073741824);let u=e.children[t].firstChild,g=e.children[s].firstChild;if((!u||!g)&&(!u&&r===0&&t>0&&(u=e.children[t-1].firstChild,r=1073741824),!g&&a===0&&s>0&&(g=e.children[s-1].firstChild,a=1073741824)),!u||!g)return null;r=Math.min(u.textContent.length,Math.max(0,r)),a=Math.min(g.textContent.length,Math.max(0,a));const f=this._readClientRects(u,r,g,a,l.endNode);return l.markDidDomLayout(),this._createHorizontalRangesFromClientRects(f,l.clientRectDeltaLeft,l.clientRectScale)}}class LineDecoration{constructor(e,t,r,s){this.startColumn=e,this.endColumn=t,this.className=r,this.type=s,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 r=e.length,s=t.length;if(r!==s)return!1;for(let a=0;a<r;a++)if(!LineDecoration._equals(e[a],t[a]))return!1;return!0}static extractWrapped(e,t,r){if(e.length===0)return e;const s=t+1,a=r+1,l=r-t,c=[];let d=0;for(const u of e)u.endColumn<=s||u.startColumn>=a||(c[d++]=new LineDecoration(Math.max(1,u.startColumn-s+1),Math.min(l+1,u.endColumn-s+1),u.className,u.type));return c}static filter(e,t,r,s){if(e.length===0)return[];const a=[];let l=0;for(let c=0,d=e.length;c<d;c++){const u=e[c],g=u.range;if(g.endLineNumber<t||g.startLineNumber>t||g.isEmpty()&&(u.type===0||u.type===3))continue;const f=g.startLineNumber===t?g.startColumn:r,m=g.endLineNumber===t?g.endColumn:s;a[l++]=new LineDecoration(f,m,u.inlineClassName,u.type)}return a}static _typeCompare(e,t){const r=[2,0,1,3];return r[e]-r[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 r=LineDecoration._typeCompare(e.type,t.type);return r!==0?r:e.className!==t.className?e.className<t.className?-1:1:0}}class DecorationSegment{constructor(e,t,r,s){this.startOffset=e,this.endOffset=t,this.className=r,this.metadata=s}}class Stack{constructor(){this.stopOffsets=[],this.classNames=[],this.metadata=[],this.count=0}static _metadata(e){let t=0;for(let r=0,s=e.length;r<s;r++)t|=e[r];return t}consumeLowerThan(e,t,r){for(;this.count>0&&this.stopOffsets[0]<e;){let s=0;for(;s+1<this.count&&this.stopOffsets[s]===this.stopOffsets[s+1];)s++;r.push(new DecorationSegment(t,this.stopOffsets[s],this.classNames.join(" "),Stack._metadata(this.metadata))),t=this.stopOffsets[s]+1,this.stopOffsets.splice(0,s+1),this.classNames.splice(0,s+1),this.metadata.splice(0,s+1),this.count-=s+1}return this.count>0&&t<e&&(r.push(new DecorationSegment(t,e-1,this.classNames.join(" "),Stack._metadata(this.metadata))),t=e),t}insert(e,t,r){if(this.count===0||this.stopOffsets[this.count-1]<=e)this.stopOffsets.push(e),this.classNames.push(t),this.metadata.push(r);else for(let s=0;s<this.count;s++)if(this.stopOffsets[s]>=e){this.stopOffsets.splice(s,0,e),this.classNames.splice(s,0,t),this.metadata.splice(s,0,r);break}this.count++}}class LineDecorationsNormalizer{static normalize(e,t){if(t.length===0)return[];const r=[],s=new Stack;let a=0;for(let l=0,c=t.length;l<c;l++){const d=t[l];let u=d.startColumn,g=d.endColumn;const f=d.className,m=d.type===1?2:d.type===2?4:0;if(u>1){const b=e.charCodeAt(u-2);isHighSurrogate(b)&&u--}if(g>1){const b=e.charCodeAt(g-2);isHighSurrogate(b)&&g--}const _=u-1,v=g-2;a=s.consumeLowerThan(_,a,r),s.count===0&&(a=_),s.insert(v,f,m)}return s.consumeLowerThan(1073741824,a,r),r}}class LinePart{constructor(e,t,r,s){this.endIndex=e,this.type=t,this.metadata=r,this.containsRTL=s,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}class RenderLineInput{get isLTR(){return!this.containsRTL&&this.textDirection!==TextDirection$1.RTL}constructor(e,t,r,s,a,l,c,d,u,g,f,m,_,v,b,C,y,S,w,E,x,L=!1){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=r,this.continuesWithWrappedLine=s,this.isBasicASCII=a,this.containsRTL=l,this.fauxIndentLength=c,this.lineTokens=d,this.lineDecorations=u.sort(LineDecoration.compare),this.tabSize=g,this.startVisibleColumn=f,this.spaceWidth=m,this.stopRenderingLineAfter=b,this.renderWhitespace=C==="all"?4:C==="boundary"?1:C==="selection"?2:C==="trailing"?3:0,this.renderControlCharacters=y,this.fontLigatures=S,this.selectionsOnLine=w&&w.sort((I,T)=>I.start<T.start?-1:1),this.renderNewLineWhenEmpty=L,this.textDirection=E,this.verticalScrollbarSize=x;const k=Math.abs(v-m),D=Math.abs(_-m);k<D?(this.renderSpaceWidth=v,this.renderSpaceCharCode=11825):(this.renderSpaceWidth=_,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)&&this.textDirection===e.textDirection&&this.verticalScrollbarSize===e.verticalScrollbarSize&&this.renderNewLineWhenEmpty===e.renderNewLineWhenEmpty}}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,r,s){const a=(t<<16|r<<0)>>>0;this._data[e-1]=a,this._horizontalOffset[e-1]=s}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),r=CharacterMapping.getPartIndex(t),s=CharacterMapping.getCharIndex(t);return new DomPosition(r,s)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,r){if(this.length===0)return 0;const s=(e<<16|r<<0)>>>0;let a=0,l=this.length-1;for(;a+1<l;){const b=a+l>>>1,C=this._data[b];if(C===s)return b;C>s?l=b:a=b}if(a===l)return a;const c=this._data[a],d=this._data[l];if(c===s)return a;if(d===s)return l;const u=CharacterMapping.getPartIndex(c),g=CharacterMapping.getCharIndex(c),f=CharacterMapping.getPartIndex(d);let m;u!==f?m=t:m=CharacterMapping.getCharIndex(d);const _=r-g,v=m-r;return _<=v?a:l}}class RenderLineOutput{constructor(e,t){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsForeignElements=t}}function renderViewLine(o,e){if(o.lineContent.length===0){if(o.lineDecorations.length>0){e.appendString("<span>");let t=0,r=0,s=0;for(const l of o.lineDecorations)(l.type===1||l.type===2)&&(e.appendString('<span class="'),e.appendString(l.className),e.appendString('"></span>'),l.type===1&&(s|=1,t++),l.type===2&&(s|=2,r++));e.appendString("</span>");const a=new CharacterMapping(1,t+r);return a.setColumnInfo(1,t,0,0),new RenderLineOutput(a,s)}return o.renderNewLineWhenEmpty?e.appendString("<span><span>\n</span></span>"):e.appendString("<span><span></span></span>"),new RenderLineOutput(new CharacterMapping(0,0),0)}return _renderLine(resolveRenderLineInput(o),e)}class RenderLineOutput2{constructor(e,t,r){this.characterMapping=e,this.html=t,this.containsForeignElements=r}}function renderViewLine2(o){const e=new StringBuilder(1e4),t=renderViewLine(o,e);return new RenderLineOutput2(t.characterMapping,e.build(),t.containsForeignElements)}class ResolvedRenderLineInput{constructor(e,t,r,s,a,l,c,d,u,g,f,m,_,v,b){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=r,this.len=s,this.isOverflowing=a,this.overflowingCharCount=l,this.parts=c,this.containsForeignElements=d,this.fauxIndentLength=u,this.tabSize=g,this.startVisibleColumn=f,this.spaceWidth=m,this.renderSpaceCharCode=_,this.renderWhitespace=v,this.renderControlCharacters=b}}function resolveRenderLineInput(o){const e=o.lineContent;let t,r,s;o.stopRenderingLineAfter!==-1&&o.stopRenderingLineAfter<e.length?(t=!0,r=e.length-o.stopRenderingLineAfter,s=o.stopRenderingLineAfter):(t=!1,r=0,s=e.length);let a=transformAndRemoveOverflowing(e,o.containsRTL,o.lineTokens,o.fauxIndentLength,s);o.renderControlCharacters&&!o.isBasicASCII&&(a=extractControlCharacters(e,a)),(o.renderWhitespace===4||o.renderWhitespace===1||o.renderWhitespace===2&&o.selectionsOnLine||o.renderWhitespace===3&&!o.continuesWithWrappedLine)&&(a=_applyRenderWhitespace(o,e,s,a));let l=0;if(o.lineDecorations.length>0){for(let c=0,d=o.lineDecorations.length;c<d;c++){const u=o.lineDecorations[c];u.type===3||u.type===1?l|=1:u.type===2&&(l|=2)}a=_applyInlineDecorations(e,s,a,o.lineDecorations)}return o.containsRTL?a=splitLeadingWhitespaceFromRTL(e,a):a=splitLargeTokens(e,a,!o.isBasicASCII||o.fontLigatures),new ResolvedRenderLineInput(o.useMonospaceOptimizations,o.canUseHalfwidthRightwardsArrow,e,s,t,r,a,l,o.fauxIndentLength,o.tabSize,o.startVisibleColumn,o.spaceWidth,o.renderSpaceCharCode,o.renderWhitespace,o.renderControlCharacters)}function transformAndRemoveOverflowing(o,e,t,r,s){const a=[];let l=0;r>0&&(a[l++]=new LinePart(r,"",0,!1));let c=r;for(let d=0,u=t.getCount();d<u;d++){const g=t.getEndOffset(d);if(g<=r)continue;const f=t.getClassName(d);if(g>=s){const _=e?containsRTL(o.substring(c,s)):!1;a[l++]=new LinePart(s,f,0,_);break}const m=e?containsRTL(o.substring(c,g)):!1;a[l++]=new LinePart(g,f,0,m),c=g}return a}function splitLargeTokens(o,e,t){let r=0;const s=[];let a=0;if(t)for(let l=0,c=e.length;l<c;l++){const d=e[l],u=d.endIndex;if(r+50<u){const g=d.type,f=d.metadata,m=d.containsRTL;let _=-1,v=r;for(let b=r;b<u;b++)o.charCodeAt(b)===32&&(_=b),_!==-1&&b-v>=50&&(s[a++]=new LinePart(_+1,g,f,m),v=_+1,_=-1);v!==u&&(s[a++]=new LinePart(u,g,f,m))}else s[a++]=d;r=u}else for(let l=0,c=e.length;l<c;l++){const d=e[l],u=d.endIndex,g=u-r;if(g>50){const f=d.type,m=d.metadata,_=d.containsRTL,v=Math.ceil(g/50);for(let b=1;b<v;b++){const C=r+b*50;s[a++]=new LinePart(C,f,m,_)}s[a++]=new LinePart(u,f,m,_)}else s[a++]=d;r=u}return s}function splitLeadingWhitespaceFromRTL(o,e){if(e.length===0)return e;const t=e[0];if(!t.containsRTL)return e;const r=t.endIndex;let s=0;for(let l=0;l<r;l++){const c=o.charCodeAt(l);if(c!==32&&c!==9){s=l;break}}if(s===0)return e;const a=[];a.push(new LinePart(s,t.type,t.metadata,!1)),a.push(new LinePart(r,t.type,t.metadata,t.containsRTL));for(let l=1;l<e.length;l++)a.push(e[l]);return a}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 r=new LinePart(0,"",0,!1),s=0;for(const a of e){const l=a.endIndex;for(;s<l;s++){const c=o.charCodeAt(s);isControlCharacter(c)&&(s>r.endIndex&&(r=new LinePart(s,a.type,a.metadata,a.containsRTL),t.push(r)),r=new LinePart(s+1,"mtkcontrol",a.metadata,!1),t.push(r))}s>r.endIndex&&(r=new LinePart(l,a.type,a.metadata,a.containsRTL),t.push(r))}return t}function _applyRenderWhitespace(o,e,t,r){const s=o.continuesWithWrappedLine,a=o.fauxIndentLength,l=o.tabSize,c=o.startVisibleColumn,d=o.useMonospaceOptimizations,u=o.selectionsOnLine,g=o.renderWhitespace===1,f=o.renderWhitespace===3,m=o.renderSpaceWidth!==o.spaceWidth,_=[];let v=0,b=0,C=r[b].type,y=r[b].containsRTL,S=r[b].endIndex;const w=r.length;let E=!1,x=firstNonWhitespaceIndex(e),L;x===-1?(E=!0,x=t,L=t):L=lastNonWhitespaceIndex(e);let k=!1,D=0,I=u&&u[D],T=c%l;for(let R=a;R<t;R++){const N=e.charCodeAt(R);I&&I.endExclusive<=R&&(D++,I=u&&u[D]);let A;if(R<x||R>L)A=!0;else if(N===9)A=!0;else if(N===32)if(g)if(k)A=!0;else{const O=R+1<t?e.charCodeAt(R+1):0;A=O===32||O===9}else A=!0;else A=!1;if(A&&u&&(A=!!I&&I.start<=R&&R<I.endExclusive),A&&f&&(A=E||R>L),A&&y&&R>=x&&R<=L&&(A=!1),k){if(!A||!d&&T>=l){if(m){const O=v>0?_[v-1].endIndex:a;for(let P=O+1;P<=R;P++)_[v++]=new LinePart(P,"mtkw",1,!1)}else _[v++]=new LinePart(R,"mtkw",1,!1);T=T%l}}else(R===S||A&&R>a)&&(_[v++]=new LinePart(R,C,0,y),T=T%l);for(N===9?T=l:isFullWidthCharacter(N)?T+=2:T++,k=A;R===S&&(b++,b<w);)C=r[b].type,y=r[b].containsRTL,S=r[b].endIndex}let M=!1;if(k)if(s&&g){const R=t>0?e.charCodeAt(t-1):0,N=t>1?e.charCodeAt(t-2):0;R===32&&N!==32&&N!==9||(M=!0)}else M=!0;if(M)if(m){const R=v>0?_[v-1].endIndex:a;for(let N=R+1;N<=t;N++)_[v++]=new LinePart(N,"mtkw",1,!1)}else _[v++]=new LinePart(t,"mtkw",1,!1);else _[v++]=new LinePart(t,C,0,y);return _}function _applyInlineDecorations(o,e,t,r){r.sort(LineDecoration.compare);const s=LineDecorationsNormalizer.normalize(o,r),a=s.length;let l=0;const c=[];let d=0,u=0;for(let f=0,m=t.length;f<m;f++){const _=t[f],v=_.endIndex,b=_.type,C=_.metadata,y=_.containsRTL;for(;l<a&&s[l].startOffset<v;){const S=s[l];if(S.startOffset>u&&(u=S.startOffset,c[d++]=new LinePart(u,b,C,y)),S.endOffset+1<=v)u=S.endOffset+1,c[d++]=new LinePart(u,b+" "+S.className,C|S.metadata,y),l++;else{u=v,c[d++]=new LinePart(u,b+" "+S.className,C|S.metadata,y);break}}v>u&&(u=v,c[d++]=new LinePart(u,b,C,y))}const g=t[t.length-1].endIndex;if(l<a&&s[l].startOffset===g)for(;l<a&&s[l].startOffset===g;){const f=s[l];c[d++]=new LinePart(u,f.className,f.metadata,!1),l++}return c}function _renderLine(o,e){const t=o.fontIsMonospace,r=o.canUseHalfwidthRightwardsArrow,s=o.containsForeignElements,a=o.lineContent,l=o.len,c=o.isOverflowing,d=o.overflowingCharCount,u=o.parts,g=o.fauxIndentLength,f=o.tabSize,m=o.startVisibleColumn,_=o.spaceWidth,v=o.renderSpaceCharCode,b=o.renderWhitespace,C=o.renderControlCharacters,y=new CharacterMapping(l+1,u.length);let S=!1,w=0,E=m,x=0,L=0,k=0;e.appendString("<span>");for(let D=0,I=u.length;D<I;D++){const T=u[D],M=T.endIndex,R=T.type,N=T.containsRTL,A=b!==0&&T.isWhitespace(),O=A&&!t&&(R==="mtkw"||!s),P=w===M&&T.isPseudoAfter();if(x=0,e.appendString("<span "),N&&e.appendString('dir="rtl" style="unicode-bidi:isolate" '),e.appendString('class="'),e.appendString(O?"mtkz":R),e.appendASCIICharCode(34),A){let F=0;{let B=w,H=E;for(;B<M;B++){const U=(a.charCodeAt(B)===9?f-H%f:1)|0;F+=U,B>=g&&(H+=U)}}for(O&&(e.appendString(' style="width:'),e.appendString(String(_*F)),e.appendString('px"')),e.appendASCIICharCode(62);w<M;w++){y.setColumnInfo(w+1,D-k,x,L),k=0;const B=a.charCodeAt(w);let H,V;if(B===9){H=f-E%f|0,V=H,!r||V>1?e.appendCharCode(8594):e.appendCharCode(65515);for(let U=2;U<=V;U++)e.appendCharCode(160)}else H=2,V=1,e.appendCharCode(v),e.appendCharCode(8204);x+=H,L+=V,w>=g&&(E+=V)}}else for(e.appendASCIICharCode(62);w<M;w++){y.setColumnInfo(w+1,D-k,x,L),k=0;const F=a.charCodeAt(w);let B=1,H=1;switch(F){case 9:B=f-E%f,H=B;for(let V=1;V<=B;V++)e.appendCharCode(160);break;case 32:e.appendCharCode(160);break;case 60:e.appendString("&lt;");break;case 62:e.appendString("&gt;");break;case 38:e.appendString("&amp;");break;case 0:C?e.appendCharCode(9216):e.appendString("&#00;");break;case 65279:case 8232:case 8233:case 133:e.appendCharCode(65533);break;default:isFullWidthCharacter(F)&&H++,C&&F<32?e.appendCharCode(9216+F):C&&F===127?e.appendCharCode(9249):C&&isControlCharacter(F)?(e.appendString("[U+"),e.appendString(to4CharHex(F)),e.appendString("]"),B=8,H=B):e.appendCharCode(F)}x+=B,L+=H,w>=g&&(E+=H)}P?k++:k=0,w>=l&&!S&&T.isPseudoAfter()&&(S=!0,y.setColumnInfo(w+1,D,x,L)),e.appendString("</span>")}return S||y.setColumnInfo(l+1,u.length-1,x,L),c&&(e.appendString('<span class="mtkoverflow">'),e.appendString(localize(796,"Show more ({0})",renderOverflowingCharCount(d))),e.appendString("</span>")),e.appendString("</span>"),new RenderLineOutput(y,s)}function to4CharHex(o){return o.toString(16).toUpperCase().padStart(4,"0")}function renderOverflowingCharCount(o){return o<1024?localize(797,"{0} chars",o):o<1024*1024?"".concat((o/1024).toFixed(1)," KB"):"".concat((o/1024/1024).toFixed(1)," MB")}var ColorScheme;(function(o){o.DARK="dark",o.LIGHT="light",o.HIGH_CONTRAST_DARK="hcDark",o.HIGH_CONTRAST_LIGHT="hcLight"})(ColorScheme||(ColorScheme={}));var ThemeTypeSelector;(function(o){o.VS="vs",o.VS_DARK="vs-dark",o.HC_BLACK="hc-black",o.HC_LIGHT="hc-light"})(ThemeTypeSelector||(ThemeTypeSelector={}));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$1||isSafari$1)})();let monospaceAssumptionsAreValid=!0;const go=class go{constructor(e,t){this._viewGpuContext=e,this._options=t,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(){var e;return isHighContrast(this._options.themeType)||((e=this._renderedViewLine)==null?void 0:e.input.renderWhitespace)===2?(this._isMaybeInvalid=!0,!0):!1}renderLine(e,t,r,s,a){var b,C,y;if(this._options.useGpu&&((b=this._viewGpuContext)!=null&&b.canRender(this._options,s,e)))return(y=(C=this._renderedViewLine)==null?void 0:C.domNode)==null||y.domNode.remove(),this._renderedViewLine=null,!1;if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const l=s.getViewLineRenderingData(e),c=this._options,d=LineDecoration.filter(l.inlineDecorations,e,l.minColumn,l.maxColumn),u=l.hasVariableFonts||c.experimentalWhitespaceRendering==="off"?c.renderWhitespace:"none",g=!l.hasVariableFonts;let f=null;if(isHighContrast(c.themeType)||u==="selection"){const S=s.selections;for(const w of S){if(w.endLineNumber<e||w.startLineNumber>e)continue;const E=w.startLineNumber===e?w.startColumn:l.minColumn,x=w.endLineNumber===e?w.endColumn:l.maxColumn;E<x&&(isHighContrast(c.themeType)&&d.push(new LineDecoration(E,x,"inline-selected-text",0)),u==="selection"&&(f||(f=[]),f.push(new OffsetRange(E-1,x-1))))}}const m=new RenderLineInput(c.useMonospaceOptimizations,c.canUseHalfwidthRightwardsArrow,l.content,l.continuesWithWrappedLine,l.isBasicASCII,l.containsRTL,l.minColumn-1,l.tokens,d,l.tabSize,l.startVisibleColumn,c.spaceWidth,c.middotWidth,c.wsmiddotWidth,c.stopRenderingLineAfter,u,c.renderControlCharacters,c.fontLigatures!==EditorFontLigatures.OFF,f,l.textDirection,c.verticalScrollbarSize);if(this._renderedViewLine&&this._renderedViewLine.input.equals(m))return!1;a.appendString("<div "),l.textDirection===TextDirection$1.RTL?a.appendString('dir="rtl" '):l.containsRTL&&a.appendString('dir="ltr" '),a.appendString('style="top:'),a.appendString(String(t)),a.appendString("px;height:"),a.appendString(String(r)),a.appendString("px;line-height:"),a.appendString(String(r)),l.textDirection===TextDirection$1.RTL&&(a.appendString("px;padding-right:"),a.appendString(String(c.verticalScrollbarSize))),a.appendString('px;" class="'),a.appendString(go.CLASS_NAME),a.appendString('">');const _=renderViewLine(m,a);a.appendString("</div>");let v=null;return g&&monospaceAssumptionsAreValid&&canUseFastRenderedViewLine&&l.isBasicASCII&&m.isLTR&&c.useMonospaceOptimizations&&_.containsForeignElements===0&&(v=new FastRenderedViewLine(this._renderedViewLine?this._renderedViewLine.domNode:null,m,_.characterMapping)),v||(v=createRenderedLine(this._renderedViewLine?this._renderedViewLine.domNode:null,m,_.characterMapping,_.containsForeignElements)),this._renderedViewLine=v,!0}layoutLine(e,t,r){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(r),this._renderedViewLine.domNode.setLineHeight(r))}isRenderedRTL(){return this._renderedViewLine?this._renderedViewLine.input.textDirection===TextDirection$1.RTL:!1}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,r,s){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),r=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,r));const a=this._renderedViewLine.input.stopRenderingLineAfter;if(a!==-1&&t>a+1&&r>a+1)return new VisibleRanges(!0,[new FloatHorizontalRange(this.getWidth(s),0)]);a!==-1&&t>a+1&&(t=a+1),a!==-1&&r>a+1&&(r=a+1);const l=this._renderedViewLine.getVisibleRangesForRange(e,t,r,s);return l&&l.length>0?new VisibleRanges(!1,l):null}getColumnOfNodeOffset(e,t){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t):1}};go.CLASS_NAME="view-line";let ViewLine=go;class FastRenderedViewLine{constructor(e,t,r){this._cachedWidth=-1,this.domNode=e,this.input=t;const s=Math.floor(t.lineContent.length/300);if(s>0){this._keyColumnPixelOffsetCache=new Float32Array(s);for(let a=0;a<s;a++)this._keyColumnPixelOffsetCache[a]=-1}else this._keyColumnPixelOffsetCache=null;this._characterMapping=r,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,0)}getVisibleRangesForRange(e,t,r,s){const a=this._getColumnPixelOffset(e,t,s),l=this._getColumnPixelOffset(e,r,s);return[new FloatHorizontalRange(a,l-a)]}_getColumnPixelOffset(e,t,r){if(t<=300){const u=this._characterMapping.getHorizontalOffset(t);return this._charWidth*u}const s=Math.floor((t-1)/300)-1,a=(s+1)*300+1;let l=-1;if(this._keyColumnPixelOffsetCache&&(l=this._keyColumnPixelOffsetCache[s],l===-1&&(l=this._actualReadPixelOffset(e,a,r),this._keyColumnPixelOffsetCache[s]=l)),l===-1){const u=this._characterMapping.getHorizontalOffset(t);return this._charWidth*u}const c=this._characterMapping.getHorizontalOffset(a),d=this._characterMapping.getHorizontalOffset(t);return l+this._charWidth*(d-c)}_getReadingTarget(e){return e.domNode.firstChild}_actualReadPixelOffset(e,t,r){if(!this.domNode)return-1;const s=this._characterMapping.getDomPosition(t),a=RangeUtil.readHorizontalRanges(this._getReadingTarget(this.domNode),s.partIndex,s.charIndex,s.partIndex,s.charIndex,r);return!a||a.length===0?-1:a[0].left}getColumnOfNodeOffset(e,t){return getColumnOfNodeOffset(this._characterMapping,e,t)}}class RenderedViewLine{constructor(e,t,r,s){if(this.domNode=e,this.input=t,this._characterMapping=r,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=s,this._cachedWidth=-1,this._pixelOffsetCache=null,t.isLTR){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let a=0,l=this._characterMapping.length;a<=l;a++)this._pixelOffsetCache[a]=-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,r,s){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const a=this._readPixelOffset(this.domNode,e,t,s);if(a===-1)return null;const l=this._readPixelOffset(this.domNode,e,r,s);return l===-1?null:[new FloatHorizontalRange(a,l-a)]}return this._readVisibleRangesForRange(this.domNode,e,t,r,s)}_readVisibleRangesForRange(e,t,r,s,a){if(r===s){const l=this._readPixelOffset(e,t,r,a);return l===-1?null:[new FloatHorizontalRange(l,0)]}else return this._readRawVisibleRangesForRange(e,r,s,a)}_readPixelOffset(e,t,r,s){if(this.input.isLTR&&this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(s);const a=this._getReadingTarget(e);return a.firstChild?(s.markDidDomLayout(),a.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const a=this._pixelOffsetCache[r];if(a!==-1)return a;const l=this._actualReadPixelOffset(e,t,r,s);return this._pixelOffsetCache[r]=l,l}return this._actualReadPixelOffset(e,t,r,s)}_actualReadPixelOffset(e,t,r,s){if(this._characterMapping.length===0){const d=RangeUtil.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,s);return!d||d.length===0?-1:d[0].left}if(this.input.isLTR&&r===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(s);const a=this._characterMapping.getDomPosition(r),l=RangeUtil.readHorizontalRanges(this._getReadingTarget(e),a.partIndex,a.charIndex,a.partIndex,a.charIndex,s);if(!l||l.length===0)return-1;const c=l[0].left;if(this.input.isBasicASCII){const d=this._characterMapping.getHorizontalOffset(r),u=Math.round(this.input.spaceWidth*d);if(Math.abs(u-c)<=1)return u}return c}_readRawVisibleRangesForRange(e,t,r,s){if(this.input.isLTR&&t===1&&r===this._characterMapping.length)return[new FloatHorizontalRange(0,this.getWidth(s))];const a=this._characterMapping.getDomPosition(t),l=this._characterMapping.getDomPosition(r);return RangeUtil.readHorizontalRanges(this._getReadingTarget(e),a.partIndex,a.charIndex,l.partIndex,l.charIndex,s)}getColumnOfNodeOffset(e,t){return getColumnOfNodeOffset(this._characterMapping,e,t)}}class WebKitRenderedViewLine extends RenderedViewLine{_readVisibleRangesForRange(e,t,r,s,a){const l=super._readVisibleRangesForRange(e,t,r,s,a);if(!l||l.length===0||r===s||r===1&&s===this._characterMapping.length)return l;if(this.input.isLTR){const c=this._readPixelOffset(e,t,s,a);if(c!==-1){const d=l[l.length-1];d.left<c&&(d.width=c-d.left)}}return l}}const createRenderedLine=(function(){return isWebKit?createWebKitRenderedLine:createNormalRenderedLine})();function createWebKitRenderedLine(o,e,t,r){return new WebKitRenderedViewLine(o,e,t,r)}function createNormalRenderedLine(o,e,t,r){return new RenderedViewLine(o,e,t,r)}function getColumnOfNodeOffset(o,e,t){const r=e.textContent.length;let s=-1;for(;e;)e=e.previousSibling,s++;return o.getColumn(new DomPosition(s,t),r)}class UnknownHitTestResult{constructor(e=null){this.hitTarget=e,this.type=0}}class ContentHitTestResult{get hitTarget(){return this.spanNode}constructor(e,t,r){this.position=e,this.spanNode=t,this.injectedText=r,this.type=1}}var HitTestResult;(function(o){function e(t,r,s){const a=t.getPositionFromDOMInfo(r,s);return a?new ContentHitTestResult(a,r,null):new UnknownHitTestResult(r)}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?t:null}static createUnknown(e,t,r){return{type:0,element:e,mouseColumn:t,position:r,range:this._deduceRage(r)}}static createTextarea(e,t){return{type:1,element:e,mouseColumn:t,position:null,range:null}}static createMargin(e,t,r,s,a,l){return{type:e,element:t,mouseColumn:r,position:s,range:a,detail:l}}static createViewZone(e,t,r,s,a){return{type:e,element:t,mouseColumn:r,position:s,range:this._deduceRage(s),detail:a}}static createContentText(e,t,r,s,a){return{type:6,element:e,mouseColumn:t,position:r,range:this._deduceRage(r,s),detail:a}}static createContentEmpty(e,t,r,s){return{type:7,element:e,mouseColumn:t,position:r,range:this._deduceRage(r),detail:s}}static createContentWidget(e,t,r){return{type:9,element:e,mouseColumn:t,position:null,range:null,detail:r}}static createScrollbar(e,t,r){return{type:11,element:e,mouseColumn:t,position:r,range:this._deduceRage(r)}}static createOverlayWidget(e,t,r){return{type:12,element:e,mouseColumn:t,position:null,range:null,detail:r}}static createOutsideEditor(e,t,r,s){return{type:13,element:null,mouseColumn:e,position:t,range:this._deduceRage(t),outsidePosition:r,outsideDistance:s}}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]===7}static isChildOfViewLines(e){return e.length>=4&&e[0]===3&&e[3]===8}static isStrictChildOfViewLines(e){return e.length>4&&e[0]===3&&e[3]===8}static isChildOfScrollableElement(e){return e.length>=2&&e[0]===3&&e[1]===6}static isChildOfMinimap(e){return e.length>=2&&e[0]===3&&e[1]===9}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}static isChildOfOverflowingOverlayWidgets(e){return e.length>=1&&e[0]===5}}class HitTestContext{constructor(e,t,r){this.viewModel=e.viewModel;const s=e.configuration.options;this.layoutInfo=s.get(165),this.viewDomNode=t.viewDomNode,this.viewLinesGpu=t.viewLinesGpu,this.lineHeight=s.get(75),this.stickyTabStops=s.get(132),this.typicalHalfwidthCharacterWidth=s.get(59).typicalHalfwidthCharacterWidth,this.lastRenderData=r,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return HitTestContext.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const r=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(r){const s=r.verticalOffset+r.height/2,a=e.viewModel.getLineCount();let l=null,c,d=null;return r.afterLineNumber!==a&&(d=new Position$1(r.afterLineNumber+1,1)),r.afterLineNumber>0&&(l=new Position$1(r.afterLineNumber,e.viewModel.getLineMaxColumn(r.afterLineNumber))),d===null?c=l:l===null?c=d:t<s?c=l:c=d,{viewZoneId:r.id,afterLineNumber:r.afterLineNumber,positionBefore:l,positionAfter:d,position:c}}return null}getFullLineRangeAtCoord(e){if(this._context.viewLayout.isAfterLines(e)){const s=this._context.viewModel.getLineCount(),a=this._context.viewModel.getLineMaxColumn(s);return{range:new Range$2(s,a,s,a),isAfterLines:!0}}const t=this._context.viewLayout.getLineNumberAtVerticalOffset(e),r=this._context.viewModel.getLineMaxColumn(t);return{range:new Range$2(t,1,t,r),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,r){for(;e&&e!==e.ownerDocument.body;){if(e.hasAttribute&&e.hasAttribute(t))return e.getAttribute(t);if(e===r)return null;e=e.parentNode}return null}getLineWidth(e){return this._viewHelper.getLineWidth(e)}isRtl(e){return this.viewModel.getTextDirection(e)===TextDirection$1.RTL}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,r,s){this.editorPos=t,this.pos=r,this.relativePos=s,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{get target(){return this._useHitTestTarget?this.hitTestResult.value.hitTarget:this._eventTarget}get targetPath(){return this._targetPathCacheElement!==this.target&&(this._targetPathCacheElement=this.target,this._targetPathCacheValue=PartFingerprints.collect(this.target,this._ctx.viewDomNode)),this._targetPathCacheValue}constructor(e,t,r,s,a){super(e,t,r,s),this.hitTestResult=new Lazy(()=>MouseTargetFactory.doHitTest(this._ctx,this)),this._targetPathCacheElement=null,this._targetPathCacheValue=new Uint8Array(0),this._ctx=e,this._eventTarget=a;const l=!!this._eventTarget;this._useHitTestTarget=!l}toString(){return"pos(".concat(this.pos.x,",").concat(this.pos.y,"), editorPos(").concat(this.editorPos.x,",").concat(this.editorPos.y,"), relativePos(").concat(this.relativePos.x,",").concat(this.relativePos.y,"), mouseVerticalOffset: ").concat(this.mouseVerticalOffset,", mouseContentHorizontalOffset: ").concat(this.mouseContentHorizontalOffset,"\n target: ").concat(this.target?this.target.outerHTML:null)}get wouldBenefitFromHitTestTargetSwitch(){return!this._useHitTestTarget&&this.hitTestResult.value.hitTarget!==null&&this.target!==this.hitTestResult.value.hitTarget}switchToHitTestTarget(){this._useHitTestTarget=!0}_getMouseColumn(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,r,s){return MouseTarget.createMargin(e,this.target,this._getMouseColumn(t),t,r,s)}fulfillViewZone(e,t,r){return MouseTarget.createViewZone(e,this.target,this._getMouseColumn(),t,r)}fulfillContentText(e,t,r){return MouseTarget.createContentText(this.target,this._getMouseColumn(e),e,t,r)}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)}}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,r=PartFingerprints.collect(t,this._viewHelper.viewDomNode);return!!(ElementPath.isChildOfContentWidgets(r)||ElementPath.isChildOfOverflowingContentWidgets(r)||ElementPath.isChildOfOverlayWidgets(r)||ElementPath.isChildOfOverflowingOverlayWidgets(r))}createMouseTarget(e,t,r,s,a){const l=new HitTestContext(this._context,this._viewHelper,e),c=new HitTestRequest(l,t,r,s,a);try{const d=MouseTargetFactory._createMouseTarget(l,c);if(d.type===6&&l.stickyTabStops&&d.position!==null){const u=MouseTargetFactory._snapToSoftTabBoundary(d.position,l.viewModel),g=Range$2.fromPositions(u,u).plusRange(d.range);return c.fulfillContentText(u,g,d.detail)}return d}catch(d){return c.fulfillUnknown()}}static _createMouseTarget(e,t){if(t.target===null)return t.fulfillUnknown();const r=t;let s=null;return!ElementPath.isChildOfOverflowGuard(t.targetPath)&&!ElementPath.isChildOfOverflowingContentWidgets(t.targetPath)&&!ElementPath.isChildOfOverflowingOverlayWidgets(t.targetPath)&&(s=s||t.fulfillUnknown()),s=s||MouseTargetFactory._hitTestContentWidget(e,r),s=s||MouseTargetFactory._hitTestOverlayWidget(e,r),s=s||MouseTargetFactory._hitTestMinimap(e,r),s=s||MouseTargetFactory._hitTestScrollbarSlider(e,r),s=s||MouseTargetFactory._hitTestViewZone(e,r),s=s||MouseTargetFactory._hitTestMargin(e,r),s=s||MouseTargetFactory._hitTestViewCursor(e,r),s=s||MouseTargetFactory._hitTestTextArea(e,r),s=s||MouseTargetFactory._hitTestViewLines(e,r),s=s||MouseTargetFactory._hitTestScrollbar(e,r),s||t.fulfillUnknown()}static _hitTestContentWidget(e,t){if(ElementPath.isChildOfContentWidgets(t.targetPath)||ElementPath.isChildOfOverflowingContentWidgets(t.targetPath)){const r=e.findAttribute(t.target,"widgetId");return r?t.fulfillContentWidget(r):t.fulfillUnknown()}return null}static _hitTestOverlayWidget(e,t){if(ElementPath.isChildOfOverlayWidgets(t.targetPath)||ElementPath.isChildOfOverflowingOverlayWidgets(t.targetPath)){const r=e.findAttribute(t.target,"widgetId");return r?t.fulfillOverlayWidget(r):t.fulfillUnknown()}return null}static _hitTestViewCursor(e,t){if(t.target){const r=e.lastRenderData.lastViewCursorsRenderData;for(const s of r)if(t.target===s.domNode)return t.fulfillContentText(s.position,null,{mightBeForeignElement:!1,injectedText:null})}if(t.isInContentArea){const r=e.lastRenderData.lastViewCursorsRenderData,s=t.mouseContentHorizontalOffset,a=t.mouseVerticalOffset;for(const l of r){if(s<l.contentLeft||s>l.contentLeft+l.width)continue;const c=e.getVerticalOffsetForLineNumber(l.position.lineNumber);if(c<=a&&a<=c+l.height)return t.fulfillContentText(l.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const r=e.getZoneAtCoord(t.mouseVerticalOffset);if(r){const s=t.isInContentArea?8:5;return t.fulfillViewZone(s,r.position,r)}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 r=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),s=r.range.getStartPosition();let a=Math.abs(t.relativePos.x);const l={isAfterLines:r.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:a};if(a-=e.layoutInfo.glyphMarginLeft,a<=e.layoutInfo.glyphMarginWidth){const c=e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(r.range.getStartPosition()),d=e.viewModel.glyphLanes.getLanesAtLine(c.lineNumber);return l.glyphMarginLane=d[Math.floor(a/e.lineHeight)],t.fulfillMargin(2,s,r.range,l)}return a-=e.layoutInfo.glyphMarginWidth,a<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,s,r.range,l):(a-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,s,r.range,l))}return null}static _hitTestViewLines(e,t){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 s=e.viewModel.getLineCount(),a=e.viewModel.getLineMaxColumn(s);return t.fulfillContentEmpty(new Position$1(s,a),EMPTY_CONTENT_AFTER_LINES)}if(ElementPath.isStrictChildOfViewLines(t.targetPath)){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),a=e.viewModel.getLineLength(s),l=e.getLineWidth(s);if(a===0){const d=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-l);return t.fulfillContentEmpty(new Position$1(s,1),d)}if(e.isRtl(s)){if(t.mouseContentHorizontalOffset+l<=e.layoutInfo.contentWidth-e.layoutInfo.verticalScrollbarWidth){const d=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-l),u=new Position$1(s,e.viewModel.getLineMaxColumn(s));return t.fulfillContentEmpty(u,d)}}else if(t.mouseContentHorizontalOffset>=l){const d=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-l),u=new Position$1(s,e.viewModel.getLineMaxColumn(s));return t.fulfillContentEmpty(u,d)}}else if(e.viewLinesGpu){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(e.viewModel.getLineLength(s)===0){const d=e.getLineWidth(s),u=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-d);return t.fulfillContentEmpty(new Position$1(s,1),u)}const a=e.getLineWidth(s);if(e.isRtl(s)){if(t.mouseContentHorizontalOffset+a<=e.layoutInfo.contentWidth-e.layoutInfo.verticalScrollbarWidth){const d=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-a),u=new Position$1(s,e.viewModel.getLineMaxColumn(s));return t.fulfillContentEmpty(u,d)}}else if(t.mouseContentHorizontalOffset>=a){const d=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-a),u=new Position$1(s,e.viewModel.getLineMaxColumn(s));return t.fulfillContentEmpty(u,d)}const c=e.viewLinesGpu.getPositionAtCoordinate(s,t.mouseContentHorizontalOffset);if(c){const d={injectedText:null,mightBeForeignElement:!1};return t.fulfillContentText(c,Range$2.fromPositions(c,c),d)}}const r=t.hitTestResult.value;return r.type===1?MouseTargetFactory.createMouseTargetFromHitTestPosition(e,t,r.spanNode,r.position,r.injectedText):t.wouldBenefitFromHitTestTargetSwitch?(t.switchToHitTestTarget(),this._createMouseTarget(e,t)):t.fulfillUnknown()}static _hitTestMinimap(e,t){if(ElementPath.isChildOfMinimap(t.targetPath)){const r=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.viewModel.getLineMaxColumn(r);return t.fulfillScrollbar(new Position$1(r,s))}return null}static _hitTestScrollbarSlider(e,t){if(ElementPath.isChildOfScrollableElement(t.targetPath)&&t.target&&t.target.nodeType===1){const r=t.target.className;if(r&&/\b(slider|scrollbar)\b/.test(r)){const s=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),a=e.viewModel.getLineMaxColumn(s);return t.fulfillScrollbar(new Position$1(s,a))}}return null}static _hitTestScrollbar(e,t){if(ElementPath.isChildOfScrollableElement(t.targetPath)){const r=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.viewModel.getLineMaxColumn(r);return t.fulfillScrollbar(new Position$1(r,s))}return null}getMouseColumn(e){const t=this._context.configuration.options,r=t.get(165),s=this._context.viewLayout.getCurrentScrollLeft()+e.x-r.contentLeft;return MouseTargetFactory._getMouseColumn(s,t.get(59).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){return e<0?1:Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,r,s,a){const l=s.lineNumber,c=s.column,d=e.getLineWidth(l);if(t.mouseContentHorizontalOffset>d){const y=createEmptyContentDataInLines(t.mouseContentHorizontalOffset-d);return t.fulfillContentEmpty(s,y)}const u=e.visibleRangeForPosition(l,c);if(!u)return t.fulfillUnknown(s);const g=u.left;if(Math.abs(t.mouseContentHorizontalOffset-g)<1)return t.fulfillContentText(s,null,{mightBeForeignElement:!!a,injectedText:a});const f=[];if(f.push({offset:u.left,column:c}),c>1){const y=e.visibleRangeForPosition(l,c-1);y&&f.push({offset:y.left,column:c-1})}const m=e.viewModel.getLineMaxColumn(l);if(c<m){const y=e.visibleRangeForPosition(l,c+1);y&&f.push({offset:y.left,column:c+1})}f.sort((y,S)=>y.offset-S.offset);const _=t.pos.toClientCoordinates(getWindow$1(e.viewDomNode)),v=r.getBoundingClientRect(),b=v.left<=_.clientX&&_.clientX<=v.right;let C=null;for(let y=1;y<f.length;y++){const S=f[y-1],w=f[y];if(S.offset<=t.mouseContentHorizontalOffset&&t.mouseContentHorizontalOffset<=w.offset){C=new Range$2(l,S.column,l,w.column);const E=Math.abs(S.offset-t.mouseContentHorizontalOffset),x=Math.abs(w.offset-t.mouseContentHorizontalOffset);s=E<x?new Position$1(l,S.column):new Position$1(l,w.column);break}}return t.fulfillContentText(s,C,{mightBeForeignElement:!b||!!a,injectedText:a})}static _doHitTestWithCaretRangeFromPoint(e,t){const r=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),s=e.getVerticalOffsetForLineNumber(r),a=s+e.lineHeight;if(!(r===e.viewModel.getLineCount()&&t.mouseVerticalOffset>a)){const c=Math.floor((s+a)/2);let d=t.pos.y+(c-t.mouseVerticalOffset);d<=t.editorPos.y&&(d=t.editorPos.y+1),d>=t.editorPos.y+t.editorPos.height&&(d=t.editorPos.y+t.editorPos.height-1);const u=new PageCoordinates(t.pos.x,d),g=this._actualDoHitTestWithCaretRangeFromPoint(e,u.toClientCoordinates(getWindow$1(e.viewDomNode)));if(g.type===1)return g}return this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates(getWindow$1(e.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const r=getShadowRoot$2(e.viewDomNode);let s;if(r?typeof r.caretRangeFromPoint>"u"?s=shadowCaretRangeFromPoint(r,t.clientX,t.clientY):s=r.caretRangeFromPoint(t.clientX,t.clientY):s=e.viewDomNode.ownerDocument.caretRangeFromPoint(t.clientX,t.clientY),!s||!s.startContainer)return new UnknownHitTestResult;const a=s.startContainer;if(a.nodeType===a.TEXT_NODE){const l=a.parentNode,c=l?l.parentNode:null,d=c?c.parentNode:null;return(d&&d.nodeType===d.ELEMENT_NODE?d.className:null)===ViewLine.CLASS_NAME?HitTestResult.createFromDOMInfo(e,l,s.startOffset):new UnknownHitTestResult(a.parentNode)}else if(a.nodeType===a.ELEMENT_NODE){const l=a.parentNode,c=l?l.parentNode:null;return(c&&c.nodeType===c.ELEMENT_NODE?c.className:null)===ViewLine.CLASS_NAME?HitTestResult.createFromDOMInfo(e,a,a.textContent.length):new UnknownHitTestResult(a)}return new UnknownHitTestResult}static _doHitTestWithCaretPositionFromPoint(e,t){const r=e.viewDomNode.ownerDocument.caretPositionFromPoint(t.clientX,t.clientY);if(r.offsetNode.nodeType===r.offsetNode.TEXT_NODE){const s=r.offsetNode.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,r.offsetNode.parentNode,r.offset):new UnknownHitTestResult(r.offsetNode.parentNode)}if(r.offsetNode.nodeType===r.offsetNode.ELEMENT_NODE){const s=r.offsetNode.parentNode,a=s&&s.nodeType===s.ELEMENT_NODE?s.className:null,l=s?s.parentNode:null,c=l&&l.nodeType===l.ELEMENT_NODE?l.className:null;if(a===ViewLine.CLASS_NAME){const d=r.offsetNode.childNodes[Math.min(r.offset,r.offsetNode.childNodes.length-1)];if(d)return HitTestResult.createFromDOMInfo(e,d,0)}else if(c===ViewLine.CLASS_NAME)return HitTestResult.createFromDOMInfo(e,r.offsetNode,0)}return new UnknownHitTestResult(r.offsetNode)}static _snapToSoftTabBoundary(e,t){const r=t.getLineContent(e.lineNumber),{tabSize:s}=t.model.getOptions(),a=AtomicTabMoveOperations.atomicPosition(r,e.column-1,s,2);return a!==-1?new Position$1(e.lineNumber,a+1):e}static doHitTest(e,t){let r=new UnknownHitTestResult;if(typeof e.viewDomNode.ownerDocument.caretRangeFromPoint=="function"?r=this._doHitTestWithCaretRangeFromPoint(e,t):e.viewDomNode.ownerDocument.caretPositionFromPoint&&(r=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates(getWindow$1(e.viewDomNode)))),r.type===1){const s=e.viewModel.getInjectedTextAt(r.position),a=e.viewModel.normalizePosition(r.position,2);(s||!a.equals(r.position))&&(r=new ContentHitTestResult(a,r.spanNode,s))}return r}}function shadowCaretRangeFromPoint(o,e,t){const r=document.createRange();let s=o.elementFromPoint(e,t);if(s!=null&&s.hasChildNodes()){for(;s&&s.firstChild&&s.firstChild.nodeType!==s.firstChild.TEXT_NODE&&s.lastChild&&s.lastChild.firstChild;)s=s.lastChild;const a=s.getBoundingClientRect(),l=getWindow$1(s),c=l.getComputedStyle(s,null).getPropertyValue("font-style"),d=l.getComputedStyle(s,null).getPropertyValue("font-variant"),u=l.getComputedStyle(s,null).getPropertyValue("font-weight"),g=l.getComputedStyle(s,null).getPropertyValue("font-size"),f=l.getComputedStyle(s,null).getPropertyValue("line-height"),m=l.getComputedStyle(s,null).getPropertyValue("font-family"),_="".concat(c," ").concat(d," ").concat(u," ").concat(g,"/").concat(f," ").concat(m),v=s.innerText;let b=a.left,C=0,y;if(e>a.left+a.width)C=v.length;else{const S=CharWidthReader.getInstance();for(let w=0;w<v.length+1;w++){if(y=S.getCharWidth(v.charAt(w),_)/2,b+=y,e<b){C=w;break}b+=y}}r.setStart(s.firstChild,C),r.setEnd(s.firstChild,C)}return r}const Bi=class Bi{static getInstance(){return Bi._INSTANCE||(Bi._INSTANCE=new Bi),Bi._INSTANCE}constructor(){this._cache={},this._canvas=document.createElement("canvas")}getCharWidth(e,t){const r=e+t;if(this._cache[r])return this._cache[r];const s=this._canvas.getContext("2d");s.font=t;const l=s.measureText(e).width;return this._cache[r]=l,l}};Bi._INSTANCE=null;let CharWidthReader=Bi;function memoize(o,e,t){let r=null,s=null;if(typeof t.value=="function"?(r="value",s=t.value,s.length!==0&&console.warn("Memoize should only be used in functions with zero parameters")):typeof t.get=="function"&&(r="get",s=t.get),!s)throw new Error("not supported");const a="$memoize$".concat(e);t[r]=function(...l){return this.hasOwnProperty(a)||Object.defineProperty(this,a,{configurable:!1,enumerable:!1,writable:!1,value:s.apply(this,l)}),this[a]}}var __decorate$36=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},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={}));const Ve=class Ve extends Disposable$1{constructor(){super(),this.dispatched=!1,this.targets=new LinkedList,this.ignoreTargets=new LinkedList,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(Event$1.runAndSubscribe(onDidRegisterWindow,({window:e,disposables:t})=>{t.add(addDisposableListener(e.document,"touchstart",r=>this.onTouchStart(r),{passive:!1})),t.add(addDisposableListener(e.document,"touchend",r=>this.onTouchEnd(e,r))),t.add(addDisposableListener(e.document,"touchmove",r=>this.onTouchMove(r),{passive:!1}))},{window:mainWindow,disposables:this._store}))}static addTarget(e){if(!Ve.isTouchDevice())return Disposable$1.None;Ve.INSTANCE||(Ve.INSTANCE=new Ve);const t=Ve.INSTANCE.targets.push(e);return toDisposable(t)}static ignoreTarget(e){if(!Ve.isTouchDevice())return Disposable$1.None;Ve.INSTANCE||(Ve.INSTANCE=new Ve);const t=Ve.INSTANCE.ignoreTargets.push(e);return toDisposable(t)}static isTouchDevice(){return"ontouchstart"in mainWindow||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 r=0,s=e.targetTouches.length;r<s;r++){const a=e.targetTouches.item(r);this.activeTouches[a.identifier]={id:a.identifier,initialTarget:a.target,initialTimeStamp:t,initialPageX:a.pageX,initialPageY:a.pageY,rollingTimestamps:[t],rollingPageX:[a.pageX],rollingPageY:[a.pageY]};const l=this.newGestureEvent(EventType.Start,a.target);l.pageX=a.pageX,l.pageY=a.pageY,this.dispatchEvent(l)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}onTouchEnd(e,t){const r=Date.now(),s=Object.keys(this.activeTouches).length;for(let a=0,l=t.changedTouches.length;a<l;a++){const c=t.changedTouches.item(a);if(!this.activeTouches.hasOwnProperty(String(c.identifier))){console.warn("move of an UNKNOWN touch",c);continue}const d=this.activeTouches[c.identifier],u=Date.now()-d.initialTimeStamp;if(u<Ve.HOLD_DELAY&&Math.abs(d.initialPageX-d.rollingPageX.at(-1))<30&&Math.abs(d.initialPageY-d.rollingPageY.at(-1))<30){const g=this.newGestureEvent(EventType.Tap,d.initialTarget);g.pageX=d.rollingPageX.at(-1),g.pageY=d.rollingPageY.at(-1),this.dispatchEvent(g)}else if(u>=Ve.HOLD_DELAY&&Math.abs(d.initialPageX-d.rollingPageX.at(-1))<30&&Math.abs(d.initialPageY-d.rollingPageY.at(-1))<30){const g=this.newGestureEvent(EventType.Contextmenu,d.initialTarget);g.pageX=d.rollingPageX.at(-1),g.pageY=d.rollingPageY.at(-1),this.dispatchEvent(g)}else if(s===1){const g=d.rollingPageX.at(-1),f=d.rollingPageY.at(-1),m=d.rollingTimestamps.at(-1)-d.rollingTimestamps[0],_=g-d.rollingPageX[0],v=f-d.rollingPageY[0],b=[...this.targets].filter(C=>d.initialTarget instanceof Node&&C.contains(d.initialTarget));this.inertia(e,b,r,Math.abs(_)/m,_>0?1:-1,g,Math.abs(v)/m,v>0?1:-1,f)}this.dispatchEvent(this.newGestureEvent(EventType.End,d.initialTarget)),delete this.activeTouches[c.identifier]}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){const r=document.createEvent("CustomEvent");return r.initEvent(e,!1,!0),r.initialTarget=t,r.tapCount=0,r}dispatchEvent(e){if(e.type===EventType.Tap){const t=new Date().getTime();let r=0;t-this._lastSetTapCountTime>Ve.CLEAR_TAP_COUNT_TIME?r=1:r=2,this._lastSetTapCountTime=t,e.tapCount=r}else(e.type===EventType.Change||e.type===EventType.Contextmenu)&&(this._lastSetTapCountTime=0);if(e.initialTarget instanceof Node){for(const r of this.ignoreTargets)if(r.contains(e.initialTarget))return;const t=[];for(const r of this.targets)if(r.contains(e.initialTarget)){let s=0,a=e.initialTarget;for(;a&&a!==r;)s++,a=a.parentElement;t.push([s,r])}t.sort((r,s)=>r[0]-s[0]);for(const[r,s]of t)s.dispatchEvent(e),this.dispatched=!0}}inertia(e,t,r,s,a,l,c,d,u){this.handle=scheduleAtNextAnimationFrame(e,()=>{const g=Date.now(),f=g-r;let m=0,_=0,v=!0;s+=Ve.SCROLL_FRICTION*f,c+=Ve.SCROLL_FRICTION*f,s>0&&(v=!1,m=a*s*f),c>0&&(v=!1,_=d*c*f);const b=this.newGestureEvent(EventType.Change);b.translationX=m,b.translationY=_,t.forEach(C=>C.dispatchEvent(b)),v||this.inertia(e,t,g,s,a,l+m,c,d,u+_)})}onTouchMove(e){const t=Date.now();for(let r=0,s=e.changedTouches.length;r<s;r++){const a=e.changedTouches.item(r);if(!this.activeTouches.hasOwnProperty(String(a.identifier))){console.warn("end of an UNKNOWN touch",a);continue}const l=this.activeTouches[a.identifier],c=this.newGestureEvent(EventType.Change,l.initialTarget);c.translationX=a.pageX-l.rollingPageX.at(-1),c.translationY=a.pageY-l.rollingPageY.at(-1),c.pageX=a.pageX,c.pageY=a.pageY,this.dispatchEvent(c),l.rollingPageX.length>3&&(l.rollingPageX.shift(),l.rollingPageY.shift(),l.rollingTimestamps.shift()),l.rollingPageX.push(a.pageX),l.rollingPageY.push(a.pageY),l.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}};Ve.SCROLL_FRICTION=-.005,Ve.HOLD_DELAY=700,Ve.CLEAR_TAP_COUNT_TIME=400;let Gesture=Ve;__decorate$36([memoize],Gesture,"isTouchDevice",null);let Widget$1=class extends Disposable$1{onclick(e,t){this._register(addDisposableListener(e,EventType$1.CLICK,r=>t(new StandardMouseEvent(getWindow$1(e),r))))}onmousedown(e,t){this._register(addDisposableListener(e,EventType$1.MOUSE_DOWN,r=>t(new StandardMouseEvent(getWindow$1(e),r))))}onmouseover(e,t){this._register(addDisposableListener(e,EventType$1.MOUSE_OVER,r=>t(new StandardMouseEvent(getWindow$1(e),r))))}onmouseleave(e,t){this._register(addDisposableListener(e,EventType$1.MOUSE_LEAVE,r=>t(new StandardMouseEvent(getWindow$1(e),r))))}onkeydown(e,t){this._register(addDisposableListener(e,EventType$1.KEY_DOWN,r=>t(new StandardKeyboardEvent(r))))}onkeyup(e,t){this._register(addDisposableListener(e,EventType$1.KEY_UP,r=>t(new StandardKeyboardEvent(r))))}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 WindowIntervalTimer),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,getWindow$1(e))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(t,200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,r=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault()}}class ScrollbarVisibilityController extends Disposable$1{constructor(e,t,r){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=r,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.setClassName(this._visibleClassName)},0))}_hide(e){var t;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,(t=this._domNode)==null||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,r,s){this.slider=createFastDomNode(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),typeof r=="number"&&this.slider.setWidth(r),typeof s=="number"&&this.slider.setHeight(s),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,a=>{a.button===0&&(a.preventDefault(),this._sliderPointerDown(a))})),this.onclick(this.slider.domNode,a=>{a.leftButton&&a.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,r=t+this._scrollbarState.getSliderPosition(),s=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),a=this._sliderPointerPosition(e);r<=a&&a<=s?e.button===0&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,r;if(e.target===this.domNode.domNode&&typeof e.offsetX=="number"&&typeof e.offsetY=="number")t=e.offsetX,r=e.offsetY;else{const l=getDomNodePagePosition(this.domNode.domNode);t=e.pageX-l.left,r=e.pageY-l.top}const s=e.pointerType==="mouse",a=e.button===0;if(a||!s){const l=this._pointerDownRelativePosition(t,r);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(l):this._scrollbarState.getDesiredScrollPositionFromOffset(l))}a&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._sliderPointerPosition(e),r=this._sliderOrthogonalPointerPosition(e),s=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,a=>{const l=this._sliderOrthogonalPointerPosition(a),c=Math.abs(l-r);if(isWindows&&c>POINTER_DRAG_RESET_DISTANCE$1){this._setDesiredScrollPositionNow(s.getScrollPosition());return}const u=this._sliderPointerPosition(a)-t;this._setDesiredScrollPositionNow(s.getDesiredScrollPositionFromDelta(u))},()=>{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,r,s,a,l){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(r),this._arrowSize=Math.round(e),this._visibleSize=s,this._scrollSize=a,this._scrollPosition=l,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,r,s,a){const l=Math.max(0,r-e),c=Math.max(0,l-2*t),d=s>0&&s>r;if(!d)return{computedAvailableSize:Math.round(l),computedIsNeeded:d,computedSliderSize:Math.round(c),computedSliderRatio:0,computedSliderPosition:0};const u=Math.round(Math.max(MINIMUM_SLIDER_SIZE,Math.floor(r*c/s))),g=(c-u)/(s-r),f=a*g;return{computedAvailableSize:Math.round(l),computedIsNeeded:d,computedSliderSize:Math.round(u),computedSliderRatio:g,computedSliderPosition:Math.round(f)}}_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 r=this._scrollPosition;return t<this._computedSliderPosition?r-=this._visibleSize:r+=this._visibleSize,r}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,r){const s=e.getScrollDimensions(),a=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:r,scrollbarState:new ScrollbarState(t.horizontalHasArrows?t.arrowSize:0,t.horizontal===2?0:t.horizontalScrollbarSize,t.vertical===2?0:t.verticalScrollbarSize,s.width,s.scrollWidth,a.scrollLeft),visibility:t.horizontal,extraScrollbarClassName:"horizontal",scrollable:e,scrollByPage:t.scrollByPage}),t.horizontalHasArrows){const l=(t.arrowSize-ARROW_IMG_SIZE)/2,c=(t.horizontalScrollbarSize-ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:Codicon.scrollbarButtonLeft,top:c,left:l,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:c,left:void 0,bottom:void 0,right:l,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,r){const s=e.getScrollDimensions(),a=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:r,scrollbarState:new ScrollbarState(t.verticalHasArrows?t.arrowSize:0,t.vertical===2?0:t.verticalScrollbarSize,0,s.height,s.scrollHeight,a.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const l=(t.arrowSize-ARROW_IMG_SIZE)/2,c=(t.verticalScrollbarSize-ARROW_IMG_SIZE)/2;this._createArrow({className:"scra",icon:Codicon.scrollbarButtonUp,top:l,left:c,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:c,bottom:l,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,r,s,a,l,c){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t=t|0,r=r|0,s=s|0,a=a|0,l=l|0,c=c|0),this.rawScrollLeft=s,this.rawScrollTop=c,t<0&&(t=0),s+t>r&&(s=r-t),s<0&&(s=0),a<0&&(a=0),c+a>l&&(c=l-a),c<0&&(c=0),this.width=t,this.scrollWidth=r,this.scrollLeft=s,this.height=a,this.scrollHeight=l,this.scrollTop=c}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 r=this.width!==e.width,s=this.scrollWidth!==e.scrollWidth,a=this.scrollLeft!==e.scrollLeft,l=this.height!==e.height,c=this.scrollHeight!==e.scrollHeight,d=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:r,scrollWidthChanged:s,scrollLeftChanged:a,heightChanged:l,scrollHeightChanged:c,scrollTopChanged:d}}}let Scrollable$1=class extends Disposable$1{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 s;const r=this._state.withScrollDimensions(e,t);this._setState(r,!!this._smoothScrolling),(s=this._smoothScrolling)==null||s.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 r=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===r.scrollLeft&&this._smoothScrolling.to.scrollTop===r.scrollTop)return;let s;t?s=new SmoothScrollingOperation(this._smoothScrolling.from,r,this._smoothScrolling.startTime,this._smoothScrolling.duration):s=this._smoothScrolling.combine(this._state,r,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=s}else{const r=this._state.withScrollPosition(e);this._smoothScrolling=SmoothScrollingOperation.start(this._state,r,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 r=this._state;r.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(r,t)))}};class SmoothScrollingUpdate{constructor(e,t,r){this.scrollLeft=e,this.scrollTop=t,this.isDone=r}}function createEaseOutCubic(o,e){const t=e-o;return function(r){return o+t*easeOutCubic$1(r)}}function createComposed(o,e,t){return function(r){return r<t?o(r/t):e((r-t)/(1-t))}}class SmoothScrollingOperation{constructor(e,t,r,s){this.from=e,this.to=t,this.duration=s,this.startTime=r,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,r){if(Math.abs(e-t)>2.5*r){let a,l;return e<t?(a=e+.75*r,l=t-.75*r):(a=e-.75*r,l=t+.75*r),createComposed(createEaseOutCubic(e,a),createEaseOutCubic(l,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 r=this.scrollLeft(t),s=this.scrollTop(t);return new SmoothScrollingUpdate(r,s,!1)}return new SmoothScrollingUpdate(this.to.scrollLeft,this.to.scrollTop,!0)}combine(e,t,r){return SmoothScrollingOperation.start(e,t,r)}static start(e,t,r){r=r+10;const s=Date.now()-10;return new SmoothScrollingOperation(e,t,s,r)}}function easeInCubic(o){return Math.pow(o,3)}function easeOutCubic$1(o){return 1-easeInCubic(1-o)}const HIDE_TIMEOUT=500,SCROLL_WHEEL_SENSITIVITY=50;class MouseWheelClassifierItem{constructor(e,t,r){this.timestamp=e,this.deltaX=t,this.deltaY=r,this.score=0}}const fo=class fo{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,r=1,s=this._rear;do{const a=s===this._front?e:Math.pow(2,-r);if(e-=a,t+=this._memory[s].score*a,s===this._front)break;s=(this._capacity+s-1)%this._capacity,r++}while(!0);return t<=.5}acceptStandardWheelEvent(e){if(isChrome$1){const t=getWindow$1(e.browserEvent),r=getZoomFactor(t);this.accept(Date.now(),e.deltaX*r,e.deltaY*r)}else this.accept(Date.now(),e.deltaX,e.deltaY)}accept(e,t,r){let s=null;const a=new MouseWheelClassifierItem(e,t,r);this._front===-1&&this._rear===-1?(this._memory[0]=a,this._front=0,this._rear=0):(s=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=a),a.score=this._computeScore(a,s)}_computeScore(e,t){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;let r=.5;if((!this._isAlmostInt(e.deltaX)||!this._isAlmostInt(e.deltaY))&&(r+=.25),t){const s=Math.abs(e.deltaX),a=Math.abs(e.deltaY),l=Math.abs(t.deltaX),c=Math.abs(t.deltaY),d=Math.max(Math.min(s,l),1),u=Math.max(Math.min(a,c),1),g=Math.max(s,l),f=Math.max(a,c);g%d===0&&f%u===0&&(r-=.5)}return Math.min(Math.max(r,0),1)}_isAlmostInt(e){const t=Number.EPSILON*100;return Math.abs(Math.round(e)-e)<.01+t}};fo.INSTANCE=new fo;let MouseWheelClassifier=fo;class AbstractScrollableElement extends Widget$1{get onScroll(){return this._onScroll.event}get options(){return this._options}constructor(e,t,r){super(),this._inertialTimeout=null,this._inertialSpeed={X:0,Y:0},this._onScroll=this._register(new Emitter$1),this._onWillScroll=this._register(new Emitter$1),e.style.overflow="hidden",this._options=resolveOptions$1(t),this._scrollable=r,this._register(this._scrollable.onScroll(a=>{this._onWillScroll.fire(a),this._onDidScroll(a),this._onScroll.fire(a)}));const s={onMouseWheel:a=>this._onMouseWheel(a),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new VerticalScrollbar(this._scrollable,this._options,s)),this._horizontalScrollbar=this._register(new HorizontalScrollbar(this._scrollable,this._options,s)),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,a=>this._onMouseOver(a)),this.onmouseleave(this._listenOnDomNode,a=>this._onMouseLeave(a)),this._hideTimeout=this._register(new TimeoutTimer),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=dispose(this._mouseWheelToDispose),this._inertialTimeout&&(this._inertialTimeout.dispose(),this._inertialTimeout=null),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))}async _periodicSync(){var t;let e=!1;(this._inertialSpeed.X!==0||this._inertialSpeed.Y!==0)&&(this._scrollable.setScrollPositionNow({scrollTop:this._scrollable.getCurrentScrollPosition().scrollTop-this._inertialSpeed.Y*100,scrollLeft:this._scrollable.getCurrentScrollPosition().scrollLeft-this._inertialSpeed.X*100}),this._inertialSpeed.X*=.9,this._inertialSpeed.Y*=.9,Math.abs(this._inertialSpeed.X)<.01&&(this._inertialSpeed.X=0),Math.abs(this._inertialSpeed.Y)<.01&&(this._inertialSpeed.Y=0),e=this._inertialSpeed.X!==0||this._inertialSpeed.Y!==0),e?(this._inertialTimeout||(this._inertialTimeout=new TimeoutTimer),this._inertialTimeout.cancelAndSet(()=>this._periodicSync(),1e3/60)):((t=this._inertialTimeout)==null||t.dispose(),this._inertialTimeout=null)}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=dispose(this._mouseWheelToDispose),e)){const r=s=>{this._onMouseWheel(new StandardWheelEvent(s))};this._mouseWheelToDispose.push(addDisposableListener(this._listenOnDomNode,EventType$1.MOUSE_WHEEL,r,{passive:!1}))}}_onMouseWheel(e){var a;if((a=e.browserEvent)!=null&&a.defaultPrevented)return;const t=MouseWheelClassifier.INSTANCE;t.acceptStandardWheelEvent(e);let r=!1;if(e.deltaY||e.deltaX){let l=e.deltaY*this._options.mouseWheelScrollSensitivity,c=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&c+l===0?c=l=0:Math.abs(l)>=Math.abs(c)?c=0:l=0),this._options.flipAxes&&([l,c]=[c,l]);const d=!isMacintosh&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||d)&&!c&&(c=l,l=0),e.browserEvent&&e.browserEvent.altKey&&(c=c*this._options.fastScrollSensitivity,l=l*this._options.fastScrollSensitivity);const u=this._scrollable.getFutureScrollPosition();let g={};if(l){const f=SCROLL_WHEEL_SENSITIVITY*l,m=u.scrollTop-(f<0?Math.floor(f):Math.ceil(f));this._verticalScrollbar.writeScrollPosition(g,m)}if(c){const f=SCROLL_WHEEL_SENSITIVITY*c,m=u.scrollLeft-(f<0?Math.floor(f):Math.ceil(f));this._horizontalScrollbar.writeScrollPosition(g,m)}if(g=this._scrollable.validateScrollPosition(g),this._options.inertialScroll&&(c||l)&&!t.isPhysicalMouseWheel()){let f=!1;this._inertialSpeed.X===0&&this._inertialSpeed.Y===0&&(f=!0),this._inertialSpeed.Y=(l<0?-1:1)*Math.abs(l)**1.02,this._inertialSpeed.X=(c<0?-1:1)*Math.abs(c)**1.02,f&&this._periodicSync()}(u.scrollLeft!==g.scrollLeft||u.scrollTop!==g.scrollTop)&&(this._options.mouseWheelSmoothScroll&&t.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(g):this._scrollable.setScrollPositionNow(g),r=!0)}let s=r;!s&&this._options.alwaysConsumeMouseWheel&&(s=!0),!s&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(s=!0),s&&(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,r=e.scrollLeft>0,s=r?" left":"",a=t?" top":"",l=r||t?" top-left-corner":"";this._leftShadowDomNode.setClassName("shadow".concat(s)),this._topShadowDomNode.setClassName("shadow".concat(a)),this._topLeftShadowDomNode.setClassName("shadow".concat(l).concat(a).concat(s))}}_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 r=new Scrollable$1({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:s=>scheduleAtNextAnimationFrame(getWindow$1(e),s)});super(e,t,r),this._register(r)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class SmoothScrollableElement extends AbstractScrollableElement{constructor(e,t,r){super(e,t,r)}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 r=new Scrollable$1({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:s=>scheduleAtNextAnimationFrame(getWindow$1(e),s)});super(e,t,r),this._register(r),this._element=e,this._register(this.onScroll(s=>{s.scrollTopChanged&&(this._element.scrollTop=s.scrollTop),s.scrollLeftChanged&&(this._element.scrollLeft=s.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,inertialScroll:typeof o.inertialScroll<"u"?o.inertialScroll:!1,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 DragScrolling extends Disposable$1{constructor(e,t,r,s){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=r,this._dispatchMouse=s,this._operation=null}dispose(){super.dispose(),this.stop()}start(e,t){this._operation?this._operation.setPosition(e,t):this._operation=this._createDragScrollingOperation(e,t)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class DragScrollingOperation extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=r,this._dispatchMouse=s,this._position=a,this._mouseEvent=l,this._lastTime=Date.now(),this._animationFrameDisposable=scheduleAtNextAnimationFrame(getWindow$1(l.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(e,t){this._position=e,this._mouseEvent=t}_tick(){const e=Date.now(),t=e-this._lastTime;return this._lastTime=e,t}}class TopBottomDragScrolling extends DragScrolling{_createDragScrollingOperation(e,t){return new TopBottomDragScrollingOperation(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}}class TopBottomDragScrollingOperation extends DragScrollingOperation{_getScrollSpeed(){const e=this._context.configuration.options.get(75),t=this._context.configuration.options.get(165).height/e,r=this._position.outsideDistance/e;return r<=1.5?Math.max(30,t*(1+r)):r<=3?Math.max(60,t*(2+r)):Math.max(200,t*(7+r))}_execute(){const e=this._context.configuration.options.get(75),t=this._getScrollSpeed(),r=this._tick(),s=t*(r/1e3)*e,a=this._position.outsidePosition==="above"?-s:s;this._context.viewModel.viewLayout.deltaScrollNow(0,a),this._viewHelper.renderNow();const l=this._context.viewLayout.getLinesViewportData(),c=this._position.outsidePosition==="above"?l.startLineNumber:l.endLineNumber;let d;{const u=createEditorPagePosition(this._viewHelper.viewDomNode),g=this._context.configuration.options.get(165).horizontalScrollbarHeight,f=new PageCoordinates(this._mouseEvent.pos.x,u.y+u.height-g-.1),m=createCoordinatesRelativeToEditor(this._viewHelper.viewDomNode,u,f);d=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),u,f,m,null)}(!d.position||d.position.lineNumber!==c)&&(this._position.outsidePosition==="above"?d=MouseTarget.createOutsideEditor(this._position.mouseColumn,new Position$1(c,1),"above",this._position.outsideDistance):d=MouseTarget.createOutsideEditor(this._position.mouseColumn,new Position$1(c,this._context.viewModel.getLineMaxColumn(c)),"below",this._position.outsideDistance)),this._dispatchMouse(d,!0,2),this._animationFrameDisposable=scheduleAtNextAnimationFrame(getWindow$1(d.element),()=>this._execute())}}class LeftRightDragScrolling extends DragScrolling{_createDragScrollingOperation(e,t){return new LeftRightDragScrollingOperation(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}}class LeftRightDragScrollingOperation extends DragScrollingOperation{_getScrollSpeed(){const e=this._context.configuration.options.get(59).typicalFullwidthCharacterWidth,t=this._context.configuration.options.get(165).contentWidth/e,r=this._position.outsideDistance/e;return r<=1.5?Math.max(30,t*(1+r)):r<=3?Math.max(60,t*(2+r)):Math.max(200,t*(7+r))}_execute(){const e=this._context.configuration.options.get(59).typicalFullwidthCharacterWidth,t=this._getScrollSpeed(),r=this._tick(),s=t*(r/1e3)*e*.5,a=this._position.outsidePosition==="left"?-s:s;if(this._context.viewModel.viewLayout.deltaScrollNow(a,0),this._viewHelper.renderNow(),!this._position.position)return;const l=this._position.position.lineNumber;let c;{const d=createEditorPagePosition(this._viewHelper.viewDomNode),u=this._context.configuration.options.get(165).horizontalScrollbarHeight,g=new PageCoordinates(this._mouseEvent.pos.x,d.y+d.height-u-.1),f=createCoordinatesRelativeToEditor(this._viewHelper.viewDomNode,d,g);c=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),d,g,f,null)}this._position.outsidePosition==="left"?c=MouseTarget.createOutsideEditor(c.mouseColumn,new Position$1(l,c.mouseColumn),"left",this._position.outsideDistance):c=MouseTarget.createOutsideEditor(c.mouseColumn,new Position$1(l,c.mouseColumn),"right",this._position.outsideDistance),this._dispatchMouse(c,!0,2),this._animationFrameDisposable=scheduleAtNextAnimationFrame(getWindow$1(c.element),()=>this._execute())}}class MouseHandler extends ViewEventHandler{constructor(e,t,r){super(),this._mouseLeaveMonitor=null,this._context=e,this.viewController=t,this.viewHelper=r,this.mouseTargetFactory=new MouseTargetFactory(this._context,r),this._mouseDownOperation=this._register(new MouseDownOperation(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,(l,c)=>this._createMouseTarget(l,c),l=>this._getMouseColumn(l))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(165).height;const s=new EditorMouseEventFactory(this.viewHelper.viewDomNode);this._register(s.onContextMenu(this.viewHelper.viewDomNode,l=>this._onContextMenu(l,!0))),this._register(s.onMouseMove(this.viewHelper.viewDomNode,l=>{this._onMouseMove(l),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=addDisposableListener(this.viewHelper.viewDomNode.ownerDocument,"mousemove",c=>{this.viewHelper.viewDomNode.contains(c.target)||this._onMouseLeave(new EditorMouseEvent(c,!1,this.viewHelper.viewDomNode))}))})),this._register(s.onMouseUp(this.viewHelper.viewDomNode,l=>this._onMouseUp(l))),this._register(s.onMouseLeave(this.viewHelper.viewDomNode,l=>this._onMouseLeave(l)));let a=0;this._register(s.onPointerDown(this.viewHelper.viewDomNode,(l,c)=>{a=c})),this._register(addDisposableListener(this.viewHelper.viewDomNode,EventType$1.POINTER_UP,l=>{this._mouseDownOperation.onPointerUp()})),this._register(s.onMouseDown(this.viewHelper.viewDomNode,l=>this._onMouseDown(l,a))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const e=MouseWheelClassifier.INSTANCE;let t=0,r=EditorZoom.getZoomLevel(),s=!1,a=0;const l=d=>{if(this.viewController.emitMouseWheel(d),!this._context.configuration.options.get(84))return;const u=new StandardWheelEvent(d);if(e.acceptStandardWheelEvent(u),e.isPhysicalMouseWheel()){if(c(d)){const g=EditorZoom.getZoomLevel(),f=u.deltaY>0?1:-1;EditorZoom.setZoomLevel(g+f),u.preventDefault(),u.stopPropagation()}}else Date.now()-t>50&&(r=EditorZoom.getZoomLevel(),s=c(d),a=0),t=Date.now(),a+=u.deltaY,s&&(EditorZoom.setZoomLevel(r+a/5),u.preventDefault(),u.stopPropagation())};this._register(addDisposableListener(this.viewHelper.viewDomNode,EventType$1.MOUSE_WHEEL,l,{capture:!0,passive:!1}));function c(d){return isMacintosh?(d.metaKey||d.ctrlKey)&&!d.shiftKey&&!d.altKey:d.ctrlKey&&!d.metaKey&&!d.shiftKey&&!d.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(165)){const t=this._context.configuration.options.get(165).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 s=new ClientCoordinates(e,t).toPageCoordinates(getWindow$1(this.viewHelper.viewDomNode)),a=createEditorPagePosition(this.viewHelper.viewDomNode);if(s.y<a.y||s.y>a.y+a.height||s.x<a.x||s.x>a.x+a.width)return null;const l=createCoordinatesRelativeToEditor(this.viewHelper.viewDomNode,a,s);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),a,s,l,null)}_createMouseTarget(e,t){var s;let r=e.target;if(!this.viewHelper.viewDomNode.contains(r)){const a=getShadowRoot$2(this.viewHelper.viewDomNode);a&&(r=(s=a.elementsFromPoint(e.posx,e.posy).find(c=>this.viewHelper.viewDomNode.contains(c)))!=null?s:null)}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?r: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 r=this._createMouseTarget(e,!0),s=r.type===6||r.type===7,a=r.type===2||r.type===3||r.type===4,l=r.type===3,c=this._context.configuration.options.get(125),d=r.type===8||r.type===5,u=r.type===9;let g=e.leftButton||e.middleButton;isMacintosh&&e.leftButton&&e.ctrlKey&&(g=!1);const f=()=>{e.preventDefault(),this.viewHelper.focusTextArea()};if(g&&(s||l&&c))f(),this._mouseDownOperation.start(r.type,e,t);else if(a)e.preventDefault();else if(d){const m=r.detail;g&&this.viewHelper.shouldSuppressMouseDownOnViewZone(m.viewZoneId)&&(f(),this._mouseDownOperation.start(r.type,e,t),e.preventDefault())}else u&&this.viewHelper.shouldSuppressMouseDownOnWidget(r.detail)&&(f(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:r})}}class MouseDownOperation extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._context=e,this._viewController=t,this._viewHelper=r,this._mouseTargetFactory=s,this._createMouseTarget=a,this._getMouseColumn=l,this._mouseMoveMonitor=this._register(new GlobalEditorPointerMoveMonitor(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new TopBottomDragScrolling(this._context,this._viewHelper,this._mouseTargetFactory,(c,d,u)=>this._dispatchMouse(c,d,u))),this._leftRightDragScrolling=this._register(new LeftRightDragScrolling(this._context,this._viewHelper,this._mouseTargetFactory,(c,d,u)=>this._dispatchMouse(c,d,u))),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._leftRightDragScrolling.stop()):(this._leftRightDragScrolling.start(t,e),this._topBottomDragScrolling.stop()):(this._topBottomDragScrolling.stop(),this._leftRightDragScrolling.stop(),this._dispatchMouse(t,!0,1)))}start(e,t,r){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(e===3),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const s=this._findMousePosition(t,!0);if(!s||!s.position)return;this._mouseState.trySetCount(t.detail,s.position),t.detail=this._mouseState.count;const a=this._context.configuration.options;if(!a.get(104)&&a.get(42)&&!a.get(28)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&s.type===6&&s.position&&this._currentSelection.containsPosition(s.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,r,t.buttons,l=>this._onMouseDownThenMove(l),l=>{const c=this._findMousePosition(this._lastMouseEvent,!1);isKeyboardEvent(l)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:c?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(s,t.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,r,t.buttons,l=>this._onMouseDownThenMove(l),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop(),this._leftRightDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,r=this._context.viewModel,s=this._context.viewLayout,a=this._getMouseColumn(e);if(e.posy<t.y){const f=t.y-e.posy,m=Math.max(s.getCurrentScrollTop()-f,0),_=HitTestContext.getZoneAtCoord(this._context,m);if(_){const b=this._helpPositionJumpOverViewZone(_);if(b)return MouseTarget.createOutsideEditor(a,b,"above",f)}const v=s.getLineNumberAtVerticalOffset(m);return MouseTarget.createOutsideEditor(a,new Position$1(v,1),"above",f)}if(e.posy>t.y+t.height){const f=e.posy-t.y-t.height,m=s.getCurrentScrollTop()+e.relativePos.y,_=HitTestContext.getZoneAtCoord(this._context,m);if(_){const b=this._helpPositionJumpOverViewZone(_);if(b)return MouseTarget.createOutsideEditor(a,b,"below",f)}const v=s.getLineNumberAtVerticalOffset(m);return MouseTarget.createOutsideEditor(a,new Position$1(v,r.getLineMaxColumn(v)),"below",f)}const l=s.getLineNumberAtVerticalOffset(s.getCurrentScrollTop()+e.relativePos.y),c=this._context.configuration.options.get(165),d=c.contentLeft;if(e.relativePos.x<=d){const f=d-e.relativePos.x;return MouseTarget.createOutsideEditor(a,new Position$1(l,1),"left",f)}const g=c.minimap.minimapLeft===0?c.width-c.verticalScrollbarWidth:c.minimap.minimapLeft;if(e.relativePos.x>=g){const f=e.relativePos.x-g;return MouseTarget.createOutsideEditor(a,new Position$1(l,r.getLineMaxColumn(l)),"right",f)}return null}_findMousePosition(e,t){const r=this._getPositionOutsideEditor(e);if(r)return r;const s=this._createMouseTarget(e,t);if(!s.position)return null;if(s.type===8||s.type===5){const l=this._helpPositionJumpOverViewZone(s.detail);if(l)return MouseTarget.createViewZone(s.type,s.element,s.mouseColumn,l,s.detail)}return s}_helpPositionJumpOverViewZone(e){const t=new Position$1(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),r=e.positionBefore,s=e.positionAfter;return r&&s?r.isBefore(t)?r:s:null}_dispatchMouse(e,t,r){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:r,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})}}const po=class po{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 r=new Date().getTime();r-this._lastSetMouseDownCountTime>po.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=r,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)}};po.CLEAR_MOUSE_DOWN_COUNT_TIME=400;let MouseDownState=po;class DomEmitter{get event(){return this.emitter.event}constructor(e,t,r){const s=a=>this.emitter.fire(a);this.emitter=new Emitter$1({onWillAddFirstListener:()=>e.addEventListener(t,s,r),onDidRemoveLastListener:()=>e.removeEventListener(t,s,r)})}dispose(){this.emitter.dispose()}}function getDataToCopy(o,e,t,r){const s=o.getPlainTextToCopy(e,t,isWindows),a=o.model.getEOL(),l=t&&e.length===1&&e[0].isEmpty(),c=Array.isArray(s)?s:null,d=Array.isArray(s)?s.join(a):s;let u,g=null;if(CopyOptions.forceCopyWithSyntaxHighlighting||r&&d.length<65536){const m=o.getRichTextToCopy(e,t);m&&(u=m.html,g=m.mode)}return{isFromEmptySelection:l,multicursorText:c,text:d,html:u,mode:g}}const mo=class mo{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)}};mo.INSTANCE=new mo;let InMemoryClipboardMetadataManager=mo;const CopyOptions={forceCopyWithSyntaxHighlighting:!1},ClipboardEventUtils={getTextData(o){const e=o.getData(Mimes.text);let t=null;const r=o.getData("vscode-editor-data");if(typeof r=="string")try{t=JSON.parse(r),t.version!==1&&(t=null)}catch(s){}return e.length===0&&t===null&&o.files.length>0?[Array.prototype.slice.call(o.files,0).map(a=>a.name).join("\n"),null]:[e,t]},setTextData(o,e,t,r){o.setData(Mimes.text,e),typeof t=="string"&&o.setData("text/html",t),o.setData("vscode-editor-data",JSON.stringify(r))}},zi=class zi{constructor(e,t,r,s,a){this.value=e,this.selectionStart=t,this.selectionEnd=r,this.selection=s,this.newlineCountBeforeSelection=a}toString(){return"[ <".concat(this.value,">, selectionStart: ").concat(this.selectionStart,", selectionEnd: ").concat(this.selectionEnd,"]")}static readFromTextArea(e,t){const r=e.getValue(),s=e.getSelectionStart(),a=e.getSelectionEnd();let l;if(t){const c=r.substring(0,s),d=t.value.substring(0,t.selectionStart);c===d&&(l=t.newlineCountBeforeSelection)}return new zi(r,s,a,null,l)}collapseSelection(){return this.selectionStart===this.value.length?this:new zi(this.value,this.value.length,this.value.length,null,void 0)}isWrittenToTextArea(e,t){const r=this.value===e.getValue();return t?this.selectionStart===e.getSelectionStart()&&this.selectionEnd===e.getSelectionEnd()&&r:r}writeToTextArea(e,t,r){t.setValue(e,this.value),r&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){var s,a,l,c,d,u,g,f;if(e<=this.selectionStart){const m=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition((a=(s=this.selection)==null?void 0:s.getStartPosition())!=null?a:null,m,-1)}if(e>=this.selectionEnd){const m=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition((c=(l=this.selection)==null?void 0:l.getEndPosition())!=null?c:null,m,1)}const t=this.value.substring(this.selectionStart,e);if(t.indexOf("…")===-1)return this._finishDeduceEditorPosition((u=(d=this.selection)==null?void 0:d.getStartPosition())!=null?u:null,t,1);const r=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition((f=(g=this.selection)==null?void 0:g.getEndPosition())!=null?f:null,r,-1)}_finishDeduceEditorPosition(e,t,r){let s=0,a=-1;for(;(a=t.indexOf("\n",a+1))!==-1;)s++;return[e,r*t.length,s]}static deduceInput(e,t,r){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};const s=Math.min(commonPrefixLength(e.value,t.value),e.selectionStart,t.selectionStart),a=Math.min(commonSuffixLength(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd);e.value.substring(s,e.value.length-a);const l=t.value.substring(s,t.value.length-a),c=e.selectionStart-s,d=e.selectionEnd-s,u=t.selectionStart-s,g=t.selectionEnd-s;if(u===g){const m=e.selectionStart-s;return{text:l,replacePrevCharCnt:m,replaceNextCharCnt:0,positionDelta:0}}const f=d-c;return{text:l,replacePrevCharCnt:f,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 r=Math.min(commonPrefixLength(e.value,t.value),e.selectionEnd),s=Math.min(commonSuffixLength(e.value,t.value),e.value.length-e.selectionEnd),a=e.value.substring(r,e.value.length-s),l=t.value.substring(r,t.value.length-s);e.selectionStart-r;const c=e.selectionEnd-r;t.selectionStart-r;const d=t.selectionEnd-r;return{text:l,replacePrevCharCnt:c,replaceNextCharCnt:a.length-c,positionDelta:d-l.length}}static fromScreenReaderContentState(e){return new zi(e.value,e.selectionStart,e.selectionEnd,e.selection,e.newlineCountBeforeSelection)}};zi.EMPTY=new zi("",0,0,null,void 0);let TextAreaState=zi;const generateUuid=(function(){if(typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);const o=new Uint8Array(16),e=[];for(let t=0;t<256;t++)e.push(t.toString(16).padStart(2,"0"));return function(){crypto.getRandomValues(o),o[6]=o[6]&15|64,o[8]=o[8]&63|128;let r=0,s="";return s+=e[o[r++]],s+=e[o[r++]],s+=e[o[r++]],s+=e[o[r++]],s+="-",s+=e[o[r++]],s+=e[o[r++]],s+="-",s+=e[o[r++]],s+=e[o[r++]],s+="-",s+=e[o[r++]],s+=e[o[r++]],s+="-",s+=e[o[r++]],s+=e[o[r++]],s+=e[o[r++]],s+=e[o[r++]],s+=e[o[r++]],s+=e[o[r++]],s}})();function prefixedUuid(o){return"".concat(o,"-").concat(generateUuid())}var __decorate$35=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2X=function(o,e){return function(t,r){e(t,r,o)}},TextAreaSyntethicEvents;(function(o){o.Tap="-monaco-textarea-synthetic-tap"})(TextAreaSyntethicEvents||(TextAreaSyntethicEvents={}));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}}let TextAreaInput=class extends Disposable$1{get textAreaState(){return this._textAreaState}constructor(e,t,r,s,a,l){super(),this._host=e,this._textArea=t,this._OS=r,this._browser=s,this._accessibilityService=a,this._logService=l,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._asyncFocusGainWriteScreenReaderContent=this._register(new MutableDisposable),this._asyncTriggerCut=this._register(new RunOnceScheduler(()=>this._onCut.fire(),0)),this._textAreaState=TextAreaState.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(Event$1.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new RunOnceScheduler(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let c=null;this._register(this._textArea.onKeyDown(d=>{const u=new StandardKeyboardEvent(d);(u.keyCode===114||this._currentComposition&&u.keyCode===1)&&u.stopPropagation(),u.equals(9)&&u.preventDefault(),c=u,this._onKeyDown.fire(u)})),this._register(this._textArea.onKeyUp(d=>{const u=new StandardKeyboardEvent(d);this._onKeyUp.fire(u)})),this._register(this._textArea.onCompositionStart(d=>{const u=new CompositionContext;if(this._currentComposition){this._currentComposition=u;return}if(this._currentComposition=u,this._OS===2&&c&&c.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===d.data&&(c.code==="ArrowRight"||c.code==="ArrowLeft")){u.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:d.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:d.data});return}this._onCompositionStart.fire({data:d.data})})),this._register(this._textArea.onCompositionUpdate(d=>{const u=this._currentComposition;if(!u)return;if(this._browser.isAndroid){const f=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),m=TextAreaState.deduceAndroidCompositionInput(this._textAreaState,f);this._textAreaState=f,this._onType.fire(m),this._onCompositionUpdate.fire(d);return}const g=u.handleCompositionUpdate(d.data);this._textAreaState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(g),this._onCompositionUpdate.fire(d)})),this._register(this._textArea.onCompositionEnd(d=>{const u=this._currentComposition;if(!u)return;if(this._currentComposition=null,this._browser.isAndroid){const f=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),m=TextAreaState.deduceAndroidCompositionInput(this._textAreaState,f);this._textAreaState=f,this._onType.fire(m),this._onCompositionEnd.fire();return}const g=u.handleCompositionUpdate(d.data);this._textAreaState=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(g),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(d=>{if(this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const u=TextAreaState.readFromTextArea(this._textArea,this._textAreaState),g=TextAreaState.deduceInput(this._textAreaState,u,this._OS===2);g.replacePrevCharCnt===0&&g.text.length===1&&(isHighSurrogate(g.text.charCodeAt(0))||g.text.charCodeAt(0)===127)||(this._textAreaState=u,(g.text!==""||g.replacePrevCharCnt!==0||g.replaceNextCharCnt!==0||g.positionDelta!==0)&&(d.inputType==="insertFromPaste"?this._onPaste.fire({text:g.text,metadata:InMemoryClipboardMetadataManager.INSTANCE.get(g.text)}):this._onType.fire(g)))})),this._register(this._textArea.onCut(d=>{this._logService.trace("TextAreaInput#onCut",d),this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(d),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(d=>{this._logService.trace("TextAreaInput#onCopy",d),this._ensureClipboardGetsEditorSelection(d)})),this._register(this._textArea.onPaste(d=>{if(this._logService.trace("TextAreaInput#onPaste",d),this._textArea.setIgnoreSelectionChangeTime("received paste event"),d.preventDefault(),!d.clipboardData)return;let[u,g]=ClipboardEventUtils.getTextData(d.clipboardData);this._logService.trace("TextAreaInput#onPaste with id : ",g==null?void 0:g.id," with text.length: ",u.length),u&&(g=g||InMemoryClipboardMetadataManager.INSTANCE.get(u),this._logService.trace("TextAreaInput#onPaste (before onPaste)"),this._onPaste.fire({text:u,metadata:g}))})),this._register(this._textArea.onFocus(()=>{const d=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!d&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new RunOnceScheduler(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let e=0;return addDisposableListener(this._textArea.ownerDocument,"selectionchange",t=>{if(inputLatency.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const r=Date.now(),s=r-e;if(e=r,s<5)return;const a=r-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),a<100||!this._textAreaState.selection)return;const l=this._textArea.getValue();if(this._textAreaState.value!==l)return;const c=this._textArea.getSelectionStart(),d=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===c&&this._textAreaState.selectionEnd===d)return;const u=this._textAreaState.deduceEditorPosition(c),g=this._host.deduceModelPosition(u[0],u[1],u[2]),f=this._textAreaState.deduceEditorPosition(d),m=this._host.deduceModelPosition(f[0],f[1],f[2]),_=new Selection$1(g.lineNumber,g.column,m.lineNumber,m.column);this._onSelectionChangeRequest.fire(_)})}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.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.isWrittenToTextArea(this._textArea,this._hasFocus)||this._logService.trace("writeTextAreaState(reason: ".concat(e,")")),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeNativeTextAreaContent(e){!this._accessibilityService.isScreenReaderOptimized()&&e==="render"||this._currentComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent())}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy();let r;this._logService.getLevel()===LogLevel.Trace&&(r=generateUuid());const s={version:1,id:r,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};InMemoryClipboardMetadataManager.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,"\n"):t.text,s),e.preventDefault(),e.clipboardData&&ClipboardEventUtils.setTextData(e.clipboardData,t.text,t.html,s),this._logService.trace("TextAreaEditContextInput#_ensureClipboardGetsEditorSelection with id : ",r," with text.length: ",t.text.length)}};TextAreaInput=__decorate$35([__param$2X(4,IAccessibilityService),__param$2X(5,ILogService)],TextAreaInput);class TextAreaWrapper extends Disposable$1{get ownerDocument(){return this._actual.ownerDocument}constructor(e){super(),this._actual=e,this._onSyntheticTap=this._register(new Emitter$1),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this.onKeyDown=this._register(new DomEmitter(this._actual,"keydown")).event,this.onKeyPress=this._register(new DomEmitter(this._actual,"keypress")).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._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$2(this._actual);return e?e.activeElement===this._actual:this._actual.isConnected?getActiveElement()===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 r=this._actual;r.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),r.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,r){const s=this._actual;let a=null;const l=getShadowRoot$2(s);l?a=l.activeElement:a=getActiveElement();const c=getWindow$1(a),d=a===s,u=s.selectionStart,g=s.selectionEnd;if(d&&u===t&&g===r){isFirefox$1&&c.parent!==c&&s.focus();return}if(d){this.setIgnoreSelectionChangeTime("setSelectionRange"),s.setSelectionRange(t,r),isFirefox$1&&c.parent!==c&&s.focus();return}try{const f=saveParentsScrollTop(s);this.setIgnoreSelectionChangeTime("setSelectionRange"),s.focus(),s.setSelectionRange(t,r),restoreParentsScrollTop(s,f)}catch(f){}}}class PointerEventHandler extends MouseHandler{constructor(e,t,r){super(e,t,r),this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Tap,a=>this.onTap(a))),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Change,a=>this.onChange(a))),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Contextmenu,a=>this._onContextMenu(new EditorMouseEvent(a,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(addDisposableListener(this.viewHelper.linesContentDomNode,"pointerdown",a=>{const l=a.pointerType;if(l==="mouse"){this._lastPointerType="mouse";return}else l==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const s=new EditorPointerEventFactory(this.viewHelper.viewDomNode);this._register(s.onPointerMove(this.viewHelper.viewDomNode,a=>this._onMouseMove(a))),this._register(s.onPointerUp(this.viewHelper.viewDomNode,a=>this._onMouseUp(a))),this._register(s.onPointerLeave(this.viewHelper.viewDomNode,a=>this._onMouseLeave(a))),this._register(s.onPointerDown(this.viewHelper.viewDomNode,(a,l)=>this._onMouseDown(a,l)))}onTap(e){!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget)||(e.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(e,!1))}onChange(e){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY),this._lastPointerType==="pen"&&this._dispatchGesture(e,!0)}_dispatchGesture(e,t){const r=this._createMouseTarget(new EditorMouseEvent(e,!1,this.viewHelper.viewDomNode),!1);r.position&&this.viewController.dispatchMouse({position:r.position,mouseColumn:r.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:e.tapCount,inSelectionMode:t,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:r.type===6&&r.detail.injectedText!==null})}_onMouseDown(e,t){e.browserEvent.pointerType!=="touch"&&super._onMouseDown(e,t)}}class TouchHandler extends MouseHandler{constructor(e,t,r){super(e,t,r),this._register(Gesture.addTarget(this.viewHelper.linesContentDomNode)),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Tap,s=>this.onTap(s))),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Change,s=>this.onChange(s))),this._register(addDisposableListener(this.viewHelper.linesContentDomNode,EventType.Contextmenu,s=>this._onContextMenu(new EditorMouseEvent(s,!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 r=document.createEvent("CustomEvent");r.initEvent(TextAreaSyntethicEvents.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(r),this.viewController.moveTo(t.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class PointerHandler extends Disposable$1{constructor(e,t,r){super(),(isIOS||isAndroid&&isMobile)&&BrowserFeatures.pointerEvents?this.handler=this._register(new PointerEventHandler(e,t,r)):mainWindow.TouchEvent?this.handler=this._register(new TouchHandler(e,t,r)):this.handler=this._register(new MouseHandler(e,t,r))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}class ViewController{constructor(e,t,r,s){this.configuration=e,this.viewModel=t,this.userInputEvents=r,this.commandDelegate=s}paste(e,t,r,s){this.commandDelegate.paste(e,t,r,s)}type(e){this.commandDelegate.type(e)}compositionType(e,t,r,s){this.commandDelegate.compositionType(e,t,r,s)}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(86)){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(86)){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,r=isLinux&&t.get(121),s=t.get(28),a=t.get(171);e.middleButton&&!r?a||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):s?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,r){e=this._validateViewColumn(e),CoreNavigationCommands.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:r})}_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)}}function createTrustedTypesPolicy$1(o,e){var r;const t=getMonacoEnvironment();if(t!=null&&t.createTrustedTypesPolicy)try{return t.createTrustedTypesPolicy(o,e)}catch(s){onUnexpectedError(s);return}try{return(r=globalThis.trustedTypes)==null?void 0:r.createPolicy(o,e)}catch(s){onUnexpectedError(s);return}}class RenderedLinesCollection{constructor(e){this._lineFactory=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 r=this.getStartLineNumber(),s=this.getEndLineNumber();if(t<r){const d=t-e+1;return this._rendLineNumberStart-=d,null}if(e>s)return null;let a=0,l=0;for(let d=r;d<=s;d++){const u=d-this._rendLineNumberStart;e<=d&&d<=t&&(l===0?(a=u,l=1):l++)}if(e<r){let d=0;t<r?d=t-e+1:d=r-e,this._rendLineNumberStart-=d}return this._lines.splice(a,l)}onLinesChanged(e,t){const r=e+t-1;if(this.getCount()===0)return!1;const s=this.getStartLineNumber(),a=this.getEndLineNumber();let l=!1;for(let c=e;c<=r;c++)c>=s&&c<=a&&(this._lines[c-this._rendLineNumberStart].onContentChanged(),l=!0);return l}onLinesInserted(e,t){if(this.getCount()===0)return null;const r=t-e+1,s=this.getStartLineNumber(),a=this.getEndLineNumber();if(e<=s)return this._rendLineNumberStart+=r,null;if(e>a)return null;if(r+e>a)return this._lines.splice(e-this._rendLineNumberStart,a-e+1);const l=[];for(let f=0;f<r;f++)l[f]=this._lineFactory.createLine();const c=e-this._rendLineNumberStart,d=this._lines.slice(0,c),u=this._lines.slice(c,this._lines.length-r),g=this._lines.slice(this._lines.length-r,this._lines.length);return this._lines=d.concat(l).concat(u),g}onTokensChanged(e){if(this.getCount()===0)return!1;const t=this.getStartLineNumber(),r=this.getEndLineNumber();let s=!1;for(let a=0,l=e.length;a<l;a++){const c=e[a];if(c.toLineNumber<t||c.fromLineNumber>r)continue;const d=Math.max(t,c.fromLineNumber),u=Math.min(r,c.toLineNumber);for(let g=d;g<=u;g++){const f=g-this._rendLineNumberStart;this._lines[f].onTokensChanged(),s=!0}}return s}}class VisibleLinesCollection{constructor(e,t){this._viewContext=e,this._lineFactory=t,this.domNode=this._createDomNode(),this._linesCollection=new RenderedLinesCollection(this._lineFactory)}_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(165)}onFlushed(e,t){var r;if(t){const s=this._linesCollection.getStartLineNumber(),a=this._linesCollection.getEndLineNumber();for(let l=s;l<=a;l++)(r=this._linesCollection.getLine(l).getDomNode())==null||r.remove()}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 r=0,s=t.length;r<s;r++){const a=t[r].getDomNode();a==null||a.remove()}return!0}onLinesInserted(e){const t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(let r=0,s=t.length;r<s;r++){const a=t[r].getDomNode();a==null||a.remove()}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(),r=new ViewLayerRenderer(this.domNode.domNode,this._lineFactory,e,this._viewContext),s={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},a=r.render(s,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(a.rendLineNumberStart,a.lines)}}const Zt=class Zt{constructor(e,t,r,s){this._domNode=e,this._lineFactory=t,this._viewportData=r,this._viewContext=s}render(e,t,r,s){const a={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(a.rendLineNumberStart+a.linesLength-1<t||r<a.rendLineNumberStart){a.rendLineNumberStart=t,a.linesLength=r-t+1,a.lines=[];for(let l=t;l<=r;l++)a.lines[l-t]=this._lineFactory.createLine();return this._finishRendering(a,!0,s),a}if(this._renderUntouchedLines(a,Math.max(t-a.rendLineNumberStart,0),Math.min(r-a.rendLineNumberStart,a.linesLength-1),s,t),a.rendLineNumberStart>t){const l=t,c=Math.min(r,a.rendLineNumberStart-1);l<=c&&(this._insertLinesBefore(a,l,c,s,t),a.linesLength+=c-l+1)}else if(a.rendLineNumberStart<t){const l=Math.min(a.linesLength,t-a.rendLineNumberStart);l>0&&(this._removeLinesBefore(a,l),a.linesLength-=l)}if(a.rendLineNumberStart=t,a.rendLineNumberStart+a.linesLength-1<r){const l=a.rendLineNumberStart+a.linesLength,c=r;l<=c&&(this._insertLinesAfter(a,l,c,s,t),a.linesLength+=c-l+1)}else if(a.rendLineNumberStart+a.linesLength-1>r){const l=Math.max(0,r-a.rendLineNumberStart+1),d=a.linesLength-1-l+1;d>0&&(this._removeLinesAfter(a,d),a.linesLength-=d)}return this._finishRendering(a,!1,s),a}_renderUntouchedLines(e,t,r,s,a){const l=e.rendLineNumberStart,c=e.lines;for(let d=t;d<=r;d++){const u=l+d;c[d].layoutLine(u,s[u-a],this._lineHeightForLineNumber(u))}}_insertLinesBefore(e,t,r,s,a){const l=[];let c=0;for(let d=t;d<=r;d++)l[c++]=this._lineFactory.createLine();e.lines=l.concat(e.lines)}_removeLinesBefore(e,t){for(let r=0;r<t;r++){const s=e.lines[r].getDomNode();s==null||s.remove()}e.lines.splice(0,t)}_insertLinesAfter(e,t,r,s,a){const l=[];let c=0;for(let d=t;d<=r;d++)l[c++]=this._lineFactory.createLine();e.lines=e.lines.concat(l)}_removeLinesAfter(e,t){const r=e.linesLength-t;for(let s=0;s<t;s++){const a=e.lines[r+s].getDomNode();a==null||a.remove()}e.lines.splice(r,t)}_finishRenderingNewLines(e,t,r,s){Zt._ttPolicy&&(r=Zt._ttPolicy.createHTML(r));const a=this._domNode.lastChild;t||!a?this._domNode.innerHTML=r:a.insertAdjacentHTML("afterend",r);let l=this._domNode.lastChild;for(let c=e.linesLength-1;c>=0;c--){const d=e.lines[c];s[c]&&(d.setDomNode(l),l=l.previousSibling)}}_finishRenderingInvalidLines(e,t,r){const s=document.createElement("div");Zt._ttPolicy&&(t=Zt._ttPolicy.createHTML(t)),s.innerHTML=t;for(let a=0;a<e.linesLength;a++){const l=e.lines[a];if(r[a]){const c=s.firstChild;l.getDomNode().replaceWith(c),l.setDomNode(c)}}}_finishRendering(e,t,r){const s=Zt._sb,a=e.linesLength,l=e.lines,c=e.rendLineNumberStart,d=[];{s.reset();let u=!1;for(let g=0;g<a;g++){const f=l[g];if(d[g]=!1,f.getDomNode())continue;const _=g+c;f.renderLine(_,r[g],this._lineHeightForLineNumber(_),this._viewportData,s)&&(d[g]=!0,u=!0)}u&&this._finishRenderingNewLines(e,t,s.build(),d)}{s.reset();let u=!1;const g=[];for(let f=0;f<a;f++){const m=l[f];if(g[f]=!1,d[f])continue;const _=f+c;m.renderLine(_,r[f],this._lineHeightForLineNumber(_),this._viewportData,s)&&(g[f]=!0,u=!0)}u&&this._finishRenderingInvalidLines(e,s.build(),g)}}_lineHeightForLineNumber(e){return this._viewContext.viewLayout.getLineHeightForLineNumber(e)}};Zt._ttPolicy=createTrustedTypesPolicy$1("editorViewLayer",{createHTML:e=>e}),Zt._sb=new StringBuilder(1e5);let ViewLayerRenderer=Zt;class ViewOverlays extends ViewPart{constructor(e){super(e),this._dynamicOverlays=[],this._isFocused=!1,this._visibleLines=new VisibleLinesCollection(this._context,{createLine:()=>new ViewOverlayLine(this._dynamicOverlays)}),this.domNode=this._visibleLines.domNode;const r=this._context.configuration.options.get(59);applyFontInfo(this.domNode,r),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}addDynamicOverlay(e){this._dynamicOverlays.push(e)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e);const r=this._context.configuration.options.get(59);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(r=>r.shouldRender());for(let r=0,s=t.length;r<s;r++){const a=t[r];a.prepareRender(e),a.onDidRender()}}render(e){this._viewOverlaysRender(e),this.domNode.toggleClassName("focused",this._isFocused)}_viewOverlaysRender(e){this._visibleLines.renderLines(e.viewportData)}}class ViewOverlayLine{constructor(e){this._dynamicOverlays=e,this._domNode=null,this._renderedContent=null}getDomNode(){return this._domNode?this._domNode.domNode:null}setDomNode(e){this._domNode=createFastDomNode(e)}onContentChanged(){}onTokensChanged(){}renderLine(e,t,r,s,a){let l="";for(let c=0,d=this._dynamicOverlays.length;c<d;c++){const u=this._dynamicOverlays[c];l+=u.render(s.startLineNumber,e)}return this._renderedContent===l?!1:(this._renderedContent=l,a.appendString('<div style="top:'),a.appendString(String(t)),a.appendString("px;height:"),a.appendString(String(r)),a.appendString("px;line-height:"),a.appendString(String(r)),a.appendString('px;">'),a.appendString(l),a.appendString("</div>"),!0)}layoutLine(e,t,r){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(r),this._domNode.setLineHeight(r))}}class ContentViewOverlays extends ViewOverlays{constructor(e){super(e);const r=this._context.configuration.options.get(165);this._contentWidth=r.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const r=this._context.configuration.options.get(165);return this._contentWidth=r.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,r=t.get(165);this._contentLeft=r.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),applyFontInfo(this.domNode,t.get(59))}onConfigurationChanged(e){const t=this._context.configuration.options;applyFontInfo(this.domNode,t.get(59));const r=t.get(165);return this._contentLeft=r.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 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.call(this,e)}emitKeyUp(e){var t;(t=this.onKeyUp)==null||t.call(this,e)}emitContextMenu(e){var t;(t=this.onContextMenu)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseMove(e){var t;(t=this.onMouseMove)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){var t;(t=this.onMouseLeave)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDown(e){var t;(t=this.onMouseDown)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseUp(e){var t;(t=this.onMouseUp)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){var t;(t=this.onMouseDrag)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){var t;(t=this.onMouseDrop)==null||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){var e;(e=this.onMouseDropCanceled)==null||e.call(this)}emitMouseWheel(e){var t;(t=this.onMouseWheel)==null||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 r={...e};return r.position&&(r.position=t.convertViewPositionToModelPosition(r.position)),r.range&&(r.range=t.convertViewRangeToModelRange(r.range)),(r.type===5||r.type===8)&&(r.detail=this.convertViewToModelViewZoneData(r.detail,t)),r}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 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 r=this._context.configuration.options.get(165),s=r.contentWidth-r.verticalScrollbarWidth;this.contentWidth!==s&&(this.contentWidth=s,e=!0);const a=r.contentLeft;return this.contentLeft!==a&&(this.contentLeft=a,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 s;let t=0;const r=e.getDecorationsInViewport();for(const a of r){if(!a.options.blockClassName)continue;let l=this.blocks[t];l||(l=this.blocks[t]=createFastDomNode(document.createElement("div")),this.domNode.appendChild(l));let c,d;a.options.blockIsAfterEnd?(c=e.getVerticalOffsetAfterLineNumber(a.range.endLineNumber,!1),d=e.getVerticalOffsetAfterLineNumber(a.range.endLineNumber,!0)):(c=e.getVerticalOffsetForLineNumber(a.range.startLineNumber,!0),d=a.range.isEmpty()&&!a.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(a.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(a.range.endLineNumber,!0));const[u,g,f,m]=(s=a.options.blockPadding)!=null?s:[0,0,0,0];l.setClassName("blockDecorations-block "+a.options.blockClassName),l.setLeft(this.contentLeft-m),l.setWidth(this.contentWidth+m+g),l.setTop(c-e.scrollTop-u),l.setHeight(d-c+u+f),t++}for(let a=t;a<this.blocks.length;a++)this.blocks[a].domNode.remove();this.blocks.length=t}}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 r of t)this._widgets[r].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,r,s,a){this._widgets[e.getId()].setPosition(t,r,s,a),this.setShouldRender()}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const r=this._widgets[t];delete this._widgets[t];const s=r.domNode.domNode;s.remove(),s.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 r of t)this._widgets[r].onBeforeRender(e)}prepareRender(e){const t=Object.keys(this._widgets);for(const r of t)this._widgets[r].prepareRender(e)}render(e){const t=Object.keys(this._widgets);for(const r of t)this._widgets[r].render(e)}}class Widget{constructor(e,t,r){this._primaryAnchor=new PositionPair(null,null),this._secondaryAnchor=new PositionPair(null,null),this._context=e,this._viewDomNode=t,this._actual=r;const s=this._context.configuration.options,a=s.get(165),l=s.get(4);this.domNode=createFastDomNode(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=(this._actual.allowEditorOverflow||!1)&&l,this.suppressMouseDown=this._actual.suppressMouseDown||!1,this._fixedOverflowWidgets=s.get(51),this._contentWidth=a.contentWidth,this._contentLeft=a.contentLeft,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(e.hasChanged(165)){const r=t.get(165);this._contentLeft=r.contentLeft,this._contentWidth=r.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(e,t,r){this._affinity=e,this._primaryAnchor=s(t,this._context.viewModel,this._affinity),this._secondaryAnchor=s(r,this._context.viewModel,this._affinity);function s(a,l,c){if(!a)return new PositionPair(null,null);const d=l.model.validatePosition(a);if(l.coordinatesConverter.modelPositionIsVisible(d)){const u=l.coordinatesConverter.convertModelPositionToViewPosition(d,c!=null?c:void 0);return new PositionPair(a,u)}return new PositionPair(a,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,r,s){this._setPosition(s,e,t),this._preference=r,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,r,s){const a=e.top,l=a,c=e.top+e.height,d=s.viewportHeight-c,u=a-r,g=l>=r,f=c,m=d>=r;let _=e.left;return _+t>s.scrollLeft+s.viewportWidth&&(_=s.scrollLeft+s.viewportWidth-t),_<s.scrollLeft&&(_=s.scrollLeft),{fitsAbove:g,aboveTop:u,fitsBelow:m,belowTop:f,left:_}}_layoutHorizontalSegmentInPage(e,t,r,s){var m;const c=Math.max(15,t.left-s),d=Math.min(t.left+t.width+s,e.width-15),g=this._viewDomNode.domNode.ownerDocument.defaultView;let f=t.left+r-((m=g==null?void 0:g.scrollX)!=null?m:0);if(f+s>d){const _=f-(d-s);f-=_,r-=_}if(f<c){const _=f-c;f-=_,r-=_}return[r,f]}_layoutBoxInPage(e,t,r,s){var w,E;const a=e.top-r,l=e.top+e.height,c=getDomNodePagePosition(this._viewDomNode.domNode),d=this._viewDomNode.domNode.ownerDocument,u=d.defaultView,g=c.top+a-((w=u==null?void 0:u.scrollY)!=null?w:0),f=c.top+l-((E=u==null?void 0:u.scrollY)!=null?E:0),m=getClientArea(d.body),[_,v]=this._layoutHorizontalSegmentInPage(m,c,e.left-s.scrollLeft+this._contentLeft,t),b=22,C=22,y=g>=b,S=f+r<=m.height-C;return this._fixedOverflowWidgets?{fitsAbove:y,aboveTop:Math.max(g,b),fitsBelow:S,belowTop:f,left:v}:{fitsAbove:y,aboveTop:a,fitsBelow:S,belowTop:l,left:_}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new Coordinate(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){var l,c;const t=a(this._primaryAnchor.viewPosition,this._affinity),r=((l=this._secondaryAnchor.viewPosition)==null?void 0:l.lineNumber)===((c=this._primaryAnchor.viewPosition)==null?void 0:c.lineNumber)?this._secondaryAnchor.viewPosition:null,s=a(r,this._affinity);return{primary:t,secondary:s};function a(d,u){if(!d)return null;const g=e.visibleRangeForPosition(d);if(!g)return null;const f=d.column===1&&u===3?0:g.left,m=e.getVerticalOffsetForLineNumber(d.lineNumber)-e.scrollTop,_=e.getLineHeightForLineNumber(d.lineNumber);return new AnchorCoordinate(m,f,_)}}_reduceAnchorCoordinates(e,t,r){if(!t)return e;const s=this._context.configuration.options.get(59);let a=t.left;return a<e.left?a=Math.max(a,e.left-r+s.typicalFullwidthCharacterWidth):a=Math.min(a,e.left+r-s.typicalFullwidthCharacterWidth),new AnchorCoordinate(e.top,a,e.height)}_prepareRenderWidget(e){if(!this._preference||this._preference.length===0)return null;const{primary:t,secondary:r}=this._getAnchorsCoordinates(e);if(!t)return{kind:"offViewport",preserveFocus:this.domNode.domNode.contains(this.domNode.domNode.ownerDocument.activeElement)};if(this._cachedDomNodeOffsetWidth===-1||this._cachedDomNodeOffsetHeight===-1){let l=null;if(typeof this._actual.beforeRender=="function"&&(l=safeInvoke(this._actual.beforeRender,this._actual)),l)this._cachedDomNodeOffsetWidth=l.width,this._cachedDomNodeOffsetHeight=l.height;else{const d=this.domNode.domNode.getBoundingClientRect();this._cachedDomNodeOffsetWidth=Math.round(d.width),this._cachedDomNodeOffsetHeight=Math.round(d.height)}}const s=this._reduceAnchorCoordinates(t,r,this._cachedDomNodeOffsetWidth);let a;this.allowEditorOverflow?a=this._layoutBoxInPage(s,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e):a=this._layoutBoxInViewport(s,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e);for(let l=1;l<=2;l++)for(const c of this._preference)if(c===1){if(!a)return null;if(l===2||a.fitsAbove)return{kind:"inViewport",coordinate:new Coordinate(a.aboveTop,a.left),position:1}}else if(c===2){if(!a)return null;if(l===2||a.fitsBelow)return{kind:"inViewport",coordinate:new Coordinate(a.belowTop,a.left),position:2}}else return this.allowEditorOverflow?{kind:"inViewport",coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(new Coordinate(s.top,s.left)),position:0}:{kind:"inViewport",coordinate:new Coordinate(s.top,s.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){var t;if(!this._renderData||this._renderData.kind==="offViewport"){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,((t=this._renderData)==null?void 0:t.kind)==="offViewport"&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&safeInvoke(this._actual.afterRender,this._actual,null,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,this._renderData.coordinate)}}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,r){this.top=e,this.left=t,this.height=r,this._anchorCoordinateBrand=void 0}}function safeInvoke(o,e,...t){try{return o.call(e,...t)}catch(r){return null}}class DynamicViewOverlay extends ViewEventHandler{}const IThemeService=createDecorator("themeService");function themeColorFromId(o){return{id:o}}function getThemeTypeSelector(o){switch(o){case ColorScheme.DARK:return ThemeTypeSelector.VS_DARK;case ColorScheme.HIGH_CONTRAST_DARK:return ThemeTypeSelector.HC_BLACK;case ColorScheme.HIGH_CONTRAST_LIGHT:return ThemeTypeSelector.HC_LIGHT;default:return ThemeTypeSelector.VS}}const Extensions$3={ThemingContribution:"base.contributions.theming"};class ThemingRegistry extends Disposable$1{constructor(){super(),this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=this._register(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$1{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",null,localize(610,"Background color for the highlight of line at the cursor position.")),editorLineHighlightBorder=registerColor("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:contrastBorder},localize(611,"Background color for the border around the line at the cursor position."));registerColor("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},localize(612,"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(613,"Background color of the border around highlighted ranges."));registerColor("editor.symbolHighlightBackground",{dark:editorFindMatchHighlight,light:editorFindMatchHighlight,hcDark:null,hcLight:null},localize(614,"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(615,"Background color of the border around highlighted symbols."));const editorCursorForeground=registerColor("editorCursor.foreground",{dark:"#AEAFAD",light:Color.black,hcDark:Color.white,hcLight:"#0F4A85"},localize(616,"Color of the editor cursor.")),editorCursorBackground=registerColor("editorCursor.background",null,localize(617,"The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),editorMultiCursorPrimaryForeground=registerColor("editorMultiCursor.primary.foreground",editorCursorForeground,localize(618,"Color of the primary editor cursor when multiple cursors are present.")),editorMultiCursorPrimaryBackground=registerColor("editorMultiCursor.primary.background",editorCursorBackground,localize(619,"The background color of the primary editor cursor when multiple cursors are present. Allows customizing the color of a character overlapped by a block cursor.")),editorMultiCursorSecondaryForeground=registerColor("editorMultiCursor.secondary.foreground",editorCursorForeground,localize(620,"Color of secondary editor cursors when multiple cursors are present.")),editorMultiCursorSecondaryBackground=registerColor("editorMultiCursor.secondary.background",editorCursorBackground,localize(621,"The background color of secondary editor cursors when multiple cursors are present. 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(622,"Color of whitespace characters in the editor.")),editorLineNumbers=registerColor("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:Color.white,hcLight:"#292929"},localize(623,"Color of editor line numbers.")),deprecatedEditorIndentGuides=registerColor("editorIndentGuide.background",editorWhitespaces,localize(624,"Color of the editor indentation guides."),!1,localize(625,"'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),deprecatedEditorActiveIndentGuides=registerColor("editorIndentGuide.activeBackground",editorWhitespaces,localize(626,"Color of the active editor indentation guides."),!1,localize(627,"'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),editorIndentGuide1=registerColor("editorIndentGuide.background1",deprecatedEditorIndentGuides,localize(628,"Color of the editor indentation guides (1).")),editorIndentGuide2=registerColor("editorIndentGuide.background2","#00000000",localize(629,"Color of the editor indentation guides (2).")),editorIndentGuide3=registerColor("editorIndentGuide.background3","#00000000",localize(630,"Color of the editor indentation guides (3).")),editorIndentGuide4=registerColor("editorIndentGuide.background4","#00000000",localize(631,"Color of the editor indentation guides (4).")),editorIndentGuide5=registerColor("editorIndentGuide.background5","#00000000",localize(632,"Color of the editor indentation guides (5).")),editorIndentGuide6=registerColor("editorIndentGuide.background6","#00000000",localize(633,"Color of the editor indentation guides (6).")),editorActiveIndentGuide1=registerColor("editorIndentGuide.activeBackground1",deprecatedEditorActiveIndentGuides,localize(634,"Color of the active editor indentation guides (1).")),editorActiveIndentGuide2=registerColor("editorIndentGuide.activeBackground2","#00000000",localize(635,"Color of the active editor indentation guides (2).")),editorActiveIndentGuide3=registerColor("editorIndentGuide.activeBackground3","#00000000",localize(636,"Color of the active editor indentation guides (3).")),editorActiveIndentGuide4=registerColor("editorIndentGuide.activeBackground4","#00000000",localize(637,"Color of the active editor indentation guides (4).")),editorActiveIndentGuide5=registerColor("editorIndentGuide.activeBackground5","#00000000",localize(638,"Color of the active editor indentation guides (5).")),editorActiveIndentGuide6=registerColor("editorIndentGuide.activeBackground6","#00000000",localize(639,"Color of the active editor indentation guides (6).")),deprecatedEditorActiveLineNumber=registerColor("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize(640,"Color of editor active line number"),!1,localize(641,"Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));registerColor("editorLineNumber.activeForeground",deprecatedEditorActiveLineNumber,localize(642,"Color of editor active line number"));const editorDimmedLineNumber=registerColor("editorLineNumber.dimmedForeground",null,localize(643,"Color of the final editor line when editor.renderFinalNewline is set to dimmed.")),editorRuler=registerColor("editorRuler.foreground",{dark:"#5A5A5A",light:Color.lightgrey,hcDark:Color.white,hcLight:"#292929"},localize(644,"Color of the editor rulers."));registerColor("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},localize(645,"Foreground color of editor CodeLens"));registerColor("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},localize(646,"Background color behind matching brackets"));registerColor("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:contrastBorder,hcLight:contrastBorder},localize(647,"Color for matching brackets boxes"));const editorOverviewRulerBorder=registerColor("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},localize(648,"Color of the overview ruler border.")),editorOverviewRulerBackground=registerColor("editorOverviewRuler.background",null,localize(649,"Background color of the editor overview ruler."));registerColor("editorGutter.background",editorBackground,localize(650,"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(651,"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(652,"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(653,"Border color of ghost text in the editor."));const ghostTextForeground=registerColor("editorGhostText.foreground",{dark:Color.fromHex("#ffffff56"),light:Color.fromHex("#0007"),hcDark:null,hcLight:null},localize(654,"Foreground color of the ghost text in the editor."));registerColor("editorGhostText.background",null,localize(655,"Background color of the ghost text in the editor."));const rulerRangeDefault=new Color(new RGBA$1(0,122,204,.6)),overviewRulerRangeHighlight=registerColor("editorOverviewRuler.rangeHighlightForeground",rulerRangeDefault,localize(656,"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$1(255,18,18,.7)),light:new Color(new RGBA$1(255,18,18,.7)),hcDark:new Color(new RGBA$1(255,50,50,1)),hcLight:"#B5200D"},localize(657,"Overview ruler marker color for errors.")),overviewRulerWarning=registerColor("editorOverviewRuler.warningForeground",{dark:editorWarningForeground,light:editorWarningForeground,hcDark:editorWarningBorder,hcLight:editorWarningBorder},localize(658,"Overview ruler marker color for warnings.")),overviewRulerInfo=registerColor("editorOverviewRuler.infoForeground",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:editorInfoBorder,hcLight:editorInfoBorder},localize(659,"Overview ruler marker color for infos.")),editorBracketHighlightingForeground1=registerColor("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},localize(660,"Foreground color of brackets (1). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground2=registerColor("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},localize(661,"Foreground color of brackets (2). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground3=registerColor("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},localize(662,"Foreground color of brackets (3). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground4=registerColor("editorBracketHighlight.foreground4","#00000000",localize(663,"Foreground color of brackets (4). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground5=registerColor("editorBracketHighlight.foreground5","#00000000",localize(664,"Foreground color of brackets (5). Requires enabling bracket pair colorization.")),editorBracketHighlightingForeground6=registerColor("editorBracketHighlight.foreground6","#00000000",localize(665,"Foreground color of brackets (6). Requires enabling bracket pair colorization.")),editorBracketHighlightingUnexpectedBracketForeground=registerColor("editorBracketHighlight.unexpectedBracket.foreground",{dark:new Color(new RGBA$1(255,18,18,.8)),light:new Color(new RGBA$1(255,18,18,.8)),hcDark:new Color(new RGBA$1(255,50,50,1)),hcLight:"#B5200D"},localize(666,"Foreground color of unexpected brackets.")),editorBracketPairGuideBackground1=registerColor("editorBracketPairGuide.background1","#00000000",localize(667,"Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground2=registerColor("editorBracketPairGuide.background2","#00000000",localize(668,"Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground3=registerColor("editorBracketPairGuide.background3","#00000000",localize(669,"Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground4=registerColor("editorBracketPairGuide.background4","#00000000",localize(670,"Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground5=registerColor("editorBracketPairGuide.background5","#00000000",localize(671,"Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),editorBracketPairGuideBackground6=registerColor("editorBracketPairGuide.background6","#00000000",localize(672,"Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground1=registerColor("editorBracketPairGuide.activeBackground1","#00000000",localize(673,"Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground2=registerColor("editorBracketPairGuide.activeBackground2","#00000000",localize(674,"Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground3=registerColor("editorBracketPairGuide.activeBackground3","#00000000",localize(675,"Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground4=registerColor("editorBracketPairGuide.activeBackground4","#00000000",localize(676,"Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground5=registerColor("editorBracketPairGuide.activeBackground5","#00000000",localize(677,"Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),editorBracketPairGuideActiveBackground6=registerColor("editorBracketPairGuide.activeBackground6","#00000000",localize(678,"Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));registerColor("editorUnicodeHighlight.border",editorWarningForeground,localize(679,"Border color used to highlight unicode characters."));registerColor("editorUnicodeHighlight.background",editorWarningBackground,localize(680,"Background color used to highlight unicode characters."));registerThemingParticipant((o,e)=>{const t=o.getColor(editorBackground),r=o.getColor(editorLineHighlight),s=r&&!r.isTransparent()?r:t;s&&e.addRule(".monaco-editor .inputarea.ime-input { background-color: ".concat(s,"; }"))});class AbstractLineHighlightOverlay extends DynamicViewOverlay{constructor(e){super(),this._context=e;const t=this._context.configuration.options,r=t.get(165);this._renderLineHighlight=t.get(110),this._renderLineHighlightOnlyWhenFocus=t.get(111),this._wordWrap=r.isViewportWrapping,this._contentLeft=r.contentLeft,this._contentWidth=r.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=new Set;for(const a of this._selections)t.add(a.positionLineNumber);const r=Array.from(t);r.sort((a,l)=>a-l),equals$2(this._cursorLineNumbers,r)||(this._cursorLineNumbers=r,e=!0);const s=this._selections.every(a=>a.isEmpty());return this._selectionIsEmpty!==s&&(this._selectionIsEmpty=s,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,r=t.get(165);return this._renderLineHighlight=t.get(110),this._renderLineHighlightOnlyWhenFocus=t.get(111),this._wordWrap=r.isViewportWrapping,this._contentLeft=r.contentLeft,this._contentWidth=r.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=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s=[];for(let l=t;l<=r;l++){const c=l-t;s[c]=""}if(this._wordWrap){const l=this._renderOne(e,!1);for(const c of this._cursorLineNumbers){const d=this._context.viewModel.coordinatesConverter,u=d.convertViewPositionToModelPosition(new Position$1(c,1)).lineNumber,g=d.convertModelPositionToViewPosition(new Position$1(u,1)).lineNumber,f=d.convertModelPositionToViewPosition(new Position$1(u,this._context.viewModel.model.getLineMaxColumn(u))).lineNumber,m=Math.max(g,t),_=Math.min(f,r);for(let v=m;v<=_;v++){const b=v-t;s[b]=l}}}const a=this._renderOne(e,!0);for(const l of this._cursorLineNumbers){if(l<t||l>r)continue;const c=l-t;s[c]=a}this._renderData=s}render(e,t){if(!this._renderData)return"";const r=t-e;return r>=this._renderData.length?"":this._renderData[r]}_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,t){const r="current-line"+(this._shouldRenderInMargin()?" current-line-both":"")+(t?" current-line-exact":"");return'<div class="'.concat(r,'" style="width:').concat(Math.max(e.scrollWidth,this._contentWidth),'px;"></div>')}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class CurrentLineMarginHighlightOverlay extends AbstractLineHighlightOverlay{_renderOne(e,t){const r="current-line"+(this._shouldRenderInMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"")+(this._shouldRenderInMargin()&&t?" current-line-exact-margin":"");return'<div class="'.concat(r,'" style="width:').concat(this._contentLeft,'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: ".concat(t,"; }")),e.addRule(".monaco-editor .margin-view-overlays .current-line-margin { background-color: ".concat(t,"; border: none; }"))),!t||t.isTransparent()||o.defines(editorLineHighlightBorder)){const r=o.getColor(editorLineHighlightBorder);r&&(e.addRule(".monaco-editor .view-overlays .current-line-exact { border: 2px solid ".concat(r,"; }")),e.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ".concat(r,"; }")),isHighContrast(o.type)&&(e.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),e.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}});class DecorationsOverlay extends DynamicViewOverlay{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._typicalHalfwidthCharacterWidth=t.get(59).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._typicalHalfwidthCharacterWidth=t.get(59).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 r=[],s=0;for(let d=0,u=t.length;d<u;d++){const g=t[d];g.options.className&&(r[s++]=g)}r=r.sort((d,u)=>{if(d.options.zIndex<u.options.zIndex)return-1;if(d.options.zIndex>u.options.zIndex)return 1;const g=d.options.className,f=u.options.className;return g<f?-1:g>f?1:Range$2.compareRangesUsingStarts(d.range,u.range)});const a=e.visibleRange.startLineNumber,l=e.visibleRange.endLineNumber,c=[];for(let d=a;d<=l;d++){const u=d-a;c[u]=""}this._renderWholeLineDecorations(e,r,c),this._renderNormalDecorations(e,r,c),this._renderResult=c}_renderWholeLineDecorations(e,t,r){const s=e.visibleRange.startLineNumber,a=e.visibleRange.endLineNumber;for(let l=0,c=t.length;l<c;l++){const d=t[l];if(!d.options.isWholeLine)continue;const u='<div class="cdr '+d.options.className+'" style="left:0;width:100%;"></div>',g=Math.max(d.range.startLineNumber,s),f=Math.min(d.range.endLineNumber,a);for(let m=g;m<=f;m++){const _=m-s;r[_]+=u}}}_renderNormalDecorations(e,t,r){var u;const s=e.visibleRange.startLineNumber;let a=null,l=!1,c=null,d=!1;for(let g=0,f=t.length;g<f;g++){const m=t[g];if(m.options.isWholeLine)continue;const _=m.options.className,v=!!m.options.showIfCollapsed;let b=m.range;if(v&&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===_&&l===v&&Range$2.areIntersectingOrTouching(c,b)){c=Range$2.plusRange(c,b);continue}a!==null&&this._renderNormalDecoration(e,c,a,d,l,s,r),a=_,l=v,c=b,d=(u=m.options.shouldFillLineOnLineBreak)!=null?u:!1}a!==null&&this._renderNormalDecoration(e,c,a,d,l,s,r)}_renderNormalDecoration(e,t,r,s,a,l,c){const d=e.linesVisibleRangesForRange(t,r==="findMatch");if(d)for(let u=0,g=d.length;u<g;u++){const f=d[u];if(f.outsideRenderedLine)continue;const m=f.lineNumber-l;if(a&&f.ranges.length===1){const _=f.ranges[0];if(_.width<this._typicalHalfwidthCharacterWidth){const v=Math.round(_.left+_.width/2),b=Math.max(0,Math.round(v-this._typicalHalfwidthCharacterWidth/2));f.ranges[0]=new HorizontalRange(b,this._typicalHalfwidthCharacterWidth)}}for(let _=0,v=f.ranges.length;_<v;_++){const b=s&&f.continuesOnNextLine&&v===1,C=f.ranges[_],y='<div class="cdr '+r+'" style="left:'+String(C.left)+"px;width:"+(b?"100%;":String(C.width)+"px;")+'"></div>';c[m]+=y}}}render(e,t){if(!this._renderResult)return"";const r=t-e;return r<0||r>=this._renderResult.length?"":this._renderResult[r]}}class EditorScrollbar extends ViewPart{constructor(e,t,r,s){super(e);const a=this._context.configuration.options,l=a.get(117),c=a.get(83),d=a.get(49),u=a.get(120),g=a.get(158),f={listenOnDomNode:r.domNode,className:"editor-scrollable "+getThemeTypeSelector(e.theme.type),useShadows:!1,lazyRender:!0,vertical:l.vertical,horizontal:l.horizontal,verticalHasArrows:l.verticalHasArrows,horizontalHasArrows:l.horizontalHasArrows,verticalScrollbarSize:l.verticalScrollbarSize,verticalSliderSize:l.verticalSliderSize,horizontalScrollbarSize:l.horizontalScrollbarSize,horizontalSliderSize:l.horizontalSliderSize,handleMouseWheel:l.handleMouseWheel,alwaysConsumeMouseWheel:l.alwaysConsumeMouseWheel,arrowSize:l.arrowSize,mouseWheelScrollSensitivity:c,fastScrollSensitivity:d,scrollPredominantAxis:u,scrollByPage:l.scrollByPage,inertialScroll:g};this.scrollbar=this._register(new SmoothScrollableElement(t.domNode,f,this._context.viewLayout.getScrollable())),PartFingerprints.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=createFastDomNode(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const m=(_,v,b)=>{const C={};{const y=_.scrollTop;y&&(C.scrollTop=this._context.viewLayout.getCurrentScrollTop()+y,_.scrollTop=0)}if(b){const y=_.scrollLeft;y&&(C.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+y,_.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(C,1)};this._register(addDisposableListener(r.domNode,"scroll",_=>m(r.domNode,!0,!0))),this._register(addDisposableListener(t.domNode,"scroll",_=>m(t.domNode,!0,!1))),this._register(addDisposableListener(s.domNode,"scroll",_=>m(s.domNode,!0,!1))),this._register(addDisposableListener(this.scrollbarDomNode.domNode,"scroll",_=>m(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(165);this.scrollbarDomNode.setLeft(t.contentLeft),e.get(81).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(117)||e.hasChanged(83)||e.hasChanged(49)){const t=this._context.configuration.options,r=t.get(117),s=t.get(83),a=t.get(49),l=t.get(120),c={vertical:r.vertical,horizontal:r.horizontal,verticalScrollbarSize:r.verticalScrollbarSize,horizontalScrollbarSize:r.horizontalScrollbarSize,scrollByPage:r.scrollByPage,handleMouseWheel:r.handleMouseWheel,mouseWheelScrollSensitivity:s,fastScrollSensitivity:a,scrollPredominantAxis:l};this.scrollbar.updateOptions(c)}return e.hasChanged(165)&&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 DecorationToRender{constructor(e,t,r,s,a){this.startLineNumber=e,this.endLineNumber=t,this.className=r,this.tooltip=s,this._decorationToRenderBrand=void 0,this.zIndex=a!=null?a:0}}class LineDecorationToRender{constructor(e,t,r){this.className=e,this.zIndex=t,this.tooltip=r}}class VisibleLineDecorationsToRender{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class DedupOverlay extends DynamicViewOverlay{_render(e,t,r){const s=[];for(let c=e;c<=t;c++){const d=c-e;s[d]=new VisibleLineDecorationsToRender}if(r.length===0)return s;r.sort((c,d)=>c.className===d.className?c.startLineNumber===d.startLineNumber?c.endLineNumber-d.endLineNumber:c.startLineNumber-d.startLineNumber:c.className<d.className?-1:1);let a=null,l=0;for(let c=0,d=r.length;c<d;c++){const u=r[c],g=u.className,f=u.zIndex;let m=Math.max(u.startLineNumber,e)-e;const _=Math.min(u.endLineNumber,t)-e;a===g?(m=Math.max(l+1,m),l=Math.max(l,_)):(a=g,l=_);for(let v=m;v<=l;v++)s[v].add(new LineDecorationToRender(g,f,u.tooltip))}return s}}class GlyphMarginWidgets extends ViewPart{constructor(e){super(e),this._widgets={},this._context=e;const t=this._context.configuration.options,r=t.get(165);this.domNode=createFastDomNode(document.createElement("div")),this.domNode.setClassName("glyph-margin-widgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this._lineHeight=t.get(75),this._glyphMargin=t.get(66),this._glyphMarginLeft=r.glyphMarginLeft,this._glyphMarginWidth=r.glyphMarginWidth,this._glyphMarginDecorationLaneCount=r.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,r=t.get(165);return this._lineHeight=t.get(75),this._glyphMargin=t.get(66),this._glyphMarginLeft=r.glyphMarginLeft,this._glyphMarginWidth=r.glyphMarginWidth,this._glyphMarginDecorationLaneCount=r.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 r=this._widgets[e.getId()];return r.preference.lane===t.lane&&r.preference.zIndex===t.zIndex&&Range$2.equalsRange(r.preference.range,t.range)?!1:(r.preference=t,this.setShouldRender(),!0)}removeWidget(e){const t=e.getId();if(this._widgets[t]){const s=this._widgets[t].domNode.domNode;delete this._widgets[t],s.remove(),this.setShouldRender()}}_collectDecorationBasedGlyphRenderRequest(e,t){var l,c,d;const r=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,a=e.getDecorationsInViewport();for(const u of a){const g=u.options.glyphMarginClassName;if(!g)continue;const f=Math.max(u.range.startLineNumber,r),m=Math.min(u.range.endLineNumber,s),_=(c=(l=u.options.glyphMargin)==null?void 0:l.position)!=null?c:GlyphMarginLane$1.Center,v=(d=u.options.zIndex)!=null?d:0;for(let b=f;b<=m;b++){const C=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(b,0)),y=this._context.viewModel.glyphLanes.getLanesAtLine(C.lineNumber).indexOf(_);t.push(new DecorationBasedGlyphRenderRequest(b,y,v,g))}}}_collectWidgetBasedGlyphRenderRequest(e,t){const r=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(const a of Object.values(this._widgets)){const l=a.preference.range,{startLineNumber:c,endLineNumber:d}=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(Range$2.lift(l));if(!c||!d||d<r||c>s)continue;const u=Math.max(c,r),g=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(u,0)),f=this._context.viewModel.glyphLanes.getLanesAtLine(g.lineNumber).indexOf(a.preference.lane);t.push(new WidgetBasedGlyphRenderRequest(u,f,a.preference.zIndex,a))}}_collectSortedGlyphRenderRequests(e){const t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((r,s)=>r.lineNumber===s.lineNumber?r.laneIndex===s.laneIndex?r.zIndex===s.zIndex?s.type===r.type?r.type===0&&s.type===0?r.className<s.className?-1:1:0:s.type-r.type:s.zIndex-r.zIndex:r.laneIndex-s.laneIndex:r.lineNumber-s.lineNumber),t}prepareRender(e){if(!this._glyphMargin){this._decorationGlyphsToRender=[];return}for(const s of Object.values(this._widgets))s.renderInfo=null;const t=new ArrayQueue(this._collectSortedGlyphRenderRequests(e)),r=[];for(;t.length>0;){const s=t.peek();if(!s)break;const a=t.takeWhile(c=>c.lineNumber===s.lineNumber&&c.laneIndex===s.laneIndex);if(!a||a.length===0)break;const l=a[0];if(l.type===0){const c=[];for(const d of a){if(d.zIndex!==l.zIndex||d.type!==l.type)break;(c.length===0||c[c.length-1]!==d.className)&&c.push(d.className)}r.push(l.accept(c.join(" ")))}else l.widget.renderInfo={lineNumber:l.lineNumber,laneIndex:l.laneIndex}}this._decorationGlyphsToRender=r}render(e){if(!this._glyphMargin){for(const r of Object.values(this._widgets))r.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){const r=this._managedDomNodes.pop();r==null||r.domNode.remove()}return}const t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const r of Object.values(this._widgets))if(!r.renderInfo)r.domNode.setDisplay("none");else{const s=e.viewportData.relativeVerticalOffset[r.renderInfo.lineNumber-e.viewportData.startLineNumber],a=this._glyphMarginLeft+r.renderInfo.laneIndex*this._lineHeight;r.domNode.setDisplay("block"),r.domNode.setTop(s),r.domNode.setLeft(a),r.domNode.setWidth(t),r.domNode.setHeight(this._lineHeight)}for(let r=0;r<this._decorationGlyphsToRender.length;r++){const s=this._decorationGlyphsToRender[r],a=s.lineNumber,l=e.viewportData.relativeVerticalOffset[a-e.viewportData.startLineNumber],c=this._glyphMarginLeft+s.laneIndex*this._lineHeight;let d;r<this._managedDomNodes.length?d=this._managedDomNodes[r]:(d=createFastDomNode(document.createElement("div")),this._managedDomNodes.push(d),this.domNode.appendChild(d));const u=this._context.viewLayout.getLineHeightForLineNumber(a);d.setClassName("cgmr codicon "+s.combinedClassName),d.setPosition("absolute"),d.setTop(l),d.setLeft(c),d.setWidth(t),d.setHeight(u)}for(;this._managedDomNodes.length>this._decorationGlyphsToRender.length;){const r=this._managedDomNodes.pop();r==null||r.domNode.remove()}}}class DecorationBasedGlyphRenderRequest{constructor(e,t,r,s){this.lineNumber=e,this.laneIndex=t,this.zIndex=r,this.className=s,this.type=0}accept(e){return new DecorationBasedGlyph(this.lineNumber,this.laneIndex,e)}}class WidgetBasedGlyphRenderRequest{constructor(e,t,r,s){this.lineNumber=e,this.laneIndex=t,this.zIndex=r,this.widget=s,this.type=1}}class DecorationBasedGlyph{constructor(e,t,r){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=r}}function findLast$1(o,e,t=o.length-1){const r=findLastIdx(o,e,t);if(r!==-1)return o[r]}function findLastIdx(o,e,t=o.length-1){for(let r=t;r>=0;r--){const s=o[r];if(e(s,r))return r}return-1}function findLastMonotonous(o,e){const t=findLastIdxMonotonous(o,e);return t===-1?void 0:o[t]}function findLastIdxMonotonous(o,e,t=0,r=o.length){let s=t,a=r;for(;s<a;){const l=Math.floor((s+a)/2);e(o[l])?s=l+1:a=l}return s-1}function findFirstMonotonous(o,e){const t=findFirstIdxMonotonousOrArrLen(o,e);return t===o.length?void 0:o[t]}function findFirstIdxMonotonousOrArrLen(o,e,t=0,r=o.length){let s=t,a=r;for(;s<a;){const l=Math.floor((s+a)/2);e(o[l])?a=l:s=l+1}return s}const _o=class _o{constructor(e){this._array=e,this._findLastMonotonousLastIdx=0}findLastMonotonous(e){if(_o.assertInvariants){if(this._prevFindLastPredicate){for(const r of this._array)if(this._prevFindLastPredicate(r)&&!e(r))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]}};_o.assertInvariants=!1;let MonotonousArray=_o;function findFirstMax(o,e){if(o.length===0)return;let t=o[0];for(let r=1;r<o.length;r++){const s=o[r];e(s,t)>0&&(t=s)}return t}function findLastMax(o,e){if(o.length===0)return;let t=o[0];for(let r=1;r<o.length;r++){const s=o[r];e(s,t)>=0&&(t=s)}return t}function findFirstMin(o,e){return findFirstMax(o,(t,r)=>-e(t,r))}function findMaxIdx(o,e){if(o.length===0)return-1;let t=0;for(let r=1;r<o.length;r++){const s=o[r];e(s,o[t])>0&&(t=r)}return t}function mapFindFirst(o,e){for(const t of o){const r=e(t);if(r!==void 0)return r}}class TextModelPart extends Disposable$1{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,r=0;const s=o.length;for(;r<s;){const a=o.charCodeAt(r);if(a===32)t++;else if(a===9)t=t-t%e+e;else break;r++}return r===s?-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,r,s,a,l){if(this.visibleColumn=e,this.column=t,this.className=r,this.horizontalLine=s,this.forWrappedLinesAfterColumn=a,this.forWrappedLinesBeforeOrAtColumn=l,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,r){this.assertNotDisposed();const s=this.textModel.getLineCount();if(e<1||e>s)throw new BugIndicatingError("Illegal value for lineNumber");const a=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,l=!!(a&&a.offSide);let c=-2,d=-1,u=-2,g=-1;const f=k=>{if(c!==-1&&(c===-2||c>k-1)){c=-1,d=-1;for(let D=k-2;D>=0;D--){const I=this._computeIndentLevel(D);if(I>=0){c=D,d=I;break}}}if(u===-2){u=-1,g=-1;for(let D=k;D<s;D++){const I=this._computeIndentLevel(D);if(I>=0){u=D,g=I;break}}}};let m=-2,_=-1,v=-2,b=-1;const C=k=>{if(m===-2){m=-1,_=-1;for(let D=k-2;D>=0;D--){const I=this._computeIndentLevel(D);if(I>=0){m=D,_=I;break}}}if(v!==-1&&(v===-2||v<k-1)){v=-1,b=-1;for(let D=k;D<s;D++){const I=this._computeIndentLevel(D);if(I>=0){v=D,b=I;break}}}};let y=0,S=!0,w=0,E=!0,x=0,L=0;for(let k=0;S||E;k++){const D=e-k,I=e+k;k>1&&(D<1||D<t)&&(S=!1),k>1&&(I>s||I>r)&&(E=!1),k>5e4&&(S=!1,E=!1);let T=-1;if(S&&D>=1){const R=this._computeIndentLevel(D-1);R>=0?(u=D-1,g=R,T=Math.ceil(R/this.textModel.getOptions().indentSize)):(f(D),T=this._getIndentLevelForWhitespaceLine(l,d,g))}let M=-1;if(E&&I<=s){const R=this._computeIndentLevel(I-1);R>=0?(m=I-1,_=R,M=Math.ceil(R/this.textModel.getOptions().indentSize)):(C(I),M=this._getIndentLevelForWhitespaceLine(l,_,b))}if(k===0){L=T;continue}if(k===1){if(I<=s&&M>=0&&L+1===M){S=!1,y=I,w=I,x=M;continue}if(D>=1&&T>=0&&T-1===L){E=!1,y=D,w=D,x=T;continue}if(y=e,w=e,x=L,x===0)return{startLineNumber:y,endLineNumber:w,indent:x}}S&&(T>=x?y=D:S=!1),E&&(M>=x?w=I:E=!1)}return{startLineNumber:y,endLineNumber:w,indent:x}}getLinesBracketGuides(e,t,r,s){var f;const a=[];for(let m=e;m<=t;m++)a.push([]);const l=!0,c=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new Range$2(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let d;if(r&&c.length>0){const m=(e<=r.lineNumber&&r.lineNumber<=t?c:this.textModel.bracketPairs.getBracketPairsInRange(Range$2.fromPositions(r)).toArray()).filter(_=>Range$2.strictContainsPosition(_.range,r));d=(f=findLast$1(m,_=>l))==null?void 0:f.range}const u=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,g=new BracketPairGuidesClassNames;for(const m of c){if(!m.closingBracketRange)continue;const _=d&&m.range.equalsRange(d);if(!_&&!s.includeInactive)continue;const v=g.getInlineClassName(m.nestingLevel,m.nestingLevelOfEqualBracketType,u)+(s.highlightActive&&_?" "+g.activeClassName:""),b=m.openingBracketRange.getStartPosition(),C=m.closingBracketRange.getStartPosition(),y=s.horizontalGuides===HorizontalGuidesState.Enabled||s.horizontalGuides===HorizontalGuidesState.EnabledForActive&&_;if(m.range.startLineNumber===m.range.endLineNumber){y&&a[m.range.startLineNumber-e].push(new IndentGuide(-1,m.openingBracketRange.getEndPosition().column,v,new IndentGuideHorizontalLine(!1,C.column),-1,-1));continue}const S=this.getVisibleColumnFromPosition(C),w=this.getVisibleColumnFromPosition(m.openingBracketRange.getStartPosition()),E=Math.min(w,S,m.minVisibleColumnIndentation+1);let x=!1;firstNonWhitespaceIndex(this.textModel.getLineContent(m.closingBracketRange.startLineNumber))<m.closingBracketRange.startColumn-1&&(x=!0);const D=Math.max(b.lineNumber,e),I=Math.min(C.lineNumber,t),T=x?1:0;for(let M=D;M<I+T;M++)a[M-e].push(new IndentGuide(E,-1,v,null,M===b.lineNumber?b.column:-1,M===C.lineNumber?C.column:-1));y&&(b.lineNumber>=e&&w>E&&a[b.lineNumber-e].push(new IndentGuide(E,-1,v,new IndentGuideHorizontalLine(!1,b.column),-1,-1)),C.lineNumber<=t&&S>E&&a[C.lineNumber-e].push(new IndentGuide(E,-1,v,new IndentGuideHorizontalLine(!x,C.column),-1,-1)))}for(const m of a)m.sort((_,v)=>_.visibleColumn-v.visibleColumn);return a}getVisibleColumnFromPosition(e){return CursorColumns.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const r=this.textModel.getLineCount();if(e<1||e>r)throw new Error("Illegal value for startLineNumber");if(t<1||t>r)throw new Error("Illegal value for endLineNumber");const s=this.textModel.getOptions(),a=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,l=!!(a&&a.offSide),c=new Array(t-e+1);let d=-2,u=-1,g=-2,f=-1;for(let m=e;m<=t;m++){const _=m-e,v=this._computeIndentLevel(m-1);if(v>=0){d=m-1,u=v,c[_]=Math.ceil(v/s.indentSize);continue}if(d===-2){d=-1,u=-1;for(let b=m-2;b>=0;b--){const C=this._computeIndentLevel(b);if(C>=0){d=b,u=C;break}}}if(g!==-1&&(g===-2||g<m-1)){g=-1,f=-1;for(let b=m;b<r;b++){const C=this._computeIndentLevel(b);if(C>=0){g=b,f=C;break}}}c[_]=this._getIndentLevelForWhitespaceLine(l,u,f)}return c}_getIndentLevelForWhitespaceLine(e,t,r){const s=this.textModel.getOptions();return t===-1||r===-1?0:t<r?1+Math.floor(t/s.indentSize):t===r||e?Math.ceil(r/s.indentSize):1+Math.floor(r/s.indentSize)}}class BracketPairGuidesClassNames{constructor(){this.activeClassName="indent-active"}getInlineClassName(e,t,r){return this.getInlineClassNameOfLevel(r?t:e)}getInlineClassNameOfLevel(e){return"bracket-indent-guide lvl-".concat(e%30)}}class IndentGuidesOverlay extends DynamicViewOverlay{constructor(e){super(),this._context=e,this._primaryPosition=null;const t=this._context.configuration.options,r=t.get(166),s=t.get(59);this._spaceWidth=s.spaceWidth,this._maxIndentLeft=r.wrappingColumn===-1?-1:r.wrappingColumn*s.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(22),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,r=t.get(166),s=t.get(59);return this._spaceWidth=s.spaceWidth,this._maxIndentLeft=r.wrappingColumn===-1?-1:r.wrappingColumn*s.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(22),!0}onCursorStateChanged(e){var s;const r=e.selections[0].getPosition();return(s=this._primaryPosition)!=null&&s.equals(r)?!1:(this._primaryPosition=r,!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 d,u,g,f;if(!this._bracketPairGuideOptions.indentation&&this._bracketPairGuideOptions.bracketPairs===!1){this._renderResult=null;return}const t=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s=e.scrollWidth,a=this._primaryPosition,l=this.getGuidesByLine(t,Math.min(r+1,this._context.viewModel.getLineCount()),a),c=[];for(let m=t;m<=r;m++){const _=m-t,v=l[_];let b="";const C=(u=(d=e.visibleRangeForPosition(new Position$1(m,1)))==null?void 0:d.left)!=null?u:0;for(const y of v){const S=y.column===-1?C+(y.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new Position$1(m,y.column)).left;if(S>s||this._maxIndentLeft>0&&S>this._maxIndentLeft)break;const w=y.horizontalLine?y.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",E=y.horizontalLine?((f=(g=e.visibleRangeForPosition(new Position$1(m,y.horizontalLine.endColumn)))==null?void 0:g.left)!=null?f:S+this._spaceWidth)-S:this._spaceWidth;b+='<div class="core-guide '.concat(y.className," ").concat(w,'" style="left:').concat(S,"px;width:").concat(E,'px"></div>')}c[_]=b}this._renderResult=c}getGuidesByLine(e,t,r){const s=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,r,{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,a=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let l=0,c=0,d=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&r){const f=this._context.viewModel.getActiveIndentGuide(r.lineNumber,e,t);l=f.startLineNumber,c=f.endLineNumber,d=f.indent}const{indentSize:u}=this._context.viewModel.model.getOptions(),g=[];for(let f=e;f<=t;f++){const m=new Array;g.push(m);const _=s?s[f-e]:[],v=new ArrayQueue(_),b=a?a[f-e]:0;for(let C=1;C<=b;C++){const y=(C-1)*u+1,S=(this._bracketPairGuideOptions.highlightActiveIndentation==="always"||_.length===0)&&l<=f&&f<=c&&C===d;m.push(...v.takeWhile(E=>E.visibleColumn<y)||[]);const w=v.peek();(!w||w.visibleColumn!==y||w.horizontalLine)&&m.push(new IndentGuide(y,-1,"core-guide-indent lvl-".concat((C-1)%30)+(S?" indent-active":""),null,-1,-1))}m.push(...v.takeWhile(C=>!0)||[])}return g}render(e,t){if(!this._renderResult)return"";const r=t-e;return r<0||r>=this._renderResult.length?"":this._renderResult[r]}}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}],r=new BracketPairGuidesClassNames,s=[{indentColor:editorIndentGuide1,indentColorActive:editorActiveIndentGuide1},{indentColor:editorIndentGuide2,indentColorActive:editorActiveIndentGuide2},{indentColor:editorIndentGuide3,indentColorActive:editorActiveIndentGuide3},{indentColor:editorIndentGuide4,indentColorActive:editorActiveIndentGuide4},{indentColor:editorIndentGuide5,indentColorActive:editorActiveIndentGuide5},{indentColor:editorIndentGuide6,indentColorActive:editorActiveIndentGuide6}],a=t.map(c=>{var _,v;const d=o.getColor(c.bracketColor),u=o.getColor(c.guideColor),g=o.getColor(c.guideColorActive),f=transparentToUndefined((_=transparentToUndefined(u))!=null?_:d==null?void 0:d.transparent(.3)),m=transparentToUndefined((v=transparentToUndefined(g))!=null?v:d);if(!(!f||!m))return{guideColor:f,guideColorActive:m}}).filter(isDefined),l=s.map(c=>{const d=o.getColor(c.indentColor),u=o.getColor(c.indentColorActive),g=transparentToUndefined(d),f=transparentToUndefined(u);if(!(!g||!f))return{indentColor:g,indentColorActive:f}}).filter(isDefined);if(a.length>0){for(let c=0;c<30;c++){const d=a[c%a.length];e.addRule(".monaco-editor .".concat(r.getInlineClassNameOfLevel(c).replace(/ /g,".")," { --guide-color: ").concat(d.guideColor,"; --guide-color-active: ").concat(d.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.".concat(r.activeClassName," { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }")),e.addRule(".monaco-editor .horizontal-top.".concat(r.activeClassName," { border-top: 1px solid var(--guide-color-active); }")),e.addRule(".monaco-editor .horizontal-bottom.".concat(r.activeClassName," { border-bottom: 1px solid var(--guide-color-active); }"))}if(l.length>0){for(let c=0;c<30;c++){const d=l[c%l.length];e.addRule(".monaco-editor .lines-content .core-guide-indent.lvl-".concat(c," { --indent-color: ").concat(d.indentColor,"; --indent-color-active: ").concat(d.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; }")}});const vo=class vo extends DynamicViewOverlay{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new Position$1(1,1),this._renderResult=null,this._activeModelLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(75);const t=e.get(76);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(109);const r=e.get(165);this._lineNumbersLeft=r.lineNumbersLeft,this._lineNumbersWidth=r.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 r=!1;return this._activeModelLineNumber!==this._lastCursorModelPosition.lineNumber&&(this._activeModelLineNumber=this._lastCursorModelPosition.lineNumber,r=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(r=!0),r}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}onDecorationsChanged(e){return e.affectsLineNumber}_getLineRenderLineNumber(e){const t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(e,1));if(t.column!==1)return"";const r=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(r);if(this._renderLineNumbers===2){const s=Math.abs(this._lastCursorModelPosition.lineNumber-r);return s===0?'<span class="relative-current-line-number">'+r+"</span>":String(s)}if(this._renderLineNumbers===3){if(this._lastCursorModelPosition.lineNumber===r||r%10===0)return String(r);const s=this._context.viewModel.getLineCount();return r===s?String(r):""}return String(r)}prepareRender(e){if(this._renderLineNumbers===0){this._renderResult=null;return}const t=isLinux?this._lineHeight%2===0?" lh-even":" lh-odd":"",r=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,a=this._context.viewModel.getDecorationsInViewport(e.visibleRange).filter(u=>!!u.options.lineNumberClassName);a.sort((u,g)=>Range$2.compareRangesUsingEnds(u.range,g.range));let l=0;const c=this._context.viewModel.getLineCount(),d=[];for(let u=r;u<=s;u++){const g=u-r,f=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(u,1)).lineNumber;let m=this._getLineRenderLineNumber(u),_="";for(;l<a.length&&a[l].range.endLineNumber<u;)l++;for(let v=l;v<a.length;v++){const{range:b,options:C}=a[v];b.startLineNumber<=u&&(_+=" "+C.lineNumberClassName)}if(!m&&!_){d[g]="";continue}u===c&&this._context.viewModel.getLineLength(u)===0&&(this._renderFinalNewline==="off"&&(m=""),this._renderFinalNewline==="dimmed"&&(_+=" dimmed-line-number")),f===this._activeModelLineNumber&&(_+=" active-line-number"),d[g]='<div class="'.concat(vo.CLASS_NAME).concat(t).concat(_,'" style="left:').concat(this._lineNumbersLeft,"px;width:").concat(this._lineNumbersWidth,'px;">').concat(m,"</div>")}this._renderResult=d}render(e,t){if(!this._renderResult)return"";const r=t-e;return r<0||r>=this._renderResult.length?"":this._renderResult[r]}};vo.CLASS_NAME="line-numbers";let LineNumbersOverlay=vo;registerThemingParticipant((o,e)=>{const t=o.getColor(editorLineNumbers),r=o.getColor(editorDimmedLineNumber);r?e.addRule(".monaco-editor .line-numbers.dimmed-line-number { color: ".concat(r,"; }")):t&&e.addRule(".monaco-editor .line-numbers.dimmed-line-number { color: ".concat(t.transparent(.4),"; }"))});const MOUSE_CURSOR_TEXT_CSS_CLASS_NAME="monaco-mouse-cursor-text";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 ViewLineOptions{constructor(e,t){this.themeType=t;const r=e.options,s=r.get(59);this.renderWhitespace=r.get(113),this.experimentalWhitespaceRendering=r.get(47),this.renderControlCharacters=r.get(108),this.spaceWidth=s.spaceWidth,this.middotWidth=s.middotWidth,this.wsmiddotWidth=s.wsmiddotWidth,this.useMonospaceOptimizations=s.isMonospace&&!r.get(40),this.canUseHalfwidthRightwardsArrow=s.canUseHalfwidthRightwardsArrow,this.lineHeight=r.get(75),this.stopRenderingLineAfter=r.get(133),this.fontLigatures=r.get(60),this.verticalScrollbarSize=r.get(117).verticalScrollbarSize,this.useGpu=r.get(46)==="on"}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.experimentalWhitespaceRendering===e.experimentalWhitespaceRendering&&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&&this.verticalScrollbarSize===e.verticalScrollbarSize&&this.useGpu===e.useGpu}}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,r,s,a,l,c){this.minimalReveal=e,this.lineNumber=t,this.startColumn=r,this.endColumn=s,this.startScrollTop=a,this.stopScrollTop=l,this.scrollType=c,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class HorizontalRevealSelectionsRequest{constructor(e,t,r,s,a){this.minimalReveal=e,this.selections=t,this.startScrollTop=r,this.stopScrollTop=s,this.scrollType=a,this.type="selections";let l=t[0].startLineNumber,c=t[0].endLineNumber;for(let d=1,u=t.length;d<u;d++){const g=t[d];l=Math.min(l,g.startLineNumber),c=Math.max(c,g.endLineNumber)}this.minLineNumber=l,this.maxLineNumber=c}}const bo=class bo extends ViewPart{constructor(e,t,r){super(e);const s=this._context.configuration,a=this._context.configuration.options,l=a.get(59),c=a.get(166);this._lineHeight=a.get(75),this._typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this._isViewportWrapping=c.isViewportWrapping,this._revealHorizontalRightPadding=a.get(114),this._cursorSurroundingLines=a.get(35),this._cursorSurroundingLinesStyle=a.get(36),this._canUseLayerHinting=!a.get(39),this._viewLineOptions=new ViewLineOptions(s,this._context.theme.type),this._linesContent=r,this._textRangeRestingSpot=document.createElement("div"),this._visibleLines=new VisibleLinesCollection(this._context,{createLine:()=>new ViewLine(t,this._viewLineOptions)}),this.domNode=this._visibleLines.domNode,PartFingerprints.write(this.domNode,8),this.domNode.setClassName("view-lines ".concat(MOUSE_CURSOR_TEXT_CSS_CLASS_NAME)),applyFontInfo(this.domNode,l),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=a.get(131).enabled,this._maxNumberStickyLines=a.get(131).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(166)&&(this._maxLineWidth=0);const t=this._context.configuration.options,r=t.get(59),s=t.get(166);return this._lineHeight=t.get(75),this._typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this._isViewportWrapping=s.isViewportWrapping,this._revealHorizontalRightPadding=t.get(114),this._cursorSurroundingLines=t.get(35),this._cursorSurroundingLinesStyle=t.get(36),this._canUseLayerHinting=!t.get(39),this._stickyScrollEnabled=t.get(131).enabled,this._maxNumberStickyLines=t.get(131).maxLineCount,applyFontInfo(this.domNode,r),this._onOptionsMaybeChanged(),e.hasChanged(165)&&(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 r=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let a=r;a<=s;a++)this._visibleLines.getVisibleLine(a).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();let s=!1;for(let a=t;a<=r;a++)s=this._visibleLines.getVisibleLine(a).onSelectionChanged()||s;return s}onDecorationsChanged(e){{const t=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();for(let s=t;s<=r;s++)this._visibleLines.getVisibleLine(s).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e,this._viewLineOptions.useGpu);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 r=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?r={scrollTop:r.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new HorizontalRevealRangeRequest(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),r.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new HorizontalRevealSelectionsRequest(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),r.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const a=Math.abs(this._context.viewLayout.getCurrentScrollTop()-r.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(r,a),!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),r=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>r)&&(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 r=this._getViewLineDomNode(e);if(r===null)return null;const s=this._getLineNumberFor(r);if(s===-1||s<1||s>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(s)===1)return new Position$1(s,1);const a=this._visibleLines.getStartLineNumber(),l=this._visibleLines.getEndLineNumber();if(s<a||s>l)return null;let c=this._visibleLines.getVisibleLine(s).getColumnOfNodeOffset(e,t);const d=this._context.viewModel.getLineMinColumn(s);return c<d&&(c=d),new Position$1(s,c)}_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(),r=this._visibleLines.getEndLineNumber();for(let s=t;s<=r;s++){const a=this._visibleLines.getVisibleLine(s);if(e===a.getDomNode())return s}return-1}getLineWidth(e){const t=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();if(e<t||e>r)return-1;const s=new DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),a=this._visibleLines.getVisibleLine(e).getWidth(s);return this._updateLineWidthsSlowIfDomDidLayout(s),a}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const r=e.endLineNumber,s=Range$2.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!s)return null;const a=[];let l=0;const c=new DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot);let d=0;t&&(d=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(s.startLineNumber,1)).lineNumber);const u=this._visibleLines.getStartLineNumber(),g=this._visibleLines.getEndLineNumber();for(let f=s.startLineNumber;f<=s.endLineNumber;f++){if(f<u||f>g)continue;const m=f===s.startLineNumber?s.startColumn:1,_=f!==r,v=_?this._context.viewModel.getLineMaxColumn(f):s.endColumn,C=this._visibleLines.getVisibleLine(f).getVisibleRangesForRange(f,m,v,c);if(C){if(t&&f<r){const y=d;if(d=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(f+1,1)).lineNumber,y!==d){const S=C.ranges[C.ranges.length-1];S.width+=this._typicalHalfwidthCharacterWidth,this._context.viewModel.getTextDirection(y)===TextDirection$1.RTL&&(S.left-=this._typicalHalfwidthCharacterWidth)}}a[l++]=new LineVisibleRanges(C.outsideRenderedLine,f,HorizontalRange.from(C.ranges),_)}}return this._updateLineWidthsSlowIfDomDidLayout(c),l===0?null:a}_visibleRangesForLineRange(e,t,r){if(this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber())return null;const s=new DomReadingContext(this.domNode.domNode,this._textRangeRestingSpot),a=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,r,s);return this._updateLineWidthsSlowIfDomDidLayout(s),a}_lineIsRenderedRTL(e){return e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber()?!1:this._visibleLines.getVisibleLine(e).isRenderedRTL()}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(),r=this._visibleLines.getEndLineNumber();let s=1,a=!0;for(let l=t;l<=r;l++){const c=this._visibleLines.getVisibleLine(l);if(e&&!c.getWidthIsFast()){a=!1;continue}s=Math.max(s,c.getWidth(null))}return a&&t===1&&r===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(s),a}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const r=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let a=r;a<=s;a++){const l=this._visibleLines.getVisibleLine(a);if(l.needsMonospaceFontCheck()){const c=l.getWidth(null);c>t&&(t=c,e=a)}}if(e!==-1&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let a=r;a<=s;a++)this._visibleLines.getVisibleLine(a).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 r=this._horizontalRevealRequest;if(e.startLineNumber<=r.minLineNumber&&r.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const s=this._computeScrollLeftToReveal(r);s&&(!this._isViewportWrapping&&!s.hasRTL&&this._ensureMaxLineWidth(s.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:s.scrollLeft},r.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),isLinux&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const r=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let a=r;a<=s;a++)if(this._visibleLines.getVisibleLine(a).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,r,s,a,l){const c=e.top,d=e.height,u=c+d;let g,f,m;if(a&&a.length>0){let y=a[0].startLineNumber,S=a[0].endLineNumber;for(let w=1,E=a.length;w<E;w++){const x=a[w];y=Math.min(y,x.startLineNumber),S=Math.max(S,x.endLineNumber)}g=!1,f=this._context.viewLayout.getVerticalOffsetForLineNumber(y),m=this._context.viewLayout.getVerticalOffsetForLineNumber(S)+this._lineHeight}else if(s)g=!0,f=this._context.viewLayout.getVerticalOffsetForLineNumber(s.startLineNumber),m=this._context.viewLayout.getVerticalOffsetForLineNumber(s.endLineNumber)+this._lineHeight;else return-1;const _=(t==="mouse"||r)&&this._cursorSurroundingLinesStyle==="default";let v=0,b=0;if(_)r||(v=this._lineHeight);else{const y=d/this._lineHeight,S=Math.max(this._cursorSurroundingLines,this._stickyScrollEnabled?this._maxNumberStickyLines:0),w=Math.min(y/2,S);v=w*this._lineHeight,b=Math.max(0,w-1)*this._lineHeight}r||(l===0||l===4)&&(b+=this._lineHeight),f-=v,m+=b;let C;if(m-f>d){if(!g)return-1;C=f}else if(l===5||l===6)if(l===6&&c<=f&&m<=u)C=c;else{const y=Math.max(5*this._lineHeight,d*.2),S=f-y,w=m-d;C=Math.max(w,S)}else if(l===1||l===2)if(l===2&&c<=f&&m<=u)C=c;else{const y=(f+m)/2;C=Math.max(0,y-d/2)}else C=this._computeMinimumScrolling(c,u,f,m,l===3,l===4);return C}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),r=this._context.configuration.options.get(165),s=t.left,a=s+t.width-r.verticalScrollbarWidth;let l=1073741824,c=0,d=!1;if(e.type==="range"){d=this._lineIsRenderedRTL(e.lineNumber);const g=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!g)return null;for(const f of g.ranges)l=Math.min(l,Math.round(f.left)),c=Math.max(c,Math.round(f.left+f.width))}else for(const g of e.selections){if(g.startLineNumber!==g.endLineNumber)return null;const f=this._visibleRangesForLineRange(g.startLineNumber,g.startColumn,g.endColumn);if(d||(d=this._lineIsRenderedRTL(g.startLineNumber)),!f)return null;for(const m of f.ranges)l=Math.min(l,Math.round(m.left)),c=Math.max(c,Math.round(m.left+m.width))}return e.minimalReveal||(l=Math.max(0,l-bo.HORIZONTAL_EXTRA_PX),c+=this._revealHorizontalRightPadding),e.type==="selections"&&c-l>t.width?null:{scrollLeft:this._computeMinimumScrolling(s,a,l,c),maxHorizontalOffset:c,hasRTL:d}}_computeMinimumScrolling(e,t,r,s,a,l){e=e|0,t=t|0,r=r|0,s=s|0,a=!!a,l=!!l;const c=t-e;if(s-r<c){if(a)return r;if(l)return Math.max(0,s-c);if(r<e)return r;if(s>t)return Math.max(0,s-c)}else return r;return e}};bo.HORIZONTAL_EXTRA_PX=30;let ViewLines=bo;class LinesDecorationsOverlay extends DedupOverlay{constructor(e){super(),this._context=e;const r=this._context.configuration.options.get(165);this._decorationsLeft=r.decorationsLeft,this._decorationsWidth=r.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const r=this._context.configuration.options.get(165);return this._decorationsLeft=r.decorationsLeft,this._decorationsWidth=r.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){var a,l;const t=e.getDecorationsInViewport(),r=[];let s=0;for(let c=0,d=t.length;c<d;c++){const u=t[c],g=u.options.linesDecorationsClassName,f=u.options.zIndex;g&&(r[s++]=new DecorationToRender(u.range.startLineNumber,u.range.endLineNumber,g,(a=u.options.linesDecorationsTooltip)!=null?a:null,f));const m=u.options.firstLineDecorationClassName;m&&(r[s++]=new DecorationToRender(u.range.startLineNumber,u.range.startLineNumber,m,(l=u.options.linesDecorationsTooltip)!=null?l:null,f))}return r}prepareRender(e){const t=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s=this._render(t,r,this._getDecorations(e)),a=this._decorationsLeft.toString(),l=this._decorationsWidth.toString(),c='" style="left:'+a+"px;width:"+l+'px;"></div>',d=[];for(let u=t;u<=r;u++){const g=u-t,f=s[g].getDecorations();let m="";for(const _ of f){let v='<div class="cldr '+_.className;_.tooltip!==null&&(v+='" title="'+_.tooltip),v+=c,m+=v}d[g]=m}this._renderResult=d}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}const ir=class ir extends ViewPart{constructor(e){super(e);const t=this._context.configuration.options,r=t.get(165);this._canUseLayerHinting=!t.get(39),this._contentLeft=r.contentLeft,this._glyphMarginLeft=r.glyphMarginLeft,this._glyphMarginWidth=r.glyphMarginWidth,this._domNode=createFastDomNode(document.createElement("div")),this._domNode.setClassName(ir.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(ir.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options,r=t.get(165);return this._canUseLayerHinting=!t.get(39),this._contentLeft=r.contentLeft,this._glyphMarginLeft=r.glyphMarginLeft,this._glyphMarginWidth=r.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 r=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(r),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(r)}};ir.CLASS_NAME="glyph-margin",ir.OUTER_CLASS_NAME="margin";let Margin=ir;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(),r=[];let s=0;for(let a=0,l=t.length;a<l;a++){const c=t[a],d=c.options.marginClassName,u=c.options.zIndex;d&&(r[s++]=new DecorationToRender(c.range.startLineNumber,c.range.endLineNumber,d,null,u))}return r}prepareRender(e){const t=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s=this._render(t,r,this._getDecorations(e)),a=[];for(let l=t;l<=r;l++){const c=l-t,d=s[c].getDecorations();let u="";for(const g of d)u+='<div class="cmdr '+g.className+'" style=""></div>';a[c]=u}this._renderResult=a}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}const oi=class oi{constructor(e,t,r,s){this._rgba8Brand=void 0,this.r=oi._clamp(e),this.g=oi._clamp(t),this.b=oi._clamp(r),this.a=oi._clamp(s)}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}};oi.Empty=new oi(0,0,0,0);let RGBA8=oi,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 s;(s=this._factories.get(e))==null||s.dispose();const r=new TokenizationSupportFactoryData(this,e,t);return this._factories.set(e,r),toDisposable(()=>{const a=this._factories.get(e);!a||a!==r||(this._factories.delete(e),a.dispose())})}async getOrCreate(e){const t=this.get(e);if(t)return t;const r=this._factories.get(e);return!r||r.isResolved?null:(await r.resolve(),this.get(e))}isResolved(e){if(this.get(e))return!0;const r=this._factories.get(e);return!!(!r||r.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$1{get isResolved(){return this._isResolved}constructor(e,t,r){super(),this._registry=e,this._languageId=t,this._factory=r,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const e=await this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}}let Token$2=class{constructor(e,t,r){this.offset=e,this.type=t,this.language=r,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 HoverVerbosityAction$1;(function(o){o[o.Increase=0]="Increase",o[o.Decrease=1]="Decrease"})(HoverVerbosityAction$1||(HoverVerbosityAction$1={}));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(28,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),e.set(27,Codicon.tools);function t(l){let c=e.get(l);return c||(console.info("No codicon found for CompletionItemKind "+l),c=Codicon.symbolProperty),c}o.toIcon=t;function r(l){switch(l){case 0:return localize(728,"Method");case 1:return localize(729,"Function");case 2:return localize(730,"Constructor");case 3:return localize(731,"Field");case 4:return localize(732,"Variable");case 5:return localize(733,"Class");case 6:return localize(734,"Struct");case 7:return localize(735,"Interface");case 8:return localize(736,"Module");case 9:return localize(737,"Property");case 10:return localize(738,"Event");case 11:return localize(739,"Operator");case 12:return localize(740,"Unit");case 13:return localize(741,"Value");case 14:return localize(742,"Constant");case 15:return localize(743,"Enum");case 16:return localize(744,"Enum Member");case 17:return localize(745,"Keyword");case 18:return localize(746,"Text");case 19:return localize(747,"Color");case 20:return localize(748,"File");case 21:return localize(749,"Reference");case 22:return localize(750,"Custom Color");case 23:return localize(751,"Folder");case 24:return localize(752,"Type Parameter");case 25:return localize(753,"User");case 26:return localize(754,"Issue");case 27:return localize(755,"Tool");case 28:return localize(756,"Snippet");default:return""}}o.toLabel=r;const s=new Map;s.set("method",0),s.set("function",1),s.set("constructor",2),s.set("field",3),s.set("variable",4),s.set("class",5),s.set("struct",6),s.set("interface",7),s.set("module",8),s.set("property",9),s.set("event",10),s.set("operator",11),s.set("unit",12),s.set("value",13),s.set("constant",14),s.set("enum",15),s.set("enum-member",16),s.set("enumMember",16),s.set("keyword",17),s.set("snippet",28),s.set("text",18),s.set("color",19),s.set("file",20),s.set("reference",21),s.set("customcolor",22),s.set("folder",23),s.set("type-parameter",24),s.set("typeParameter",24),s.set("account",25),s.set("issue",26),s.set("tool",27);function a(l,c){let d=s.get(l);return typeof d>"u"&&!c&&(d=9),d}o.fromString=a})(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,r,s){this.range=e,this.text=t,this.completionKind=r,this.isSnippetText=s}equals(e){return Range$2.lift(this.range).equalsRange(e.range)&&this.text===e.text&&this.completionKind===e.completionKind&&this.isSnippetText===e.isSnippetText}}var InlineCompletionHintStyle$1;(function(o){o[o.Code=1]="Code",o[o.Label=2]="Label"})(InlineCompletionHintStyle$1||(InlineCompletionHintStyle$1={}));class ProviderId{static fromExtensionId(e){return new ProviderId(e,void 0,void 0)}constructor(e,t,r){this.extensionId=e,this.extensionVersion=t,this.providerId=r}toString(){let e="";return this.extensionId&&(e+=this.extensionId),this.extensionVersion&&(e+="@".concat(this.extensionVersion)),this.providerId&&(e+=":".concat(this.providerId)),e.length===0&&(e="unknown"),e}toStringWithoutVersion(){let e="";return this.extensionId&&(e+=this.extensionId),this.providerId&&(e+=":".concat(this.providerId)),e}}var InlineCompletionEndOfLifeReasonKind$1;(function(o){o[o.Accepted=0]="Accepted",o[o.Rejected=1]="Rejected",o[o.Ignored=2]="Ignored"})(InlineCompletionEndOfLifeReasonKind$1||(InlineCompletionEndOfLifeReasonKind$1={}));var DocumentPasteTriggerKind;(function(o){o[o.Automatic=0]="Automatic",o[o.PasteAs=1]="PasteAs"})(DocumentPasteTriggerKind||(DocumentPasteTriggerKind={}));var SignatureHelpTriggerKind$2;(function(o){o[o.Invoke=1]="Invoke",o[o.TriggerCharacter=2]="TriggerCharacter",o[o.ContentChange=3]="ContentChange"})(SignatureHelpTriggerKind$2||(SignatureHelpTriggerKind$2={}));var DocumentHighlightKind$2;(function(o){o[o.Text=0]="Text",o[o.Read=1]="Read",o[o.Write=2]="Write"})(DocumentHighlightKind$2||(DocumentHighlightKind$2={}));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(757,"array"),16:localize(758,"boolean"),4:localize(759,"class"),13:localize(760,"constant"),8:localize(761,"constructor"),9:localize(762,"enumeration"),21:localize(763,"enumeration member"),23:localize(764,"event"),7:localize(765,"field"),0:localize(766,"file"),11:localize(767,"function"),10:localize(768,"interface"),19:localize(769,"key"),5:localize(770,"method"),1:localize(771,"module"),2:localize(772,"namespace"),20:localize(773,"null"),15:localize(774,"number"),18:localize(775,"object"),24:localize(776,"operator"),3:localize(777,"package"),6:localize(778,"property"),14:localize(779,"string"),22:localize(780,"struct"),25:localize(781,"type parameter"),12:localize(782,"variable")};function getAriaLabelForSymbol(o,e){return localize(783,"{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(a){let l=e.get(a);return l||(console.info("No codicon found for SymbolKind "+a),l=Codicon.symbolProperty),l}o.toIcon=t;const r=new Map;r.set(0,20),r.set(1,8),r.set(2,8),r.set(3,8),r.set(4,5),r.set(5,0),r.set(6,9),r.set(7,3),r.set(8,2),r.set(9,15),r.set(10,7),r.set(11,1),r.set(12,4),r.set(13,14),r.set(14,18),r.set(15,13),r.set(16,13),r.set(17,13),r.set(18,13),r.set(19,17),r.set(20,13),r.set(21,16),r.set(22,6),r.set(23,10),r.set(24,11),r.set(25,24);function s(a){let l=r.get(a);return l===void 0&&(console.info("No completion kind found for SymbolKind "+a),l=20),l}o.toCompletionKind=s})(SymbolKinds||(SymbolKinds={}));var Je;let FoldingRangeKind$1=(Je=class{static fromValue(e){switch(e){case"comment":return Je.Comment;case"imports":return Je.Imports;case"region":return Je.Region}return new Je(e)}constructor(e){this.value=e}},Je.Comment=new Je("comment"),Je.Imports=new Je("imports"),Je.Region=new Je("region"),Je);var NewSymbolNameTag$1;(function(o){o[o.AIGenerated=1]="AIGenerated"})(NewSymbolNameTag$1||(NewSymbolNameTag$1={}));var NewSymbolNameTriggerKind$1;(function(o){o[o.Invoke=0]="Invoke",o[o.Automatic=1]="Automatic"})(NewSymbolNameTriggerKind$1||(NewSymbolNameTriggerKind$1={}));var Command;(function(o){function e(t){return!t||typeof t!="object"?!1:typeof t.id=="string"&&typeof t.title=="string"}o.is=e})(Command||(Command={}));var InlayHintKind$2;(function(o){o[o.Type=1]="Type",o[o.Parameter=2]="Parameter"})(InlayHintKind$2||(InlayHintKind$2={}));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,Co=class Co extends Disposable$1{static getInstance(){return this._INSTANCE||(this._INSTANCE=new Co),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 r=1;r<e.length;r++){const s=e[r].rgba;this._colors[r]=new RGBA8(s.r,s.g,s.b,Math.round(s.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}};Co._INSTANCE=null;let MinimapTokensColorTracker=Co;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 r=new Uint8ClampedArray(e.length);for(let s=0,a=e.length;s<a;s++)r[s]=toUint8(e[s]*t);return r}renderChar(e,t,r,s,a,l,c,d,u,g,f){const m=1*this.scale,_=2*this.scale,v=f?1:_;if(t+m>e.width||r+v>e.height){console.warn("bad render request outside image data");return}const b=g?this.charDataLight:this.charDataNormal,C=getCharIndex(s,u),y=e.width*4,S=c.r,w=c.g,E=c.b,x=a.r-S,L=a.g-w,k=a.b-E,D=Math.max(l,d),I=e.data;let T=C*m*_,M=r*y+t*4;for(let R=0;R<v;R++){let N=M;for(let A=0;A<m;A++){const O=b[T++]/255*(l/255);I[N++]=S+x*O,I[N++]=w+L*O,I[N++]=E+k*O,I[N++]=D}M+=y}}blockRenderChar(e,t,r,s,a,l,c,d){const u=1*this.scale,g=2*this.scale,f=d?1:g;if(t+u>e.width||r+f>e.height){console.warn("bad render request outside image data");return}const m=e.width*4,_=.5*(a/255),v=l.r,b=l.g,C=l.b,y=s.r-v,S=s.g-b,w=s.b-C,E=v+y*_,x=b+S*_,L=C+w*_,k=Math.max(a,c),D=e.data;let I=r*m+t*4;for(let T=0;T<f;T++){let M=I;for(let R=0;R<u;R++)D[M++]=E,D[M++]=x,D[M++]=L,D[M++]=k;I+=m}}}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 r;return prebakedMiniMaps[e]?r=new MinimapCharRenderer(prebakedMiniMaps[e](),e):r=MinimapCharRendererFactory.createFromSampleData(MinimapCharRendererFactory.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=r,r}static createSampleData(e){const t=document.createElement("canvas"),r=t.getContext("2d");t.style.height="16px",t.height=16,t.width=960,t.style.width="960px",r.fillStyle="#ffffff",r.font="bold 16px ".concat(e),r.textBaseline="middle";let s=0;for(const a of allCharCodes)r.fillText(String.fromCharCode(a),s,16/2),s+=10;return r.getImageData(0,0,960,16)}static createFromSampleData(e,t){if(e.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const s=MinimapCharRendererFactory._downsample(e,t);return new MinimapCharRenderer(s,t)}static _downsampleChar(e,t,r,s,a){const l=1*a,c=2*a;let d=s,u=0;for(let g=0;g<c;g++){const f=g/c*16,m=(g+1)/c*16;for(let _=0;_<l;_++){const v=_/l*10,b=(_+1)/l*10;let C=0,y=0;for(let w=f;w<m;w++){const E=t+Math.floor(w)*3840,x=1-(w-Math.floor(w));for(let L=v;L<b;L++){const k=1-(L-Math.floor(L)),D=E+Math.floor(L)*4,I=k*x;y+=I,C+=e[D]*e[D+3]/255*I}}const S=C/y;u=Math.max(u,S),r[d++]=toUint8(S)}}return u}static _downsample(e,t){const r=2*t*1*t,s=r*96,a=new Uint8ClampedArray(s);let l=0,c=0,d=0;for(let u=0;u<96;u++)d=Math.max(d,this._downsampleChar(e,c,a,l,t)),l+=r,c+=40;if(d>0){const u=255/d;for(let g=0;g<s;g++)a[g]*=u}return a}}const DEFAULT_FONT_FAMILY=isWindows?'"Segoe WPC", "Segoe UI", sans-serif':isMacintosh?"-apple-system, BlinkMacSystemFont, sans-serif":'system-ui, "Ubuntu", "Droid Sans", sans-serif';class ViewModelDecoration{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}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 r=e.startLineNumber;r<=e.endLineNumber;r++){const s=o.tokenization.getLineTokens(r),a=r===e.startLineNumber,l=r===e.endLineNumber;let c=a?s.findTokenIndexAtOffset(e.startColumn-1):0;for(;c<s.getCount()&&!(l&&s.getStartOffset(c)>e.endColumn-1);){if(!t(s.getStandardTokenType(c)))return!1;c++}}return!0}const POINTER_DRAG_RESET_DISTANCE=140,GUTTER_DECORATION_WIDTH=2;class MinimapOptions{constructor(e,t,r){const s=e.options,a=s.get(163),l=s.get(165),c=l.minimap,d=s.get(59),u=s.get(81);this.renderMinimap=c.renderMinimap,this.size=u.size,this.minimapHeightIsEditorHeight=c.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=s.get(119),this.paddingTop=s.get(96).top,this.paddingBottom=s.get(96).bottom,this.showSlider=u.showSlider,this.autohide=u.autohide,this.pixelRatio=a,this.typicalHalfwidthCharacterWidth=d.typicalHalfwidthCharacterWidth,this.lineHeight=s.get(75),this.minimapLeft=c.minimapLeft,this.minimapWidth=c.minimapWidth,this.minimapHeight=l.height,this.canvasInnerWidth=c.minimapCanvasInnerWidth,this.canvasInnerHeight=c.minimapCanvasInnerHeight,this.canvasOuterWidth=c.minimapCanvasOuterWidth,this.canvasOuterHeight=c.minimapCanvasOuterHeight,this.isSampling=c.minimapIsSampling,this.editorHeight=l.height,this.fontScale=c.minimapScale,this.minimapLineHeight=c.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.sectionHeaderFontFamily=DEFAULT_FONT_FAMILY,this.sectionHeaderFontSize=u.sectionHeaderFontSize*a,this.sectionHeaderLetterSpacing=u.sectionHeaderLetterSpacing,this.sectionHeaderFontColor=MinimapOptions._getSectionHeaderColor(t,r.getColor(1)),this.charRenderer=createSingleCallFunction(()=>MinimapCharRendererFactory.create(this.fontScale,d.fontFamily)),this.defaultBackgroundColor=r.getColor(2),this.backgroundColor=MinimapOptions._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=MinimapOptions._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const r=e.getColor(minimapBackground);return r?new RGBA8(r.rgba.r,r.rgba.g,r.rgba.b,Math.round(255*r.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(minimapForegroundOpacity);return t?RGBA8._clamp(Math.round(255*t.rgba.a)):255}static _getSectionHeaderColor(e,t){const r=e.getColor(editorForeground);return r?new RGBA8(r.rgba.r,r.rgba.g,r.rgba.b,Math.round(255*r.rgba.a)):t}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.sectionHeaderFontSize===e.sectionHeaderFontSize&&this.sectionHeaderLetterSpacing===e.sectionHeaderLetterSpacing&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class MinimapLayout{constructor(e,t,r,s,a,l,c,d,u){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=r,this._computedSliderRatio=s,this.sliderTop=a,this.sliderHeight=l,this.topPaddingLineCount=c,this.startLineNumber=d,this.endLineNumber=u}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),r=Math.min(this.endLineNumber,e.endLineNumber);return t>r?null:[t,r]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,r,s,a,l,c,d,u,g,f){const m=e.pixelRatio,_=e.minimapLineHeight,v=Math.floor(e.canvasInnerHeight/_),b=e.lineHeight;if(e.minimapHeightIsEditorHeight){let L=d*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(L+=Math.max(0,a-e.lineHeight-e.paddingBottom));const k=Math.max(1,Math.floor(a*a/L)),D=Math.max(0,e.minimapHeight-k),I=D/(g-a),T=u*I,M=D>0,R=Math.floor(e.canvasInnerHeight/e.minimapLineHeight),N=Math.floor(e.paddingTop/e.lineHeight);return new MinimapLayout(u,g,M,I,T,k,N,1,Math.min(c,R))}let C;if(l&&r!==c){const L=r-t+1;C=Math.floor(L*_/m)}else{const L=a/b;C=Math.floor(L*_/m)}const y=Math.floor(e.paddingTop/b);let S=Math.floor(e.paddingBottom/b);if(e.scrollBeyondLastLine){const L=a/b;S=Math.max(S,L-1)}let w;if(S>0){const L=a/b;w=(y+c+S-L-1)*_/m}else w=Math.max(0,(y+c)*_/m-C);w=Math.min(e.minimapHeight-C,w);const E=w/(g-a),x=u*E;if(v>=y+c+S){const L=w>0;return new MinimapLayout(u,g,L,E,x,C,y,1,c)}else{let L;t>1?L=t+y:L=Math.max(1,u/b);let k,D=Math.max(1,Math.floor(L-x*m/_));D<y?(k=y-D+1,D=1):(k=0,D=Math.max(1,D-y)),f&&f.scrollHeight===g&&(f.scrollTop>u&&(D=Math.min(D,f.startLineNumber),k=Math.max(k,f.topPaddingLineCount)),f.scrollTop<u&&(D=Math.max(D,f.startLineNumber),k=Math.min(k,f.topPaddingLineCount)));const I=Math.min(c,D-k+v-1),T=(u-s)/b;let M;return u>=e.paddingTop?M=(t-D+k+T)*_/m:M=u/e.paddingTop*(k+T)*_/m,new MinimapLayout(u,g,!0,E,M,C,k,D,I)}}}const yo=class yo{constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}};yo.INVALID=new yo(-1);let MinimapLine=yo;class RenderData{constructor(e,t,r){this.renderedLayout=e,this._imageData=t,this._renderedLines=new RenderedLinesCollection({createLine:()=>MinimapLine.INVALID}),this._renderedLines._set(e.startLineNumber,r)}linesEquals(e){if(!this.scrollEquals(e))return!1;const r=this._renderedLines._get().lines;for(let s=0,a=r.length;s<a;s++)if(r[s].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,r,s){this._backgroundFillData=MinimapBuffers._createBackgroundFillData(t,r,s),this._buffers=[e.createImageData(t,r),e.createImageData(t,r)],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,r){const s=r.r,a=r.g,l=r.b,c=r.a,d=new Uint8ClampedArray(e*t*4);let u=0;for(let g=0;g<t;g++)for(let f=0;f<e;f++)d[u]=s,d[u+1]=a,d[u+2]=l,d[u+3]=c,u+=4;return d}}class MinimapSamplingState{static compute(e,t,r){if(e.renderMinimap===0||!e.isSampling)return[null,[]];const{minimapLineCount:s}=EditorLayoutInfoComputer.computeContainedMinimapLineCount({viewLineCount:t,scrollBeyondLastLine:e.scrollBeyondLastLine,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:e.editorHeight,lineHeight:e.lineHeight,pixelRatio:e.pixelRatio}),a=t/s,l=a/2;if(!r||r.minimapLines.length===0){const C=[];if(C[0]=1,s>1){for(let y=0,S=s-1;y<S;y++)C[y]=Math.round(y*a+l);C[s-1]=t}return[new MinimapSamplingState(a,C),[]]}const c=r.minimapLines,d=c.length,u=[];let g=0,f=0,m=1;const _=10;let v=[],b=null;for(let C=0;C<s;C++){const y=Math.max(m,Math.round(C*a)),S=Math.max(y,Math.round((C+1)*a));for(;g<d&&c[g]<y;){if(v.length<_){const E=g+1+f;b&&b.type==="deleted"&&b._oldIndex===g-1?b.deleteToLineNumber++:(b={type:"deleted",_oldIndex:g,deleteFromLineNumber:E,deleteToLineNumber:E},v.push(b)),f--}g++}let w;if(g<d&&c[g]<=S)w=c[g],g++;else if(C===0?w=1:C+1===s?w=t:w=Math.round(C*a+l),v.length<_){const E=g+1+f;b&&b.type==="inserted"&&b._i===C-1?b.insertToLineNumber++:(b={type:"inserted",_i:C,insertFromLineNumber:E,insertToLineNumber:E},v.push(b)),f++}u[C]=w,m=w}if(v.length<_)for(;g<d;){const C=g+1+f;b&&b.type==="deleted"&&b._oldIndex===g-1?b.deleteToLineNumber++:(b={type:"deleted",_oldIndex:g,deleteFromLineNumber:C,deleteToLineNumber:C},v.push(b)),f--,g++}else v=[{type:"flush"}];return[new MinimapSamplingState(a,u),v]}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 r=this.modelLineToMinimapLine(e)-1;for(;r>0&&this.minimapLines[r-1]>=e;)r--;let s=this.modelLineToMinimapLine(t)-1;for(;s+1<this.minimapLines.length&&this.minimapLines[s+1]<=t;)s++;if(r===s){const a=this.minimapLines[r];if(a<e||a>t)return null}return[r+1,s+1]}decorationLineRangeToMinimapLineRange(e,t){let r=this.modelLineToMinimapLine(e),s=this.modelLineToMinimapLine(t);return e!==t&&s===r&&(s===this.minimapLines.length?r>1&&r--:s++),[r,s]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let r=this.minimapLines.length,s=0;for(let a=this.minimapLines.length-1;a>=0&&!(this.minimapLines[a]<e.fromLineNumber);a--)this.minimapLines[a]<=e.toLineNumber?(this.minimapLines[a]=Math.max(1,e.fromLineNumber-1),r=Math.min(r,a),s=Math.max(s,a)):this.minimapLines[a]-=t;return[r,s]}onLinesInserted(e){const t=e.toLineNumber-e.fromLineNumber+1;for(let r=this.minimapLines.length-1;r>=0&&!(this.minimapLines[r]<e.fromLineNumber);r--)this.minimapLines[r]+=t}}class Minimap extends ViewPart{constructor(e){super(e),this._sectionHeaderCache=new LRUCache(10,1.5),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,r]=this._samplingState.onLinesDeleted(e);return t<=r&&this._actual.onLinesChanged(t+1,r-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(e)}onThemeChanged(e){return this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}onTokensChanged(e){if(this._samplingState){const t=[];for(const r of e.ranges){const s=this._samplingState.modelLineRangeToMinimapLineRange(r.fromLineNumber,r.toLineNumber);s&&t.push({fromLineNumber:s[0],toLineNumber:s[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,r=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),r=this._samplingState.modelLineToMinimapLine(r));const s={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:r,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(s)}_recreateLineSampling(){this._minimapSelections=null;const e=!!this._samplingState,[t,r]=MinimapSamplingState.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const s of r)switch(s.type){case"deleted":this._actual.onLinesDeleted(s.deleteFromLineNumber,s.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(s.insertFromLineNumber,s.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,r){if(this._samplingState){const s=[];for(let a=0,l=t-e+1;a<l;a++)r[a]?s[a]=this._context.viewModel.getViewLineData(this._samplingState.minimapLines[e+a-1]):s[a]=null;return s}return this._context.viewModel.getMinimapLinesRenderingData(e,t,r).data}getSelections(){if(this._minimapSelections===null)if(this._samplingState){this._minimapSelections=[];for(const e of this._selections){const[t,r]=this._samplingState.decorationLineRangeToMinimapLineRange(e.startLineNumber,e.endLineNumber);this._minimapSelections.push(new Selection$1(t,e.startColumn,r,e.endColumn))}}else this._minimapSelections=this._selections;return this._minimapSelections}getMinimapDecorationsInViewport(e,t){return this._getMinimapDecorationsInViewport(e,t).filter(r=>{var s;return!((s=r.options.minimap)!=null&&s.sectionHeaderStyle)})}getSectionHeaderDecorationsInViewport(e,t){const r=this.options.sectionHeaderFontSize/this.options.minimapLineHeight;return e=Math.floor(Math.max(1,e-r)),this._getMinimapDecorationsInViewport(e,t).filter(s=>{var a;return!!((a=s.options.minimap)!=null&&a.sectionHeaderStyle)})}_getMinimapDecorationsInViewport(e,t){let r;if(this._samplingState){const a=this._samplingState.minimapLines[e-1],l=this._samplingState.minimapLines[t-1];r=new Range$2(a,1,l,this._context.viewModel.getLineMaxColumn(l))}else r=new Range$2(e,1,t,this._context.viewModel.getLineMaxColumn(t));const s=this._context.viewModel.getMinimapDecorationsInRange(r);if(this._samplingState){const a=[];for(const l of s){if(!l.options.minimap)continue;const c=l.range,d=this._samplingState.modelLineToMinimapLine(c.startLineNumber),u=this._samplingState.modelLineToMinimapLine(c.endLineNumber);a.push(new ViewModelDecoration(new Range$2(d,c.startColumn,u,c.endColumn),l.options))}return a}return s}getSectionHeaderText(e,t){var l;const r=(l=e.options.minimap)==null?void 0:l.sectionHeaderText;if(!r)return null;const s=this._sectionHeaderCache.get(r);if(s)return s;const a=t(r);return this._sectionHeaderCache.set(r,a),a}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$1{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._isMouseOverMinimap=!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,9),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._hideDelayedScheduler=this._register(new RunOnceScheduler(()=>this._hideImmediatelyIfMouseIsOutside(),500)),this._register(addStandardDisposableListener(this._domNode.domNode,EventType$1.MOUSE_OVER,()=>{this._isMouseOverMinimap=!0})),this._register(addStandardDisposableListener(this._domNode.domNode,EventType$1.MOUSE_LEAVE,()=>{this._isMouseOverMinimap=!1})),this._pointerDownListener=addStandardDisposableListener(this._domNode.domNode,EventType$1.POINTER_DOWN,r=>{r.preventDefault();const s=r.pointerType==="mouse",a=r.button===0;if(this._model.options.renderMinimap!==0&&this._lastRenderData){if(this._model.options.size!=="proportional"){if(a&&this._lastRenderData){const c=getDomNodePagePosition(this._slider.domNode),d=c.top+c.height/2;this._startSliderDragging(r,d,this._lastRenderData.renderedLayout)}return}if(a||!s){const c=this._model.options.minimapLineHeight,d=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*r.offsetY;let g=Math.floor(d/c)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;g=Math.min(g,this._model.getLineCount()),this._model.revealLineNumber(g)}}}),this._sliderPointerMoveMonitor=new GlobalPointerMoveMonitor,this._sliderPointerDownListener=addStandardDisposableListener(this._slider.domNode,EventType$1.POINTER_DOWN,r=>{r.preventDefault(),r.stopPropagation(),r.button===0&&this._lastRenderData&&this._startSliderDragging(r,r.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=Gesture.addTarget(this._domNode.domNode),this._sliderTouchStartListener=addDisposableListener(this._domNode.domNode,EventType.Start,r=>{r.preventDefault(),r.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(r))},{passive:!1}),this._sliderTouchMoveListener=addDisposableListener(this._domNode.domNode,EventType.Change,r=>{r.preventDefault(),r.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(r)},{passive:!1}),this._sliderTouchEndListener=addStandardDisposableListener(this._domNode.domNode,EventType.End,r=>{r.preventDefault(),r.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_hideSoon(){this._hideDelayedScheduler.cancel(),this._hideDelayedScheduler.schedule()}_hideImmediatelyIfMouseIsOutside(){if(this._isMouseOverMinimap){this._hideSoon();return}this._domNode.toggleClassName("active",!1)}_startSliderDragging(e,t,r){if(!e.target||!(e.target instanceof Element))return;const s=e.pageX;this._slider.toggleClassName("active",!0);const a=(l,c)=>{const d=getDomNodePagePosition(this._domNode.domNode),u=Math.min(Math.abs(c-s),Math.abs(c-d.left),Math.abs(c-d.left-d.width));if(isWindows&&u>POINTER_DRAG_RESET_DISTANCE){this._model.setScrollTop(r.scrollTop);return}const g=l-t;this._model.setScrollTop(r.getDesiredScrollTopFromDelta(g))};e.pageY!==t&&a(e.pageY,s),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,l=>a(l.pageY,l.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,r=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(r)}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==="mouseover"?e.push("minimap-autohide-mouseover"):this._model.options.autohide==="scroll"&&e.push("minimap-autohide-scroll"),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 r;return(r=this._lastRenderData)==null||r.onLinesDeleted(e,t),!0}onLinesInserted(e,t){var r;return(r=this._lastRenderData)==null||r.onLinesInserted(e,t),!0}onScrollChanged(e){return this._model.options.autohide==="scroll"&&(e.scrollTopChanged||e.scrollHeightChanged)&&(this._domNode.toggleClassName("active",!0),this._hideSoon()),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 r=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(r.sliderNeeded?"block":"none"),this._slider.setTop(r.sliderTop),this._slider.setHeight(r.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(r.sliderHeight),this.renderDecorations(r),this._lastRenderData=this.renderLines(r)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(Range$2.compareRangesUsingStarts);const r=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);r.sort((m,_)=>(m.options.zIndex||0)-(_.options.zIndex||0));const{canvasInnerWidth:s,canvasInnerHeight:a}=this._model.options,l=this._model.options.minimapLineHeight,c=this._model.options.minimapCharWidth,d=this._model.getOptions().tabSize,u=this._decorationsCanvas.domNode.getContext("2d");u.clearRect(0,0,s,a);const g=new ContiguousLineMap(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(u,t,g,e,l),this._renderDecorationsLineHighlights(u,r,g,e,l);const f=new ContiguousLineMap(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(u,t,f,e,l,d,c,s),this._renderDecorationsHighlights(u,r,f,e,l,d,c,s),this._renderSectionHeaders(e)}}_renderSelectionLineHighlights(e,t,r,s,a){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let l=0,c=0;for(const d of t){const u=s.intersectWithViewport(d);if(!u)continue;const[g,f]=u;for(let v=g;v<=f;v++)r.set(v,!0);const m=s.getYForLineNumber(g,a),_=s.getYForLineNumber(f,a);c>=m||(c>l&&e.fillRect(MINIMAP_GUTTER_WIDTH,l,e.canvas.width,c-l),l=m),c=_}c>l&&e.fillRect(MINIMAP_GUTTER_WIDTH,l,e.canvas.width,c-l)}_renderDecorationsLineHighlights(e,t,r,s,a){const l=new Map;for(let c=t.length-1;c>=0;c--){const d=t[c],u=d.options.minimap;if(!u||u.position!==1)continue;const g=s.intersectWithViewport(d.range);if(!g)continue;const[f,m]=g,_=u.getColor(this._theme.value);if(!_||_.isTransparent())continue;let v=l.get(_.toString());v||(v=_.transparent(.5).toString(),l.set(_.toString(),v)),e.fillStyle=v;for(let b=f;b<=m;b++){if(r.has(b))continue;r.set(b,!0);const C=s.getYForLineNumber(f,a);e.fillRect(MINIMAP_GUTTER_WIDTH,C,e.canvas.width,a)}}}_renderSelectionsHighlights(e,t,r,s,a,l,c,d){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const u of t){const g=s.intersectWithViewport(u);if(!g)continue;const[f,m]=g;for(let _=f;_<=m;_++)this.renderDecorationOnLine(e,r,u,this._selectionColor,s,_,a,a,l,c,d)}}_renderDecorationsHighlights(e,t,r,s,a,l,c,d){for(const u of t){const g=u.options.minimap;if(!g)continue;const f=s.intersectWithViewport(u.range);if(!f)continue;const[m,_]=f,v=g.getColor(this._theme.value);if(!(!v||v.isTransparent()))for(let b=m;b<=_;b++)switch(g.position){case 1:this.renderDecorationOnLine(e,r,u.range,v,s,b,a,a,l,c,d);continue;case 2:{const C=s.getYForLineNumber(b,a);this.renderDecoration(e,v,2,C,GUTTER_DECORATION_WIDTH,a);continue}}}}renderDecorationOnLine(e,t,r,s,a,l,c,d,u,g,f){const m=a.getYForLineNumber(l,d);if(m+c<0||m>this._model.options.canvasInnerHeight)return;const{startLineNumber:_,endLineNumber:v}=r,b=_===l?r.startColumn:1,C=v===l?r.endColumn:this._model.getLineMaxColumn(l),y=this.getXOffsetForPosition(t,l,b,u,g,f),S=this.getXOffsetForPosition(t,l,C,u,g,f);this.renderDecoration(e,s,y,m,S-y,c)}getXOffsetForPosition(e,t,r,s,a,l){if(r===1)return MINIMAP_GUTTER_WIDTH;if((r-1)*a>=l)return l;let d=e.get(t);if(!d){const u=this._model.getLineContent(t);d=[MINIMAP_GUTTER_WIDTH];let g=MINIMAP_GUTTER_WIDTH;for(let f=1;f<u.length+1;f++){const m=u.charCodeAt(f-1),_=m===9?s*a:isFullWidthCharacter(m)?2*a:a,v=g+_;if(v>=l){d[f]=l;break}d[f]=v,g=v}e.set(t,d)}return r-1<d.length?d[r-1]:l}renderDecoration(e,t,r,s,a,l){e.fillStyle=t&&t.toString()||"",e.fillRect(r,s,a,l)}_renderSectionHeaders(e){var b;const t=this._model.options.minimapLineHeight,r=this._model.options.sectionHeaderFontSize,s=this._model.options.sectionHeaderLetterSpacing,a=r*1.5,{canvasInnerWidth:l}=this._model.options,c=this._model.options.backgroundColor,d="rgb(".concat(c.r," ").concat(c.g," ").concat(c.b," / .7)"),u=this._model.options.sectionHeaderFontColor,g="rgb(".concat(u.r," ").concat(u.g," ").concat(u.b,")"),f=g,m=this._decorationsCanvas.domNode.getContext("2d");m.letterSpacing=s+"px",m.font="500 "+r+"px "+this._model.options.sectionHeaderFontFamily,m.strokeStyle=f,m.lineWidth=.4;const _=this._model.getSectionHeaderDecorationsInViewport(e.startLineNumber,e.endLineNumber);_.sort((C,y)=>C.range.startLineNumber-y.range.startLineNumber);const v=InnerMinimap._fitSectionHeader.bind(null,m,l-MINIMAP_GUTTER_WIDTH);for(const C of _){const y=e.getYForLineNumber(C.range.startLineNumber,t)+r,S=y-r,w=S+2,E=this._model.getSectionHeaderText(C,v);InnerMinimap._renderSectionLabel(m,E,((b=C.options.minimap)==null?void 0:b.sectionHeaderStyle)===2,d,g,l,S,a,y,w)}}static _fitSectionHeader(e,t,r){if(!r)return r;const s="…",a=e.measureText(r).width,l=e.measureText(s).width;if(a<=t||a<=l)return r;const c=r.length,d=a/r.length,u=Math.floor((t-l)/d)-1;let g=Math.ceil(u/2);for(;g>0&&/\s/.test(r[g-1]);)--g;return r.substring(0,g)+s+r.substring(c-(u-g))}static _renderSectionLabel(e,t,r,s,a,l,c,d,u,g){t&&(e.fillStyle=s,e.fillRect(0,c,l,d),e.fillStyle=a,e.fillText(t,MINIMAP_GUTTER_WIDTH,u)),r&&(e.beginPath(),e.moveTo(0,g),e.lineTo(l,g),e.closePath(),e.stroke())}renderLines(e){const t=e.startLineNumber,r=e.endLineNumber,s=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){const O=this._lastRenderData._get();return new RenderData(e,O.imageData,O.lines)}const a=this._getBuffer();if(!a)return null;const[l,c,d]=InnerMinimap._renderUntouchedLines(a,e.topPaddingLineCount,t,r,s,this._lastRenderData),u=this._model.getMinimapLinesRenderingData(t,r,d),g=this._model.getOptions().tabSize,f=this._model.options.defaultBackgroundColor,m=this._model.options.backgroundColor,_=this._model.options.foregroundAlpha,v=this._model.tokensColorTracker,b=v.backgroundIsLight(),C=this._model.options.renderMinimap,y=this._model.options.charRenderer(),S=this._model.options.fontScale,w=this._model.options.minimapCharWidth,x=(C===1?2:3)*S,L=s>x?Math.floor((s-x)/2):0,k=m.a/255,D=new RGBA8(Math.round((m.r-f.r)*k+f.r),Math.round((m.g-f.g)*k+f.g),Math.round((m.b-f.b)*k+f.b),255);let I=e.topPaddingLineCount*s;const T=[];for(let O=0,P=r-t+1;O<P;O++)d[O]&&InnerMinimap._renderLine(a,D,m.a,b,C,w,v,_,y,I,L,g,u[O],S,s),T[O]=new MinimapLine(I),I+=s;const M=l===-1?0:l,N=(c===-1?a.height:c)-M;return this._canvas.domNode.getContext("2d").putImageData(a,0,0,0,M,a.width,N),new RenderData(e,a,T)}static _renderUntouchedLines(e,t,r,s,a,l){const c=[];if(!l){for(let I=0,T=s-r+1;I<T;I++)c[I]=!0;return[-1,-1,c]}const d=l._get(),u=d.imageData.data,g=d.rendLineNumberStart,f=d.lines,m=f.length,_=e.width,v=e.data,b=(s-r+1)*a*_*4;let C=-1,y=-1,S=-1,w=-1,E=-1,x=-1,L=t*a;for(let I=r;I<=s;I++){const T=I-r,M=I-g,R=M>=0&&M<m?f[M].dy:-1;if(R===-1){c[T]=!0,L+=a;continue}const N=R*_*4,A=(R+a)*_*4,O=L*_*4,P=(L+a)*_*4;w===N&&x===O?(w=A,x=P):(S!==-1&&(v.set(u.subarray(S,w),E),C===-1&&S===0&&S===E&&(C=w),y===-1&&w===b&&S===E&&(y=S)),S=N,w=A,E=O,x=P),c[T]=!1,L+=a}S!==-1&&(v.set(u.subarray(S,w),E),C===-1&&S===0&&S===E&&(C=w),y===-1&&w===b&&S===E&&(y=S));const k=C===-1?-1:C/(_*4),D=y===-1?-1:y/(_*4);return[k,D,c]}static _renderLine(e,t,r,s,a,l,c,d,u,g,f,m,_,v,b){const C=_.content,y=_.tokens,S=e.width-l,w=b===1;let E=MINIMAP_GUTTER_WIDTH,x=0,L=0;for(let k=0,D=y.getCount();k<D;k++){const I=y.getEndOffset(k),T=y.getForeground(k),M=c.getColor(T);for(;x<I;x++){if(E>S)return;const R=C.charCodeAt(x);if(R===9){const N=m-(x+L)%m;L+=N-1,E+=N*l}else if(R===32)E+=l;else{const N=isFullWidthCharacter(R)?2:1;for(let A=0;A<N;A++)if(a===2?u.blockRenderChar(e,E,g+f,M,d,t,r,w):u.renderChar(e,E,g+f,R,M,d,t,r,v,s,w),E+=l,E>S)return}}}}}class ContiguousLineMap{constructor(e,t,r){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=r,this._values=[];for(let s=0,a=this._endLineNumber-this._startLineNumber+1;s<a;s++)this._values[s]=r}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,t){super(e),this._viewDomNode=t;const s=this._context.configuration.options.get(165);this._widgets={},this._verticalScrollbarWidth=s.verticalScrollbarWidth,this._minimapWidth=s.minimap.minimapWidth,this._horizontalScrollbarHeight=s.horizontalScrollbarHeight,this._editorHeight=s.height,this._editorWidth=s.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=createFastDomNode(document.createElement("div")),PartFingerprints.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=createFastDomNode(document.createElement("div")),PartFingerprints.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const r=this._context.configuration.options.get(165);return this._verticalScrollbarWidth=r.verticalScrollbarWidth,this._minimapWidth=r.minimap.minimapWidth,this._horizontalScrollbarHeight=r.horizontalScrollbarHeight,this._editorHeight=r.height,this._editorWidth=r.width,!0}_widgetCanOverflow(e){const r=this._context.configuration.options.get(4);return(e.allowEditorOverflow||!1)&&r}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._widgetCanOverflow(e)?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){const r=this._widgets[e.getId()],s=t?t.preference:null,a=t==null?void 0:t.stackOridinal;return r.preference===s&&r.stack===a?(this._updateMaxMinWidth(),!1):(r.preference=s,r.stack=a,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const s=this._widgets[t].domNode.domNode;delete this._widgets[t],s.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var r,s;let e=0;const t=Object.keys(this._widgets);for(let a=0,l=t.length;a<l;a++){const c=t[a],u=(s=(r=this._widgets[c].widget).getMinContentWidthInPx)==null?void 0:s.call(r);typeof u<"u"&&(e=Math.max(e,u))}this._context.viewLayout.setOverlayWidgetsMinWidth(e)}_renderWidget(e,t){const r=e.domNode;if(e.preference===null){r.setTop("");return}const s=2*this._verticalScrollbarWidth+this._minimapWidth;if(e.preference===0||e.preference===1){if(e.preference===1){const a=r.domNode.clientHeight;r.setTop(this._editorHeight-a-2*this._horizontalScrollbarHeight)}else r.setTop(0);e.stack!==void 0?(r.setTop(t[e.preference]),t[e.preference]+=r.domNode.clientWidth):r.setRight(s)}else if(e.preference===2)r.domNode.style.right="50%",e.stack!==void 0?(r.setTop(t[2]),t[2]+=r.domNode.clientHeight):r.setTop(0);else{const{top:a,left:l}=e.preference;if(this._context.configuration.options.get(51)&&this._widgetCanOverflow(e.widget)){const d=this._viewDomNodeRect;r.setTop(a+d.top),r.setLeft(l+d.left),r.setPosition("fixed")}else r.setTop(a),r.setLeft(l),r.setPosition("absolute")}}prepareRender(e){this._viewDomNodeRect=getDomNodePagePosition(this._viewDomNode.domNode)}render(e){this._domNode.setWidth(this._editorWidth);const t=Object.keys(this._widgets),r=Array.from({length:3},()=>0);t.sort((s,a)=>(this._widgets[s].stack||0)-(this._widgets[a].stack||0));for(let s=0,a=t.length;s<a;s++){const l=t[s];this._renderWidget(this._widgets[l],r)}}}class Viewport{constructor(e,t,r,s){this._viewportBrand=void 0,this.top=e|0,this.left=t|0,this.width=r|0,this.height=s|0}}class MinimapLinesRenderingData{constructor(e,t){this.tabSize=e,this.data=t}}class ViewLineData{constructor(e,t,r,s,a,l,c){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=r,this.maxColumn=s,this.startVisibleColumn=a,this.tokens=l,this.inlineDecorations=c}}class ViewLineRenderingData{constructor(e,t,r,s,a,l,c,d,u,g,f,m){this.minColumn=e,this.maxColumn=t,this.content=r,this.continuesWithWrappedLine=s,this.isBasicASCII=ViewLineRenderingData.isBasicASCII(r,l),this.containsRTL=ViewLineRenderingData.containsRTL(r,this.isBasicASCII,a),this.tokens=c,this.inlineDecorations=d,this.tabSize=u,this.startVisibleColumn=g,this.textDirection=f,this.hasVariableFonts=m}static isBasicASCII(e,t){return t?isBasicASCII(e):!0}static containsRTL(e,t,r){return!t&&r?containsRTL(e):!1}}class OverviewRulerDecorationsGroup{constructor(e,t,r){this.color=e,this.zIndex=t,this.data=r}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)}}class Settings{constructor(e,t){const r=e.options;this.lineHeight=r.get(75),this.pixelRatio=r.get(163),this.overviewRulerLanes=r.get(95),this.renderBorder=r.get(94);const s=t.getColor(editorOverviewRulerBorder);this.borderColor=s?s.toString():null,this.hideCursor=r.get(68);const a=t.getColor(editorCursorForeground);this.cursorColorSingle=a?a.transparent(.7).toString():null;const l=t.getColor(editorMultiCursorPrimaryForeground);this.cursorColorPrimary=l?l.transparent(.7).toString():null;const c=t.getColor(editorMultiCursorSecondaryForeground);this.cursorColorSecondary=c?c.transparent(.7).toString():null,this.themeType=t.type;const d=r.get(81),u=d.enabled,g=d.side,f=t.getColor(editorOverviewRulerBackground),m=TokenizationRegistry.getDefaultBackground();f?this.backgroundColor=f:u&&g==="right"?this.backgroundColor=m:this.backgroundColor=null;const v=r.get(165).overviewRuler;this.top=v.top,this.right=v.right,this.domWidth=v.width,this.domHeight=v.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[b,C]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=b,this.w=C}_initLanes(e,t,r){const s=t-e;if(r>=3){const a=Math.floor(s/3),l=Math.floor(s/3),c=s-a-l,d=e,u=d+a,g=d+a+c;return[[0,d,u,d,g,d,u,d],[0,a,c,a+c,l,a+c+l,c+l,a+c+l]]}else if(r===2){const a=Math.floor(s/2),l=s-a,c=e,d=c+a;return[[0,c,c,c,d,c,c,c],[0,a,a,a,l,a+l,a+l,a+l]]}else{const a=e,l=s;return[[0,a,a,a,a,a,a,a],[0,l,l,l,l,l,l,l]]}}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.cursorColorSingle===e.cursorColorSingle&&this.cursorColorPrimary===e.cursorColorPrimary&&this.cursorColorSecondary===e.cursorColorSecondary&&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=[{position:new Position$1(1,1),color:this._settings.cursorColorSingle}]}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,r=e.selections.length;t<r;t++){let s=this._settings.cursorColorSingle;r>1&&(s=t===0?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:e.selections[t].getPosition(),color:s})}return this._cursorPositions.sort((t,r)=>Position$1.compare(t.position,r.position)),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,(v,b)=>v.position.lineNumber===b.position.lineNumber&&v.color===b.color)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const r=this._settings.canvasWidth,s=this._settings.canvasHeight,a=this._settings.lineHeight,l=this._context.viewLayout,c=this._context.viewLayout.getScrollHeight(),d=s/c,u=6*this._settings.pixelRatio|0,g=u/2|0,f=this._domNode.domNode.getContext("2d");e?e.isOpaque()?(f.fillStyle=Color.Format.CSS.formatHexA(e),f.fillRect(0,0,r,s)):(f.clearRect(0,0,r,s),f.fillStyle=Color.Format.CSS.formatHexA(e),f.fillRect(0,0,r,s)):f.clearRect(0,0,r,s);const m=this._settings.x,_=this._settings.w;for(const v of t){const b=v.color,C=v.data;f.fillStyle=b;let y=0,S=0,w=0;for(let E=0,x=C.length/3;E<x;E++){const L=C[3*E],k=C[3*E+1],D=C[3*E+2];let I=l.getVerticalOffsetForLineNumber(k)*d|0,T=(l.getVerticalOffsetForLineNumber(D)+a)*d|0;if(T-I<u){let R=(I+T)/2|0;R<g?R=g:R+g>s&&(R=s-g),I=R-g,T=R+g}I>w+1||L!==y?(E!==0&&f.fillRect(m[y],S,_[y],w-S),y=L,S=I,w=T):T>w&&(w=T)}f.fillRect(m[y],S,_[y],w-S)}if(!this._settings.hideCursor){const v=2*this._settings.pixelRatio|0,b=v/2|0,C=this._settings.x[7],y=this._settings.w[7];let S=-100,w=-100,E=null;for(let x=0,L=this._cursorPositions.length;x<L;x++){const k=this._cursorPositions[x].color;if(!k)continue;const D=this._cursorPositions[x].position;let I=l.getVerticalOffsetForLineNumber(D.lineNumber)*d|0;I<b?I=b:I+b>s&&(I=s-b);const T=I-b,M=T+v;T>w+1||k!==E?(x!==0&&E&&f.fillRect(C,S,y,w-S),S=T,w=M):M>w&&(w=M),E=k,f.fillStyle=k}E&&f.fillRect(C,S,y,w-S)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(f.beginPath(),f.lineWidth=1,f.strokeStyle=this._settings.borderColor,f.moveTo(0,0),f.lineTo(0,s),f.moveTo(1,0),f.lineTo(r,0),f.stroke())}}class ColorZone{constructor(e,t,r){this._colorZoneBrand=void 0,this.from=e|0,this.to=t|0,this.colorId=r|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,r,s){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=r,this.color=s,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),r=Math.floor(this.getCanvasHeight()),s=Math.floor(this._outerHeight),a=r/s,l=Math.floor(4*this._pixelRatio/2),c=[];for(let d=0,u=this._zones.length;d<u;d++){const g=this._zones[d];if(!e){const E=g.getColorZones();if(E){c.push(E);continue}}const f=this._getVerticalOffsetForLine(g.startLineNumber),m=g.heightInLines===0?this._getVerticalOffsetForLine(g.endLineNumber)+t:f+g.heightInLines*t,_=Math.floor(a*f),v=Math.floor(a*m);let b=Math.floor((_+v)/2),C=v-b;C<l&&(C=l),b-C<0&&(b=C),b+C>r&&(b=r-C);const y=g.color;let S=this._color2Id[y];S||(S=++this._lastAssignedId,this._color2Id[y]=S,this._id2Color[S]=y);const w=new ColorZone(b-C,b+C,S);g.setColorZone(w),c.push(w)}return this._colorZonesInvalid=!1,c.sort(ColorZone.compare),c}}class OverviewRuler extends ViewEventHandler{constructor(e,t){super(),this._context=e;const r=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(s=>this._context.viewLayout.getVerticalOffsetForLineNumber(s)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(r.get(75)),this._zoneManager.setPixelRatio(r.get(163)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(75)&&(this._zoneManager.setLineHeight(t.get(75)),this._render()),e.hasChanged(163)&&(this._zoneManager.setPixelRatio(t.get(163)),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(),r=this._zoneManager.resolveColorZones(),s=this._zoneManager.getId2Color(),a=this._domNode.domNode.getContext("2d");return a.clearRect(0,0,e,t),r.length>0&&this._renderOneLane(a,r,s,e),!0}_renderOneLane(e,t,r,s){let a=0,l=0,c=0;for(const d of t){const u=d.colorId,g=d.from,f=d.to;u!==a?(e.fillRect(0,l,s,c-l),a=u,e.fillStyle=r[a],l=g,c=f):c>=g?c=Math.max(c,f):(e.fillRect(0,l,s,c-l),l=g,c=f)}e.fillRect(0,l,s,c-l)}}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(116),this._typicalHalfwidthCharacterWidth=t.get(59).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(116),this._typicalHalfwidthCharacterWidth=t.get(59).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:s}=this._context.viewModel.model.getOptions(),a=s;let l=t-e;for(;l>0;){const c=createFastDomNode(document.createElement("div"));c.setClassName("view-ruler"),c.setWidth(a),this.domNode.appendChild(c),this._renderedRulers.push(c),l--}return}let r=e-t;for(;r>0;){const s=this._renderedRulers.pop();this.domNode.removeChild(s),r--}}render(e){this._ensureRulersCount();for(let t=0,r=this._rulers.length;t<r;t++){const s=this._renderedRulers[t],a=this._rulers[t];s.setBoxShadow(a.color?"1px 0 0 0 ".concat(a.color," inset"):""),s.setHeight(Math.min(e.scrollHeight,1e6)),s.setLeft(a.column*this._typicalHalfwidthCharacterWidth)}}}class ScrollDecorationViewPart extends ViewPart{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;const r=this._context.configuration.options.get(117);this._useShadows=r.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(165);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 r=this._context.configuration.options.get(117);return this._useShadows=r.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))}const Ie=class Ie extends DynamicViewOverlay{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._roundedSelection=t.get(115),this._typicalHalfwidthCharacterWidth=t.get(59).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._roundedSelection=t.get(115),this._typicalHalfwidthCharacterWidth=t.get(59).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,r=e.length;t<r;t++)if(e[t].ranges.length>1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,r){const s=this._typicalHalfwidthCharacterWidth/4;let a=null,l=null;if(r&&r.length>0&&t.length>0){const c=t[0].lineNumber;if(c===e.startLineNumber)for(let u=0;!a&&u<r.length;u++)r[u].lineNumber===c&&(a=r[u].ranges[0]);const d=t[t.length-1].lineNumber;if(d===e.endLineNumber)for(let u=r.length-1;!l&&u>=0;u--)r[u].lineNumber===d&&(l=r[u].ranges[0]);a&&!a.startStyle&&(a=null),l&&!l.startStyle&&(l=null)}for(let c=0,d=t.length;c<d;c++){const u=t[c].ranges[0],g=u.left,f=u.left+u.width,m={top:0,bottom:0},_={top:0,bottom:0};if(c>0){const v=t[c-1].ranges[0].left,b=t[c-1].ranges[0].left+t[c-1].ranges[0].width;abs$1(g-v)<s?m.top=2:g>v&&(m.top=1),abs$1(f-b)<s?_.top=2:v<f&&f<b&&(_.top=1)}else a&&(m.top=a.startStyle.top,_.top=a.endStyle.top);if(c+1<d){const v=t[c+1].ranges[0].left,b=t[c+1].ranges[0].left+t[c+1].ranges[0].width;abs$1(g-v)<s?m.bottom=2:v<g&&g<b&&(m.bottom=1),abs$1(f-b)<s?_.bottom=2:f<b&&(_.bottom=1)}else l&&(m.bottom=l.startStyle.bottom,_.bottom=l.endStyle.bottom);u.startStyle=m,u.endStyle=_}}_getVisibleRangesWithStyle(e,t,r){const a=(t.linesVisibleRangesForRange(e,!0)||[]).map(toStyled);return!this._visibleRangesHaveGaps(a)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,a,r),a}_createSelectionPiece(e,t,r,s,a){return'<div class="cslr '+r+'" style="top:'+e.toString()+"px;bottom:"+t.toString()+"px;left:"+s.toString()+"px;width:"+a.toString()+'px;"></div>'}_actualRenderOneSelection(e,t,r,s){if(s.length===0)return;const a=!!s[0].ranges[0].startStyle,l=s[0].lineNumber,c=s[s.length-1].lineNumber;for(let d=0,u=s.length;d<u;d++){const g=s[d],f=g.lineNumber,m=f-t,_=r&&f===l?1:0,v=r&&f!==l&&f===c?1:0;let b="",C="";for(let y=0,S=g.ranges.length;y<S;y++){const w=g.ranges[y];if(a){const x=w.startStyle,L=w.endStyle;if(x.top===1||x.bottom===1){b+=this._createSelectionPiece(_,v,Ie.SELECTION_CLASS_NAME,w.left-Ie.ROUNDED_PIECE_WIDTH,Ie.ROUNDED_PIECE_WIDTH);let k=Ie.EDITOR_BACKGROUND_CLASS_NAME;x.top===1&&(k+=" "+Ie.SELECTION_TOP_RIGHT),x.bottom===1&&(k+=" "+Ie.SELECTION_BOTTOM_RIGHT),b+=this._createSelectionPiece(_,v,k,w.left-Ie.ROUNDED_PIECE_WIDTH,Ie.ROUNDED_PIECE_WIDTH)}if(L.top===1||L.bottom===1){b+=this._createSelectionPiece(_,v,Ie.SELECTION_CLASS_NAME,w.left+w.width,Ie.ROUNDED_PIECE_WIDTH);let k=Ie.EDITOR_BACKGROUND_CLASS_NAME;L.top===1&&(k+=" "+Ie.SELECTION_TOP_LEFT),L.bottom===1&&(k+=" "+Ie.SELECTION_BOTTOM_LEFT),b+=this._createSelectionPiece(_,v,k,w.left+w.width,Ie.ROUNDED_PIECE_WIDTH)}}let E=Ie.SELECTION_CLASS_NAME;if(a){const x=w.startStyle,L=w.endStyle;x.top===0&&(E+=" "+Ie.SELECTION_TOP_LEFT),x.bottom===0&&(E+=" "+Ie.SELECTION_BOTTOM_LEFT),L.top===0&&(E+=" "+Ie.SELECTION_TOP_RIGHT),L.bottom===0&&(E+=" "+Ie.SELECTION_BOTTOM_RIGHT)}C+=this._createSelectionPiece(_,v,E,w.left,w.width)}e[m][0]+=b,e[m][1]+=C}}prepareRender(e){const t=[],r=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(let l=r;l<=s;l++){const c=l-r;t[c]=["",""]}const a=[];for(let l=0,c=this._selections.length;l<c;l++){const d=this._selections[l];if(d.isEmpty()){a[l]=null;continue}const u=this._getVisibleRangesWithStyle(d,e,this._previousFrameVisibleRangesWithStyle[l]);a[l]=u,this._actualRenderOneSelection(t,r,this._selections.length>1,u)}this._previousFrameVisibleRangesWithStyle=a,this._renderResult=t.map(([l,c])=>l+c)}render(e,t){if(!this._renderResult)return"";const r=t-e;return r<0||r>=this._renderResult.length?"":this._renderResult[r]}};Ie.SELECTION_CLASS_NAME="selected-text",Ie.SELECTION_TOP_LEFT="top-left-radius",Ie.SELECTION_BOTTOM_LEFT="bottom-left-radius",Ie.SELECTION_TOP_RIGHT="top-right-radius",Ie.SELECTION_BOTTOM_RIGHT="bottom-right-radius",Ie.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",Ie.ROUNDED_PIECE_WIDTH=10;let SelectionsOverlay=Ie;registerThemingParticipant((o,e)=>{const t=o.getColor(editorSelectionForeground);t&&!t.isTransparent()&&e.addRule(".monaco-editor .view-line span.inline-selected-text { color: ".concat(t,"; }"))});function abs$1(o){return o<0?-o:o}class ViewCursorRenderData{constructor(e,t,r,s,a,l,c){this.top=e,this.left=t,this.paddingLeft=r,this.width=s,this.height=a,this.textContent=l,this.textContentClassName=c}}var CursorPlurality;(function(o){o[o.Single=0]="Single",o[o.MultiPrimary=1]="MultiPrimary",o[o.MultiSecondary=2]="MultiSecondary"})(CursorPlurality||(CursorPlurality={}));class ViewCursor{constructor(e,t){this._context=e;const r=this._context.configuration.options,s=r.get(59);this._cursorStyle=r.get(161),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(r.get(37),this._typicalHalfwidthCharacterWidth),this._lineCursorHeight=r.get(38),this._isVisible=!0,this._domNode=createFastDomNode(document.createElement("div")),this._domNode.setClassName("cursor ".concat(MOUSE_CURSOR_TEXT_CSS_CLASS_NAME)),this._domNode.setHeight(this._context.viewLayout.getLineHeightForLineNumber(1)),this._domNode.setTop(0),this._domNode.setLeft(0),applyFontInfo(this._domNode,s),this._domNode.setDisplay("none"),this._position=new Position$1(1,1),this._pluralityClass="",this.setPlurality(t),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}setPlurality(e){switch(e){default:case CursorPlurality.Single:this._pluralityClass="";break;case CursorPlurality.MultiPrimary:this._pluralityClass="cursor-primary";break;case CursorPlurality.MultiSecondary:this._pluralityClass="cursor-secondary";break}}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,r=t.get(59);return this._cursorStyle=t.get(161),this._typicalHalfwidthCharacterWidth=r.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(37),this._typicalHalfwidthCharacterWidth),this._lineCursorHeight=t.get(38),applyFontInfo(this._domNode,r),!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,r=this._context.viewModel.getLineContent(e),[s,a]=getCharContainingOffset(r,t-1);return[new Position$1(e,s+1),r.substring(s,a)]}_prepareRender(e){let t="",r="";const[s,a]=this._getGraphemeAwarePosition(),l=this._context.viewLayout.getLineHeightForLineNumber(s.lineNumber),c=this._lineCursorHeight===0?l:Math.min(l,this._lineCursorHeight),d=(l-c)/2;if(this._cursorStyle===TextEditorCursorStyle$1.Line||this._cursorStyle===TextEditorCursorStyle$1.LineThin){const b=e.visibleRangeForPosition(s);if(!b||b.outsideRenderedLine)return null;const C=getWindow$1(this._domNode.domNode);let y;this._cursorStyle===TextEditorCursorStyle$1.Line?(y=computeScreenAwareSize(C,this._lineCursorWidth>0?this._lineCursorWidth:2),y>2&&(t=a,r=this._getTokenClassName(s))):y=computeScreenAwareSize(C,1);let S=b.left,w=0;y>=2&&S>=1&&(w=1,S-=w);const E=e.getVerticalOffsetForLineNumber(s.lineNumber)-e.bigNumbersDelta+d;return new ViewCursorRenderData(E,S,w,y,c,t,r)}const u=e.linesVisibleRangesForRange(new Range$2(s.lineNumber,s.column,s.lineNumber,s.column+a.length),!1);if(!u||u.length===0)return null;const g=u[0];if(g.outsideRenderedLine||g.ranges.length===0)return null;const f=g.ranges[0],m=a===" "?this._typicalHalfwidthCharacterWidth:f.width<1?this._typicalHalfwidthCharacterWidth:f.width;this._cursorStyle===TextEditorCursorStyle$1.Block&&(t=a,r=this._getTokenClassName(s));let _=e.getVerticalOffsetForLineNumber(s.lineNumber)-e.bigNumbersDelta,v=l;return(this._cursorStyle===TextEditorCursorStyle$1.Underline||this._cursorStyle===TextEditorCursorStyle$1.UnderlineThin)&&(_+=l-2,v=2),new ViewCursorRenderData(_,f.left,0,m,v,t,r)}_getTokenClassName(e){const t=this._context.viewModel.getViewLineData(e.lineNumber),r=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(r)}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 ".concat(this._pluralityClass," ").concat(MOUSE_CURSOR_TEXT_CSS_CLASS_NAME," ").concat(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)}}const $r=class $r extends ViewPart{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(104),this._cursorBlinking=t.get(32),this._cursorStyle=t.get(161),this._cursorSmoothCaretAnimation=t.get(33),this._editContextEnabled=t.get(170),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new ViewCursor(this._context,CursorPlurality.Single),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 WindowIntervalTimer,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(104),this._cursorBlinking=t.get(32),this._cursorStyle=t.get(161),this._cursorSmoothCaretAnimation=t.get(33),this._editContextEnabled=t.get(170),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let r=0,s=this._secondaryCursors.length;r<s;r++)this._secondaryCursors[r].onConfigurationChanged(e);return!0}_onCursorPositionChanged(e,t,r){const s=this._secondaryCursors.length!==t.length||this._cursorSmoothCaretAnimation==="explicit"&&r!==3;if(this._primaryCursor.setPlurality(t.length?CursorPlurality.MultiPrimary:CursorPlurality.Single),this._primaryCursor.onCursorPositionChanged(e,s),this._updateBlinking(),this._secondaryCursors.length<t.length){const a=t.length-this._secondaryCursors.length;for(let l=0;l<a;l++){const c=new ViewCursor(this._context,CursorPlurality.MultiSecondary);this._domNode.domNode.insertBefore(c.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(c)}}else if(this._secondaryCursors.length>t.length){const a=this._secondaryCursors.length-t.length;for(let l=0;l<a;l++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(let a=0;a<t.length;a++)this._secondaryCursors[a].onCursorPositionChanged(t[a],s)}onCursorStateChanged(e){const t=[];for(let s=0,a=e.selections.length;s<a;s++)t[s]=e.selections[s].getPosition();this._onCursorPositionChanged(t[0],t.slice(1),e.reason);const r=e.selections[0].isEmpty();return this._selectionIsEmpty!==r&&(this._selectionIsEmpty=r,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=r=>{for(let s=0,a=e.ranges.length;s<a;s++)if(e.ranges[s].fromLineNumber<=r.lineNumber&&r.lineNumber<=e.ranges[s].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(const r of this._secondaryCursors)if(t(r.getPosition()))return!0;return!1}onZonesChanged(e){return!0}_getCursorBlinking(){return this._isComposingInput&&!this._editContextEnabled||!this._editorHasFocus?0:this._readOnly?5:this._cursorBlinking}_updateBlinking(){this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();const e=this._getCursorBlinking(),t=e===0,r=e===5;t?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),!t&&!r&&(e===1?this._cursorFlatBlinkInterval.cancelAndSet(()=>{this._isVisible?this._hide():this._show()},$r.BLINK_INTERVAL,getWindow$1(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},$r.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,r=this._secondaryCursors.length;t<r;t++)this._secondaryCursors[t].prepareRender(e)}render(e){const t=[];let r=0;const s=this._primaryCursor.render(e);s&&(t[r++]=s);for(let a=0,l=this._secondaryCursors.length;a<l;a++){const c=this._secondaryCursors[a].render(e);c&&(t[r++]=c)}this._renderData=t}getLastRenderData(){return this._renderData}};$r.BLINK_INTERVAL=500;let ViewCursors=$r;registerThemingParticipant((o,e)=>{const t=[{class:".cursor",foreground:editorCursorForeground,background:editorCursorBackground},{class:".cursor-primary",foreground:editorMultiCursorPrimaryForeground,background:editorMultiCursorPrimaryBackground},{class:".cursor-secondary",foreground:editorMultiCursorSecondaryForeground,background:editorMultiCursorSecondaryBackground}];for(const r of t){const s=o.getColor(r.foreground);if(s){let a=o.getColor(r.background);a||(a=s.opposite()),e.addRule(".monaco-editor .cursors-layer ".concat(r.class," { background-color: ").concat(s,"; border-color: ").concat(s,"; color: ").concat(a,"; }")),isHighContrast(o.type)&&e.addRule(".monaco-editor .cursors-layer.has-selection ".concat(r.class," { border-left: 1px solid ").concat(a,"; border-right: 1px solid ").concat(a,"; }"))}}});const invalidFunc$1=()=>{throw new Error("Invalid change accessor")};class ViewZones extends ViewPart{constructor(e){super(e);const t=this._context.configuration.options,r=t.get(165);this._lineHeight=t.get(75),this._contentWidth=r.contentWidth,this._contentLeft=r.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 s of e)t.set(s.id,s);let r=!1;return this._context.viewModel.changeWhitespace(s=>{const a=Object.keys(this._zones);for(let l=0,c=a.length;l<c;l++){const d=a[l],u=this._zones[d],g=this._computeWhitespaceProps(u.delegate);u.isInHiddenArea=g.isInHiddenArea;const f=t.get(d);f&&(f.afterLineNumber!==g.afterViewLineNumber||f.height!==g.heightInPx)&&(s.changeOneWhitespace(d,g.afterViewLineNumber,g.heightInPx),this._safeCallOnComputedHeight(u.delegate,g.heightInPx),r=!0)}}),r}onConfigurationChanged(e){const t=this._context.configuration.options,r=t.get(165);return this._lineHeight=t.get(75),this._contentWidth=r.contentWidth,this._contentLeft=r.contentLeft,e.hasChanged(75)&&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,r;return(r=(t=e.ordinal)!=null?t:e.afterColumn)!=null?r: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 l=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new Position$1(l,this._context.viewModel.model.getLineMaxColumn(l))}let r;t.column===this._context.viewModel.model.getLineMaxColumn(t.lineNumber)?r=this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber+1,column:1}):r=this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber,column:t.column+1});const s=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t,e.afterColumnAffinity,!0),a=e.showInHiddenAreas||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(r);return{isInHiddenArea:!a,afterViewLineNumber:s.lineNumber,heightInPx:a?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}changeViewZones(e){let t=!1;return this._context.viewModel.changeWhitespace(r=>{const s={addZone:a=>(t=!0,this._addZone(r,a)),removeZone:a=>{a&&(t=this._removeZone(r,a)||t)},layoutZone:a=>{a&&(t=this._layoutZone(r,a)||t)}};safeInvoke1Arg(e,s),s.addZone=invalidFunc$1,s.removeZone=invalidFunc$1,s.layoutZone=invalidFunc$1}),t}_addZone(e,t){const r=this._computeWhitespaceProps(t),a={whitespaceId:e.insertWhitespace(r.afterViewLineNumber,this._getZoneOrdinal(t),r.heightInPx,r.minWidthInPx),delegate:t,isInHiddenArea:r.isInHiddenArea,isVisible:!1,domNode:createFastDomNode(t.domNode),marginDomNode:t.marginDomNode?createFastDomNode(t.marginDomNode):null};return this._safeCallOnComputedHeight(a.delegate,r.heightInPx),a.domNode.setPosition("absolute"),a.domNode.domNode.style.width="100%",a.domNode.setDisplay("none"),a.domNode.setAttribute("monaco-view-zone",a.whitespaceId),this.domNode.appendChild(a.domNode),a.marginDomNode&&(a.marginDomNode.setPosition("absolute"),a.marginDomNode.domNode.style.width="100%",a.marginDomNode.setDisplay("none"),a.marginDomNode.setAttribute("monaco-view-zone",a.whitespaceId),this.marginDomNode.appendChild(a.marginDomNode)),this._zones[a.whitespaceId]=a,this.setShouldRender(),a.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const r=this._zones[t];return delete this._zones[t],e.removeWhitespace(r.whitespaceId),r.domNode.removeAttribute("monaco-visible-view-zone"),r.domNode.removeAttribute("monaco-view-zone"),r.domNode.domNode.remove(),r.marginDomNode&&(r.marginDomNode.removeAttribute("monaco-visible-view-zone"),r.marginDomNode.removeAttribute("monaco-view-zone"),r.marginDomNode.domNode.remove()),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const r=this._zones[t],s=this._computeWhitespaceProps(r.delegate);return r.isInHiddenArea=s.isInHiddenArea,e.changeOneWhitespace(r.whitespaceId,s.afterViewLineNumber,s.heightInPx),this._safeCallOnComputedHeight(r.delegate,s.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(r){onUnexpectedError(r)}}_safeCallOnDomNodeTop(e,t){if(typeof e.onDomNodeTop=="function")try{e.onDomNodeTop(t)}catch(r){onUnexpectedError(r)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,r={};let s=!1;for(const l of t)this._zones[l.id].isInHiddenArea||(r[l.id]=l,s=!0);const a=Object.keys(this._zones);for(let l=0,c=a.length;l<c;l++){const d=a[l],u=this._zones[d];let g=0,f=0,m="none";r.hasOwnProperty(d)?(g=r[d].verticalOffset-e.bigNumbersDelta,f=r[d].height,m="block",u.isVisible||(u.domNode.setAttribute("monaco-visible-view-zone","true"),u.isVisible=!0),this._safeCallOnDomNodeTop(u.delegate,e.getScrolledTopFromAbsoluteTop(r[d].verticalOffset))):(u.isVisible&&(u.domNode.removeAttribute("monaco-visible-view-zone"),u.isVisible=!1),this._safeCallOnDomNodeTop(u.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),u.domNode.setTop(g),u.domNode.setHeight(f),u.domNode.setDisplay(m),u.marginDomNode&&(u.marginDomNode.setTop(g),u.marginDomNode.setHeight(f),u.marginDomNode.setDisplay(m))}s&&(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);return}}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(165):(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,s=e.visibleRange.endLineNumber-t+1,a=new Array(s);for(let l=0;l<s;l++)a[l]=!0;this._renderResult=[];for(let l=e.viewportData.startLineNumber;l<=e.viewportData.endLineNumber;l++){const c=l-e.viewportData.startLineNumber,d=this._context.viewModel.getViewLineRenderingData(l);let u=null;if(this._options.renderWhitespace==="selection"){const g=this._selection;for(const f of g){if(f.endLineNumber<l||f.startLineNumber>l)continue;const m=f.startLineNumber===l?f.startColumn:d.minColumn,_=f.endLineNumber===l?f.endColumn:d.maxColumn;m<_&&(u||(u=[]),u.push(new OffsetRange(m-1,_-1)))}}this._renderResult[c]=this._applyRenderWhitespace(e,l,u,d)}}_applyRenderWhitespace(e,t,r,s){if(s.hasVariableFonts||this._options.renderWhitespace==="selection"&&!r||this._options.renderWhitespace==="trailing"&&s.continuesWithWrappedLine)return"";const a=this._context.theme.getColor(editorWhitespaces),l=this._options.renderWithSVG,c=s.content,d=this._options.stopRenderingLineAfter===-1?c.length:Math.min(this._options.stopRenderingLineAfter,c.length),u=s.continuesWithWrappedLine,g=s.minColumn-1,f=this._options.renderWhitespace==="boundary",m=this._options.renderWhitespace==="trailing",_=e.getLineHeightForLineNumber(t),v=this._options.middotWidth,b=this._options.wsmiddotWidth,C=this._options.spaceWidth,y=Math.abs(b-C),S=Math.abs(v-C),w=y<S?11825:183,E=this._options.canUseHalfwidthRightwardsArrow;let x="",L=!1,k=firstNonWhitespaceIndex(c),D;k===-1?(L=!0,k=d,D=d):D=lastNonWhitespaceIndex(c);let I=0,T=r&&r[I],M=0;for(let R=g;R<d;R++){const N=c.charCodeAt(R);if(T&&T.endExclusive<=R&&(I++,T=r&&r[I]),N!==9&&N!==32||m&&!L&&R<=D)continue;if(f&&R>=k&&R<=D&&N===32){const O=R-1>=0?c.charCodeAt(R-1):0,P=R+1<d?c.charCodeAt(R+1):0;if(O!==32&&P!==32)continue}if(f&&u&&R===d-1){const O=R-1>=0?c.charCodeAt(R-1):0;if(N===32&&O!==32&&O!==9)continue}if(r&&!(T&&T.start<=R&&R<T.endExclusive))continue;const A=e.visibleRangeForPosition(new Position$1(t,R+1));A&&(l?(M=Math.max(M,A.left),N===9?x+=this._renderArrow(_,C,A.left):x+='<circle cx="'.concat((A.left+C/2).toFixed(2),'" cy="').concat((_/2).toFixed(2),'" r="').concat((C/7).toFixed(2),'" />')):N===9?x+='<div class="mwh" style="left:'.concat(A.left,"px;height:").concat(_,'px;">').concat(E?"→":"→","</div>"):x+='<div class="mwh" style="left:'.concat(A.left,"px;height:").concat(_,'px;">').concat(String.fromCharCode(w),"</div>"))}return l?(M=Math.round(M+C),'<svg style="bottom:0;position:absolute;width:'.concat(M,"px;height:").concat(_,'px" viewBox="0 0 ').concat(M," ").concat(_,'" xmlns="http://www.w3.org/2000/svg" fill="').concat(a,'">')+x+"</svg>"):x}_renderArrow(e,t,r){const s=t/7,a=t,l=e/2,c=r,d={x:0,y:s/2},u={x:100/125*a,y:d.y},g={x:u.x-.2*u.x,y:u.y+.2*u.x},f={x:g.x+.1*u.x,y:g.y+.1*u.x},m={x:f.x+.35*u.x,y:f.y-.35*u.x},_={x:m.x,y:-m.y},v={x:f.x,y:-f.y},b={x:g.x,y:-g.y},C={x:u.x,y:-u.y},y={x:d.x,y:-d.y},w=[d,u,g,f,m,_,v,b,C,y].map(E=>"".concat((c+E.x).toFixed(2)," ").concat((l+E.y).toFixed(2))).join(" L ");return'<path d="M '.concat(w,'" />')}render(e,t){if(!this._renderResult)return"";const r=t-e;return r<0||r>=this._renderResult.length?"":this._renderResult[r]}}class WhitespaceOptions{constructor(e){const t=e.options,r=t.get(59),s=t.get(47);s==="off"?(this.renderWhitespace="none",this.renderWithSVG=!1):s==="svg"?(this.renderWhitespace=t.get(113),this.renderWithSVG=!0):(this.renderWhitespace=t.get(113),this.renderWithSVG=!1),this.spaceWidth=r.spaceWidth,this.middotWidth=r.middotWidth,this.wsmiddotWidth=r.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=r.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(75),this.stopRenderingLineAfter=t.get(133)}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}}class ViewportData{constructor(e,t,r,s){this.selections=e,this.startLineNumber=t.startLineNumber|0,this.endLineNumber=t.endLineNumber|0,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=t.bigNumbersDelta|0,this.lineHeight=t.lineHeight|0,this.whitespaceViewportData=r,this._model=s,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 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,r){this.configuration=e,this.theme=new EditorTheme(t),this.viewModel=r,this.viewLayout=r.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}const quadVertices=new Float32Array([1,0,1,1,0,1,0,0,0,1,1,0]);function ensureNonNullable(o){if(!o)throw new Error('Value "'.concat(o,'" cannot be null'));return o}function observeDevicePixelDimensions(o,e,t){let r=new e.ResizeObserver(s=>{const a=s.find(d=>d.target===o);if(!a)return;if(!("devicePixelContentBoxSize"in a)){r==null||r.disconnect(),r=void 0;return}const l=a.devicePixelContentBoxSize[0].inlineSize,c=a.devicePixelContentBoxSize[0].blockSize;l>0&&c>0&&t(l,c)});try{r.observe(o,{box:["device-pixel-content-box"]})}catch(s){throw r.disconnect(),r=void 0,new BugIndicatingError("Could not observe device pixel dimensions")}return toDisposable(()=>r==null?void 0:r.disconnect())}var __decorate$34=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a};let nextId=0;class GlyphRasterizer extends Disposable$1{get cacheKey(){return"".concat(this.fontFamily,"_").concat(this.fontSize,"px")}constructor(e,t,r,s){super(),this.fontSize=e,this.fontFamily=t,this.devicePixelRatio=r,this._decorationStyleCache=s,this.id=nextId++,this._workGlyph={source:null,boundingBox:{left:0,bottom:0,right:0,top:0},originOffset:{x:0,y:0},fontBoundingBoxAscent:0,fontBoundingBoxDescent:0},this._workGlyphConfig={chars:void 0,tokenMetadata:0,decorationStyleSetId:0},this._antiAliasing=isMacintosh?"greyscale":"subpixel";const a=Math.ceil(this.fontSize*r);this._canvas=new OffscreenCanvas(a*3,a*3),this._ctx=ensureNonNullable(this._canvas.getContext("2d",{willReadFrequently:!0,alpha:this._antiAliasing==="greyscale"})),this._ctx.textBaseline="top",this._ctx.fillStyle="#FFFFFF",this._ctx.font="".concat(a,"px ").concat(this.fontFamily),this._textMetrics=this._ctx.measureText("A")}rasterizeGlyph(e,t,r,s){return e===""?{source:this._canvas,boundingBox:{top:0,left:0,bottom:-1,right:-1},originOffset:{x:0,y:0},fontBoundingBoxAscent:0,fontBoundingBoxDescent:0}:this._workGlyphConfig.chars===e&&this._workGlyphConfig.tokenMetadata===t&&this._workGlyphConfig.decorationStyleSetId===r?this._workGlyph:(this._workGlyphConfig.chars=e,this._workGlyphConfig.tokenMetadata=t,this._workGlyphConfig.decorationStyleSetId=r,this._rasterizeGlyph(e,t,r,s))}_rasterizeGlyph(e,t,r,s){const a=Math.ceil(this.fontSize*this.devicePixelRatio),l=a*3;this._canvas.width!==l&&(this._canvas.width=l,this._canvas.height=l),this._ctx.save();const c=(t&15)/10,d=TokenMetadata.getBackground(t),u=s[d],g=this._decorationStyleCache.getStyleSet(r);this._antiAliasing==="subpixel"?(this._ctx.fillStyle=u,this._ctx.fillRect(0,0,this._canvas.width,this._canvas.height)):this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height);const f=new StringBuilder(200),m=TokenMetadata.getFontStyle(t);m&1&&f.appendString("italic "),(g==null?void 0:g.bold)!==void 0?g.bold&&f.appendString("bold "):m&2&&f.appendString("bold "),f.appendString("".concat(a,"px ").concat(this.fontFamily)),this._ctx.font=f.build();const _=a,v=a;(g==null?void 0:g.color)!==void 0?this._ctx.fillStyle="#".concat(g.color.toString(16).padStart(8,"0")):this._ctx.fillStyle=s[TokenMetadata.getForeground(t)],this._ctx.textBaseline="top",(g==null?void 0:g.opacity)!==void 0&&(this._ctx.globalAlpha=g.opacity),this._ctx.fillText(e,_+c,v),this._ctx.restore();const b=this._ctx.getImageData(0,0,this._canvas.width,this._canvas.height);if(this._antiAliasing==="subpixel"){const C=parseInt(u.substring(1,3),16),y=parseInt(u.substring(3,5),16),S=parseInt(u.substring(5,7),16);this._clearColor(b,C,y,S),this._ctx.putImageData(b,0,0)}return this._findGlyphBoundingBox(b,this._workGlyph.boundingBox),this._workGlyph.source=this._canvas,this._workGlyph.originOffset.x=this._workGlyph.boundingBox.left-_,this._workGlyph.originOffset.y=this._workGlyph.boundingBox.top-v,this._workGlyph.fontBoundingBoxAscent=this._textMetrics.fontBoundingBoxAscent,this._workGlyph.fontBoundingBoxDescent=this._textMetrics.fontBoundingBoxDescent,this._workGlyph}_clearColor(e,t,r,s){for(let a=0;a<e.data.length;a+=4)e.data[a]===t&&e.data[a+1]===r&&e.data[a+2]===s&&(e.data[a+3]=0)}_findGlyphBoundingBox(e,t){const r=this._canvas.height,s=this._canvas.width;let a=!1;for(let l=0;l<r;l++){for(let c=0;c<s;c++){const d=l*s*4+c*4+3;if(e.data[d]!==0){t.top=l,a=!0;break}}if(a)break}t.left=0,a=!1;for(let l=0;l<s;l++){for(let c=0;c<r;c++){const d=c*s*4+l*4+3;if(e.data[d]!==0){t.left=l,a=!0;break}}if(a)break}t.right=s,a=!1;for(let l=s-1;l>=t.left;l--){for(let c=0;c<r;c++){const d=c*s*4+l*4+3;if(e.data[d]!==0){t.right=l,a=!0;break}}if(a)break}t.bottom=t.top,a=!1;for(let l=r-1;l>=0;l--){for(let c=0;c<s;c++){const d=l*s*4+c*4+3;if(e.data[d]!==0){t.bottom=l,a=!0;break}}if(a)break}}getTextMetrics(e){return this._ctx.measureText(e)}}__decorate$34([memoize],GlyphRasterizer.prototype,"cacheKey",null);var __decorate$33=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2W=function(o,e){return function(t,r){e(t,r,o)}};let TaskQueue=class extends Disposable$1{constructor(e){super(),this._logService=e,this._tasks=[],this._i=0,this._register(toDisposable(()=>this.clear()))}enqueue(e){this._tasks.push(e),this._start()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(e){this._idleCallback=void 0;let t=0,r=0,s=e.timeRemaining(),a=0;for(;this._i<this._tasks.length;){if(t=Date.now(),this._tasks[this._i]()||this._i++,t=Math.max(1,Date.now()-t),r=Math.max(t,r),a=e.timeRemaining(),r*1.5>a){s-t<-20&&this._logService.warn("task queue exceeded allotted deadline by ".concat(Math.abs(Math.round(s-t)),"ms")),this._start();return}s=a}this.clear()}};TaskQueue=__decorate$33([__param$2W(0,ILogService)],TaskQueue);class PriorityTaskQueue extends TaskQueue{_requestCallback(e){return getActiveWindow().setTimeout(()=>e(this._createDeadline(16)))}_cancelCallback(e){getActiveWindow().clearTimeout(e)}_createDeadline(e){const t=Date.now()+e;return{timeRemaining:()=>Math.max(0,t-Date.now())}}}class IdleTaskQueueInternal extends TaskQueue{_requestCallback(e){return getActiveWindow().requestIdleCallback(e)}_cancelCallback(e){getActiveWindow().cancelIdleCallback(e)}}const IdleTaskQueue="requestIdleCallback"in getActiveWindow()?IdleTaskQueueInternal:PriorityTaskQueue;class TextureAtlasShelfAllocator{constructor(e,t){this._canvas=e,this._textureIndex=t,this._currentRow={x:0,y:0,h:0},this._allocatedGlyphs=new Set,this._nextIndex=0,this._ctx=ensureNonNullable(this._canvas.getContext("2d",{willReadFrequently:!0}))}allocate(e){const t=e.boundingBox.right-e.boundingBox.left+1,r=e.boundingBox.bottom-e.boundingBox.top+1;if(t>this._canvas.width||r>this._canvas.height)throw new BugIndicatingError("Glyph is too large for the atlas page");if(e.boundingBox.right-e.boundingBox.left+1>this._canvas.width-this._currentRow.x&&(this._currentRow.x=0,this._currentRow.y+=this._currentRow.h,this._currentRow.h=1),this._currentRow.y+e.boundingBox.bottom-e.boundingBox.top+1>this._canvas.height)return;this._ctx.drawImage(e.source,e.boundingBox.left,e.boundingBox.top,t,r,this._currentRow.x,this._currentRow.y,t,r);const s={pageIndex:this._textureIndex,glyphIndex:this._nextIndex++,x:this._currentRow.x,y:this._currentRow.y,w:t,h:r,originOffsetX:e.originOffset.x,originOffsetY:e.originOffset.y,fontBoundingBoxAscent:e.fontBoundingBoxAscent,fontBoundingBoxDescent:e.fontBoundingBoxDescent};return this._currentRow.x+=t,this._currentRow.h=Math.max(this._currentRow.h,r),this._allocatedGlyphs.add(s),s}getUsagePreview(){var c,d;const e=this._canvas.width,t=this._canvas.height,r=new OffscreenCanvas(e,t),s=ensureNonNullable(r.getContext("2d"));s.fillStyle="#808080",s.fillRect(0,0,e,t);const a=new Map,l=new Map;for(const u of this._allocatedGlyphs)a.set(u.y,Math.max((c=a.get(u.y))!=null?c:0,u.h)),l.set(u.y,Math.max((d=l.get(u.y))!=null?d:0,u.x+u.w));for(const u of this._allocatedGlyphs)s.fillStyle="#4040FF",s.fillRect(u.x,u.y,u.w,u.h),s.fillStyle="#FF0000",s.fillRect(u.x,u.y+u.h,u.w,a.get(u.y)-u.h);for(const[u,g]of l.entries())u!==this._currentRow.y&&(s.fillStyle="#FF0000",s.fillRect(g,u,e-g,a.get(u)));return r.convertToBlob()}getStats(){var d,u;const e=this._canvas.width,t=this._canvas.height;let r=0,s=0;const a=e*t,l=new Map,c=new Map;for(const g of this._allocatedGlyphs)l.set(g.y,Math.max((d=l.get(g.y))!=null?d:0,g.h)),c.set(g.y,Math.max((u=c.get(g.y))!=null?u:0,g.x+g.w));for(const g of this._allocatedGlyphs)r+=g.w*g.h,s+=g.w*(l.get(g.y)-g.h);for(const[g,f]of c.entries())g!==this._currentRow.y&&(s+=(e-f)*l.get(g));return["page".concat(this._textureIndex,":")," Total: ".concat(a," (").concat(e,"x").concat(t,")")," Used: ".concat(r," (").concat((r/a*100).toPrecision(2),"%)")," Wasted: ".concat(s," (").concat((s/a*100).toPrecision(2),"%)"),"Efficiency: ".concat((r/(r+s)*100).toPrecision(2),"%")].join("\n")}}class TextureAtlasSlabAllocator{constructor(e,t,r){var s,a;this._canvas=e,this._textureIndex=t,this._slabs=[],this._activeSlabsByDims=new NKeyMap,this._unusedRects=[],this._openRegionsByHeight=new Map,this._openRegionsByWidth=new Map,this._allocatedGlyphs=new Set,this._nextIndex=0,this._ctx=ensureNonNullable(this._canvas.getContext("2d",{willReadFrequently:!0})),this._slabW=Math.min((s=r==null?void 0:r.slabW)!=null?s:64<<Math.max(Math.floor(getActiveWindow().devicePixelRatio)-1,0),this._canvas.width),this._slabH=Math.min((a=r==null?void 0:r.slabH)!=null?a:this._slabW,this._canvas.height),this._slabsPerRow=Math.floor(this._canvas.width/this._slabW),this._slabsPerColumn=Math.floor(this._canvas.height/this._slabH)}allocate(e){const t=e.boundingBox.right-e.boundingBox.left+1,r=e.boundingBox.bottom-e.boundingBox.top+1;if(t>this._canvas.width||r>this._canvas.height)throw new BugIndicatingError("Glyph is too large for the atlas page");if(t>this._slabW||r>this._slabH){if(this._allocatedGlyphs.size>0)return;let u=this._canvas.width;for(;t<u/2&&r<u/2;)u/=2;this._slabW=u,this._slabH=u,this._slabsPerRow=Math.floor(this._canvas.width/this._slabW),this._slabsPerColumn=Math.floor(this._canvas.height/this._slabH)}const s={w:t,h:r};let a=this._activeSlabsByDims.get(s.w,s.h);if(a){const u=Math.floor(this._slabW/a.entryW)*Math.floor(this._slabH/a.entryH);a.count>=u&&(a=void 0)}let l,c;if(!a)if(t<r){const u=this._openRegionsByWidth.get(t);if(u!=null&&u.length)for(let g=u.length-1;g>=0;g--){const f=u[g];if(f.w>=t&&f.h>=r){l=f.x,c=f.y,t<f.w&&this._unusedRects.push({x:f.x+t,y:f.y,w:f.w-t,h:r}),f.y+=r,f.h-=r,f.h===0&&(g===u.length-1?u.pop():this._unusedRects.splice(g,1));break}}}else{const u=this._openRegionsByHeight.get(r);if(u!=null&&u.length)for(let g=u.length-1;g>=0;g--){const f=u[g];if(f.w>=t&&f.h>=r){l=f.x,c=f.y,r<f.h&&this._unusedRects.push({x:f.x,y:f.y+r,w:t,h:f.h-r}),f.x+=t,f.w-=t,f.h===0&&(g===u.length-1?u.pop():this._unusedRects.splice(g,1));break}}}if(l===void 0||c===void 0){if(!a){if(this._slabs.length>=this._slabsPerRow*this._slabsPerColumn)return;a={x:Math.floor(this._slabs.length%this._slabsPerRow)*this._slabW,y:Math.floor(this._slabs.length/this._slabsPerRow)*this._slabH,entryW:s.w,entryH:s.h,count:0};const g=this._slabW%a.entryW,f=this._slabH%a.entryH;g&&addEntryToMapArray(this._openRegionsByWidth,g,{x:a.x+this._slabW-g,w:g,y:a.y,h:this._slabH-(f!=null?f:0)}),f&&addEntryToMapArray(this._openRegionsByHeight,f,{x:a.x,w:this._slabW,y:a.y+this._slabH-f,h:f}),this._slabs.push(a),this._activeSlabsByDims.set(a,s.w,s.h)}const u=Math.floor(this._slabW/a.entryW);l=a.x+Math.floor(a.count%u)*a.entryW,c=a.y+Math.floor(a.count/u)*a.entryH,a.count++}this._ctx.drawImage(e.source,e.boundingBox.left,e.boundingBox.top,t,r,l,c,t,r);const d={pageIndex:this._textureIndex,glyphIndex:this._nextIndex++,x:l,y:c,w:t,h:r,originOffsetX:e.originOffset.x,originOffsetY:e.originOffset.y,fontBoundingBoxAscent:e.fontBoundingBoxAscent,fontBoundingBoxDescent:e.fontBoundingBoxDescent};return this._allocatedGlyphs.add(d),d}getUsagePreview(){const e=this._canvas.width,t=this._canvas.height,r=new OffscreenCanvas(e,t),s=ensureNonNullable(r.getContext("2d"));s.fillStyle="#808080",s.fillRect(0,0,e,t);let a=0,l=0,c=0;const d=64<<Math.floor(getActiveWindow().devicePixelRatio)-1,u=d;for(const f of this._slabs){let m=0,_=0;for(let C=0;C<f.count;C++)m+f.entryW>d&&(m=0,_+=f.entryH),s.fillStyle="#FF0000",s.fillRect(f.x+m,f.y+_,f.entryW,f.entryH),a+=f.entryW*f.entryH,m+=f.entryW;const v=Math.floor(d/f.entryW),b=Math.floor(u/f.entryH);f.entryW*v*f.entryH*b}for(const f of this._allocatedGlyphs)l+=f.w*f.h,s.fillStyle="#4040FF",s.fillRect(f.x,f.y,f.w,f.h);const g=Array.from(this._openRegionsByWidth.values()).flat().concat(Array.from(this._openRegionsByHeight.values()).flat());for(const f of g)s.fillStyle="#FF000088",s.fillRect(f.x,f.y,f.w,f.h),c+=f.w*f.h;return s.globalAlpha=.5,s.drawImage(this._canvas,0,0),s.globalAlpha=1,r.convertToBlob()}getStats(){const e=this._canvas.width,t=this._canvas.height;let r=0,s=0,a=0,l=0,c=0;const d=e*t,u=64<<Math.floor(getActiveWindow().devicePixelRatio)-1,g=u;for(const v of this._slabs){let b=0,C=0;for(let E=0;E<v.count;E++)b+v.entryW>u&&(b=0,C+=v.entryH),r+=v.entryW*v.entryH,b+=v.entryW;const y=Math.floor(u/v.entryW),S=Math.floor(g/v.entryH),w=v.entryW*y*v.entryH*S;a+=u*g-w}for(const v of this._allocatedGlyphs)s+=v.w*v.h;const f=Array.from(this._openRegionsByWidth.values()).flat().concat(Array.from(this._openRegionsByHeight.values()).flat());for(const v of f)c+=v.w*v.h;const m=a-c;l=r-(s-m);const _=s/(s+l+c);return["page[".concat(this._textureIndex,"]:")," Total: ".concat(d,"px (").concat(e,"x").concat(t,")")," Used: ".concat(s,"px (").concat((s/d*100).toFixed(2),"%)")," Wasted: ".concat(l,"px (").concat((l/d*100).toFixed(2),"%)"),"Restricted: ".concat(c,"px (").concat((c/d*100).toFixed(2),"%) (hard to allocate)"),"Efficiency: ".concat(_===1?"100":(_*100).toFixed(2),"%")," Slabs: ".concat(this._slabs.length," of ").concat(Math.floor(this._canvas.width/u)*Math.floor(this._canvas.height/g))].join("\n")}}function addEntryToMapArray(o,e,t){let r=o.get(e);r||(r=[],o.set(e,r)),r.push(t)}var __decorate$32=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2V=function(o,e){return function(t,r){e(t,r,o)}},TextureAtlasPage_1,Xi;let TextureAtlasPage=(Xi=class extends Disposable$1{get version(){return this._version}get usedArea(){return this._usedArea}get source(){return this._canvas}get glyphs(){return this._glyphInOrderSet.values()}constructor(e,t,r,s,a){switch(super(),this._logService=s,this._version=0,this._usedArea={left:0,top:0,right:0,bottom:0},this._glyphMap=new NKeyMap,this._glyphInOrderSet=new Set,this._canvas=new OffscreenCanvas(t,t),this._colorMap=a.getColorTheme().tokenColorMap,r){case"shelf":this._allocator=new TextureAtlasShelfAllocator(this._canvas,e);break;case"slab":this._allocator=new TextureAtlasSlabAllocator(this._canvas,e);break;default:this._allocator=r(this._canvas,e);break}this._register(toDisposable(()=>{this._canvas.width=1,this._canvas.height=1}))}getGlyph(e,t,r,s){var a;return(a=this._glyphMap.get(t,r,s,e.cacheKey))!=null?a:this._createGlyph(e,t,r,s)}_createGlyph(e,t,r,s){if(this._glyphInOrderSet.size>=TextureAtlasPage_1.maximumGlyphCount)return;const a=e.rasterizeGlyph(t,r,s,this._colorMap),l=this._allocator.allocate(a);if(l!==void 0)return this._glyphMap.set(l,t,r,s,e.cacheKey),this._glyphInOrderSet.add(l),this._version++,this._usedArea.right=Math.max(this._usedArea.right,l.x+l.w-1),this._usedArea.bottom=Math.max(this._usedArea.bottom,l.y+l.h-1),this._logService.getLevel()===LogLevel.Trace&&this._logService.trace("New glyph",{chars:t,tokenMetadata:r,decorationStyleSetId:s,rasterizedGlyph:a,glyph:l}),l}getUsagePreview(){return this._allocator.getUsagePreview()}getStats(){return this._allocator.getStats()}},TextureAtlasPage_1=Xi,Xi.maximumGlyphCount=5e3,Xi);TextureAtlasPage=TextureAtlasPage_1=__decorate$32([__param$2V(3,ILogService),__param$2V(4,IThemeService)],TextureAtlasPage);var __decorate$31=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2U=function(o,e){return function(t,r){e(t,r,o)}},TextureAtlas_1,Zi;let TextureAtlas=(Zi=class extends Disposable$1{get pages(){return this._pages}constructor(e,t,r,s,a){var c;super(),this._maxTextureSize=e,this._decorationStyleCache=r,this._themeService=s,this._instantiationService=a,this._warmUpTask=this._register(new MutableDisposable),this._warmedUpRasterizers=new Set,this._pages=[],this._glyphPageIndex=new NKeyMap,this._onDidDeleteGlyphs=this._register(new Emitter$1),this.onDidDeleteGlyphs=this._onDidDeleteGlyphs.event,this._allocatorType=(c=t==null?void 0:t.allocatorType)!=null?c:"slab",this._register(Event$1.runAndSubscribe(this._themeService.onDidColorThemeChange,()=>{this._colorMap&&this.clear(),this._colorMap=this._themeService.getColorTheme().tokenColorMap}));const l=Math.max(1,Math.floor(getActiveWindow().devicePixelRatio));this.pageSize=Math.min(1024*l,this._maxTextureSize),this._initFirstPage(),this._register(toDisposable(()=>dispose(this._pages)))}_initFirstPage(){const e=this._instantiationService.createInstance(TextureAtlasPage,0,this.pageSize,this._allocatorType);this._pages.push(e);const t=new GlyphRasterizer(1,"",1,this._decorationStyleCache);e.getGlyph(t,"",0,0),t.dispose()}clear(){for(const e of this._pages)e.dispose();this._pages.length=0,this._glyphPageIndex.clear(),this._warmedUpRasterizers.clear(),this._warmUpTask.clear(),this._initFirstPage(),this._onDidDeleteGlyphs.fire()}getGlyph(e,t,r,s,a){var l;return r&=-2048,r|=Math.floor(a%1*10),this._warmedUpRasterizers.has(e.id)||(this._warmUpAtlas(e),this._warmedUpRasterizers.add(e.id)),this._tryGetGlyph((l=this._glyphPageIndex.get(t,r,s,e.cacheKey))!=null?l:0,e,t,r,s)}_tryGetGlyph(e,t,r,s,a){var l,c;return this._glyphPageIndex.set(e,r,s,a,t.cacheKey),(c=(l=this._pages[e].getGlyph(t,r,s,a))!=null?l:e+1<this._pages.length?this._tryGetGlyph(e+1,t,r,s,a):void 0)!=null?c:this._getGlyphFromNewPage(t,r,s,a)}_getGlyphFromNewPage(e,t,r,s){if(this._pages.length>=TextureAtlas_1.maximumPageCount)throw new Error("Attempt to create a texture atlas page past the limit ".concat(TextureAtlas_1.maximumPageCount));return this._pages.push(this._instantiationService.createInstance(TextureAtlasPage,this._pages.length,this.pageSize,this._allocatorType)),this._glyphPageIndex.set(this._pages.length-1,t,r,s,e.cacheKey),this._pages[this._pages.length-1].getGlyph(e,t,r,s)}getStats(){return this._pages.map(e=>e.getStats())}_warmUpAtlas(e){var s;const t=this._colorMap;if(!t)throw new BugIndicatingError("Cannot warm atlas without color map");(s=this._warmUpTask.value)==null||s.clear();const r=this._warmUpTask.value=this._instantiationService.createInstance(IdleTaskQueue);for(let a=65;a<=90;a++)for(const l of t.keys())r.enqueue(()=>{for(let c=0;c<1;c+=.1)this.getGlyph(e,String.fromCharCode(a),l<<15&16744448,0,c)});for(let a=97;a<=122;a++)for(const l of t.keys())r.enqueue(()=>{for(let c=0;c<1;c+=.1)this.getGlyph(e,String.fromCharCode(a),l<<15&16744448,0,c)});for(let a=33;a<=126;a++)for(const l of t.keys())r.enqueue(()=>{for(let c=0;c<1;c+=.1)this.getGlyph(e,String.fromCharCode(a),l<<15&16744448,0,c)})}},TextureAtlas_1=Zi,Zi.maximumPageCount=16,Zi);TextureAtlas=TextureAtlas_1=__decorate$31([__param$2U(3,IThemeService),__param$2U(4,IInstantiationService)],TextureAtlas);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",r="warn",s="info",a="ignore";function l(d){return d?equalsIgnoreCase(e,d)?o.Error:equalsIgnoreCase(t,d)||equalsIgnoreCase(r,d)?o.Warning:equalsIgnoreCase(s,d)?o.Info:o.Ignore:o.Ignore}o.fromValue=l;function c(d){switch(d){case o.Error:return e;case o.Warning:return t;case o.Info:return s;default:return a}}o.toString=c})(Severity$1||(Severity$1={}));var Severity$1$1=Severity$1,Severity=Severity$1$1;const INotificationService=createDecorator("notificationService");class NoOpNotification{}var GPULifecycle;(function(o){async function e(s){try{if(!navigator.gpu)throw new Error("This browser does not support WebGPU");const a=await navigator.gpu.requestAdapter();if(!a)throw new Error("This browser supports WebGPU but it appears to be disabled");return wrapDestroyableInDisposable(await a.requestDevice())}catch(a){throw s&&s(a.message),a}}o.requestDevice=e;function t(s,a,l){const c=s.createBuffer(a);return l&&s.queue.writeBuffer(c,0,isFunction$2(l)?l():l),wrapDestroyableInDisposable(c)}o.createBuffer=t;function r(s,a){return wrapDestroyableInDisposable(s.createTexture(a))}o.createTexture=r})(GPULifecycle||(GPULifecycle={}));function wrapDestroyableInDisposable(o){return{object:o,dispose:()=>o.destroy()}}class BufferDirtyTracker{get dataOffset(){return this._startIndex}get dirtySize(){if(!(this._startIndex===void 0||this._endIndex===void 0))return this._endIndex-this._startIndex+1}get isDirty(){return this._startIndex!==void 0}flag(e,t=1){return this._flag(e),t>1&&this._flag(e+t-1),e}_flag(e){(this._startIndex===void 0||e<this._startIndex)&&(this._startIndex=e),(this._endIndex===void 0||e>this._endIndex)&&(this._endIndex=e)}clear(){this._startIndex=void 0,this._endIndex=void 0}}function createObjectCollectionBuffer(o,e){return new ObjectCollectionBuffer(o,e)}class ObjectCollectionBuffer extends Disposable$1{get entryCount(){return this._entries.size}get dirtyTracker(){return this._dirtyTracker}constructor(e,t){super(),this.propertySpecs=e,this.capacity=t,this._dirtyTracker=new BufferDirtyTracker,this._propertySpecsMap=new Map,this._entries=new LinkedList,this._onDidChange=this._register(new Emitter$1),this._onDidChangeBuffer=this._register(new Emitter$1),this.onDidChangeBuffer=this._onDidChangeBuffer.event,this.view=new Float32Array(t*e.length),this.buffer=this.view.buffer,this._entrySize=e.length;for(let r=0;r<e.length;r++){const s={offset:r,...e[r]};this._propertySpecsMap.set(s.name,s)}this._register(toDisposable(()=>dispose(this._entries)))}createEntry(e){this._entries.size===this.capacity&&(this._expandBuffer(),this._onDidChangeBuffer.fire());const t=new ObjectCollectionBufferEntry(this.view,this._propertySpecsMap,this._dirtyTracker,this._entries.size,e),r=this._entries.push(t),s=[];return s.push(Event$1.forward(t.onDidChange,this._onDidChange)),s.push(t.onWillDispose(()=>{const a=t.i;r(),this.view.set(this.view.subarray(a*this._entrySize+2,this._entries.size*this._entrySize+2),a*this._entrySize);for(const l of this._entries)l.i>a&&l.i--;this._dirtyTracker.flag(a,(this._entries.size-a)*this._entrySize),dispose(s)})),t}_expandBuffer(){this.capacity*=2;const e=new Float32Array(this.capacity*this._entrySize);e.set(this.view),this.view=e,this.buffer=this.view.buffer}}class ObjectCollectionBufferEntry extends Disposable$1{constructor(e,t,r,s,a){super(),this._view=e,this._propertySpecsMap=t,this._dirtyTracker=r,this.i=s,this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this._onWillDispose=this._register(new Emitter$1),this.onWillDispose=this._onWillDispose.event;for(const l of this._propertySpecsMap.values())this._view[this.i*this._propertySpecsMap.size+l.offset]=a[l.name];this._dirtyTracker.flag(this.i*this._propertySpecsMap.size,this._propertySpecsMap.size)}dispose(){this._onWillDispose.fire(),super.dispose()}setRaw(e){if(e.length!==this._propertySpecsMap.size)throw new Error("Data length ".concat(e.length," does not match the number of properties in the collection (").concat(this._propertySpecsMap.size,")"));this._view.set(e,this.i*this._propertySpecsMap.size),this._dirtyTracker.flag(this.i*this._propertySpecsMap.size,this._propertySpecsMap.size)}}const rectangleRendererWgsl="\n\nstruct Vertex {\n @location(0) position: vec2f,\n};\n\nstruct LayoutInfo {\n canvasDims: vec2f,\n viewportOffset: vec2f,\n viewportDims: vec2f,\n}\n\nstruct ScrollOffset {\n offset: vec2f,\n}\n\nstruct Shape {\n position: vec2f,\n size: vec2f,\n color: vec4f,\n};\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(1) color: vec4f,\n};\n\n// Uniforms\n@group(0) @binding(1) var<uniform> layoutInfo: LayoutInfo;\n\n// Storage buffers\n@group(0) @binding(0) var<storage, read> shapes: array<Shape>;\n@group(0) @binding(2) var<uniform> scrollOffset: ScrollOffset;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(instance_index) instanceIndex: u32,\n @builtin(vertex_index) vertexIndex : u32\n) -> VSOutput {\n let shape = shapes[instanceIndex];\n\n var vsOut: VSOutput;\n vsOut.position = vec4f(\n (\n // Top left corner\n vec2f(-1, 1) +\n // Convert pixel position to clipspace\n vec2f( 2, -2) / layoutInfo.canvasDims *\n // Shape position and size\n (layoutInfo.viewportOffset - scrollOffset.offset + shape.position + vert.position * shape.size)\n ),\n 0.0,\n 1.0\n );\n vsOut.color = shape.color;\n return vsOut;\n}\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return vsOut.color;\n}\n";class RectangleRenderer extends ViewEventHandler{constructor(e,t,r,s,a,l){super(),this._context=e,this._contentLeft=t,this._devicePixelRatio=r,this._canvas=s,this._ctx=a,this._shapeBindBuffer=this._register(new MutableDisposable),this._initialized=!1,this._shapeCollection=this._register(createObjectCollectionBuffer([{name:"x"},{name:"y"},{name:"width"},{name:"height"},{name:"red"},{name:"green"},{name:"blue"},{name:"alpha"}],32)),this._context.addEventHandler(this),this._initWebgpu(l)}async _initWebgpu(e){if(this._device=await e,this._store.isDisposed)return;const t=navigator.gpu.getPreferredCanvasFormat();this._ctx.configure({device:this._device,format:t,alphaMode:"premultiplied"}),this._renderPassColorAttachment={view:null,loadOp:"load",storeOp:"store"},this._renderPassDescriptor={label:"Monaco rectangle renderer render pass",colorAttachments:[this._renderPassColorAttachment]};let r;{const c=new Float32Array(6),d=(u=this._canvas.width,g=this._canvas.height)=>(c[0]=u,c[1]=g,c[2]=Math.ceil(this._context.configuration.options.get(165).contentLeft*getActiveWindow().devicePixelRatio),c[3]=0,c[4]=c[0]-c[2],c[5]=c[1]-c[3],c);r=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco rectangle renderer uniform buffer",size:24,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST},()=>d())).object,this._register(observeDevicePixelDimensions(this._canvas,getActiveWindow(),(u,g)=>{this._device.queue.writeBuffer(r,0,d(u,g))}))}const s=2;this._scrollOffsetBindBuffer=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco rectangle renderer scroll offset buffer",size:s*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})).object,this._scrollOffsetValueBuffer=new Float32Array(s);const a=()=>GPULifecycle.createBuffer(this._device,{label:"Monaco rectangle renderer shape buffer",size:this._shapeCollection.buffer.byteLength,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST});this._shapeBindBuffer.value=a(),this._register(Event$1.runAndSubscribe(this._shapeCollection.onDidChangeBuffer,()=>{this._shapeBindBuffer.value=a(),this._pipeline&&this._updateBindGroup(this._pipeline,r)})),this._vertexBuffer=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco rectangle renderer vertex buffer",size:quadVertices.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST},quadVertices)).object;const l=this._device.createShaderModule({label:"Monaco rectangle renderer shader module",code:rectangleRendererWgsl});this._pipeline=this._device.createRenderPipeline({label:"Monaco rectangle renderer render pipeline",layout:"auto",vertex:{module:l,buffers:[{arrayStride:2*Float32Array.BYTES_PER_ELEMENT,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:l,targets:[{format:t,blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"}}}]}}),this._updateBindGroup(this._pipeline,r),this._initialized=!0}_updateBindGroup(e,t){this._bindGroup=this._device.createBindGroup({label:"Monaco rectangle renderer bind group",layout:e.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this._shapeBindBuffer.value.object}},{binding:1,resource:{buffer:t}},{binding:2,resource:{buffer:this._scrollOffsetBindBuffer}}]})}register(e,t,r,s,a,l,c,d){return this._shapeCollection.createEntry({x:e,y:t,width:r,height:s,red:a,green:l,blue:c,alpha:d})}onScrollChanged(e){if(this._device){const t=getActiveWindow().devicePixelRatio;this._scrollOffsetValueBuffer[0]=this._context.viewLayout.getCurrentScrollLeft()*t,this._scrollOffsetValueBuffer[1]=this._context.viewLayout.getCurrentScrollTop()*t,this._device.queue.writeBuffer(this._scrollOffsetBindBuffer,0,this._scrollOffsetValueBuffer)}return!0}_update(){if(!this._device)return;const e=this._shapeCollection;e.dirtyTracker.isDirty&&(this._device.queue.writeBuffer(this._shapeBindBuffer.value.object,0,e.buffer,e.dirtyTracker.dataOffset,e.dirtyTracker.dirtySize*e.view.BYTES_PER_ELEMENT),e.dirtyTracker.clear())}draw(e){if(!this._initialized)return;this._update();const t=this._device.createCommandEncoder({label:"Monaco rectangle renderer command encoder"});this._renderPassColorAttachment.view=this._ctx.getCurrentTexture().createView();const r=t.beginRenderPass(this._renderPassDescriptor);r.setPipeline(this._pipeline),r.setVertexBuffer(0,this._vertexBuffer),r.setBindGroup(0,this._bindGroup);const s=Math.ceil(this._contentLeft.get()*this._devicePixelRatio.get());r.setScissorRect(s,0,this._canvas.width-s,this._canvas.height),r.draw(quadVertices.length/2,this._shapeCollection.entryCount),r.end();const a=t.finish();this._device.queue.submit([a])}}class DecorationCssRuleExtractor extends Disposable$1{constructor(){super(),this._ruleCache=new Map,this._container=$$m("div.monaco-decoration-css-rule-extractor"),this._dummyElement=$$m("span"),this._container.appendChild(this._dummyElement),this._register(toDisposable(()=>this._container.remove()))}getStyleRules(e,t){const r=this._ruleCache.get(t);if(r)return r;this._dummyElement.className=t,e.appendChild(this._container);const s=this._getStyleRules(t);return this._ruleCache.set(t,s),e.removeChild(this._container),s}_getStyleRules(e){const t=[],s=[...getActiveDocument().styleSheets];for(let a=0;a<s.length;a++){const l=s[a];for(const c of l.cssRules)if(c instanceof CSSImportRule)c.styleSheet&&s.push(c.styleSheet);else if(c instanceof CSSStyleRule){const d=".".concat(e),u=c.selectorText.indexOf(d);if(u!==-1){const g=u+d.length;(c.selectorText.length===g||c.selectorText.substring(g,g+1).match(/[ :]/))&&t.push(c)}}}return t}}class DecorationStyleCache{constructor(){this._nextId=1,this._cacheById=new Map,this._cacheByStyle=new NKeyMap}getOrCreateEntry(e,t,r){if(e===void 0&&t===void 0&&r===void 0)return 0;const s=this._cacheByStyle.get(e!=null?e:0,t?1:0,r===void 0?"":r.toFixed(2));if(s)return s.id;const a=this._nextId++,l={id:a,color:e,bold:t,opacity:r};return this._cacheById.set(a,l),this._cacheByStyle.set(l,e!=null?e:0,t?1:0,r===void 0?"":r.toFixed(2)),a}getStyleSet(e){if(e!==0)return this._cacheById.get(e)}}function runOnChange(o,e){let t,r=!0;return autorunWithStoreHandleChanges({changeTracker:{createChangeSummary:()=>({deltas:[],didChange:!1}),handleChange:(s,a)=>{if(s.didChange(o)){const l=s.change;l!==void 0&&a.deltas.push(l),a.didChange=!0}return!0}}},(s,a)=>{const l=o.read(s),c=t;a.didChange&&(t=l,e(l,c,a.deltas)),r&&(r=!1,t=l)})}function runOnChangeWithStore(o,e){const t=new DisposableStore$1,r=runOnChange(o,(s,a,l)=>{t.clear(),e(s,a,l,t)});return{dispose(){r.dispose(),t.dispose()}}}function runOnChangeWithCancellationToken(o,e){return runOnChangeWithStore(o,(t,r,s,a)=>{e(t,r,s,cancelOnDispose(a))})}var __decorate$30=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2T=function(o,e){return function(t,r){e(t,r,o)}},ViewGpuContext_1,gi;let ViewGpuContext=(gi=class extends Disposable$1{static get decorationCssRuleExtractor(){return ViewGpuContext_1._decorationCssRuleExtractor}static get decorationStyleCache(){return ViewGpuContext_1._decorationStyleCache}static get atlas(){if(!ViewGpuContext_1._atlas)throw new BugIndicatingError("Cannot call ViewGpuContext.textureAtlas before device is resolved");return ViewGpuContext_1._atlas}get atlas(){return ViewGpuContext_1.atlas}constructor(e,t,r,s){super(),this._instantiationService=t,this._notificationService=r,this.configurationService=s,this.maxGpuCols=2e3,this.canvas=createFastDomNode(document.createElement("canvas")),this.canvas.setClassName("editorCanvas"),this._register(Event$1.runAndSubscribe(s.onDidChangeConfiguration,d=>{var u,g;if(!d||d.affectsConfiguration("editor.scrollbar.verticalScrollbarSize")){const f=(g=(u=s.getValue("editor").scrollbar)==null?void 0:u.verticalScrollbarSize)!=null?g:14;this.canvas.domNode.style.boxSizing="border-box",this.canvas.domNode.style.paddingRight="".concat(f,"px")}})),this.ctx=ensureNonNullable(this.canvas.domNode.getContext("webgpu")),ViewGpuContext_1.device||(ViewGpuContext_1.device=GPULifecycle.requestDevice(d=>{const u=[{label:localize(78,"Use DOM-based rendering"),run:()=>this.configurationService.updateValue("editor.experimentalGpuAcceleration","off")}];this._notificationService.prompt(Severity.Warning,d,u)}).then(d=>(ViewGpuContext_1.deviceSync=d.object,ViewGpuContext_1._atlas||(ViewGpuContext_1._atlas=this._instantiationService.createInstance(TextureAtlas,d.object.limits.maxTextureDimension2D,void 0,ViewGpuContext_1.decorationStyleCache)),d.object)));const a=observableValue(this,getActiveWindow().devicePixelRatio);this._register(addDisposableListener(getActiveWindow(),"resize",()=>{a.set(getActiveWindow().devicePixelRatio,void 0)})),this.devicePixelRatio=a,this._register(runOnChange(this.devicePixelRatio,()=>{var d;return(d=ViewGpuContext_1.atlas)==null?void 0:d.clear()}));const l=observableValue(this,{width:this.canvas.domNode.width,height:this.canvas.domNode.height});this._register(observeDevicePixelDimensions(this.canvas.domNode,getActiveWindow(),(d,u)=>{this.canvas.domNode.width=d,this.canvas.domNode.height=u,l.set({width:d,height:u},void 0)})),this.canvasDevicePixelDimensions=l;const c=observableValue(this,0);this._register(this.configurationService.onDidChangeConfiguration(d=>{c.set(e.configuration.options.get(165).contentLeft,void 0)})),this.contentLeft=c,this.rectangleRenderer=this._instantiationService.createInstance(RectangleRenderer,e,this.contentLeft,this.devicePixelRatio,this.canvas.domNode,this.ctx,ViewGpuContext_1.device)}canRender(e,t,r){const s=t.getViewLineRenderingData(r);if(s.containsRTL||s.maxColumn>this.maxGpuCols)return!1;if(s.inlineDecorations.length>0){let a=!0;for(const l of s.inlineDecorations){if(l.type!==0){a=!1;break}const c=ViewGpuContext_1._decorationCssRuleExtractor.getStyleRules(this.canvas.domNode,l.inlineClassName);if(a&&(a=c.every(d=>{if(d.selectorText.includes(":"))return!1;for(const u of d.style)if(!supportsCssRule(u,d.style))return!1;return!0})),!a)break}return a}return!0}canRenderDetailed(e,t,r){const s=t.getViewLineRenderingData(r),a=[];if(s.containsRTL&&a.push("containsRTL"),s.maxColumn>this.maxGpuCols&&a.push("maxColumn > maxGpuCols"),s.inlineDecorations.length>0){let l=!0;const c=[],d=[],u=[];for(const g of s.inlineDecorations){if(g.type!==0){c.push(g.type),l=!1;continue}const f=ViewGpuContext_1._decorationCssRuleExtractor.getStyleRules(this.canvas.domNode,g.inlineClassName);l&&(l=f.every(m=>{if(m.selectorText.includes(":"))return d.push(m.selectorText),!1;for(const _ of m.style)if(!supportsCssRule(_,m.style))return u.push("".concat(_,": ").concat(m.style[_])),!1;return!0}))}c.length>0&&a.push("inlineDecorations with unsupported types (".concat(c.map(g=>"`".concat(g,"`")).join(", "),")")),u.length>0&&a.push("inlineDecorations with unsupported CSS rules (".concat(u.map(g=>"`".concat(g,"`")).join(", "),")")),d.length>0&&a.push("inlineDecorations with unsupported CSS selectors (".concat(d.map(g=>"`".concat(g,"`")).join(", "),")"))}return a}},ViewGpuContext_1=gi,gi._decorationCssRuleExtractor=new DecorationCssRuleExtractor,gi._decorationStyleCache=new DecorationStyleCache,gi);ViewGpuContext=ViewGpuContext_1=__decorate$30([__param$2T(1,IInstantiationService),__param$2T(2,INotificationService),__param$2T(3,IConfigurationService)],ViewGpuContext);const gpuSupportedDecorationCssRules=["color","font-weight","opacity"];function supportsCssRule(o,e){return!!gpuSupportedDecorationCssRules.includes(o)}function createContentSegmenter(o,e){return o.isBasicASCII&&e.useMonospaceOptimizations?new AsciiContentSegmenter(o):new GraphemeContentSegmenter(o)}class AsciiContentSegmenter{constructor(e){this._content=e.content}getSegmentAtIndex(e){return this._content[e]}}class GraphemeContentSegmenter{constructor(e){this._segments=[];const t=e.content,r=safeIntl.Segmenter(void 0,{granularity:"grapheme"}).value,s=Array.from(r.segment(t));let a=0;for(let l=0;l<t.length;l++){const c=s[a];if(!c)break;if(c.index!==l){this._segments.push(void 0);continue}a++,this._segments.push(c)}}getSegmentAtIndex(e){var t;return(t=this._segments[e])==null?void 0:t.segment}}class BaseRenderStrategy extends ViewEventHandler{get glyphRasterizer(){return this._glyphRasterizer.value}constructor(e,t,r,s){super(),this._context=e,this._viewGpuContext=t,this._device=r,this._glyphRasterizer=s,this._context.addEventHandler(this)}}const fullFileRenderStrategyWgsl="\nstruct GlyphInfo {\n position: vec2f,\n size: vec2f,\n origin: vec2f,\n};\n\nstruct Vertex {\n @location(0) position: vec2f,\n};\n\nstruct Cell {\n position: vec2f,\n unused1: vec2f,\n glyphIndex: f32,\n textureIndex: f32\n};\n\nstruct LayoutInfo {\n canvasDims: vec2f,\n viewportOffset: vec2f,\n viewportDims: vec2f,\n}\n\nstruct ScrollOffset {\n offset: vec2f\n}\n\nstruct VSOutput {\n @builtin(position) position: vec4f,\n @location(1) layerIndex: f32,\n @location(0) texcoord: vec2f,\n};\n\n// Uniforms\n@group(0) @binding(4) var<uniform> layoutInfo: LayoutInfo;\n@group(0) @binding(5) var<uniform> atlasDims: vec2f;\n@group(0) @binding(6) var<uniform> scrollOffset: ScrollOffset;\n\n// Storage buffers\n@group(0) @binding(0) var<storage, read> glyphInfo: array<array<GlyphInfo, ".concat(TextureAtlasPage.maximumGlyphCount,">, ").concat(TextureAtlas.maximumPageCount,">;\n@group(0) @binding(1) var<storage, read> cells: array<Cell>;\n\n@vertex fn vs(\n vert: Vertex,\n @builtin(instance_index) instanceIndex: u32,\n @builtin(vertex_index) vertexIndex : u32\n) -> VSOutput {\n let cell = cells[instanceIndex];\n var glyph = glyphInfo[u32(cell.textureIndex)][u32(cell.glyphIndex)];\n\n var vsOut: VSOutput;\n // Multiple vert.position by 2,-2 to get it into clipspace which ranged from -1 to 1\n vsOut.position = vec4f(\n // Make everything relative to top left instead of center\n vec2f(-1, 1) +\n ((vert.position * vec2f(2, -2)) / layoutInfo.canvasDims) * glyph.size +\n ((cell.position * vec2f(2, -2)) / layoutInfo.canvasDims) +\n ((glyph.origin * vec2f(2, -2)) / layoutInfo.canvasDims) +\n (((layoutInfo.viewportOffset - scrollOffset.offset * vec2(1, -1)) * 2) / layoutInfo.canvasDims),\n 0.0,\n 1.0\n );\n\n vsOut.layerIndex = cell.textureIndex;\n // Textures are flipped from natural direction on the y-axis, so flip it back\n vsOut.texcoord = vert.position;\n vsOut.texcoord = (\n // Glyph offset (0-1)\n (glyph.position / atlasDims) +\n // Glyph coordinate (0-1)\n (vsOut.texcoord * (glyph.size / atlasDims))\n );\n\n return vsOut;\n}\n\n@group(0) @binding(2) var ourSampler: sampler;\n@group(0) @binding(3) var ourTexture: texture_2d_array<f32>;\n\n@fragment fn fs(vsOut: VSOutput) -> @location(0) vec4f {\n return textureSample(ourTexture, ourSampler, vsOut.texcoord, u32(vsOut.layerIndex));\n}\n"),Mt=class Mt extends BaseRenderStrategy{get bindGroupEntries(){return[{binding:1,resource:{buffer:this._cellBindBuffer}},{binding:6,resource:{buffer:this._scrollOffsetBindBuffer}}]}constructor(e,t,r,s){super(e,t,r,s),this.type="viewport",this.wgsl=fullFileRenderStrategyWgsl,this._cellBindBufferLineCapacity=63,this._activeDoubleBufferIndex=0,this._visibleObjectCount=0,this._scrollInitialized=!1,this._onDidChangeBindGroupEntries=this._register(new Emitter$1),this.onDidChangeBindGroupEntries=this._onDidChangeBindGroupEntries.event,this._rebuildCellBuffer(this._cellBindBufferLineCapacity);const a=2;this._scrollOffsetBindBuffer=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco scroll offset buffer",size:a*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})).object,this._scrollOffsetValueBuffer=new Float32Array(a)}_rebuildCellBuffer(e){var s;(s=this._cellBindBuffer)==null||s.destroy();const t=(Math.floor(e/32)+1)*32,r=t*Mt.maxSupportedColumns*6*Float32Array.BYTES_PER_ELEMENT;this._cellBindBuffer=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco full file cell buffer",size:r,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})).object,this._cellValueBuffers=[new ArrayBuffer(r),new ArrayBuffer(r)],this._cellBindBufferLineCapacity=t,this._onDidChangeBindGroupEntries.fire()}onConfigurationChanged(e){return!0}onDecorationsChanged(e){return!0}onTokensChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onLinesChanged(e){return!0}onScrollChanged(e){var r,s;const t=getActiveWindow().devicePixelRatio;return this._scrollOffsetValueBuffer[0]=((r=e==null?void 0:e.scrollLeft)!=null?r:this._context.viewLayout.getCurrentScrollLeft())*t,this._scrollOffsetValueBuffer[1]=((s=e==null?void 0:e.scrollTop)!=null?s:this._context.viewLayout.getCurrentScrollTop())*t,this._device.queue.writeBuffer(this._scrollOffsetBindBuffer,0,this._scrollOffsetValueBuffer),!0}onThemeChanged(e){return!0}onLineMappingChanged(e){return!0}onZonesChanged(e){return!0}reset(){for(const e of[0,1]){const t=new Float32Array(this._cellValueBuffers[e]);t.fill(0,0,t.length),this._device.queue.writeBuffer(this._cellBindBuffer,0,t.buffer,0,t.byteLength)}}update(e,t){var N,A;let r="",s,a=0,l=0,c=0,d=0,u=0,g=0,f,m=0,_=0,v=0,b=0,C,y,S,w,E,x=0,L=0,k;const D=getActiveWindow().devicePixelRatio;let I;this._scrollInitialized||(this.onScrollChanged(),this._scrollInitialized=!0),this._cellBindBufferLineCapacity<e.endLineNumber-e.startLineNumber+1&&this._rebuildCellBuffer(e.endLineNumber-e.startLineNumber+1);const T=new Float32Array(this._cellValueBuffers[this._activeDoubleBufferIndex]);T.fill(0);const M=Mt.maxSupportedColumns*6;for(l=e.startLineNumber;l<=e.endLineNumber;l++)if(this._viewGpuContext.canRender(t,e,l)){w=e.getViewLineRenderingData(l),g=0,I=createContentSegmenter(w,t),a=t.spaceWidth*D,d=0,k=w.tokens,_=w.minColumn-1,v=0;for(let O=0,P=k.getCount();O<P;O++)if(v=k.getEndOffset(O),!(v<=_)){for(b=k.getMetadata(O),c=_;c<v&&!(c>Mt.maxSupportedColumns);c++){if(s=I.getSegmentAtIndex(c),s===void 0)continue;r=s,w.isBasicASCII&&t.useMonospaceOptimizations||(a=this.glyphRasterizer.getTextMetrics(r).width),y=void 0,C=void 0,S=void 0;for(E of w.inlineDecorations){if(l<E.range.startLineNumber||l>E.range.endLineNumber||l===E.range.startLineNumber&&c<E.range.startColumn-1||l===E.range.endLineNumber&&c>=E.range.endColumn-1)continue;const B=ViewGpuContext.decorationCssRuleExtractor.getStyleRules(this._viewGpuContext.canvas.domNode,E.inlineClassName);for(const H of B)for(const V of H.style){const U=(A=(N=H.styleMap.get(V))==null?void 0:N.toString())!=null?A:"";switch(V){case"color":{const j=Color.Format.CSS.parse(U);if(!j)throw new BugIndicatingError("Invalid color format "+U);y=j.toNumber32Bit();break}case"font-weight":{parseCssFontWeight$1(U)>=400?C=!0:C=!1;break}case"opacity":{S=parseCssOpacity$1(U);break}default:throw new BugIndicatingError("Unexpected inline decoration style")}}}if(r===" "||r===" "){if(m=((l-1)*Mt.maxSupportedColumns+c)*6,T.fill(0,m,m+6),r===" "){const B=c+g;g=CursorColumns.nextRenderTabStop(c+g,w.tabSize),d+=a*(g-B),g-=c+1}else d+=a;continue}const F=ViewGpuContext.decorationStyleCache.getOrCreateEntry(y,C,S);f=this._viewGpuContext.atlas.getGlyph(this.glyphRasterizer,r,b,F,d),u=Math.round(e.relativeVerticalOffset[l-e.startLineNumber]*D+Math.floor((e.lineHeight*D-(f.fontBoundingBoxAscent+f.fontBoundingBoxDescent))/2)+f.fontBoundingBoxAscent),m=((l-e.startLineNumber)*Mt.maxSupportedColumns+c)*6,T[m+0]=Math.floor(d),T[m+1]=u,T[m+4]=f.glyphIndex,T[m+5]=f.pageIndex,d+=a}_=v}x=((l-e.startLineNumber)*Mt.maxSupportedColumns+v)*6,L=(l-e.startLineNumber)*Mt.maxSupportedColumns*6,T.fill(0,x,L)}const R=(e.endLineNumber-e.startLineNumber+1)*M;return this._device.queue.writeBuffer(this._cellBindBuffer,0,T.buffer,0,(e.endLineNumber-e.startLineNumber)*M*Float32Array.BYTES_PER_ELEMENT),this._activeDoubleBufferIndex=this._activeDoubleBufferIndex?0:1,this._visibleObjectCount=R,R}draw(e,t){if(this._visibleObjectCount<=0)throw new BugIndicatingError("Attempt to draw 0 objects");e.draw(quadVertices.length/2,this._visibleObjectCount)}};Mt.maxSupportedColumns=2e3;let ViewportRenderStrategy=Mt;function parseCssFontWeight$1(o){switch(o){case"lighter":case"normal":return 400;case"bolder":case"bold":return 700}return parseInt(o)}function parseCssOpacity$1(o){return o.endsWith("%")?parseFloat(o.substring(0,o.length-1))/100:o.match(/^\d+(?:\.\d*)/)?parseFloat(o):1}const We=class We extends BaseRenderStrategy{get bindGroupEntries(){return[{binding:1,resource:{buffer:this._cellBindBuffer}},{binding:6,resource:{buffer:this._scrollOffsetBindBuffer}}]}constructor(e,t,r,s){super(e,t,r,s),this.type="fullfile",this.wgsl=fullFileRenderStrategyWgsl,this._activeDoubleBufferIndex=0,this._upToDateLines=[new Set,new Set],this._visibleObjectCount=0,this._finalRenderedLine=0,this._scrollInitialized=!1,this._queuedBufferUpdates=[[],[]];const a=We.maxSupportedLines*We.maxSupportedColumns*6*Float32Array.BYTES_PER_ELEMENT;this._cellBindBuffer=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco full file cell buffer",size:a,usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})).object,this._cellValueBuffers=[new ArrayBuffer(a),new ArrayBuffer(a)];const l=2;this._scrollOffsetBindBuffer=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco scroll offset buffer",size:l*Float32Array.BYTES_PER_ELEMENT,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST})).object,this._scrollOffsetValueBuffer=new Float32Array(l)}onConfigurationChanged(e){return this._invalidateAllLines(),this._queueBufferUpdate(e),!0}onDecorationsChanged(e){return this._invalidateAllLines(),!0}onTokensChanged(e){for(const t of e.ranges)this._invalidateLineRange(t.fromLineNumber,t.toLineNumber);return!0}onLinesDeleted(e){return this._invalidateLinesFrom(e.fromLineNumber),this._queueBufferUpdate(e),!0}onLinesInserted(e){return this._invalidateLinesFrom(e.fromLineNumber),!0}onLinesChanged(e){return this._invalidateLineRange(e.fromLineNumber,e.fromLineNumber+e.count),!0}onScrollChanged(e){var r,s;const t=getActiveWindow().devicePixelRatio;return this._scrollOffsetValueBuffer[0]=((r=e==null?void 0:e.scrollLeft)!=null?r:this._context.viewLayout.getCurrentScrollLeft())*t,this._scrollOffsetValueBuffer[1]=((s=e==null?void 0:e.scrollTop)!=null?s:this._context.viewLayout.getCurrentScrollTop())*t,this._device.queue.writeBuffer(this._scrollOffsetBindBuffer,0,this._scrollOffsetValueBuffer),!0}onThemeChanged(e){return this._invalidateAllLines(),!0}onLineMappingChanged(e){return this._invalidateAllLines(),this._queueBufferUpdate(e),!0}onZonesChanged(e){return this._invalidateAllLines(),this._queueBufferUpdate(e),!0}_invalidateAllLines(){this._upToDateLines[0].clear(),this._upToDateLines[1].clear()}_invalidateLinesFrom(e){for(const t of[0,1]){const r=this._upToDateLines[t];for(const s of r)s>=e&&r.delete(s)}}_invalidateLineRange(e,t){for(let r=e;r<=t;r++)this._upToDateLines[0].delete(r),this._upToDateLines[1].delete(r)}reset(){this._invalidateAllLines();for(const e of[0,1]){const t=new Float32Array(this._cellValueBuffers[e]);t.fill(0,0,t.length),this._device.queue.writeBuffer(this._cellBindBuffer,0,t.buffer,0,t.byteLength)}this._finalRenderedLine=0}update(e,t){var F,B;let r="",s,a=0,l=0,c=0,d=0,u=0,g=0,f,m=0,_=0,v=0,b=0,C,y,S,w,E,x=0,L=0,k;const D=getActiveWindow().devicePixelRatio;let I;this._scrollInitialized||(this.onScrollChanged(),this._scrollInitialized=!0);const T=new Float32Array(this._cellValueBuffers[this._activeDoubleBufferIndex]),M=We.maxSupportedColumns*6,R=this._upToDateLines[this._activeDoubleBufferIndex];let N=3e3,A=0;const O=this._queuedBufferUpdates[this._activeDoubleBufferIndex];for(;O.length;){const H=O.shift();switch(H.type){case 2:case 8:case 17:{T.fill(0),N=1,A=Math.max(A,this._finalRenderedLine),this._finalRenderedLine=0;break}case 10:{const V=(H.fromLineNumber-1)*We.maxSupportedColumns*6,U=H.toLineNumber*We.maxSupportedColumns*6,j=(this._finalRenderedLine-(H.toLineNumber-H.fromLineNumber+1))*We.maxSupportedColumns*6;T.set(T.subarray(U),V),T.fill(0,j),N=Math.min(N,H.fromLineNumber),A=Math.max(A,this._finalRenderedLine),this._finalRenderedLine-=H.toLineNumber-H.fromLineNumber+1;break}}}for(l=e.startLineNumber;l<=e.endLineNumber;l++){if(!this._viewGpuContext.canRender(t,e,l)){x=(l-1)*We.maxSupportedColumns*6,L=l*We.maxSupportedColumns*6,T.fill(0,x,L),N=Math.min(N,l),A=Math.max(A,l);continue}if(!R.has(l)){N=Math.min(N,l),A=Math.max(A,l),w=e.getViewLineRenderingData(l),g=0,I=createContentSegmenter(w,t),a=t.spaceWidth*D,d=0,k=w.tokens,_=w.minColumn-1,v=0;for(let H=0,V=k.getCount();H<V;H++)if(v=k.getEndOffset(H),!(v<=_)){for(b=k.getMetadata(H),c=_;c<v&&!(c>We.maxSupportedColumns);c++){if(s=I.getSegmentAtIndex(c),s===void 0)continue;r=s,w.isBasicASCII&&t.useMonospaceOptimizations||(a=this.glyphRasterizer.getTextMetrics(r).width),y=void 0,C=void 0,S=void 0;for(E of w.inlineDecorations){if(l<E.range.startLineNumber||l>E.range.endLineNumber||l===E.range.startLineNumber&&c<E.range.startColumn-1||l===E.range.endLineNumber&&c>=E.range.endColumn-1)continue;const j=ViewGpuContext.decorationCssRuleExtractor.getStyleRules(this._viewGpuContext.canvas.domNode,E.inlineClassName);for(const X of j)for(const ee of X.style){const Z=(B=(F=X.styleMap.get(ee))==null?void 0:F.toString())!=null?B:"";switch(ee){case"color":{const J=Color.Format.CSS.parse(Z);if(!J)throw new BugIndicatingError("Invalid color format "+Z);y=J.toNumber32Bit();break}case"font-weight":{parseCssFontWeight(Z)>=400?C=!0:C=!1;break}case"opacity":{S=parseCssOpacity(Z);break}default:throw new BugIndicatingError("Unexpected inline decoration style")}}}if(r===" "||r===" "){if(m=((l-1)*We.maxSupportedColumns+c)*6,T.fill(0,m,m+6),r===" "){const j=c+g;g=CursorColumns.nextRenderTabStop(c+g,w.tabSize),d+=a*(g-j),g-=c+1}else d+=a;continue}const U=ViewGpuContext.decorationStyleCache.getOrCreateEntry(y,C,S);f=this._viewGpuContext.atlas.getGlyph(this.glyphRasterizer,r,b,U,d),u=Math.round(e.relativeVerticalOffset[l-e.startLineNumber]*D+Math.floor((e.lineHeight*D-(f.fontBoundingBoxAscent+f.fontBoundingBoxDescent))/2)+f.fontBoundingBoxAscent),m=((l-1)*We.maxSupportedColumns+c)*6,T[m+0]=Math.floor(d),T[m+1]=u,T[m+4]=f.glyphIndex,T[m+5]=f.pageIndex,d+=a}_=v}x=((l-1)*We.maxSupportedColumns+v)*6,L=l*We.maxSupportedColumns*6,T.fill(0,x,L),R.add(l)}}const P=(e.endLineNumber-e.startLineNumber+1)*M;return N=Math.min(N,We.maxSupportedLines),A=Math.min(A,We.maxSupportedLines),N<=A&&this._device.queue.writeBuffer(this._cellBindBuffer,(N-1)*M*Float32Array.BYTES_PER_ELEMENT,T.buffer,(N-1)*M*Float32Array.BYTES_PER_ELEMENT,(A-N+1)*M*Float32Array.BYTES_PER_ELEMENT),this._finalRenderedLine=Math.max(this._finalRenderedLine,A),this._activeDoubleBufferIndex=this._activeDoubleBufferIndex?0:1,this._visibleObjectCount=P,P}draw(e,t){if(this._visibleObjectCount<=0)throw new BugIndicatingError("Attempt to draw 0 objects");e.draw(quadVertices.length/2,this._visibleObjectCount,void 0,(t.startLineNumber-1)*We.maxSupportedColumns)}_queueBufferUpdate(e){this._queuedBufferUpdates[0].push(e),this._queuedBufferUpdates[1].push(e)}};We.maxSupportedLines=3e3,We.maxSupportedColumns=200;let FullFileRenderStrategy=We;function parseCssFontWeight(o){switch(o){case"lighter":case"normal":return 400;case"bolder":case"bold":return 700}return parseInt(o)}function parseCssOpacity(o){return o.endsWith("%")?parseFloat(o.substring(0,o.length-1))/100:o.match(/^\d+(?:\.\d*)/)?parseFloat(o):1}var __decorate$2$=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2S=function(o,e){return function(t,r){e(t,r,o)}};let ViewLinesGpu=class extends ViewPart{constructor(e,t,r,s){super(e),this._viewGpuContext=t,this._instantiationService=r,this._logService=s,this._atlasGpuTextureVersions=[],this._initialized=!1,this._glyphRasterizer=this._register(new MutableDisposable),this._renderStrategy=this._register(new MutableDisposable),this.canvas=this._viewGpuContext.canvas.domNode,this._register(autorun(a=>{this._viewGpuContext.canvasDevicePixelDimensions.read(a);const l=this._lastViewportData;l&&setTimeout(()=>{l===this._lastViewportData&&this.renderText(l)})})),this.initWebgpu()}async initWebgpu(){if(this._device=ViewGpuContext.deviceSync||await ViewGpuContext.device,this._store.isDisposed)return;const e=ViewGpuContext.atlas;this._register(e.onDidDeleteGlyphs(()=>{this._atlasGpuTextureVersions.length=0,this._atlasGpuTextureVersions[0]=0,this._atlasGpuTextureVersions[1]=0,this._renderStrategy.value.reset()}));const t=navigator.gpu.getPreferredCanvasFormat();this._viewGpuContext.ctx.configure({device:this._device,format:t,alphaMode:"premultiplied"}),this._renderPassColorAttachment={view:null,loadOp:"load",storeOp:"store"},this._renderPassDescriptor={label:"Monaco render pass",colorAttachments:[this._renderPassColorAttachment]};let r;{const d=new Float32Array(6),u=(g=this.canvas.width,f=this.canvas.height)=>(d[0]=g,d[1]=f,d[2]=Math.ceil(this._context.configuration.options.get(165).contentLeft*getActiveWindow().devicePixelRatio),d[3]=0,d[4]=d[0]-d[2],d[5]=d[1]-d[3],d);r=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco uniform buffer",size:24,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST},()=>u())).object,this._register(runOnChange(this._viewGpuContext.canvasDevicePixelDimensions,({width:g,height:f})=>{this._device.queue.writeBuffer(r,0,u(g,f))})),this._register(runOnChange(this._viewGpuContext.contentLeft,()=>{this._device.queue.writeBuffer(r,0,u())}))}let s;s=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco atlas info uniform buffer",size:8,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST},()=>{const d=new Float32Array(2);return d[0]=e.pageSize,d[1]=e.pageSize,d})).object;const a=this._context.configuration.options.get(58),l=this._context.configuration.options.get(61);this._glyphRasterizer.value=this._register(new GlyphRasterizer(l,a,this._viewGpuContext.devicePixelRatio.get(),ViewGpuContext.decorationStyleCache)),this._register(runOnChange(this._viewGpuContext.devicePixelRatio,()=>{this._refreshGlyphRasterizer()})),this._renderStrategy.value=this._instantiationService.createInstance(FullFileRenderStrategy,this._context,this._viewGpuContext,this._device,this._glyphRasterizer),this._glyphStorageBuffer=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco glyph storage buffer",size:TextureAtlas.maximumPageCount*(TextureAtlasPage.maximumGlyphCount*24),usage:GPUBufferUsage.STORAGE|GPUBufferUsage.COPY_DST})).object,this._atlasGpuTextureVersions[0]=0,this._atlasGpuTextureVersions[1]=0,this._atlasGpuTexture=this._register(GPULifecycle.createTexture(this._device,{label:"Monaco atlas texture",format:"rgba8unorm",size:{width:e.pageSize,height:e.pageSize,depthOrArrayLayers:TextureAtlas.maximumPageCount},dimension:"2d",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT})).object,this._updateAtlasStorageBufferAndTexture(),this._vertexBuffer=this._register(GPULifecycle.createBuffer(this._device,{label:"Monaco vertex buffer",size:quadVertices.byteLength,usage:GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST},quadVertices)).object;const c=this._device.createShaderModule({label:"Monaco shader module",code:this._renderStrategy.value.wgsl});if(this._pipeline=this._device.createRenderPipeline({label:"Monaco render pipeline",layout:"auto",vertex:{module:c,buffers:[{arrayStride:2*Float32Array.BYTES_PER_ELEMENT,attributes:[{shaderLocation:0,offset:0,format:"float32x2"}]}]},fragment:{module:c,targets:[{format:t,blend:{color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"},alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha"}}}]}}),this._rebuildBindGroup=()=>{this._bindGroup=this._device.createBindGroup({label:"Monaco bind group",layout:this._pipeline.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:this._glyphStorageBuffer}},{binding:2,resource:this._device.createSampler({label:"Monaco atlas sampler",magFilter:"nearest",minFilter:"nearest"})},{binding:3,resource:this._atlasGpuTexture.createView()},{binding:4,resource:{buffer:r}},{binding:5,resource:{buffer:s}},...this._renderStrategy.value.bindGroupEntries]})},this._rebuildBindGroup(),this._initialized=!0,this._initViewportData){for(const d of this._initViewportData)this.renderText(d);this._initViewportData=void 0}}_refreshRenderStrategy(e){var r,s;if(((r=this._renderStrategy.value)==null?void 0:r.type)==="viewport"||e.endLineNumber<FullFileRenderStrategy.maxSupportedLines&&this._viewportMaxColumn(e)<FullFileRenderStrategy.maxSupportedColumns)return;this._logService.trace("File is larger than ".concat(FullFileRenderStrategy.maxSupportedLines," lines or ").concat(FullFileRenderStrategy.maxSupportedColumns," columns, switching to viewport render strategy"));const t=this._instantiationService.createInstance(ViewportRenderStrategy,this._context,this._viewGpuContext,this._device,this._glyphRasterizer);this._renderStrategy.value=t,this._register(t.onDidChangeBindGroupEntries(()=>{var a;return(a=this._rebuildBindGroup)==null?void 0:a.call(this)})),(s=this._rebuildBindGroup)==null||s.call(this)}_viewportMaxColumn(e){let t=0,r;for(let s=e.startLineNumber;s<=e.endLineNumber;s++)r=e.getViewLineRenderingData(s),t=Math.max(t,r.maxColumn);return t}_updateAtlasStorageBufferAndTexture(){for(const[e,t]of ViewGpuContext.atlas.pages.entries()){if(e>=TextureAtlas.maximumPageCount){console.log("Attempt to upload atlas page [".concat(e,"], only ").concat(TextureAtlas.maximumPageCount," are supported currently"));continue}if(t.version===this._atlasGpuTextureVersions[e])continue;this._logService.trace("Updating atlas page[",e,"] from version ",this._atlasGpuTextureVersions[e]," to version ",t.version);const r=6*TextureAtlasPage.maximumGlyphCount,s=new Float32Array(r);let a=0;for(const l of t.glyphs)s[a+0]=l.x,s[a+0+1]=l.y,s[a+2]=l.w,s[a+2+1]=l.h,s[a+4]=l.originOffsetX,s[a+4+1]=l.originOffsetY,a+=6;if(a/6>TextureAtlasPage.maximumGlyphCount)throw new Error("Attempting to write more glyphs (".concat(a/6,") than the GPUBuffer can hold (").concat(TextureAtlasPage.maximumGlyphCount,")"));this._device.queue.writeBuffer(this._glyphStorageBuffer,e*6*TextureAtlasPage.maximumGlyphCount*Float32Array.BYTES_PER_ELEMENT,s,0,6*TextureAtlasPage.maximumGlyphCount),t.usedArea.right-t.usedArea.left>0&&t.usedArea.bottom-t.usedArea.top>0&&this._device.queue.copyExternalImageToTexture({source:t.source},{texture:this._atlasGpuTexture,origin:{x:t.usedArea.left,y:t.usedArea.top,z:e}},{width:t.usedArea.right-t.usedArea.left+1,height:t.usedArea.bottom-t.usedArea.top+1}),this._atlasGpuTextureVersions[e]=t.version}}prepareRender(e){throw new BugIndicatingError("Should not be called")}render(e){throw new BugIndicatingError("Should not be called")}onConfigurationChanged(e){return this._refreshGlyphRasterizer(),!0}onCursorStateChanged(e){return!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onLineMappingChanged(e){return!0}onRevealRangeRequest(e){return!0}onScrollChanged(e){return!0}onThemeChanged(e){return!0}onZonesChanged(e){return!0}_refreshGlyphRasterizer(){const e=this._glyphRasterizer.value;if(!e)return;const t=this._context.configuration.options.get(58),r=this._context.configuration.options.get(61),s=this._viewGpuContext.devicePixelRatio.get();(e.fontFamily!==t||e.fontSize!==r||e.devicePixelRatio!==s)&&(this._glyphRasterizer.value=new GlyphRasterizer(r,t,s,ViewGpuContext.decorationStyleCache))}renderText(e){var t;if(this._initialized)return this._refreshRenderStrategy(e),this._renderText(e);this._initViewportData=(t=this._initViewportData)!=null?t:[],this._initViewportData.push(e)}_renderText(e){this._viewGpuContext.rectangleRenderer.draw(e);const t=new ViewLineOptions(this._context.configuration,this._context.theme.type);this._renderStrategy.value.update(e,t),this._updateAtlasStorageBufferAndTexture();const r=this._device.createCommandEncoder({label:"Monaco command encoder"});this._renderPassColorAttachment.view=this._viewGpuContext.ctx.getCurrentTexture().createView({label:"Monaco canvas texture view"});const s=r.beginRenderPass(this._renderPassDescriptor);s.setPipeline(this._pipeline),s.setVertexBuffer(0,this._vertexBuffer);const a=Math.ceil(this._viewGpuContext.contentLeft.get()*this._viewGpuContext.devicePixelRatio.get());s.setScissorRect(a,0,this.canvas.width-a,this.canvas.height),s.setBindGroup(0,this._bindGroup),this._renderStrategy.value.draw(s,e),s.end();const l=r.finish();this._device.queue.submit([l]),this._lastViewportData=e,this._lastViewLineOptions=t}linesVisibleRangesForRange(e,t){if(!this._lastViewportData)return null;const r=e.endLineNumber,s=Range$2.intersectRanges(e,this._lastViewportData.visibleRange);if(!s)return null;const a=this._lastViewportData.startLineNumber,l=this._lastViewportData.endLineNumber,c=this._lastViewportData,d=this._lastViewLineOptions;if(!c||!d)return null;const u=[];let g=0;t&&(g=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(s.startLineNumber,1)).lineNumber);for(let f=s.startLineNumber;f<=s.endLineNumber;f++){if(f<a||f>l)continue;const m=f===s.startLineNumber?s.startColumn:1,_=f!==r,v=_?this._context.viewModel.getLineMaxColumn(f):s.endColumn,b=this._visibleRangesForLineRange(f,m,v);if(b){if(t&&f<r){const C=g;g=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(f+1,1)).lineNumber,C!==g&&(b.ranges[b.ranges.length-1].width+=d.spaceWidth)}u.push(new LineVisibleRanges(b.outsideRenderedLine,f,HorizontalRange.from(b.ranges),_))}}return u.length===0?null:u}_visibleRangesForLineRange(e,t,r){if(this.shouldRender())return null;const s=this._lastViewportData,a=this._lastViewLineOptions;if(!s||!a||e<s.startLineNumber||e>s.endLineNumber)return null;const l=s.getViewLineRenderingData(e),c=l.content;let d;l.isBasicASCII&&a.useMonospaceOptimizations||(d=createContentSegmenter(l,a));let u="",g=0,f=0;for(let b=0;b<t-1;b++){if(l.isBasicASCII&&a.useMonospaceOptimizations)u=c.charAt(b);else{if(u=d.getSegmentAtIndex(b),u===void 0)continue;f+=this._renderStrategy.value.glyphRasterizer.getTextMetrics(u).width/getActiveWindow().devicePixelRatio-a.spaceWidth}u===" "?g=CursorColumns.nextRenderTabStop(g,l.tabSize):g++}let m=g,_=0;for(let b=t-1;b<r-1;b++){if(l.isBasicASCII&&a.useMonospaceOptimizations)u=c.charAt(b);else{if(u=d.getSegmentAtIndex(b),u===void 0)continue;_+=this._renderStrategy.value.glyphRasterizer.getTextMetrics(u).width/getActiveWindow().devicePixelRatio-a.spaceWidth}u===" "?m=CursorColumns.nextRenderTabStop(m,l.tabSize):m++}return new VisibleRanges(!1,[new FloatHorizontalRange(g*a.spaceWidth+f,(m-g)*a.spaceWidth+_)])}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new HorizontalPosition(t.outsideRenderedLine,t.ranges[0].left):null}getLineWidth(e){if(!this._lastViewportData||!this._lastViewLineOptions||!this._viewGpuContext.canRender(this._lastViewLineOptions,this._lastViewportData,e))return;const t=this._lastViewportData.getViewLineRenderingData(e),r=this._visibleRangesForLineRange(e,1,t.maxColumn),s=r==null?void 0:r.ranges.at(-1);if(s)return s.width}getPositionAtCoordinate(e,t){if(!this._lastViewportData||!this._lastViewLineOptions||!this._viewGpuContext.canRender(this._lastViewLineOptions,this._lastViewportData,e))return;const r=this._lastViewportData.getViewLineRenderingData(e),s=r.content,a=getActiveWindow().devicePixelRatio,l=t*a,c=this._lastViewLineOptions.spaceWidth*a,d=createContentSegmenter(r,this._lastViewLineOptions);let u=0,g=0,f=0,m=0;for(let _=0;_<s.length;_++){const v=d.getSegmentAtIndex(_);if(v===void 0){m++;continue}if(v===" "){const b=_+f;f=CursorColumns.nextRenderTabStop(_+f,r.tabSize),g=c*(f-b),f-=_+1}else r.isBasicASCII&&this._lastViewLineOptions.useMonospaceOptimizations?g=c:g=this._renderStrategy.value.glyphRasterizer.getTextMetrics(v).width;if(l<u+g/2)break;u+=g,m++}return new Position$1(e,m+1)}};ViewLinesGpu=__decorate$2$([__param$2S(2,IInstantiationService),__param$2S(3,ILogService)],ViewLinesGpu);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");class AbstractEditContext extends ViewPart{}class SimplePagedScreenReaderStrategy{_getPageOfLine(e,t){return Math.floor((e-1)/t)}_getRangeForPage(e,t){const r=e*t,s=r+1,a=r+t;return new Range$2(s,1,a+1,1)}fromEditorSelection(e,t,r,s){const l=this._getPageOfLine(t.startLineNumber,r),c=this._getRangeForPage(l,r),d=this._getPageOfLine(t.endLineNumber,r),u=this._getRangeForPage(d,r);let g=c.intersectRanges(new Range$2(1,1,t.startLineNumber,t.startColumn));if(s&&e.getValueLengthInRange(g,1)>500){const w=e.modifyPosition(g.getEndPosition(),-500);g=Range$2.fromPositions(w,g.getEndPosition())}const f=e.getValueInRange(g,1),m=e.getLineCount(),_=e.getLineMaxColumn(m);let v=u.intersectRanges(new Range$2(t.endLineNumber,t.endColumn,m,_));if(s&&e.getValueLengthInRange(v,1)>500){const w=e.modifyPosition(v.getStartPosition(),500);v=Range$2.fromPositions(v.getStartPosition(),w)}const b=e.getValueInRange(v,1);let C;if(l===d||l+1===d)C=e.getValueInRange(t,1);else{const w=c.intersectRanges(t),E=u.intersectRanges(t);C=e.getValueInRange(w,1)+"…"+e.getValueInRange(E,1)}s&&C.length>2*500&&(C=C.substring(0,500)+"…"+C.substring(C.length-500,C.length));let y,S;return t.getDirection()===0?(y=f.length,S=f.length+C.length):(S=f.length,y=f.length+C.length),{value:f+C+b,selection:t,selectionStart:y,selectionEnd:S,startPositionWithinEditor:g.getStartPosition(),newlineCountBeforeSelection:g.endLineNumber-g.startLineNumber}}}function ariaLabelForScreenReaderContent(o,e){var r,s,a;if(o.get(2)===1){const l=(r=e.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode"))==null?void 0:r.getAriaLabel(),c=(s=e.lookupKeybinding("workbench.action.showCommands"))==null?void 0:s.getAriaLabel(),d=(a=e.lookupKeybinding("workbench.action.openGlobalKeybindings"))==null?void 0:a.getAriaLabel(),u=localize(61,"The editor is not accessible at this time.");return l?localize(62,"{0} To enable screen reader optimized mode, use {1}",u,l):c?localize(63,"{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.",u,c):d?localize(64,"{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",u,d):u}return o.get(8)}function newlinecount(o){let e=0,t=-1;do{if(t=o.indexOf("\n",t+1),t===-1)break;e++}while(!0);return e}var __decorate$2_=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2R=function(o,e){return function(t,r){e(t,r,o)}};class VisibleTextAreaData{constructor(e,t,r,s,a){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=r,this.widthOfHiddenLineTextBefore=s,this.distanceToModelLineEnd=a,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),r=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(r),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$1;let TextAreaEditContext=class extends AbstractEditContext{constructor(e,t,r,s,a,l){super(e),this._keybindingService=a,this._instantiationService=l,this._primaryCursorPosition=new Position$1(1,1),this._primaryCursorVisibleRange=null,this._viewController=r,this._visibleRangeProvider=s,this._scrollLeft=0,this._scrollTop=0;const c=this._context.configuration.options,d=c.get(165);this._setAccessibilityOptions(c),this._contentLeft=d.contentLeft,this._contentWidth=d.contentWidth,this._contentHeight=d.height,this._fontInfo=c.get(59),this._emptySelectionClipboard=c.get(45),this._copyWithSyntaxHighlighting=c.get(31),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,7),this.textArea.setClassName("inputarea ".concat(MOUSE_CURSOR_TEXT_CSS_CLASS_NAME)),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:u}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize="".concat(u*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",ariaLabelForScreenReaderContent(c,this._keybindingService)),this.textArea.setAttribute("aria-required",c.get(9)?"true":"false"),this.textArea.setAttribute("tabindex",String(c.get(140))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",localize(65,"editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",c.get(104)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=createFastDomNode(document.createElement("div")),this.textAreaCover.setPosition("absolute"),t.appendChild(this.textArea),t.appendChild(this.textAreaCover);const g=new SimplePagedScreenReaderStrategy,f={getDataToCopy:()=>getDataToCopy(this._context.viewModel,this._modelSelections,this._emptySelectionClipboard,this._copyWithSyntaxHighlighting),getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const v=this._selections[0];if(isMacintosh&&v.isEmpty()){const C=v.getStartPosition();let y=this._getWordBeforePosition(C);if(y.length===0&&(y=this._getCharacterBeforePosition(C)),y.length>0)return new TextAreaState(y,y.length,y.length,Range$2.fromPositions(C),0)}if(isMacintosh&&!v.isEmpty()&&this._context.viewModel.getValueLengthInRange(v,0)<500){const C=this._context.viewModel.getValueInRange(v,0);return new TextAreaState(C,0,C.length,v,0)}if(isSafari$1&&!v.isEmpty()){const C="vscode-placeholder";return new TextAreaState(C,0,C.length,null,void 0)}return TextAreaState.EMPTY}if(isAndroid$1){const v=this._selections[0];if(v.isEmpty()){const b=v.getStartPosition(),[C,y]=this._getAndroidWordAtPosition(b);if(C.length>0)return new TextAreaState(C,y,y,Range$2.fromPositions(b),0)}return TextAreaState.EMPTY}const _=g.fromEditorSelection(this._context.viewModel,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0);return TextAreaState.fromScreenReaderContentState(_)},deduceModelPosition:(_,v,b)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(_,v,b)},m=this._register(new TextAreaWrapper(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance(TextAreaInput,f,m,OS,{isAndroid:isAndroid$1,isChrome:isChrome$1,isFirefox:isFirefox$1,isSafari:isSafari$1})),this._register(this._textAreaInput.onKeyDown(_=>{this._viewController.emitKeyDown(_)})),this._register(this._textAreaInput.onKeyUp(_=>{this._viewController.emitKeyUp(_)})),this._register(this._textAreaInput.onPaste(_=>{let v=!1,b=null,C=null;_.metadata&&(v=this._emptySelectionClipboard&&!!_.metadata.isFromEmptySelection,b=typeof _.metadata.multicursorText<"u"?_.metadata.multicursorText:null,C=_.metadata.mode),this._viewController.paste(_.text,v,b,C)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(_=>{_.replacePrevCharCnt||_.replaceNextCharCnt||_.positionDelta?this._viewController.compositionType(_.text,_.replacePrevCharCnt,_.replaceNextCharCnt,_.positionDelta):this._viewController.type(_.text)})),this._register(this._textAreaInput.onSelectionChangeRequest(_=>{this._viewController.setSelection(_)})),this._register(this._textAreaInput.onCompositionStart(_=>{const v=this.textArea.domNode,b=this._modelSelections[0],{distanceToModelLineStart:C,widthOfHiddenTextBefore:y}=(()=>{const w=v.value.substring(0,Math.min(v.selectionStart,v.selectionEnd)),E=w.lastIndexOf("\n"),x=w.substring(E+1),L=x.lastIndexOf(" "),k=x.length-L-1,D=b.getStartPosition(),I=Math.min(D.column-1,k),T=D.column-1-I,M=x.substring(0,x.length-I),{tabSize:R}=this._context.viewModel.model.getOptions(),N=measureText(this.textArea.domNode.ownerDocument,M,this._fontInfo,R);return{distanceToModelLineStart:T,widthOfHiddenTextBefore:N}})(),{distanceToModelLineEnd:S}=(()=>{const w=v.value.substring(Math.max(v.selectionStart,v.selectionEnd)),E=w.indexOf("\n"),x=E===-1?w:w.substring(0,E),L=x.indexOf(" "),k=L===-1?x.length:x.length-L-1,D=b.getEndPosition(),I=Math.min(this._context.viewModel.model.getLineMaxColumn(D.lineNumber)-D.column,k);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(D.lineNumber)-D.column-I}})();this._context.viewModel.revealRange("keyboard",!0,Range$2.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new VisibleTextAreaData(this._context,b.startLineNumber,C,y,S),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName("inputarea ".concat(MOUSE_CURSOR_TEXT_CSS_CLASS_NAME," ime-input")),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(_=>{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 ".concat(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()}))}get domNode(){return this.textArea}writeScreenReaderContent(e){this._textAreaInput.writeNativeTextAreaContent(e)}dispose(){super.dispose(),this.textArea.domNode.remove(),this.textAreaCover.domNode.remove()}_getAndroidWordAtPosition(e){const t='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',r=this._context.viewModel.getLineContent(e.lineNumber),s=getMapForWordSeparators(t,[]);let a=!0,l=e.column,c=!0,d=e.column,u=0;for(;u<50&&(a||c);){if(a&&l<=1&&(a=!1),a){const g=r.charCodeAt(l-2);s.get(g)!==0?a=!1:l--}if(c&&d>r.length&&(c=!1),c){const g=r.charCodeAt(d-1);s.get(g)!==0?c=!1:d++}u++}return[r.substring(l-1,d-1),e.column-l]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),r=getMapForWordSeparators(this._context.configuration.options.get(148),[]);let s=e.column,a=0;for(;s>1;){const l=t.charCodeAt(s-2);if(r.get(l)!==0||a>50)return t.substring(s-1,e.column-1);a++,s--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const r=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!isHighSurrogate(r.charCodeAt(0)))return r}return""}_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 s=e.get(165).wrappingColumn;if(s!==-1&&this._accessibilitySupport!==1){const a=e.get(59);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(s*a.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=canUseZeroSizeTextarea?0:1}onConfigurationChanged(e){const t=this._context.configuration.options,r=t.get(165);this._setAccessibilityOptions(t),this._contentLeft=r.contentLeft,this._contentWidth=r.contentWidth,this._contentHeight=r.height,this._fontInfo=t.get(59),this._emptySelectionClipboard=t.get(45),this._copyWithSyntaxHighlighting=t.get(31),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:s}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize="".concat(s*this._fontInfo.spaceWidth,"px"),this.textArea.setAttribute("aria-label",ariaLabelForScreenReaderContent(t,this._keybindingService)),this.textArea.setAttribute("aria-required",t.get(9)?"true":"false"),this.textArea.setAttribute("tabindex",String(t.get(140))),(e.hasChanged(41)||e.hasChanged(104))&&this._ensureReadOnlyAttribute(),e.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("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()}focus(){this._textAreaInput.focusTextArea()}refreshFocusState(){this._textAreaInput.refreshFocusState()}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(41)&&e.get(104)?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.prepareRender(e)}render(e){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){var r;if(this._visibleTextArea){const s=this._visibleTextArea.visibleTextareaStart,a=this._visibleTextArea.visibleTextareaEnd,l=this._visibleTextArea.startPosition,c=this._visibleTextArea.endPosition;if(l&&c&&s&&a&&a.left>=this._scrollLeft&&s.left<=this._scrollLeft+this._contentWidth){const d=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,u=newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let g=this._visibleTextArea.widthOfHiddenLineTextBefore,f=this._contentLeft+s.left-this._scrollLeft,m=a.left-s.left+1;if(f<this._contentLeft){const E=this._contentLeft-f;f+=E,g+=E,m-=E}m>this._contentWidth&&(m=this._contentWidth);const _=this._context.viewLayout.getLineHeightForLineNumber(l.lineNumber),v=this._context.viewModel.getFontSizeAtPosition(this._primaryCursorPosition),b=this._context.viewModel.getViewLineData(l.lineNumber),C=b.tokens.findTokenIndexAtOffset(l.column-1),y=b.tokens.findTokenIndexAtOffset(c.column-1),S=C===y,w=this._visibleTextArea.definePresentation(S?b.tokens.getPresentation(C):null);this.textArea.domNode.scrollTop=u*_,this.textArea.domNode.scrollLeft=g,this._doRender({lastRenderPosition:null,top:d,left:f,width:m,height:_,useCover:!1,color:(TokenizationRegistry.getColorMap()||[])[w.foreground],italic:w.italic,bold:w.bold,underline:w.underline,strikethrough:w.strikethrough,fontSize:v})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(e<this._contentLeft||e>this._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(t<0||t>this._contentHeight){this._renderAtTopLeft();return}if(isMacintosh||this._accessibilitySupport===2){const s=this._primaryCursorPosition.lineNumber,a=this._context.viewLayout.getLineHeightForLineNumber(s);this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:this._textAreaWrapping?this._contentLeft:e,width:this._textAreaWidth,height:a,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const l=(r=this._textAreaInput.textAreaState.newlineCountBeforeSelection)!=null?r:newlinecount(this.textArea.domNode.value.substring(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=l*a;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:t,left:this._textAreaWrapping?this._contentLeft:e,width:this._textAreaWidth,height:canUseZeroSizeTextarea?0:1,useCover:!1})}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:canUseZeroSizeTextarea?0:1,useCover:!0})}_doRender(e){var a;this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,r=this.textAreaCover;applyFontInfo(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setLineHeight(e.height),t.setFontSize((a=e.fontSize)!=null?a:this._fontInfo.fontSize),t.setColor(e.color?Color.Format.CSS.formatHex(e.color):""),t.setFontStyle(e.italic?"italic":""),e.bold&&t.setFontWeight("bold"),t.setTextDecoration("".concat(e.underline?" underline":"").concat(e.strikethrough?" line-through":"")),r.setTop(e.useCover?e.top:0),r.setLeft(e.useCover?e.left:0),r.setWidth(e.useCover?e.width:0),r.setHeight(e.useCover?e.height:0);const s=this._context.configuration.options;s.get(66)?r.setClassName("monaco-editor-background textAreaCover "+Margin.OUTER_CLASS_NAME):s.get(76).renderType!==0?r.setClassName("monaco-editor-background textAreaCover "+LineNumbersOverlay.CLASS_NAME):r.setClassName("monaco-editor-background textAreaCover")}};TextAreaEditContext=__decorate$2_([__param$2R(4,IKeybindingService),__param$2R(5,IInstantiationService)],TextAreaEditContext);function measureText(o,e,t,r){if(e.length===0)return 0;const s=o.createElement("div");s.style.position="absolute",s.style.top="-50000px",s.style.width="50000px";const a=o.createElement("span");applyFontInfo(a,t),a.style.whiteSpace="pre",a.style.tabSize="".concat(r*t.spaceWidth,"px"),a.append(e),s.appendChild(a),o.body.appendChild(s);const l=a.offsetWidth;return s.remove(),l}var __decorate$2Z=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2Q=function(o,e){return function(t,r){e(t,r,o)}};let FocusTracker=class extends Disposable$1{constructor(e,t,r){super(),this._domNode=t,this._onFocusChange=r,this._isFocused=!1,this._isPaused=!1,this._register(addDisposableListener(this._domNode,"focus",()=>{e.trace("NativeEditContext.focus"),!this._isPaused&&this.refreshFocusState()})),this._register(addDisposableListener(this._domNode,"blur",()=>{e.trace("NativeEditContext.blur"),!this._isPaused&&this._handleFocusedChanged(!1)}))}pause(){this._isPaused=!0}resume(){this._isPaused=!1,this.refreshFocusState()}_handleFocusedChanged(e){this._isFocused!==e&&(this._isFocused=e,this._onFocusChange(this._isFocused))}focus(){this._domNode.focus(),this.refreshFocusState()}refreshFocusState(){const e=getShadowRoot$2(this._domNode),t=e?e.activeElement:getActiveElement(),r=this._domNode===t;this._handleFocusedChanged(r)}get isFocused(){return this._isFocused}};FocusTracker=__decorate$2Z([__param$2Q(0,ILogService)],FocusTracker);function editContextAddDisposableListener(o,e,t,r){return o.addEventListener(e,t,r),{dispose(){o.removeEventListener(e,t)}}}var __decorate$2Y=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2P=function(o,e){return function(t,r){e(t,r,o)}};const ttPolicy$6=createTrustedTypesPolicy$1("richScreenReaderContent",{createHTML:o=>o}),LINE_NUMBER_ATTRIBUTE="data-line-number";let RichScreenReaderContent=class extends Disposable$1{constructor(e,t,r,s){super(),this._domNode=e,this._context=t,this._viewController=r,this._accessibilityService=s,this._selectionChangeListener=this._register(new MutableDisposable),this._accessibilityPageSize=1,this._ignoreSelectionChangeTime=0,this._state=RichScreenReaderState.NULL,this._strategy=new RichPagedScreenReaderStrategy,this._renderedLines=new Map,this._renderedSelection=new Selection$1(1,1,1,1),this.onConfigurationChanged(this._context.configuration.options)}updateScreenReaderContent(e){const t=getActiveWindow().document.activeElement;if(!t||t!==this._domNode.domNode)return;if(this._accessibilityService.isScreenReaderOptimized()){const s=this._getScreenReaderContentLineIntervals(e);this._state.equals(s)||(this._state=s,this._renderedLines=this._renderScreenReaderContent(s)),this._renderedSelection.equalsSelection(e)||(this._renderedSelection=e,this._setSelectionOnScreenReaderContent(this._context,this._renderedLines,e))}else this._state=RichScreenReaderState.NULL,this._setIgnoreSelectionChangeTime("setValue"),this._domNode.domNode.textContent=""}updateScrollTop(e){const t=this._state.intervals;if(!t.length)return;const r=this._context.viewModel.viewLayout,s=t[0].startLine,a=r.getVerticalOffsetForLineNumber(s),l=r.getVerticalOffsetForLineNumber(e.positionLineNumber);this._domNode.domNode.scrollTop=l-a}onFocusChange(e){e?this._selectionChangeListener.value=this._setSelectionChangeListener():this._selectionChangeListener.value=void 0}onConfigurationChanged(e){this._accessibilityPageSize=e.get(3)}onWillCut(){this._setIgnoreSelectionChangeTime("onCut")}onWillPaste(){this._setIgnoreSelectionChangeTime("onWillPaste")}_setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}_setSelectionChangeListener(){let e=0;return addDisposableListener(this._domNode.domNode.ownerDocument,"selectionchange",()=>{if(!(getActiveWindow().document.activeElement===this._domNode.domNode)||!this._accessibilityService.isScreenReaderOptimized()||!IME.enabled)return;const a=Date.now(),l=a-e;if(e=a,l<5)return;const c=a-this._ignoreSelectionChangeTime;if(this._ignoreSelectionChangeTime=0,c<100)return;const d=this._getEditorSelectionFromDomRange();d&&this._viewController.setSelection(d)})}_renderScreenReaderContent(e){const t=[],r=new Map;for(const s of e.intervals)for(let a=s.startLine;a<=s.endLine;a++){const l=this._renderLine(a);r.set(a,l),t.push(l.domNode)}return this._setIgnoreSelectionChangeTime("setValue"),this._domNode.domNode.replaceChildren(...t),r}_renderLine(e){var L;const t=this._context.viewModel,r=t.getViewLineRenderingData(e),s=this._context.configuration.options,a=s.get(59),l=s.get(133),c=s.get(108),d=s.get(60),u=s.get(40),g=LineDecoration.filter(r.inlineDecorations,e,r.minColumn,r.maxColumn),f=a.isMonospace&&!u,m=d!==EditorFontLigatures.OFF;let _;s.get(47)==="off"?_=s.get(113):_="none";const b=new RenderLineInput(f,a.canUseHalfwidthRightwardsArrow,r.content,r.continuesWithWrappedLine,r.isBasicASCII,r.containsRTL,r.minColumn-1,r.tokens,g,r.tabSize,r.startVisibleColumn,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,l,_,c,m,null,null,0,!0),C=new StringBuilder(1e4),y=renderViewLine(b,C),S=C.build(),w=(L=ttPolicy$6==null?void 0:ttPolicy$6.createHTML(S))!=null?L:S,E=t.viewLayout.getLineHeightForLineNumber(e)+"px",x=document.createElement("div");return x.innerHTML=w,x.style.lineHeight=E,x.style.height=E,x.setAttribute(LINE_NUMBER_ATTRIBUTE,e.toString()),new RichRenderedScreenReaderLine(x,y.characterMapping)}_setSelectionOnScreenReaderContent(e,t,r){const a=getActiveWindow().document.getSelection();if(!a)return;const l=r.startLineNumber,c=r.endLineNumber,d=t.get(l),u=t.get(c);if(!d||!u)return;const g=e.viewModel,f=g.model,m=g.coordinatesConverter,_=new Range$2(l,1,l,r.selectionStartColumn),v=m.convertViewRangeToModelRange(_),b=f.getCharacterCountInRange(v),C=new Range$2(c,1,c,r.positionColumn),y=m.convertViewRangeToModelRange(C),S=f.getCharacterCountInRange(y),w=d.characterMapping.getDomPosition(b),E=u.characterMapping.getDomPosition(S),x=d.domNode.firstChild,L=u.domNode.firstChild,k=x.childNodes,D=L.childNodes,I=k.item(w.partIndex),T=D.item(E.partIndex);!I.firstChild||!T.firstChild||(this._setIgnoreSelectionChangeTime("setRange"),a.setBaseAndExtent(I.firstChild,r.startColumn===1?0:w.charIndex+1,T.firstChild,r.endColumn===1?0:E.charIndex+1))}_getScreenReaderContentLineIntervals(e){return this._strategy.fromEditorSelection(this._context.viewModel,e,this._accessibilityPageSize)}_getEditorSelectionFromDomRange(){var S,w,E,x;if(!this._renderedLines)return;const e=getActiveWindow().document.getSelection();if(!e||e.rangeCount===0)return;const r=e.getRangeAt(0),s=r.startContainer,a=r.endContainer,l=s.parentElement,c=a.parentElement;if(!l||!isHTMLElement(l)||!c||!isHTMLElement(c))return;const d=(S=l.parentElement)==null?void 0:S.parentElement,u=(w=c.parentElement)==null?void 0:w.parentElement;if(!d||!u)return;const g=d.getAttribute(LINE_NUMBER_ATTRIBUTE),f=u.getAttribute(LINE_NUMBER_ATTRIBUTE);if(!g||!f)return;const m=parseInt(g),_=parseInt(f),v=(E=this._renderedLines.get(m))==null?void 0:E.characterMapping,b=(x=this._renderedLines.get(_))==null?void 0:x.characterMapping;if(!v||!b)return;const C=getColumnOfNodeOffset(v,l,r.startOffset),y=getColumnOfNodeOffset(b,c,r.endOffset);return e.direction==="forward"?new Selection$1(m,C,_,y):new Selection$1(_,y,m,C)}};RichScreenReaderContent=__decorate$2Y([__param$2P(3,IAccessibilityService)],RichScreenReaderContent);class RichRenderedScreenReaderLine{constructor(e,t){this.domNode=e,this.characterMapping=t}}class LineInterval{constructor(e,t){this.startLine=e,this.endLine=t}}class RichScreenReaderState{constructor(e,t){this.intervals=t;let r="";for(const s of t)for(let a=s.startLine;a<=s.endLine;a++)r+=e.getLineContent(a)+"\n";this.value=r}equals(e){return this.value===e.value}static get NULL(){const e={getLineContent:()=>"",getLineCount:()=>1,getLineMaxColumn:()=>1,getValueInRange:()=>"",getValueLengthInRange:()=>0,modifyPosition:(t,r)=>t};return new RichScreenReaderState(e,[])}}class RichPagedScreenReaderStrategy{constructor(){}_getPageOfLine(e,t){return Math.floor((e-1)/t)}_getRangeForPage(e,t,r){const s=t*r,a=s+1,l=Math.min(s+r,e.getLineCount());return new LineInterval(a,l)}fromEditorSelection(e,t,r){const s=this._getPageOfLine(t.startLineNumber,r),a=this._getRangeForPage(e,s,r),l=this._getPageOfLine(t.endLineNumber,r),c=this._getRangeForPage(e,l,r),d=[{startLine:a.startLine,endLine:a.endLine}];return s+1<l&&d.push({startLine:c.startLine,endLine:c.endLine}),new RichScreenReaderState(e,d)}}class BaseEdit{constructor(e){this.replacements=e;let t=-1;for(const r of e){if(!(r.replaceRange.start>=t))throw new BugIndicatingError("Edits must be disjoint and sorted. Found ".concat(r," after ").concat(t));t=r.replaceRange.endExclusive}}toString(){const e=this.replacements.map(t=>t.toString()).join(", ");return"[".concat(e,"]")}normalize(){const e=[];let t;for(const r of this.replacements)if(!(r.getNewLength()===0&&r.replaceRange.length===0)){if(t&&t.replaceRange.endExclusive===r.replaceRange.start){const s=t.tryJoinTouching(r);if(s){t=s;continue}}t&&e.push(t),t=r}return t&&e.push(t),this._createNew(e)}compose(e){const t=this.normalize(),r=e.normalize();if(t.isEmpty())return r;if(r.isEmpty())return t;const s=[...t.replacements],a=[];let l=0;for(const c of r.replacements){for(;;){const f=s[0];if(!f||f.replaceRange.start+l+f.getNewLength()>=c.replaceRange.start)break;s.shift(),a.push(f),l+=f.getNewLength()-f.replaceRange.length}const d=l;let u,g;for(;;){const f=s[0];if(!f||f.replaceRange.start+l>c.replaceRange.endExclusive)break;u||(u=f),g=f,s.shift(),l+=f.getNewLength()-f.replaceRange.length}if(!u)a.push(c.delta(-l));else{const f=Math.min(u.replaceRange.start,c.replaceRange.start-d),m=c.replaceRange.start-(u.replaceRange.start+d);if(m>0){const C=u.slice(OffsetRange.emptyAt(f),new OffsetRange(0,m));a.push(C)}if(!g)throw new BugIndicatingError("Invariant violation: lastIntersecting is undefined");const _=g.replaceRange.endExclusive+l-c.replaceRange.endExclusive;if(_>0){const C=g.slice(OffsetRange.ofStartAndLength(g.replaceRange.endExclusive,0),new OffsetRange(g.getNewLength()-_,g.getNewLength()));s.unshift(C),l-=C.getNewLength()-C.replaceRange.length}const v=new OffsetRange(f,c.replaceRange.endExclusive-l),b=c.slice(v,new OffsetRange(0,c.getNewLength()));a.push(b)}}for(;;){const c=s.shift();if(!c)break;a.push(c)}return this._createNew(a).normalize()}getNewRanges(){const e=[];let t=0;for(const r of this.replacements)e.push(OffsetRange.ofStartAndLength(r.replaceRange.start+t,r.getNewLength())),t+=r.getLengthDelta();return e}isEmpty(){return this.replacements.length===0}}class BaseReplacement{constructor(e){this.replaceRange=e}delta(e){return this.slice(this.replaceRange.delta(e),new OffsetRange(0,this.getNewLength()))}getLengthDelta(){return this.getNewLength()-this.replaceRange.length}toString(){return"{ ".concat(this.replaceRange.toString()," -> ").concat(this.getNewLength()," }")}get isEmpty(){return this.getNewLength()===0&&this.replaceRange.length===0}getRangeAfterReplace(){return new OffsetRange(this.replaceRange.start,this.replaceRange.start+this.getNewLength())}}class BaseStringEdit extends BaseEdit{apply(e){const t=[];let r=0;for(const s of this.replacements)t.push(e.substring(r,s.replaceRange.start)),t.push(s.newText),r=s.replaceRange.endExclusive;return t.push(e.substring(r)),t.join("")}}class BaseStringReplacement extends BaseReplacement{constructor(e,t){super(e),this.newText=t}getNewLength(){return this.newText.length}toString(){return"".concat(this.replaceRange," -> ").concat(JSON.stringify(this.newText))}replace(e){return e.substring(0,this.replaceRange.start)+this.newText+e.substring(this.replaceRange.endExclusive)}removeCommonSuffixPrefix(e){const t=e.substring(this.replaceRange.start,this.replaceRange.endExclusive),r=commonPrefixLength(t,this.newText),s=Math.min(t.length-r,this.newText.length-r,commonSuffixLength(t,this.newText)),a=new OffsetRange(this.replaceRange.start+r,this.replaceRange.endExclusive-s),l=this.newText.substring(r,this.newText.length-s);return new StringReplacement(a,l)}removeCommonSuffixAndPrefix(e){return this.removeCommonSuffix(e).removeCommonPrefix(e)}removeCommonPrefix(e){const t=this.replaceRange.substring(e),r=commonPrefixLength(t,this.newText);return r===0?this:this.slice(this.replaceRange.deltaStart(r),new OffsetRange(r,this.newText.length))}removeCommonSuffix(e){const t=this.replaceRange.substring(e),r=commonSuffixLength(t,this.newText);return r===0?this:this.slice(this.replaceRange.deltaEnd(-r),new OffsetRange(0,this.newText.length-r))}toJson(){return{txt:this.newText,pos:this.replaceRange.start,len:this.replaceRange.length}}}const nr=class nr extends BaseStringEdit{static compose(e){if(e.length===0)return nr.empty;let t=e[0];for(let r=1;r<e.length;r++)t=t.compose(e[r]);return t}constructor(e){super(e)}_createNew(e){return new nr(e)}};nr.empty=new nr([]);let StringEdit=nr;class StringReplacement extends BaseStringReplacement{static insert(e,t){return new StringReplacement(OffsetRange.emptyAt(e),t)}static replace(e,t){return new StringReplacement(e,t)}equals(e){return this.replaceRange.equals(e.replaceRange)&&this.newText===e.newText}tryJoinTouching(e){return new StringReplacement(this.replaceRange.joinRightTouching(e.replaceRange),this.newText+e.newText)}slice(e,t){return new StringReplacement(e,t?t.substring(this.newText):this.newText)}}function applyEditsToRanges(o,e){o=o.slice();const t=[];let r=0;for(const s of e.replacements){for(;;){const l=o[0];if(!l||l.endExclusive>=s.replaceRange.start)break;o.shift(),t.push(l.delta(r))}const a=[];for(;;){const l=o[0];if(!l||!l.intersectsOrTouches(s.replaceRange))break;o.shift(),a.push(l)}for(let l=a.length-1;l>=0;l--){let c=a[l];const d=c.intersect(s.replaceRange).length;c=c.deltaEnd(-d+(l===0?s.newText.length:0));const u=c.start-s.replaceRange.start;u>0&&(c=c.delta(-u)),l!==0&&(c=c.delta(s.newText.length)),c=c.delta(-(s.newText.length-s.replaceRange.length)),o.unshift(c)}r+=s.newText.length-s.replaceRange.length}for(;;){const s=o[0];if(!s)break;o.shift(),t.push(s.delta(r))}return t}const dt=class dt{static ofLength(e,t){return new dt(e,e+t)}static fromRange(e){return new dt(e.startLineNumber,e.endLineNumber)}static fromRangeInclusive(e){return new dt(e.startLineNumber,e.endLineNumber+1)}static joinMany(e){if(e.length===0)return[];let t=new LineRangeSet(e[0].slice());for(let r=1;r<e.length;r++)t=t.getUnion(new LineRangeSet(e[r].slice()));return t.ranges}static join(e){if(e.length===0)throw new BugIndicatingError("lineRanges cannot be empty");let t=e[0].startLineNumber,r=e[0].endLineNumberExclusive;for(let s=1;s<e.length;s++)t=Math.min(t,e[s].startLineNumber),r=Math.max(r,e[s].endLineNumberExclusive);return new dt(t,r)}static deserialize(e){return new dt(e[0],e[1])}constructor(e,t){if(e>t)throw new BugIndicatingError("startLineNumber ".concat(e," cannot be after endLineNumberExclusive ").concat(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 dt(this.startLineNumber+e,this.endLineNumberExclusive+e)}deltaLength(e){return new dt(this.startLineNumber,this.endLineNumberExclusive+e)}get length(){return this.endLineNumberExclusive-this.startLineNumber}join(e){return new dt(Math.min(this.startLineNumber,e.startLineNumber),Math.max(this.endLineNumberExclusive,e.endLineNumberExclusive))}toString(){return"[".concat(this.startLineNumber,",").concat(this.endLineNumberExclusive,")")}intersect(e){const t=Math.max(this.startLineNumber,e.startLineNumber),r=Math.min(this.endLineNumberExclusive,e.endLineNumberExclusive);if(t<=r)return new dt(t,r)}intersectsStrict(e){return this.startLineNumber<e.endLineNumberExclusive&&e.startLineNumber<this.endLineNumberExclusive}intersectsOrTouches(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 r=this.startLineNumber;r<this.endLineNumberExclusive;r++)t.push(e(r));return t}forEach(e){for(let t=this.startLineNumber;t<this.endLineNumberExclusive;t++)e(t)}serialize(){return[this.startLineNumber,this.endLineNumberExclusive]}toOffsetRange(){return new OffsetRange(this.startLineNumber-1,this.endLineNumberExclusive-1)}addMargin(e,t){return new dt(this.startLineNumber-e,this.endLineNumberExclusive+t)}};dt.compareByStart=compareBy(e=>e.startLineNumber,numberComparator);let LineRange=dt;class LineRangeSet{constructor(e=[]){this._normalizedRanges=e}get ranges(){return this._normalizedRanges}addRange(e){if(e.length===0)return;const t=findFirstIdxMonotonousOrArrLen(this._normalizedRanges,s=>s.endLineNumberExclusive>=e.startLineNumber),r=findLastIdxMonotonous(this._normalizedRanges,s=>s.startLineNumber<=e.endLineNumberExclusive)+1;if(t===r)this._normalizedRanges.splice(t,0,e);else if(t===r-1){const s=this._normalizedRanges[t];this._normalizedRanges[t]=s.join(e)}else{const s=this._normalizedRanges[t].join(this._normalizedRanges[r-1]).join(e);this._normalizedRanges.splice(t,r-t,s)}}contains(e){const t=findLastMonotonous(this._normalizedRanges,r=>r.startLineNumber<=e);return!!t&&t.endLineNumberExclusive>e}intersects(e){const t=findLastMonotonous(this._normalizedRanges,r=>r.startLineNumber<e.endLineNumberExclusive);return!!t&&t.endLineNumberExclusive>e.startLineNumber}getUnion(e){if(this._normalizedRanges.length===0)return e;if(e._normalizedRanges.length===0)return this;const t=[];let r=0,s=0,a=null;for(;r<this._normalizedRanges.length||s<e._normalizedRanges.length;){let l=null;if(r<this._normalizedRanges.length&&s<e._normalizedRanges.length){const c=this._normalizedRanges[r],d=e._normalizedRanges[s];c.startLineNumber<d.startLineNumber?(l=c,r++):(l=d,s++)}else r<this._normalizedRanges.length?(l=this._normalizedRanges[r],r++):(l=e._normalizedRanges[s],s++);a===null?a=l:a.endLineNumberExclusive>=l.startLineNumber?a=new LineRange(a.startLineNumber,Math.max(a.endLineNumberExclusive,l.endLineNumberExclusive)):(t.push(a),a=l)}return a!==null&&t.push(a),new LineRangeSet(t)}subtractFrom(e){const t=findFirstIdxMonotonousOrArrLen(this._normalizedRanges,l=>l.endLineNumberExclusive>=e.startLineNumber),r=findLastIdxMonotonous(this._normalizedRanges,l=>l.startLineNumber<=e.endLineNumberExclusive)+1;if(t===r)return new LineRangeSet([e]);const s=[];let a=e.startLineNumber;for(let l=t;l<r;l++){const c=this._normalizedRanges[l];c.startLineNumber>a&&s.push(new LineRange(a,c.startLineNumber)),a=c.endLineNumberExclusive}return a<e.endLineNumberExclusive&&s.push(new LineRange(a,e.endLineNumberExclusive)),new LineRangeSet(s)}toString(){return this._normalizedRanges.map(e=>e.toString()).join(", ")}getIntersection(e){const t=[];let r=0,s=0;for(;r<this._normalizedRanges.length&&s<e._normalizedRanges.length;){const a=this._normalizedRanges[r],l=e._normalizedRanges[s],c=a.intersect(l);c&&!c.isEmpty&&t.push(c),a.endLineNumberExclusive<l.endLineNumberExclusive?r++:s++}return new LineRangeSet(t)}getWithDelta(e){return new LineRangeSet(this._normalizedRanges.map(t=>t.delta(e)))}}const Et=class Et{static betweenPositions(e,t){return e.lineNumber===t.lineNumber?new Et(0,t.column-e.column):new Et(t.lineNumber-e.lineNumber,t.column-1)}static fromPosition(e){return new Et(e.lineNumber-1,e.column-1)}static ofRange(e){return Et.betweenPositions(e.getStartPosition(),e.getEndPosition())}static ofText(e){let t=0,r=0;for(const s of e)s==="\n"?(t++,r=0):r++;return new Et(t,r)}constructor(e,t){this.lineCount=e,this.columnCount=t}isGreaterThanOrEqualTo(e){return this.lineCount!==e.lineCount?this.lineCount>e.lineCount:this.columnCount>=e.columnCount}add(e){return e.lineCount===0?new Et(this.lineCount,this.columnCount+e.columnCount):new Et(this.lineCount+e.lineCount,e.columnCount)}createRange(e){return this.lineCount===0?new Range$2(e.lineNumber,e.column,e.lineNumber,e.column+this.columnCount):new Range$2(e.lineNumber,e.column,e.lineNumber+this.lineCount,this.columnCount+1)}toRange(){return new Range$2(1,1,this.lineCount+1,this.columnCount+1)}toLineRange(){return LineRange.ofLength(1,this.lineCount+1)}addToPosition(e){return this.lineCount===0?new Position$1(e.lineNumber,e.column+this.columnCount):new Position$1(e.lineNumber+this.lineCount,this.columnCount+1)}toString(){return"".concat(this.lineCount,",").concat(this.columnCount)}};Et.zero=new Et(0,0);let TextLength=Et;class PositionOffsetTransformerBase{getOffsetRange(e){return new OffsetRange(this.getOffset(e.getStartPosition()),this.getOffset(e.getEndPosition()))}getRange(e){return Range$2.fromPositions(this.getPosition(e.start),this.getPosition(e.endExclusive))}getStringReplacement(e){return new Deps.deps.StringReplacement(this.getOffsetRange(e.range),e.text)}getTextReplacement(e){return new Deps.deps.TextReplacement(this.getRange(e.replaceRange),e.newText)}getTextEdit(e){const t=e.replacements.map(r=>this.getTextReplacement(r));return new Deps.deps.TextEdit(t)}}const ea=class ea{static get deps(){if(!this._deps)throw new Error("Dependencies not set. Call _setDependencies first.");return this._deps}};ea._deps=void 0;let Deps=ea;function _setPositionOffsetTransformerDependencies(o){Deps._deps=o}class PositionOffsetTransformer extends PositionOffsetTransformerBase{constructor(e){super(),this.text=e,this.lineStartOffsetByLineIdx=[],this.lineEndOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;t<e.length;t++)e.charAt(t)==="\n"&&(this.lineStartOffsetByLineIdx.push(t+1),t>0&&e.charAt(t-1)==="\r"?this.lineEndOffsetByLineIdx.push(t-1):this.lineEndOffsetByLineIdx.push(t));this.lineEndOffsetByLineIdx.push(e.length)}getOffset(e){const t=this._validatePosition(e);return this.lineStartOffsetByLineIdx[t.lineNumber-1]+t.column-1}_validatePosition(e){if(e.lineNumber<1)return new Position$1(1,1);const t=this.textLength.lineCount+1;if(e.lineNumber>t){const s=this.getLineLength(t);return new Position$1(t,s+1)}if(e.column<1)return new Position$1(e.lineNumber,1);const r=this.getLineLength(e.lineNumber);return e.column-1>r?new Position$1(e.lineNumber,r+1):e}getPosition(e){const t=findLastIdxMonotonous(this.lineStartOffsetByLineIdx,a=>a<=e),r=t+1,s=e-this.lineStartOffsetByLineIdx[t]+1;return new Position$1(r,s)}get textLength(){const e=this.lineStartOffsetByLineIdx.length-1;return new Deps.deps.TextLength(e,this.text.length-this.lineStartOffsetByLineIdx[e])}getLineLength(e){return this.lineEndOffsetByLineIdx[e-1]-this.lineStartOffsetByLineIdx[e-1]}}class AbstractText{constructor(){this._transformer=void 0}get endPositionExclusive(){return this.length.addToPosition(new Position$1(1,1))}get lineRange(){return this.length.toLineRange()}getValue(){return this.getValueOfRange(this.length.toRange())}getValueOfOffsetRange(e){return this.getValueOfRange(this.getTransformer().getRange(e))}getLineLength(e){return this.getValueOfRange(new Range$2(e,1,e,Number.MAX_SAFE_INTEGER)).length}getTransformer(){return this._transformer||(this._transformer=new PositionOffsetTransformer(this.getValue())),this._transformer}getLineAt(e){return this.getValueOfRange(new Range$2(e,1,e,Number.MAX_SAFE_INTEGER))}}class LineBasedText extends AbstractText{constructor(e,t){assert(t>=1),super(),this._getLineContent=e,this._lineCount=t}getValueOfRange(e){if(e.startLineNumber===e.endLineNumber)return this._getLineContent(e.startLineNumber).substring(e.startColumn-1,e.endColumn-1);let t=this._getLineContent(e.startLineNumber).substring(e.startColumn-1);for(let r=e.startLineNumber+1;r<e.endLineNumber;r++)t+="\n"+this._getLineContent(r);return t+="\n"+this._getLineContent(e.endLineNumber).substring(0,e.endColumn-1),t}getLineLength(e){return this._getLineContent(e).length}get length(){const e=this._getLineContent(this._lineCount);return new TextLength(this._lineCount-1,e.length)}}class ArrayText extends LineBasedText{constructor(e){super(t=>e[t-1],e.length)}}class StringText extends AbstractText{constructor(e){super(),this.value=e,this._t=new PositionOffsetTransformer(this.value)}getValueOfRange(e){return this._t.getOffsetRange(e).substring(this.value)}get length(){return this._t.textLength}getTransformer(){return this._t}}class TextEdit{static fromStringEdit(e,t){const r=e.replacements.map(s=>TextReplacement.fromStringReplacement(s,t));return new TextEdit(r)}static fromParallelReplacementsUnsorted(e){const t=e.slice().sort(compareBy(r=>r.range,Range$2.compareRangesUsingStarts));return new TextEdit(t)}constructor(e){this.replacements=e,assertFn(()=>checkAdjacentItems(e,(t,r)=>t.range.getEndPosition().isBeforeOrEqual(r.range.getStartPosition())))}mapPosition(e){let t=0,r=0,s=0;for(const a of this.replacements){const l=a.range.getStartPosition();if(e.isBeforeOrEqual(l))break;const c=a.range.getEndPosition(),d=TextLength.ofText(a.text);if(e.isBefore(c)){const u=new Position$1(l.lineNumber+t,l.column+(l.lineNumber+t===r?s:0)),g=d.addToPosition(u);return rangeFromPositions(u,g)}l.lineNumber+t!==r&&(s=0),t+=d.lineCount-(a.range.endLineNumber-a.range.startLineNumber),d.lineCount===0?c.lineNumber!==l.lineNumber?s+=d.columnCount-(c.column-1):s+=d.columnCount-(c.column-l.column):s=d.columnCount,r=c.lineNumber+t}return new Position$1(e.lineNumber+t,e.column+(e.lineNumber+t===r?s:0))}mapRange(e){function t(l){return l instanceof Position$1?l:l.getStartPosition()}function r(l){return l instanceof Position$1?l:l.getEndPosition()}const s=t(this.mapPosition(e.getStartPosition())),a=r(this.mapPosition(e.getEndPosition()));return rangeFromPositions(s,a)}apply(e){let t="",r=new Position$1(1,1);for(const a of this.replacements){const l=a.range,c=l.getStartPosition(),d=l.getEndPosition(),u=rangeFromPositions(r,c);u.isEmpty()||(t+=e.getValueOfRange(u)),t+=a.text,r=d}const s=rangeFromPositions(r,e.endPositionExclusive);return s.isEmpty()||(t+=e.getValueOfRange(s)),t}applyToString(e){const t=new StringText(e);return this.apply(t)}getNewRanges(){const e=[];let t=0,r=0,s=0;for(const a of this.replacements){const l=TextLength.ofText(a.text),c=Position$1.lift({lineNumber:a.range.startLineNumber+r,column:a.range.startColumn+(a.range.startLineNumber===t?s:0)}),d=l.createRange(c);e.push(d),r=d.endLineNumber-a.range.endLineNumber,s=d.endColumn-a.range.endColumn,t=a.range.endLineNumber}return e}toReplacement(e){if(this.replacements.length===0)throw new BugIndicatingError;if(this.replacements.length===1)return this.replacements[0];const t=this.replacements[0].range.getStartPosition(),r=this.replacements[this.replacements.length-1].range.getEndPosition();let s="";for(let a=0;a<this.replacements.length;a++){const l=this.replacements[a];if(s+=l.text,a<this.replacements.length-1){const c=this.replacements[a+1],d=Range$2.fromPositions(l.range.getEndPosition(),c.range.getStartPosition()),u=e.getValueOfRange(d);s+=u}}return new TextReplacement(Range$2.fromPositions(t,r),s)}toString(e){return e===void 0?this.replacements.map(t=>t.toString()).join("\n"):typeof e=="string"?this.toString(new StringText(e)):this.replacements.length===0?"":this.replacements.map(t=>{const s=e.getValueOfRange(t.range),a=Range$2.fromPositions(new Position$1(Math.max(1,t.range.startLineNumber-1),1),t.range.getStartPosition());let l=e.getValueOfRange(a);l.length>10&&(l="..."+l.substring(l.length-10));const c=Range$2.fromPositions(t.range.getEndPosition(),new Position$1(t.range.endLineNumber+1,1));let d=e.getValueOfRange(c);d.length>10&&(d=d.substring(0,10)+"...");let u=s;if(u.length>10){const f=Math.floor(5);u=u.substring(0,f)+"..."+u.substring(u.length-f)}let g=t.text;if(g.length>10){const f=Math.floor(5);g=g.substring(0,f)+"..."+g.substring(g.length-f)}return u.length===0?"".concat(l,"❰").concat(g,"❱").concat(d):"".concat(l,"❰").concat(u,"↦").concat(g,"❱").concat(d)}).join("\n")}}class TextReplacement{static joinReplacements(e,t){if(e.length===0)throw new BugIndicatingError;if(e.length===1)return e[0];const r=e[0].range.getStartPosition(),s=e[e.length-1].range.getEndPosition();let a="";for(let l=0;l<e.length;l++){const c=e[l];if(a+=c.text,l<e.length-1){const d=e[l+1],u=Range$2.fromPositions(c.range.getEndPosition(),d.range.getStartPosition()),g=t.getValueOfRange(u);a+=g}}return new TextReplacement(Range$2.fromPositions(r,s),a)}static fromStringReplacement(e,t){return new TextReplacement(t.getTransformer().getRange(e.replaceRange),e.newText)}static delete(e){return new TextReplacement(e,"")}constructor(e,t){this.range=e,this.text=t}get isEmpty(){return this.range.isEmpty()&&this.text.length===0}static equals(e,t){return e.range.equalsRange(t.range)&&e.text===t.text}equals(e){return TextReplacement.equals(this,e)}removeCommonPrefixAndSuffix(e){return this.removeCommonPrefix(e).removeCommonSuffix(e)}removeCommonPrefix(e){const t=e.getValueOfRange(this.range).replaceAll("\r\n","\n"),r=this.text.replaceAll("\r\n","\n"),s=commonPrefixLength(t,r),a=TextLength.ofText(t.substring(0,s)).addToPosition(this.range.getStartPosition()),l=r.substring(s),c=Range$2.fromPositions(a,this.range.getEndPosition());return new TextReplacement(c,l)}removeCommonSuffix(e){const t=e.getValueOfRange(this.range).replaceAll("\r\n","\n"),r=this.text.replaceAll("\r\n","\n"),s=commonSuffixLength(t,r),a=TextLength.ofText(t.substring(0,t.length-s)).addToPosition(this.range.getStartPosition()),l=r.substring(0,r.length-s),c=Range$2.fromPositions(this.range.getStartPosition(),a);return new TextReplacement(c,l)}toString(){const e=this.range.getStartPosition(),t=this.range.getEndPosition();return"(".concat(e.lineNumber,",").concat(e.column," -> ").concat(t.lineNumber,",").concat(t.column,'): "').concat(this.text,'"')}}function rangeFromPositions(o,e){if(o.lineNumber===e.lineNumber&&o.column===Number.MAX_SAFE_INTEGER)return Range$2.fromPositions(e,e);if(!o.isBeforeOrEqual(e))throw new BugIndicatingError("start must be before end");return new Range$2(o.lineNumber,o.column,e.lineNumber,e.column)}_setPositionOffsetTransformerDependencies({StringEdit,StringReplacement,TextReplacement,TextEdit,TextLength});var __decorate$2X=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2O=function(o,e){return function(t,r){e(t,r,o)}};let SimpleScreenReaderContent=class extends Disposable$1{constructor(e,t,r,s){super(),this._domNode=e,this._context=t,this._viewController=r,this._accessibilityService=s,this._selectionChangeListener=this._register(new MutableDisposable),this._accessibilityPageSize=1,this._ignoreSelectionChangeTime=0,this._strategy=new SimplePagedScreenReaderStrategy,this.onConfigurationChanged(this._context.configuration.options)}updateScreenReaderContent(e){const t=this._domNode.domNode,r=getActiveWindow().document.activeElement;if(!r||r!==t)return;if(this._accessibilityService.isScreenReaderOptimized()){this._state=this._getScreenReaderContentState(e),t.textContent!==this._state.value&&(this._setIgnoreSelectionChangeTime("setValue"),t.textContent=this._state.value);const a=getActiveWindow().document.getSelection();if(!a)return;const l=this._getScreenReaderRange(this._state.selectionStart,this._state.selectionEnd);if(!l)return;this._setIgnoreSelectionChangeTime("setRange"),a.setBaseAndExtent(l.anchorNode,l.anchorOffset,l.focusNode,l.focusOffset)}else this._state=void 0,this._setIgnoreSelectionChangeTime("setValue"),this._domNode.domNode.textContent=""}updateScrollTop(e){if(!this._state)return;const t=this._context.viewModel.viewLayout,r=this._state.startPositionWithinEditor.lineNumber,s=t.getVerticalOffsetForLineNumber(r),a=t.getVerticalOffsetForLineNumber(e.positionLineNumber);this._domNode.domNode.scrollTop=a-s}onFocusChange(e){e?this._selectionChangeListener.value=this._setSelectionChangeListener():this._selectionChangeListener.value=void 0}onConfigurationChanged(e){this._accessibilityPageSize=e.get(3)}onWillCut(){this._setIgnoreSelectionChangeTime("onCut")}onWillPaste(){this._setIgnoreSelectionChangeTime("onWillPaste")}_setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}_setSelectionChangeListener(){let e=0;return addDisposableListener(this._domNode.domNode.ownerDocument,"selectionchange",()=>{const t=this._accessibilityService.isScreenReaderOptimized();if(!this._state||!t||!IME.enabled||!(getActiveWindow().document.activeElement===this._domNode.domNode))return;const a=getActiveWindow().document.getSelection();if(!a||a.rangeCount===0)return;const c=a.getRangeAt(0),d=Date.now(),u=d-e;if(e=d,u<5)return;const g=d-this._ignoreSelectionChangeTime;this._ignoreSelectionChangeTime=0,!(g<100)&&this._viewController.setSelection(this._getEditorSelectionFromDomRange(this._context,this._state,a.direction,c))})}_getScreenReaderContentState(e){const t=this._strategy.fromEditorSelection(this._context.viewModel,e,this._accessibilityPageSize,this._accessibilityService.getAccessibilitySupport()===0),r=this._context.viewModel.model.getPositionAt(1/0);let s=t.value;return r.column===1&&e.getEndPosition().equals(r)&&(s+="\n"),t.value=s,t}_getScreenReaderRange(e,t){const r=this._domNode.domNode.firstChild;if(!r)return;const s=new globalThis.Range;return s.setStart(r,e),s.setEnd(r,t),{anchorNode:r,anchorOffset:e,focusNode:r,focusOffset:t}}_getEditorSelectionFromDomRange(e,t,r,s){const a=e.viewModel,l=a.model,d=a.coordinatesConverter.convertViewPositionToModelPosition(t.startPositionWithinEditor),u=l.getOffsetAt(d);let g=s.startOffset+u,f=s.endOffset+u;if(l.getEndOfLineSequence()===1){const y=t.value,S=new PositionOffsetTransformer(y),w=S.getPosition(s.startOffset),E=S.getPosition(s.endOffset);g+=w.lineNumber-1,f+=E.lineNumber-1}const _=l.getPositionAt(g),v=l.getPositionAt(f),b=r==="forward"?_:v,C=r==="forward"?v:_;return Selection$1.fromPositions(b,C)}};SimpleScreenReaderContent=__decorate$2X([__param$2O(3,IAccessibilityService)],SimpleScreenReaderContent);var __decorate$2W=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2N=function(o,e){return function(t,r){e(t,r,o)}};let ScreenReaderSupport=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._domNode=e,this._context=t,this._viewController=r,this._keybindingService=s,this._accessibilityService=a,this._contentLeft=1,this._contentWidth=1,this._contentHeight=1,this._divWidth=1,this._primarySelection=new Selection$1(1,1,1,1),this._primaryCursorVisibleRange=null,this._state=this._register(new MutableDisposable),this._instantiateScreenReaderContent(),this._updateConfigurationSettings(),this._updateDomAttributes()}onWillPaste(){var e;(e=this._state.value)==null||e.onWillPaste()}onWillCut(){var e;(e=this._state.value)==null||e.onWillCut()}handleFocusChange(e){var t;(t=this._state.value)==null||t.onFocusChange(e),this.writeScreenReaderContent()}onConfigurationChanged(e){this._instantiateScreenReaderContent(),this._updateConfigurationSettings(),this._updateDomAttributes(),e.hasChanged(2)&&this.writeScreenReaderContent()}_instantiateScreenReaderContent(){const e=this._context.configuration.options.get(107);this._renderRichContent!==e&&(this._renderRichContent=e,this._state.value=this._createScreenReaderContent(e))}_createScreenReaderContent(e){return e?new RichScreenReaderContent(this._domNode,this._context,this._viewController,this._accessibilityService):new SimpleScreenReaderContent(this._domNode,this._context,this._viewController,this._accessibilityService)}_updateConfigurationSettings(){var s;const e=this._context.configuration.options,t=e.get(165),r=t.wrappingColumn;this._contentLeft=t.contentLeft,this._contentWidth=t.contentWidth,this._contentHeight=t.height,this._fontInfo=e.get(59),this._divWidth=Math.round(r*this._fontInfo.typicalHalfwidthCharacterWidth),(s=this._state.value)==null||s.onConfigurationChanged(e)}_updateDomAttributes(){const e=this._context.configuration.options;this._domNode.domNode.setAttribute("role","textbox"),this._domNode.domNode.setAttribute("aria-required",e.get(9)?"true":"false"),this._domNode.domNode.setAttribute("aria-multiline","true"),this._domNode.domNode.setAttribute("aria-autocomplete",e.get(104)?"none":"both"),this._domNode.domNode.setAttribute("aria-roledescription",localize(60,"editor")),this._domNode.domNode.setAttribute("aria-label",ariaLabelForScreenReaderContent(e,this._keybindingService));const t=this._context.viewModel.model.getOptions().tabSize,r=e.get(59).spaceWidth;this._domNode.domNode.style.tabSize="".concat(t*r,"px");const s=e.get(154),a=s==="inherit"?e.get(153):s,l=a==="inherit"?e.get(149):a;this._domNode.domNode.style.textWrap=l==="off"?"nowrap":"wrap"}onCursorStateChanged(e){var t;this._primarySelection=(t=e.selections[0])!=null?t:new Selection$1(1,1,1,1)}prepareRender(e){this.writeScreenReaderContent(),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primarySelection.getPosition())}render(e){var d;if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const t=this._context.viewLayout.getCurrentScrollLeft(),r=this._contentLeft+this._primaryCursorVisibleRange.left-t;if(r<this._contentLeft||r>this._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const s=this._context.viewLayout.getCurrentScrollTop(),a=this._primarySelection.positionLineNumber,l=this._context.viewLayout.getVerticalOffsetForLineNumber(a)-s;if(l<0||l>this._contentHeight){this._renderAtTopLeft();return}const c=this._context.viewLayout.getLineHeightForLineNumber(a);this._doRender(l,this._contentLeft,this._divWidth,c),(d=this._state.value)==null||d.updateScrollTop(this._primarySelection)}_renderAtTopLeft(){this._doRender(0,0,this._contentWidth,1)}_doRender(e,t,r,s){applyFontInfo(this._domNode,this._fontInfo),this._domNode.setTop(e),this._domNode.setLeft(t),this._domNode.setWidth(r),this._domNode.setHeight(s),this._domNode.setLineHeight(s)}setAriaOptions(e){e.activeDescendant?(this._domNode.setAttribute("aria-haspopup","true"),this._domNode.setAttribute("aria-autocomplete","list"),this._domNode.setAttribute("aria-activedescendant",e.activeDescendant)):(this._domNode.setAttribute("aria-haspopup","false"),this._domNode.setAttribute("aria-autocomplete","both"),this._domNode.removeAttribute("aria-activedescendant")),e.role&&this._domNode.setAttribute("role",e.role)}writeScreenReaderContent(){var e;(e=this._state.value)==null||e.updateScreenReaderContent(this._primarySelection)}};ScreenReaderSupport=__decorate$2W([__param$2N(3,IKeybindingService),__param$2N(4,IAccessibilityService)],ScreenReaderSupport);var EditContext;(function(o){function e(t,r){return new t.EditContext(r)}o.create=e})(EditContext||(EditContext={}));class NativeEditContextRegistryImpl{constructor(){this._nativeEditContextMapping=new Map}register(e,t){return this._nativeEditContextMapping.set(e,t),{dispose:()=>{this._nativeEditContextMapping.delete(e)}}}get(e){return this._nativeEditContextMapping.get(e)}}const NativeEditContextRegistry=new NativeEditContextRegistryImpl;var __decorate$2V=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2M=function(o,e){return function(t,r){e(t,r,o)}},CompositionClassName;(function(o){o.NONE="edit-context-composition-none",o.SECONDARY="edit-context-composition-secondary",o.PRIMARY="edit-context-composition-primary"})(CompositionClassName||(CompositionClassName={}));let NativeEditContext=class extends AbstractEditContext{constructor(e,t,r,s,a,l,c){super(t),this._viewController=s,this._visibleRangeProvider=a,this.logService=c,this._previousEditContextSelection=new OffsetRange(0,0),this._editContextPrimarySelection=new Selection$1(1,1,1,1),this._decorations=[],this._primarySelection=new Selection$1(1,1,1,1),this._targetWindowId=-1,this._scrollTop=0,this._scrollLeft=0,this._linesVisibleRanges=null,this.domNode=new FastDomNode(document.createElement("div")),this.domNode.setClassName("native-edit-context"),this._imeTextArea=new FastDomNode(document.createElement("textarea")),this._imeTextArea.setClassName("ime-text-area"),this._imeTextArea.setAttribute("readonly","true"),this._imeTextArea.setAttribute("tabindex","-1"),this._imeTextArea.setAttribute("aria-hidden","true"),this.domNode.setAttribute("autocorrect","off"),this.domNode.setAttribute("autocapitalize","off"),this.domNode.setAttribute("autocomplete","off"),this.domNode.setAttribute("spellcheck","false"),this._updateDomAttributes(),r.appendChild(this.domNode),r.appendChild(this._imeTextArea),this._parent=r.domNode,this._focusTracker=this._register(new FocusTracker(c,this.domNode.domNode,f=>{c.trace("NativeEditContext#handleFocusChange : ",f),this._screenReaderSupport.handleFocusChange(f),this._context.viewModel.setHasFocus(f)}));const d=getWindow$1(this.domNode.domNode);this._editContext=EditContext.create(d),this.setEditContextOnDomNode(),this._screenReaderSupport=this._register(l.createInstance(ScreenReaderSupport,this.domNode,t,this._viewController)),this._register(addDisposableListener(this.domNode.domNode,"copy",f=>{this.logService.trace("NativeEditContext#copy"),this._ensureClipboardGetsEditorSelection(f)})),this._register(addDisposableListener(this.domNode.domNode,"cut",f=>{this.logService.trace("NativeEditContext#cut"),this._screenReaderSupport.onWillCut(),this._ensureClipboardGetsEditorSelection(f),this.logService.trace("NativeEditContext#cut (before viewController.cut)"),this._viewController.cut()})),this._register(addDisposableListener(this.domNode.domNode,"keyup",f=>this._onKeyUp(f))),this._register(addDisposableListener(this.domNode.domNode,"keydown",async f=>this._onKeyDown(f))),this._register(addDisposableListener(this._imeTextArea.domNode,"keyup",f=>this._onKeyUp(f))),this._register(addDisposableListener(this._imeTextArea.domNode,"keydown",async f=>this._onKeyDown(f))),this._register(addDisposableListener(this.domNode.domNode,"beforeinput",async f=>{(f.inputType==="insertParagraph"||f.inputType==="insertLineBreak")&&this._onType(this._viewController,{text:"\n",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0})})),this._register(addDisposableListener(this.domNode.domNode,"paste",f=>{if(this.logService.trace("NativeEditContext#paste"),f.preventDefault(),!f.clipboardData)return;let[m,_]=ClipboardEventUtils.getTextData(f.clipboardData);if(this.logService.trace("NativeEditContext#paste with id : ",_==null?void 0:_.id," with text.length: ",m.length),!m)return;_=_||InMemoryClipboardMetadataManager.INSTANCE.get(m);let v=!1,b=null,C=null;_&&(v=this._context.configuration.options.get(45)&&!!_.isFromEmptySelection,b=typeof _.multicursorText<"u"?_.multicursorText:null,C=_.mode),this.logService.trace("NativeEditContext#paste (before viewController.paste)"),this._viewController.paste(m,v,b,C)})),this._register(editContextAddDisposableListener(this._editContext,"textformatupdate",f=>this._handleTextFormatUpdate(f))),this._register(editContextAddDisposableListener(this._editContext,"characterboundsupdate",f=>this._updateCharacterBounds(f)));let u;this._register(editContextAddDisposableListener(this._editContext,"textupdate",f=>{const m=f.text;if(m.length===1){const _=m.charCodeAt(0);if(isHighSurrogate(_)){u=m;return}if(isLowSurrogate(_)&&u){const v={text:u+m,selectionEnd:f.selectionEnd,selectionStart:f.selectionStart,updateRangeStart:f.updateRangeStart-1,updateRangeEnd:f.updateRangeEnd-1};u=void 0,this._emitTypeEvent(this._viewController,v);return}}this._emitTypeEvent(this._viewController,f)})),this._register(editContextAddDisposableListener(this._editContext,"compositionstart",f=>{this._updateEditContext(),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(editContextAddDisposableListener(this._editContext,"compositionend",f=>{this._updateEditContext(),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()}));let g=!1;this._register(IME.onDidChange(()=>{IME.enabled&&g&&(this._focusTracker.resume(),this.domNode.focus(),g=!1),!IME.enabled&&this.isFocused()&&(this._focusTracker.pause(),this._imeTextArea.focus(),g=!0)})),this._register(NativeEditContextRegistry.register(e,this))}dispose(){this.domNode.domNode.editContext=void 0,this.domNode.domNode.blur(),this.domNode.domNode.remove(),this._imeTextArea.domNode.remove(),super.dispose()}setAriaOptions(e){this._screenReaderSupport.setAriaOptions(e)}getLastRenderData(){return this._primarySelection.getPosition()}prepareRender(e){this._screenReaderSupport.prepareRender(e),this._updateSelectionAndControlBoundsData(e)}onDidRender(){this._updateSelectionAndControlBoundsAfterRender()}render(e){this._screenReaderSupport.render(e)}onCursorStateChanged(e){var t;return this._primarySelection=(t=e.modelSelections[0])!=null?t:new Selection$1(1,1,1,1),this._screenReaderSupport.onCursorStateChanged(e),this._updateEditContext(),!0}onConfigurationChanged(e){return this._screenReaderSupport.onConfigurationChanged(e),this._updateDomAttributes(),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return this._updateEditContextOnLineChange(e.fromLineNumber,e.fromLineNumber+e.count-1),!0}onLinesDeleted(e){return this._updateEditContextOnLineChange(e.fromLineNumber,e.toLineNumber),!0}onLinesInserted(e){return this._updateEditContextOnLineChange(e.fromLineNumber,e.toLineNumber),!0}_updateEditContextOnLineChange(e,t){this._editContextPrimarySelection.endLineNumber<e||this._editContextPrimarySelection.startLineNumber>t||this._updateEditContext()}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}onWillPaste(){this.logService.trace("NativeEditContext#onWillPaste"),this._onWillPaste()}_onWillPaste(){this._screenReaderSupport.onWillPaste()}onWillCopy(){this.logService.trace("NativeEditContext#onWillCopy"),this.logService.trace("NativeEditContext#isFocused : ",this.domNode.domNode===getActiveElement())}writeScreenReaderContent(){this._screenReaderSupport.writeScreenReaderContent()}isFocused(){return this._focusTracker.isFocused}focus(){this._focusTracker.focus(),this.refreshFocusState()}refreshFocusState(){this._focusTracker.refreshFocusState()}setEditContextOnDomNode(){const e=getWindow$1(this.domNode.domNode),t=getWindowId(e);this._targetWindowId!==t&&(this.domNode.domNode.editContext=this._editContext,this._targetWindowId=t)}_onKeyUp(e){this._viewController.emitKeyUp(new StandardKeyboardEvent(e))}_onKeyDown(e){const t=new StandardKeyboardEvent(e);t.keyCode===114&&t.stopPropagation(),this._viewController.emitKeyDown(t)}_updateDomAttributes(){const e=this._context.configuration.options;this.domNode.domNode.setAttribute("tabindex",String(e.get(140)))}_updateEditContext(){var t;const e=this._getNewEditContextState();e&&(this._editContext.updateText(0,Number.MAX_SAFE_INTEGER,(t=e.text)!=null?t:" "),this._editContext.updateSelection(e.selectionStartOffset,e.selectionEndOffset),this._editContextPrimarySelection=e.editContextPrimarySelection,this._previousEditContextSelection=new OffsetRange(e.selectionStartOffset,e.selectionEndOffset))}_emitTypeEvent(e,t){if(!this._editContext)return;const r=this._previousEditContextSelection.endExclusive,s=this._previousEditContextSelection.start;this._previousEditContextSelection=new OffsetRange(t.selectionStart,t.selectionEnd);let a=0,l=0;t.updateRangeEnd>r&&(a=t.updateRangeEnd-r),t.updateRangeStart<s&&(l=s-t.updateRangeStart);let c="";s<t.updateRangeStart&&(c+=this._editContext.text.substring(s,t.updateRangeStart)),c+=t.text,r>t.updateRangeEnd&&(c+=this._editContext.text.substring(t.updateRangeEnd,r));let d=0;t.selectionStart===t.selectionEnd&&s===r&&(d=t.selectionStart-(t.updateRangeStart+t.text.length));const u={text:c,replacePrevCharCnt:l,replaceNextCharCnt:a,positionDelta:d};this._onType(e,u)}_onType(e,t){t.replacePrevCharCnt||t.replaceNextCharCnt||t.positionDelta?e.compositionType(t.text,t.replacePrevCharCnt,t.replaceNextCharCnt,t.positionDelta):e.type(t.text)}_getNewEditContextState(){const e=this._primarySelection,t=this._context.viewModel.model;if(!t.isValidRange(e))return;const r=e.startLineNumber,s=e.endLineNumber,a=t.getLineMaxColumn(s),l=new Range$2(r,1,s,a),c=t.getValueInRange(l,0),d=e.startColumn-1,u=c.length+e.endColumn-a;return{text:c,selectionStartOffset:d,selectionEndOffset:u,editContextPrimarySelection:e}}_editContextStartPosition(){return new Position$1(this._editContextPrimarySelection.startLineNumber,1)}_handleTextFormatUpdate(e){if(!this._editContext)return;const t=e.getTextFormats(),r=this._editContextStartPosition(),s=[];t.forEach(a=>{const l=this._context.viewModel.model,c=l.getOffsetAt(r),d=l.getPositionAt(c+a.rangeStart),u=l.getPositionAt(c+a.rangeEnd),g=Range$2.fromPositions(d,u),f=a.underlineThickness.toLowerCase();let m=CompositionClassName.NONE;switch(f){case"thin":m=CompositionClassName.SECONDARY;break;case"thick":m=CompositionClassName.PRIMARY;break}s.push({range:g,options:{description:"textFormatDecoration",inlineClassName:m}})}),this._decorations=this._context.viewModel.model.deltaDecorations(this._decorations,s)}_updateSelectionAndControlBoundsData(e){const t=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(this._primarySelection);if(this._primarySelection.isEmpty()){const r=e.visibleRangeForPosition(t.getStartPosition());this._linesVisibleRanges=r}else this._linesVisibleRanges=null}_updateSelectionAndControlBoundsAfterRender(){const t=this._context.configuration.options.get(165).contentLeft,r=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(this._primarySelection),s=this._context.viewLayout.getVerticalOffsetForLineNumber(r.startLineNumber),a=this._context.viewLayout.getVerticalOffsetAfterLineNumber(r.endLineNumber),l=this._parent.getBoundingClientRect(),c=l.top+s-this._scrollTop,d=a-s;let u=l.left+t-this._scrollLeft,g;this._primarySelection.isEmpty()?(this._linesVisibleRanges&&(u+=this._linesVisibleRanges.left),g=0):g=l.width-t;const f=new DOMRect(u,c,g,d);this._editContext.updateSelectionBounds(f),this._editContext.updateControlBounds(f)}_updateCharacterBounds(e){var d;const t=this._context.configuration.options,r=t.get(59).typicalHalfwidthCharacterWidth,s=t.get(165).contentLeft,a=this._parent.getBoundingClientRect(),l=[],c=new PositionOffsetTransformer(this._editContext.text);for(let u=e.rangeStart;u<e.rangeEnd;u++){const g=c.getPosition(u),f=this._editContextPrimarySelection.startLineNumber-1,m=new Position$1(f+g.lineNumber,g.column),_=m.delta(0,1),v=Range$2.fromPositions(m,_),b=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(v),C=(d=this._visibleRangeProvider.linesVisibleRangesForRange(b,!0))!=null?d:[],y=b.startLineNumber,S=this._context.viewLayout.getVerticalOffsetForLineNumber(y),w=a.top+S-this._scrollTop;let E=0,x=r;if(C.length>0)for(const k of C[0].ranges){E=k.left,x=k.width;break}const L=this._context.viewLayout.getLineHeightForLineNumber(y);l.push(new DOMRect(a.left+s+E-this._scrollLeft,w,x,L))}this._editContext.updateCharacterBounds(e.rangeStart,l)}_ensureClipboardGetsEditorSelection(e){const t=this._context.configuration.options,r=t.get(45),s=t.get(31),a=this._context.viewModel.getCursorStates().map(u=>u.modelState.selection),l=getDataToCopy(this._context.viewModel,a,r,s);let c;this.logService.getLevel()===LogLevel.Trace&&(c=generateUuid());const d={version:1,id:c,isFromEmptySelection:l.isFromEmptySelection,multicursorText:l.multicursorText,mode:l.mode};InMemoryClipboardMetadataManager.INSTANCE.set(isFirefox$1?l.text.replace(/\r\n/g,"\n"):l.text,d),e.preventDefault(),e.clipboardData&&ClipboardEventUtils.setTextData(e.clipboardData,l.text,l.html,d),this.logService.trace("NativeEditContext#_ensureClipboardGetsEditorSelectios with id : ",c," with text.length: ",l.text.length)}};NativeEditContext=__decorate$2V([__param$2M(5,IInstantiationService),__param$2M(6,ILogService)],NativeEditContext);class RulersGpu extends ViewPart{constructor(e,t){super(e),this._viewGpuContext=t,this._gpuShapes=[],this._register(autorun(r=>this._updateEntries(r)))}onConfigurationChanged(e){return this._updateEntries(void 0),!0}prepareRender(e){}render(e){}_updateEntries(e){var l;const t=this._context.configuration.options,r=t.get(116),s=t.get(59).typicalHalfwidthCharacterWidth,a=this._viewGpuContext.devicePixelRatio.read(e);for(let c=0,d=r.length;c<d;c++){const u=r[c],g=this._gpuShapes[c],f=u.color?Color.fromHex(u.color):(l=this._context.theme.getColor(editorRuler))!=null?l:Color.white,m=[u.column*s*a,0,Math.max(1,Math.ceil(a)),Number.MAX_SAFE_INTEGER,f.rgba.r/255,f.rgba.g/255,f.rgba.b/255,f.rgba.a];g?g.setRaw(m):this._gpuShapes[c]=this._viewGpuContext.rectangleRenderer.register(...m)}for(;this._gpuShapes.length>r.length;)this._gpuShapes.splice(-1,1)[0].dispose()}}const So=class So extends DynamicViewOverlay{constructor(e,t){super(),this._viewGpuContext=t,this._context=e,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return!0}onCursorStateChanged(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}onDecorationsChanged(e){return!0}prepareRender(e){const t=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,s=e.viewportData,a=new ViewLineOptions(this._context.configuration,this._context.theme.type),l=[];for(let c=t;c<=r;c++){const d=c-t,u=this._viewGpuContext.canRenderDetailed(a,s,c);l[d]=u.length?'<div class="'.concat(So.CLASS_NAME,'" title="Cannot render on GPU: ').concat(u.join(", "),'"></div>'):""}this._renderResult=l}render(e,t){if(!this._renderResult)return"";const r=t-e;return r<0||r>=this._renderResult.length?"":this._renderResult[r]}};So.CLASS_NAME="gpu-mark";let GpuMarkOverlay=So;var __decorate$2U=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2L=function(o,e){return function(t,r){e(t,r,o)}};let View$1=class extends ViewEventHandler{constructor(e,t,r,s,a,l,c,d,u){super(),this._instantiationService=u,this._shouldRecomputeGlyphMarginLanes=!1,this._ownerID=t,this._widgetFocusTracker=this._register(new CodeEditorWidgetFocusTracker(e,d)),this._register(this._widgetFocusTracker.onChange(()=>{this._context.viewModel.setHasWidgetFocus(this._widgetFocusTracker.hasFocus())})),this._selections=[new Selection$1(1,1,1,1)],this._renderAnimationFrame=null,this._overflowGuardContainer=createFastDomNode(document.createElement("div")),PartFingerprints.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._viewController=new ViewController(s,l,c,r),this._context=new ViewContext(s,a,l),this._context.addEventHandler(this),this._viewParts=[],this._editContextEnabled=this._context.configuration.options.get(170),this._accessibilitySupport=this._context.configuration.options.get(2),this._editContext=this._instantiateEditContext(),this._viewParts.push(this._editContext),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._context.configuration.options.get(46)==="on"&&(this._viewGpuContext=this._instantiationService.createInstance(ViewGpuContext,this._context)),this._scrollbar=new EditorScrollbar(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new ViewLines(this._context,this._viewGpuContext,this._linesContent),this._viewGpuContext&&(this._viewLinesGpu=this._instantiationService.createInstance(ViewLinesGpu,this._context,this._viewGpuContext)),this._viewZones=new ViewZones(this._context),this._viewParts.push(this._viewZones);const g=new DecorationsOverviewRuler(this._context);this._viewParts.push(g);const f=new ScrollDecorationViewPart(this._context);this._viewParts.push(f);const m=new ContentViewOverlays(this._context);this._viewParts.push(m),m.addDynamicOverlay(new CurrentLineHighlightOverlay(this._context)),m.addDynamicOverlay(new SelectionsOverlay(this._context)),m.addDynamicOverlay(new IndentGuidesOverlay(this._context)),m.addDynamicOverlay(new DecorationsOverlay(this._context)),m.addDynamicOverlay(new WhitespaceOverlay(this._context));const _=new MarginViewOverlays(this._context);this._viewParts.push(_),_.addDynamicOverlay(new CurrentLineMarginHighlightOverlay(this._context)),_.addDynamicOverlay(new MarginViewLineDecorationsOverlay(this._context)),_.addDynamicOverlay(new LinesDecorationsOverlay(this._context)),_.addDynamicOverlay(new LineNumbersOverlay(this._context)),this._viewGpuContext&&_.addDynamicOverlay(new GpuMarkOverlay(this._context,this._viewGpuContext)),this._glyphMarginWidgets=new GlyphMarginWidgets(this._context),this._viewParts.push(this._glyphMarginWidgets);const v=new Margin(this._context);v.getDomNode().appendChild(this._viewZones.marginDomNode),v.getDomNode().appendChild(_.getDomNode()),v.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(v),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.domNode),this._viewParts.push(this._overlayWidgets);const b=this._viewGpuContext?new RulersGpu(this._context,this._viewGpuContext):new Rulers(this._context);this._viewParts.push(b);const C=new BlockDecorations(this._context);this._viewParts.push(C);const y=new Minimap(this._context);if(this._viewParts.push(y),g){const S=this._scrollbar.getOverviewRulerLayoutInfo();S.parent.insertBefore(g.getDomNode(),S.insertBefore)}this._linesContent.appendChild(m.getDomNode()),"domNode"in b&&this._linesContent.appendChild(b.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(v.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._viewGpuContext&&this._overflowGuardContainer.appendChild(this._viewGpuContext.canvas),this._overflowGuardContainer.appendChild(f.getDomNode()),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(y.getDomNode()),this._overflowGuardContainer.appendChild(C.domNode),this.domNode.appendChild(this._overflowGuardContainer),d?(d.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),d.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new PointerHandler(this._context,this._viewController,this._createPointerHandlerHelper()))}_instantiateEditContext(){return this._context.configuration.options.get(170)?this._instantiationService.createInstance(NativeEditContext,this._ownerID,this._context,this._overflowGuardContainer,this._viewController,this._createTextAreaHandlerHelper()):this._instantiationService.createInstance(TextAreaEditContext,this._context,this._overflowGuardContainer,this._viewController,this._createTextAreaHandlerHelper())}_updateEditContext(){const e=this._context.configuration.options.get(170),t=this._context.configuration.options.get(2);if(this._editContextEnabled===e&&this._accessibilitySupport===t)return;this._editContextEnabled=e,this._accessibilitySupport=t;const r=this._editContext.isFocused(),s=this._viewParts.indexOf(this._editContext);this._editContext.dispose(),this._editContext=this._instantiateEditContext(),r&&this._editContext.focus(),s!==-1&&this._viewParts.splice(s,1,this._editContext)}_computeGlyphMarginLanes(){const e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes;let r=[],s=0;r=r.concat(e.getAllMarginDecorations().map(a=>{var c,d,u;const l=(d=(c=a.options.glyphMargin)==null?void 0:c.position)!=null?d:GlyphMarginLane$1.Center;return s=Math.max(s,a.range.endLineNumber),{range:a.range,lane:l,persist:(u=a.options.glyphMargin)==null?void 0:u.persistLane}})),r=r.concat(this._glyphMarginWidgets.getWidgets().map(a=>{const l=e.validateRange(a.preference.range);return s=Math.max(s,l.endLineNumber),{range:l,lane:a.preference.lane}})),r.sort((a,l)=>Range$2.compareRangesUsingStarts(a.range,l.range)),t.reset(s);for(const a of r)t.push(a.lane,a.range,a.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,viewLinesGpu:this._viewLinesGpu,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._editContext.domNode.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._editContext.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)=>{var s,a,l;this._flushAccumulatedAndRenderNow();const r=new Position$1(e,t);return(l=(a=this._viewLines.visibleRangeForPosition(r))!=null?a:(s=this._viewLinesGpu)==null?void 0:s.visibleRangeForPosition(r))!=null?l:null},getLineWidth:e=>{if(this._flushAccumulatedAndRenderNow(),this._viewLinesGpu){const t=this._viewLinesGpu.getLineWidth(e);if(t!==void 0)return t}return this._viewLines.getLineWidth(e)}}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e)),linesVisibleRangesForRange:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.linesVisibleRangesForRange(e,t))}}_applyLayout(){const t=this._context.configuration.options.get(165);this.domNode.setWidth(t.width),this.domNode.setHeight(t.height),this._overflowGuardContainer.setWidth(t.width),this._overflowGuardContainer.setHeight(t.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){const e=this._editContext.isFocused()?" focused":"";return this._context.configuration.options.get(162)+" "+getThemeTypeSelector(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._updateEditContext(),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(){var e,t;this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),(e=this._viewGpuContext)==null||e.dispose(),this._viewLines.dispose(),(t=this._viewLinesGpu)==null||t.dispose();for(const r of this._viewParts)r.dispose();super.dispose()}_scheduleRender(){var e;if(this._store.isDisposed)throw new BugIndicatingError;if(this._renderAnimationFrame===null){this._editContext instanceof NativeEditContext&&this._editContext.setEditContextOnDomNode();const t=this._createCoordinatedRendering();this._renderAnimationFrame=EditorRenderingCoordinator.INSTANCE.scheduleCoordinatedRendering({window:getWindow$1((e=this.domNode)==null?void 0:e.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new BugIndicatingError;try{return t.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new BugIndicatingError;return t.renderText()},prepareRender:(r,s)=>{if(this._store.isDisposed)throw new BugIndicatingError;return t.prepareRender(r,s)},render:(r,s)=>{if(this._store.isDisposed)throw new BugIndicatingError;return t.render(r,s)}})}}_flushAccumulatedAndRenderNow(){const e=this._createCoordinatedRendering();safeInvokeNoArg(()=>e.prepareRenderText());const t=safeInvokeNoArg(()=>e.renderText());if(t){const[r,s]=t;safeInvokeNoArg(()=>e.prepareRender(r,s)),safeInvokeNoArg(()=>e.render(r,s))}}_getViewPartsToRender(){const e=[];let t=0;for(const r of this._viewParts)r.shouldRender()&&(e[t++]=r);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}inputLatency.onRenderStart()},renderText:()=>{var s;if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&e.length===0)return null;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const r=new ViewportData(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(r),this._viewLines.shouldRender()&&(this._viewLines.renderText(r),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),(s=this._viewLinesGpu)!=null&&s.shouldRender()&&(this._viewLinesGpu.renderText(r),this._viewLinesGpu.onDidRender()),[e,new RenderingContext(this._context.viewLayout,r,this._viewLines,this._viewLinesGpu)]},prepareRender:(e,t)=>{for(const r of e)r.prepareRender(t)},render:(e,t)=>{for(const r of e)r.render(t),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 r=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),s=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(r);this._flushAccumulatedAndRenderNow();const a=this._viewLines.visibleRangeForPosition(new Position$1(s.lineNumber,s.column));return a?a.left:-1}getTargetAtClientPoint(e,t){const r=this._pointerHandler.getTargetAtClientPoint(e,t);return r?ViewUserInputEvents.convertViewToModelMouseTarget(r,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 r of this._viewParts)r.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._editContext.writeScreenReaderContent(e)}focus(){this._editContext.focus()}isFocused(){return this._editContext.isFocused()}isWidgetFocused(){return this._widgetFocusTracker.hasFocus()}setAriaOptions(e){this._editContext.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){var t,r,s,a,l,c,d,u;this._contentWidgets.setWidgetPosition(e.widget,(r=(t=e.position)==null?void 0:t.position)!=null?r:null,(a=(s=e.position)==null?void 0:s.secondaryPosition)!=null?a:null,(c=(l=e.position)==null?void 0:l.preference)!=null?c:null,(u=(d=e.position)==null?void 0:d.positionAffinity)!=null?u: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){this._overlayWidgets.setWidgetPosition(e.widget,e.position)&&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$2U([__param$2L(8,IInstantiationService)],View$1);function safeInvokeNoArg(o){try{return o()}catch(e){return onUnexpectedError(e),null}}const wo=class wo{constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{const t=this._coordinatedRenderings.indexOf(e);if(t!==-1&&(this._coordinatedRenderings.splice(t,1),this._coordinatedRenderings.length===0)){for(const[r,s]of this._animationFrameRunners)s.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){if(!this._animationFrameRunners.has(e)){const t=()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()};this._animationFrameRunners.set(e,runAtThisOrScheduleAtNextAnimationFrame(e,t,100))}}_onRenderScheduled(){const e=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const r of e)safeInvokeNoArg(()=>r.prepareRenderText());const t=[];for(let r=0,s=e.length;r<s;r++){const a=e[r];t[r]=safeInvokeNoArg(()=>a.renderText())}for(let r=0,s=e.length;r<s;r++){const a=e[r],l=t[r];if(!l)continue;const[c,d]=l;safeInvokeNoArg(()=>a.prepareRender(c,d))}for(let r=0,s=e.length;r<s;r++){const a=e[r],l=t[r];if(!l)continue;const[c,d]=l;safeInvokeNoArg(()=>a.render(c,d))}}};wo.INSTANCE=new wo;let EditorRenderingCoordinator=wo;class CodeEditorWidgetFocusTracker extends Disposable$1{constructor(e,t){super(),this._onChange=this._register(new Emitter$1),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(trackFocus(e)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),t&&(this._overflowWidgetsDomNode=this._register(trackFocus(t)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){var e;return(e=this._hadFocus)!=null?e:!1}}class ModelLineProjectionData{constructor(e,t,r,s,a){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=r,this.breakOffsetsVisibleColumn=s,this.wrappedTextIndentLength=a}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 s=this.breakOffsets[e]-t;return e>0&&(s+=this.wrappedTextIndentLength),s}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let s=e===0?t:this.breakOffsets[e-1]+t;if(this.injectionOffsets!==null)for(let a=0;a<this.injectionOffsets.length&&s>this.injectionOffsets[a];a++)s<this.injectionOffsets[a]+this.injectionOptions[a].content.length?s=this.injectionOffsets[a]:s-=this.injectionOptions[a].content.length;return s}translateToOutputPosition(e,t=2){let r=e;if(this.injectionOffsets!==null)for(let s=0;s<this.injectionOffsets.length&&!(e<this.injectionOffsets[s]||t!==1&&e===this.injectionOffsets[s]);s++)r+=this.injectionOptions[s].content.length;return this.offsetInInputWithInjectionsToOutputPosition(r,t)}offsetInInputWithInjectionsToOutputPosition(e,t=2){let r=0,s=this.breakOffsets.length-1,a=0,l=0;for(;r<=s;){a=r+(s-r)/2|0;const d=this.breakOffsets[a];if(l=a>0?this.breakOffsets[a-1]:0,t===0)if(e<=l)s=a-1;else if(e>d)r=a+1;else break;else if(e<l)s=a-1;else if(e>=d)r=a+1;else break}let c=e-l;return a>0&&(c+=this.wrappedTextIndentLength),new OutputPosition(a,c)}normalizeOutputPosition(e,t,r){if(this.injectionOffsets!==null){const s=this.outputPositionToOffsetInInputWithInjections(e,t),a=this.normalizeOffsetInInputWithInjectionsAroundInjections(s,r);if(a!==s)return this.offsetInInputWithInjectionsToOutputPosition(a,r)}if(r===0){if(e>0&&t===this.getMinOutputOffset(e))return new OutputPosition(e-1,this.getMaxOutputOffset(e-1))}else if(r===1){const s=this.getOutputLineCount()-1;if(e<s&&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 r=this.getInjectedTextAtOffset(e);if(!r)return e;if(t===2){if(e===r.offsetInInputWithInjections+r.length&&hasRightCursorStop(this.injectionOptions[r.injectedTextIndex].cursorStops))return r.offsetInInputWithInjections+r.length;{let s=r.offsetInInputWithInjections;if(hasLeftCursorStop(this.injectionOptions[r.injectedTextIndex].cursorStops))return s;let a=r.injectedTextIndex-1;for(;a>=0&&this.injectionOffsets[a]===this.injectionOffsets[r.injectedTextIndex]&&!(hasRightCursorStop(this.injectionOptions[a].cursorStops)||(s-=this.injectionOptions[a].content.length,hasLeftCursorStop(this.injectionOptions[a].cursorStops)));)a--;return s}}else if(t===1||t===4){let s=r.offsetInInputWithInjections+r.length,a=r.injectedTextIndex;for(;a+1<this.injectionOffsets.length&&this.injectionOffsets[a+1]===this.injectionOffsets[a];)s+=this.injectionOptions[a+1].content.length,a++;return s}else if(t===0||t===3){let s=r.offsetInInputWithInjections,a=r.injectedTextIndex;for(;a-1>=0&&this.injectionOffsets[a-1]===this.injectionOffsets[a];)s-=this.injectionOptions[a-1].content.length,a--;return s}assertNever()}getInjectedText(e,t){const r=this.outputPositionToOffsetInInputWithInjections(e,t),s=this.getInjectedTextAtOffset(r);return s?{options:this.injectionOptions[s.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,r=this.injectionOptions;if(t!==null){let s=0;for(let a=0;a<t.length;a++){const l=r[a].content.length,c=t[a]+s,d=t[a]+s+l;if(c>e)break;if(e<=d)return{injectedTextIndex:a,offsetInInputWithInjections:c,length:l};s+=l}}}}function hasRightCursorStop(o){return o==null?!0:o===InjectedTextCursorStops$1.Right||o===InjectedTextCursorStops$1.Both}function hasLeftCursorStop(o){return o==null?!0:o===InjectedTextCursorStops$1.Left||o===InjectedTextCursorStops$1.Both}class OutputPosition{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return"".concat(this.outputLineIndex,":").concat(this.outputOffset)}toPosition(e){return new Position$1(e+this.outputLineIndex,this.outputOffset+1)}}class ModelRawFlush{constructor(){this.changeType=1}}class LineInjectedText{static applyInjectedText(e,t){if(!t||t.length===0)return e;let r="",s=0;for(const a of t)r+=e.substring(s,a.column-1),s=a.column-1,r+=a.options.content;return r+=e.substring(s),r}static fromDecorations(e){const t=[];for(const r of e)r.options.before&&r.options.before.content.length>0&&t.push(new LineInjectedText(r.ownerId,r.range.startLineNumber,r.range.startColumn,r.options.before,0)),r.options.after&&r.options.after.content.length>0&&t.push(new LineInjectedText(r.ownerId,r.range.endLineNumber,r.range.endColumn,r.options.after,1));return t.sort((r,s)=>r.lineNumber===s.lineNumber?r.column===s.column?r.order-s.order:r.column-s.column:r.lineNumber-s.lineNumber),t}constructor(e,t,r,s,a){this.ownerId=e,this.lineNumber=t,this.column=r,this.options=s,this.order=a}}class ModelRawLineChanged{constructor(e,t,r){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=r}}class ModelLineHeightChanged{constructor(e,t,r,s){this.ownerId=e,this.decorationId=t,this.lineNumber=r,this.lineHeight=s}}class ModelFontChanged{constructor(e,t){this.ownerId=e,this.lineNumber=t}}class ModelRawLinesDeleted{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class ModelRawLinesInserted{constructor(e,t,r,s){this.changeType=4,this.injectedTexts=s,this.fromLineNumber=e,this.toLineNumber=t,this.detail=r}}class ModelRawEOLChanged{constructor(){this.changeType=5}}class ModelRawContentChangedEvent{constructor(e,t,r,s){this.changes=e,this.versionId=t,this.isUndoing=r,this.isRedoing=s,this.resultingSelection=null}containsEvent(e){for(let t=0,r=this.changes.length;t<r;t++)if(this.changes[t].changeType===e)return!0;return!1}static merge(e,t){const r=[].concat(e.changes).concat(t.changes),s=t.versionId,a=e.isUndoing||t.isUndoing,l=e.isRedoing||t.isRedoing;return new ModelRawContentChangedEvent(r,s,a,l)}}class ModelInjectedTextChangedEvent{constructor(e){this.changes=e}}let ModelLineHeightChangedEvent$1=class{constructor(e){this.changes=e}},ModelFontChangedEvent$1=class{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),r=InternalModelContentChangeEvent._mergeChangeEvents(this.contentChangedEvent,e.contentChangedEvent);return new InternalModelContentChangeEvent(t,r)}static _mergeChangeEvents(e,t){const r=[].concat(e.changes).concat(t.changes),s=t.eol,a=t.versionId,l=e.isUndoing||t.isUndoing,c=e.isRedoing||t.isRedoing,d=e.isFlush||t.isFlush,u=e.isEolChange&&t.isEolChange;return{changes:r,eol:s,isEolChange:u,versionId:a,isUndoing:l,isRedoing:c,isFlush:d,detailedReasons:e.detailedReasons.concat(t.detailedReasons),detailedReasonsChangeLengths:e.detailedReasonsChangeLengths.concat(t.detailedReasonsChangeLengths)}}}const ttPolicy$5=createTrustedTypesPolicy$1("domLineBreaksComputer",{createHTML:o=>o});class DOMLineBreaksComputerFactory{static create(e){return new DOMLineBreaksComputerFactory(new WeakRef(e))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,r,s,a,l){const c=[],d=[];return{addRequest:(u,g,f)=>{c.push(u),d.push(g)},finalize:()=>createLineBreaks$1(assertReturnsDefined(this.targetWindow.deref()),c,e,t,r,s,a,d)}}}function createLineBreaks$1(o,e,t,r,s,a,l,c){var I;function d(T){const M=c[T];if(M){const R=LineInjectedText.applyInjectedText(e[T],M),N=M.map(O=>O.options),A=M.map(O=>O.column-1);return new ModelLineProjectionData(A,N,[R.length],[],0)}else return null}if(s===-1){const T=[];for(let M=0,R=e.length;M<R;M++)T[M]=d(M);return T}const u=Math.round(s*t.typicalHalfwidthCharacterWidth),f=Math.round(r*(a===3?2:a===2?1:0)),m=Math.ceil(t.spaceWidth*f),_=document.createElement("div");applyFontInfo(_,t);const v=new StringBuilder(1e4),b=[],C=[],y=[],S=[],w=[];for(let T=0;T<e.length;T++){const M=LineInjectedText.applyInjectedText(e[T],c[T]);let R=0,N=0,A=u;if(a!==0)if(R=firstNonWhitespaceIndex(M),R===-1)R=0;else{for(let B=0;B<R;B++){const H=M.charCodeAt(B)===9?r-N%r:1;N+=H}const F=Math.ceil(t.spaceWidth*N);F+t.typicalFullwidthCharacterWidth>u?(R=0,N=0):A=u-F}const O=M.substr(R),P=renderLine$1(O,N,r,A,v,m);b[T]=R,C[T]=N,y[T]=O,S[T]=P[0],w[T]=P[1]}const E=v.build(),x=(I=ttPolicy$5==null?void 0:ttPolicy$5.createHTML(E))!=null?I:E;_.innerHTML=x,_.style.position="absolute",_.style.top="10000",l==="keepAll"?(_.style.wordBreak="keep-all",_.style.overflowWrap="anywhere"):(_.style.wordBreak="inherit",_.style.overflowWrap="break-word"),o.document.body.appendChild(_);const L=document.createRange(),k=Array.prototype.slice.call(_.children,0),D=[];for(let T=0;T<e.length;T++){const M=k[T],R=readLineBreaks(L,M,y[T],S[T]);if(R===null){D[T]=d(T);continue}const N=b[T],A=C[T]+f,O=w[T],P=[];for(let V=0,U=R.length;V<U;V++)P[V]=O[R[V]];if(N!==0)for(let V=0,U=R.length;V<U;V++)R[V]+=N;let F,B;const H=c[T];H?(F=H.map(V=>V.options),B=H.map(V=>V.column-1)):(F=null,B=null),D[T]=new ModelLineProjectionData(B,F,R,P,A)}return _.remove(),D}function renderLine$1(o,e,t,r,s,a){if(a!==0){const m=String(a);s.appendString('<div style="text-indent: -'),s.appendString(m),s.appendString("px; padding-left: "),s.appendString(m),s.appendString("px; box-sizing: border-box; width:")}else s.appendString('<div style="width:');s.appendString(String(r)),s.appendString('px;">');const l=o.length;let c=e,d=0;const u=[],g=[];let f=0<l?o.charCodeAt(0):0;s.appendString("<span>");for(let m=0;m<l;m++){m!==0&&m%16384===0&&s.appendString("</span><span>"),u[m]=d,g[m]=c;const _=f;f=m+1<l?o.charCodeAt(m+1):0;let v=1,b=1;switch(_){case 9:v=t-c%t,b=v;for(let C=1;C<=v;C++)C<v?s.appendCharCode(160):s.appendASCIICharCode(32);break;case 32:f===32?s.appendCharCode(160):s.appendASCIICharCode(32);break;case 60:s.appendString("&lt;");break;case 62:s.appendString("&gt;");break;case 38:s.appendString("&amp;");break;case 0:s.appendString("&#00;");break;case 65279:case 8232:case 8233:case 133:s.appendCharCode(65533);break;default:isFullWidthCharacter(_)&&b++,_<32?s.appendCharCode(9216+_):s.appendCharCode(_)}d+=v,c+=b}return s.appendString("</span>"),u[o.length]=d,g[o.length]=c,s.appendString("</div>"),[u,g]}function readLineBreaks(o,e,t,r){if(t.length<=1)return null;const s=Array.prototype.slice.call(e.children,0),a=[];try{discoverBreaks(o,s,r,0,null,t.length-1,null,a)}catch(l){return console.log(l),null}return a.length===0?null:(a.push(t.length),a)}function discoverBreaks(o,e,t,r,s,a,l,c){if(r===a||(s=s||readClientRect(o,e,t[r],t[r+1]),l=l||readClientRect(o,e,t[a],t[a+1]),Math.abs(s[0].top-l[0].top)<=.1))return;if(r+1===a){c.push(a);return}const d=r+(a-r)/2|0,u=readClientRect(o,e,t[d],t[d+1]);discoverBreaks(o,e,t,r,s,d,u,c),discoverBreaks(o,e,t,d,u,a,l,c)}function readClientRect(o,e,t,r){return o.setStart(e[t/16384|0].firstChild,t%16384),o.setEnd(e[r/16384|0].firstChild,r%16384),o.getClientRects()}class CodeEditorContributions extends Disposable$1{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,r){this._editor=e,this._instantiationService=r;for(const s of t){if(this._pending.has(s.id)){onUnexpectedError(new Error("Cannot have two contributions with the same id ".concat(s.id)));continue}this._pending.set(s.id,s)}this._instantiateSome(0),this._register(runWhenWindowIdle(getWindow$1(this._editor.getDomNode()),()=>{this._instantiateSome(1)})),this._register(runWhenWindowIdle(getWindow$1(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register(runWhenWindowIdle(getWindow$1(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){const e={};for(const[t,r]of this._instances)typeof r.saveViewState=="function"&&(e[t]=r.saveViewState());return e}restoreViewState(e){for(const[t,r]of this._instances)typeof r.restoreViewState=="function"&&r.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){var e;return runWhenWindowIdle(getWindow$1((e=this._editor)==null?void 0:e.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(e){if(this._finishedInstantiation[e])return;this._finishedInstantiation[e]=!0;const t=this._findPendingContributionsByInstantiation(e);for(const r of t)this._instantiateById(r.id)}_findPendingContributionsByInstantiation(e){const t=[];for(const[,r]of this._pending)r.instantiation===e&&t.push(r);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 r=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,r),typeof r.restoreViewState=="function"&&t.instantiation!==0&&console.warn("Editor contribution '".concat(t.id,"' should be eager instantiated because it uses saveViewState / restoreViewState."))}catch(r){onUnexpectedError(r)}}}}class InternalEditorAction{constructor(e,t,r,s,a,l,c){this.id=e,this.label=t,this.alias=r,this.metadata=s,this._precondition=a,this._run=l,this._contextKeyService=c}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}const EditorType={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"};function countEOL(o){let e=0,t=0,r=0,s=0;for(let a=0,l=o.length;a<l;a++){const c=o.charCodeAt(a);c===13?(e===0&&(t=a),e++,a+1<l&&o.charCodeAt(a+1)===10?(s|=2,a++):s|=3,r=a+1):c===10&&(s|=1,e===0&&(t=a),e++,r=a+1)}return e===0&&(t=o.length),[e,t,o.length-r,s]}class BracketInfo{constructor(e,t,r,s){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=r,this.isInvalid=s}}class BracketPairInfo{constructor(e,t,r,s,a,l){this.range=e,this.openingBracketRange=t,this.closingBracketRange=r,this.nestingLevel=s,this.nestingLevelOfEqualBracketType=a,this.bracketPairNode=l}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}class BracketPairWithMinIndentationInfo extends BracketPairInfo{constructor(e,t,r,s,a,l,c){super(e,t,r,s,a,l),this.minVisibleColumnIndentation=c}}function lengthDiff(o,e,t,r){return o!==t?toLength(t-o,r):toLength(0,r-e)}const lengthZero=0;function lengthIsZero(o){return o===0}const factor=2**26;function toLength(o,e){return o*factor+e}function lengthToObj(o){const e=o,t=Math.floor(e/factor),r=e-t*factor;return new TextLength(t,r)}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,r)=>lengthAdd(t,e(r)),lengthZero)}function lengthEquals(o,e){return o===e}function lengthDiffNonNegative(o,e){const t=o,r=e;if(r-t<=0)return lengthZero;const a=Math.floor(t/factor),l=Math.floor(r/factor),c=r-l*factor;if(a===l){const d=t-a*factor;return toLength(0,c-d)}else return toLength(l-a,c)}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,r=Math.floor(t/factor),s=t-r*factor,a=e,l=Math.floor(a/factor),c=a-l*factor;return new Range$2(r+1,s+1,l+1,c+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(r=>{const s=Range$2.lift(r.range);return new TextEditInfo(positionToLength(s.getStartPosition()),positionToLength(s.getEndPosition()),lengthOfString(r.text))}).reverse()}constructor(e,t,r){this.startOffset=e,this.endOffset=t,this.newLength=r}toString(){return"[".concat(lengthToObj(this.startOffset),"...").concat(lengthToObj(this.endOffset),") -> ").concat(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],r=t?this.translateOldToCur(t.offsetObj):null;return r===null?null:lengthDiffNonNegative(e,r)}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],r=this.translateOldToCur(t.endOffsetAfterObj);if(lengthLessThanEqual(r,e)){this.nextEditIdx++;const s=lengthToObj(r),a=lengthToObj(this.translateOldToCur(t.endOffsetBeforeObj)),l=s.lineCount-a.lineCount;this.deltaOldToNewLineCount+=l;const c=this.deltaLineIdxInOld===t.endOffsetBeforeObj.lineCount?this.deltaOldToNewColumnCount:0,d=s.columnCount-a.columnCount;this.deltaOldToNewColumnCount=c+d,this.deltaLineIdxInOld=t.endOffsetBeforeObj.lineCount}else break}}}class TextEditInfoCache{static from(e){return new TextEditInfoCache(e.startOffset,e.endOffset,e.newLength)}constructor(e,t,r){this.endOffsetBeforeObj=lengthToObj(t),this.endOffsetAfterObj=lengthToObj(lengthAdd(e,r)),this.offsetObj=lengthToObj(e)}}const emptyArr$2=[],ut=class ut{static create(e,t){if(e<=128&&t.length===0){let r=ut.cache[e];return r||(r=new ut(e,t),ut.cache[e]=r),r}return new ut(e,t)}static getEmpty(){return this.empty}constructor(e,t){this.items=e,this.additionalItems=t}add(e,t){const r=t.getKey(e);let s=r>>5;if(s===0){const l=1<<r|this.items;return l===this.items?this:ut.create(l,this.additionalItems)}s--;const a=this.additionalItems.slice(0);for(;a.length<s;)a.push(0);return a[s]|=1<<(r&31),ut.create(this.items,a)}merge(e){const t=this.items|e.items;if(this.additionalItems===emptyArr$2&&e.additionalItems===emptyArr$2)return t===this.items?this:t===e.items?e:ut.create(t,emptyArr$2);const r=[];for(let s=0;s<Math.max(this.additionalItems.length,e.additionalItems.length);s++){const a=this.additionalItems[s]||0,l=e.additionalItems[s]||0;r.push(a|l)}return ut.create(t,r)}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}};ut.cache=new Array(129),ut.empty=ut.create(0,emptyArr$2);let SmallImmutableSet=ut;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,r){let s=e.length;return t&&(s=lengthAdd(s,t.length)),r&&(s=lengthAdd(s,r.length)),new PairAstNode(s,e,t,r,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,r,s,a){super(e),this.openingBracket=t,this.child=r,this.closingBracket=s,this.missingOpeningBracketIds=a}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,r,s=!1){let a=e.length,l=e.missingOpeningBracketIds;if(e.listHeight!==t.listHeight)throw new Error("Invalid list heights");if(a=lengthAdd(a,t.length),l=l.merge(t.missingOpeningBracketIds),r){if(e.listHeight!==r.listHeight)throw new Error("Invalid list heights");a=lengthAdd(a,r.length),l=l.merge(r.missingOpeningBracketIds)}return s?new Immutable23ListAstNode(a,e.listHeight+1,e,t,r,l):new TwoThreeListAstNode(a,e.listHeight+1,e,t,r,l)}static getEmpty(){return new ImmutableArrayListAstNode(lengthZero,0,[],SmallImmutableSet.getEmpty())}get kind(){return 4}get missingOpeningBracketIds(){return this._missingOpeningBracketIds}constructor(e,t,r){super(e),this.listHeight=t,this._missingOpeningBracketIds=r,this.cachedMinIndentation=-1}throwIfImmutable(){}makeLastElementMutable(){this.throwIfImmutable();const e=this.childrenLength;if(e===0)return;const t=this.getChild(e-1),r=t.kind===4?t.toMutable():t;return t!==r&&this.setChild(e-1,r),r}makeFirstElementMutable(){if(this.throwIfImmutable(),this.childrenLength===0)return;const t=this.getChild(0),r=t.kind===4?t.toMutable():t;return t!==r&&this.setChild(0,r),r}canBeReused(e){if(e.intersects(this.missingOpeningBracketIds)||this.childrenLength===0)return!1;let t=this;for(;t.kind===4;){const r=t.childrenLength;if(r===0)throw new BugIndicatingError;t=t.getChild(r-1)}return t.canBeReused(e)}handleChildrenChanged(){this.throwIfImmutable();const e=this.childrenLength;let t=this.getChild(0).length,r=this.getChild(0).missingOpeningBracketIds;for(let s=1;s<e;s++){const a=this.getChild(s);t=lengthAdd(t,a.length),r=r.merge(a.missingOpeningBracketIds)}this._length=t,this._missingOpeningBracketIds=r,this.cachedMinIndentation=-1}computeMinIndentation(e,t){if(this.cachedMinIndentation!==-1)return this.cachedMinIndentation;let r=Number.MAX_SAFE_INTEGER,s=e;for(let a=0;a<this.childrenLength;a++){const l=this.getChild(a);l&&(r=Math.min(r,l.computeMinIndentation(s,t)),s=lengthAdd(s,l.length))}return this.cachedMinIndentation=r,r}}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,r,s,a,l){super(e,t,l),this._item1=r,this._item2=s,this._item3=a}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,r,s){super(e,t,s),this._children=r}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 r=lengthToObj(e),s=(r.columnCount===0?r.lineCount:r.lineCount+1)+1,a=lengthGetLineCount(lengthAdd(e,this.length))+1;let l=Number.MAX_SAFE_INTEGER;for(let c=s;c<=a;c++){const d=t.getLineFirstNonWhitespaceColumn(c),u=t.getLineContent(c);if(d===0)continue;const g=CursorColumns.visibleColumnFromColumn(u,d,t.getOptions().tabSize);l=Math.min(l,g)}return l}}class BracketAstNode extends ImmutableLeafAstNode{static create(e,t,r){return new BracketAstNode(e,t,r)}get kind(){return 1}get missingOpeningBracketIds(){return SmallImmutableSet.getEmpty()}constructor(e,t,r){super(e),this.bracketInfo=t,this.bracketIds=r}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,r,s,a){this.length=e,this.kind=t,this.bracketId=r,this.bracketIds=s,this.astNode=a}};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 a=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=a.length,a}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 r=0;for(;;){const a=this.lineTokens,l=a.getCount();let c=null;if(this.lineTokenOffset<l){const d=a.getMetadata(this.lineTokenOffset);for(;this.lineTokenOffset+1<l&&d===a.getMetadata(this.lineTokenOffset+1);)this.lineTokenOffset++;const u=TokenMetadata.getTokenType(d)===0,g=TokenMetadata.containsBalancedBrackets(d),f=a.getEndOffset(this.lineTokenOffset);if(g&&u&&this.lineCharOffset<f){const m=a.getLanguageId(this.lineTokenOffset),_=this.line.substring(this.lineCharOffset,f),v=this.bracketTokens.getSingleLanguageBracketTokens(m),b=v.regExpGlobal;if(b){b.lastIndex=0;const C=b.exec(_);C&&(c=v.getToken(C[0]),c&&(this.lineCharOffset+=C.index))}}if(r+=f-this.lineCharOffset,c)if(e!==this.lineIdx||t!==this.lineCharOffset){this.peekedToken=c;break}else return this.lineCharOffset+=c.length,c;else this.lineTokenOffset++,this.lineCharOffset=f}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,r+=33,r>1e3))break;if(r>1500)break}const s=lengthDiff(e,t,this.lineIdx,this.lineCharOffset);return new Token$1(s,0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(s))}}class FastTokenizer{constructor(e,t){this.text=e,this._offset=lengthZero,this.idx=0;const r=t.getRegExpStr(),s=r?new RegExp(r+"|\n","gi"):null,a=[];let l,c=0,d=0,u=0,g=0;const f=[];for(let v=0;v<60;v++)f.push(new Token$1(toLength(0,v),0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(toLength(0,v))));const m=[];for(let v=0;v<60;v++)m.push(new Token$1(toLength(1,v),0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(toLength(1,v))));if(s)for(s.lastIndex=0;(l=s.exec(e))!==null;){const v=l.index,b=l[0];if(b==="\n")c++,d=v+1;else{if(u!==v){let C;if(g===c){const y=v-u;if(y<f.length)C=f[y];else{const S=toLength(0,y);C=new Token$1(S,0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(S))}}else{const y=c-g,S=v-d;if(y===1&&S<m.length)C=m[S];else{const w=toLength(y,S);C=new Token$1(w,0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(w))}}a.push(C)}a.push(t.getToken(b)),u=v+b.length,g=c}}const _=e.length;if(u!==_){const v=g===c?toLength(0,_-u):toLength(c-g,_-d);a.push(new Token$1(v,0,-1,SmallImmutableSet.getEmpty(),new TextAstNode(v)))}this.length=toLength(c,_-d),this.tokens=a}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 r(a){return t.getKey("".concat(a.languageId,":::").concat(a.bracketText))}const s=new Map;for(const a of e.bracketsNew.openingBrackets){const l=toLength(0,a.bracketText.length),c=r(a),d=SmallImmutableSet.getEmpty().add(c,identityKeyProvider);s.set(a.bracketText,new Token$1(l,1,c,d,BracketAstNode.create(l,a,d)))}for(const a of e.bracketsNew.closingBrackets){const l=toLength(0,a.bracketText.length);let c=SmallImmutableSet.getEmpty();const d=a.getOpeningBrackets();for(const u of d)c=c.add(r(u),identityKeyProvider);s.set(a.bracketText,new Token$1(l,2,r(d[0]),c,BracketAstNode.create(l,a,c)))}return new BracketTokens(s)}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,r]of this.map)if(r.kind===2&&r.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".concat(e)),/[\w ]+$/.test(o)&&(e="".concat(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 l=e,c=o[l].listHeight;for(e++;e<o.length&&o[e].listHeight===c;)e++;return e-l>=2?concat23TreesOfSameHeight(l===0&&e===o.length?o:o.slice(l,e),!1):o[l]}let r=t(),s=t();if(!s)return r;for(let l=t();l;l=t())heightDiff(r,s)<=heightDiff(s,l)?(r=concat$2(r,s),s=l):s=concat$2(s,l);return concat$2(r,s)}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 r=t>>1;for(let s=0;s<r;s++){const a=s<<1;o[s]=ListAstNode.create23(o[a],o[a+1],a+3===t?o[a+2]:null,e)}t=r}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$2(o,e){return o.listHeight===e.listHeight?ListAstNode.create23(o,e,null,!1):o.listHeight>e.listHeight?append$1(o,e):prepend$1(e,o)}function append$1(o,e){o=o.toMutable();let t=o;const r=[];let s;for(;;){if(e.listHeight===t.listHeight){s=e;break}if(t.kind!==4)throw new Error("unexpected");r.push(t),t=t.makeLastElementMutable()}for(let a=r.length-1;a>=0;a--){const l=r[a];s?l.childrenLength>=3?s=ListAstNode.create23(l.unappendChild(),s,null,!1):(l.appendChildOfSameHeight(s),s=void 0):l.handleChildrenChanged()}return s?ListAstNode.create23(o,s,null,!1):o}function prepend$1(o,e){o=o.toMutable();let t=o;const r=[];for(;e.listHeight!==t.listHeight;){if(t.kind!==4)throw new Error("unexpected");r.push(t),t=t.makeFirstElementMutable()}let s=e;for(let a=r.length-1;a>=0;a--){const l=r[a];s?l.childrenLength>=3?s=ListAstNode.create23(s,l.unprependChild(),null,!1):(l.prependChildOfSameHeight(s),s=void 0):l.handleChildrenChanged()}return s?ListAstNode.create23(s,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 r=lastOrUndefined(this.nextNodes);if(!r)return;const s=lastOrUndefined(this.offsets);if(lengthLessThan(e,s))return;if(lengthLessThan(s,e))if(lengthAdd(s,r.length)<=e)this.nextNodeAfterCurrent();else{const a=getNextChildIdx(r);a!==-1?(this.nextNodes.push(r.getChild(a)),this.offsets.push(s),this.idxs.push(a)):this.nextNodeAfterCurrent()}else{if(t(r))return this.nextNodeAfterCurrent(),r;{const a=getNextChildIdx(r);if(a===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(r.getChild(a)),this.offsets.push(s),this.idxs.push(a)}}}}nextNodeAfterCurrent(){for(;;){const e=lastOrUndefined(this.offsets),t=lastOrUndefined(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const r=lastOrUndefined(this.nextNodes),s=getNextChildIdx(r,this.idxs[this.idxs.length-1]);if(s!==-1){this.nextNodes.push(r.getChild(s)),this.offsets.push(lengthAdd(e,t.length)),this.idxs[this.idxs.length-1]=s;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,r){return new Parser(o,e,t,r).parseDocument()}class Parser{constructor(e,t,r,s){if(this.tokenizer=e,this.createImmutableLists=s,this._itemsConstructed=0,this._itemsFromCache=0,r&&s)throw new Error("Not supported");this.oldNodeReader=r?new NodeReader(r):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 r=[];for(;;){let a=this.tryReadChildFromCache(e);if(!a){const l=this.tokenizer.peek();if(!l||l.kind===2&&l.bracketIds.intersects(e))break;a=this.parseChild(e,t+1)}a.kind===4&&a.childrenLength===0||r.push(a)}return this.oldNodeReader?concat23Trees(r):concat23TreesOfSameHeight(r,this.createImmutableLists)}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(t===null||!lengthIsZero(t)){const r=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),s=>t!==null&&!lengthLessThan(s.length,t)?!1:s.canBeReused(e));if(r)return this._itemsFromCache++,this.tokenizer.skip(r.length),r}}}parseChild(e,t){this._itemsConstructed++;const r=this.tokenizer.read();switch(r.kind){case 2:return new InvalidBracketAstNode(r.bracketIds,r.length);case 0:return r.astNode;case 1:{if(t>300)return new TextAstNode(r.length);const s=e.merge(r.bracketIds),a=this.parseList(s,t+1),l=this.tokenizer.peek();return l&&l.kind===2&&(l.bracketId===r.bracketId||l.bracketIds.intersects(r.bracketIds))?(this.tokenizer.read(),PairAstNode.create(r.astNode,a,l.astNode)):PairAstNode.create(r.astNode,a,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)),r=toLengthMapping(e);r.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let s=t.dequeue();function a(u){if(u===void 0){const f=t.takeWhile(m=>!0)||[];return s&&f.unshift(s),f}const g=[];for(;s&&!lengthIsZero(u);){const[f,m]=s.splitAt(u);g.push(f),u=lengthDiffNonNegative(f.lengthAfter,u),s=m!=null?m:t.dequeue()}return lengthIsZero(u)||g.push(new LengthMapping(!1,u,u)),g}const l=[];function c(u,g,f){if(l.length>0&&lengthEquals(l[l.length-1].endOffset,u)){const m=l[l.length-1];l[l.length-1]=new TextEditInfo(m.startOffset,g,lengthAdd(m.newLength,f))}else l.push({startOffset:u,endOffset:g,newLength:f})}let d=lengthZero;for(const u of r){const g=a(u.lengthBefore);if(u.modified){const f=sumLengths(g,_=>_.lengthBefore),m=lengthAdd(d,f);c(d,m,u.lengthAfter),d=m}else for(const f of g){const m=d;d=lengthAdd(d,f.lengthBefore),f.modified&&c(m,d,f.lengthAfter)}}return l}class LengthMapping{constructor(e,t,r){this.modified=e,this.lengthBefore=t,this.lengthAfter=r}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"".concat(this.modified?"M":"U",":").concat(lengthToObj(this.lengthBefore)," -> ").concat(lengthToObj(this.lengthAfter))}}function toLengthMapping(o){const e=[];let t=lengthZero;for(const r of o){const s=lengthDiffNonNegative(t,r.startOffset);lengthIsZero(s)||e.push(new LengthMapping(!1,s,s));const a=lengthDiffNonNegative(r.startOffset,r.endOffset);e.push(new LengthMapping(!0,a,r.newLength)),t=r.endOffset}return e}class BracketPairsTree extends Disposable$1{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 r=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),s=new FastTokenizer(this.textModel.getValue(),r);this.initialAstWithoutTokens=parseDocument(s,[],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(r=>new TextEditInfo(toLength(r.fromLineNumber-1,0),toLength(r.toLineNumber,0),toLength(r.toLineNumber-r.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 r=combineTextEditInfos(this.queuedTextEdits,e);this.queuedTextEdits=r,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,r){const s=t,a=new TextBufferTokenizer(this.textModel,this.brackets);return parseDocument(a,e,s,r)}getBracketsInRange(e,t){this.flushQueue();const r=toLength(e.startLineNumber-1,e.startColumn-1),s=toLength(e.endLineNumber-1,e.endColumn-1);return new CallbackIterable(a=>{const l=this.initialAstWithoutTokens||this.astWithTokens;collectBrackets(l,lengthZero,l.length,r,s,a,0,0,new Map,t)})}getBracketPairsInRange(e,t){this.flushQueue();const r=positionToLength(e.getStartPosition()),s=positionToLength(e.getEndPosition());return new CallbackIterable(a=>{const l=this.initialAstWithoutTokens||this.astWithTokens,c=new CollectBracketPairsContext(a,t,this.textModel);collectBracketPairs(l,lengthZero,l.length,r,s,c,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,r){if(o.kind===4||o.kind===2){const s=[];for(const a of o.children)t=lengthAdd(e,a.length),s.push({nodeOffsetStart:e,nodeOffsetEnd:t}),e=t;for(let a=s.length-1;a>=0;a--){const{nodeOffsetStart:l,nodeOffsetEnd:c}=s[a];if(lengthLessThan(l,r)){const d=getFirstBracketBefore(o.children[a],l,c,r);if(d)return d}}return null}else{if(o.kind===3)return null;if(o.kind===1){const s=lengthsToRange(e,t);return{bracketInfo:o.bracketInfo,range:s}}}return null}function getFirstBracketAfter(o,e,t,r){if(o.kind===4||o.kind===2){for(const s of o.children){if(t=lengthAdd(e,s.length),lengthLessThan(r,t)){const a=getFirstBracketAfter(s,e,t,r);if(a)return a}e=t}return null}else{if(o.kind===3)return null;if(o.kind===1){const s=lengthsToRange(e,t);return{bracketInfo:o.bracketInfo,range:s}}}return null}function collectBrackets(o,e,t,r,s,a,l,c,d,u,g=!1){if(l>200)return!0;e:for(;;)switch(o.kind){case 4:{const f=o.childrenLength;for(let m=0;m<f;m++){const _=o.getChild(m);if(_){if(t=lengthAdd(e,_.length),lengthLessThanEqual(e,s)&&lengthGreaterThanEqual(t,r)){if(lengthGreaterThanEqual(t,s)){o=_;continue e}if(!collectBrackets(_,e,t,r,s,a,l,0,d,u))return!1}e=t}}return!0}case 2:{const f=!u||!o.closingBracket||o.closingBracket.bracketInfo.closesColorized(o.openingBracket.bracketInfo);let m=0;if(d){let v=d.get(o.openingBracket.text);v===void 0&&(v=0),m=v,f&&(v++,d.set(o.openingBracket.text,v))}const _=o.childrenLength;for(let v=0;v<_;v++){const b=o.getChild(v);if(b){if(t=lengthAdd(e,b.length),lengthLessThanEqual(e,s)&&lengthGreaterThanEqual(t,r)){if(lengthGreaterThanEqual(t,s)&&b.kind!==1){o=b,f?(l++,c=m+1):c=m;continue e}if((f||b.kind!==1||!o.closingBracket)&&!collectBrackets(b,e,t,r,s,a,f?l+1:l,f?m+1:m,d,u,!o.closingBracket))return!1}e=t}}return d==null||d.set(o.openingBracket.text,m),!0}case 3:{const f=lengthsToRange(e,t);return a(new BracketInfo(f,l-1,0,!0))}case 1:{const f=lengthsToRange(e,t);return a(new BracketInfo(f,l-1,c-1,g))}case 0:return!0}}class CollectBracketPairsContext{constructor(e,t,r){this.push=e,this.includeMinIndentation=t,this.textModel=r}}function collectBracketPairs(o,e,t,r,s,a,l,c){var u;if(l>200)return!0;let d=!0;if(o.kind===2){let g=0;if(c){let _=c.get(o.openingBracket.text);_===void 0&&(_=0),g=_,_++,c.set(o.openingBracket.text,_)}const f=lengthAdd(e,o.openingBracket.length);let m=-1;if(a.includeMinIndentation&&(m=o.computeMinIndentation(e,a.textModel)),d=a.push(new BracketPairWithMinIndentationInfo(lengthsToRange(e,t),lengthsToRange(e,f),o.closingBracket?lengthsToRange(lengthAdd(f,((u=o.child)==null?void 0:u.length)||lengthZero),t):void 0,l,g,o,m)),e=f,d&&o.child){const _=o.child;if(t=lengthAdd(e,_.length),lengthLessThanEqual(e,s)&&lengthGreaterThanEqual(t,r)&&(d=collectBracketPairs(_,e,t,r,s,a,l+1,c),!d))return!1}c==null||c.set(o.openingBracket.text,g)}else{let g=e;for(const f of o.children){const m=g;if(g=lengthAdd(g,f.length),lengthLessThanEqual(m,s)&&lengthLessThanEqual(r,g)&&(d=collectBracketPairs(f,m,g,r,s,a,l,c),!d))return!1}}return d}class BracketPairsTextModelPart extends Disposable$1{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}handleLanguageConfigurationServiceChange(e){var t;(!e.languageId||(t=this.bracketPairsTree.value)!=null&&t.object.didLanguageChange(e.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.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;(e=this.bracketPairsTree.value)==null||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;(t=this.bracketPairsTree.value)==null||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const e=new DisposableStore$1;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?void 0:t.object.getBracketPairsInRange(e,!1))||CallbackIterable.empty}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)==null?void 0:t.object.getBracketPairsInRange(e,!0))||CallbackIterable.empty}getBracketsInRange(e,t=!1){var r;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((r=this.bracketPairsTree.value)==null?void 0:r.object.getBracketsInRange(e,t))||CallbackIterable.empty}findMatchingBracketUp(e,t,r){const s=this.textModel.validatePosition(t),a=this.textModel.getLanguageIdAtPosition(s.lineNumber,s.column);if(this.canBuildAST){const l=this.languageConfigurationService.getLanguageConfiguration(a).bracketsNew.getClosingBracketInfo(e);if(!l)return null;const c=this.getBracketPairsInRange(Range$2.fromPositions(t,t)).findLast(d=>l.closes(d.openingBracketInfo));return c?c.openingBracketRange:null}else{const l=e.toLowerCase(),c=this.languageConfigurationService.getLanguageConfiguration(a).brackets;if(!c)return null;const d=c.textIsBracket[l];return d?stripBracketSearchCanceled(this._findMatchingBracketUp(d,s,createTimeBasedContinueBracketSearchPredicate(r))):null}}matchBracket(e,t){if(this.canBuildAST){const r=this.getBracketPairsInRange(Range$2.fromPositions(e,e)).filter(s=>s.closingBracketRange!==void 0&&(s.openingBracketRange.containsPosition(e)||s.closingBracketRange.containsPosition(e))).findLastMaxBy(compareBy(s=>s.openingBracketRange.containsPosition(e)?s.openingBracketRange:s.closingBracketRange,Range$2.compareRangesUsingStarts));return r?[r.openingBracketRange,r.closingBracketRange]:null}else{const r=createTimeBasedContinueBracketSearchPredicate(t);return this._matchBracket(this.textModel.validatePosition(e),r)}}_establishBracketSearchOffsets(e,t,r,s){const a=t.getCount(),l=t.getLanguageId(s);let c=Math.max(0,e.column-1-r.maxBracketLength);for(let u=s-1;u>=0;u--){const g=t.getEndOffset(u);if(g<=c)break;if(ignoreBracketsInToken(t.getStandardTokenType(u))||t.getLanguageId(u)!==l){c=g;break}}let d=Math.min(t.getLineContent().length,e.column-1+r.maxBracketLength);for(let u=s+1;u<a;u++){const g=t.getStartOffset(u);if(g>=d)break;if(ignoreBracketsInToken(t.getStandardTokenType(u))||t.getLanguageId(u)!==l){d=g;break}}return{searchStartOffset:c,searchEndOffset:d}}_matchBracket(e,t){const r=e.lineNumber,s=this.textModel.tokenization.getLineTokens(r),a=this.textModel.getLineContent(r),l=s.findTokenIndexAtOffset(e.column-1);if(l<0)return null;const c=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(l)).brackets;if(c&&!ignoreBracketsInToken(s.getStandardTokenType(l))){let{searchStartOffset:d,searchEndOffset:u}=this._establishBracketSearchOffsets(e,s,c,l),g=null;for(;;){const f=BracketsUtils.findNextBracketInRange(c.forwardRegex,r,a,d,u);if(!f)break;if(f.startColumn<=e.column&&e.column<=f.endColumn){const m=a.substring(f.startColumn-1,f.endColumn-1).toLowerCase(),_=this._matchFoundBracket(f,c.textIsBracket[m],c.textIsOpenBracket[m],t);if(_){if(_ instanceof BracketSearchCanceled)return null;g=_}}d=f.endColumn-1}if(g)return g}if(l>0&&s.getStartOffset(l)===e.column-1){const d=l-1,u=this.languageConfigurationService.getLanguageConfiguration(s.getLanguageId(d)).brackets;if(u&&!ignoreBracketsInToken(s.getStandardTokenType(d))){const{searchStartOffset:g,searchEndOffset:f}=this._establishBracketSearchOffsets(e,s,u,d),m=BracketsUtils.findPrevBracketInRange(u.reversedRegex,r,a,g,f);if(m&&m.startColumn<=e.column&&e.column<=m.endColumn){const _=a.substring(m.startColumn-1,m.endColumn-1).toLowerCase(),v=this._matchFoundBracket(m,u.textIsBracket[_],u.textIsOpenBracket[_],t);if(v)return v instanceof BracketSearchCanceled?null:v}}}return null}_matchFoundBracket(e,t,r,s){if(!t)return null;const a=r?this._findMatchingBracketDown(t,e.getEndPosition(),s):this._findMatchingBracketUp(t,e.getStartPosition(),s);return a?a instanceof BracketSearchCanceled?a:[e,a]:null}_findMatchingBracketUp(e,t,r){const s=e.languageId,a=e.reversedRegex;let l=-1,c=0;const d=(u,g,f,m)=>{for(;;){if(r&&++c%100===0&&!r())return BracketSearchCanceled.INSTANCE;const _=BracketsUtils.findPrevBracketInRange(a,u,g,f,m);if(!_)break;const v=g.substring(_.startColumn-1,_.endColumn-1).toLowerCase();if(e.isOpen(v)?l++:e.isClose(v)&&l--,l===0)return _;m=_.startColumn-1}return null};for(let u=t.lineNumber;u>=1;u--){const g=this.textModel.tokenization.getLineTokens(u),f=g.getCount(),m=this.textModel.getLineContent(u);let _=f-1,v=m.length,b=m.length;u===t.lineNumber&&(_=g.findTokenIndexAtOffset(t.column-1),v=t.column-1,b=t.column-1);let C=!0;for(;_>=0;_--){const y=g.getLanguageId(_)===s&&!ignoreBracketsInToken(g.getStandardTokenType(_));if(y)C?v=g.getStartOffset(_):(v=g.getStartOffset(_),b=g.getEndOffset(_));else if(C&&v!==b){const S=d(u,m,v,b);if(S)return S}C=y}if(C&&v!==b){const y=d(u,m,v,b);if(y)return y}}return null}_findMatchingBracketDown(e,t,r){const s=e.languageId,a=e.forwardRegex;let l=1,c=0;const d=(g,f,m,_)=>{for(;;){if(r&&++c%100===0&&!r())return BracketSearchCanceled.INSTANCE;const v=BracketsUtils.findNextBracketInRange(a,g,f,m,_);if(!v)break;const b=f.substring(v.startColumn-1,v.endColumn-1).toLowerCase();if(e.isOpen(b)?l++:e.isClose(b)&&l--,l===0)return v;m=v.endColumn-1}return null},u=this.textModel.getLineCount();for(let g=t.lineNumber;g<=u;g++){const f=this.textModel.tokenization.getLineTokens(g),m=f.getCount(),_=this.textModel.getLineContent(g);let v=0,b=0,C=0;g===t.lineNumber&&(v=f.findTokenIndexAtOffset(t.column-1),b=t.column-1,C=t.column-1);let y=!0;for(;v<m;v++){const S=f.getLanguageId(v)===s&&!ignoreBracketsInToken(f.getStandardTokenType(v));if(S)y||(b=f.getStartOffset(v)),C=f.getEndOffset(v);else if(y&&b!==C){const w=d(g,_,b,C);if(w)return w}y=S}if(y&&b!==C){const S=d(g,_,b,C);if(S)return S}}return null}findPrevBracket(e){var l;const t=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((l=this.bracketPairsTree.value)==null?void 0:l.object.getFirstBracketBefore(t))||null;let r=null,s=null,a=null;for(let c=t.lineNumber;c>=1;c--){const d=this.textModel.tokenization.getLineTokens(c),u=d.getCount(),g=this.textModel.getLineContent(c);let f=u-1,m=g.length,_=g.length;if(c===t.lineNumber){f=d.findTokenIndexAtOffset(t.column-1),m=t.column-1,_=t.column-1;const b=d.getLanguageId(f);r!==b&&(r=b,s=this.languageConfigurationService.getLanguageConfiguration(r).brackets,a=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew)}let v=!0;for(;f>=0;f--){const b=d.getLanguageId(f);if(r!==b){if(s&&a&&v&&m!==_){const y=BracketsUtils.findPrevBracketInRange(s.reversedRegex,c,g,m,_);if(y)return this._toFoundBracket(a,y);v=!1}r=b,s=this.languageConfigurationService.getLanguageConfiguration(r).brackets,a=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew}const C=!!s&&!ignoreBracketsInToken(d.getStandardTokenType(f));if(C)v?m=d.getStartOffset(f):(m=d.getStartOffset(f),_=d.getEndOffset(f));else if(a&&s&&v&&m!==_){const y=BracketsUtils.findPrevBracketInRange(s.reversedRegex,c,g,m,_);if(y)return this._toFoundBracket(a,y)}v=C}if(a&&s&&v&&m!==_){const b=BracketsUtils.findPrevBracketInRange(s.reversedRegex,c,g,m,_);if(b)return this._toFoundBracket(a,b)}}return null}findNextBracket(e){var c;const t=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((c=this.bracketPairsTree.value)==null?void 0:c.object.getFirstBracketAfter(t))||null;const r=this.textModel.getLineCount();let s=null,a=null,l=null;for(let d=t.lineNumber;d<=r;d++){const u=this.textModel.tokenization.getLineTokens(d),g=u.getCount(),f=this.textModel.getLineContent(d);let m=0,_=0,v=0;if(d===t.lineNumber){m=u.findTokenIndexAtOffset(t.column-1),_=t.column-1,v=t.column-1;const C=u.getLanguageId(m);s!==C&&(s=C,a=this.languageConfigurationService.getLanguageConfiguration(s).brackets,l=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew)}let b=!0;for(;m<g;m++){const C=u.getLanguageId(m);if(s!==C){if(l&&a&&b&&_!==v){const S=BracketsUtils.findNextBracketInRange(a.forwardRegex,d,f,_,v);if(S)return this._toFoundBracket(l,S);b=!1}s=C,a=this.languageConfigurationService.getLanguageConfiguration(s).brackets,l=this.languageConfigurationService.getLanguageConfiguration(s).bracketsNew}const y=!!a&&!ignoreBracketsInToken(u.getStandardTokenType(m));if(y)b||(_=u.getStartOffset(m)),v=u.getEndOffset(m);else if(l&&a&&b&&_!==v){const S=BracketsUtils.findNextBracketInRange(a.forwardRegex,d,f,_,v);if(S)return this._toFoundBracket(l,S)}b=y}if(l&&a&&b&&_!==v){const C=BracketsUtils.findNextBracketInRange(a.forwardRegex,d,f,_,v);if(C)return this._toFoundBracket(l,C)}}return null}findEnclosingBrackets(e,t){const r=this.textModel.validatePosition(e);if(this.canBuildAST){const _=Range$2.fromPositions(r),v=this.getBracketPairsInRange(Range$2.fromPositions(r,r)).findLast(b=>b.closingBracketRange!==void 0&&b.range.strictContainsRange(_));return v?[v.openingBracketRange,v.closingBracketRange]:null}const s=createTimeBasedContinueBracketSearchPredicate(t),a=this.textModel.getLineCount(),l=new Map;let c=[];const d=(_,v)=>{if(!l.has(_)){const b=[];for(let C=0,y=v?v.brackets.length:0;C<y;C++)b[C]=0;l.set(_,b)}c=l.get(_)};let u=0;const g=(_,v,b,C,y)=>{for(;;){if(s&&++u%100===0&&!s())return BracketSearchCanceled.INSTANCE;const S=BracketsUtils.findNextBracketInRange(_.forwardRegex,v,b,C,y);if(!S)break;const w=b.substring(S.startColumn-1,S.endColumn-1).toLowerCase(),E=_.textIsBracket[w];if(E&&(E.isOpen(w)?c[E.index]++:E.isClose(w)&&c[E.index]--,c[E.index]===-1))return this._matchFoundBracket(S,E,!1,s);C=S.endColumn-1}return null};let f=null,m=null;for(let _=r.lineNumber;_<=a;_++){const v=this.textModel.tokenization.getLineTokens(_),b=v.getCount(),C=this.textModel.getLineContent(_);let y=0,S=0,w=0;if(_===r.lineNumber){y=v.findTokenIndexAtOffset(r.column-1),S=r.column-1,w=r.column-1;const x=v.getLanguageId(y);f!==x&&(f=x,m=this.languageConfigurationService.getLanguageConfiguration(f).brackets,d(f,m))}let E=!0;for(;y<b;y++){const x=v.getLanguageId(y);if(f!==x){if(m&&E&&S!==w){const k=g(m,_,C,S,w);if(k)return stripBracketSearchCanceled(k);E=!1}f=x,m=this.languageConfigurationService.getLanguageConfiguration(f).brackets,d(f,m)}const L=!!m&&!ignoreBracketsInToken(v.getStandardTokenType(y));if(L)E||(S=v.getStartOffset(y)),w=v.getEndOffset(y);else if(m&&E&&S!==w){const k=g(m,_,C,S,w);if(k)return stripBracketSearchCanceled(k)}E=L}if(m&&E&&S!==w){const x=g(m,_,C,S,w);if(x)return stripBracketSearchCanceled(x)}}return null}_toFoundBracket(e,t){if(!t)return null;let r=this.textModel.getValueInRange(t);r=r.toLowerCase();const s=e.getBracketInfo(r);return s?{range:t,bracketInfo:s}: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}}const xo=class xo{constructor(){this._searchCanceledBrand=void 0}};xo.INSTANCE=new xo;let BracketSearchCanceled=xo;function stripBracketSearchCanceled(o){return o instanceof BracketSearchCanceled?null:o}class ColorizedBracketPairsDecorationProvider extends Disposable$1{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,r,s){return s?[]:t===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(e,!0).map(l=>({id:"bracket".concat(l.range.toString(),"-").concat(l.nestingLevel),options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(l,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:l.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-".concat(e%30)}}registerThemingParticipant((o,e)=>{const t=[editorBracketHighlightingForeground1,editorBracketHighlightingForeground2,editorBracketHighlightingForeground3,editorBracketHighlightingForeground4,editorBracketHighlightingForeground5,editorBracketHighlightingForeground6],r=new ColorProvider;e.addRule(".monaco-editor .".concat(r.unexpectedClosingBracketClassName," { color: ").concat(o.getColor(editorBracketHighlightingUnexpectedBracketForeground),"; }"));const s=t.map(a=>o.getColor(a)).filter(a=>!!a).filter(a=>!a.isTransparent());for(let a=0;a<30;a++){const l=s[a%s.length];e.addRule(".monaco-editor .".concat(r.getInlineClassNameOfLevel(a)," { color: ").concat(l,"; }"))}});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,r,s){this.oldPosition=e,this.oldText=t,this.newPosition=r,this.newText=s}toString(){return this.oldText.length===0?"(insert@".concat(this.oldPosition,' "').concat(escapeNewLine(this.newText),'")'):this.newText.length===0?"(delete@".concat(this.oldPosition,' "').concat(escapeNewLine(this.oldText),'")'):"(replace@".concat(this.oldPosition,' "').concat(escapeNewLine(this.oldText),'" with "').concat(escapeNewLine(this.newText),'")')}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,r){const s=t.length;writeUInt32BE(e,s,r),r+=4;for(let a=0;a<s;a++)writeUInt16LE(e,t.charCodeAt(a),r),r+=2;return r}static _readString(e,t){const r=readUInt32BE(e,t);return t+=4,decodeUTF16LE(e,t,r)}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,r){const s=readUInt32BE(e,t);t+=4;const a=readUInt32BE(e,t);t+=4;const l=TextChange._readString(e,t);t+=TextChange._writeStringSize(l);const c=TextChange._readString(e,t);return t+=TextChange._writeStringSize(c),r.push(new TextChange(s,l,a,c)),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,r=this._getPrev(e),s=this._getCurr(t);for(;e<this._prevLen||t<this._currLen;){if(r===null){this._acceptCurr(s),s=this._getCurr(++t);continue}if(s===null){this._acceptPrev(r),r=this._getPrev(++e);continue}if(s.oldEnd<=r.newPosition){this._acceptCurr(s),s=this._getCurr(++t);continue}if(r.newEnd<=s.oldPosition){this._acceptPrev(r),r=this._getPrev(++e);continue}if(s.oldPosition<r.newPosition){const[u,g]=TextChangeCompressor._splitCurr(s,r.newPosition-s.oldPosition);this._acceptCurr(u),s=g;continue}if(r.newPosition<s.oldPosition){const[u,g]=TextChangeCompressor._splitPrev(r,s.oldPosition-r.newPosition);this._acceptPrev(u),r=g;continue}let c,d;if(s.oldEnd===r.newEnd)c=r,d=s,r=this._getPrev(++e),s=this._getCurr(++t);else if(s.oldEnd<r.newEnd){const[u,g]=TextChangeCompressor._splitPrev(r,s.oldLength);c=u,d=s,r=g,s=this._getCurr(++t)}else{const[u,g]=TextChangeCompressor._splitCurr(s,r.newLength);c=r,d=u,r=this._getPrev(++e),s=g}this._result[this._resultLen++]=new TextChange(c.oldPosition,c.oldText,d.newPosition,d.newText),this._prevDeltaOffset+=c.newLength-c.oldLength,this._currDeltaOffset+=d.newLength-d.oldLength}const a=TextChangeCompressor._merge(this._result);return TextChangeCompressor._removeNoOps(a)}_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 r=e.newText.substr(0,t),s=e.newText.substr(t);return[new TextChange(e.oldPosition,e.oldText,e.newPosition,r),new TextChange(e.oldEnd,"",e.newPosition+t,s)]}static _splitCurr(e,t){const r=e.oldText.substr(0,t),s=e.oldText.substr(t);return[new TextChange(e.oldPosition,r,e.newPosition,e.newText),new TextChange(e.oldPosition+t,s,e.newEnd,"")]}static _merge(e){if(e.length===0)return e;const t=[];let r=0,s=e[0];for(let a=1;a<e.length;a++){const l=e[a];s.oldEnd===l.oldPosition?s=new TextChange(s.oldPosition,s.oldText+l.oldText,s.newPosition,s.newText+l.newText):(t[r++]=s,s=l)}return t[r++]=s,t}static _removeNoOps(e){if(e.length===0)return e;const t=[];let r=0;for(let s=0;s<e.length;s++){const a=e[s];a.oldText!==a.newText&&(t[r++]=a)}return t}}const privateSymbol=Symbol("TextModelEditSource");class TextModelEditSource{constructor(e,t){this.metadata=e}toString(){return"".concat(this.metadata.source)}getType(){const e=this.metadata;switch(e.source){case"cursor":return e.kind;case"inlineCompletionAccept":return e.source+(e.$nes?":nes":"");case"unknown":return e.name||"unknown";default:return e.source}}toKey(e,t={}){const r=this.metadata;return Object.entries(r).filter(([a,l])=>{const c=t[a];return c!==void 0?c:(a.match(/\$/g)||[]).length<=e&&l!==void 0&&l!==null&&l!==""}).map(([a,l])=>"".concat(a,":").concat(l)).join("-")}}function createEditSource(o){return new TextModelEditSource(o,privateSymbol)}const EditSources={unknown(o){return createEditSource({source:"unknown",name:o.name})},rename:()=>createEditSource({source:"rename"}),chatApplyEdits(o){var e,t;return createEditSource({source:"Chat.applyEdits",$modelId:avoidPathRedaction(o.modelId),$extensionId:(e=o.extensionId)==null?void 0:e.extensionId,$extensionVersion:(t=o.extensionId)==null?void 0:t.version,$$languageId:o.languageId,$$sessionId:o.sessionId,$$requestId:o.requestId,$$mode:o.mode,$$codeBlockSuggestionId:o.codeBlockSuggestionId})},chatUndoEdits:()=>createEditSource({source:"Chat.undoEdits"}),chatReset:()=>createEditSource({source:"Chat.reset"}),inlineCompletionAccept(o){return createEditSource({source:"inlineCompletionAccept",$nes:o.nes,...toProperties(o.providerId),$$requestUuid:o.requestUuid,$$languageId:o.languageId})},inlineCompletionPartialAccept(o){return createEditSource({source:"inlineCompletionPartialAccept",type:o.type,$nes:o.nes,...toProperties(o.providerId),$$requestUuid:o.requestUuid,$$languageId:o.languageId})},inlineChatApplyEdit(o){var e,t;return createEditSource({source:"inlineChat.applyEdits",$modelId:avoidPathRedaction(o.modelId),$extensionId:(e=o.extensionId)==null?void 0:e.extensionId,$extensionVersion:(t=o.extensionId)==null?void 0:t.version,$$sessionId:o.sessionId,$$requestId:o.requestId,$$languageId:o.languageId})},reloadFromDisk:()=>createEditSource({source:"reloadFromDisk"}),cursor(o){return createEditSource({source:"cursor",kind:o.kind,detailedSource:o.detailedSource})},setValue:()=>createEditSource({source:"setValue"}),eolChange:()=>createEditSource({source:"eolChange"}),applyEdits:()=>createEditSource({source:"applyEdits"}),snippet:()=>createEditSource({source:"snippet"}),suggest:o=>createEditSource({source:"suggest",...toProperties(o.providerId)}),codeAction:o=>createEditSource({source:"codeAction",$kind:o.kind,...toProperties(o.providerId)})};function toProperties(o){return o?{$extensionId:o.extensionId,$extensionVersion:o.extensionVersion,$providerId:o.providerId}:{}}function avoidPathRedaction(o){if(o!==void 0)return o.replaceAll("/","|")}class EditDeltaInfo{static fromText(e){const t=TextLength.ofText(e).lineCount,r=e.length;return new EditDeltaInfo(t,0,r,0)}static tryCreate(e,t,r,s){if(!(e===void 0||t===void 0||r===void 0||s===void 0))return new EditDeltaInfo(e,t,r,s)}constructor(e,t,r,s){this.linesAdded=e,this.linesRemoved=t,this.charsAdded=r,this.charsRemoved=s}}var EditSuggestionId;(function(o){function e(t){const r=t?t("sgt"):prefixedUuid("sgt");return r}o.newId=e})(EditSuggestionId||(EditSuggestionId={}));function toEditIdentity(o){return o}function uriGetComparisonKey(o){return o.toString()}class SingleModelEditStackData{static create(e,t){const r=e.getAlternativeVersionId(),s=getModelEOL(e);return new SingleModelEditStackData(r,r,s,s,t,t,[])}constructor(e,t,r,s,a,l,c){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=r,this.afterEOL=s,this.beforeCursorState=a,this.afterCursorState=l,this.changes=c}append(e,t,r,s,a){t.length>0&&(this.changes=compressConsecutiveTextChanges(this.changes,t)),this.afterEOL=r,this.afterVersionId=s,this.afterCursorState=a}static _writeSelectionsSize(e){return 4+16*(e?e.length:0)}static _writeSelections(e,t,r){if(writeUInt32BE(e,t?t.length:0,r),r+=4,t)for(const s of t)writeUInt32BE(e,s.selectionStartLineNumber,r),r+=4,writeUInt32BE(e,s.selectionStartColumn,r),r+=4,writeUInt32BE(e,s.positionLineNumber,r),r+=4,writeUInt32BE(e,s.positionColumn,r),r+=4;return r}static _readSelections(e,t,r){const s=readUInt32BE(e,t);t+=4;for(let a=0;a<s;a++){const l=readUInt32BE(e,t);t+=4;const c=readUInt32BE(e,t);t+=4;const d=readUInt32BE(e,t);t+=4;const u=readUInt32BE(e,t);t+=4,r.push(new Selection$1(l,c,d,u))}return t}serialize(){let e=10+SingleModelEditStackData._writeSelectionsSize(this.beforeCursorState)+SingleModelEditStackData._writeSelectionsSize(this.afterCursorState)+4;for(const s of this.changes)e+=s.writeSize();const t=new Uint8Array(e);let r=0;writeUInt32BE(t,this.beforeVersionId,r),r+=4,writeUInt32BE(t,this.afterVersionId,r),r+=4,writeUInt8(t,this.beforeEOL,r),r+=1,writeUInt8(t,this.afterEOL,r),r+=1,r=SingleModelEditStackData._writeSelections(t,this.beforeCursorState,r),r=SingleModelEditStackData._writeSelections(t,this.afterCursorState,r),writeUInt32BE(t,this.changes.length,r),r+=4;for(const s of this.changes)r=s.write(t,r);return t.buffer}static deserialize(e){const t=new Uint8Array(e);let r=0;const s=readUInt32BE(t,r);r+=4;const a=readUInt32BE(t,r);r+=4;const l=readUInt8(t,r);r+=1;const c=readUInt8(t,r);r+=1;const d=[];r=SingleModelEditStackData._readSelections(t,r,d);const u=[];r=SingleModelEditStackData._readSelections(t,r,u);const g=readUInt32BE(t,r);r+=4;const f=[];for(let m=0;m<g;m++)r=TextChange.read(t,r,f);return new SingleModelEditStackData(s,a,l,c,d,u,f)}}class SingleModelEditStackElement{get type(){return 0}get resource(){return URI.isUri(this.model)?this.model:this.model.uri}constructor(e,t,r,s){this.label=e,this.code=t,this.model=r,this._data=SingleModelEditStackData.create(r,s)}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,r,s,a){this._data instanceof SingleModelEditStackData&&this._data.append(e,t,r,s,a)}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,r){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=r.slice(0),this._editStackElementsMap=new Map;for(const s of this._editStackElementsArr){const a=uriGetComparisonKey(s.resource);this._editStackElementsMap.set(a,s)}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,r,s,a){const l=uriGetComparisonKey(e.uri);this._editStackElementsMap.get(l).append(e,t,r,s,a)}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("".concat(basename(t.resource),": ").concat(t));return"{".concat(e.join(", "),"}")}}function getModelEOL(o){return o.getEOL()==="\n"?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 r=this._undoRedoService.getLastElement(this._model.uri);if(isEditStackElement(r)&&r.canAppend(this._model))return r;const s=new SingleModelEditStackElement(localize(785,"Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(s,t),s}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,r,s,a=EditSources.unknown({name:"pushEditOperation"})){const l=this._getOrCreateEditStackElement(e,s),c=this._model.applyEdits(t,!0,a),d=EditStack._computeCursorState(r,c),u=c.map((g,f)=>({index:f,textChange:g.textChange}));return u.sort((g,f)=>g.textChange.oldPosition===f.textChange.oldPosition?g.index-f.index:g.textChange.oldPosition-f.textChange.oldPosition),l.append(this._model,u.map(g=>g.textChange),getModelEOL(this._model),this._model.getAlternativeVersionId(),d),d}static _computeCursorState(e,t){try{return e?e(t):null}catch(r){return onUnexpectedError(r),null}}}class SpacesDiffResult{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function spacesDiff(o,e,t,r,s){s.spacesDiff=0,s.looksLikeAlignment=!1;let a;for(a=0;a<e&&a<r;a++){const m=o.charCodeAt(a),_=t.charCodeAt(a);if(m!==_)break}let l=0,c=0;for(let m=a;m<e;m++)o.charCodeAt(m)===32?l++:c++;let d=0,u=0;for(let m=a;m<r;m++)t.charCodeAt(m)===32?d++:u++;if(l>0&&c>0||d>0&&u>0)return;const g=Math.abs(c-u),f=Math.abs(l-d);if(g===0){s.spacesDiff=f,f>0&&0<=d-1&&d-1<o.length&&d<t.length&&t.charCodeAt(d)!==32&&o.charCodeAt(d-1)===32&&o.charCodeAt(o.length-1)===44&&(s.looksLikeAlignment=!0);return}if(f%g===0){s.spacesDiff=f/g;return}}function guessIndentation(o,e,t){const r=Math.min(o.getLineCount(),1e4);let s=0,a=0,l="",c=0;const d=[2,4,6,8,3,5,7],u=8,g=[0,0,0,0,0,0,0,0,0],f=new SpacesDiffResult;for(let v=1;v<=r;v++){const b=o.getLineLength(v),C=o.getLineContent(v),y=b<=65536;let S=!1,w=0,E=0,x=0;for(let k=0,D=b;k<D;k++){const I=y?C.charCodeAt(k):o.getLineCharCode(v,k);if(I===9)x++;else if(I===32)E++;else{S=!0,w=k;break}}if(!S||(x>0?s++:E>1&&a++,spacesDiff(l,c,C,w,f),f.looksLikeAlignment&&!(t&&e===f.spacesDiff)))continue;const L=f.spacesDiff;L<=u&&g[L]++,l=C,c=w}let m=t;s!==a&&(m=s<a);let _=e;if(m){let v=m?0:.1*r;d.forEach(b=>{const C=g[b];C>v&&(v=C,_=b)}),_===4&&g[4]>0&&g[2]>0&&g[2]>=g[4]/2&&(_=2)}return{insertSpaces:m,tabSize:_}}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 getNodeAffectsFont(o){return(o.metadata&128)>>>7===1}function setNodeAffectsFont(o,e){o.metadata=o.metadata&127|(e?1:0)<<7}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,r){this.metadata=0,this.parent=this,this.left=this,this.right=this,setNodeColor(this,1),this.start=t,this.end=r,this.delta=0,this.maxEnd=r,this.id=e,this.ownerId=0,this.options=null,setNodeIsForValidation(this,!1),setNodeIsInGlyphMargin(this,!1),_setNodeStickiness(this,1),setCollapseOnReplaceEdit(this,!1),setNodeAffectsFont(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=r,this.range=null,setNodeIsVisited(this,!1)}reset(e,t,r,s){this.start=t,this.end=r,this.maxEnd=r,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=r,this.range=s}setOptions(e){var r;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),setNodeAffectsFont(this,(r=this.options.affectsFont)!=null?r:!1)}setCachedOffsets(e,t,r){this.cachedVersionId!==r&&(this.range=null),this.cachedVersionId=r,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,r,s,a,l,c){return this.root===SENTINEL$1?[]:intervalSearch(this,e,t,r,s,a,l,c)}search(e,t,r,s,a){return this.root===SENTINEL$1?[]:search(this,e,t,r,s,a)}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 r=e;let s=0;for(;e!==this.root;)e===e.parent.right&&(s+=e.parent.delta),e=e.parent;const a=r.start+s,l=r.end+s;r.setCachedOffsets(a,l,t)}acceptReplace(e,t,r,s){const a=searchForEditing(this,e,e+t);for(let l=0,c=a.length;l<c;l++){const d=a[l];rbTreeDelete(this,d)}this._normalizeDeltaIfNecessary(),noOverlapReplace(this,e,e+t,r),this._normalizeDeltaIfNecessary();for(let l=0,c=a.length;l<c;l++){const d=a[l];d.start=d.cachedAbsoluteStart,d.end=d.cachedAbsoluteEnd,nodeAcceptEdit(d,e,e+t,r,s),d.maxEnd=d.end,rbTreeInsert(this,d)}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,r){return o<t?!0:o>t||r===1?!1:r===2?!0:e}function nodeAcceptEdit(o,e,t,r,s){const a=getNodeStickiness(o),l=a===0||a===2,c=a===1||a===2,d=t-e,u=r,g=Math.min(d,u),f=o.start;let m=!1;const _=o.end;let v=!1;e<=f&&_<=t&&getCollapseOnReplaceEdit(o)&&(o.start=e,m=!0,o.end=e,v=!0);{const C=s?1:d>0?2:0;!m&&adjustMarkerBeforeColumn(f,l,e,C)&&(m=!0),!v&&adjustMarkerBeforeColumn(_,c,e,C)&&(v=!0)}if(g>0&&!s){const C=d>u?2:0;!m&&adjustMarkerBeforeColumn(f,l,e+g,C)&&(m=!0),!v&&adjustMarkerBeforeColumn(_,c,e+g,C)&&(v=!0)}{const C=s?1:0;!m&&adjustMarkerBeforeColumn(f,l,t,C)&&(o.start=e+u,m=!0),!v&&adjustMarkerBeforeColumn(_,c,t,C)&&(o.end=e+u,v=!0)}const b=u-d;m||(o.start=Math.max(0,f+b)),v||(o.end=Math.max(0,_+b)),o.start>o.end&&(o.end=o.start)}function searchForEditing(o,e,t){let r=o.root,s=0,a=0,l=0,c=0;const d=[];let u=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(!getNodeIsVisited(r.left)){if(a=s+r.maxEnd,a<e){setNodeIsVisited(r,!0);continue}if(r.left!==SENTINEL$1){r=r.left;continue}}if(l=s+r.start,l>t){setNodeIsVisited(r,!0);continue}if(c=s+r.end,c>=e&&(r.setCachedOffsets(l,c,0),d[u++]=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 noOverlapReplace(o,e,t,r){let s=o.root,a=0,l=0,c=0;const d=r-(t-e);for(;s!==SENTINEL$1;){if(getNodeIsVisited(s)){setNodeIsVisited(s.left,!1),setNodeIsVisited(s.right,!1),s===s.parent.right&&(a-=s.parent.delta),recomputeMaxEnd(s),s=s.parent;continue}if(!getNodeIsVisited(s.left)){if(l=a+s.maxEnd,l<e){setNodeIsVisited(s,!0);continue}if(s.left!==SENTINEL$1){s=s.left;continue}}if(c=a+s.start,c>t){s.start+=d,s.end+=d,s.delta+=d,(s.delta<-1073741824||s.delta>1073741824)&&(o.requestNormalizeDelta=!0),setNodeIsVisited(s,!0);continue}if(setNodeIsVisited(s,!0),s.right!==SENTINEL$1&&!getNodeIsVisited(s.right)){a+=s.delta,s=s.right;continue}}setNodeIsVisited(o.root,!1)}function collectNodesFromOwner(o,e){let t=o.root;const r=[];let s=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&&(r[s++]=t),setNodeIsVisited(t,!0),t.right!==SENTINEL$1&&!getNodeIsVisited(t.right)){t=t.right;continue}}return setNodeIsVisited(o.root,!1),r}function collectNodesPostOrder(o){let e=o.root;const t=[];let r=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[r++]=e,setNodeIsVisited(e,!0)}return setNodeIsVisited(o.root,!1),t}function search(o,e,t,r,s,a){let l=o.root,c=0,d=0,u=0;const g=[];let f=0;for(;l!==SENTINEL$1;){if(getNodeIsVisited(l)){setNodeIsVisited(l.left,!1),setNodeIsVisited(l.right,!1),l===l.parent.right&&(c-=l.parent.delta),l=l.parent;continue}if(l.left!==SENTINEL$1&&!getNodeIsVisited(l.left)){l=l.left;continue}d=c+l.start,u=c+l.end,l.setCachedOffsets(d,u,s);let m=!0;if(e&&l.ownerId&&l.ownerId!==e&&(m=!1),t&&getNodeIsForValidation(l)&&(m=!1),r&&getNodeAffectsFont(l)&&(m=!1),a&&!getNodeIsInGlyphMargin(l)&&(m=!1),m&&(g[f++]=l),setNodeIsVisited(l,!0),l.right!==SENTINEL$1&&!getNodeIsVisited(l.right)){c+=l.delta,l=l.right;continue}}return setNodeIsVisited(o.root,!1),g}function intervalSearch(o,e,t,r,s,a,l,c){let d=o.root,u=0,g=0,f=0,m=0;const _=[];let v=0;for(;d!==SENTINEL$1;){if(getNodeIsVisited(d)){setNodeIsVisited(d.left,!1),setNodeIsVisited(d.right,!1),d===d.parent.right&&(u-=d.parent.delta),d=d.parent;continue}if(!getNodeIsVisited(d.left)){if(g=u+d.maxEnd,g<e){setNodeIsVisited(d,!0);continue}if(d.left!==SENTINEL$1){d=d.left;continue}}if(f=u+d.start,f>t){setNodeIsVisited(d,!0);continue}if(m=u+d.end,m>=e){d.setCachedOffsets(f,m,l);let b=!0;r&&d.ownerId&&d.ownerId!==r&&(b=!1),s&&getNodeIsForValidation(d)&&(b=!1),a&&getNodeAffectsFont(d)&&(b=!1),c&&!getNodeIsInGlyphMargin(d)&&(b=!1),b&&(_[v++]=d)}if(setNodeIsVisited(d,!0),d.right!==SENTINEL$1&&!getNodeIsVisited(d.right)){u+=d.delta,d=d.right;continue}}return setNodeIsVisited(o.root,!1),_}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 r=t.parent.parent.right;getNodeColor(r)===1?(setNodeColor(t.parent,0),setNodeColor(r,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 r=t.parent.parent.left;getNodeColor(r)===1?(setNodeColor(t.parent,0),setNodeColor(r,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,r=o.root;const s=e.start,a=e.end;for(;;)if(intervalCompare(s,a,r.start+t,r.end+t)<0)if(r.left===SENTINEL$1){e.start-=t,e.end-=t,e.maxEnd-=t,r.left=e;break}else r=r.left;else if(r.right===SENTINEL$1){e.start-=t+r.delta,e.end-=t+r.delta,e.maxEnd-=t+r.delta,r.right=e;break}else t+=r.delta,r=r.right;e.parent=r,e.left=SENTINEL$1,e.right=SENTINEL$1,setNodeColor(e,1)}function rbTreeDelete(o,e){let t,r;if(e.left===SENTINEL$1?(t=e.right,r=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,r=e):(r=leftest$1(e.right),t=r.right,t.start+=r.delta,t.end+=r.delta,t.delta+=r.delta,(t.delta<-1073741824||t.delta>1073741824)&&(o.requestNormalizeDelta=!0),r.start+=e.delta,r.end+=e.delta,r.delta=e.delta,(r.delta<-1073741824||r.delta>1073741824)&&(o.requestNormalizeDelta=!0)),r===o.root){o.root=t,setNodeColor(t,0),e.detach(),resetSentinel$1(),recomputeMaxEnd(t),o.root.parent=SENTINEL$1;return}const s=getNodeColor(r)===1;if(r===r.parent.left?r.parent.left=t:r.parent.right=t,r===e?t.parent=r.parent:(r.parent===e?t.parent=r:t.parent=r.parent,r.left=e.left,r.right=e.right,r.parent=e.parent,setNodeColor(r,getNodeColor(e)),e===o.root?o.root=r:e===e.parent.left?e.parent.left=r:e.parent.right=r,r.left!==SENTINEL$1&&(r.left.parent=r),r.right!==SENTINEL$1&&(r.right.parent=r)),e.detach(),s){recomputeMaxEndWalkToRoot(t.parent),r!==e&&(recomputeMaxEndWalkToRoot(r),recomputeMaxEndWalkToRoot(r.parent)),resetSentinel$1();return}recomputeMaxEndWalkToRoot(t),recomputeMaxEndWalkToRoot(t.parent),r!==e&&(recomputeMaxEndWalkToRoot(r),recomputeMaxEndWalkToRoot(r.parent));let a;for(;t!==o.root&&getNodeColor(t)===0;)t===t.parent.left?(a=t.parent.right,getNodeColor(a)===1&&(setNodeColor(a,0),setNodeColor(t.parent,1),leftRotate$1(o,t.parent),a=t.parent.right),getNodeColor(a.left)===0&&getNodeColor(a.right)===0?(setNodeColor(a,1),t=t.parent):(getNodeColor(a.right)===0&&(setNodeColor(a.left,0),setNodeColor(a,1),rightRotate$1(o,a),a=t.parent.right),setNodeColor(a,getNodeColor(t.parent)),setNodeColor(t.parent,0),setNodeColor(a.right,0),leftRotate$1(o,t.parent),t=o.root)):(a=t.parent.left,getNodeColor(a)===1&&(setNodeColor(a,0),setNodeColor(t.parent,1),rightRotate$1(o,t.parent),a=t.parent.left),getNodeColor(a.left)===0&&getNodeColor(a.right)===0?(setNodeColor(a,1),t=t.parent):(getNodeColor(a.left)===0&&(setNodeColor(a.right,0),setNodeColor(a,1),leftRotate$1(o,a),a=t.parent.left),setNodeColor(a,getNodeColor(t.parent)),setNodeColor(t.parent,0),setNodeColor(a.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,r){return o===t?e-r: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,r;if(e.left===SENTINEL?(r=e,t=r.right):e.right===SENTINEL?(r=e,t=r.left):(r=leftest(e.right),t=r.right),r===o.root){o.root=t,t.color=0,e.detach(),resetSentinel(),o.root.parent=SENTINEL;return}const s=r.color===1;if(r===r.parent.left?r.parent.left=t:r.parent.right=t,r===e?(t.parent=r.parent,recomputeTreeMetadata(o,t)):(r.parent===e?t.parent=r:t.parent=r.parent,recomputeTreeMetadata(o,t),r.left=e.left,r.right=e.right,r.parent=e.parent,r.color=e.color,e===o.root?o.root=r:e===e.parent.left?e.parent.left=r:e.parent.right=r,r.left!==SENTINEL&&(r.left.parent=r),r.right!==SENTINEL&&(r.right.parent=r),r.size_left=e.size_left,r.lf_left=e.lf_left,recomputeTreeMetadata(o,r)),e.detach(),t.parent.left===t){const l=calculateSize(t),c=calculateLF(t);if(l!==t.parent.size_left||c!==t.parent.lf_left){const d=l-t.parent.size_left,u=c-t.parent.lf_left;t.parent.size_left=l,t.parent.lf_left=c,updateTreeMetadata(o,t.parent,d,u)}}if(recomputeTreeMetadata(o,t.parent),s){resetSentinel();return}let a;for(;t!==o.root&&t.color===0;)t===t.parent.left?(a=t.parent.right,a.color===1&&(a.color=0,t.parent.color=1,leftRotate(o,t.parent),a=t.parent.right),a.left.color===0&&a.right.color===0?(a.color=1,t=t.parent):(a.right.color===0&&(a.left.color=0,a.color=1,rightRotate(o,a),a=t.parent.right),a.color=t.parent.color,t.parent.color=0,a.right.color=0,leftRotate(o,t.parent),t=o.root)):(a=t.parent.left,a.color===1&&(a.color=0,t.parent.color=1,rightRotate(o,t.parent),a=t.parent.left),a.left.color===0&&a.right.color===0?(a.color=1,t=t.parent):(a.left.color===0&&(a.right.color=0,a.color=1,leftRotate(o,a),a=t.parent.left),a.color=t.parent.color,t.parent.color=0,a.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,r){for(;e!==o.root&&e!==SENTINEL;)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=r),e=e.parent}function recomputeTreeMetadata(o,e){let t=0,r=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,r=calculateLF(e.left)-e.lf_left,e.size_left+=t,e.lf_left+=r;e!==o.root&&(t!==0||r!==0);)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=r),e=e.parent}}const LIMIT_FIND_COUNT$1=999;class SearchParams{constructor(e,t,r,s){this.searchString=e,this.isRegex=t,this.matchCase=r,this.wordSeparators=s}parseSearchRequest(){if(this.searchString==="")return null;let e;this.isRegex?e=isMultilineRegexSource(this.searchString):e=this.searchString.indexOf("\n")>=0;let t=null;try{t=createRegExp(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch(s){return null}if(!t)return null;let r=!this.isRegex&&!e;return r&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(r=this.matchCase),new SearchData(t,this.wordSeparators?getMapForWordSeparators(this.wordSeparators,[]):null,r?this.searchString:null)}}function isMultilineRegexSource(o){if(!o||o.length===0)return!1;for(let e=0,t=o.length;e<t;e++){const r=o.charCodeAt(e);if(r===10)return!0;if(r===92){if(e++,e>=t)break;const s=o.charCodeAt(e);if(s===110||s===114||s===87)return!0}}return!1}function createFindMatch(o,e,t){if(!t)return new FindMatch(o,null);const r=[];for(let s=0,a=e.length;s<a;s++)r[s]=e[s];return new FindMatch(o,r)}class LineFeedCounter{constructor(e){const t=[];let r=0;for(let s=0,a=e.length;s<a;s++)e.charCodeAt(s)===10&&(t[r++]=s);this._lineFeedsOffsets=t}findLineFeedCountBeforeOffset(e){const t=this._lineFeedsOffsets;let r=0,s=t.length-1;if(s===-1||e<=t[0])return 0;for(;r<s;){const a=r+((s-r)/2>>0);t[a]>=e?s=a-1:t[a+1]>=e?(r=a,s=a):r=a+1}return r+1}}class TextModelSearch{static findMatches(e,t,r,s,a){const l=t.parseSearchRequest();return l?l.regex.multiline?this._doFindMatchesMultiline(e,r,new Searcher(l.wordSeparators,l.regex),s,a):this._doFindMatchesLineByLine(e,r,l,s,a):[]}static _getMultilineMatchRange(e,t,r,s,a,l){let c,d=0;s?(d=s.findLineFeedCountBeforeOffset(a),c=t+a+d):c=t+a;let u;if(s){const _=s.findLineFeedCountBeforeOffset(a+l.length)-d;u=c+l.length+_}else u=c+l.length;const g=e.getPositionAt(c),f=e.getPositionAt(u);return new Range$2(g.lineNumber,g.column,f.lineNumber,f.column)}static _doFindMatchesMultiline(e,t,r,s,a){const l=e.getOffsetAt(t.getStartPosition()),c=e.getValueInRange(t,1),d=e.getEOL()==="\r\n"?new LineFeedCounter(c):null,u=[];let g=0,f;for(r.reset(0);f=r.next(c);)if(u[g++]=createFindMatch(this._getMultilineMatchRange(e,l,c,d,f.index,f[0]),f,s),g>=a)return u;return u}static _doFindMatchesLineByLine(e,t,r,s,a){const l=[];let c=0;if(t.startLineNumber===t.endLineNumber){const u=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return c=this._findMatchesInLine(r,u,t.startLineNumber,t.startColumn-1,c,l,s,a),l}const d=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);c=this._findMatchesInLine(r,d,t.startLineNumber,t.startColumn-1,c,l,s,a);for(let u=t.startLineNumber+1;u<t.endLineNumber&&c<a;u++)c=this._findMatchesInLine(r,e.getLineContent(u),u,0,c,l,s,a);if(c<a){const u=e.getLineContent(t.endLineNumber).substring(0,t.endColumn-1);c=this._findMatchesInLine(r,u,t.endLineNumber,0,c,l,s,a)}return l}static _findMatchesInLine(e,t,r,s,a,l,c,d){const u=e.wordSeparators;if(!c&&e.simpleSearch){const m=e.simpleSearch,_=m.length,v=t.length;let b=-_;for(;(b=t.indexOf(m,b+_))!==-1;)if((!u||isValidMatch(u,t,v,b,_))&&(l[a++]=new FindMatch(new Range$2(r,b+1+s,r,b+1+_+s),null),a>=d))return a;return a}const g=new Searcher(e.wordSeparators,e.regex);let f;g.reset(0);do if(f=g.next(t),f&&(l[a++]=createFindMatch(new Range$2(r,f.index+1+s,r,f.index+1+f[0].length+s),f,c),a>=d))return a;while(f);return a}static findNextMatch(e,t,r,s){const a=t.parseSearchRequest();if(!a)return null;const l=new Searcher(a.wordSeparators,a.regex);return a.regex.multiline?this._doFindNextMatchMultiline(e,r,l,s):this._doFindNextMatchLineByLine(e,r,l,s)}static _doFindNextMatchMultiline(e,t,r,s){const a=new Position$1(t.lineNumber,1),l=e.getOffsetAt(a),c=e.getLineCount(),d=e.getValueInRange(new Range$2(a.lineNumber,a.column,c,e.getLineMaxColumn(c)),1),u=e.getEOL()==="\r\n"?new LineFeedCounter(d):null;r.reset(t.column-1);const g=r.next(d);return g?createFindMatch(this._getMultilineMatchRange(e,l,d,u,g.index,g[0]),g,s):t.lineNumber!==1||t.column!==1?this._doFindNextMatchMultiline(e,new Position$1(1,1),r,s):null}static _doFindNextMatchLineByLine(e,t,r,s){const a=e.getLineCount(),l=t.lineNumber,c=e.getLineContent(l),d=this._findFirstMatchInLine(r,c,l,t.column,s);if(d)return d;for(let u=1;u<=a;u++){const g=(l+u-1)%a,f=e.getLineContent(g+1),m=this._findFirstMatchInLine(r,f,g+1,1,s);if(m)return m}return null}static _findFirstMatchInLine(e,t,r,s,a){e.reset(s-1);const l=e.next(t);return l?createFindMatch(new Range$2(r,l.index+1,r,l.index+1+l[0].length),l,a):null}static findPreviousMatch(e,t,r,s){const a=t.parseSearchRequest();if(!a)return null;const l=new Searcher(a.wordSeparators,a.regex);return a.regex.multiline?this._doFindPreviousMatchMultiline(e,r,l,s):this._doFindPreviousMatchLineByLine(e,r,l,s)}static _doFindPreviousMatchMultiline(e,t,r,s){const a=this._doFindMatchesMultiline(e,new Range$2(1,1,t.lineNumber,t.column),r,s,10*LIMIT_FIND_COUNT$1);if(a.length>0)return a[a.length-1];const l=e.getLineCount();return t.lineNumber!==l||t.column!==e.getLineMaxColumn(l)?this._doFindPreviousMatchMultiline(e,new Position$1(l,e.getLineMaxColumn(l)),r,s):null}static _doFindPreviousMatchLineByLine(e,t,r,s){const a=e.getLineCount(),l=t.lineNumber,c=e.getLineContent(l).substring(0,t.column-1),d=this._findLastMatchInLine(r,c,l,s);if(d)return d;for(let u=1;u<=a;u++){const g=(a+l-u-1)%a,f=e.getLineContent(g+1),m=this._findLastMatchInLine(r,f,g+1,s);if(m)return m}return null}static _findLastMatchInLine(e,t,r,s){let a=null,l;for(e.reset(0);l=e.next(t);)a=createFindMatch(new Range$2(r,l.index+1,r,l.index+1+l[0].length),l,s);return a}}function leftIsWordBounday(o,e,t,r,s){if(r===0)return!0;const a=e.charCodeAt(r-1);if(o.get(a)!==0||a===13||a===10)return!0;if(s>0){const l=e.charCodeAt(r);if(o.get(l)!==0)return!0}return!1}function rightIsWordBounday(o,e,t,r,s){if(r+s===t)return!0;const a=e.charCodeAt(r+s);if(o.get(a)!==0||a===13||a===10)return!0;if(s>0){const l=e.charCodeAt(r+s-1);if(o.get(l)!==0)return!0}return!1}function isValidMatch(o,e,t,r,s){return leftIsWordBounday(o,e,t,r,s)&&rightIsWordBounday(o,e,t,r,s)}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 r;do{if(this._prevMatchStartIndex+this._prevMatchLength===t||(r=this._searchRegex.exec(e),!r))return null;const s=r.index,a=r[0].length;if(s===this._prevMatchStartIndex&&a===this._prevMatchLength){if(a===0){getNextCodePoint(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=s,this._prevMatchLength=a,!this._wordSeparators||isValidMatch(this._wordSeparators,e,t,s,a))return r}while(r);return null}}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,r,s,a){this.lineStarts=e,this.cr=t,this.lf=r,this.crlf=s,this.isBasicASCII=a}}function createLineStartsFast(o,e=!0){const t=[0];let r=1;for(let s=0,a=o.length;s<a;s++){const l=o.charCodeAt(s);l===13?s+1<a&&o.charCodeAt(s+1)===10?(t[r++]=s+2,s++):t[r++]=s+1:l===10&&(t[r++]=s+1)}return e?createUintArray(t):t}function createLineStarts(o,e){o.length=0,o[0]=0;let t=1,r=0,s=0,a=0,l=!0;for(let d=0,u=e.length;d<u;d++){const g=e.charCodeAt(d);g===13?d+1<u&&e.charCodeAt(d+1)===10?(a++,o[t++]=d+2,d++):(r++,o[t++]=d+1):g===10?(s++,o[t++]=d+1):l&&g!==9&&(g<32||g>126)&&(l=!1)}const c=new LineStarts(createUintArray(o),r,s,a,l);return o.length=0,c}class Piece{constructor(e,t,r,s,a){this.bufferIndex=e,this.start=t,this.end=r,this.lineFeedCnt=s,this.length=a}}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,r=>(r!==SENTINEL&&this._pieces.push(r.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class PieceTreeSearchCache{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const r=this._cache[t];if(r.nodeStartOffset<=e&&r.nodeStartOffset+r.node.piece.length>=e)return r}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const r=this._cache[t];if(r.nodeStartLineNumber&&r.nodeStartLineNumber<e&&r.nodeStartLineNumber+r.node.piece.lineFeedCnt>=e)return r}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const r=this._cache;for(let s=0;s<r.length;s++){const a=r[s];if(a.node.parent===null||a.nodeStartOffset>=e){r[s]=null,t=!0;continue}}if(t){const s=[];for(const a of r)a!==null&&s.push(a);this._cache=s}}}class PieceTreeBase{constructor(e,t,r){this.create(e,t,r)}create(e,t,r){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=r;let s=null;for(let a=0,l=e.length;a<l;a++)if(e[a].buffer.length>0){e[a].lineStarts||(e[a].lineStarts=createLineStartsFast(e[a].buffer));const c=new Piece(a+1,{line:0,column:0},{line:e[a].lineStarts.length-1,column:e[a].buffer.length-e[a].lineStarts[e[a].lineStarts.length-1]},e[a].lineStarts.length-1,e[a].buffer.length);this._buffers.push(e[a]),s=this.rbInsertRight(s,c)}this._searchCache=new PieceTreeSearchCache(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=AverageBufferSize,r=t-Math.floor(t/3),s=r*2;let a="",l=0;const c=[];if(this.iterate(this.root,d=>{const u=this.getNodeContent(d),g=u.length;if(l<=r||l+g<s)return a+=u,l+=g,!0;const f=a.replace(/\r\n|\r|\n/g,e);return c.push(new StringBuffer(f,createLineStartsFast(f))),a=u,l=g,!0}),l>0){const d=a.replace(/\r\n|\r|\n/g,e);c.push(new StringBuffer(d,createLineStartsFast(d)))}this.create(c,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 r=0,s=this.root;for(;s!==SENTINEL;)if(s.left!==SENTINEL&&s.lf_left+1>=e)s=s.left;else if(s.lf_left+s.piece.lineFeedCnt+1>=e){r+=s.size_left;const a=this.getAccumulatedValue(s,e-s.lf_left-2);return r+=a+t-1}else e-=s.lf_left+s.piece.lineFeedCnt,r+=s.size_left+s.piece.length,s=s.right;return r}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,r=0;const s=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 a=this.getIndexOf(t,e-t.size_left);if(r+=t.lf_left+a.index,a.index===0){const l=this.getOffsetAt(r+1,1),c=s-l;return new Position$1(r+1,c+1)}return new Position$1(r+1,a.remainder+1)}else if(e-=t.size_left+t.piece.length,r+=t.lf_left+t.piece.lineFeedCnt,t.right===SENTINEL){const a=this.getOffsetAt(r+1,1),l=s-e-a;return new Position$1(r+1,l+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 r=this.nodeAt2(e.startLineNumber,e.startColumn),s=this.nodeAt2(e.endLineNumber,e.endColumn),a=this.getValueInRange2(r,s);return t?t!==this._EOL||!this._EOLNormalized?a.replace(/\r\n|\r|\n/g,t):t===this.getEOL()&&this._EOLNormalized?a:a.replace(/\r\n|\r|\n/g,t):a}getValueInRange2(e,t){if(e.node===t.node){const c=e.node,d=this._buffers[c.piece.bufferIndex].buffer,u=this.offsetInBuffer(c.piece.bufferIndex,c.piece.start);return d.substring(u+e.remainder,u+t.remainder)}let r=e.node;const s=this._buffers[r.piece.bufferIndex].buffer,a=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);let l=s.substring(a+e.remainder,a+r.piece.length);for(r=r.next();r!==SENTINEL;){const c=this._buffers[r.piece.bufferIndex].buffer,d=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);if(r===t.node){l+=c.substring(d,d+t.remainder);break}else l+=c.substr(d,r.piece.length);r=r.next()}return l}getLinesContent(){const e=[];let t=0,r="",s=!1;return this.iterate(this.root,a=>{if(a===SENTINEL)return!0;const l=a.piece;let c=l.length;if(c===0)return!0;const d=this._buffers[l.bufferIndex].buffer,u=this._buffers[l.bufferIndex].lineStarts,g=l.start.line,f=l.end.line;let m=u[g]+l.start.column;if(s&&(d.charCodeAt(m)===10&&(m++,c--),e[t++]=r,r="",s=!1,c===0))return!0;if(g===f)return!this._EOLNormalized&&d.charCodeAt(m+c-1)===13?(s=!0,r+=d.substr(m,c-1)):r+=d.substr(m,c),!0;r+=this._EOLNormalized?d.substring(m,Math.max(m,u[g+1]-this._EOLLength)):d.substring(m,u[g+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=r;for(let _=g+1;_<f;_++)r=this._EOLNormalized?d.substring(u[_],u[_+1]-this._EOLLength):d.substring(u[_],u[_+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=r;return!this._EOLNormalized&&d.charCodeAt(u[f]+l.end.column-1)===13?(s=!0,l.end.column===0?t--:r=d.substr(u[f],l.end.column-1)):r=d.substr(u[f],l.end.column),!0}),s&&(e[t++]=r,r=""),e[t++]=r,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 r=this._buffers[t.piece.bufferIndex],s=this.offsetInBuffer(t.piece.bufferIndex,t.piece.start);return r.buffer.charCodeAt(s)}else{const t=this._buffers[e.node.piece.bufferIndex],s=this.offsetInBuffer(e.node.piece.bufferIndex,e.node.piece.start)+e.remainder;return t.buffer.charCodeAt(s)}}getLineCharCode(e,t){const r=this.nodeAt2(e,t+1);return this._getCharCode(r)}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}getNearestChunk(e){const t=this.nodeAt(e);if(t.remainder===t.node.piece.length){const r=t.node.next();if(!r||r===SENTINEL)return"";const s=this._buffers[r.piece.bufferIndex],a=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);return s.buffer.substring(a,a+r.piece.length)}else{const r=this._buffers[t.node.piece.bufferIndex],s=this.offsetInBuffer(t.node.piece.bufferIndex,t.node.piece.start),a=s+t.remainder,l=s+t.node.piece.length;return r.buffer.substring(a,l)}}findMatchesInNode(e,t,r,s,a,l,c,d,u,g,f){const m=this._buffers[e.piece.bufferIndex],_=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),v=this.offsetInBuffer(e.piece.bufferIndex,a),b=this.offsetInBuffer(e.piece.bufferIndex,l);let C;const y={line:0,column:0};let S,w;t._wordSeparators?(S=m.buffer.substring(v,b),w=E=>E+v,t.reset(0)):(S=m.buffer,w=E=>E,t.reset(v));do if(C=t.next(S),C){if(w(C.index)>=b)return g;this.positionInBuffer(e,w(C.index)-_,y);const E=this.getLineFeedCnt(e.piece.bufferIndex,a,y),x=y.line===a.line?y.column-a.column+s:y.column+1,L=x+C[0].length;if(f[g++]=createFindMatch(new Range$2(r+E,x,r+E,L),C,d),w(C.index)+C[0].length>=b||g>=u)return g}while(C);return g}findMatchesLineByLine(e,t,r,s){const a=[];let l=0;const c=new Searcher(t.wordSeparators,t.regex);let d=this.nodeAt2(e.startLineNumber,e.startColumn);if(d===null)return[];const u=this.nodeAt2(e.endLineNumber,e.endColumn);if(u===null)return[];let g=this.positionInBuffer(d.node,d.remainder);const f=this.positionInBuffer(u.node,u.remainder);if(d.node===u.node)return this.findMatchesInNode(d.node,c,e.startLineNumber,e.startColumn,g,f,t,r,s,l,a),a;let m=e.startLineNumber,_=d.node;for(;_!==u.node;){const b=this.getLineFeedCnt(_.piece.bufferIndex,g,_.piece.end);if(b>=1){const y=this._buffers[_.piece.bufferIndex].lineStarts,S=this.offsetInBuffer(_.piece.bufferIndex,_.piece.start),w=y[g.line+b],E=m===e.startLineNumber?e.startColumn:1;if(l=this.findMatchesInNode(_,c,m,E,g,this.positionInBuffer(_,w-S),t,r,s,l,a),l>=s)return a;m+=b}const C=m===e.startLineNumber?e.startColumn-1:0;if(m===e.endLineNumber){const y=this.getLineContent(m).substring(C,e.endColumn-1);return l=this._findMatchesInLine(t,c,y,e.endLineNumber,C,l,a,r,s),a}if(l=this._findMatchesInLine(t,c,this.getLineContent(m).substr(C),m,C,l,a,r,s),l>=s)return a;m++,d=this.nodeAt2(m,1),_=d.node,g=this.positionInBuffer(d.node,d.remainder)}if(m===e.endLineNumber){const b=m===e.startLineNumber?e.startColumn-1:0,C=this.getLineContent(m).substring(b,e.endColumn-1);return l=this._findMatchesInLine(t,c,C,e.endLineNumber,b,l,a,r,s),a}const v=m===e.startLineNumber?e.startColumn:1;return l=this.findMatchesInNode(u.node,c,m,v,g,f,t,r,s,l,a),a}_findMatchesInLine(e,t,r,s,a,l,c,d,u){const g=e.wordSeparators;if(!d&&e.simpleSearch){const m=e.simpleSearch,_=m.length,v=r.length;let b=-_;for(;(b=r.indexOf(m,b+_))!==-1;)if((!g||isValidMatch(g,r,v,b,_))&&(c[l++]=new FindMatch(new Range$2(s,b+1+a,s,b+1+_+a),null),l>=u))return l;return l}let f;t.reset(0);do if(f=t.next(r),f&&(c[l++]=createFindMatch(new Range$2(s,f.index+1+a,s,f.index+1+f[0].length+a),f,d),l>=u))return l;while(f);return l}insert(e,t,r=!1){if(this._EOLNormalized=this._EOLNormalized&&r,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==SENTINEL){const{node:s,remainder:a,nodeStartOffset:l}=this.nodeAt(e),c=s.piece,d=c.bufferIndex,u=this.positionInBuffer(s,a);if(s.piece.bufferIndex===0&&c.end.line===this._lastChangeBufferPos.line&&c.end.column===this._lastChangeBufferPos.column&&l+c.length===e&&t.length<AverageBufferSize){this.appendToNode(s,t),this.computeBufferMetadata();return}if(l===e)this.insertContentToNodeLeft(t,s),this._searchCache.validate(e);else if(l+s.piece.length>e){const g=[];let f=new Piece(c.bufferIndex,u,c.end,this.getLineFeedCnt(c.bufferIndex,u,c.end),this.offsetInBuffer(d,c.end)-this.offsetInBuffer(d,u));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.nodeCharCodeAt(s,a)===10){const b={line:f.start.line+1,column:0};f=new Piece(f.bufferIndex,b,f.end,this.getLineFeedCnt(f.bufferIndex,b,f.end),f.length-1),t+="\n"}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(this.nodeCharCodeAt(s,a-1)===13){const b=this.positionInBuffer(s,a-1);this.deleteNodeTail(s,b),t="\r"+t,s.piece.length===0&&g.push(s)}else this.deleteNodeTail(s,u);else this.deleteNodeTail(s,u);const m=this.createNewPieces(t);f.length>0&&this.rbInsertRight(s,f);let _=s;for(let v=0;v<m.length;v++)_=this.rbInsertRight(_,m[v]);this.deleteNodes(g)}else this.insertContentToNodeRight(t,s)}else{const s=this.createNewPieces(t);let a=this.rbInsertLeft(null,s[0]);for(let l=1;l<s.length;l++)a=this.rbInsertRight(a,s[l])}this.computeBufferMetadata()}delete(e,t){if(this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",t<=0||this.root===SENTINEL)return;const r=this.nodeAt(e),s=this.nodeAt(e+t),a=r.node,l=s.node;if(a===l){const m=this.positionInBuffer(a,r.remainder),_=this.positionInBuffer(a,s.remainder);if(r.nodeStartOffset===e){if(t===a.piece.length){const v=a.next();rbDelete(this,a),this.validateCRLFWithPrevNode(v),this.computeBufferMetadata();return}this.deleteNodeHead(a,_),this._searchCache.validate(e),this.validateCRLFWithPrevNode(a),this.computeBufferMetadata();return}if(r.nodeStartOffset+a.piece.length===e+t){this.deleteNodeTail(a,m),this.validateCRLFWithNextNode(a),this.computeBufferMetadata();return}this.shrinkNode(a,m,_),this.computeBufferMetadata();return}const c=[],d=this.positionInBuffer(a,r.remainder);this.deleteNodeTail(a,d),this._searchCache.validate(e),a.piece.length===0&&c.push(a);const u=this.positionInBuffer(l,s.remainder);this.deleteNodeHead(l,u),l.piece.length===0&&c.push(l);const g=a.next();for(let m=g;m!==SENTINEL&&m!==l;m=m.next())c.push(m);const f=a.piece.length===0?a.prev():a;this.deleteNodes(c),this.validateCRLFWithNextNode(f),this.computeBufferMetadata()}insertContentToNodeLeft(e,t){const r=[];if(this.shouldCheckCRLF()&&this.endWithCR(e)&&this.startWithLF(t)){const l=t.piece,c={line:l.start.line+1,column:0},d=new Piece(l.bufferIndex,c,l.end,this.getLineFeedCnt(l.bufferIndex,c,l.end),l.length-1);t.piece=d,e+="\n",updateTreeMetadata(this,t,-1,-1),t.piece.length===0&&r.push(t)}const s=this.createNewPieces(e);let a=this.rbInsertLeft(t,s[s.length-1]);for(let l=s.length-2;l>=0;l--)a=this.rbInsertLeft(a,s[l]);this.validateCRLFWithPrevNode(a),this.deleteNodes(r)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n");const r=this.createNewPieces(e),s=this.rbInsertRight(t,r[0]);let a=s;for(let l=1;l<r.length;l++)a=this.rbInsertRight(a,r[l]);this.validateCRLFWithPrevNode(s)}positionInBuffer(e,t,r){const s=e.piece,a=e.piece.bufferIndex,l=this._buffers[a].lineStarts,d=l[s.start.line]+s.start.column+t;let u=s.start.line,g=s.end.line,f=0,m=0,_=0;for(;u<=g&&(f=u+(g-u)/2|0,_=l[f],f!==g);)if(m=l[f+1],d<_)g=f-1;else if(d>=m)u=f+1;else break;return r?(r.line=f,r.column=d-_,null):{line:f,column:d-_}}getLineFeedCnt(e,t,r){if(r.column===0)return r.line-t.line;const s=this._buffers[e].lineStarts;if(r.line===s.length-1)return r.line-t.line;const a=s[r.line+1],l=s[r.line]+r.column;if(a>l+1)return r.line-t.line;const c=l-1;return this._buffers[e].buffer.charCodeAt(c)===13?r.line-t.line+1:r.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 g=[];for(;e.length>AverageBufferSize;){const m=e.charCodeAt(AverageBufferSize-1);let _;m===13||m>=55296&&m<=56319?(_=e.substring(0,AverageBufferSize-1),e=e.substring(AverageBufferSize-1)):(_=e.substring(0,AverageBufferSize),e=e.substring(AverageBufferSize));const v=createLineStartsFast(_);g.push(new Piece(this._buffers.length,{line:0,column:0},{line:v.length-1,column:_.length-v[v.length-1]},v.length-1,_.length)),this._buffers.push(new StringBuffer(_,v))}const f=createLineStartsFast(e);return g.push(new Piece(this._buffers.length,{line:0,column:0},{line:f.length-1,column:e.length-f[f.length-1]},f.length-1,e.length)),this._buffers.push(new StringBuffer(e,f)),g}let t=this._buffers[0].buffer.length;const r=createLineStartsFast(e,!1);let s=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},s=this._lastChangeBufferPos;for(let g=0;g<r.length;g++)r[g]+=t+1;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(r.slice(1)),this._buffers[0].buffer+="_"+e,t+=1}else{if(t!==0)for(let g=0;g<r.length;g++)r[g]+=t;this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(r.slice(1)),this._buffers[0].buffer+=e}const a=this._buffers[0].buffer.length,l=this._buffers[0].lineStarts.length-1,c=a-this._buffers[0].lineStarts[l],d={line:l,column:c},u=new Piece(0,s,d,this.getLineFeedCnt(0,s,d),a-t);return this._lastChangeBufferPos=d,[u]}getLineRawContent(e,t=0){let r=this.root,s="";const a=this._searchCache.get2(e);if(a){r=a.node;const l=this.getAccumulatedValue(r,e-a.nodeStartLineNumber-1),c=this._buffers[r.piece.bufferIndex].buffer,d=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);if(a.nodeStartLineNumber+r.piece.lineFeedCnt===e)s=c.substring(d+l,d+r.piece.length);else{const u=this.getAccumulatedValue(r,e-a.nodeStartLineNumber);return c.substring(d+l,d+u-t)}}else{let l=0;const c=e;for(;r!==SENTINEL;)if(r.left!==SENTINEL&&r.lf_left>=e-1)r=r.left;else if(r.lf_left+r.piece.lineFeedCnt>e-1){const d=this.getAccumulatedValue(r,e-r.lf_left-2),u=this.getAccumulatedValue(r,e-r.lf_left-1),g=this._buffers[r.piece.bufferIndex].buffer,f=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);return l+=r.size_left,this._searchCache.set({node:r,nodeStartOffset:l,nodeStartLineNumber:c-(e-1-r.lf_left)}),g.substring(f+d,f+u-t)}else if(r.lf_left+r.piece.lineFeedCnt===e-1){const d=this.getAccumulatedValue(r,e-r.lf_left-2),u=this._buffers[r.piece.bufferIndex].buffer,g=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);s=u.substring(g+d,g+r.piece.length);break}else e-=r.lf_left+r.piece.lineFeedCnt,l+=r.size_left+r.piece.length,r=r.right}for(r=r.next();r!==SENTINEL;){const l=this._buffers[r.piece.bufferIndex].buffer;if(r.piece.lineFeedCnt>0){const c=this.getAccumulatedValue(r,0),d=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);return s+=l.substring(d,d+c-t),s}else{const c=this.offsetInBuffer(r.piece.bufferIndex,r.piece.start);s+=l.substr(c,r.piece.length)}r=r.next()}return s}computeBufferMetadata(){let e=this.root,t=1,r=0;for(;e!==SENTINEL;)t+=e.lf_left+e.piece.lineFeedCnt,r+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=r,this._searchCache.validate(this._length)}getIndexOf(e,t){const r=e.piece,s=this.positionInBuffer(e,t),a=s.line-r.start.line;if(this.offsetInBuffer(r.bufferIndex,r.end)-this.offsetInBuffer(r.bufferIndex,r.start)===t){const l=this.getLineFeedCnt(e.piece.bufferIndex,r.start,s);if(l!==a)return{index:l,remainder:0}}return{index:a,remainder:s.column}}getAccumulatedValue(e,t){if(t<0)return 0;const r=e.piece,s=this._buffers[r.bufferIndex].lineStarts,a=r.start.line+t+1;return a>r.end.line?s[r.end.line]+r.end.column-s[r.start.line]-r.start.column:s[a]-s[r.start.line]-r.start.column}deleteNodeTail(e,t){const r=e.piece,s=r.lineFeedCnt,a=this.offsetInBuffer(r.bufferIndex,r.end),l=t,c=this.offsetInBuffer(r.bufferIndex,l),d=this.getLineFeedCnt(r.bufferIndex,r.start,l),u=d-s,g=c-a,f=r.length+g;e.piece=new Piece(r.bufferIndex,r.start,l,d,f),updateTreeMetadata(this,e,g,u)}deleteNodeHead(e,t){const r=e.piece,s=r.lineFeedCnt,a=this.offsetInBuffer(r.bufferIndex,r.start),l=t,c=this.getLineFeedCnt(r.bufferIndex,l,r.end),d=this.offsetInBuffer(r.bufferIndex,l),u=c-s,g=a-d,f=r.length+g;e.piece=new Piece(r.bufferIndex,l,r.end,c,f),updateTreeMetadata(this,e,g,u)}shrinkNode(e,t,r){const s=e.piece,a=s.start,l=s.end,c=s.length,d=s.lineFeedCnt,u=t,g=this.getLineFeedCnt(s.bufferIndex,s.start,u),f=this.offsetInBuffer(s.bufferIndex,t)-this.offsetInBuffer(s.bufferIndex,a);e.piece=new Piece(s.bufferIndex,s.start,u,g,f),updateTreeMetadata(this,e,f-c,g-d);const m=new Piece(s.bufferIndex,r,l,this.getLineFeedCnt(s.bufferIndex,r,l),this.offsetInBuffer(s.bufferIndex,l)-this.offsetInBuffer(s.bufferIndex,r)),_=this.rbInsertRight(e,m);this.validateCRLFWithPrevNode(_)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+="\n");const r=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),s=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const a=createLineStartsFast(t,!1);for(let _=0;_<a.length;_++)a[_]+=s;if(r){const _=this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-2];this._buffers[0].lineStarts.pop(),this._lastChangeBufferPos={line:this._lastChangeBufferPos.line-1,column:s-_}}this._buffers[0].lineStarts=this._buffers[0].lineStarts.concat(a.slice(1));const l=this._buffers[0].lineStarts.length-1,c=this._buffers[0].buffer.length-this._buffers[0].lineStarts[l],d={line:l,column:c},u=e.piece.length+t.length,g=e.piece.lineFeedCnt,f=this.getLineFeedCnt(0,e.piece.start,d),m=f-g;e.piece=new Piece(e.piece.bufferIndex,e.piece.start,d,f,u),this._lastChangeBufferPos=d,updateTreeMetadata(this,e,t.length,m)}nodeAt(e){let t=this.root;const r=this._searchCache.get(e);if(r)return{node:r.node,nodeStartOffset:r.nodeStartOffset,remainder:e-r.nodeStartOffset};let s=0;for(;t!==SENTINEL;)if(t.size_left>e)t=t.left;else if(t.size_left+t.piece.length>=e){s+=t.size_left;const a={node:t,remainder:e-t.size_left,nodeStartOffset:s};return this._searchCache.set(a),a}else e-=t.size_left+t.piece.length,s+=t.size_left+t.piece.length,t=t.right;return null}nodeAt2(e,t){let r=this.root,s=0;for(;r!==SENTINEL;)if(r.left!==SENTINEL&&r.lf_left>=e-1)r=r.left;else if(r.lf_left+r.piece.lineFeedCnt>e-1){const a=this.getAccumulatedValue(r,e-r.lf_left-2),l=this.getAccumulatedValue(r,e-r.lf_left-1);return s+=r.size_left,{node:r,remainder:Math.min(a+t-1,l),nodeStartOffset:s}}else if(r.lf_left+r.piece.lineFeedCnt===e-1){const a=this.getAccumulatedValue(r,e-r.lf_left-2);if(a+t-1<=r.piece.length)return{node:r,remainder:a+t-1,nodeStartOffset:s};t-=r.piece.length-a;break}else e-=r.lf_left+r.piece.lineFeedCnt,s+=r.size_left+r.piece.length,r=r.right;for(r=r.next();r!==SENTINEL;){if(r.piece.lineFeedCnt>0){const a=this.getAccumulatedValue(r,0),l=this.offsetOfNode(r);return{node:r,remainder:Math.min(t-1,a),nodeStartOffset:l}}else if(r.piece.length>=t-1){const a=this.offsetOfNode(r);return{node:r,remainder:t-1,nodeStartOffset:a}}else t-=r.piece.length;r=r.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const r=this._buffers[e.piece.bufferIndex],s=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return r.buffer.charCodeAt(s)}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==="\n")}startWithLF(e){if(typeof e=="string")return e.charCodeAt(0)===10;if(e===SENTINEL||e.piece.lineFeedCnt===0)return!1;const t=e.piece,r=this._buffers[t.bufferIndex].lineStarts,s=t.start.line,a=r[s]+t.start.column;return s===r.length-1||r[s+1]>a+1?!1:this._buffers[t.bufferIndex].buffer.charCodeAt(a)===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 r=[],s=this._buffers[e.piece.bufferIndex].lineStarts;let a;e.piece.end.column===0?a={line:e.piece.end.line-1,column:s[e.piece.end.line]-s[e.piece.end.line-1]-1}:a={line:e.piece.end.line,column:e.piece.end.column-1};const l=e.piece.length-1,c=e.piece.lineFeedCnt-1;e.piece=new Piece(e.piece.bufferIndex,e.piece.start,a,c,l),updateTreeMetadata(this,e,-1,-1),e.piece.length===0&&r.push(e);const d={line:t.piece.start.line+1,column:0},u=t.piece.length-1,g=this.getLineFeedCnt(t.piece.bufferIndex,d,t.piece.end);t.piece=new Piece(t.piece.bufferIndex,d,t.piece.end,g,u),updateTreeMetadata(this,t,-1,-1),t.piece.length===0&&r.push(t);const f=this.createNewPieces("\r\n");this.rbInsertRight(e,f[0]);for(let m=0;m<r.length;m++)rbDelete(this,r[m])}adjustCarriageReturnFromNext(e,t){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const r=t.next();if(this.startWithLF(r)){if(e+="\n",r.piece.length===1)rbDelete(this,r);else{const s=r.piece,a={line:s.start.line+1,column:0},l=s.length-1,c=this.getLineFeedCnt(s.bufferIndex,a,s.end);r.piece=new Piece(s.bufferIndex,a,s.end,c,l),updateTreeMetadata(this,r,-1,-1)}return!0}}return!1}iterate(e,t){if(e===SENTINEL)return t(SENTINEL);const r=this.iterate(e.left,t);return r&&t(e)&&this.iterate(e.right,t)}getNodeContent(e){if(e===SENTINEL)return"";const t=this._buffers[e.piece.bufferIndex],r=e.piece,s=this.offsetInBuffer(r.bufferIndex,r.start),a=this.offsetInBuffer(r.bufferIndex,r.end);return t.buffer.substring(s,a)}getPieceContent(e){const t=this._buffers[e.bufferIndex],r=this.offsetInBuffer(e.bufferIndex,e.start),s=this.offsetInBuffer(e.bufferIndex,e.end);return t.buffer.substring(r,s)}rbInsertRight(e,t){const r=new TreeNode(t,1);if(r.left=SENTINEL,r.right=SENTINEL,r.parent=SENTINEL,r.size_left=0,r.lf_left=0,this.root===SENTINEL)this.root=r,r.color=0;else if(e.right===SENTINEL)e.right=r,r.parent=e;else{const a=leftest(e.right);a.left=r,r.parent=a}return fixInsert(this,r),r}rbInsertLeft(e,t){const r=new TreeNode(t,1);if(r.left=SENTINEL,r.right=SENTINEL,r.parent=SENTINEL,r.size_left=0,r.lf_left=0,this.root===SENTINEL)this.root=r,r.color=0;else if(e.left===SENTINEL)e.left=r,r.parent=e;else{const s=righttest(e.left);s.right=r,r.parent=s}return fixInsert(this,r),r}}class PieceTreeTextBuffer extends Disposable$1{constructor(e,t,r,s,a,l,c){super(),this._onDidChangeContent=this._register(new Emitter$1),this._BOM=t,this._mightContainNonBasicASCII=!l,this._mightContainRTL=s,this._mightContainUnusualLineTerminators=a,this._pieceTree=new PieceTreeBase(e,r,c)}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 r=e+t,s=this.getPositionAt(e),a=this.getPositionAt(r);return new Range$2(s.lineNumber,s.column,a.lineNumber,a.column)}getValueInRange(e,t=0){if(e.isEmpty())return"";const r=this._getEndOfLine(t);return this._pieceTree.getValueInRange(e,r)}getValueLengthInRange(e,t=0){if(e.isEmpty())return 0;if(e.startLineNumber===e.endLineNumber)return e.endColumn-e.startColumn;const r=this.getOffsetAt(e.startLineNumber,e.startColumn),s=this.getOffsetAt(e.endLineNumber,e.endColumn);let a=0;const l=this._getEndOfLine(t),c=this.getEOL();if(l.length!==c.length){const d=l.length-c.length,u=e.endLineNumber-e.startLineNumber;a=d*u}return s-r+a}getCharacterCountInRange(e,t=0){if(this._mightContainNonBasicASCII){let r=0;const s=e.startLineNumber,a=e.endLineNumber;for(let l=s;l<=a;l++){const c=this.getLineContent(l),d=l===s?e.startColumn-1:0,u=l===a?e.endColumn-1:c.length;for(let g=d;g<u;g++)isHighSurrogate(c.charCodeAt(g))?(r=r+1,g=g+1):r=r+1}return r+=this._getEndOfLine(t).length*(a-s),r}return this.getValueLengthInRange(e,t)}getNearestChunk(e){return this._pieceTree.getNearestChunk(e)}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"\n";case 2:return"\r\n";case 0:return this.getEOL();default:throw new Error("Unknown EOL preference")}}setEOL(e){this._pieceTree.setEOL(e)}applyEdits(e,t,r){let s=this._mightContainRTL,a=this._mightContainUnusualLineTerminators,l=this._mightContainNonBasicASCII,c=!0,d=[];for(let b=0;b<e.length;b++){const C=e[b];c&&C._isTracked&&(c=!1);const y=C.range;if(C.text){let L=!0;l||(L=!isBasicASCII(C.text),l=L),!s&&L&&(s=containsRTL(C.text)),!a&&L&&(a=containsUnusualLineTerminators(C.text))}let S="",w=0,E=0,x=0;if(C.text){let L;[w,E,x,L]=countEOL(C.text);const k=this.getEOL();L===0||L===(k==="\r\n"?2:1)?S=C.text:S=C.text.replace(/\r\n|\r|\n/g,k)}d[b]={sortIndex:b,identifier:C.identifier||null,range:y,rangeOffset:this.getOffsetAt(y.startLineNumber,y.startColumn),rangeLength:this.getValueLengthInRange(y),text:S,eolCount:w,firstLineLength:E,lastLineLength:x,forceMoveMarkers:!!C.forceMoveMarkers,isAutoWhitespaceEdit:C.isAutoWhitespaceEdit||!1}}d.sort(PieceTreeTextBuffer._sortOpsAscending);let u=!1;for(let b=0,C=d.length-1;b<C;b++){const y=d[b].range.getEndPosition(),S=d[b+1].range.getStartPosition();if(S.isBeforeOrEqual(y)){if(S.isBefore(y))throw new Error("Overlapping ranges are not allowed!");u=!0}}c&&(d=this._reduceOperations(d));const g=r||t?PieceTreeTextBuffer._getInverseEditRanges(d):[],f=[];if(t)for(let b=0;b<d.length;b++){const C=d[b],y=g[b];if(C.isAutoWhitespaceEdit&&C.range.isEmpty())for(let S=y.startLineNumber;S<=y.endLineNumber;S++){let w="";S===y.startLineNumber&&(w=this.getLineContent(C.range.startLineNumber),firstNonWhitespaceIndex(w)!==-1)||f.push({lineNumber:S,oldContent:w})}}let m=null;if(r){let b=0;m=[];for(let C=0;C<d.length;C++){const y=d[C],S=g[C],w=this.getValueInRange(y.range),E=y.rangeOffset+b;b+=y.text.length-w.length,m[C]={sortIndex:y.sortIndex,identifier:y.identifier,range:S,text:w,textChange:new TextChange(y.rangeOffset,w,E,y.text)}}u||m.sort((C,y)=>C.sortIndex-y.sortIndex)}this._mightContainRTL=s,this._mightContainUnusualLineTerminators=a,this._mightContainNonBasicASCII=l;const _=this._doApplyEdits(d);let v=null;if(t&&f.length>0){f.sort((b,C)=>C.lineNumber-b.lineNumber),v=[];for(let b=0,C=f.length;b<C;b++){const y=f[b].lineNumber;if(b>0&&f[b-1].lineNumber===y)continue;const S=f[b].oldContent,w=this.getLineContent(y);w.length===0||w===S||firstNonWhitespaceIndex(w)!==-1||v.push(y)}}return this._onDidChangeContent.fire(),new ApplyEditsResult(m,_,v)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const r=e[0].range,s=e[e.length-1].range,a=new Range$2(r.startLineNumber,r.startColumn,s.endLineNumber,s.endColumn);let l=r.startLineNumber,c=r.startColumn;const d=[];for(let _=0,v=e.length;_<v;_++){const b=e[_],C=b.range;t=t||b.forceMoveMarkers,d.push(this.getValueInRange(new Range$2(l,c,C.startLineNumber,C.startColumn))),b.text.length>0&&d.push(b.text),l=C.endLineNumber,c=C.endColumn}const u=d.join(""),[g,f,m]=countEOL(u);return{sortIndex:0,identifier:e[0].identifier,range:a,rangeOffset:this.getOffsetAt(a.startLineNumber,a.startColumn),rangeLength:this.getValueLengthInRange(a,0),text:u,eolCount:g,firstLineLength:f,lastLineLength:m,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(PieceTreeTextBuffer._sortOpsDescending);const t=[];for(let r=0;r<e.length;r++){const s=e[r],a=s.range.startLineNumber,l=s.range.startColumn,c=s.range.endLineNumber,d=s.range.endColumn;if(a===c&&l===d&&s.text.length===0)continue;s.text?(this._pieceTree.delete(s.rangeOffset,s.rangeLength),this._pieceTree.insert(s.rangeOffset,s.text,!0)):this._pieceTree.delete(s.rangeOffset,s.rangeLength);const u=new Range$2(a,l,c,d);t.push({range:u,rangeLength:s.rangeLength,text:s.text,rangeOffset:s.rangeOffset,forceMoveMarkers:s.forceMoveMarkers})}return t}findMatchesLineByLine(e,t,r,s){return this._pieceTree.findMatchesLineByLine(e,t,r,s)}static _getInverseEditRanges(e){const t=[];let r=0,s=0,a=null;for(let l=0,c=e.length;l<c;l++){const d=e[l];let u,g;a?a.range.endLineNumber===d.range.startLineNumber?(u=r,g=s+(d.range.startColumn-a.range.endColumn)):(u=r+(d.range.startLineNumber-a.range.endLineNumber),g=d.range.startColumn):(u=d.range.startLineNumber,g=d.range.startColumn);let f;if(d.text.length>0){const m=d.eolCount+1;m===1?f=new Range$2(u,g,u,g+d.firstLineLength):f=new Range$2(u,g,u+m-1,d.lastLineLength+1)}else f=new Range$2(u,g,u,g);r=f.endLineNumber,s=f.endColumn,t.push(f),a=d}return t}static _sortOpsAscending(e,t){const r=Range$2.compareRangesUsingEnds(e.range,t.range);return r===0?e.sortIndex-t.sortIndex:r}static _sortOpsDescending(e,t){const r=Range$2.compareRangesUsingEnds(e.range,t.range);return r===0?t.sortIndex-e.sortIndex:-r}}class PieceTreeTextBufferFactory{constructor(e,t,r,s,a,l,c,d,u){this._chunks=e,this._bom=t,this._cr=r,this._lf=s,this._crlf=a,this._containsRTL=l,this._containsUnusualLineTerminators=c,this._isBasicASCII=d,this._normalizeEOL=u}_getEOL(e){const t=this._cr+this._lf+this._crlf,r=this._cr+this._crlf;return t===0?e===1?"\n":"\r\n":r>t/2?"\r\n":"\n"}create(e){const t=this._getEOL(e),r=this._chunks;if(this._normalizeEOL&&(t==="\r\n"&&(this._cr>0||this._lf>0)||t==="\n"&&(this._cr>0||this._crlf>0)))for(let a=0,l=r.length;a<l;a++){const c=r[a].buffer.replace(/\r\n|\r|\n/g,t),d=createLineStartsFast(c);r[a]=new StringBuffer(c,d)}const s=new PieceTreeTextBuffer(r,this._bom,t,this._containsRTL,this._containsUnusualLineTerminators,this._isBasicASCII,this._normalizeEOL);return{textBuffer:s,disposable:s}}}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++}}}function observableSignal(o,e=DebugLocation.ofCaller()){return typeof o=="string"?new ObservableSignal(o,void 0,e):new ObservableSignal(void 0,o,e)}class ObservableSignal extends BaseObservable{get debugName(){var e;return(e=new DebugNameData(this._owner,this._debugName,void 0).getDebugName(this))!=null?e:"Observable Signal"}toString(){return this.debugName}constructor(e,t,r){super(r),this._debugName=e,this._owner=t}trigger(e,t){if(!e){transaction(r=>{this.trigger(r,t)},()=>"Trigger signal ".concat(this.debugName));return}for(const r of this._observers)e.updateObserver(r,this),r.handleChange(this,t)}get(){}}class LazyObservableValue extends BaseObservable{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!=null?e:"LazyObservableValue"}constructor(e,t,r,s){super(s),this._debugNameData=e,this._equalityComparator=r,this._isUpToDate=!0,this._deltas=[],this._updateCounter=0,this._value=t}get(){return this._update(),this._value}_update(){var e,t;if(!this._isUpToDate)if(this._isUpToDate=!0,this._deltas.length>0){for(const r of this._deltas){(e=getLogger())==null||e.handleObservableUpdated(this,{change:r,didChange:!0,oldValue:"(unknown)",newValue:this._value,hadValue:!0});for(const s of this._observers)s.handleChange(this,r)}this._deltas.length=0}else{(t=getLogger())==null||t.handleObservableUpdated(this,{change:void 0,didChange:!0,oldValue:"(unknown)",newValue:this._value,hadValue:!0});for(const r of this._observers)r.handleChange(this,void 0)}}_beginUpdate(){if(this._updateCounter++,this._updateCounter===1)for(const e of this._observers)e.beginUpdate(this)}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){this._update();const e=[...this._observers];for(const t of e)t.endUpdate(this)}}addObserver(e){const t=!this._observers.has(e)&&this._updateCounter>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this._observers.has(e)&&this._updateCounter>0;super.removeObserver(e),t&&e.endUpdate(this)}set(e,t,r){if(r===void 0&&this._equalityComparator(this._value,e))return;let s;t||(t=s=new TransactionImpl(()=>{},()=>"Setting ".concat(this.debugName)));try{if(this._isUpToDate=!1,this._setValue(e),r!==void 0&&this._deltas.push(r),t.updateObserver({beginUpdate:()=>this._beginUpdate(),endUpdate:()=>this._endUpdate(),handleChange:(a,l)=>{},handlePossibleChange:a=>{}},this),this._updateCounter>1)for(const a of this._observers)a.handlePossibleChange(this)}finally{s&&s.finish()}}toString(){return"".concat(this.debugName,": ").concat(this._value)}_setValue(e){this._value=e}}function observableValueOpts(o,e,t=DebugLocation.ofCaller()){var r,s;return o.lazy?new LazyObservableValue(new DebugNameData(o.owner,o.debugName,void 0),e,(r=o.equalsFn)!=null?r:strictEquals,t):new ObservableValue(new DebugNameData(o.owner,o.debugName,void 0),e,(s=o.equalsFn)!=null?s:strictEquals,t)}class AttachedViews{constructor(){this._onDidChangeVisibleRanges=new Emitter$1,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set,this._viewsChanged=observableSignal(this),this.visibleLineRanges=derivedOpts({owner:this,equalsFn:itemsEquals(itemEquals())},e=>(this._viewsChanged.read(e),LineRange.joinMany([...this._views].map(r=>{var s,a;return(a=(s=r.state.read(e))==null?void 0:s.visibleLineRanges)!=null?a:[]}))))}attachView(){const e=new AttachedViewImpl(t=>{this._onDidChangeVisibleRanges.fire({view:e,state:t})});return this._views.add(e),this._viewsChanged.trigger(void 0),e}detachView(e){this._views.delete(e),this._onDidChangeVisibleRanges.fire({view:e,state:void 0}),this._viewsChanged.trigger(void 0)}}class AttachedViewState{constructor(e,t){this.visibleLineRanges=e,this.stabilized=t}equals(e){return this===e?!0:!(!equals$2(this.visibleLineRanges,e.visibleLineRanges,(t,r)=>t.equals(r))||this.stabilized!==e.stabilized)}}class AttachedViewImpl{get state(){return this._state}constructor(e){this.handleStateChange=e,this._state=observableValueOpts({owner:this,equalsFn:equalsIfDefined((t,r)=>t.equals(r))},void 0)}setVisibleLines(e,t){const r=e.map(a=>new LineRange(a.startLineNumber,a.endLineNumber+1)),s=new AttachedViewState(r,t);this._state.set(s,void 0,void 0),this.handleStateChange(s)}}class AttachedViewHandler extends Disposable$1{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 AbstractSyntaxTokenBackend extends Disposable$1{get backgroundTokenizationState(){return this._backgroundTokenizationState}constructor(e,t){super(),this._languageIdCodec=e,this._textModel=t,this._onDidChangeTokens=this._register(new Emitter$1),this.onDidChangeTokens=this._onDidChangeTokens.event}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}}function gotoNextSibling(o,e){const t=o.gotoNextSibling(),r=e.gotoNextSibling();if(t!==r)throw new Error("Trees are out of sync");return t&&r}function gotoParent(o,e){const t=o.gotoParent(),r=e.gotoParent();if(t!==r)throw new Error("Trees are out of sync");return t&&r}function gotoNthChild(o,e,t){const r=o.gotoFirstChild(),s=e.gotoFirstChild();if(r!==s)throw new Error("Trees are out of sync");if(t===0)return r&&s;for(let a=1;a<=t;a++){const l=o.gotoNextSibling(),c=e.gotoNextSibling();if(l!==c)throw new Error("Trees are out of sync");if(!l||!c)return!1}return r&&s}function nextSiblingOrParentSibling(o,e){do{if(o.currentNode.nextSibling)return gotoNextSibling(o,e);o.currentNode.parent&&gotoParent(o,e)}while(o.currentNode.nextSibling||o.currentNode.parent);return!1}function getClosestPreviousNodes(o,e){const t=e.walk();t.resetTo(o);const r=o.currentNode;do if(t.currentNode.previousSibling&&t.currentNode.endIndex-t.currentNode.startIndex!==0)t.gotoPreviousSibling();else{for(;!t.currentNode.previousSibling&&t.currentNode.parent;)t.gotoParent();t.gotoPreviousSibling()}while(t.currentNode.endIndex>r.startIndex&&(t.currentNode.parent||t.currentNode.previousSibling)&&t.currentNode.id!==r.id);if(t.currentNode.id!==r.id&&t.currentNode.endIndex<=r.startIndex)return t.currentNode}var __decorate$2T=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2K=function(o,e){return function(t,r){e(t,r,o)}};let TreeSitterTree=class extends Disposable$1{constructor(e,t,r,s,a,l,c){super(),this.languageId=e,this._ranges=t,this._parser=r,this._parserClass=s,this.textModel=a,this._logService=l,this._telemetryService=c,this._tree=observableValue(this,void 0),this.tree=this._tree,this._treeLastParsedVersion=observableValue(this,-1),this.treeLastParsedVersion=this._treeLastParsedVersion,this._onDidChangeContentQueue=new TaskQueue$1,this._tree=observableValue(this,void 0),this.tree=this._tree,this._register(toDisposable(()=>{var d,u,g;(d=this._tree.get())==null||d.delete(),(u=this._lastFullyParsed)==null||u.delete(),(g=this._lastFullyParsedWithEdits)==null||g.delete(),this._parser.delete()})),this.handleContentChange(void 0,this._ranges)}handleContentChange(e,t){const r=this.textModel.getVersionId();let s=[];t&&(s=this._setRanges(t)),e&&this._applyEdits(e.changes),this._onDidChangeContentQueue.clearPending(),this._onDidChangeContentQueue.schedule(async()=>{if(this._store.isDisposed)return;const a=this._lastFullyParsed;let l;this._lastFullyParsedWithEdits&&this._lastFullyParsed&&(l=this._findChangedNodes(this._lastFullyParsedWithEdits,this._lastFullyParsed));const c=await this._parseAndUpdateTree(r);if(c){let d;l?a&&l&&(d=this._findTreeChanges(c,l,s)):this._ranges&&(d=this._ranges.map(g=>({newRange:new Range$2(g.startPosition.row+1,g.startPosition.column+1,g.endPosition.row+1,g.endPosition.column+1),oldRangeLength:g.endIndex-g.startIndex,newRangeStartOffset:g.startIndex,newRangeEndOffset:g.endIndex}))),d||(d=[{newRange:this.textModel.getFullModelRange(),newRangeStartOffset:0,newRangeEndOffset:this.textModel.getValueLength()}]);const u=this._tree.get();transaction(g=>{this._tree.set(c,g,{ranges:d,versionId:r}),this._treeLastParsedVersion.set(r,g)}),u==null||u.delete()}})}_applyEdits(e){var t,r;for(const s of e){const a=TextLength.ofRange(Range$2.lift(s.range)),l=TextLength.ofText(s.text),c=s.text.length===0?l:a.add(l),d={startIndex:s.rangeOffset,oldEndIndex:s.rangeOffset+s.rangeLength,newEndIndex:s.rangeOffset+s.text.length,startPosition:{row:s.range.startLineNumber-1,column:s.range.startColumn-1},oldEndPosition:{row:s.range.endLineNumber-1,column:s.range.endColumn-1},newEndPosition:{row:s.range.startLineNumber+c.lineCount-1,column:c.lineCount?c.columnCount:s.range.endColumn+c.columnCount}};(t=this._tree.get())==null||t.edit(d),(r=this._lastFullyParsedWithEdits)==null||r.edit(d)}}_findChangedNodes(e,t){var c;if(this._ranges&&this._ranges.every(d=>d.startPosition.row!==e.rootNode.startPosition.row)||e.rootNode.startPosition.row!==0)return[];const r=e.walk(),s=t.walk(),a=[];let l=!0;do if(r.currentNode.hasChanges){const d=r.currentNode.children,u=[],g=d.filter((f,m)=>f!=null&&f.hasChanges||s.currentNode.children.length<=m?(u.push(m),!0):!1);if(g.length===0||r.currentNode.hasError!==s.currentNode.hasError){for(;r.currentNode.parent&&l&&!r.currentNode.isNamed;)l=gotoParent(r,s);const f=r.currentNode,m=(c=getClosestPreviousNodes(r,e))!=null?c:f;a.push({startIndex:m.startIndex,endIndex:f.endIndex,startPosition:m.startPosition,endPosition:f.endPosition}),l=nextSiblingOrParentSibling(r,s)}else g.length>=1&&(l=gotoNthChild(r,s,u[0]))}else l=nextSiblingOrParentSibling(r,s);while(l);return r.delete(),s.delete(),a}_findTreeChanges(e,t,r){let s=0;const a=[];for(let l=0;l<t.length;l++){const c=t[l];if(a.length>0&&c.startIndex>=a[a.length-1].newRangeStartOffset&&c.endIndex<=a[a.length-1].newRangeEndOffset)continue;const d=e.walk(),u=()=>d.startIndex<c.startIndex&&d.endIndex>c.endIndex;for(;u();){let b=d.gotoFirstChild(),C=!1;for(;b;)if(u()&&d.currentNode.isNamed){C=!0;break}else b=d.gotoNextSibling();if(!C){d.gotoParent();break}if(d.currentNode.childCount===0)break}const g=d.currentNode.startPosition,f=d.currentNode.endPosition,m=d.currentNode.startIndex,_=d.currentNode.endIndex,v={newRange:new Range$2(g.row+1,g.column+1,f.row+1,f.column+1),newRangeStartOffset:m,newRangeEndOffset:_};s<r.length&&rangesIntersect(r[s],{startIndex:m,endIndex:_})?(r[s].startIndex<v.newRangeStartOffset&&(v.newRange=v.newRange.setStartPosition(r[s].startPosition.row+1,r[s].startPosition.column+1),v.newRangeStartOffset=r[s].startIndex),r[s].endIndex>v.newRangeEndOffset&&(v.newRange=v.newRange.setEndPosition(r[s].endPosition.row+1,r[s].endPosition.column+1),v.newRangeEndOffset=r[s].endIndex),s++):s<r.length&&r[s].endIndex<v.newRangeStartOffset&&a.push({newRange:new Range$2(r[s].startPosition.row+1,r[s].startPosition.column+1,r[s].endPosition.row+1,r[s].endPosition.column+1),newRangeStartOffset:r[s].startIndex,newRangeEndOffset:r[s].endIndex}),a.length>0&&a[a.length-1].newRangeEndOffset>=v.newRangeStartOffset?(a[a.length-1].newRange=Range$2.fromPositions(a[a.length-1].newRange.getStartPosition(),v.newRange.getEndPosition()),a[a.length-1].newRangeEndOffset=v.newRangeEndOffset):a.push(v)}return this._constrainRanges(a)}_constrainRanges(e){if(!this._ranges)return e;const t=[];let r=0,s=0;for(;r<e.length&&s<this._ranges.length;){const a=e[r],l=this._ranges[s];if(a.newRangeEndOffset<l.startIndex)r++;else if(a.newRangeStartOffset>l.endIndex)s++;else{const c=Math.max(a.newRangeStartOffset,l.startIndex),d=Math.min(a.newRangeEndOffset,l.endIndex),u=a.newRange.intersectRanges(new Range$2(l.startPosition.row+1,l.startPosition.column+1,l.endPosition.row+1,l.endPosition.column+1));t.push({newRange:u,newRangeEndOffset:d,newRangeStartOffset:c}),d<a.newRangeEndOffset?(a.newRange=Range$2.fromPositions(u.getEndPosition(),a.newRange.getEndPosition()),a.newRangeStartOffset=d+1):r++}}return t}async _parseAndUpdateTree(e){var r,s;const t=await this._parse();if(t)return(r=this._lastFullyParsed)==null||r.delete(),this._lastFullyParsed=t.copy(),(s=this._lastFullyParsedWithEdits)==null||s.delete(),this._lastFullyParsedWithEdits=t.copy(),t;this._tree.get()||this._parser.reset()}_parse(){let e="fullParse";return this._tree.get()&&(e="incrementalParse"),this._parseAndYield(e)}async _parseAndYield(e){let t=0,r=0;const s=this.textModel.getVersionId();let a;const l=newTimeOutProgressCallback();do{const c=performance.now();a=this._parser.parse((d,u)=>this._parseCallback(d),this._tree.get(),{progressCallback:l,includedRanges:this._ranges}),t+=performance.now()-c,r++,await new Promise(d=>setTimeout0(d))}while(!this._store.isDisposed&&!a&&s===this.textModel.getVersionId());return this._sendParseTimeTelemetry(e,t,r),a&&s===this.textModel.getVersionId()?a:void 0}_parseCallback(e){try{return this.textModel.getTextBuffer().getNearestChunk(e)}catch(t){this._logService.debug("Error getting chunk for tree-sitter parsing",t)}}_setRanges(e){const t=[];if(this._ranges)for(const r of e){let s=!1;for(let a=0;a<this._ranges.length;a++){const l=this._ranges[a];if(rangesEqual(l,r)||rangesIntersect(l,r)){s=!0;break}}s||t.push(r)}else t.push(...e);return this._ranges=e,t}_sendParseTimeTelemetry(e,t,r){this._logService.debug("Tree parsing (".concat(e,") took ").concat(t," ms and ").concat(r," passes.")),e==="fullParse"?this._telemetryService.publicLog2("treeSitter.fullParse",{languageId:this.languageId,time:t,passes:r}):this._telemetryService.publicLog2("treeSitter.incrementalParse",{languageId:this.languageId,time:t,passes:r})}createParsedTreeSync(e){const t=new this._parserClass;t.setLanguage(this._parser.language);const r=t.parse(e);return t.delete(),r!=null?r:void 0}};TreeSitterTree=__decorate$2T([__param$2K(5,ILogService),__param$2K(6,ITelemetryService)],TreeSitterTree);function newTimeOutProgressCallback(){let o=performance.now();return function(t){const r=performance.now();return r-o>50?(o=r,!0):!1}}function rangesEqual(o,e){return o.startPosition.row===e.startPosition.row&&o.startPosition.column===e.startPosition.column&&o.endPosition.row===e.endPosition.row&&o.endPosition.column===e.endPosition.column&&o.startIndex===e.startIndex&&o.endIndex===e.endIndex}function rangesIntersect(o,e){return o.startIndex<=e.startIndex&&o.endIndex>=e.startIndex||e.startIndex<=o.startIndex&&e.endIndex>=o.startIndex}const 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 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,r){if(e>=this._store.length)return;if(t===0){this.insert(e,r);return}else if(r===0){this.delete(e,t);return}const s=this._store.slice(0,e),a=this._store.slice(e+t),l=arrayFill(r,this._default);this._store=s.concat(l,a)}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 r=[];for(let s=0;s<t;s++)r[s]=this._default;this._store=arrayInsert(this._store,e,r)}}function arrayFill(o,e){const t=[];for(let r=0;r<o;r++)t[r]=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 r=this._tokens[this._tokens.length-1];if(r.endLineNumber+1===e){r.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,r,s){super(e,t),this._textModel=r,this._languageIdCodec=s}updateTokensUntilLine(e,t){const r=this._textModel.getLanguageId();for(;;){const s=this.getFirstInvalidLine();if(!s||s.lineNumber>t)break;const a=this._textModel.getLineContent(s.lineNumber),l=safeTokenize(this._languageIdCodec,r,this.tokenizationSupport,a,!0,s.startState);e.add(s.lineNumber,l.tokens),this.store.setEndState(s.lineNumber,l.endState)}}getTokenTypeIfInsertingCharacter(e,t){const r=this.getStartState(e.lineNumber);if(!r)return 0;const s=this._textModel.getLanguageId(),a=this._textModel.getLineContent(e.lineNumber),l=a.substring(0,e.column-1)+t+a.substring(e.column-1),c=safeTokenize(this._languageIdCodec,s,this.tokenizationSupport,l,!0,r),d=new LineTokens(c.tokens,l,this._languageIdCodec);if(d.getCount()===0)return 0;const u=d.findTokenIndexAtOffset(e.column-1);return d.getStandardTokenType(u)}tokenizeLinesAt(e,t){const r=this.getStartState(e);if(!r)return null;const s=this._textModel.getLanguageId(),a=[];let l=r;for(const c of t){const d=safeTokenize(this._languageIdCodec,s,this.tokenizationSupport,c,!0,l);a.push(new LineTokens(d.tokens,c,this._languageIdCodec)),l=d.endState}return a}hasAccurateTokensForLine(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e<t}isCheapToTokenize(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e<t||e===t&&this._textModel.getLineLength(e)<2048}tokenizeHeuristically(e,t,r){if(r<=this.store.getFirstInvalidEndStateLineNumberOrMax())return{heuristicTokens:!1};if(t<=this.store.getFirstInvalidEndStateLineNumberOrMax())return this.updateTokensUntilLine(e,r),{heuristicTokens:!1};let s=this.guessStartState(t);const a=this._textModel.getLanguageId();for(let l=t;l<=r;l++){const c=this._textModel.getLineContent(l),d=safeTokenize(this._languageIdCodec,a,this.tokenizationSupport,c,!0,s);e.add(l,d.tokens),s=d.endState}return{heuristicTokens:!0}}guessStartState(e){let{likelyRelevantLines:t,initialState:r}=findLikelyRelevantLines(this._textModel,e,this);r||(r=this.tokenizationSupport.getInitialState());const s=this._textModel.getLanguageId();let a=r;for(const l of t)a=safeTokenize(this._languageIdCodec,s,this.tokenizationSupport,l,!1,a).endState;return a}}function findLikelyRelevantLines(o,e,t){let r=o.getLineFirstNonWhitespaceColumn(e);const s=[];let a=null;for(let l=e-1;r>1&&l>=1;l--){const c=o.getLineFirstNonWhitespaceColumn(l);if(c!==0&&c<r&&(s.push(o.getLineContent(l)),r=c,a=t==null?void 0:t.getStartState(l),a))break}return s.reverse(),{likelyRelevantLines:s,initialState:a!=null?a:void 0}}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 r=this._tokenizationStateStore.setEndState(e,t);return r&&e<this.lineCount&&this._invalidEndStatesLineNumbers.addRange(new OffsetRange(e+1,e+2)),r}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[r]=countEOL(t.text);this.acceptChange(new LineRange(t.range.startLineNumber,t.range.endLineNumber+1),r+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 r=this.getStartState(t,e);if(!r)throw new BugIndicatingError("Start state must be defined");return{lineNumber:t,startState:r}}}class TokenizationStateStore{constructor(){this._lineEndStates=new FixedArray(null)}getEndState(e){return this._lineEndStates.get(e)}setEndState(e,t){const r=this._lineEndStates.get(e);return r&&r.equals(t)?!1:(this._lineEndStates.set(e,t),!0)}acceptChange(e,t){let r=e.length;t>0&&r>0&&(r--,t--),this._lineEndStates.replace(e.startLineNumber,r,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(r=>r.contains(e));if(t!==-1){const r=this._ranges[t];r.start===e?r.endExclusive===e+1?this._ranges.splice(t,1):this._ranges[t]=new OffsetRange(e+1,r.endExclusive):r.endExclusive===e+1?this._ranges[t]=new OffsetRange(r.start,e):this._ranges.splice(t,1,new OffsetRange(r.start,e),new OffsetRange(e+1,r.endExclusive))}}addRange(e){OffsetRange.addRange(e,this._ranges)}addRangeAndResize(e,t){let r=0;for(;!(r>=this._ranges.length||e.start<=this._ranges[r].endExclusive);)r++;let s=r;for(;!(s>=this._ranges.length||e.endExclusive<this._ranges[s].start);)s++;const a=t-e.length;for(let l=s;l<this._ranges.length;l++)this._ranges[l]=this._ranges[l].delta(a);if(r===s){const l=new OffsetRange(e.start,e.start+t);l.isEmpty||this._ranges.splice(r,0,l)}else{const l=Math.min(e.start,this._ranges[r].start),c=Math.max(e.endExclusive,this._ranges[s-1].endExclusive),d=new OffsetRange(l,c+a);d.isEmpty?this._ranges.splice(r,s-r):this._ranges.splice(r,s-r,d)}}toString(){return this._ranges.map(e=>e.toString()).join(" + ")}}function safeTokenize(o,e,t,r,s,a){let l=null;if(t)try{l=t.tokenizeEncoded(r,s,a.clone())}catch(c){onUnexpectedError(c)}return l||(l=nullTokenizeEncoded(o.encodeLanguageId(e),a)),LineTokens.convertToEndOffset(l.tokens,r.length),l}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,runWhenGlobalIdle(e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)}))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),r=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()<t?setTimeout0(r):this._beginBackgroundTokenization())};r()}_backgroundTokenizeForAtLeast1ms(){const e=this._tokenizerWithStateStore._textModel.getLineCount(),t=new ContiguousMultilineTokensBuilder,r=StopWatch.create(!1);do if(r.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 r;const t=(r=this._tokenizerWithStateStore)==null?void 0:r.getFirstInvalidLine();return t?(this._tokenizerWithStateStore.updateTokensUntilLine(e,t.lineNumber),t.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(e,t))}}class ListNode{get children(){return this._children}get length(){return this._length}constructor(e){this.height=e,this._children=[],this._length=0}static create(e,t){const r=new ListNode(e.height+1);return r.appendChild(e),r.appendChild(t),r}canAppendChild(){return this._children.length<3}appendChild(e){if(!this.canAppendChild())throw new Error("Cannot insert more than 3 children in a ListNode");this._children.push(e),this._length+=e.length,this._updateParentLength(e.length),isLeaf(e)||(e.parent=this)}_updateParentLength(e){let t=this.parent;for(;t;)t._length+=e,t=t.parent}unappendChild(){const e=this._children.pop();return this._length-=e.length,this._updateParentLength(-e.length),e}prependChild(e){if(this._children.length>=3)throw new Error("Cannot prepend more than 3 children in a ListNode");this._children.unshift(e),this._length+=e.length,this._updateParentLength(e.length),isLeaf(e)||(e.parent=this)}unprependChild(){const e=this._children.shift();return this._length-=e.length,this._updateParentLength(-e.length),e}lastChild(){return this._children[this._children.length-1]}dispose(){this._children.splice(0,this._children.length)}}var TokenQuality;(function(o){o[o.None=0]="None",o[o.ViewportGuess=1]="ViewportGuess",o[o.EditGuess=2]="EditGuess",o[o.Accurate=3]="Accurate"})(TokenQuality||(TokenQuality={}));function isLeaf(o){return o.token!==void 0}function append(o,e){let t=o;const r=[];let s;for(;;){if(e.height===t.height){s=e;break}if(isLeaf(t))throw new Error("unexpected");r.push(t),t=t.lastChild()}for(let a=r.length-1;a>=0;a--){const l=r[a];s&&(l.children.length>=3?s=ListNode.create(l.unappendChild(),s):(l.appendChild(s),s=void 0))}if(s){const a=new ListNode(s.height+1);return a.appendChild(o),a.appendChild(s),a}else return o}function prepend(o,e){let t=o;const r=[];for(;e.height!==t.height;){if(isLeaf(t))throw new Error("unexpected");r.push(t),t=t.children[0]}let s=e;for(let a=r.length-1;a>=0;a--){const l=r[a];s&&(l.children.length>=3?s=ListNode.create(s,l.unprependChild()):(l.prependChild(s),s=void 0))}return s?ListNode.create(s,o):o}function concat$1(o,e){return o.height===e.height?ListNode.create(o,e):o.height>e.height?append(o,e):prepend(e,o)}class TokenStore{constructor(e){this._textModel=e,this._root=this.createEmptyRoot()}createEmptyRoot(){return{length:this._textModel.getValueLength(),token:0,height:0,tokenQuality:TokenQuality.None}}buildStore(e,t){this._root=this.createFromUpdates(e,t)}createFromUpdates(e,t){if(e.length===0)return this.createEmptyRoot();let r={length:e[0].length,token:e[0].token,height:0,tokenQuality:t};for(let s=1;s<e.length;s++)r=append(r,{length:e[s].length,token:e[s].token,height:0,tokenQuality:t});return r}update(e,t,r){t.length!==0&&this.replace(e,t[0].startOffsetInclusive,t,r)}delete(e,t){this.replace(e,t,[],TokenQuality.EditGuess)}replace(e,t,r,s){const a=t+e,l=[],c=[],d=[{node:this._root,offset:0}];for(;d.length>0;){const f=d.pop(),m=f.offset;if(m<t&&m+f.node.length<=t){isLeaf(f.node)||(f.node.parent=void 0),l.push(f.node);continue}else isLeaf(f.node)&&m<t&&l.push({length:t-m,token:f.node.token,height:0,tokenQuality:f.node.tokenQuality});if(!(t<=m&&m+f.node.length<=a)){if(m>=a){isLeaf(f.node)||(f.node.parent=void 0),c.push(f.node);continue}else if(isLeaf(f.node)&&m+f.node.length>a){c.push({length:m+f.node.length-a,token:f.node.token,height:0,tokenQuality:f.node.tokenQuality});continue}if(!isLeaf(f.node)){let _=m+f.node.length;for(let v=f.node.children.length-1;v>=0;v--)_-=f.node.children[v].length,d.push({node:f.node.children[v],offset:_})}}}let u;r.length>0?u=l.concat(this.createFromUpdates(r,s),c):u=l.concat(c);let g=u[0];for(let f=1;f<u.length;f++)g=concat$1(g,u[f]);this._root=g!=null?g:this.createEmptyRoot()}traverseInOrderInRange(e,t,r){const s=[{node:this._root,offset:0}];for(;s.length>0;){const{node:a,offset:l}=s.pop();if(!(l+a.length<=e||l>=t)){if(r(a,l))return;if(!isLeaf(a)){let d=l+a.length;for(let u=a.children.length-1;u>=0;u--)d-=a.children[u].length,s.push({node:a.children[u],offset:d})}}}}getTokenAt(e){let t;return this.traverseInOrderInRange(e,this._root.length,(r,s)=>isLeaf(r)?(t={token:r.token,startOffsetInclusive:s,length:r.length},!0):!1),t}getTokensInRange(e,t){const r=[];return this.traverseInOrderInRange(e,t,(s,a)=>{if(isLeaf(s)){let l=s.length,c=a;a<e&&a+s.length>t?(c=e,l=t-e):a<e?(l-=e-a,c=e):a+s.length>t&&(l-=a+s.length-t),r.push({token:s.token,startOffsetInclusive:c,length:l})}return!1}),r}markForRefresh(e,t){this.traverseInOrderInRange(e,t,r=>(isLeaf(r)&&(r.tokenQuality=TokenQuality.None),!1))}rangeHasTokens(e,t,r){let s=!0;return this.traverseInOrderInRange(e,t,a=>(isLeaf(a)&&a.tokenQuality<r&&(s=!1),!1)),s}rangeNeedsRefresh(e,t){let r=!1;return this.traverseInOrderInRange(e,t,s=>(isLeaf(s)&&s.tokenQuality!==TokenQuality.Accurate&&(r=!0),!1)),r}getNeedsRefresh(){const e=[];return this.traverseInOrderInRange(0,this._textModel.getValueLength(),(t,r)=>(isLeaf(t)&&t.tokenQuality!==TokenQuality.Accurate&&(e.length>0&&e[e.length-1].endOffset===r?e[e.length-1].endOffset+=t.length:e.push({startOffset:r,endOffset:r+t.length})),!1)),e}dispose(){const e=[[this._root,!1]];for(;e.length>0;){const[t,r]=e.pop();if(!isLeaf(t))if(r)t.dispose(),t.parent=void 0;else{e.push([t,!0]);for(let s=t.children.length-1;s>=0;s--)e.push([t.children[s],!1])}}this._root=void 0}}const ITreeSitterThemeService=createDecorator("treeSitterThemeService");function recordChanges(o){return{createChangeSummary:e=>({changes:[]}),handleChange(e,t){for(const r in o)e.didChange(o[r])&&t.changes.push({key:r,change:e.change});return!0},beforeUpdate(e,t){for(const r in o){if(r==="changes")throw new BugIndicatingError('property name "changes" is reserved for change tracking');t[r]=o[r].read(e)}}}}function recordChangesLazy(o){let e;return{createChangeSummary:t=>({changes:[]}),handleChange(t,r){e||(e=o());for(const s in e)t.didChange(e[s])&&r.changes.push({key:s,change:t.change});return!0},beforeUpdate(t,r){e||(e=o());for(const s in e){if(s==="changes")throw new BugIndicatingError('property name "changes" is reserved for change tracking');r[s]=e[s].read(t)}}}}var __decorate$2S=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2J=function(o,e){return function(t,r){e(t,r,o)}};let TreeSitterTokenizationImpl=class extends Disposable$1{get _textModel(){return this._tree.textModel}constructor(e,t,r,s,a){super(),this._tree=e,this._highlightingQueries=t,this._languageIdCodec=r,this._visibleLineRanges=s,this._treeSitterThemeService=a,this._onDidChangeTokens=this._register(new Emitter$1),this.onDidChangeTokens=this._onDidChangeTokens.event,this._onDidCompleteBackgroundTokenization=this._register(new Emitter$1),this.onDidChangeBackgroundTokenization=this._onDidCompleteBackgroundTokenization.event,this._encodedLanguageId=this._languageIdCodec.encodeLanguageId(this._tree.languageId),this._register(runOnChange(this._treeSitterThemeService.onChange,()=>{this._updateTheme()})),this._tokenStore=this._register(new TokenStore(this._textModel)),this._accurateVersion=this._textModel.getVersionId(),this._guessVersion=this._textModel.getVersionId(),this._tokenStore.buildStore(this._createEmptyTokens(),TokenQuality.None),this._register(autorun(l=>{const c=this._visibleLineRanges.read(l);this._parseAndTokenizeViewPort(c)})),this._register(autorunHandleChanges({owner:this,changeTracker:recordChanges({tree:this._tree.tree})},(l,c)=>{var u;const d=(u=c.changes.at(0))==null?void 0:u.change;if(c.changes.length>1)throw new BugIndicatingError("The tree changed twice in one transaction. This is currently not supported and should not happen.");if(!d)c.tree&&this._firstTreeUpdate(this._tree.treeLastParsedVersion.read(l));else{if(this.hasTokens())for(const g of d.ranges)this._markForRefresh(g.newRange);this.hasTokens()?this._handleTreeUpdate(d.ranges,d.versionId):this._firstTreeUpdate(d.versionId)}}))}handleContentChanged(e){var t;this._guessVersion=e.versionId;for(const r of e.changes)if(r.text.length>r.rangeLength){const s=r.rangeOffset>0?r.rangeOffset-1:r.rangeOffset,a=this._tokenStore.getTokenAt(s);let l;a?(l={startOffsetInclusive:a.startOffsetInclusive,length:a.length+r.text.length-r.rangeLength,token:a.token},this._tokenStore.markForRefresh(s,r.rangeOffset+(r.text.length>r.rangeLength?r.text.length:r.rangeLength))):l={startOffsetInclusive:s,length:r.text.length,token:0},this._tokenStore.update((t=a==null?void 0:a.length)!=null?t:0,[l],TokenQuality.EditGuess)}else if(r.text.length<r.rangeLength){const s=r.rangeLength-r.text.length;this._tokenStore.delete(s,r.rangeOffset)}}getLineTokens(e){const t=this._textModel.getLineContent(e),r=this.getTokens(e);return new LineTokens(r,t,this._languageIdCodec)}_createEmptyTokens(){const e=this._emptyToken(),t=this._textModel.getValueLength();return[this._emptyTokensForOffsetAndLength(0,t,e)]}_emptyToken(){return this._treeSitterThemeService.findMetadata([],this._encodedLanguageId,!1,void 0)}_emptyTokensForOffsetAndLength(e,t,r){return{token:r,length:e+t,startOffsetInclusive:0}}hasAccurateTokensForLine(e){return this.hasTokens(new Range$2(e,1,e,this._textModel.getLineMaxColumn(e)))}tokenizeLinesAt(e,t){const r=this._guessTokensForLinesContent(e,t),s=[];if(!r)return null;for(let a=0;a<r.length;a++)s.push(new LineTokens(r[a],t[a],this._languageIdCodec));return s}_rangeHasTokens(e,t){return this._tokenStore.rangeHasTokens(this._textModel.getOffsetAt(e.getStartPosition()),this._textModel.getOffsetAt(e.getEndPosition()),t)}hasTokens(e){return!e||this._guessVersion===this._accurateVersion?!0:!this._tokenStore.rangeNeedsRefresh(this._textModel.getOffsetAt(e.getStartPosition()),this._textModel.getOffsetAt(e.getEndPosition()))}getTokens(e){const t=this._textModel.getOffsetAt({lineNumber:e,column:1}),r=this._textModel.getOffsetAt({lineNumber:e,column:this._textModel.getLineLength(e)+1}),s=this._tokenStore.getTokensInRange(t,r),a=new Uint32Array(s.length*2);for(let l=0;l<s.length;l++)a[l*2]=s[l].startOffsetInclusive-t+s[l].length,a[l*2+1]=s[l].token;return a}getTokensInRange(e,t,r,s){const a=s?this._tokenizeCapturesWithMetadata(s,t,r):this._tokenize(e,t,r);if(a!=null&&a.endOffsetsAndMetadata)return this._rangeTokensAsUpdates(t,a.endOffsetsAndMetadata)}_updateTokensInStore(e,t,r){this._accurateVersion=e;for(const s of t){const a=s.newTokens.length>0?s.newTokens[s.newTokens.length-1]:void 0;let l;a&&this._guessVersion>=e?l=a.startOffsetInclusive+a.length-s.newTokens[0].startOffsetInclusive:s.oldRangeLength?l=s.oldRangeLength:l=0,this._tokenStore.update(l,s.newTokens,r)}}_markForRefresh(e){this._tokenStore.markForRefresh(this._textModel.getOffsetAt(e.getStartPosition()),this._textModel.getOffsetAt(e.getEndPosition()))}_getNeedsRefresh(){const e=this._tokenStore.getNeedsRefresh();return e?e.map(t=>({range:Range$2.fromPositions(this._textModel.getPositionAt(t.startOffset),this._textModel.getPositionAt(t.endOffset)),startOffset:t.startOffset,endOffset:t.endOffset})):[]}_parseAndTokenizeViewPort(e){const t=e.map(r=>r.toInclusiveRange()).filter(isDefined);for(const r of t){const s=this._textModel.getOffsetAt(r.getStartPosition()),a=this._textModel.getOffsetAt(r.getEndPosition()),l=this._textModel.getVersionId();if(this._rangeHasTokens(r,TokenQuality.ViewportGuess))continue;const c=this._textModel.getValueInRange(r),d=this._forceParseAndTokenizeContent(r,s,a,c,!0);if(!d||this._rangeHasTokens(r,TokenQuality.ViewportGuess)||d.length===0)continue;const u=d[d.length-1],g=u.startOffsetInclusive+u.length-d[0].startOffsetInclusive;this._updateTokensInStore(l,[{newTokens:d,oldRangeLength:g}],TokenQuality.ViewportGuess),this._onDidChangeTokens.fire({changes:{semanticTokensApplied:!1,ranges:[{fromLineNumber:r.startLineNumber,toLineNumber:r.endLineNumber}]}})}}_guessTokensForLinesContent(e,t){if(t.length===0)return;const r=t.join(this._textModel.getEOL()),s=new Range$2(1,1,e+t.length,t[t.length-1].length+1),a=this._textModel.getOffsetAt({lineNumber:e,column:1}),l=this._forceParseAndTokenizeContent(s,a,a+r.length,r,!1);if(!l)return;const c=new Array(t.length);let d=0,u=0,g=0;for(let f=0;f<t.length;f++){const m=[];let _=!1;for(let v=d;!_&&v<l.length;v++){const b=l[v],C=b.endOffset-g,y=u-g;if(C<=t[f].length)m.push({endOffset:C,metadata:b.metadata}),d++;else if(y<t[f].length){const S={endOffset:t[f].length,metadata:b.metadata};m.push(S),_=!0}else _=!0;u=b.endOffset}c[f]=this._endOffsetTokensToUint32Array(m),g+=t[f].length+this._textModel.getEOL().length}return c}_forceParseAndTokenizeContent(e,t,r,s,a){const l=findLikelyRelevantLines(this._textModel,e.startLineNumber).likelyRelevantLines,c=l.join(this._textModel.getEOL()),d=this._tree.createParsedTreeSync("".concat(c).concat(s));if(!d)return;const u=new Range$2(1,1,e.endLineNumber-e.startLineNumber+1+l.length,e.endColumn),g=this.captureAtRange(u),f=this._tokenizeCapturesWithMetadata(g,c.length,r-t+c.length);if(d.delete(),!!f)return a?this._rangeTokensAsUpdates(t,f.endOffsetsAndMetadata,c.length):f.endOffsetsAndMetadata}_firstTreeUpdate(e){return this._setViewPortTokens(e)}_setViewPortTokens(e){const t=this._visibleLineRanges.get().map(r=>{const s=r.toInclusiveRange();if(!s)return;const a=this._textModel.getOffsetAt(s.getStartPosition()),l=this._textModel.getOffsetAt(s.getEndPosition());return{newRange:s,newRangeEndOffset:l,newRangeStartOffset:a}}).filter(isDefined);return this._handleTreeUpdate(t,e)}_handleTreeUpdate(e,t){const r=[];for(let l=0;l<e.length;l++)if(e[l].newRange.endLineNumber-e[l].newRange.startLineNumber>1e3){const d=e[l].newRange.endLineNumber;let u=e[l].newRange.startLineNumber,g=e[l].newRange.startColumn,f=u+1e3;do{const m=new Position$1(u,g),_=f===e[l].newRange.endLineNumber?e[l].newRange.endColumn:this._textModel.getLineMaxColumn(f),v=new Position$1(f,_),b=Range$2.fromPositions(m,v);r.push({range:b,startOffset:this._textModel.getOffsetAt(b.getStartPosition()),endOffset:this._textModel.getOffsetAt(b.getEndPosition())}),u=f+1,g=1,f<d&&f+1e3>d?f=d:f=f+1e3}while(f<=d)}else if(l===0||r[l-1].endOffset<e[l].newRangeStartOffset)r.push({range:e[l].newRange,startOffset:e[l].newRangeStartOffset,endOffset:e[l].newRangeEndOffset});else if(r[l-1].endOffset<e[l].newRangeEndOffset){const d=this._textModel.getPositionAt(r[l-1].endOffset+1),u=new Range$2(d.lineNumber,d.column,e[l].newRange.endLineNumber,e[l].newRange.endColumn);r.push({range:u,startOffset:r[l-1].endOffset+1,endOffset:e[l].newRangeEndOffset})}const a=r.map(l=>this._getCaptures(l.range));return this._updateTreeForRanges(r,t,a).then(()=>{!this._textModel.isDisposed()&&this._tree.treeLastParsedVersion.get()===this._textModel.getVersionId()&&this._refreshNeedsRefresh(t)})}async _updateTreeForRanges(e,t,r){let s;for(let a=0;a<e.length&&!(!this._textModel.isDisposed()&&t!==this._textModel.getVersionId());a++){const l=r[a],c=e[a],d=this.getTokensInRange(c.range,c.startOffset,c.endOffset,l);d?s={newTokens:d}:s={newTokens:[]},this._updateTokensInStore(t,[s],TokenQuality.Accurate),this._onDidChangeTokens.fire({changes:{semanticTokensApplied:!1,ranges:[{fromLineNumber:c.range.getStartPosition().lineNumber,toLineNumber:c.range.getEndPosition().lineNumber}]}}),await new Promise(u=>setTimeout0(u))}this._onDidCompleteBackgroundTokenization.fire()}_refreshNeedsRefresh(e){const t=this._getNeedsRefresh();if(t.length===0)return;const r=new Array(t.length);for(let s=0;s<t.length;s++){const a=t[s];r[s]={newRange:a.range,newRangeStartOffset:a.startOffset,newRangeEndOffset:a.endOffset}}this._handleTreeUpdate(r,e)}_rangeTokensAsUpdates(e,t,r){const s=[];let a=0;for(const l of t){if(l.endOffset<=a||r&&l.endOffset<r)continue;let c;r&&a<r?c={startOffsetInclusive:e+r,length:l.endOffset-r,token:l.metadata}:c={startOffsetInclusive:e+a,length:l.endOffset-a,token:l.metadata},s.push(c),a=l.endOffset}return s}_updateTheme(){const e=this._textModel.getFullModelRange();this._markForRefresh(e),this._parseAndTokenizeViewPort(this._visibleLineRanges.get())}captureAtRange(e){const t=this._tree.tree.get();return t?this._highlightingQueries.captures(t.rootNode,{startPosition:{row:e.startLineNumber-1,column:e.startColumn-1},endPosition:{row:e.endLineNumber-1,column:e.endColumn-1}}).map(r=>({name:r.name,text:r.node.text,node:{startIndex:r.node.startIndex,endIndex:r.node.endIndex,startPosition:{lineNumber:r.node.startPosition.row+1,column:r.node.startPosition.column+1},endPosition:{lineNumber:r.node.endPosition.row+1,column:r.node.endPosition.column+1}},encodedLanguageId:this._encodedLanguageId})):[]}captureAtRangeWithInjections(e){const t=this.captureAtRange(e);for(let r=0;r<t.length;r++){const s=t[r],a=s.node.startPosition.lineNumber,l=s.node.endPosition.lineNumber,c=s.node.startPosition.column,d=s.node.endPosition.column,u=a>e.startLineNumber&&a<e.endLineNumber?a:e.startLineNumber,g=l>e.startLineNumber&&l<e.endLineNumber?l:e.endLineNumber,f=a===e.startLineNumber?c<e.startColumn?e.startColumn:c:a<e.startLineNumber?e.startColumn:c,m=l===e.endLineNumber?d>e.endColumn?e.endColumn:d:l>e.endLineNumber?e.endColumn:d,_=new Range$2(u,f,g,m),v=this._getInjectionCaptures(s,_);v&&v.length>0&&(t.splice(r+1,0,...v),r+=v.length)}return t}tokenizeEncoded(e){const t=this._tokenizeEncoded(e);if(!t)return;const r=this._rangeTokensAsUpdates(this._textModel.getOffsetAt({lineNumber:e,column:1}),t.result);t.versionId===this._textModel.getVersionId()&&this._updateTokensInStore(t.versionId,[{newTokens:r,oldRangeLength:this._textModel.getLineLength(e)}],TokenQuality.Accurate)}_getCaptures(e){return this.captureAtRangeWithInjections(e)}_tokenize(e,t,r){const s=this._getCaptures(e),a=this._tokenizeCapturesWithMetadata(s,t,r);if(a)return{...a,versionId:this._tree.treeLastParsedVersion.get()}}_createTokensFromCaptures(e,t,r){const s=this._tree.tree.get(),a=StopWatch.create(),l=r-t,c=this._languageIdCodec.encodeLanguageId(this._tree.languageId),d=TREESITTER_BASE_SCOPES[this._tree.languageId]||"source";if(e.length===0)return s?(a.stop(),{endOffsets:[{endOffset:l,scopes:[],encodedLanguageId:c}],captureTime:a.elapsed()}):void 0;const u=Array(e.length);u.fill({endOffset:0,scopes:[d],encodedLanguageId:c});let g=0;const f=()=>{u.push({endOffset:0,scopes:[d],encodedLanguageId:c})},m=(b,C)=>b.name.includes("punctuation")&&b.text?Array.from(b.text.matchAll(BRACKETS)).map(y=>C+y.index):void 0,_=(b,C,y,S)=>{if(S!==void 0){const w=u[S].scopes;let E=u[S].bracket;if((S>0?u[S-1].endOffset:0)!==C){let L;if(E&&E.length>0){L=[];const k=[];for(let D=0;D<E.length;D++){const I=E[D];I<C?L.push(I):I>y&&k.push(I)}L.length===0&&(L=void 0),k.length===0?E=void 0:E=k}u.splice(S,0,{endOffset:C,scopes:[...w],bracket:L,encodedLanguageId:b.encodedLanguageId}),S++,f(),g++}u.splice(S,0,{endOffset:y,scopes:[...w,b.name],bracket:m(b,C),encodedLanguageId:b.encodedLanguageId}),u[g].bracket=E}else u[g]={endOffset:y,scopes:[d,b.name],bracket:m(b,C),encodedLanguageId:b.encodedLanguageId};g++};for(let b=0;b<e.length;b++){const C=e[b],y=C.node.endIndex<r?C.node.endIndex<t?t:C.node.endIndex:r,S=C.node.startIndex<t?t:C.node.startIndex,w=y-t;let E;const x=y-S;b>0?E=u[g-1].endOffset:E=S-t-1;const L=w-x;if(E>=0&&E<L&&(u[g]={endOffset:L,scopes:[d],encodedLanguageId:this._encodedLanguageId},g++,f()),!(x<0))if(E>=w){let k=g-1,D=u[k].endOffset,I=k>=2?u[k-1].endOffset:0;do{if(I+x===D){if(I===L){u[k].scopes.push(C.name);const T=u[k].bracket;u[k].bracket=T&&T.length>0?T:m(C,L)}}else if(I<=L){_(C,L,w,k);break}k--,I=k>=1?u[k-1].endOffset:0,D=k>=0?u[k].endOffset:0}while(D>L)}else _(C,L,w)}u[g-1].endOffset<l&&l-u[g-1].endOffset>0&&(f(),u[g]={endOffset:l,scopes:u[g].scopes,encodedLanguageId:this._encodedLanguageId},g++);for(let b=0;b<u.length;b++)if(u[b].endOffset===0&&b!==0){u.splice(b,u.length-b);break}const v=a.elapsed();return{endOffsets:u,captureTime:v}}_getInjectionCaptures(e,t){return[]}_tokenizeCapturesWithMetadata(e,t,r){const s=StopWatch.create(),a=this._createTokensFromCaptures(e,t,r);if(!a)return;const l=a.endOffsets;for(let d=0;d<l.length;d++){const u=l[d];u.metadata=this._treeSitterThemeService.findMetadata(u.scopes,u.encodedLanguageId,!!u.bracket&&u.bracket.length>0,void 0)}const c=s.elapsed();return{endOffsetsAndMetadata:l,captureTime:a.captureTime,metadataTime:c}}_tokenizeEncoded(e){const t=this._textModel.getOffsetAt({lineNumber:e,column:1}),r=this._textModel.getLineCount(),s=e+1<=r?this._textModel.getOffsetAt({lineNumber:e+1,column:1}):this._textModel.getValueLength(),a=s-t,l=this._tokenize(new Range$2(e,1,e,a+1),t,s);if(l)return{result:l.endOffsetsAndMetadata,captureTime:l.captureTime,metadataTime:l.metadataTime,versionId:l.versionId}}_endOffsetTokensToUint32Array(e){const t=new Uint32Array(e.length*2);for(let r=0;r<e.length;r++)t[r*2]=e[r].endOffset,t[r*2+1]=e[r].metadata;return t}};TreeSitterTokenizationImpl=__decorate$2S([__param$2J(4,ITreeSitterThemeService)],TreeSitterTokenizationImpl);const TREESITTER_BASE_SCOPES={css:"source.css",typescript:"source.ts",ini:"source.ini",regex:"source.regex"},BRACKETS=/[\{\}\[\]\<\>\(\)]/g,ITreeSitterLibraryService=createDecorator("treeSitterLibraryService");class ObservablePromise{constructor(e){this._value=observableValue(this,void 0),this.promiseResult=this._value,this.promise=e.then(t=>(transaction(r=>{this._value.set(new PromiseResult(t,void 0),r)}),t),t=>{throw transaction(r=>{this._value.set(new PromiseResult(void 0,t),r)}),t})}}class PromiseResult{constructor(e,t){this.data=e,this.error=t}getDataOrThrow(){if(this.error)throw this.error;return this.data}}var __decorate$2R=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2I=function(o,e){return function(t,r){e(t,r,o)}};let TreeSitterSyntaxTokenBackend=class extends AbstractSyntaxTokenBackend{constructor(e,t,r,s,a,l){super(t,r),this._languageIdObs=e,this._treeSitterLibraryService=a,this._instantiationService=l,this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new Emitter$1),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event;const c=new ObservablePromise(this._treeSitterLibraryService.getParserClass()),d=derived(this,u=>{var f,m;return(m=(f=c.promiseResult)==null?void 0:f.read(u))==null?void 0:m.getDataOrThrow()});this._tree=derived(this,u=>{const g=d.read(u);if(!g)return;const f=this._languageIdObs.read(u),m=this._treeSitterLibraryService.getLanguage(f,!1,u);if(!m)return;const _=new g;if(u.store.add(toDisposable(()=>{_.delete()})),_.setLanguage(m),this._treeSitterLibraryService.getInjectionQueries(f,u)!==void 0)return u.store.add(this._instantiationService.createInstance(TreeSitterTree,f,void 0,_,g,this._textModel))}),this._tokenizationImpl=derived(this,u=>{const g=this._tree.read(u);if(!g)return;const f=this._treeSitterLibraryService.getHighlightingQueries(g.languageId,u);if(f)return u.store.add(this._instantiationService.createInstance(TreeSitterTokenizationImpl,g,f,this._languageIdCodec,s))}),this._register(autorun(u=>{const g=this._tokenizationImpl.read(u);g&&(u.store.add(g.onDidChangeTokens(f=>{this._onDidChangeTokens.fire(f.changes)})),u.store.add(g.onDidChangeBackgroundTokenization(f=>{this._backgroundTokenizationState=2,this._onDidChangeBackgroundTokenizationState.fire()})))}))}getLineTokens(e){const t=this._tokenizationImpl.get();if(!t){const r=this._textModel.getLineContent(e);return LineTokens.createEmpty(r,this._languageIdCodec)}return t.getLineTokens(e)}todo_resetTokenization(e=!0){e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}handleDidChangeAttached(){}handleDidChangeContent(e){if(e.isFlush)this.todo_resetTokenization(!1);else{const r=this._tokenizationImpl.get();r==null||r.handleContentChanged(e)}const t=this._tree.get();t==null||t.handleContentChange(e)}forceTokenization(e){const t=this._tokenizationImpl.get();t&&(t.hasAccurateTokensForLine(e)||t.tokenizeEncoded(e))}hasAccurateTokensForLine(e){const t=this._tokenizationImpl.get();return t?t.hasAccurateTokensForLine(e):!1}isCheapToTokenize(e){return!0}getTokenTypeIfInsertingCharacter(e,t,r){return 0}tokenizeLinesAt(e,t){const r=this._tokenizationImpl.get();return r?r.tokenizeLinesAt(e,t):null}get hasTokens(){const e=this._tokenizationImpl.get();return e?e.hasTokens():!1}};TreeSitterSyntaxTokenBackend=__decorate$2R([__param$2I(4,ITreeSitterLibraryService),__param$2I(5,IInstantiationService)],TreeSitterSyntaxTokenBackend);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,r=void 0){if(this._pieces=e||[],this._isComplete=t,r)for(const s of this._pieces)s.reportIfInvalid(r)}setPartial(e,t){let r=e;if(t.length>0){const a=t[0].getRange(),l=t[t.length-1].getRange();if(!a||!l)return e;r=e.plusRange(a).plusRange(l)}let s=null;for(let a=0,l=this._pieces.length;a<l;a++){const c=this._pieces[a];if(c.endLineNumber<r.startLineNumber)continue;if(c.startLineNumber>r.endLineNumber){s=s||{index:a};break}if(c.removeTokens(r),c.isEmpty()){this._pieces.splice(a,1),a--,l--;continue}if(c.endLineNumber<r.startLineNumber)continue;if(c.startLineNumber>r.endLineNumber){s=s||{index:a};continue}const[d,u]=c.split(r);if(d.isEmpty()){s=s||{index:a};continue}u.isEmpty()||(this._pieces.splice(a,1,d,u),a++,l++,s=s||{index:a})}return s=s||{index:this._pieces.length},t.length>0&&(this._pieces=arrayInsert(this._pieces,s.index,t)),r}isComplete(){return this._isComplete}addSparseTokens(e,t){if(t.getTextLength()===0)return t;const r=this._pieces;if(r.length===0)return t;const s=SparseTokensStore._findFirstPieceWithLine(r,e),a=r[s].getLineTokens(e);if(!a)return t;const l=t.getCount(),c=a.getCount();let d=0;const u=[];let g=0,f=0;const m=(_,v)=>{_!==f&&(f=_,u[g++]=_,u[g++]=v)};for(let _=0;_<c;_++){const v=Math.min(a.getStartCharacter(_),t.getTextLength()),b=Math.min(a.getEndCharacter(_),t.getTextLength()),C=a.getMetadata(_),y=((C&1?2048:0)|(C&2?4096:0)|(C&4?8192:0)|(C&8?16384:0)|(C&16?16744448:0)|(C&32?4278190080:0))>>>0,S=~y>>>0;for(;d<l&&t.getEndOffset(d)<=v;)m(t.getEndOffset(d),t.getMetadata(d)),d++;for(d<l&&t.getStartOffset(d)<v&&m(v,t.getMetadata(d));d<l&&t.getEndOffset(d)<b;)m(t.getEndOffset(d),t.getMetadata(d)&S|C&y),d++;if(d<l)m(b,t.getMetadata(d)&S|C&y),t.getEndOffset(d)===b&&d++;else{const w=Math.min(Math.max(0,d-1),l-1);m(b,t.getMetadata(w)&S|C&y)}}for(;d<l;)m(t.getEndOffset(d),t.getMetadata(d)),d++;return new LineTokens(new Uint32Array(u),t.getLineContent(),this._languageIdCodec)}static _findFirstPieceWithLine(e,t){let r=0,s=e.length-1;for(;r<s;){let a=r+Math.floor((s-r)/2);if(e[a].endLineNumber<t)r=a+1;else if(e[a].startLineNumber>t)s=a-1;else{for(;a>r&&e[a-1].startLineNumber<=t&&t<=e[a-1].endLineNumber;)a--;return a}}return r}acceptEdit(e,t,r,s,a){for(let l=0;l<this._pieces.length;l++){const c=this._pieces[l];c.acceptEdit(e,t,r,s,a),c.isEmpty()&&(this._pieces.splice(l,1),l--)}}}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 r=toUint32Array(e),s=r[r.length-2];return ContiguousTokensEditing.delete(e,t,s)}static delete(e,t,r){if(e===null||e===EMPTY_LINE_TOKENS||t===r)return e;const s=toUint32Array(e),a=s.length>>>1;if(t===0&&s[s.length-2]===r)return EMPTY_LINE_TOKENS;const l=LineTokens.findIndexInTokensArray(s,t),c=l>0?s[l-1<<1]:0,d=s[l<<1];if(r<d){const _=r-t;for(let v=l;v<a;v++)s[v<<1]-=_;return e}let u,g;c!==t?(s[l<<1]=t,u=l+1<<1,g=t):(u=l<<1,g=c);const f=r-t;for(let _=l+1;_<a;_++){const v=s[_<<1]-f;v>g&&(s[u++]=v,s[u++]=s[(_<<1)+1],g=v)}if(u===s.length)return e;const m=new Uint32Array(u);return m.set(s.subarray(0,u),0),m.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 r=toUint32Array(e),s=toUint32Array(t),a=s.length>>>1,l=new Uint32Array(r.length+s.length);l.set(r,0);let c=r.length;const d=r[r.length-2];for(let u=0;u<a;u++)l[c++]=s[u<<1]+d,l[c++]=s[(u<<1)+1];return l.buffer}static insert(e,t,r){if(e===null||e===EMPTY_LINE_TOKENS)return e;const s=toUint32Array(e),a=s.length>>>1;let l=LineTokens.findIndexInTokensArray(s,t);l>0&&s[l-1<<1]===t&&l--;for(let c=l;c<a;c++)s[c<<1]+=r;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,r){let s=null;if(t<this._len&&(s=this._lineTokens[t]),s!==null&&s!==EMPTY_LINE_TOKENS)return new LineTokens(toUint32Array(s),r,this._languageIdCodec);const a=new Uint32Array(2);return a[0]=r.length,a[1]=getDefaultMetadata(this._languageIdCodec.encodeLanguageId(e)),new LineTokens(a,r,this._languageIdCodec)}static _massageTokens(e,t,r){const s=r?toUint32Array(r):null;if(t===0){let a=!1;if(s&&s.length>1&&(a=TokenMetadata.getLanguageId(s[1])!==e),!a)return EMPTY_LINE_TOKENS}if(!s||s.length===0){const a=new Uint32Array(2);return a[0]=t,a[1]=getDefaultMetadata(e),a.buffer}return s[s.length-2]=t,s.byteOffset===0&&s.byteLength===s.buffer.byteLength?s.buffer:s}_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 r=[];for(let s=0;s<t;s++)r[s]=null;this._lineTokens=arrayInsert(this._lineTokens,e,r),this._len+=t}setTokens(e,t,r,s,a){const l=ContiguousTokensStore._massageTokens(this._languageIdCodec.encodeLanguageId(e),r,s);this._ensureLine(t);const c=this._lineTokens[t];return this._lineTokens[t]=l,a?!ContiguousTokensStore._equals(c,l):!1}static _equals(e,t){if(!e||!t)return!e&&!t;const r=toUint32Array(e),s=toUint32Array(t);if(r.length!==s.length)return!1;for(let a=0,l=r.length;a<l;a++)if(r[a]!==s[a])return!1;return!0}acceptEdit(e,t,r){this._acceptDeleteRange(e),this._acceptInsertText(new Position$1(e.startLineNumber,e.startColumn),t,r)}_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 r=e.endLineNumber-1;let s=null;r<this._len&&(s=ContiguousTokensEditing.deleteBeginning(this._lineTokens[r],e.endColumn-1)),this._lineTokens[t]=ContiguousTokensEditing.append(this._lineTokens[t],s),this._deleteLines(e.startLineNumber,e.endLineNumber-e.startLineNumber)}_acceptInsertText(e,t,r){if(t===0&&r===0)return;const s=e.lineNumber-1;if(!(s>=this._len)){if(t===0){this._lineTokens[s]=ContiguousTokensEditing.insert(this._lineTokens[s],e.column-1,r);return}this._lineTokens[s]=ContiguousTokensEditing.deleteEnding(this._lineTokens[s],e.column-1),this._lineTokens[s]=ContiguousTokensEditing.insert(this._lineTokens[s],e.column-1,r),this._insertLines(e.lineNumber,t)}}setMultilineTokens(e,t){if(e.length===0)return{changes:[]};const r=[];for(let s=0,a=e.length;s<a;s++){const l=e[s];let c=0,d=0,u=!1;for(let g=l.startLineNumber;g<=l.endLineNumber;g++)u?(this.setTokens(t.getLanguageId(),g-1,t.getLineLength(g),l.getLineTokens(g),!1),d=g):this.setTokens(t.getLanguageId(),g-1,t.getLineLength(g),l.getLineTokens(g),!0)&&(u=!0,c=g,d=g);u&&r.push({fromLineNumber:c,toLineNumber:d})}return{changes:r}}}function getDefaultMetadata(o){return(o<<0|0|0|32768|2<<24|1024)>>>0}class TokenizerSyntaxTokenBackend extends AbstractSyntaxTokenBackend{constructor(e,t,r,s){super(e,t),this.getLanguageId=r,this._tokenizer=null,this._backgroundTokenizationState=1,this._onDidChangeBackgroundTokenizationState=this._register(new Emitter$1),this.onDidChangeBackgroundTokenizationState=this._onDidChangeBackgroundTokenizationState.event,this._defaultBackgroundTokenizer=null,this._backgroundTokenizer=this._register(new MutableDisposable),this._tokens=new ContiguousTokensStore(this._languageIdCodec),this._debugBackgroundTokenizer=this._register(new MutableDisposable),this._attachedViewStates=this._register(new DisposableMap),this._register(TokenizationRegistry.onDidChange(a=>{const l=this.getLanguageId();a.changedLanguages.indexOf(l)!==-1&&this.todo_resetTokenization()})),this.todo_resetTokenization(),this._register(s.onDidChangeVisibleRanges(({view:a,state:l})=>{if(l){let c=this._attachedViewStates.get(a);c||(c=new AttachedViewHandler(()=>this.refreshRanges(c.lineRanges)),this._attachedViewStates.set(a,c)),c.handleStateChange(l)}else this._attachedViewStates.deleteAndDispose(a)}))}todo_resetTokenization(e=!0){var a;this._tokens.flush(),(a=this._debugBackgroundTokens)==null||a.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new TrackingTokenizationStateStore(this._textModel.getLineCount())),e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const t=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const l=TokenizationRegistry.get(this.getLanguageId());if(!l)return[null,null];let c;try{c=l.getInitialState()}catch(d){return onUnexpectedError(d),[null,null]}return[l,c]},[r,s]=t();if(r&&s?this._tokenizer=new TokenizerWithStateStoreAndTextModel(this._textModel.getLineCount(),r,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const l={setTokens:c=>{this.setTokens(c)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const c=2;this._backgroundTokenizationState=c,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(c,d)=>{var g;if(!this._tokenizer)return;const u=this._tokenizer.store.getFirstInvalidEndStateLineNumber();u!==null&&c>=u&&((g=this._tokenizer)==null||g.store.setEndState(c,d))}};r&&r.createBackgroundTokenizer&&!r.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=r.createBackgroundTokenizer(this._textModel,l)),!this._backgroundTokenizer.value&&!this._textModel.isTooLargeForTokenization()&&(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new DefaultBackgroundTokenizer(this._tokenizer,l),this._defaultBackgroundTokenizer.handleChanges()),r!=null&&r.backgroundTokenizerShouldOnlyVerifyTokens&&r.createBackgroundTokenizer?(this._debugBackgroundTokens=new ContiguousTokensStore(this._languageIdCodec),this._debugBackgroundStates=new TrackingTokenizationStateStore(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=r.createBackgroundTokenizer(this._textModel,{setTokens:c=>{var d;(d=this._debugBackgroundTokens)==null||d.setMultilineTokens(c,this._textModel)},backgroundTokenizationFinished(){},setEndState:(c,d)=>{var u;(u=this._debugBackgroundStates)==null||u.setEndState(c,d)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var e;(e=this._defaultBackgroundTokenizer)==null||e.handleChanges()}handleDidChangeContent(e){var t,r,s;if(e.isFlush)this.todo_resetTokenization(!1);else if(!e.isEolChange){for(const a of e.changes){const[l,c]=countEOL(a.text);this._tokens.acceptEdit(a.range,l,c),(t=this._debugBackgroundTokens)==null||t.acceptEdit(a.range,l,c)}(r=this._debugBackgroundStates)==null||r.acceptChanges(e.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(e.changes),(s=this._defaultBackgroundTokenizer)==null||s.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.joinMany([...this._attachedViewStates].map(([t,r])=>r.lineRanges));this.refreshRanges(e)}refreshRanges(e){for(const t of e)this.refreshRange(t.startLineNumber,t.endLineNumberExclusive-1)}refreshRange(e,t){var l,c;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 d of a.changes)(l=this._backgroundTokenizer.value)==null||l.requestTokens(d.fromLineNumber,d.toLineNumber+1);(c=this._defaultBackgroundTokenizer)==null||c.checkFinished()}forceTokenization(e){var r,s;const t=new ContiguousMultilineTokensBuilder;(r=this._tokenizer)==null||r.updateTokensUntilLine(t,e),this.setTokens(t.finalize()),(s=this._defaultBackgroundTokenizer)==null||s.checkFinished()}hasAccurateTokensForLine(e){return this._tokenizer?this._tokenizer.hasAccurateTokensForLine(e):!0}isCheapToTokenize(e){return this._tokenizer?this._tokenizer.isCheapToTokenize(e):!0}getLineTokens(e){var s;const t=this._textModel.getLineContent(e),r=this._tokens.getTokens(this._textModel.getLanguageId(),e-1,t);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>e&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>e){const a=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),e-1,t);!r.equals(a)&&((s=this._debugBackgroundTokenizer.value)!=null&&s.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(e)}return r}getTokenTypeIfInsertingCharacter(e,t,r){if(!this._tokenizer)return 0;const s=this._textModel.validatePosition(new Position$1(e,t));return this.forceTokenization(s.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(s,r)}tokenizeLinesAt(e,t){return this._tokenizer?(this.forceTokenization(e),this._tokenizer.tokenizeLinesAt(e,t)):null}get hasTokens(){return this._tokens.hasTokens}}var __decorate$2Q=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2H=function(o,e){return function(t,r){e(t,r,o)}},TokenizationTextModelPart_1;let TokenizationTextModelPart=TokenizationTextModelPart_1=class extends TextModelPart{constructor(e,t,r,s,a,l,c,d){super(),this._textModel=e,this._bracketPairsTextModelPart=t,this._languageId=r,this._attachedViews=s,this._languageService=a,this._languageConfigurationService=l,this._instantiationService=c,this._treeSitterLibraryService=d,this._languageIdObs=observableValue(this,this._languageId),this._useTreeSitter=derived(this,g=>{const f=this._languageIdObs.read(g);return this._treeSitterLibraryService.supportsLanguage(f,g)}),this.tokens=derived(this,g=>{let f;return this._useTreeSitter.read(g)?f=g.store.add(this._instantiationService.createInstance(TreeSitterSyntaxTokenBackend,this._languageIdObs,this._languageService.languageIdCodec,this._textModel,this._attachedViews.visibleLineRanges)):f=g.store.add(new TokenizerSyntaxTokenBackend(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews)),g.store.add(f.onDidChangeTokens(m=>{this._emitModelTokensChangedEvent(m)})),g.store.add(f.onDidChangeBackgroundTokenizationState(m=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()})),f});let u=!1;this.tokens.recomputeInitiallyAndOnChange(this._store,g=>{u&&g.todo_resetTokenization(),u=!0}),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}handleLanguageConfigurationServiceChange(e){e.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})}handleDidChangeContent(e){if(e.isFlush)this._semanticTokens.flush();else if(!e.isEolChange)for(const t of e.changes){const[r,s,a]=countEOL(t.text);this._semanticTokens.acceptEdit(t.range,r,s,a,t.text.length>0?t.text.charCodeAt(0):0)}this.tokens.get().handleDidChangeContent(e)}handleDidChangeAttached(){this.tokens.get().handleDidChangeAttached()}getLineTokens(e){this.validateLineNumber(e);const t=this.tokens.get().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.tokens.get().hasTokens}resetTokenization(){this.tokens.get().todo_resetTokenization()}get backgroundTokenizationState(){return this.tokens.get().backgroundTokenizationState}forceTokenization(e){this.validateLineNumber(e),this.tokens.get().forceTokenization(e)}hasAccurateTokensForLine(e){return this.validateLineNumber(e),this.tokens.get().hasAccurateTokensForLine(e)}isCheapToTokenize(e){return this.validateLineNumber(e),this.tokens.get().isCheapToTokenize(e)}tokenizeIfCheap(e){this.validateLineNumber(e),this.tokens.get().tokenizeIfCheap(e)}getTokenTypeIfInsertingCharacter(e,t,r){return this.tokens.get().getTokenTypeIfInsertingCharacter(e,t,r)}tokenizeLinesAt(e,t){return this.tokens.get().tokenizeLinesAt(e,t)}setSemanticTokens(e,t){this._semanticTokens.set(e,t,this._textModel),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 r=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:r.startLineNumber,toLineNumber:r.endLineNumber}]})}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),r=this._textModel.getLineContent(t.lineNumber),s=this.getLineTokens(t.lineNumber),a=s.findTokenIndexAtOffset(t.column-1),[l,c]=TokenizationTextModelPart_1._findLanguageBoundaries(s,a),d=getWordAtText(t.column,this.getLanguageConfiguration(s.getLanguageId(a)).getWordDefinition(),r.substring(l,c),l);if(d&&d.startColumn<=e.column&&e.column<=d.endColumn)return d;if(a>0&&l===t.column-1){const[u,g]=TokenizationTextModelPart_1._findLanguageBoundaries(s,a-1),f=getWordAtText(t.column,this.getLanguageConfiguration(s.getLanguageId(a-1)).getWordDefinition(),r.substring(u,g),u);if(f&&f.startColumn<=e.column&&e.column<=f.endColumn)return f}return null}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}static _findLanguageBoundaries(e,t){const r=e.getLanguageId(t);let s=0;for(let l=t;l>=0&&e.getLanguageId(l)===r;l--)s=e.getStartOffset(l);let a=e.getLineContent().length;for(let l=t,c=e.getCount();l<c&&e.getLanguageId(l)===r;l++)a=e.getEndOffset(l);return[s,a]}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 r=this._textModel.validatePosition(new Position$1(e,t)),s=this.getLineTokens(r.lineNumber);return s.getLanguageId(s.findTokenIndexAtOffset(r.column-1))}setLanguageId(e,t="api"){if(this._languageId===e)return;const r={oldLanguage:this._languageId,newLanguage:e,source:t};this._languageId=e,this._languageIdObs.set(e,void 0),this._bracketPairsTextModelPart.handleDidChangeLanguage(r),this._onDidChangeLanguage.fire(r),this._onDidChangeLanguageConfiguration.fire({})}};TokenizationTextModelPart=TokenizationTextModelPart_1=__decorate$2Q([__param$2H(4,ILanguageService),__param$2H(5,ILanguageConfigurationService),__param$2H(6,IInstantiationService),__param$2H(7,ITreeSitterLibraryService)],TokenizationTextModelPart);const IUndoRedoService=createDecorator("undoRedoService");class ResourceEditStackSnapshot{constructor(e,t){this.resource=e,this.elements=t}}const rr=class rr{constructor(){this.id=rr._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}};rr._ID=0,rr.None=new rr;let UndoRedoGroup=rr;const sr=class sr{constructor(){this.id=sr._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}};sr._ID=0,sr.None=new sr;let UndoRedoSource=sr;var _a$2;function groupByMap$1(o,e){const t=new Map;for(const r of o){const s=e(r);let a=t.get(s);a||(a=[],t.set(s,a)),a.push(r)}return t}function diffSets(o,e){const t=[],r=[];for(const s of o)e.has(s)||t.push(s);for(const s of e)o.has(s)||r.push(s);return{removed:t,added:r}}function intersection(o,e){const t=new Set;for(const r of e)o.has(r)&&t.add(r);return t}class SetWithKey{constructor(e,t){this.toKey=t,this._map=new Map,this[_a$2]="SetWithKey";for(const r of e)this.add(r)}get size(){return this._map.size}add(e){const t=this.toKey(e);return this._map.set(t,e),this}delete(e){return this._map.delete(this.toKey(e))}has(e){return this._map.has(this.toKey(e))}*entries(){for(const e of this._map.values())yield[e,e]}keys(){return this.values()}*values(){for(const e of this._map.values())yield e}clear(){this._map.clear()}forEach(e,t){this._map.forEach(r=>e.call(t,r,r,this))}[Symbol.iterator](){return this.values()}}_a$2=Symbol.toStringTag;var __decorate$2P=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2G=function(o,e){return function(t,r){e(t,r,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,LINE_HEIGHT_CEILING=300;class TextModelSnapshot{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,r=0;do{const s=this._source.read();if(s===null)return this._eos=!0,t===0?null:e.join("");if(s.length>0&&(e[t++]=s,r+=s.length),r>=64*1024)return e.join("")}while(!0)}}const invalidFunc=()=>{throw new Error("Invalid change accessor")};var Lt;let TextModel=(Lt=class extends Disposable$1{static resolveOptions(e,t){if(t.detectIndentation){const r=guessIndentation(e,t.tabSize,t.insertSpaces);return new TextModelResolvedOptions({tabSize:r.tabSize,indentSize:"tabSize",insertSpaces:r.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}get onDidChangeOptions(){return this._onDidChangeOptions.event}get onDidChangeAttached(){return this._onDidChangeAttached.event}get onDidChangeLineHeight(){return this._onDidChangeLineHeight.event}get onDidChangeFont(){return this._onDidChangeFont.event}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,r,s=null,a,l,c,d){super(),this._undoRedoService=a,this._languageService=l,this._languageConfigurationService=c,this.instantiationService=d,this._onWillDispose=this._register(new Emitter$1),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new DidChangeDecorationsEmitter((v,b,C)=>this.handleBeforeFireDecorationsChangedEvent(v,b,C))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new Emitter$1),this._onDidChangeAttached=this._register(new Emitter$1),this._onDidChangeInjectedText=this._register(new Emitter$1),this._onDidChangeLineHeight=this._register(new Emitter$1),this._onDidChangeFont=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=r.isForSimpleWidget,typeof s>"u"||s===null?this._associatedResource=URI.parse("inmemory://model/"+MODEL_ID$1):this._associatedResource=s,this._attachedEditorCount=0;const{textBuffer:u,disposable:g}=createTextBuffer(e,r.defaultEOL);this._buffer=u,this._bufferDisposable=g;const f=this._buffer.getLineCount(),m=this._buffer.getValueLengthInRange(new Range$2(1,1,f,this._buffer.getLineLength(f)+1),0);r.largeFileOptimizations?(this._isTooLargeForTokenization=m>TextModel_1.LARGE_FILE_SIZE_THRESHOLD||f>TextModel_1.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=m>TextModel_1.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._options=TextModel_1.resolveOptions(this._buffer,r);const _=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=this.instantiationService.createInstance(TokenizationTextModelPart,this,this._bracketPairs,_,this._attachedViews),this._isTooLargeForSyncing=m>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(_),this._register(this._languageConfigurationService.onDidChange(v=>{this._bracketPairs.handleLanguageConfigurationServiceChange(v),this._tokenizationTextModelPart.handleLanguageConfigurationServiceChange(v)}))}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([],"","\n",!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=Disposable$1.None}_assertNotDisposed(){if(this._isDisposed)throw new BugIndicatingError("Model is disposed!")}getTextBuffer(){return this._assertNotDisposed(),this._buffer}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new InternalModelContentChangeEvent(e,t)))}setValue(e,t=EditSources.setValue()){if(this._assertNotDisposed(),e==null)throw illegalArgument();const{textBuffer:r,disposable:s}=createTextBuffer(e,this._options.defaultEOL);this._setValueFromTextBuffer(r,s,t)}_createContentChanged2(e,t,r,s,a,l,c,d,u,g){return{changes:[{range:e,rangeOffset:t,rangeLength:r,text:a}],eol:this._buffer.getEOL(),isEolChange:u,versionId:this.getVersionId(),isUndoing:l,isRedoing:c,isFlush:d,detailedReasons:[g],detailedReasonsChangeLengths:[1]}}_setValueFromTextBuffer(e,t,r){this._assertNotDisposed();const s=this.getFullModelRange(),a=this.getValueLengthInRange(s),l=this.getLineCount(),c=this.getLineMaxColumn(l);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,l,c),0,a,new Position$1(l,c),this.getValue(),!1,!1,!0,!1,r))}setEOL(e){this._assertNotDisposed();const t=e===1?"\r\n":"\n";if(this._buffer.getEOL()===t)return;const r=this.getFullModelRange(),s=this.getValueLengthInRange(r),a=this.getLineCount(),l=this.getLineMaxColumn(a);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,a,l),0,s,new Position$1(a,l),this.getValue(),!1,!1,!1,!0,EditSources.eolChange()))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let r=0,s=t.length;r<s;r++){const a=t[r],l=a.range,c=a.cachedAbsoluteStart-a.start,d=this._buffer.getOffsetAt(l.startLineNumber,l.startColumn),u=this._buffer.getOffsetAt(l.endLineNumber,l.endColumn);a.cachedAbsoluteStart=d,a.cachedAbsoluteEnd=u,a.cachedVersionId=e,a.start=d-c,a.end=u-c,recomputeMaxEnd(a)}}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 r=this._buffer.getLineCount();for(let s=1;s<=r;s++){const a=this._buffer.getLineLength(s);a>=LONG_LINE_BOUNDARY?t+=a:e+=a}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,r=typeof e.indentSize<"u"?e.indentSize:this._options.originalIndentSize,s=typeof e.insertSpaces<"u"?e.insertSpaces:this._options.insertSpaces,a=typeof e.trimAutoWhitespace<"u"?e.trimAutoWhitespace:this._options.trimAutoWhitespace,l=typeof e.bracketColorizationOptions<"u"?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,c=new TextModelResolvedOptions({tabSize:t,indentSize:r,insertSpaces:s,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:a,bracketPairColorizationOptions:l});if(this._options.equals(c))return;const d=this._options.createChangeEvent(c);this._options=c,this._bracketPairs.handleDidChangeOptions(d),this._decorationProvider.handleDidChangeOptions(d),this._onDidChangeOptions.fire(d)}detectIndentation(e,t){this._assertNotDisposed();const r=guessIndentation(this._buffer,t,e);this.updateOptions({insertSpaces:r.insertSpaces,tabSize:r.tabSize,indentSize:r.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(r=>({range:r.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 r=this.getFullModelRange(),s=this.getValueInRange(r,e);return t?this._buffer.getBOM()+s:s}createSnapshot(e=!1){return new TextModelSnapshot(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const r=this.getFullModelRange(),s=this.getValueLengthInRange(r,e);return t?this._buffer.getBOM().length+s:s}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()==="\n"?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(),r=e.startLineNumber,s=e.startColumn;let a=Math.floor(typeof r=="number"&&!isNaN(r)?r:1),l=Math.floor(typeof s=="number"&&!isNaN(s)?s:1);if(a<1)a=1,l=1;else if(a>t)a=t,l=this.getLineMaxColumn(a);else if(l<=1)l=1;else{const f=this.getLineMaxColumn(a);l>=f&&(l=f)}const c=e.endLineNumber,d=e.endColumn;let u=Math.floor(typeof c=="number"&&!isNaN(c)?c:1),g=Math.floor(typeof d=="number"&&!isNaN(d)?d:1);if(u<1)u=1,g=1;else if(u>t)u=t,g=this.getLineMaxColumn(u);else if(g<=1)g=1;else{const f=this.getLineMaxColumn(u);g>=f&&(g=f)}return r===a&&s===l&&c===u&&d===g&&e instanceof Range$2&&!(e instanceof Selection$1)?e:new Range$2(a,l,u,g)}_isValidPosition(e,t,r){if(typeof e!="number"||typeof t!="number"||isNaN(e)||isNaN(t)||e<1||t<1||(e|0)!==e||(t|0)!==t)return!1;const s=this._buffer.getLineCount();if(e>s)return!1;if(t===1)return!0;const a=this.getLineMaxColumn(e);if(t>a)return!1;if(r===1){const l=this._buffer.getLineCharCode(e,t-2);if(isHighSurrogate(l))return!1}return!0}_validatePosition(e,t,r){const s=Math.floor(typeof e=="number"&&!isNaN(e)?e:1),a=Math.floor(typeof t=="number"&&!isNaN(t)?t:1),l=this._buffer.getLineCount();if(s<1)return new Position$1(1,1);if(s>l)return new Position$1(l,this.getLineMaxColumn(l));if(a<=1)return new Position$1(s,1);const c=this.getLineMaxColumn(s);if(a>=c)return new Position$1(s,c);if(r===1){const d=this._buffer.getLineCharCode(s,a-2);if(isHighSurrogate(d))return new Position$1(s,a-1)}return new Position$1(s,a)}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){return this._isValidRange(e,1)}_isValidRange(e,t){const r=e.startLineNumber,s=e.startColumn,a=e.endLineNumber,l=e.endColumn;if(!this._isValidPosition(r,s,0)||!this._isValidPosition(a,l,0))return!1;if(t===1){const c=s>1?this._buffer.getLineCharCode(r,s-2):0,d=l>1&&l<=this._buffer.getLineLength(a)?this._buffer.getLineCharCode(a,l-2):0,u=isHighSurrogate(c),g=isHighSurrogate(d);return!u&&!g}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof Range$2&&!(e instanceof Selection$1)&&this._isValidRange(e,1))return e;const r=this._validatePosition(e.startLineNumber,e.startColumn,0),s=this._validatePosition(e.endLineNumber,e.endColumn,0),a=r.lineNumber,l=r.column,c=s.lineNumber,d=s.column;{const u=l>1?this._buffer.getLineCharCode(a,l-2):0,g=d>1&&d<=this._buffer.getLineLength(c)?this._buffer.getLineCharCode(c,d-2):0,f=isHighSurrogate(u),m=isHighSurrogate(g);return!f&&!m?new Range$2(a,l,c,d):a===c&&l===d?new Range$2(a,l-1,c,d-1):f&&m?new Range$2(a,l-1,c,d+1):f?new Range$2(a,l-1,c,d):new Range$2(a,l,c,d+1)}}modifyPosition(e,t){this._assertNotDisposed();const r=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,r)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new Range$2(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,r,s){return this._buffer.findMatchesLineByLine(e,t,r,s)}findMatches(e,t,r,s,a,l,c=LIMIT_FIND_COUNT){this._assertNotDisposed();let d=null;t!==null&&typeof t!="boolean"&&(Array.isArray(t)||(t=[t]),t.every(f=>Range$2.isIRange(f))&&(d=t.map(f=>this.validateRange(f)))),d===null&&(d=[this.getFullModelRange()]),d=d.sort((f,m)=>f.startLineNumber-m.startLineNumber||f.startColumn-m.startColumn);const u=[];u.push(d.reduce((f,m)=>Range$2.areIntersecting(f,m)?f.plusRange(m):(u.push(f),m)));let g;if(!r&&e.indexOf("\n")<0){const m=new SearchParams(e,r,s,a).parseSearchRequest();if(!m)return[];g=_=>this.findMatchesLineByLine(_,m,l,c)}else g=f=>TextModelSearch.findMatches(this,new SearchParams(e,r,s,a),f,l,c);return u.map(g).reduce((f,m)=>f.concat(m),[])}findNextMatch(e,t,r,s,a,l){this._assertNotDisposed();const c=this.validatePosition(t);if(!r&&e.indexOf("\n")<0){const u=new SearchParams(e,r,s,a).parseSearchRequest();if(!u)return null;const g=this.getLineCount();let f=new Range$2(c.lineNumber,c.column,g,this.getLineMaxColumn(g)),m=this.findMatchesLineByLine(f,u,l,1);return TextModelSearch.findNextMatch(this,new SearchParams(e,r,s,a),c,l),m.length>0||(f=new Range$2(1,1,c.lineNumber,this.getLineMaxColumn(c.lineNumber)),m=this.findMatchesLineByLine(f,u,l,1),m.length>0)?m[0]:null}return TextModelSearch.findNextMatch(this,new SearchParams(e,r,s,a),c,l)}findPreviousMatch(e,t,r,s,a,l){this._assertNotDisposed();const c=this.validatePosition(t);return TextModelSearch.findPreviousMatch(this,new SearchParams(e,r,s,a),c,l)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if((this.getEOL()==="\n"?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 r=0,s=e.length;r<s;r++)t[r]=this._validateEditOperation(e[r]);return t}pushEditOperations(e,t,r,s,a){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,this._validateEditOperations(t),r,s,a)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_pushEditOperations(e,t,r,s,a){if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){const l=t.map(d=>({range:this.validateRange(d.range),text:d.text}));let c=!0;if(e)for(let d=0,u=e.length;d<u;d++){const g=e[d];let f=!1;for(let m=0,_=l.length;m<_;m++){const v=l[m].range,b=v.startLineNumber>g.endLineNumber,C=g.startLineNumber>v.endLineNumber;if(!b&&!C){f=!0;break}}if(!f){c=!1;break}}if(c)for(let d=0,u=this._trimAutoWhitespaceLines.length;d<u;d++){const g=this._trimAutoWhitespaceLines[d],f=this.getLineMaxColumn(g);let m=!0;for(let _=0,v=l.length;_<v;_++){const b=l[_].range,C=l[_].text;if(!(g<b.startLineNumber||g>b.endLineNumber)&&!(g===b.startLineNumber&&b.startColumn===f&&b.isEmpty()&&C&&C.length>0&&C.charAt(0)==="\n")&&!(g===b.startLineNumber&&b.startColumn===1&&b.isEmpty()&&C&&C.length>0&&C.charAt(C.length-1)==="\n")){m=!1;break}}if(m){const _=new Range$2(g,1,g,f);t.push(new ValidAnnotatedEditOperation(null,_,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,r,s,a)}_applyUndo(e,t,r,s){const a=e.map(l=>{const c=this.getPositionAt(l.newPosition),d=this.getPositionAt(l.newEnd);return{range:new Range$2(c.lineNumber,c.column,d.lineNumber,d.column),text:l.oldText}});this._applyUndoRedoEdits(a,t,!0,!1,r,s)}_applyRedo(e,t,r,s){const a=e.map(l=>{const c=this.getPositionAt(l.oldPosition),d=this.getPositionAt(l.oldEnd);return{range:new Range$2(c.lineNumber,c.column,d.lineNumber,d.column),text:l.newText}});this._applyUndoRedoEdits(a,t,!1,!0,r,s)}_applyUndoRedoEdits(e,t,r,s,a,l){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=r,this._isRedoing=s,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(a)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(l),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t,r){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const s=this._validateEditOperations(e);return this._doApplyEdits(s,t!=null?t:!1,r!=null?r:EditSources.applyEdits())}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t,r){const s=this._buffer.getLineCount(),a=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),l=this._buffer.getLineCount(),c=a.changes;if(this._trimAutoWhitespaceLines=a.trimAutoWhitespaceLineNumbers,c.length!==0){for(let g=0,f=c.length;g<f;g++){const m=c[g];this._decorationsTree.acceptReplace(m.rangeOffset,m.rangeLength,m.text.length,m.forceMoveMarkers)}const d=[];this._increaseVersionId();let u=s;for(let g=0,f=c.length;g<f;g++){const m=c[g],[_]=countEOL(m.text);this._onDidChangeDecorations.fire();const v=m.range.startLineNumber,b=m.range.endLineNumber,C=b-v,y=_,S=Math.min(C,y),w=y-C,E=l-u-w+v,x=E,L=E+y,k=this._decorationsTree.getInjectedTextInInterval(this,this.getOffsetAt(new Position$1(x,1)),this.getOffsetAt(new Position$1(L,this.getLineMaxColumn(L))),0),D=LineInjectedText.fromDecorations(k),I=new ArrayQueue(D);for(let T=S;T>=0;T--){const M=v+T,R=E+T;I.takeFromEndWhile(A=>A.lineNumber>R);const N=I.takeFromEndWhile(A=>A.lineNumber===R);d.push(new ModelRawLineChanged(M,this.getLineContent(R),N))}if(S<C){const T=v+S;d.push(new ModelRawLinesDeleted(T+1,b))}if(S<y){const T=new ArrayQueue(D),M=v+S,R=y-S,N=l-u-R+M+1,A=[],O=[];for(let P=0;P<R;P++){const F=N+P;O[P]=this.getLineContent(F),T.takeWhile(B=>B.lineNumber<F),A[P]=T.takeWhile(B=>B.lineNumber===F)}d.push(new ModelRawLinesInserted(M+1,v+y,O,A))}u+=w}this._emitContentChangedEvent(new ModelRawContentChangedEvent(d,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:c,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1,detailedReasons:[r],detailedReasonsChangeLengths:[c.length]})}return a.reverseEdits===null?void 0:a.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,t,r){if(e&&e.size>0){const a=Array.from(e).map(l=>new ModelRawLineChanged(l,this.getLineContent(l),this._getInjectedTextInLine(l)));this._onDidChangeInjectedText.fire(new ModelInjectedTextChangedEvent(a))}if(t&&t.size>0){const a=Array.from(t).map(l=>new ModelLineHeightChanged(l.ownerId,l.decorationId,l.lineNumber,l.lineHeight));this._onDidChangeLineHeight.fire(new ModelLineHeightChangedEvent$1(a))}if(r&&r.size>0){const a=Array.from(r).map(l=>new ModelFontChanged(l.ownerId,l.lineNumber));this._onDidChangeFont.fire(new ModelFontChangedEvent$1(a))}}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const r={addDecoration:(a,l)=>this._deltaDecorationsImpl(e,[],[{range:a,options:l}])[0],changeDecoration:(a,l)=>{this._changeDecorationImpl(e,a,l)},changeDecorationOptions:(a,l)=>{this._changeDecorationOptionsImpl(e,a,_normalizeOptions(l))},removeDecoration:a=>{this._deltaDecorationsImpl(e,[a],[])},deltaDecorations:(a,l)=>a.length===0&&l.length===0?[]:this._deltaDecorationsImpl(e,a,l)};let s=null;try{s=t(r)}catch(a){onUnexpectedError(a)}return r.addDecoration=invalidFunc,r.changeDecoration=invalidFunc,r.changeDecorationOptions=invalidFunc,r.removeDecoration=invalidFunc,r.deltaDecorations=invalidFunc,s}deltaDecorations(e,t,r=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(r,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,r){const s=e?this._decorations[e]:null;if(!s)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:TRACKED_RANGE_OPTIONS[r]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(s),delete this._decorations[s.id],null;const a=this._validateRangeRelaxedNoAllocations(t),l=this._buffer.getOffsetAt(a.startLineNumber,a.startColumn),c=this._buffer.getOffsetAt(a.endLineNumber,a.endColumn);return this._decorationsTree.delete(s),s.reset(this.getVersionId(),l,c,a),s.setOptions(TRACKED_RANGE_OPTIONS[r]),this._decorationsTree.insert(s),s.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let r=0,s=t.length;r<s;r++){const a=t[r];this._decorationsTree.delete(a),delete this._decorations[a.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,r=!1,s=!1){return e<1||e>this.getLineCount()?[]:this.getLinesDecorations(e,e,t,r,s)}getLinesDecorations(e,t,r=0,s=!1,a=!1,l=!1){const c=this.getLineCount(),d=Math.min(c,Math.max(1,e)),u=Math.min(c,Math.max(1,t)),g=this.getLineMaxColumn(u),f=new Range$2(d,1,u,g),m=this._getDecorationsInRange(f,r,s,a,l);return pushMany(m,this._decorationProvider.getDecorationsInRange(f,r,s)),m}getDecorationsInRange(e,t=0,r=!1,s=!1,a=!1,l=!1){const c=this.validateRange(e),d=this._getDecorationsInRange(c,t,r,s,l);return pushMany(d,this._decorationProvider.getDecorationsInRange(c,t,r,a)),d}getOverviewRulerDecorations(e=0,t=!1,r=!1){return this._decorationsTree.getAll(this,e,t,r,!0,!1)}getInjectedTextDecorations(e=0){return this._decorationsTree.getAllInjectedText(this,e)}getCustomLineHeightsDecorations(e=0){return this._decorationsTree.getAllCustomLineHeights(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),r=t+this._buffer.getLineLength(e),s=this._decorationsTree.getInjectedTextInInterval(this,t,r,0);return LineInjectedText.fromDecorations(s).filter(a=>a.lineNumber===e)}getFontDecorationsInRange(e,t=0){const r=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),s=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getFontDecorationsInInterval(this,r,s,t)}getAllDecorations(e=0,t=!1,r=!1){let s=this._decorationsTree.getAll(this,e,t,r,!1,!1);return s=s.concat(this._decorationProvider.getAllDecorations(e,t)),s}getAllMarginDecorations(e=0){return this._decorationsTree.getAll(this,e,!1,!1,!1,!0)}_getDecorationsInRange(e,t,r,s,a){const l=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),c=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,l,c,t,r,s,a)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t,r){const s=this._decorations[t];if(!s)return;if(s.options.after){const d=this.getDecorationRange(t);this._onDidChangeDecorations.recordLineAffectedByInjectedText(d.endLineNumber)}if(s.options.before){const d=this.getDecorationRange(t);this._onDidChangeDecorations.recordLineAffectedByInjectedText(d.startLineNumber)}if(s.options.lineHeight!==null){const d=this.getDecorationRange(t);this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(e,t,d.startLineNumber,null)}if(s.options.affectsFont){const d=this.getDecorationRange(t);this._onDidChangeDecorations.recordLineAffectedByFontChange(e,s.id,d.startLineNumber)}const a=this._validateRangeRelaxedNoAllocations(r),l=this._buffer.getOffsetAt(a.startLineNumber,a.startColumn),c=this._buffer.getOffsetAt(a.endLineNumber,a.endColumn);this._decorationsTree.delete(s),s.reset(this.getVersionId(),l,c,a),this._decorationsTree.insert(s),this._onDidChangeDecorations.checkAffectedAndFire(s.options),s.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.endLineNumber),s.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.startLineNumber),s.options.lineHeight!==null&&this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(e,t,a.startLineNumber,s.options.lineHeight),s.options.affectsFont&&this._onDidChangeDecorations.recordLineAffectedByFontChange(e,s.id,a.startLineNumber)}_changeDecorationOptionsImpl(e,t,r){const s=this._decorations[t];if(!s)return;const a=!!(s.options.overviewRuler&&s.options.overviewRuler.color),l=!!(r.overviewRuler&&r.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(s.options),this._onDidChangeDecorations.checkAffectedAndFire(r),s.options.after||r.after){const u=this._decorationsTree.getNodeRange(this,s);this._onDidChangeDecorations.recordLineAffectedByInjectedText(u.endLineNumber)}if(s.options.before||r.before){const u=this._decorationsTree.getNodeRange(this,s);this._onDidChangeDecorations.recordLineAffectedByInjectedText(u.startLineNumber)}if(s.options.lineHeight!==null||r.lineHeight!==null){const u=this._decorationsTree.getNodeRange(this,s);this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(e,t,u.startLineNumber,r.lineHeight)}if(s.options.affectsFont||r.affectsFont){const u=this._decorationsTree.getNodeRange(this,s);this._onDidChangeDecorations.recordLineAffectedByFontChange(e,t,u.startLineNumber)}const c=a!==l,d=isOptionsInjectedText(r)!==isNodeInjectedText(s);c||d?(this._decorationsTree.delete(s),s.setOptions(r),this._decorationsTree.insert(s)):s.setOptions(r)}_deltaDecorationsImpl(e,t,r,s=!1){const a=this.getVersionId(),l=t.length;let c=0;const d=r.length;let u=0;this._onDidChangeDecorations.beginDeferredEmit();try{const g=new Array(d);for(;c<l||u<d;){let f=null;if(c<l){let m;do m=t[c++],f=this._decorations[m];while(!f&&c<l);if(f){if(f.options.after){const _=this._decorationsTree.getNodeRange(this,f);this._onDidChangeDecorations.recordLineAffectedByInjectedText(_.endLineNumber)}if(f.options.before){const _=this._decorationsTree.getNodeRange(this,f);this._onDidChangeDecorations.recordLineAffectedByInjectedText(_.startLineNumber)}if(f.options.lineHeight!==null){const _=this._decorationsTree.getNodeRange(this,f);this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(e,m,_.startLineNumber,null)}if(f.options.affectsFont){const _=this._decorationsTree.getNodeRange(this,f);this._onDidChangeDecorations.recordLineAffectedByFontChange(e,m,_.startLineNumber)}this._decorationsTree.delete(f),s||this._onDidChangeDecorations.checkAffectedAndFire(f.options)}}if(u<d){if(!f){const y=++this._lastDecorationId,S="".concat(this._instanceId,";").concat(y);f=new IntervalNode(S,0,0),this._decorations[S]=f}const m=r[u],_=this._validateRangeRelaxedNoAllocations(m.range),v=_normalizeOptions(m.options),b=this._buffer.getOffsetAt(_.startLineNumber,_.startColumn),C=this._buffer.getOffsetAt(_.endLineNumber,_.endColumn);f.ownerId=e,f.reset(a,b,C,_),f.setOptions(v),f.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(_.endLineNumber),f.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(_.startLineNumber),f.options.lineHeight!==null&&this._onDidChangeDecorations.recordLineAffectedByLineHeightChange(e,f.id,_.startLineNumber,f.options.lineHeight),f.options.affectsFont&&this._onDidChangeDecorations.recordLineAffectedByFontChange(e,f.id,_.startLineNumber),s||this._onDidChangeDecorations.checkAffectedAndFire(v),this._decorationsTree.insert(f),g[u]=f.id,u++}else f&&delete this._decorations[f.id]}return g}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}toString(){return"TextModel(".concat(this.uri.toString(),")")}},TextModel_1=Lt,Lt._MODEL_SYNC_LIMIT=50*1024*1024,Lt.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024,Lt.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3,Lt.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024,Lt.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},Lt);TextModel=TextModel_1=__decorate$2P([__param$2G(4,IUndoRedoService),__param$2G(5,ILanguageService),__param$2G(6,ILanguageConfigurationService),__param$2G(7,IInstantiationService)],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 isOptionsInjectedText(o){return!!o.after||!!o.before}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,!1)}_ensureNodesHaveRanges(e,t){for(const r of t)r.range===null&&(r.range=e.getRangeAt(r.cachedAbsoluteStart,r.cachedAbsoluteEnd));return t}getAllInInterval(e,t,r,s,a,l,c){const d=e.getVersionId(),u=this._intervalSearch(t,r,s,a,l,d,c);return this._ensureNodesHaveRanges(e,u)}_intervalSearch(e,t,r,s,a,l,c){const d=this._decorationsTree0.intervalSearch(e,t,r,s,a,l,c),u=this._decorationsTree1.intervalSearch(e,t,r,s,a,l,c),g=this._injectedTextDecorationsTree.intervalSearch(e,t,r,s,a,l,c);return d.concat(u).concat(g)}getInjectedTextInInterval(e,t,r,s){const a=e.getVersionId(),l=this._injectedTextDecorationsTree.intervalSearch(t,r,s,!1,!1,a,!1);return this._ensureNodesHaveRanges(e,l).filter(c=>c.options.showIfCollapsed||!c.range.isEmpty())}getFontDecorationsInInterval(e,t,r,s){const a=e.getVersionId(),l=this._decorationsTree0.intervalSearch(t,r,s,!1,!1,a,!1);return this._ensureNodesHaveRanges(e,l).filter(c=>c.options.affectsFont)}getAllInjectedText(e,t){const r=e.getVersionId(),s=this._injectedTextDecorationsTree.search(t,!1,!1,r,!1);return this._ensureNodesHaveRanges(e,s).filter(a=>a.options.showIfCollapsed||!a.range.isEmpty())}getAllCustomLineHeights(e,t){const r=e.getVersionId(),s=this._search(t,!1,!1,!1,r,!1);return this._ensureNodesHaveRanges(e,s).filter(a=>typeof a.options.lineHeight=="number")}getAll(e,t,r,s,a,l){const c=e.getVersionId(),d=this._search(t,r,s,a,c,l);return this._ensureNodesHaveRanges(e,d)}_search(e,t,r,s,a,l){if(s)return this._decorationsTree1.search(e,t,r,a,l);{const c=this._decorationsTree0.search(e,t,r,a,l),d=this._decorationsTree1.search(e,t,r,a,l),u=this._injectedTextDecorationsTree.search(e,t,r,a,l);return c.concat(d).concat(u)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),r=this._decorationsTree1.collectNodesFromOwner(e),s=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(r).concat(s)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),r=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(r)}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 r=e.getVersionId();return t.cachedVersionId!==r&&this._resolveNode(t,r),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,r,s){this._decorationsTree0.acceptReplace(e,t,r,s),this._decorationsTree1.acceptReplace(e,t,r,s),this._injectedTextDecorationsTree.acceptReplace(e,t,r,s)}}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$1.Center}getColor(e){return this._resolvedColor||(isDark(e.type)&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if(typeof e=="string")return e;const r=e?t.getColor(e.id):null;return r?r.toString():""}}class ModelDecorationGlyphMarginOptions{constructor(e){var t;this.position=(t=e==null?void 0:e.position)!=null?t:GlyphMarginLane$1.Center,this.persistLane=e==null?void 0:e.persistLane}}class ModelDecorationMinimapOptions extends DecorationOptions{constructor(e){var t,r;super(e),this.position=e.position,this.sectionHeaderStyle=(t=e.sectionHeaderStyle)!=null?t:null,this.sectionHeaderText=(r=e.sectionHeaderText)!=null?r:null}getColor(e){return this._resolvedColor||(isDark(e.type)&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return 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){var t;this.content=e.content||"",this.tokens=(t=e.tokens)!=null?t:null,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,r,s,a,l,c,d;this.description=e.description,this.blockClassName=e.blockClassName?cleanClassName(e.blockClassName):null,this.blockDoesNotCollapse=(t=e.blockDoesNotCollapse)!=null?t:null,this.blockIsAfterEnd=(r=e.blockIsAfterEnd)!=null?r:null,this.blockPadding=(s=e.blockPadding)!=null?s:null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?cleanClassName(e.className):null,this.shouldFillLineOnLineBreak=(a=e.shouldFillLineOnLineBreak)!=null?a:null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=e.lineNumberHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.lineHeight=e.lineHeight?Math.min(e.lineHeight,LINE_HEIGHT_CEILING):null,this.fontSize=e.fontSize||null,this.affectsFont=!!e.fontSize||!!e.fontFamily||!!e.fontWeight||!!e.fontStyle,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.lineNumberClassName=e.lineNumberClassName?cleanClassName(e.lineNumberClassName):null,this.linesDecorationsTooltip=e.linesDecorationsTooltip?htmlAttributeEncodeValue(e.linesDecorationsTooltip):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=(l=e.hideInCommentTokens)!=null?l:!1,this.hideInStringTokens=(c=e.hideInStringTokens)!=null?c:!1,this.textDirection=(d=e.textDirection)!=null?d:null}}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 LineHeightChangingDecoration{static toKey(e){return"".concat(e.ownerId,";").concat(e.decorationId,";").concat(e.lineNumber)}constructor(e,t,r,s){this.ownerId=e,this.decorationId=t,this.lineNumber=r,this.lineHeight=s}}class LineFontChangingDecoration{static toKey(e){return"".concat(e.ownerId,";").concat(e.decorationId,";").concat(e.lineNumber)}constructor(e,t,r){this.ownerId=e,this.decorationId=t,this.lineNumber=r}}class DidChangeDecorationsEmitter extends Disposable$1{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new Emitter$1),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._affectedLineHeights=null,this._affectedFontLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e,t,r;this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),(e=this._affectedInjectedTextLines)==null||e.clear(),this._affectedInjectedTextLines=null,(t=this._affectedLineHeights)==null||t.clear(),this._affectedLineHeights=null,(r=this._affectedFontLines)==null||r.clear(),this._affectedFontLines=null)}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}recordLineAffectedByLineHeightChange(e,t,r,s){this._affectedLineHeights||(this._affectedLineHeights=new SetWithKey([],LineHeightChangingDecoration.toKey)),this._affectedLineHeights.add(new LineHeightChangingDecoration(e,t,r,s))}recordLineAffectedByFontChange(e,t,r){this._affectedFontLines||(this._affectedFontLines=new SetWithKey([],LineFontChangingDecoration.toKey)),this._affectedFontLines.add(new LineFontChangingDecoration(e,t,r))}checkAffectedAndFire(e){var t,r;this._affectsMinimap||(this._affectsMinimap=!!((t=e.minimap)!=null&&t.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!!((r=e.overviewRuler)!=null&&r.color)),this._affectsGlyphMargin||(this._affectsGlyphMargin=!!e.glyphMarginClassName),this._affectsLineNumber||(this._affectsLineNumber=!!e.lineNumberClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines,this._affectedLineHeights,this._affectedFontLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(e)}}class DidChangeContentEmitter extends Disposable$1{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)}}const ILanguageFeaturesService=createDecorator("ILanguageFeaturesService");class MonospaceLineBreaksComputerFactory{static create(e){return new MonospaceLineBreaksComputerFactory(e.get(151),e.get(150))}constructor(e,t){this.classifier=new WrappingCharacterClassifier(e,t)}createLineBreaksComputer(e,t,r,s,a,l){const c=[],d=[],u=[];return{addRequest:(g,f,m)=>{c.push(g),d.push(f),u.push(m)},finalize:()=>{const g=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,f=[];for(let m=0,_=c.length;m<_;m++){const v=d[m],b=u[m],C=c[m],y=l&&C.includes('"')&&C.includes("\\n");b&&!b.injectionOptions&&!v&&!y?f[m]=createLineBreaksFromPreviousLineBreaks(this.classifier,b,C,t,r,g,s,a):f[m]=createLineBreaks(this.classifier,C,v,t,r,g,s,a,y)}return arrPool1.length=0,arrPool2.length=0,f}}}}class WrappingCharacterClassifier extends CharacterClassifier{constructor(e,t){super(0);for(let r=0;r<e.length;r++)this.set(e.charCodeAt(r),1);for(let r=0;r<t.length;r++)this.set(t.charCodeAt(r),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,r,s,a,l,c){if(s===-1)return null;const d=t.length;if(d<=1)return null;const u=c==="keepAll",g=e.breakOffsets,f=e.breakOffsetsVisibleColumn,m=computeWrappedTextIndentLength(t,r,s,a,l),_=s-m,v=arrPool1,b=arrPool2;let C=0,y=0,S=0,w=s;const E=g.length;let x=0;if(x>=0){let L=Math.abs(f[x]-w);for(;x+1<E;){const k=Math.abs(f[x+1]-w);if(k>=L)break;L=k,x++}}for(;x<E;){let L=x<0?0:g[x],k=x<0?0:f[x];y>L&&(L=y,k=S);let D=0,I=0,T=0,M=0;if(k<=w){let N=k,A=L===0?0:t.charCodeAt(L-1),O=L===0?0:o.get(A),P=!0;for(let F=L;F<d;F++){const B=F,H=t.charCodeAt(F);let V,U;if(isHighSurrogate(H)?(F++,V=0,U=2):(V=o.get(H),U=computeCharWidth(H,N,r,a)),B>y&&canBreak(A,O,H,V,u)&&(D=B,I=N),N+=U,N>w){B>y?(T=B,M=N-U):(T=F+1,M=N),N-I>_&&(D=0),P=!1;break}A=H,O=V}if(P){C>0&&(v[C]=g[g.length-1],b[C]=f[g.length-1],C++);break}}if(D===0){let N=k,A=t.charCodeAt(L),O=o.get(A),P=!1;for(let F=L-1;F>=y;F--){const B=F+1,H=t.charCodeAt(F);if(H===9){P=!0;break}let V,U;if(isLowSurrogate(H)?(F--,V=0,U=2):(V=o.get(H),U=isFullWidthCharacter(H)?a:1),N<=w){if(T===0&&(T=B,M=N),N<=w-_)break;if(canBreak(H,V,A,O,u)){D=B,I=N;break}}N-=U,A=H,O=V}if(D!==0){const F=_-(M-I);if(F<=r){const B=t.charCodeAt(T);let H;isHighSurrogate(B)?H=2:H=computeCharWidth(B,M,r,a),F-H<0&&(D=0)}}if(P){x--;continue}}if(D===0&&(D=T,I=M),D<=y){const N=t.charCodeAt(y);isHighSurrogate(N)?(D=y+2,I=S+2):(D=y+1,I=S+computeCharWidth(N,S,r,a))}for(y=D,v[C]=D,S=I,b[C]=I,C++,w=I+_;x<0||x<E&&f[x]<I;)x++;let R=Math.abs(f[x]-w);for(;x+1<E;){const N=Math.abs(f[x+1]-w);if(N>=R)break;R=N,x++}}return C===0?null:(v.length=C,b.length=C,arrPool1=e.breakOffsets,arrPool2=e.breakOffsetsVisibleColumn,e.breakOffsets=v,e.breakOffsetsVisibleColumn=b,e.wrappedTextIndentLength=m,e)}function createLineBreaks(o,e,t,r,s,a,l,c,d){const u=LineInjectedText.applyInjectedText(e,t);let g,f;if(t&&t.length>0?(g=t.map(T=>T.options),f=t.map(T=>T.column-1)):(g=null,f=null),s===-1)return g?new ModelLineProjectionData(f,g,[u.length],[],0):null;const m=u.length;if(m<=1)return g?new ModelLineProjectionData(f,g,[u.length],[],0):null;const _=c==="keepAll",v=computeWrappedTextIndentLength(u,r,s,a,l),b=s-v,C=[],y=[];let S=0,w=0,E=0,x=s,L=u.charCodeAt(0),k=o.get(L),D=computeCharWidth(L,0,r,a),I=1;isHighSurrogate(L)&&(D+=1,L=u.charCodeAt(1),k=o.get(L),I++);for(let T=I;T<m;T++){const M=T,R=u.charCodeAt(T);let N,A,O=!1;isHighSurrogate(R)?(T++,N=0,A=2):(N=o.get(R),A=computeCharWidth(R,D,r,a)),d&&isEscapedLineBreakAtPosition(u,T)?(w=M,E=D,O=!0):canBreak(L,k,R,N,_)&&(w=M,E=D),D+=A,(D>x||O)&&((w===0||D-E>b)&&(w=M,E=D-A),C[S]=w,y[S]=E,S++,x=E+b,w=0),L=R,k=N}return S===0&&(!t||t.length===0)?null:(C[S]=m,y[S]=D,new ModelLineProjectionData(f,g,C,y,v))}function computeCharWidth(o,e,t,r){return o===9?t-e%t:isFullWidthCharacter(o)||o<32?r:1}function tabCharacterWidth(o,e){return e-o%e}function isEscapedLineBreakAtPosition(o,e){if(e>=2&&o.charAt(e-1)==="n"){let t=0;for(let r=e-2;r>=0;r--)if(o.charAt(r)==="\\")t++;else return t%2===1}return!1}function canBreak(o,e,t,r,s){return t!==32&&(e===2&&r!==2||e!==1&&r===1||!s&&e===3&&r!==2||!s&&r===3&&e!==1)}function computeWrappedTextIndentLength(o,e,t,r,s){let a=0;if(s!==0){const l=firstNonWhitespaceIndex(o);if(l!==-1){for(let d=0;d<l;d++){const u=o.charCodeAt(d)===9?tabCharacterWidth(a,e):1;a+=u}const c=s===3?2:s===2?1:0;for(let d=0;d<c;d++){const u=tabCharacterWidth(a,e);a+=u}a+r>t&&(a=0)}}return a}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,r){this._setState(e,t,r)}static _validatePositionWithCache(e,t,r,s){return t.equals(r)?s:e.normalizePosition(t,2)}static _validateViewState(e,t){const r=t.position,s=t.selectionStart.getStartPosition(),a=t.selectionStart.getEndPosition(),l=e.normalizePosition(r,2),c=this._validatePositionWithCache(e,s,r,l),d=this._validatePositionWithCache(e,a,s,c);return r.equals(l)&&s.equals(c)&&a.equals(d)?t:new SingleCursorState(Range$2.fromPositions(c,d),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+s.column-c.column,l,t.leftoverVisibleColumns+r.column-l.column)}_setState(e,t,r){if(r&&(r=Cursor._validateViewState(e.viewModel,r)),t){const s=e.model.validateRange(t.selectionStart),a=t.selectionStart.equalsRange(s)?t.selectionStartLeftoverVisibleColumns:0,l=e.model.validatePosition(t.position),c=t.position.equals(l)?t.leftoverVisibleColumns:0;t=new SingleCursorState(s,t.selectionStartKind,a,l,c)}else{if(!r)return;const s=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(r.selectionStart)),a=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(r.position));t=new SingleCursorState(s,r.selectionStartKind,r.selectionStartLeftoverVisibleColumns,a,r.leftoverVisibleColumns)}if(r){const s=e.coordinatesConverter.validateViewRange(r.selectionStart,t.selectionStart),a=e.coordinatesConverter.validateViewPosition(r.position,t.position);r=new SingleCursorState(s,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,a,t.leftoverVisibleColumns)}else{const s=e.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),a=e.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),l=new Range$2(s.lineNumber,s.column,a.lineNumber,a.column),c=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);r=new SingleCursorState(l,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,c,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=r,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 findFirstMin(this.cursors,compareBy(e=>e.viewState.position,Position$1.compare)).viewState.position}getBottomMostViewPosition(){return findLastMax(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,r=e.length;if(t<r){const s=r-t;for(let a=0;a<s;a++)this._addSecondaryCursor()}else if(t>r){const s=t-r;for(let a=0;a<s;a++)this._removeSecondaryCursor(this.cursors.length-2)}for(let s=0;s<r;s++)this.cursors[s+1].setState(this.context,e[s].modelState,e[s].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 r=0,s=e.length;r<s;r++)t.push({index:r,selection:e[r].modelState.selection});t.sort(compareBy(r=>r.selection,Range$2.compareRangesUsingStarts));for(let r=0;r<t.length-1;r++){const s=t[r],a=t[r+1],l=s.selection,c=a.selection;if(!this.context.cursorConfig.multiCursorMergeOverlapping)continue;let d;if(c.isEmpty()||l.isEmpty()?d=c.getStartPosition().isBeforeOrEqual(l.getEndPosition()):d=c.getStartPosition().isBefore(l.getEndPosition()),d){const u=s.index<a.index?r:r+1,g=s.index<a.index?r+1:r,f=t[g].index,m=t[u].index,_=t[g].selection,v=t[u].selection;if(!_.equalsSelection(v)){const b=_.plusRange(v),C=_.selectionStartLineNumber===_.startLineNumber&&_.selectionStartColumn===_.startColumn,y=v.selectionStartLineNumber===v.startLineNumber&&v.selectionStartColumn===v.startColumn;let S;f===this.lastAddedCursorIndex?(S=C,this.lastAddedCursorIndex=m):S=y;let w;S?w=new Selection$1(b.startLineNumber,b.startColumn,b.endLineNumber,b.endColumn):w=new Selection$1(b.endLineNumber,b.endColumn,b.startLineNumber,b.startColumn),t[u].selection=w;const E=CursorState$1.fromModelSelection(w);e[m].setState(this.context,E.modelState,E.viewState)}for(const b of t)b.index>f&&b.index--;e.splice(f,1),t.splice(g,1),this._removeSecondaryCursor(f-1),r--}}}}class CursorContext{constructor(e,t,r,s){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=r,this.cursorConfig=s}}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,r){this.selections=e,this.modelSelections=t,this.reason=r,this.type=3}}class ViewDecorationsChangedEvent{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler,this.affectsGlyphMargin=e.affectsGlyphMargin,this.affectsLineNumber=e.affectsLineNumber):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0,this.affectsLineNumber=!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,r,s,a,l,c){this.source=e,this.minimalReveal=t,this.range=r,this.selections=s,this.verticalType=a,this.revealHorizontal=l,this.scrollType=c,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$1{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,r=this._outgoingEvents.length;t<r;t++){const s=this._outgoingEvents[t].kind===e.kind?this._outgoingEvents[t].attemptToMerge(e):null;if(s){this._outgoingEvents[t]=s;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,r=this._eventHandlers.length;t<r;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 r of e)this._addOutgoingEvent(r);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 r of t)r.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,r,s){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=r,this.contentHeight=s,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 WidgetFocusChangedEvent{constructor(e,t){this.kind=2,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,r,s,a,l,c,d){this.kind=3,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=r,this._oldScrollTop=s,this.scrollWidth=a,this.scrollLeft=l,this.scrollHeight=c,this.scrollTop=d,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=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class HiddenAreasChangedEvent{constructor(){this.kind=5}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class CursorStateChangedEvent{constructor(e,t,r,s,a,l,c){this.kind=7,this.oldSelections=e,this.selections=t,this.oldModelVersionId=r,this.modelVersionId=s,this.source=a,this.reason=l,this.reachedMaxCursorCount=c}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const r=e.length,s=t.length;if(r!==s)return!1;for(let a=0;a<r;a++)if(!e[a].equalsSelection(t[a]))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=6}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class ModelDecorationsChangedEvent{constructor(e){this.event=e,this.kind=8}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelLanguageChangedEvent{constructor(e){this.event=e,this.kind=9}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelLanguageConfigurationChangedEvent{constructor(e){this.event=e,this.kind=10}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelContentChangedEvent{constructor(e){this.event=e,this.kind=11}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelOptionsChangedEvent{constructor(e){this.event=e,this.kind=12}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelTokensChangedEvent{constructor(e){this.event=e,this.kind=13}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelLineHeightChangedEvent{constructor(e){this.event=e,this.kind=14}isNoOp(){return!1}attemptToMerge(e){return null}}class ModelFontChangedEvent{constructor(e){this.event=e,this.kind=15}isNoOp(){return!1}attemptToMerge(e){return null}}class CursorsController extends Disposable$1{constructor(e,t,r,s){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=r,this.context=new CursorContext(this._model,this._viewModel,this._coordinatesConverter,s),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 r=this._autoClosedActions[t];r.isValid(e)||(r.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,r,s){let a=!1;const l=this.context.cursorConfig.multiCursorLimit;s!==null&&s.length>l&&(s=s.slice(0,l),a=!0);const c=CursorModelState.from(this._model,this);return this._cursors.setStates(s),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,r,c,a)}setCursorColumnSelectData(e){this._columnSelectData=e}revealAll(e,t,r,s,a,l){const c=this._cursors.getViewPositions();let d=null,u=null;c.length>1?u=this._cursors.getViewSelections():d=Range$2.fromPositions(c[0],c[0]),e.emitViewEvent(new ViewRevealRangeRequestEvent(t,r,d,u,s,a,l))}revealPrimary(e,t,r,s,a,l){const d=[this._cursors.getPrimaryCursor().viewState.selection];e.emitViewEvent(new ViewRevealRangeRequestEvent(t,r,null,d,s,a,l))}saveState(){const e=[],t=this._cursors.getSelections();for(let r=0,s=t.length;r<s;r++){const a=t[r];e.push({inSelectionMode:!a.isEmpty(),selectionStart:{lineNumber:a.selectionStartLineNumber,column:a.selectionStartColumn},position:{lineNumber:a.positionLineNumber,column:a.positionColumn}})}return e}restoreState(e,t){const r=[];for(let s=0,a=t.length;s<a;s++){const l=t[s];let c=1,d=1;l.position&&l.position.lineNumber&&(c=l.position.lineNumber),l.position&&l.position.column&&(d=l.position.column);let u=c,g=d;l.selectionStart&&l.selectionStart.lineNumber&&(u=l.selectionStart.lineNumber),l.selectionStart&&l.selectionStart.column&&(g=l.selectionStart.column),r.push({selectionStartLineNumber:u,selectionStartColumn:g,positionLineNumber:c,positionColumn:d})}this.setStates(e,"restoreState",0,CursorState$1.fromModelSelections(r)),this.revealAll(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 r=t.rawContentChangedEvent;if(this._knownModelVersionId=r.versionId,this._isHandling)return;const s=r.containsEvent(1);if(this._prevEditOperationType=0,s)this._cursors.dispose(),this._cursors=new CursorCollection(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,"model",1,null,!1);else if(this._hasFocus&&r.resultingSelection&&r.resultingSelection.length>0){const a=CursorState$1.fromModelSelections(r.resultingSelection);this.setStates(e,"modelChange",r.isUndoing?5:r.isRedoing?6:2,a)&&this.revealAll(e,"modelChange",!1,0,!0,0)}else{const a=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,CursorState$1.fromModelSelections(a))}}}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(),r=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:r.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,r)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,r,s){this.setStates(e,t,s,CursorState$1.fromModelSelections(r))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const r=[],s=[];for(let c=0,d=e.length;c<d;c++)r.push({range:e[c],options:{description:"auto-closed-character",inlineClassName:"auto-closed-character",stickiness:1}}),s.push({range:t[c],options:{description:"auto-closed-enclosing",stickiness:1}});const a=this._model.deltaDecorations([],r),l=this._model.deltaDecorations([],s);this._autoClosedActions.push(new AutoClosedAction(this._model,a,l))}_executeEditOperation(e,t){if(!e)return;e.shouldPushStackElementBefore&&this._model.pushStackElement();const r=CommandExecutor.executeCommands(this._model,this._cursors.getSelections(),e.commands,t);if(r){this._interpretCommandResult(r);const s=[],a=[];for(let l=0;l<e.commands.length;l++){const c=e.commands[l];c instanceof BaseTypeWithAutoClosingCommand&&c.enclosingRange&&c.closeCharacterRange&&(s.push(c.closeCharacterRange),a.push(c.enclosingRange))}s.length>0&&this._pushAutoClosedAction(s,a),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,r,s,a){const l=CursorModelState.from(this._model,this);if(l.equals(s))return!1;const c=this._cursors.getSelections(),d=this._cursors.getViewSelections();if(e.emitViewEvent(new ViewCursorStateChangedEvent(d,c,r)),!s||s.cursorState.length!==l.cursorState.length||l.cursorState.some((u,g)=>!u.modelState.equals(s.cursorState[g].modelState))){const u=s?s.cursorState.map(f=>f.modelState.selection):null,g=s?s.modelVersionId:0;e.emitOutgoingEvent(new CursorStateChangedEvent(u,c,g,l.modelVersionId,t||"keyboard",r,a))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let r=0,s=e.length;r<s;r++){const a=e[r];if(!a.text||a.text.indexOf("\n")>=0)return null;const l=a.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!l)return null;const c=l[1],d=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(c);if(!d||d.length!==1)return null;const u=d[0].open,g=a.text.length-l[2].length-1,f=a.text.lastIndexOf(u,g-1);if(f===-1)return null;t.push([f,g])}return t}executeEdits(e,t,r,s,a){let l=null;t==="snippet"&&(l=this._findAutoClosingPairs(r)),l&&(r[0]._isTracked=!0);const c=[],d=[],u=this._model.pushEditOperations(this.getSelections(),r,g=>{if(l)for(let m=0,_=l.length;m<_;m++){const[v,b]=l[m],C=g[m],y=C.range.startLineNumber,S=C.range.startColumn-1+v,w=C.range.startColumn-1+b;c.push(new Range$2(y,w+1,y,w+2)),d.push(new Range$2(y,S+1,y,w+2))}const f=s(g);return f&&(this._isHandling=!0),f},void 0,a);u&&(this._isHandling=!1,this.setSelections(e,t,u,0)),c.length>0&&this._pushAutoClosedAction(c,d)}_executeEdit(e,t,r,s=0){if(this.context.cursorConfig.readOnly)return;const a=CursorModelState.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(l){onUnexpectedError(l)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,r,s,a,!1)&&this.revealAll(t,r,!1,0,!0,0)}getAutoClosedCharacters(){return AutoClosedAction.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new CompositionState(this._model,this.getSelections())}endComposition(e,t){const r=EditSources.cursor({kind:"compositionEnd",detailedSource:t}),s=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,s,this.getSelections(),this.getAutoClosedCharacters()),r)},e,t)}type(e,t,r){const s=EditSources.cursor({kind:"type",detailedSource:r});this._executeEdit(()=>{if(r==="keyboard"){const a=t.length;let l=0;for(;l<a;){const c=nextCharLength(t,l),d=t.substr(l,c);this._executeEditOperation(TypeOperations.typeWithInterceptors(!!this._compositionState,this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),this.getAutoClosedCharacters(),d),s),l+=c}}else this._executeEditOperation(TypeOperations.typeWithoutInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t),s)},e,r)}compositionType(e,t,r,s,a,l){const c=EditSources.cursor({kind:"compositionType",detailedSource:l});if(t.length===0&&r===0&&s===0){if(a!==0){const d=this.getSelections().map(u=>{const g=u.getPosition();return new Selection$1(g.lineNumber,g.column+a,g.lineNumber,g.column+a)});this.setSelections(e,l,d,0)}return}this._executeEdit(()=>{this._executeEditOperation(TypeOperations.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,r,s,a),c)},e,l)}paste(e,t,r,s,a){const l=EditSources.cursor({kind:"paste",detailedSource:a});this._executeEdit(()=>{this._executeEditOperation(TypeOperations.paste(this.context.cursorConfig,this._model,this.getSelections(),t,r,s||[]),l)},e,a,4)}cut(e,t){const r=EditSources.cursor({kind:"cut",detailedSource:t});this._executeEdit(()=>{this._executeEditOperation(DeleteOperations.cut(this.context.cursorConfig,this._model,this.getSelections()),r)},e,t)}executeCommand(e,t,r){const s=EditSources.cursor({kind:"executeCommand",detailedSource:r});this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new EditOperationResult(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}),s)},e,r)}executeCommands(e,t,r){const s=EditSources.cursor({kind:"executeCommands",detailedSource:r});this._executeEdit(()=>{this._executeEditOperation(new EditOperationResult(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}),s)},e,r)}}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,r=this.cursorState.length;t<r;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}}class AutoClosedAction{static getAllAutoClosedCharacters(e){let t=[];for(const r of e)t=t.concat(r.getAutoClosedCharactersRanges());return t}constructor(e,t,r){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=r}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 r=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);r&&e.push(r)}return e}isValid(e){const t=[];for(let r=0;r<this._autoClosedEnclosingDecorations.length;r++){const s=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[r]);if(s&&(t.push(s),s.startLineNumber!==s.endLineNumber))return!1}t.sort(Range$2.compareRangesUsingStarts),e.sort(Range$2.compareRangesUsingStarts);for(let r=0;r<e.length;r++)if(r>=t.length||!t[r].strictContainsRange(e[r]))return!1;return!0}}class CommandExecutor{static executeCommands(e,t,r,s=EditSources.unknown({name:"executeCommands"})){const a={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},l=this._innerExecuteCommands(a,r,s);for(let c=0,d=a.trackedRanges.length;c<d;c++)a.model._setTrackedRange(a.trackedRanges[c],null,0);return l}static _innerExecuteCommands(e,t,r){if(this._arrayIsEmpty(t))return null;const s=this._getEditOperations(e,t);if(s.operations.length===0)return null;const a=s.operations,l=this._getLoserCursorMap(a);if(l.hasOwnProperty("0"))return console.warn("Ignoring commands"),null;const c=[];for(let g=0,f=a.length;g<f;g++)l.hasOwnProperty(a[g].identifier.major.toString())||c.push(a[g]);s.hadTrackedEditOperation&&c.length>0&&(c[0]._isTracked=!0);let d=e.model.pushEditOperations(e.selectionsBefore,c,g=>{const f=[];for(let v=0;v<e.selectionsBefore.length;v++)f[v]=[];for(const v of g)v.identifier&&f[v.identifier.major].push(v);const m=(v,b)=>v.identifier.minor-b.identifier.minor,_=[];for(let v=0;v<e.selectionsBefore.length;v++)f[v].length>0?(f[v].sort(m),_[v]=t[v].computeCursorState(e.model,{getInverseEditOperations:()=>f[v],getTrackedSelection:b=>{const C=parseInt(b,10),y=e.model._getTrackedRange(e.trackedRanges[C]);return e.trackedRangesDirection[C]===0?new Selection$1(y.startLineNumber,y.startColumn,y.endLineNumber,y.endColumn):new Selection$1(y.endLineNumber,y.endColumn,y.startLineNumber,y.startColumn)}})):_[v]=e.selectionsBefore[v];return _},void 0,r);d||(d=e.selectionsBefore);const u=[];for(const g in l)l.hasOwnProperty(g)&&u.push(parseInt(g,10));u.sort((g,f)=>f-g);for(const g of u)d.splice(g,1);return d}static _arrayIsEmpty(e){for(let t=0,r=e.length;t<r;t++)if(e[t])return!1;return!0}static _getEditOperations(e,t){let r=[],s=!1;for(let a=0,l=t.length;a<l;a++){const c=t[a];if(c){const d=this._getEditOperationsFromCommand(e,a,c);r=r.concat(d.operations),s=s||d.hadTrackedEditOperation}}return{operations:r,hadTrackedEditOperation:s}}static _getEditOperationsFromCommand(e,t,r){const s=[];let a=0;const l=(f,m,_=!1)=>{Range$2.isEmpty(f)&&m===""||s.push({identifier:{major:t,minor:a++},range:f,text:m,forceMoveMarkers:_,isAutoWhitespaceEdit:r.insertsAutoWhitespace})};let c=!1;const g={addEditOperation:l,addTrackedEditOperation:(f,m,_)=>{c=!0,l(f,m,_)},trackSelection:(f,m)=>{const _=Selection$1.liftSelection(f);let v;if(_.isEmpty())if(typeof m=="boolean")m?v=2:v=3;else{const y=e.model.getLineMaxColumn(_.startLineNumber);_.startColumn===y?v=2:v=3}else v=1;const b=e.trackedRanges.length,C=e.model._setTrackedRange(null,_,v);return e.trackedRanges[b]=C,e.trackedRangesDirection[b]=_.getDirection(),b.toString()}};try{r.getEditOperations(e.model,g)}catch(f){return onUnexpectedError(f),{operations:[],hadTrackedEditOperation:!1}}return{operations:s,hadTrackedEditOperation:c}}static _getLoserCursorMap(e){e=e.slice(0),e.sort((r,s)=>-Range$2.compareRangesUsingEnds(r.range,s.range));const t={};for(let r=1;r<e.length;r++){const s=e[r-1],a=e[r];if(Range$2.getStartPosition(s.range).isBefore(Range$2.getEndPosition(a.range))){let l;s.identifier.major>a.identifier.major?l=s.identifier.major:l=a.identifier.major,t[l.toString()]=!0;for(let c=0;c<e.length;c++)e[c].identifier.major===l&&(e.splice(c,1),c<r&&r--,c--);r>0&&r--}}return t}}class CompositionLineState{constructor(e,t,r,s){this.text=e,this.lineNumber=t,this.startSelectionOffset=r,this.endSelectionOffset=s}}class CompositionState{static _capture(e,t){const r=[];for(const s of t){if(s.startLineNumber!==s.endLineNumber)return null;const a=s.startLineNumber;r.push(new CompositionLineState(e.getLineContent(a),a,s.startColumn-1,s.endColumn-1))}return r}constructor(e,t){this._original=CompositionState._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;const r=CompositionState._capture(e,t);if(!r||this._original.length!==r.length)return null;const s=[];for(let a=0,l=this._original.length;a<l;a++)s.push(CompositionState._deduceOutcome(this._original[a],r[a]));return s}static _deduceOutcome(e,t){const r=Math.min(e.startSelectionOffset,t.startSelectionOffset,commonPrefixLength(e.text,t.text)),s=Math.min(e.text.length-e.endSelectionOffset,t.text.length-t.endSelectionOffset,commonSuffixLength(e.text,t.text)),a=e.text.substring(r,e.text.length-s),l=r,c=t.text.length-s,d=t.text.substring(l,c),u=new Range$2(t.lineNumber,l+1,t.lineNumber,c+1);return new CompositionOutcome(a,e.startSelectionOffset-r,e.endSelectionOffset-r,d,t.startSelectionOffset-r,t.endSelectionOffset-r,u)}}const fallback={getInitialState:()=>NullState,tokenizeEncoded:(o,e,t)=>nullTokenizeEncoded(0,t)};async function tokenizeToString(o,e,t){if(!t)return _tokenizeToString(e,o.languageIdCodec,fallback);const r=await TokenizationRegistry.getOrCreate(t);return _tokenizeToString(e,o.languageIdCodec,r||fallback)}function tokenizeLineToHTML(o,e,t,r,s,a,l){let c="<div>",d=0,u=0,g=!0;for(let f=0,m=e.getCount();f<m;f++){const _=e.getEndOffset(f);let v="";for(;d<_&&d<s;d++){const b=o.charCodeAt(d),C=b===9;if(u+=isFullWidthCharacter(b)?2:C?0:1,d<r){if(C){const y=u%a;u+=y===0?a:a-y}continue}switch(b){case 9:{const y=u%a,S=y===0?a:a-y;u+=S;let w=S;for(;w>0;)l&&g?(v+="&#160;",g=!1):(v+=" ",g=!0),w--;break}case 60:v+="&lt;",g=!1;break;case 62:v+="&gt;",g=!1;break;case 38:v+="&amp;",g=!1;break;case 0:v+="&#00;",g=!1;break;case 65279:case 8232:case 8233:case 133:v+="<22>",g=!1;break;case 13:v+="&#8203",g=!1;break;case 32:l&&g?(v+="&#160;",g=!1):(v+=" ",g=!0);break;default:v+=String.fromCharCode(b),g=!1}}if(!(_<=r)&&(c+='<span style="'.concat(e.getInlineStyle(f,t),'">').concat(v,"</span>"),_>s||d>=s||r>=s))break}return c+="</div>",c}function _tokenizeToString(o,e,t){let r='<div class="monaco-tokenized-source">';const s=splitLines(o);let a=t.getInitialState();for(let l=0,c=s.length;l<c;l++){const d=s[l];l>0&&(r+="<br/>");const u=t.tokenizeEncoded(d,!0,a);LineTokens.convertToEndOffset(u.tokens,d.length);const f=new LineTokens(u.tokens,d,e).inflate();let m=0;for(let _=0,v=f.getCount();_<v;_++){const b=f.getClassName(_),C=f.getEndOffset(_);r+='<span class="'.concat(b,'">').concat(escape$2(d.substring(m,C)),"</span>"),m=C}a=u.endState}return r+="</div>",r}class CustomLine{constructor(e,t,r,s,a){this.decorationId=e,this.index=t,this.lineNumber=r,this.specialHeight=s,this.prefixSum=a,this.maximumSpecialHeight=s,this.deleted=!1}}class LineHeightsManager{constructor(e,t){if(this._decorationIDToCustomLine=new ArrayMap,this._orderedCustomLines=[],this._pendingSpecialLinesToInsert=[],this._invalidIndex=0,this._hasPending=!1,this._defaultLineHeight=e,t.length>0){for(const r of t)this.insertOrChangeCustomLineHeight(r.decorationId,r.startLineNumber,r.endLineNumber,r.lineHeight);this.commit()}}set defaultLineHeight(e){this._defaultLineHeight=e}get defaultLineHeight(){return this._defaultLineHeight}removeCustomLineHeight(e){const t=this._decorationIDToCustomLine.get(e);if(t){this._decorationIDToCustomLine.delete(e);for(const r of t)r.deleted=!0,this._invalidIndex=Math.min(this._invalidIndex,r.index);this._hasPending=!0}}insertOrChangeCustomLineHeight(e,t,r,s){this.removeCustomLineHeight(e);for(let a=t;a<=r;a++){const l=new CustomLine(e,-1,a,s,0);this._pendingSpecialLinesToInsert.push(l)}this._hasPending=!0}heightForLineNumber(e){const t=this._binarySearchOverOrderedCustomLinesArray(e);return t>=0?this._orderedCustomLines[t].maximumSpecialHeight:this._defaultLineHeight}getAccumulatedLineHeightsIncludingLineNumber(e){const t=this._binarySearchOverOrderedCustomLinesArray(e);if(t>=0)return this._orderedCustomLines[t].prefixSum+this._orderedCustomLines[t].maximumSpecialHeight;if(t===-1)return this._defaultLineHeight*e;const r=-(t+1),s=this._orderedCustomLines[r-1];return s.prefixSum+s.maximumSpecialHeight+this._defaultLineHeight*(e-s.lineNumber)}onLinesDeleted(e,t){const r=t-e+1,s=this._orderedCustomLines.length,a=this._binarySearchOverOrderedCustomLinesArray(e);let l;if(a>=0){l=a;for(let f=a-1;f>=0&&this._orderedCustomLines[f].lineNumber===e;f--)l--}else l=a===-(s+1)&&a!==-1?s-1:-(a+1);const c=this._binarySearchOverOrderedCustomLinesArray(t);let d;if(c>=0){d=c;for(let f=c+1;f<s&&this._orderedCustomLines[f].lineNumber===t;f++)d++}else d=c===-(s+1)&&c!==-1?s-1:-(c+1);const u=d>l,g=d===l&&this._orderedCustomLines[l]&&this._orderedCustomLines[l].lineNumber>=e&&this._orderedCustomLines[l].lineNumber<=t;if(u||g){let f=0;for(let L=l;L<=d;L++)f=Math.max(f,this._orderedCustomLines[L].maximumSpecialHeight);let m=0;if(l>0){const L=this._orderedCustomLines[l-1];m=L.prefixSum+L.maximumSpecialHeight+this._defaultLineHeight*(e-L.lineNumber-1)}else m=e>0?(e-1)*this._defaultLineHeight:0;const _=this._orderedCustomLines[l],v=this._orderedCustomLines[d],b=this._orderedCustomLines[d+1],C=b&&b.lineNumber===t+1?b.maximumSpecialHeight:this._defaultLineHeight,y=v.prefixSum+v.maximumSpecialHeight-_.prefixSum+this._defaultLineHeight*(t-v.lineNumber)+this._defaultLineHeight*(_.lineNumber-e)+C-f,S=new Set,w=[],E=new ArrayMap;let x=0;for(let L=0;L<this._orderedCustomLines.length;L++){const k=this._orderedCustomLines[L];if(L<l)w.push(k),E.add(k.decorationId,k);else if(L>=l&&L<=d){const D=k.decorationId;S.has(D)?x++:(k.index-=x,k.lineNumber=e,k.prefixSum=m,k.maximumSpecialHeight=f,w.push(k),E.add(k.decorationId,k))}else L>d&&(k.index-=x,k.lineNumber-=r,k.prefixSum-=y,w.push(k),E.add(k.decorationId,k));S.add(k.decorationId)}this._orderedCustomLines=w,this._decorationIDToCustomLine=E}else{const f=r*this._defaultLineHeight;for(let m=d;m<this._orderedCustomLines.length;m++){const _=this._orderedCustomLines[m];_.lineNumber>t&&(_.lineNumber-=r,_.prefixSum-=f)}}}onLinesInserted(e,t){const r=t-e+1,s=this._binarySearchOverOrderedCustomLinesArray(e);let a;if(s>=0){a=s;for(let g=s-1;g>=0&&this._orderedCustomLines[g].lineNumber===e;g--)a--}else a=-(s+1);const l=[],c=new Set;for(let g=a;g<this._orderedCustomLines.length;g++)this._orderedCustomLines[g].lineNumber===e&&c.add(this._orderedCustomLines[g].decorationId);const d=new Set;for(let g=a-1;g>=0;g--)this._orderedCustomLines[g].lineNumber===e-1&&d.add(this._orderedCustomLines[g].decorationId);const u=intersection(d,c);for(let g=a;g<this._orderedCustomLines.length;g++)this._orderedCustomLines[g].lineNumber+=r,this._orderedCustomLines[g].prefixSum+=this._defaultLineHeight*r;if(u.size>0){for(const g of u){const f=this._decorationIDToCustomLine.get(g);if(f){const m=f.reduce((b,C)=>Math.min(b,C.lineNumber),e),_=f.reduce((b,C)=>Math.max(b,C.lineNumber),e),v=f.reduce((b,C)=>Math.max(b,C.specialHeight),0);l.push({decorationId:g,startLineNumber:m,endLineNumber:_,lineHeight:v})}}for(const g of l)this.insertOrChangeCustomLineHeight(g.decorationId,g.startLineNumber,g.endLineNumber,g.lineHeight);this.commit()}}commit(){if(!this._hasPending)return;for(const a of this._pendingSpecialLinesToInsert){const l=this._binarySearchOverOrderedCustomLinesArray(a.lineNumber),c=l>=0?l:-(l+1);this._orderedCustomLines.splice(c,0,a),this._invalidIndex=Math.min(this._invalidIndex,c)}this._pendingSpecialLinesToInsert=[];const e=new ArrayMap,t=[];for(let a=0;a<this._invalidIndex;a++){const l=this._orderedCustomLines[a];t.push(l),e.add(l.decorationId,l)}let r=0,s=this._invalidIndex>0?t[this._invalidIndex-1]:void 0;for(let a=this._invalidIndex;a<this._orderedCustomLines.length;a++){const l=this._orderedCustomLines[a];if(l.deleted){r++;continue}if(l.index=a-r,s&&s.lineNumber===l.lineNumber)l.maximumSpecialHeight=s.maximumSpecialHeight,l.prefixSum=s.prefixSum;else{let c=l.specialHeight;for(let u=a;u<this._orderedCustomLines.length;u++){const g=this._orderedCustomLines[u];if(!g.deleted){if(g.lineNumber!==l.lineNumber)break;c=Math.max(c,g.specialHeight)}}l.maximumSpecialHeight=c;let d;s?d=s.prefixSum+s.maximumSpecialHeight+this._defaultLineHeight*(l.lineNumber-s.lineNumber-1):d=this._defaultLineHeight*(l.lineNumber-1),l.prefixSum=d}s=l,t.push(l),e.add(l.decorationId,l)}this._orderedCustomLines=t,this._decorationIDToCustomLine=e,this._invalidIndex=1/0,this._hasPending=!1}_binarySearchOverOrderedCustomLinesArray(e){return binarySearch2(this._orderedCustomLines.length,t=>{const r=this._orderedCustomLines[t];return r.lineNumber===e?0:r.lineNumber<e?-1:1})}}class ArrayMap{constructor(){this._map=new Map}add(e,t){const r=this._map.get(e);r?r.push(t):this._map.set(e,[t])}get(e){return this._map.get(e)}delete(e){this._map.delete(e)}}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)}commit(e){if(!this._hasPending)return;const t=this._inserts,r=this._changes,s=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,r,s)}}class EditorWhitespace{constructor(e,t,r,s,a){this.id=e,this.afterLineNumber=t,this.ordinal=r,this.height=s,this.minWidth=a,this.prefixSum=0}}var fi;let LinesLayout$1=(fi=class{constructor(e,t,r,s,a){this._instanceId=singleLetterHash(++fi.INSTANCE_COUNT),this._pendingChanges=new PendingChanges,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._paddingTop=r,this._paddingBottom=s,this._lineHeightsManager=new LineHeightsManager(t,a)}static findInsertionIndex(e,t,r){let s=0,a=e.length;for(;s<a;){const l=s+a>>>1;t===e[l].afterLineNumber?r<e[l].ordinal?a=l:s=l+1:t<e[l].afterLineNumber?a=l:s=l+1}return s}setDefaultLineHeight(e){this._lineHeightsManager.defaultLineHeight=e}setPadding(e,t){this._paddingTop=e,this._paddingBottom=t}onFlushed(e,t){this._lineCount=e,this._lineHeightsManager=new LineHeightsManager(this._lineHeightsManager.defaultLineHeight,t)}changeLineHeights(e){let t=!1;try{e({insertOrChangeCustomLineHeight:(s,a,l,c)=>{t=!0,this._lineHeightsManager.insertOrChangeCustomLineHeight(s,a,l,c)},removeCustomLineHeight:s=>{t=!0,this._lineHeightsManager.removeCustomLineHeight(s)}})}finally{this._lineHeightsManager.commit()}return t}changeWhitespace(e){let t=!1;try{e({insertWhitespace:(s,a,l,c)=>{t=!0,s=s|0,a=a|0,l=l|0,c=c|0;const d=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new EditorWhitespace(d,s,a,l,c)),d},changeOneWhitespace:(s,a,l)=>{t=!0,a=a|0,l=l|0,this._pendingChanges.change({id:s,newAfterLineNumber:a,newHeight:l})},removeWhitespace:s=>{t=!0,this._pendingChanges.remove({id:s})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,r){if((e.length>0||r.length>0)&&(this._minWidth=-1),e.length+t.length+r.length<=1){for(const d of e)this._insertWhitespace(d);for(const d of t)this._changeOneWhitespace(d.id,d.newAfterLineNumber,d.newHeight);for(const d of r){const u=this._findWhitespaceIndex(d.id);u!==-1&&this._removeWhitespace(u)}return}const s=new Set;for(const d of r)s.add(d.id);const a=new Map;for(const d of t)a.set(d.id,d);const l=d=>{const u=[];for(const g of d)if(!s.has(g.id)){if(a.has(g.id)){const f=a.get(g.id);g.afterLineNumber=f.newAfterLineNumber,g.height=f.newHeight}u.push(g)}return u},c=l(this._arr).concat(l(e));c.sort((d,u)=>d.afterLineNumber===u.afterLineNumber?d.ordinal-u.ordinal:d.afterLineNumber-u.afterLineNumber),this._arr=c,this._prefixSumValidIndex=-1}_insertWhitespace(e){const t=fi.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 r=0,s=t.length;r<s;r++)if(t[r].id===e)return r;return-1}_changeOneWhitespace(e,t,r){const s=this._findWhitespaceIndex(e);if(s!==-1&&(this._arr[s].height!==r&&(this._arr[s].height=r,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,s-1)),this._arr[s].afterLineNumber!==t)){const a=this._arr[s];this._removeWhitespace(s),a.afterLineNumber=t,this._insertWhitespace(a)}}_removeWhitespace(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}onLinesDeleted(e,t){e=e|0,t=t|0,this._lineCount-=t-e+1;for(let r=0,s=this._arr.length;r<s;r++){const a=this._arr[r].afterLineNumber;e<=a&&a<=t?this._arr[r].afterLineNumber=e-1:a>t&&(this._arr[r].afterLineNumber-=t-e+1)}this._lineHeightsManager.onLinesDeleted(e,t)}onLinesInserted(e,t){e=e|0,t=t|0,this._lineCount+=t-e+1;for(let r=0,s=this._arr.length;r<s;r++){const a=this._arr[r].afterLineNumber;e<=a&&(this._arr[r].afterLineNumber+=t-e+1)}this._lineHeightsManager.onLinesInserted(e,t)}getWhitespacesTotalHeight(){return this._arr.length===0?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}getWhitespacesAccumulatedHeight(e){e=e|0;let t=Math.max(0,this._prefixSumValidIndex+1);t===0&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(let r=t;r<=e;r++)this._arr[r].prefixSum=this._arr[r-1].prefixSum+this._arr[r].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}getLinesTotalHeight(){const e=this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(this._lineCount),t=this.getWhitespacesTotalHeight();return e+t+this._paddingTop+this._paddingBottom}getWhitespaceAccumulatedHeightBeforeLineNumber(e){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 r=0,s=t.length-1;for(;r<=s;){const l=(s-r|0)/2|0,c=r+l|0;if(t[c].afterLineNumber<e){if(c+1>=t.length||t[c+1].afterLineNumber>=e)return c;r=c+1|0}else s=c-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e=e|0;const r=this._findLastWhitespaceBeforeLineNumber(e)+1;return r<this._arr.length?r:-1}getFirstWhitespaceIndexAfterLineNumber(e){return e=e|0,this._findFirstWhitespaceAfterLineNumber(e)}getVerticalOffsetForLineNumber(e,t=!1){e=e|0;let r;e>1?r=this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(e-1):r=0;const s=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0));return r+s+this._paddingTop}getLineHeightForLineNumber(e){return this._lineHeightsManager.heightForLineNumber(e)}getVerticalOffsetAfterLineNumber(e,t=!1){e=e|0;const r=this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(e),s=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0));return r+s+this._paddingTop}getWhitespaceMinWidth(){if(this._minWidth===-1){let e=0;for(let t=0,r=this._arr.length;t<r;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}isAfterLines(e){const t=this.getLinesTotalHeight();return e>t}isInTopPadding(e){return this._paddingTop===0?!1:e<this._paddingTop}isInBottomPadding(e){if(this._paddingBottom===0)return!1;const t=this.getLinesTotalHeight();return e>=t-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(e=e|0,e<0)return 1;const t=this._lineCount|0;let r=1,s=t;for(;r<s;){const a=(r+s)/2|0,l=this.getLineHeightForLineNumber(a),c=this.getVerticalOffsetForLineNumber(a)|0;if(e>=c+l)r=a+1;else{if(e>=c)return a;s=a}}return r>t?t:r}getLinesViewportData(e,t){e=e|0,t=t|0;const r=this.getLineNumberAtOrAfterVerticalOffset(e)|0,s=this.getVerticalOffsetForLineNumber(r)|0;let a=this._lineCount|0,l=this.getFirstWhitespaceIndexAfterLineNumber(r)|0;const c=this.getWhitespacesCount()|0;let d,u;l===-1?(l=c,u=a+1,d=0):(u=this.getAfterLineNumberForWhitespaceIndex(l)|0,d=this.getHeightForWhitespaceIndex(l)|0);let g=s,f=g;const m=5e5;let _=0;s>=m&&(_=Math.floor(s/m)*m,_=Math.floor(_/this._lineHeightsManager.defaultLineHeight)*this._lineHeightsManager.defaultLineHeight,f-=_);const v=[],b=e+(t-e)/2;let C=-1;for(let E=r;E<=a;E++){const x=this.getLineHeightForLineNumber(E);if(C===-1){const L=g,k=g+x;(L<=b&&b<k||L>b)&&(C=E)}for(g+=x,v[E-r]=f,f+=x;u===E;)f+=d,g+=d,l++,l>=c?u=a+1:(u=this.getAfterLineNumberForWhitespaceIndex(l)|0,d=this.getHeightForWhitespaceIndex(l)|0);if(g>=t){a=E;break}}C===-1&&(C=a);const y=this.getVerticalOffsetForLineNumber(a)|0;let S=r,w=a;if(S<w&&s<e&&S++,S<w){const E=this.getLineHeightForLineNumber(a);y+E>t&&w--}return{bigNumbersDelta:_,startLineNumber:r,endLineNumber:a,relativeVerticalOffset:v,centeredLineNumber:C,completelyVisibleStartLineNumber:S,completelyVisibleEndLineNumber:w,lineHeight:this._lineHeightsManager.defaultLineHeight}}getVerticalOffsetForWhitespaceIndex(e){e=e|0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let r;t>=1?r=this._lineHeightsManager.getAccumulatedLineHeightsIncludingLineNumber(t):r=0;let s;return e>0?s=this.getWhitespacesAccumulatedHeight(e-1):s=0,r+s+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){e=e|0;let t=0,r=this.getWhitespacesCount()-1;if(r<0)return-1;const s=this.getVerticalOffsetForWhitespaceIndex(r),a=this.getHeightForWhitespaceIndex(r);if(e>=s+a)return-1;for(;t<r;){const l=Math.floor((t+r)/2),c=this.getVerticalOffsetForWhitespaceIndex(l),d=this.getHeightForWhitespaceIndex(l);if(e>=c+d)t=l+1;else{if(e>=c)return l;r=l}}return t}getWhitespaceAtVerticalOffset(e){e=e|0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;const r=this.getVerticalOffsetForWhitespaceIndex(t);if(r>e)return null;const s=this.getHeightForWhitespaceIndex(t),a=this.getIdForWhitespaceIndex(t),l=this.getAfterLineNumberForWhitespaceIndex(t);return{id:a,afterLineNumber:l,verticalOffset:r,height:s}}getWhitespaceViewportData(e,t){e=e|0,t=t|0;const r=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),s=this.getWhitespacesCount()-1;if(r<0)return[];const a=[];for(let l=r;l<=s;l++){const c=this.getVerticalOffsetForWhitespaceIndex(l),d=this.getHeightForWhitespaceIndex(l);if(c>=t)break;a.push({id:this.getIdForWhitespaceIndex(l),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(l),verticalOffset:c,height:d})}return a}getWhitespaces(){return this._arr.slice(0)}getWhitespacesCount(){return this._arr.length}getIdForWhitespaceIndex(e){return e=e|0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return e=e|0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return e=e|0,this._arr[e].height}},fi.INSTANCE_COUNT=0,fi);const SMOOTH_SCROLLING_TIME=125;class EditorScrollDimensions{constructor(e,t,r,s){e=e|0,t=t|0,r=r|0,s=s|0,e<0&&(e=0),t<0&&(t=0),r<0&&(r=0),s<0&&(s=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=r,this.contentHeight=s,this.scrollHeight=Math.max(r,s)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class EditorScrollable extends Disposable$1{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$1({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 r=t.contentWidth!==e.contentWidth,s=t.contentHeight!==e.contentHeight;(r||s)&&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$1{constructor(e,t,r,s){super(),this._configuration=e;const a=this._configuration.options,l=a.get(165),c=a.get(96);this._linesLayout=new LinesLayout$1(t,a.get(75),c.top,c.bottom,r),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new EditorScrollable(0,s)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new EditorScrollDimensions(l.contentWidth,0,l.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(130)?SMOOTH_SCROLLING_TIME:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(75)&&this._linesLayout.setDefaultLineHeight(t.get(75)),e.hasChanged(96)){const r=t.get(96);this._linesLayout.setPadding(r.top,r.bottom)}if(e.hasChanged(165)){const r=t.get(165),s=r.contentWidth,a=r.height,l=this._scrollable.getScrollDimensions(),c=l.contentWidth;this._scrollable.setScrollDimensions(new EditorScrollDimensions(s,l.contentWidth,a,this._getContentHeight(s,a,c)))}else this._updateHeight();e.hasChanged(130)&&this._configureSmoothScrollDuration()}onFlushed(e,t){this._linesLayout.onFlushed(e,t)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){const s=this._configuration.options.get(117);return s.horizontal===2||e>=t?0:s.horizontalScrollbarSize}_getContentHeight(e,t,r){const s=this._configuration.options;let a=this._linesLayout.getLinesTotalHeight();return s.get(119)?a+=Math.max(0,t-s.get(75)-s.get(96).bottom):s.get(117).ignoreHorizontalScrollbarInContentHeight||(a+=this._getHorizontalScrollbarHeight(e,r)),a}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,r=e.height,s=e.contentWidth;this._scrollable.setScrollDimensions(new EditorScrollDimensions(t,e.contentWidth,r,this._getContentHeight(t,r,s)))}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,r=e.get(166),s=e.get(59),a=e.get(165);if(r.isViewportWrapping){const l=e.get(81);return t>a.contentWidth+s.typicalHalfwidthCharacterWidth&&l.enabled&&l.side==="right"?t+a.verticalScrollbarWidth:t}else{const l=e.get(118)*s.typicalHalfwidthCharacterWidth,c=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+l+a.verticalScrollbarWidth,c,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,r=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t),s=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(r);return{scrollTop:t,scrollTopWithoutViewZones:t-s,scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}changeSpecialLineHeights(e){const t=this._linesLayout.changeLineHeights(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)}getLineHeightForLineNumber(e){return this._linesLayout.getLineHeightForLineNumber(e)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){const t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){t===1?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){const r=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:r.scrollLeft+e,scrollTop:r.scrollTop+t})}}class InlineDecoration{constructor(e,t,r){this.range=e,this.inlineClassName=t,this.type=r}}class SingleLineInlineDecoration{constructor(e,t,r,s){this.startOffset=e,this.endOffset=t,this.inlineClassName=r,this.inlineClassNameAffectsLetterSpacing=s}toInlineDecoration(e){return new InlineDecoration(new Range$2(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class ViewModelDecorations{constructor(e,t,r,s,a){this.editorId=e,this.model=t,this.configuration=r,this._linesCollection=s,this._coordinatesConverter=a,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 r=this._decorationsCache[t];if(!r){const s=e.range,a=e.options;let l;if(a.isWholeLine){const c=this._coordinatesConverter.convertModelPositionToViewPosition(new Position$1(s.startLineNumber,1),0,!1,!0),d=this._coordinatesConverter.convertModelPositionToViewPosition(new Position$1(s.endLineNumber,this.model.getLineMaxColumn(s.endLineNumber)),1);l=new Range$2(c.lineNumber,c.column,d.lineNumber,d.column)}else l=this._coordinatesConverter.convertModelRangeToViewRange(s,1);r=new ViewModelDecoration(l,a),this._decorationsCache[t]=r}return r}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}getDecorationsOnLine(e,t=!1,r=!1){const s=new Range$2(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(s,t,r)}_getDecorationsInRange(e,t,r){const s=this._linesCollection.getDecorationsInRange(e,this.editorId,filterValidationDecorations(this.configuration.options),filterFontDecorations(this.configuration.options),t,r),a=e.startLineNumber,l=e.endLineNumber,c=[];let d=0;const u=[];for(let f=a;f<=l;f++)u[f-a]=[];let g=!1;for(let f=0,m=s.length;f<m;f++){const _=s[f],v=_.options;if(!isModelDecorationVisible(this.model,_))continue;const b=this._getOrCreateViewModelDecoration(_),C=b.range;if(c[d++]=b,v.inlineClassName){const y=new InlineDecoration(C,v.inlineClassName,v.inlineClassNameAffectsLetterSpacing?3:0),S=Math.max(a,C.startLineNumber),w=Math.min(l,C.endLineNumber);for(let E=S;E<=w;E++)u[E-a].push(y)}if(v.beforeContentClassName&&a<=C.startLineNumber&&C.startLineNumber<=l){const y=new InlineDecoration(new Range$2(C.startLineNumber,C.startColumn,C.startLineNumber,C.startColumn),v.beforeContentClassName,1);u[C.startLineNumber-a].push(y)}if(v.afterContentClassName&&a<=C.endLineNumber&&C.endLineNumber<=l){const y=new InlineDecoration(new Range$2(C.endLineNumber,C.endColumn,C.endLineNumber,C.endColumn),v.afterContentClassName,2);u[C.endLineNumber-a].push(y)}v.affectsFont&&(g=!0)}return{decorations:c,inlineDecorations:u,hasVariableFonts:g}}}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,r){this._assertVisible();const s=r>0?this._projectionData.breakOffsets[r-1]:0,a=this._projectionData.breakOffsets[r];let l;if(this._projectionData.injectionOffsets!==null){const c=this._projectionData.injectionOffsets.map((u,g)=>new LineInjectedText(0,0,u+1,this._projectionData.injectionOptions[g],0));l=LineInjectedText.applyInjectedText(e.getLineContent(t),c).substring(s,a)}else l=e.getValueInRange({startLineNumber:t,startColumn:s+1,endLineNumber:t,endColumn:a+1});return r>0&&(l=spaces(this._projectionData.wrappedTextIndentLength)+l),l}getViewLineLength(e,t,r){return this._assertVisible(),this._projectionData.getLineLength(r)}getViewLineMinColumn(e,t,r){return this._assertVisible(),this._projectionData.getMinOutputOffset(r)+1}getViewLineMaxColumn(e,t,r){return this._assertVisible(),this._projectionData.getMaxOutputOffset(r)+1}getViewLineData(e,t,r){const s=new Array;return this.getViewLinesData(e,t,r,1,0,[!0],s),s[0]}getViewLinesData(e,t,r,s,a,l,c){this._assertVisible();const d=this._projectionData,u=d.injectionOffsets,g=d.injectionOptions;let f=null;if(u){f=[];let _=0,v=0;for(let b=0;b<d.getOutputLineCount();b++){const C=new Array;f[b]=C;const y=b>0?d.breakOffsets[b-1]:0,S=d.breakOffsets[b];for(;v<u.length;){const w=g[v].content.length,E=u[v]+_,x=E+w;if(E>S)break;if(y<x){const L=g[v];if(L.inlineClassName){const k=b>0?d.wrappedTextIndentLength:0,D=k+Math.max(E-y,0),I=k+Math.min(x-y,S-y);D!==I&&C.push(new SingleLineInlineDecoration(D,I,L.inlineClassName,L.inlineClassNameAffectsLetterSpacing))}}if(x<=S)_+=w,v++;else break}}}let m;if(u){const _=[];for(let v=0;v<u.length;v++){const b=u[v],C=g[v].tokens;C?C.forEach((y,S)=>{_.push({offset:b,text:y.substring(g[v].content),tokenMetadata:S.metadata})}):_.push({offset:b,text:g[v].content,tokenMetadata:LineTokens.defaultTokenMetadata})}m=e.tokenization.getLineTokens(t).withInserted(_)}else m=e.tokenization.getLineTokens(t);for(let _=r;_<r+s;_++){const v=a+_-r;if(!l[v]){c[v]=null;continue}c[v]=this._getViewLineData(m,f?f[_]:null,_)}}_getViewLineData(e,t,r){this._assertVisible();const s=this._projectionData,a=r>0?s.wrappedTextIndentLength:0,l=r>0?s.breakOffsets[r-1]:0,c=s.breakOffsets[r],d=e.sliceAndInflate(l,c,a);let u=d.getLineContent();r>0&&(u=spaces(s.wrappedTextIndentLength)+u);const g=this._projectionData.getMinOutputOffset(r)+1,f=u.length+1,m=r+1<this.getViewLineCount(),_=r===0?0:s.breakOffsetsVisibleColumn[r-1];return new ViewLineData(u,m,g,f,_,d,t)}getModelColumnOfViewPosition(e,t){return this._assertVisible(),this._projectionData.translateToInputOffset(e,t-1)+1}getViewPositionOfModelPosition(e,t,r=2){return this._assertVisible(),this._projectionData.translateToOutputPosition(t-1,r).toPosition(e)}getViewLineNumberOfModelPosition(e,t){this._assertVisible();const r=this._projectionData.translateToOutputPosition(t-1);return e+r.outputLineIndex}normalizePosition(e,t,r){const s=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,r).toPosition(s)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw new Error("Not supported")}}const Eo=class Eo{constructor(){}isVisible(){return!0}setVisible(e){return e?this:HiddenModelLineProjection.INSTANCE}getProjectionData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,r){return e.getLineContent(t)}getViewLineLength(e,t,r){return e.getLineLength(t)}getViewLineMinColumn(e,t,r){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,r){return e.getLineMaxColumn(t)}getViewLineData(e,t,r){const s=e.tokenization.getLineTokens(t),a=s.getLineContent();return new ViewLineData(a,!1,1,a.length+1,0,s.inflate(),null)}getViewLinesData(e,t,r,s,a,l,c){if(!l[a]){c[a]=null;return}c[a]=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,r){return t}getInjectedTextAt(e,t){return null}};Eo.INSTANCE=new Eo;let IdentityModelLineProjection=Eo;const Lo=class Lo{constructor(){}isVisible(){return!1}setVisible(e){return e?IdentityModelLineProjection.INSTANCE:this}getProjectionData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,r){throw new Error("Not supported")}getViewLineLength(e,t,r){throw new Error("Not supported")}getViewLineMinColumn(e,t,r){throw new Error("Not supported")}getViewLineMaxColumn(e,t,r){throw new Error("Not supported")}getViewLineData(e,t,r){throw new Error("Not supported")}getViewLinesData(e,t,r,s,a,l,c){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,r){throw new Error("Not supported")}getInjectedTextAt(e,t){throw new Error("Not supported")}};Lo.INSTANCE=new Lo;let HiddenModelLineProjection=Lo;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 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 r=this.values,s=this.prefixSum,a=t.length;return a===0?!1:(this.values=new Uint32Array(r.length+a),this.values.set(r.subarray(0,e),0),this.values.set(r.subarray(e),e+a),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(s.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 r=this.values,s=this.prefixSum;if(e>=r.length)return!1;const a=r.length-e;return t>=a&&(t=a),t===0?!1:(this.values=new Uint32Array(r.length-t),this.values.set(r.subarray(0,e),0),this.values.set(r.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(s.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 r=t;r<=e;r++)this.prefixSum[r]=this.prefixSum[r-1]+this.values[r];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,r=this.values.length-1,s=0,a=0,l=0;for(;t<=r;)if(s=t+(r-t)/2|0,a=this.prefixSum[s],l=a-this.values[s],e<l)r=s-1;else if(e>=a)t=s+1;else break;return new PrefixSumIndexOfResult(s,e-l)}}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],r=t>0?this._prefixSum[t-1]:0;return new PrefixSumIndexOfResult(t,e-r)}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 r=this._values[e],s=e>0?this._prefixSum[e-1]:0;this._prefixSum[e]=s+r;for(let a=0;a<r;a++)this._indexBySum[s+a]=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 IdentityCoordinatesConverter{constructor(e){this._model=e}_validPosition(e){return this._model.validatePosition(e)}_validRange(e){return this._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._model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}class ViewModelLinesFromProjectedModel{constructor(e,t,r,s,a,l,c,d,u,g,f){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=r,this._monospaceLineBreaksComputerFactory=s,this.fontInfo=a,this.tabSize=l,this.wrappingStrategy=c,this.wrappingColumn=d,this.wrappingIndent=u,this.wordBreak=g,this.wrapOnEscapedLineFeeds=f,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 r=this.model.getLinesContent(),s=this.model.getInjectedTextDecorations(this._editorId),a=r.length,l=this.createLineBreaksComputer(),c=new ArrayQueue(LineInjectedText.fromDecorations(s));for(let b=0;b<a;b++){const C=c.takeWhile(y=>y.lineNumber===b+1);l.addRequest(r[b],C,t?t[b]:null)}const d=l.finalize(),u=[],g=this.hiddenAreasDecorationIds.map(b=>this.model.getDecorationRange(b)).sort(Range$2.compareRangesUsingStarts);let f=1,m=0,_=-1,v=_+1<g.length?m+1:a+2;for(let b=0;b<a;b++){const C=b+1;C===v&&(_++,f=g[_].startLineNumber,m=g[_].endLineNumber,v=_+1<g.length?m+1:a+2);const y=C>=f&&C<=m,S=createModelLineProjection(d[b],!y);u[b]=S.getViewLineCount(),this.modelLineProjections[b]=S}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new ConstantTimePrefixSumComputer(u)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){const t=e.map(m=>this.model.validateRange(m)),r=normalizeLineRanges(t),s=this.hiddenAreasDecorationIds.map(m=>this.model.getDecorationRange(m)).sort(Range$2.compareRangesUsingStarts);if(r.length===s.length){let m=!1;for(let _=0;_<r.length;_++)if(!r[_].equalsRange(s[_])){m=!0;break}if(!m)return!1}const a=r.map(m=>({range:m,options:ModelDecorationOptions.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,a);const l=r;let c=1,d=0,u=-1,g=u+1<l.length?d+1:this.modelLineProjections.length+2,f=!1;for(let m=0;m<this.modelLineProjections.length;m++){const _=m+1;_===g&&(u++,c=l[u].startLineNumber,d=l[u].endLineNumber,g=u+1<l.length?d+1:this.modelLineProjections.length+2);let v=!1;if(_>=c&&_<=d?this.modelLineProjections[m].isVisible()&&(this.modelLineProjections[m]=this.modelLineProjections[m].setVisible(!1),v=!0):(f=!0,this.modelLineProjections[m].isVisible()||(this.modelLineProjections[m]=this.modelLineProjections[m].setVisible(!0),v=!0)),v){const b=this.modelLineProjections[m].getViewLineCount();this.projectedModelLineLineCounts.setValue(m,b)}}return f||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,r,s,a){const l=this.fontInfo.equals(e),c=this.wrappingStrategy===t,d=this.wrappingColumn===r,u=this.wrappingIndent===s,g=this.wordBreak===a;if(l&&c&&d&&u&&g)return!1;const f=l&&c&&!d&&u&&g;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=r,this.wrappingIndent=s,this.wordBreak=a;let m=null;if(f){m=[];for(let _=0,v=this.modelLineProjections.length;_<v;_++)m[_]=this.modelLineProjections[_].getProjectionData()}return this._constructLines(!1,m),!0}createLineBreaksComputer(){return(this.wrappingStrategy==="advanced"?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent,this.wordBreak,this.wrapOnEscapedLineFeeds)}onModelFlushed(){this._constructLines(!0,null)}onModelLinesDeleted(e,t,r){if(!e||e<=this._validModelVersionId)return null;const s=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,a=this.projectedModelLineLineCounts.getPrefixSum(r);return this.modelLineProjections.splice(t-1,r-t+1),this.projectedModelLineLineCounts.removeValues(t-1,r-t+1),new ViewLinesDeletedEvent(s,a)}onModelLinesInserted(e,t,r,s){if(!e||e<=this._validModelVersionId)return null;const a=t>2&&!this.modelLineProjections[t-2].isVisible(),l=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let c=0;const d=[],u=[];for(let g=0,f=s.length;g<f;g++){const m=createModelLineProjection(s[g],!a);d.push(m);const _=m.getViewLineCount();c+=_,u[g]=_}return this.modelLineProjections=this.modelLineProjections.slice(0,t-1).concat(d).concat(this.modelLineProjections.slice(t-1)),this.projectedModelLineLineCounts.insertValues(t-1,u),new ViewLinesInsertedEvent(l,l+c-1)}onModelLineChanged(e,t,r){if(e!==null&&e<=this._validModelVersionId)return[!1,null,null,null];const s=t-1,a=this.modelLineProjections[s].getViewLineCount(),l=this.modelLineProjections[s].isVisible(),c=createModelLineProjection(r,l);this.modelLineProjections[s]=c;const d=this.modelLineProjections[s].getViewLineCount();let u=!1,g=0,f=-1,m=0,_=-1,v=0,b=-1;a>d?(g=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,f=g+d-1,v=f+1,b=v+(a-d)-1,u=!0):a<d?(g=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,f=g+a-1,m=f+1,_=m+(d-a)-1,u=!0):(g=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,f=g+d-1),this.projectedModelLineLineCounts.setValue(s,d);const C=g<=f?new ViewLinesChangedEvent(g,f-g+1):null,y=m<=_?new ViewLinesInsertedEvent(m,_):null,S=v<=b?new ViewLinesDeletedEvent(v,b):null;return[u,C,y,S]}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,r){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),r=this._toValidViewLineNumber(r);const s=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),a=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),l=this.convertViewPositionToModelPosition(r,this.getViewLineMinColumn(r)),c=this.model.guides.getActiveIndentGuide(s.lineNumber,a.lineNumber,l.lineNumber),d=this.convertModelPositionToViewPosition(c.startLineNumber,1),u=this.convertModelPositionToViewPosition(c.endLineNumber,this.model.getLineMaxColumn(c.endLineNumber));return{startLineNumber:d.lineNumber,endLineNumber:u.lineNumber,indent:c.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),r=t.index,s=t.remainder;return new ViewLineInfo(r+1,s)}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],r=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),s=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,r);return new Position$1(e.modelLineNumber,s)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],r=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),s=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,r);return new Position$1(e.modelLineNumber,s)}getViewLineInfosGroupedByModelRanges(e,t){const r=this.getViewLineInfo(e),s=this.getViewLineInfo(t),a=new Array;let l=this.getModelStartPositionOfViewLine(r),c=new Array;for(let d=r.modelLineNumber;d<=s.modelLineNumber;d++){const u=this.modelLineProjections[d-1];if(u.isVisible()){const g=d===r.modelLineNumber?r.modelLineWrappedLineIdx:0,f=d===s.modelLineNumber?s.modelLineWrappedLineIdx+1:u.getViewLineCount();for(let m=g;m<f;m++)c.push(new ViewLineInfo(d,m))}if(!u.isVisible()&&l){const g=new Position$1(d-1,this.model.getLineMaxColumn(d-1)+1),f=Range$2.fromPositions(l,g);a.push(new ViewLineInfoGroupedByModelRange(f,c)),c=[],l=null}else u.isVisible()&&!l&&(l=new Position$1(d,1))}if(l){const d=Range$2.fromPositions(l,this.getModelEndPositionOfViewLine(s));a.push(new ViewLineInfoGroupedByModelRange(d,c))}return a}getViewLinesBracketGuides(e,t,r,s){const a=r?this.convertViewPositionToModelPosition(r.lineNumber,r.column):null,l=[];for(const c of this.getViewLineInfosGroupedByModelRanges(e,t)){const d=c.modelRange.startLineNumber,u=this.model.guides.getLinesBracketGuides(d,c.modelRange.endLineNumber,a,s);for(const g of c.viewLines){const m=u[g.modelLineNumber-d].map(_=>{if(_.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[g.modelLineNumber-1].getViewPositionOfModelPosition(0,_.forWrappedLinesAfterColumn).lineNumber>=g.modelLineWrappedLineIdx||_.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[g.modelLineNumber-1].getViewPositionOfModelPosition(0,_.forWrappedLinesBeforeOrAtColumn).lineNumber<g.modelLineWrappedLineIdx)return;if(!_.horizontalLine)return _;let v=-1;if(_.column!==-1){const y=this.modelLineProjections[g.modelLineNumber-1].getViewPositionOfModelPosition(0,_.column);if(y.lineNumber===g.modelLineWrappedLineIdx)v=y.column;else if(y.lineNumber<g.modelLineWrappedLineIdx)v=this.getMinColumnOfViewLine(g);else if(y.lineNumber>g.modelLineWrappedLineIdx)return}const b=this.convertModelPositionToViewPosition(g.modelLineNumber,_.horizontalLine.endColumn),C=this.modelLineProjections[g.modelLineNumber-1].getViewPositionOfModelPosition(0,_.horizontalLine.endColumn);return C.lineNumber===g.modelLineWrappedLineIdx?new IndentGuide(_.visibleColumn,v,_.className,new IndentGuideHorizontalLine(_.horizontalLine.top,b.column),-1,-1):C.lineNumber<g.modelLineWrappedLineIdx||_.visibleColumn!==-1?void 0:new IndentGuide(_.visibleColumn,v,_.className,new IndentGuideHorizontalLine(_.horizontalLine.top,this.getMaxColumnOfViewLine(g)),-1,-1)});l.push(m.filter(_=>!!_))}}return l}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const r=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),s=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let a=[];const l=[],c=[],d=r.lineNumber-1,u=s.lineNumber-1;let g=null;for(let v=d;v<=u;v++){const b=this.modelLineProjections[v];if(b.isVisible()){const C=b.getViewLineNumberOfModelPosition(0,v===d?r.column:1),y=b.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(v+1)),S=y-C+1;let w=0;S>1&&b.getViewLineMinColumn(this.model,v+1,y)===1&&(w=C===0?1:2),l.push(S),c.push(w),g===null&&(g=new Position$1(v+1,0))}else g!==null&&(a=a.concat(this.model.guides.getLinesIndentGuides(g.lineNumber,v)),g=null)}g!==null&&(a=a.concat(this.model.guides.getLinesIndentGuides(g.lineNumber,s.lineNumber)),g=null);const f=t-e+1,m=new Array(f);let _=0;for(let v=0,b=a.length;v<b;v++){let C=a[v];const y=Math.min(f-_,l[v]),S=c[v];let w;S===2?w=0:S===1?w=1:w=y;for(let E=0;E<y;E++)E===w&&(C=0),m[_++]=C}return m}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,r){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const s=this.projectedModelLineLineCounts.getIndexOf(e-1);let a=e;const l=s.index,c=s.remainder,d=[];for(let u=l,g=this.model.getLineCount();u<g;u++){const f=this.modelLineProjections[u];if(!f.isVisible())continue;const m=u===l?c:0;let _=f.getViewLineCount()-m,v=!1;if(a+_>t&&(v=!0,_=t-a+1),f.getViewLinesData(this.model,u+1,m,_,a-e,r,d),a+=_,v)break}return d}validateViewPosition(e,t,r){e=this._toValidViewLineNumber(e);const s=this.projectedModelLineLineCounts.getIndexOf(e-1),a=s.index,l=s.remainder,c=this.modelLineProjections[a],d=c.getViewLineMinColumn(this.model,a+1,l),u=c.getViewLineMaxColumn(this.model,a+1,l);t<d&&(t=d),t>u&&(t=u);const g=c.getModelColumnOfViewPosition(l,t);return this.model.validatePosition(new Position$1(a+1,g)).equals(r)?new Position$1(e,t):this.convertModelPositionToViewPosition(r.lineNumber,r.column)}validateViewRange(e,t){const r=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),s=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new Range$2(r.lineNumber,r.column,s.lineNumber,s.column)}convertViewPositionToModelPosition(e,t){const r=this.getViewLineInfo(e),s=this.modelLineProjections[r.modelLineNumber-1].getModelColumnOfViewPosition(r.modelLineWrappedLineIdx,t);return this.model.validatePosition(new Position$1(r.modelLineNumber,s))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),r=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new Range$2(t.lineNumber,t.column,r.lineNumber,r.column)}convertModelPositionToViewPosition(e,t,r=2,s=!1,a=!1){const l=this.model.validatePosition(new Position$1(e,t)),c=l.lineNumber,d=l.column;let u=c-1,g=!1;if(a)for(;u<this.modelLineProjections.length&&!this.modelLineProjections[u].isVisible();)u++,g=!0;else for(;u>0&&!this.modelLineProjections[u].isVisible();)u--,g=!0;if(u===0&&!this.modelLineProjections[u].isVisible())return new Position$1(s?0:1,1);const f=1+this.projectedModelLineLineCounts.getPrefixSum(u);let m;return g?a?m=this.modelLineProjections[u].getViewPositionOfModelPosition(f,1,r):m=this.modelLineProjections[u].getViewPositionOfModelPosition(f,this.model.getLineMaxColumn(u+1),r):m=this.modelLineProjections[c-1].getViewPositionOfModelPosition(f,d,r),m}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){const r=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return Range$2.fromPositions(r)}else{const r=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),s=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new Range$2(r.lineNumber,r.column,s.lineNumber,s.column)}}getViewLineNumberOfModelPosition(e,t){let r=e-1;if(this.modelLineProjections[r].isVisible()){const a=1+this.projectedModelLineLineCounts.getPrefixSum(r);return this.modelLineProjections[r].getViewLineNumberOfModelPosition(a,t)}for(;r>0&&!this.modelLineProjections[r].isVisible();)r--;if(r===0&&!this.modelLineProjections[r].isVisible())return 1;const s=1+this.projectedModelLineLineCounts.getPrefixSum(r);return this.modelLineProjections[r].getViewLineNumberOfModelPosition(s,this.model.getLineMaxColumn(r+1))}getDecorationsInRange(e,t,r,s,a,l){const c=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),d=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(d.lineNumber-c.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new Range$2(c.lineNumber,1,d.lineNumber,d.column),t,r,s,a,l);let u=[];const g=c.lineNumber-1,f=d.lineNumber-1;let m=null;for(let C=g;C<=f;C++)if(this.modelLineProjections[C].isVisible())m===null&&(m=new Position$1(C+1,C===g?c.column:1));else if(m!==null){const S=this.model.getLineMaxColumn(C);u=u.concat(this.model.getDecorationsInRange(new Range$2(m.lineNumber,m.column,C,S),t,r,s,a)),m=null}m!==null&&(u=u.concat(this.model.getDecorationsInRange(new Range$2(m.lineNumber,m.column,d.lineNumber,d.column),t,r,s,a)),m=null),u.sort((C,y)=>{const S=Range$2.compareRangesUsingStarts(C.range,y.range);return S===0?C.id<y.id?-1:C.id>y.id?1:0:S});const _=[];let v=0,b=null;for(const C of u){const y=C.id;b!==y&&(b=y,_[v++]=C)}return _}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const r=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[r.modelLineNumber-1].normalizePosition(r.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 r=e[0].startLineNumber,s=e[0].endLineNumber;for(let a=1,l=e.length;a<l;a++){const c=e[a];c.startLineNumber>s+1?(t.push(new Range$2(r,1,s,1)),r=c.startLineNumber,s=c.endLineNumber):c.endLineNumber>s&&(s=c.endLineNumber)}return t.push(new Range$2(r,1,s,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,r,s){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,r,s)}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.model)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,r,s){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,r,s)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,r){return new ViewLinesDeletedEvent(t,r)}onModelLinesInserted(e,t,r,s){return new ViewLinesInsertedEvent(t,r)}onModelLineChanged(e,t,r){return[!1,new ViewLinesChangedEvent(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,r){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,r){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const r=t-e+1,s=new Array(r);for(let a=0;a<r;a++)s[a]=0;return s}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),r=t.getLineContent();return new ViewLineData(r,!1,1,r.length+1,0,t.inflate(),null)}getViewLinesData(e,t,r){const s=this.model.getLineCount();e=Math.min(Math.max(1,e),s),t=Math.min(Math.max(1,t),s);const a=[];for(let l=e;l<=t;l++){const c=l-e;a[c]=r[c]?this.getViewLineData(l):null}return a}getDecorationsInRange(e,t,r,s,a,l){return this.model.getDecorationsInRange(e,t,r,s,a,l)}normalizePosition(e,t){return this.model.normalizePosition(e,t)}getLineIndentColumn(e){return this.model.getLineIndentColumn(e)}getInjectedTextAt(e){return null}}const MAX_LANE=GlyphMarginLane$1.Right;class GlyphMarginLanesModel{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*MAX_LANE/8))}reset(e){const t=Math.ceil((e+1)*MAX_LANE/8);this.lanes.length<t?this.lanes=new Uint8Array(t):this.lanes.fill(0),this._requiredLanes=1}get requiredLanes(){return this._requiredLanes}push(e,t,r){r&&(this.persist|=1<<e-1);for(let s=t.startLineNumber;s<=t.endLineNumber;s++){const a=MAX_LANE*s+(e-1);this.lanes[a>>>3]|=1<<a%8,this._requiredLanes=Math.max(this._requiredLanes,this.countAtLine(s))}}getLanesAtLine(e){const t=[];let r=MAX_LANE*e;for(let s=0;s<MAX_LANE;s++)(this.persist&1<<s||this.lanes[r>>>3]&1<<r%8)&&t.push(s+1),r++;return t.length?t:[GlyphMarginLane$1.Center]}countAtLine(e){let t=MAX_LANE*e,r=0;for(let s=0;s<MAX_LANE;s++)(this.persist&1<<s||this.lanes[t>>>3]&1<<t%8)&&r++,t++;return r}}let ViewModel$1=class extends Disposable$1{constructor(e,t,r,s,a,l,c,d,u,g){if(super(),this.languageConfigurationService=c,this._themeService=d,this._attachedView=u,this._transactionalTarget=g,this.hiddenAreasModel=new HiddenAreasModel,this.previousHiddenAreas=[],this._editorId=e,this._configuration=t,this.model=r,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.glyphLanes=new GlyphMarginLanesModel(0),this.model.isTooLargeForTokenization())this._lines=new ViewModelLinesFromModelAsIs(this.model);else{const f=this._configuration.options,m=f.get(59),_=f.get(156),v=f.get(166),b=f.get(155),C=f.get(146),y=f.get(160);this._lines=new ViewModelLinesFromProjectedModel(this._editorId,this.model,s,a,m,this.model.getOptions().tabSize,_,v.wrappingColumn,b,C,y)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new CursorsController(r,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new ViewLayout(this._configuration,this.getLineCount(),this._getCustomLineHeights(),l)),this._register(this.viewLayout.onDidScroll(f=>{f.scrollTopChanged&&this._handleVisibleLinesChanged(),f.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new ViewScrollChangedEvent(f)),this._eventDispatcher.emitOutgoingEvent(new ScrollChangedEvent(f.oldScrollWidth,f.oldScrollLeft,f.oldScrollHeight,f.oldScrollTop,f.scrollWidth,f.scrollLeft,f.scrollHeight,f.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(f=>{this._eventDispatcher.emitOutgoingEvent(f)})),this._decorations=new ViewModelDecorations(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(f=>{try{const m=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(m,f)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(MinimapTokensColorTracker.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new ViewTokensColorsChangedEvent)})),this._register(this._themeService.onDidColorThemeChange(f=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new ViewThemeChangedEvent(f))})),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)}_getCustomLineHeights(){return this._configuration.options.get(5)?this.model.getCustomLineHeightsDecorations(this._editorId).map(r=>{const s=r.range.startLineNumber,a=this.coordinatesConverter.convertModelRangeToViewRange(new Range$2(s,1,s,this.model.getLineMaxColumn(s)));return{decorationId:r.id,startLineNumber:a.startLineNumber,endLineNumber:a.endLineNumber,lineHeight:r.options.lineHeight||0}}):[]}_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))}setHasWidgetFocus(e){this._eventDispatcher.emitOutgoingEvent(new WidgetFocusChangedEvent(!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 r=this._captureStableViewport(),s=this._configuration.options,a=s.get(59),l=s.get(156),c=s.get(166),d=s.get(155),u=s.get(146);this._lines.setWrappingSettings(a,l,c.wrappingColumn,d,u)&&(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._getCustomLineHeights()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(104)&&(this._decorations.reset(),e.emitViewEvent(new ViewDecorationsChangedEvent(null))),t.hasChanged(112)&&(this._decorations.reset(),e.emitViewEvent(new ViewDecorationsChangedEvent(null))),e.emitViewEvent(new ViewConfigurationChangedEvent(t)),this.viewLayout.onConfigurationChanged(t),r.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(r=>{try{const a=this._eventDispatcher.beginEmitViewEvents();let l=!1,c=!1;const d=r instanceof InternalModelContentChangeEvent?r.rawContentChangedEvent.changes:r.changes,u=r instanceof InternalModelContentChangeEvent?r.rawContentChangedEvent.versionId:null,g=this._lines.createLineBreaksComputer();for(const _ of d)switch(_.changeType){case 4:{for(let v=0;v<_.detail.length;v++){const b=_.detail[v];let C=_.injectedTexts[v];C&&(C=C.filter(y=>!y.ownerId||y.ownerId===this._editorId)),g.addRequest(b,C,null)}break}case 2:{let v=null;_.injectedText&&(v=_.injectedText.filter(b=>!b.ownerId||b.ownerId===this._editorId)),g.addRequest(_.detail,v,null);break}}const f=g.finalize(),m=new ArrayQueue(f);for(const _ of d)switch(_.changeType){case 1:{this._lines.onModelFlushed(),a.emitViewEvent(new ViewFlushedEvent),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount(),this._getCustomLineHeights()),l=!0;break}case 3:{const v=this._lines.onModelLinesDeleted(u,_.fromLineNumber,_.toLineNumber);v!==null&&(a.emitViewEvent(v),this.viewLayout.onLinesDeleted(v.fromLineNumber,v.toLineNumber)),l=!0;break}case 4:{const v=m.takeCount(_.detail.length),b=this._lines.onModelLinesInserted(u,_.fromLineNumber,_.toLineNumber,v);b!==null&&(a.emitViewEvent(b),this.viewLayout.onLinesInserted(b.fromLineNumber,b.toLineNumber)),l=!0;break}case 2:{const v=m.dequeue(),[b,C,y,S]=this._lines.onModelLineChanged(u,_.lineNumber,v);c=b,C&&a.emitViewEvent(C),y&&(a.emitViewEvent(y),this.viewLayout.onLinesInserted(y.fromLineNumber,y.toLineNumber)),S&&(a.emitViewEvent(S),this.viewLayout.onLinesDeleted(S.fromLineNumber,S.toLineNumber));break}case 5:break}u!==null&&this._lines.acceptVersionId(u),this.viewLayout.onHeightMaybeChanged(),!l&&c&&(a.emitViewEvent(new ViewLineMappingChangedEvent),a.emitViewEvent(new ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(a),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const s=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&s){const a=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(a){const l=this.coordinatesConverter.convertModelPositionToViewPosition(a.getStartPosition()),c=this.viewLayout.getVerticalOffsetForLineNumber(l.lineNumber);this.viewLayout.setScrollPosition({scrollTop:c+this._viewportStart.startLineDelta},1)}}try{const a=this._eventDispatcher.beginEmitViewEvents();r instanceof InternalModelContentChangeEvent&&a.emitOutgoingEvent(new ModelContentChangedEvent(r.contentChangedEvent)),this._cursor.onModelContentChanged(a,r)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._configuration.options.get(5)&&this._register(this.model.onDidChangeLineHeight(r=>{const s=r.changes.filter(a=>a.ownerId===this._editorId||a.ownerId===0);if(this.viewLayout.changeSpecialLineHeights(a=>{for(const l of s){const{decorationId:c,lineNumber:d,lineHeight:u}=l,g=this.coordinatesConverter.convertModelRangeToViewRange(new Range$2(d,1,d,this.model.getLineMaxColumn(d)));u!==null?a.insertOrChangeCustomLineHeight(c,g.startLineNumber,g.endLineNumber,u):a.removeCustomLineHeight(c)}}),s.length>0){const a=new ModelLineHeightChangedEvent$1(s);this._eventDispatcher.emitOutgoingEvent(new ModelLineHeightChangedEvent(a))}})),this._configuration.options.get(172)&&this._register(this.model.onDidChangeFont(r=>{const s=r.changes.filter(a=>a.ownerId===this._editorId||a.ownerId===0);if(s.length>0){const a=new ModelFontChangedEvent$1(s);this._eventDispatcher.emitOutgoingEvent(new ModelFontChangedEvent(a))}})),this._register(this.model.onDidChangeTokens(r=>{const s=[];for(let a=0,l=r.ranges.length;a<l;a++){const c=r.ranges[a],d=this.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(c.fromLineNumber,1)).lineNumber,u=this.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(c.toLineNumber,this.model.getLineMaxColumn(c.toLineNumber))).lineNumber;s[a]={fromLineNumber:d,toLineNumber:u}}this._eventDispatcher.emitSingleViewEvent(new ViewTokensChangedEvent(s)),this._eventDispatcher.emitOutgoingEvent(new ModelTokensChangedEvent(r))})),this._register(this.model.onDidChangeLanguageConfiguration(r=>{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(r))})),this._register(this.model.onDidChangeLanguage(r=>{this.cursorConfig=new CursorConfiguration(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new ModelLanguageChangedEvent(r))})),this._register(this.model.onDidChangeOptions(r=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const s=this._eventDispatcher.beginEmitViewEvents();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._getCustomLineHeights())}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(r))})),this._register(this.model.onDidChangeDecorations(r=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new ViewDecorationsChangedEvent(r)),this._eventDispatcher.emitOutgoingEvent(new ModelDecorationsChangedEvent(r))}))}getFontSizeAtPosition(e){if(!this._configuration.options.get(172))return null;const r=this.model.getFontDecorationsInRange(Range$2.fromPositions(e),this._editorId);let s=this._configuration.options.get(59).fontSize+"px";for(const a of r)if(a.options.fontSize){s=a.options.fontSize;break}return s}setHiddenAreas(e,t,r){var c;this.hiddenAreasModel.setHiddenAreas(t,e);const s=this.hiddenAreasModel.getMergedRanges();if(s===this.previousHiddenAreas&&!r)return;this.previousHiddenAreas=s;const a=this._captureStableViewport();let l=!1;try{const d=this._eventDispatcher.beginEmitViewEvents();l=this._lines.setHiddenAreas(s),l&&(d.emitViewEvent(new ViewFlushedEvent),d.emitViewEvent(new ViewLineMappingChangedEvent),d.emitViewEvent(new ViewDecorationsChangedEvent(null)),this._cursor.onLineMappingChanged(d),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount(),this._getCustomLineHeights()),this.viewLayout.onHeightMaybeChanged());const u=(c=a.viewportStartModelPosition)==null?void 0:c.lineNumber;u&&s.some(f=>f.startLineNumber<=u&&u<=f.endLineNumber)||a.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),l&&this._eventDispatcher.emitOutgoingEvent(new HiddenAreasChangedEvent)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(165),t=this._configuration.options.get(75),r=Math.max(20,Math.round(e.height/t)),s=this.viewLayout.getLinesViewportData(),a=Math.max(1,s.completelyVisibleStartLineNumber-r),l=Math.min(this.getLineCount(),s.completelyVisibleEndLineNumber+r);return this._toModelVisibleRanges(new Range$2(a,this.getLineMinColumn(a),l,this.getLineMaxColumn(l)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),r=this._lines.getHiddenAreas();if(r.length===0)return[t];const s=[];let a=0,l=t.startLineNumber,c=t.startColumn;const d=t.endLineNumber,u=t.endColumn;for(let g=0,f=r.length;g<f;g++){const m=r[g].startLineNumber,_=r[g].endLineNumber;_<l||m>d||(l<m&&(s[a++]=new Range$2(l,c,m-1,this.model.getLineMaxColumn(m-1))),l=_+1,c=1)}return(l<d||l===d&&c<u)&&(s[a++]=new Range$2(l,c,d,u)),s}getCompletelyVisibleViewRange(){const e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,r=e.completelyVisibleEndLineNumber;return new Range$2(t,this.getLineMinColumn(t),r,this.getLineMaxColumn(r))}getCompletelyVisibleViewRangeAtScrollTop(e){const t=this.viewLayout.getLinesViewportDataAtScrollTop(e),r=t.completelyVisibleStartLineNumber,s=t.completelyVisibleEndLineNumber;return new Range$2(r,this.getLineMinColumn(r),s,this.getLineMaxColumn(s))}saveState(){const e=this.viewLayout.saveState(),t=e.scrollTop,r=this.viewLayout.getLineNumberAtVerticalOffset(t),s=this.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(r,this.getLineMinColumn(r))),a=this.viewLayout.getVerticalOffsetForLineNumber(r)-t;return{scrollLeft:e.scrollLeft,firstPosition:s,firstPositionDeltaTop:a}}reduceRestoreState(e){if(typeof e.firstPosition>"u")return this._reduceRestoreStateCompatibility(e);const t=this.model.validatePosition(e.firstPosition),r=this.coordinatesConverter.convertModelPositionToViewPosition(t),s=this.viewLayout.getVerticalOffsetForLineNumber(r.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:s}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,r){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,r){return this._lines.getActiveIndentGuide(e,t,r)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,r,s){return this._lines.getViewLinesBracketGuides(e,t,r,s)}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)}_getTextDirection(e,t){let r=0;for(const s of t){const a=s.range;if(a.startLineNumber>e||a.endLineNumber<e)continue;const l=s.options.textDirection;l===TextDirection$1.RTL?r++:l===TextDirection$1.LTR&&r--}return r>0?TextDirection$1.RTL:TextDirection$1.LTR}getTextDirection(e){const t=this._decorations.getDecorationsOnLine(e);return this._getTextDirection(e,t.decorations)}getViewportViewLineRenderingData(e,t){const r=this._decorations.getDecorationsViewportData(e),s=r.inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,s,r.hasVariableFonts,r.decorations)}getViewLineRenderingData(e){const t=this._decorations.getDecorationsOnLine(e);return this._getViewLineRenderingData(e,t.inlineDecorations[0],t.hasVariableFonts,t.decorations)}_getViewLineRenderingData(e,t,r,s){const a=this.model.mightContainRTL(),l=this.model.mightContainNonBasicASCII(),c=this.getTabSize(),d=this._lines.getViewLineData(e);return d.inlineDecorations&&(t=[...t,...d.inlineDecorations.map(u=>u.toInlineDecoration(e))]),new ViewLineRenderingData(d.minColumn,d.maxColumn,d.content,d.continuesWithWrappedLine,a,l,d.tokens,t,c,d.startVisibleColumn,this._getTextDirection(e,s),r)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,r){const s=this._lines.getViewLinesData(e,t,r);return new MinimapLinesRenderingData(this.getTabSize(),s)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,filterValidationDecorations(this._configuration.options),filterFontDecorations(this._configuration.options)),r=new OverviewRulerDecorations;for(const s of t){const a=s.options,l=a.overviewRuler;if(!l)continue;const c=l.position;if(c===0)continue;const d=l.getColor(e.value),u=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.startLineNumber,s.range.startColumn),g=this.coordinatesConverter.getViewLineNumberOfModelPosition(s.range.endLineNumber,s.range.endColumn);r.accept(d,a.zIndex,u,g,c)}return r.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const r=t.options.overviewRuler;r==null||r.invalidateCachedColor();const s=t.options.minimap;s==null||s.invalidateCachedColor()}}getValueInRange(e,t){const r=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(r,t)}getValueLengthInRange(e,t){const r=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(r,t)}modifyPosition(e,t){const r=this.coordinatesConverter.convertViewPositionToModelPosition(e),s=this.model.modifyPosition(r,t);return this.coordinatesConverter.convertModelPositionToViewPosition(s)}deduceModelPositionRelativeToViewPosition(e,t,r){const s=this.coordinatesConverter.convertViewPositionToModelPosition(e);this.model.getEOL().length===2&&(t<0?t-=r:t+=r);const l=this.model.getOffsetAt(s)+t;return this.model.getPositionAt(l)}getPlainTextToCopy(e,t,r){const s=r?"\r\n":this.model.getEOL();e=e.slice(0),e.sort(Range$2.compareRangesUsingStarts);let a=!1,l=!1;for(const d of e)d.isEmpty()?a=!0:l=!0;if(!l){if(!t)return"";const d=e.map(g=>g.startLineNumber);let u="";for(let g=0;g<d.length;g++)g>0&&d[g-1]===d[g]||(u+=this.model.getLineContent(d[g])+s);return u}if(a&&t){const d=[];let u=0;for(const g of e){const f=g.startLineNumber;g.isEmpty()?f!==u&&d.push(this.model.getLineContent(f)):d.push(this.model.getValueInRange(g,r?2:0)),u=f}return d.length===1?d[0]:d}const c=[];for(const d of e)d.isEmpty()||c.push(this.model.getValueInRange(d,r?2:0));return c.length===1?c[0]:c}getRichTextToCopy(e,t){const r=this.model.getLanguageId();if(r===PLAINTEXT_LANGUAGE_ID||e.length!==1)return null;let s=e[0];if(s.isEmpty()){if(!t)return null;const g=s.startLineNumber;s=new Range$2(g,this.model.getLineMinColumn(g),g,this.model.getLineMaxColumn(g))}const a=this._configuration.options.get(59),l=this._getColorMap(),d=/[:;\\\/<>]/.test(a.fontFamily)||a.fontFamily===EDITOR_FONT_DEFAULTS.fontFamily;let u;return d?u=EDITOR_FONT_DEFAULTS.fontFamily:(u=a.fontFamily,u=u.replace(/"/g,"'"),/[,']/.test(u)||/[+ ]/.test(u)&&(u="'".concat(u,"'")),u="".concat(u,", ").concat(EDITOR_FONT_DEFAULTS.fontFamily)),{mode:r,html:'<div style="'+"color: ".concat(l[1],";")+"background-color: ".concat(l[2],";")+"font-family: ".concat(u,";")+"font-weight: ".concat(a.fontWeight,";")+"font-size: ".concat(a.fontSize,"px;")+"line-height: ".concat(a.lineHeight,"px;")+'white-space: pre;">'+this._getHTMLToCopy(s,l)+"</div>"}}_getHTMLToCopy(e,t){const r=e.startLineNumber,s=e.startColumn,a=e.endLineNumber,l=e.endColumn,c=this.getTabSize();let d="";for(let u=r;u<=a;u++){const g=this.model.tokenization.getLineTokens(u),f=g.getLineContent(),m=u===r?s-1:0,_=u===a?l-1:f.length;f===""?d+="<br>":d+=tokenizeLineToHTML(f,g.inflate(),t,m,_,c,isWindows)}return d}_getColorMap(){const e=TokenizationRegistry.getColorMap(),t=["#000000"];if(e)for(let r=1,s=e.length;r<s;r++)t[r]=Color.Format.CSS.formatHex(e[r]);return t}getPrimaryCursorState(){return this._cursor.getPrimaryCursorState()}getLastAddedCursorIndex(){return this._cursor.getLastAddedCursorIndex()}getCursorStates(){return this._cursor.getCursorStates()}setCursorStates(e,t,r){return this._withViewEventsCollector(s=>this._cursor.setStates(s,e,t,r))}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,r=0){this._withViewEventsCollector(s=>this._cursor.setSelections(s,e,t,r))}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,r,s){this._executeCursorEdit(a=>this._cursor.executeEdits(a,e,t,r,s))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(r=>this._cursor.type(r,e,t))}compositionType(e,t,r,s,a){this._executeCursorEdit(l=>this._cursor.compositionType(l,e,t,r,s,a))}paste(e,t,r,s){this._executeCursorEdit(a=>this._cursor.paste(a,e,t,r,s))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(r=>this._cursor.executeCommand(r,e,t))}executeCommands(e,t){this._executeCursorEdit(r=>this._cursor.executeCommands(r,e,t))}revealAllCursors(e,t,r=!1){this._withViewEventsCollector(s=>this._cursor.revealAll(s,e,r,0,t,0))}revealPrimaryCursor(e,t,r=!1){this._withViewEventsCollector(s=>this._cursor.revealPrimary(s,e,r,0,t,0))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),r=new Range$2(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(s=>s.emitViewEvent(new ViewRevealRangeRequestEvent(e,!1,r,null,0,!0,0)))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),r=new Range$2(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(s=>s.emitViewEvent(new ViewRevealRangeRequestEvent(e,!1,r,null,0,!0,0)))}revealRange(e,t,r,s,a){this._withViewEventsCollector(l=>l.emitViewEvent(new ViewRevealRangeRequestEvent(e,!1,r,null,s,t,a)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new ViewZonesChangedEvent$1),this._eventDispatcher.emitOutgoingEvent(new ViewZonesChangedEvent))}_withViewEventsCollector(e){return this._transactionalTarget.batchChanges(()=>{try{const t=this._eventDispatcher.beginEmitViewEvents();return e(t)}finally{this._eventDispatcher.endEmitViewEvents()}})}batchEvents(e){this._withViewEventsCollector(()=>{e()})}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,r,s,a){this._model=e,this._viewLineNumber=t,this._isValid=r,this._modelTrackedRange=s,this._startLineDelta=a}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){const r=e.coordinatesConverter.convertViewPositionToModelPosition(new Position$1(t,e.getLineMinColumn(t))),s=e.model._setTrackedRange(this._modelTrackedRange,new Range$2(r.lineNumber,r.column,r.lineNumber,r.column),1),a=e.viewLayout.getVerticalOffsetForLineNumber(t),l=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=s,this._startLineDelta=l-a}invalidate(){this._isValid=!1}}class OverviewRulerDecorations{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,r,s,a){const l=this._asMap[e];if(l){const c=l.data,d=c[c.length-3],u=c[c.length-1];if(d===a&&u+1>=r){s>u&&(c[c.length-1]=s);return}c.push(a,r,s)}else{const c=new OverviewRulerDecorationsGroup(e,t,[a,r,s]);this._asMap[e]=c,this.asArray.push(c)}}}class HiddenAreasModel{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){const r=this.hiddenAreas.get(e);r&&rangeArraysEqual(r,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,r)=>mergeLineRangeArray(t,r),[]);return rangeArraysEqual(this.ranges,e)?this.ranges:(this.ranges=e,this.ranges)}}function mergeLineRangeArray(o,e){const t=[];let r=0,s=0;for(;r<o.length&&s<e.length;){const a=o[r],l=e[s];if(a.endLineNumber<l.startLineNumber-1)t.push(o[r++]);else if(l.endLineNumber<a.startLineNumber-1)t.push(e[s++]);else{const c=Math.min(a.startLineNumber,l.startLineNumber),d=Math.max(a.endLineNumber,l.endLineNumber);t.push(new Range$2(c,1,d,1)),r++,s++}}for(;r<o.length;)t.push(o[r++]);for(;s<e.length;)t.push(e[s++]);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 r=e.convertModelPositionToViewPosition(this.viewportStartModelPosition),s=t.getVerticalOffsetForLineNumber(r.lineNumber);t.setScrollPosition({scrollTop:s+this.startLineDelta},1)}}class ServiceCollection{constructor(...e){this._entries=new Map;for(const[t,r]of e)this.set(t,r)}set(e,t){const r=this._entries.get(e);return this._entries.set(e,t),r}get(e){return this._entries.get(e)}}var __decorate$2O=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2F=function(o,e){return function(t,r){e(t,r,o)}},CodeEditorWidget_1,Qi;let CodeEditorWidget=(Qi=class extends Disposable$1{get isSimpleWidget(){return this._configuration.isSimpleWidget}get contextMenuId(){return this._configuration.contextMenuId}get contextKeyService(){return this._contextKeyService}constructor(e,t,r,s,a,l,c,d,u,g,f,m){var C,y;super(),this.languageConfigurationService=f,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._onDidChangeLineHeight=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeLineHeight=this._onDidChangeLineHeight.event,this._onDidChangeFont=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onDidChangeFont=this._onDidChangeFont.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._onWillChangeModel=this._register(new Emitter$1({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.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._updateCounter=0,this._onWillTriggerEditorOperationEvent=this._register(new Emitter$1),this._onBeginUpdate=this._register(new Emitter$1),this.onBeginUpdate=this._onBeginUpdate.event,this._onEndUpdate=this._register(new Emitter$1),this.onEndUpdate=this._onEndUpdate.event,this._onBeforeExecuteEdit=this._register(new Emitter$1),this.onBeforeExecuteEdit=this._onBeforeExecuteEdit.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),this.inComposition=!1,a.willCreateCodeEditor();const _={...t};if(this._domElement=e,this._overflowWidgetsDomNode=_.overflowWidgetsDomNode,delete _.overflowWidgetsDomNode,this._id=++EDITOR_ID,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=r.telemetryData,this._configuration=this._register(this._createConfiguration(r.isSimpleWidget||!1,(C=r.contextMenuId)!=null?C:r.isSimpleWidget?MenuId.SimpleEditorContext:MenuId.EditorContext,_,g)),this._register(this._configuration.onDidChange(S=>{this._onDidChangeConfiguration.fire(S);const w=this._configuration.options;if(S.hasChanged(165)){const E=w.get(165);this._onDidLayoutChange.fire(E)}})),this._contextKeyService=this._register(c.createScoped(this._domElement)),r.contextKeyValues)for(const[S,w]of Object.entries(r.contextKeyValues))this._contextKeyService.createKey(S,w);this._notificationService=u,this._codeEditorService=a,this._commandService=l,this._themeService=d,this._register(new EditorContextKeysManager(this,this._contextKeyService)),this._register(new EditorModeContext(this,this._contextKeyService,m)),this._instantiationService=this._register(s.createChild(new ServiceCollection([IContextKeyService,this._contextKeyService]))),this._modelData=null,this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let v;Array.isArray(r.contributions)?v=r.contributions:v=EditorExtensionsRegistry.getEditorContributions(),this._contributions.initialize(this,v,this._instantiationService);for(const S of EditorExtensionsRegistry.getEditorActions()){if(this._actions.has(S.id)){onUnexpectedError(new Error("Cannot have two actions with the same id ".concat(S.id)));continue}const w=new InternalEditorAction(S.id,S.label,S.alias,S.metadata,(y=S.precondition)!=null?y:void 0,E=>this._instantiationService.invokeFunction(x=>Promise.resolve(S.runEditorCommand(x,this,E))),this._contextKeyService);this._actions.set(w.id,w)}const b=()=>!this._configuration.options.get(104)&&this._configuration.options.get(43).enabled;this._register(new DragAndDropObserver(this._domElement,{onDragOver:S=>{if(!b())return;const w=this.getTargetAtClientPoint(S.clientX,S.clientY);w!=null&&w.position&&this.showDropIndicatorAt(w.position)},onDrop:async S=>{if(!b()||(this.removeDropIndicator(),!S.dataTransfer))return;const w=this.getTargetAtClientPoint(S.clientX,S.clientY);w!=null&&w.position&&this._onDropIntoEditor.fire({position:w.position,event:S})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){var t;(t=this._modelData)==null||t.view.writeScreenReaderContent(e)}_createConfiguration(e,t,r,s){return new EditorConfiguration(e,t,r,this._domElement,s)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return EditorType.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),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(148),this._configuration.options.get(147),e):null}getValue(e=null){if(!this._modelData)return"";const t=!!(e&&e.preserveBOM);let r=0;return e&&e.lineEnding&&e.lineEnding==="\n"?r=1:e&&e.lineEnding&&e.lineEnding==="\r\n"&&(r=2),this._modelData.model.getValue(r,t)}setValue(e){try{if(this._beginUpdate(),!this._modelData)return;this._modelData.model.setValue(e)}finally{this._endUpdate()}}getModel(){return this._modelData?this._modelData.model:null}setModel(e=null){var t;try{this._beginUpdate();const r=e;if(this._modelData===null&&r===null||this._modelData&&this._modelData.model===r)return;const s={oldModelUrl:((t=this._modelData)==null?void 0:t.model.uri)||null,newModelUrl:(r==null?void 0:r.uri)||null};this._onWillChangeModel.fire(s);const a=this.hasTextFocus(),l=this._detachModel();this._attachModel(r),this.hasModel()?a&&this.focus():(this._editorTextFocus.setValue(!1),this._editorWidgetFocus.setValue(!1)),this._removeDecorationTypes(),this._onDidChangeModel.fire(s),this._postDetachModelCleanup(l),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const e in this._decorationTypeSubtypes){const t=this._decorationTypeSubtypes[e];for(const r in t)this._removeDecorationType(e+"-"+r)}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,r,s){const a=e.model.validatePosition({lineNumber:t,column:r}),l=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(a);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(l.lineNumber,s)}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,r,s=!1){const a=e.model.validatePosition({lineNumber:t,column:r}),l=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(a);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(l.lineNumber,s)}getBottomForLineNumber(e,t=!1){if(!this._modelData)return-1;const r=this._modelData.model.getLineMaxColumn(e);return CodeEditorWidget_1._getVerticalOffsetAfterPosition(this._modelData,e,r,t)}getLineHeightForPosition(e){if(!this._modelData)return-1;const t=this._modelData.viewModel,r=t.coordinatesConverter,s=Position$1.lift(e);if(r.modelPositionIsVisible(s)){const a=r.convertModelPositionToViewPosition(s);return t.viewLayout.getLineHeightForLineNumber(a.lineNumber)}return 0}setHiddenAreas(e,t,r){var s;(s=this._modelData)==null||s.viewModel.setHiddenAreas(e.map(a=>Range$2.lift(a)),t,r)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),r=this._modelData.model.getOptions().tabSize;return CursorColumns.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,r)+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,r,s){if(!this._modelData)return;if(!Range$2.isIRange(e))throw new Error("Invalid arguments");const a=this._modelData.model.validateRange(e),l=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(a);this._modelData.viewModel.revealRange("api",r,l,t,s)}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,r){if(typeof e!="number")throw new Error("Invalid arguments");this._sendRevealRange(new Range$2(e,1,e,1),t,!1,r)}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,r,s){if(!Position$1.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new Range$2(e.lineNumber,e.column,e.lineNumber,e.column),t,r,s)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t="api"){const r=Selection$1.isISelection(e),s=Range$2.isIRange(e);if(!r&&!s)throw new Error("Invalid arguments");if(r)this._setSelectionImpl(e,t);else if(s){const a={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(a,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const r=new Selection$1(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[r])}revealLines(e,t,r=0){this._revealLines(e,t,0,r)}revealLinesInCenter(e,t,r=0){this._revealLines(e,t,1,r)}revealLinesInCenterIfOutsideViewport(e,t,r=0){this._revealLines(e,t,2,r)}revealLinesNearTop(e,t,r=0){this._revealLines(e,t,5,r)}_revealLines(e,t,r,s){if(typeof e!="number"||typeof t!="number")throw new Error("Invalid arguments");this._sendRevealRange(new Range$2(e,1,t,1),r,!1,s)}revealRange(e,t=0,r=!1,s=!0){this._revealRange(e,r?1:0,s,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,r,s){if(!Range$2.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(Range$2.lift(e),t,r,s)}setSelections(e,t="api",r=0){if(this._modelData){if(!e||e.length===0)throw new Error("Invalid arguments");for(let s=0,a=e.length;s<a;s++)if(!Selection$1.isISelection(e[s]))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,e,r)}}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(),r=this._modelData.viewModel.saveState();return{cursorState:t,viewState:r,contributionsState:e}}restoreViewState(e){if(!this._modelData||!this._modelData.hasRealView)return;const t=e;if(t&&t.cursorState&&t.viewState){const r=t.cursorState;Array.isArray(r)?r.length>0&&this._modelData.viewModel.restoreCursorState(r):this._modelData.viewModel.restoreCursorState([r]),this._contributions.restoreViewState(t.contributionsState||{});const s=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(s)}}handleInitialized(){var e;(e=this._getViewModel())==null||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,r){r=r||{};try{switch(this._onWillTriggerEditorOperationEvent.fire({source:e,handlerId:t,payload:r}),this._beginUpdate(),t){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(e);return;case"type":{const a=r;this._type(e,a.text||"");return}case"replacePreviousChar":{const a=r;this._compositionType(e,a.text||"",a.replaceCharCnt||0,0,0);return}case"compositionType":{const a=r;this._compositionType(e,a.text||"",a.replacePrevCharCnt||0,a.replaceNextCharCnt||0,a.positionDelta||0);return}case"paste":{const a=r;this._paste(e,a.text||"",a.pasteOnNewLine||!1,a.multicursorText||null,a.mode||null,a.clipboardEvent);return}case"cut":this._cut(e);return}const s=this.getAction(t);if(s){Promise.resolve(s.run(r)).then(void 0,onUnexpectedError);return}if(!this._modelData||this._triggerEditorCommand(e,t,r))return;this._triggerCommand(t,r)}finally{this._endUpdate()}}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this.inComposition=!0,this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this.inComposition=!1,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,r,s,a){this._modelData&&this._modelData.viewModel.compositionType(t,r,s,a,e)}_paste(e,t,r,s,a,l){if(!this._modelData)return;const c=this._modelData.viewModel,d=c.getSelection().getStartPosition();c.paste(t,r,s,e);const u=c.getSelection().getStartPosition();e==="keyboard"&&this._onDidPaste.fire({clipboardEvent:l,range:new Range$2(d.lineNumber,d.column,u.lineNumber,u.column),languageId:a})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,r){const s=EditorExtensionsRegistry.getEditorCommand(t);return s?(r=r||{},isObject$3(r)&&(r.source=e),this._instantiationService.invokeFunction(a=>{Promise.resolve(s.runEditorCommand(a,this,r)).then(void 0,onUnexpectedError)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(104)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(104)?!1:(this._modelData.model.popStackElement(),!0)}edit(e,t){return this.executeEdits(t,e.replacements.map(r=>({range:r.range,text:r.text})),void 0)}executeEdits(e,t,r){if(!this._modelData||this._configuration.options.get(104))return!1;let s;r?Array.isArray(r)?s=()=>r:s=r:s=()=>null;let a,l;return e instanceof TextModelEditSource?(l=e,a=e.metadata.source):(l=EditSources.unknown({name:a}),a=e),this._onBeforeExecuteEdit.fire({source:a!=null?a:void 0}),this._modelData.viewModel.executeEdits(a,t,s,l),!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){if(!this._modelData)return null;const t=this._configuration.options;return this._modelData.model.getLineDecorations(e,this._id,filterValidationDecorations(t),filterFontDecorations(t))}getDecorationsInRange(e){if(!this._modelData)return null;const t=this._configuration.options;return this._modelData.model.getDecorationsInRange(e,this._id,filterValidationDecorations(t),filterFontDecorations(t))}getFontSizeAtPosition(e){return this._modelData?this._modelData.viewModel.getFontSizeAtPosition(e):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.changeDecorations(r=>r.deltaDecorations(t,[])),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(165)}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,t=!1){this._configuration.observeContainer(e),t||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._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isWidgetFocused()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId())&&console.warn("Overwriting a content widget with the same id:"+e.getId()),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 r=this._contentWidgets[t];r.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(r)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const r=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(r)}}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 r=this._overlayWidgets[t];r.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(r)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const r=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(r)}}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 r=this._glyphMarginWidgets[t];r.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(r)}}removeGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const r=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(r)}}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),s=this._configuration.options.get(165),a=CodeEditorWidget_1._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),l=this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+s.glyphMarginWidth+s.lineNumbersWidth+s.decorationsWidth-this.getScrollLeft(),c=this.getLineHeightForPosition(t);return{top:a,left:l,height:c}}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.viewModel.batchEvents(()=>{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(59))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),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 r=e.onBeforeAttached(),s=new ViewModel$1(this._id,this._configuration,e,DOMLineBreaksComputerFactory.create(getWindow$1(this._domElement)),MonospaceLineBreaksComputerFactory.create(this._configuration.options),c=>scheduleAtNextAnimationFrame(getWindow$1(this._domElement),c),this.languageConfigurationService,this._themeService,r,{batchChanges:c=>{try{return this._beginUpdate(),c()}finally{this._endUpdate()}}});t.push(e.onWillDispose(()=>this.setModel(null))),t.push(s.onEvent(c=>{switch(c.kind){case 0:this._onDidContentSizeChange.fire(c);break;case 1:this._editorTextFocus.setValue(c.hasFocus);break;case 2:this._editorWidgetFocus.setValue(c.hasFocus);break;case 3:this._onDidScrollChange.fire(c);break;case 4:this._onDidChangeViewZones.fire();break;case 5:this._onDidChangeHiddenAreas.fire();break;case 6:this._onDidAttemptReadOnlyEdit.fire();break;case 7:{if(c.reachedMaxCursorCount){const f=this.getOption(89),m=localize(83,"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.",f);this._notificationService.prompt(Severity.Warning,m,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:localize(84,"Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const d=[];for(let f=0,m=c.selections.length;f<m;f++)d[f]=c.selections[f].getPosition();const u={position:d[0],secondaryPositions:d.slice(1),reason:c.reason,source:c.source};this._onDidChangeCursorPosition.fire(u);const g={selection:c.selections[0],secondarySelections:c.selections.slice(1),modelVersionId:c.modelVersionId,oldSelections:c.oldSelections,oldModelVersionId:c.oldModelVersionId,source:c.source,reason:c.reason};this._onDidChangeCursorSelection.fire(g);break}case 8:this._onDidChangeModelDecorations.fire(c.event);break;case 9:this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._onDidChangeModelLanguage.fire(c.event);break;case 10:this._onDidChangeModelLanguageConfiguration.fire(c.event);break;case 11:this._onDidChangeModelContent.fire(c.event);break;case 12:this._onDidChangeModelOptions.fire(c.event);break;case 13:this._onDidChangeModelTokens.fire(c.event);break;case 14:this._onDidChangeLineHeight.fire(c.event);break;case 15:this._onDidChangeFont.fire(c.event);break}}));const[a,l]=this._createView(s);if(l){this._domElement.appendChild(a.domNode.domNode);let c=Object.keys(this._contentWidgets);for(let d=0,u=c.length;d<u;d++){const g=c[d];a.addContentWidget(this._contentWidgets[g])}c=Object.keys(this._overlayWidgets);for(let d=0,u=c.length;d<u;d++){const g=c[d];a.addOverlayWidget(this._overlayWidgets[g])}c=Object.keys(this._glyphMarginWidgets);for(let d=0,u=c.length;d<u;d++){const g=c[d];a.addGlyphMarginWidget(this._glyphMarginWidgets[g])}a.render(!1,!0),a.domNode.domNode.setAttribute("data-uri",e.uri.toString())}this._modelData=new ModelData$1(e,s,a,l,t,r)}_createView(e){let t;this.isSimpleWidget?t={paste:(a,l,c,d)=>{this._paste("keyboard",a,l,c,d)},type:a=>{this._type("keyboard",a)},compositionType:(a,l,c,d)=>{this._compositionType("keyboard",a,l,c,d)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:t={paste:(a,l,c,d)=>{const u={text:a,pasteOnNewLine:l,multicursorText:c,mode:d};this._commandService.executeCommand("paste",u)},type:a=>{const l={text:a};this._commandService.executeCommand("type",l)},compositionType:(a,l,c,d)=>{if(c||d){const u={text:a,replacePrevCharCnt:l,replaceNextCharCnt:c,positionDelta:d};this._commandService.executeCommand("compositionType",u)}else{const u={text:a,replaceCharCnt:l};this._commandService.executeCommand("replacePreviousChar",u)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const r=new ViewUserInputEvents(e.coordinatesConverter);return r.onKeyDown=a=>this._onKeyDown.fire(a),r.onKeyUp=a=>this._onKeyUp.fire(a),r.onContextMenu=a=>this._onContextMenu.fire(a),r.onMouseMove=a=>this._onMouseMove.fire(a),r.onMouseLeave=a=>this._onMouseLeave.fire(a),r.onMouseDown=a=>this._onMouseDown.fire(a),r.onMouseUp=a=>this._onMouseUp.fire(a),r.onMouseDrag=a=>this._onMouseDrag.fire(a),r.onMouseDrop=a=>this._onMouseDrop.fire(a),r.onMouseDropCanceled=a=>this._onMouseDropCanceled.fire(a),r.onMouseWheel=a=>this._onMouseWheel.fire(a),[new View$1(this._domElement,this.getId(),t,this._configuration,this._themeService.getColorTheme(),e,r,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e==null||e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){var r;if((r=this._contributionsDisposable)==null||r.dispose(),this._contributionsDisposable=void 0,!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)&&t.remove(),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._bannerDomNode.remove(),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()}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,this._updateCounter===0&&this._onEndUpdate.fire()}},CodeEditorWidget_1=Qi,Qi.dropIntoEditorDecorationOptions=ModelDecorationOptions.register({description:"workbench-dnd-target",className:"dnd-target"}),Qi);CodeEditorWidget=CodeEditorWidget_1=__decorate$2O([__param$2F(3,IInstantiationService),__param$2F(4,ICodeEditorService),__param$2F(5,ICommandService),__param$2F(6,IContextKeyService),__param$2F(7,IThemeService),__param$2F(8,INotificationService),__param$2F(9,IAccessibilityService),__param$2F(10,ILanguageConfigurationService),__param$2F(11,ILanguageFeaturesService)],CodeEditorWidget);let EDITOR_ID=0,ModelData$1=class{constructor(e,t,r,s,a,l){this.model=e,this.viewModel=t,this.view=r,this.hasRealView=s,this.listenersToRemove=a,this.attachedView=l}dispose(){dispose(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}};class BooleanEventEmitter extends Disposable$1{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$1{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(r=>this._tabMovesFocus.set(r))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._tabMovesFocus.set(e.get(164)||TabFocus.getTabFocusMode()),this._editorReadonly.set(e.get(104)),this._inDiffEditor.set(e.get(70)),this._editorColumnSelection.set(e.get(28))}_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$1{constructor(e,t,r){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=r,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._isInEmbeddedEditor=EditorContextKeys.isInEmbeddedEditor.bindTo(t);const s=()=>this._update();this._register(e.onDidChangeModel(s)),this._register(e.onDidChangeModelLanguage(s)),this._register(r.completionProvider.onDidChange(s)),this._register(r.codeActionProvider.onDidChange(s)),this._register(r.codeLensProvider.onDidChange(s)),this._register(r.definitionProvider.onDidChange(s)),this._register(r.declarationProvider.onDidChange(s)),this._register(r.implementationProvider.onDidChange(s)),this._register(r.typeDefinitionProvider.onDidChange(s)),this._register(r.hoverProvider.onDidChange(s)),this._register(r.documentHighlightProvider.onDidChange(s)),this._register(r.documentSymbolProvider.onDidChange(s)),this._register(r.referenceProvider.onDidChange(s)),this._register(r.renameProvider.onDidChange(s)),this._register(r.documentFormattingEditProvider.onDidChange(s)),this._register(r.documentRangeFormattingEditProvider.onDidChange(s)),this._register(r.signatureHelpProvider.onDidChange(s)),this._register(r.inlayHintsProvider.onDidChange(s)),s()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const 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._isInEmbeddedEditor.set(e.uri.scheme===Schemas.walkThroughSnippet||e.uri.scheme===Schemas.vscodeChatCodeBlock)})}}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,r){return this._editor.onDidChangeModelDecorations(s=>{this._isChangingDecorations||e.call(t,s)},r)}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 r of this._decorationIds){const s=e.getDecorationRange(r);s&&t.push(s)}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}append(e){let t=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations(r=>{t=r.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)})}finally{this._isChangingDecorations=!1}return t}}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,'.concat(getSquigglySVGData(t),'") repeat-x bottom left; }')),e.addRule(':root { --monaco-editor-error-decoration: url("data:image/svg+xml,'.concat(getSquigglySVGData(t),'"); }')));const r=o.getColor(editorWarningForeground);r&&(e.addRule('.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,'.concat(getSquigglySVGData(r),'") repeat-x bottom left; }')),e.addRule(':root { --monaco-editor-warning-decoration: url("data:image/svg+xml,'.concat(getSquigglySVGData(r),'"); }')));const s=o.getColor(editorInfoForeground);s&&(e.addRule('.monaco-editor .squiggly-info { background: url("data:image/svg+xml,'.concat(getSquigglySVGData(s),'") repeat-x bottom left; }')),e.addRule(':root { --monaco-editor-info-decoration: url("data:image/svg+xml,'.concat(getSquigglySVGData(s),'"); }')));const a=o.getColor(editorHintForeground);a&&(e.addRule('.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,'.concat(getDotDotDotSVGData(a),'") no-repeat bottom left; }')),e.addRule(':root { --monaco-editor-hint-decoration: url("data:image/svg+xml,'.concat(getDotDotDotSVGData(a),'"); }')));const l=o.getColor(editorUnnecessaryCodeOpacity);l&&(e.addRule(".monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ".concat(l.rgba.a,"; }")),e.addRule(":root { --monaco-editor-unnecessary-decoration-opacity: ".concat(l.rgba.a,"; }")))});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: ".concat(this.value)}}function readHotReloadableExport(o,e){return o}function createHotClass(o){return constObservable(o)}const IAccessibilitySignalService=createDecorator("accessibilitySignalService"),be=class be{static register(e){return new be(e.fileName)}constructor(e){this.fileName=e}};be.error=be.register({fileName:"error.mp3"}),be.warning=be.register({fileName:"warning.mp3"}),be.success=be.register({fileName:"success.mp3"}),be.foldedArea=be.register({fileName:"foldedAreas.mp3"}),be.break=be.register({fileName:"break.mp3"}),be.quickFixes=be.register({fileName:"quickFixes.mp3"}),be.taskCompleted=be.register({fileName:"taskCompleted.mp3"}),be.taskFailed=be.register({fileName:"taskFailed.mp3"}),be.terminalBell=be.register({fileName:"terminalBell.mp3"}),be.diffLineInserted=be.register({fileName:"diffLineInserted.mp3"}),be.diffLineDeleted=be.register({fileName:"diffLineDeleted.mp3"}),be.diffLineModified=be.register({fileName:"diffLineModified.mp3"}),be.requestSent=be.register({fileName:"requestSent.mp3"}),be.responseReceived1=be.register({fileName:"responseReceived1.mp3"}),be.responseReceived2=be.register({fileName:"responseReceived2.mp3"}),be.responseReceived3=be.register({fileName:"responseReceived3.mp3"}),be.responseReceived4=be.register({fileName:"responseReceived4.mp3"}),be.clear=be.register({fileName:"clear.mp3"}),be.save=be.register({fileName:"save.mp3"}),be.format=be.register({fileName:"format.mp3"}),be.voiceRecordingStarted=be.register({fileName:"voiceRecordingStarted.mp3"}),be.voiceRecordingStopped=be.register({fileName:"voiceRecordingStopped.mp3"}),be.progress=be.register({fileName:"progress.mp3"}),be.chatEditModifiedFile=be.register({fileName:"chatEditModifiedFile.mp3"}),be.editsKept=be.register({fileName:"editsKept.mp3"}),be.editsUndone=be.register({fileName:"editsUndone.mp3"}),be.nextEditSuggestion=be.register({fileName:"nextEditSuggestion.mp3"}),be.terminalCommandSucceeded=be.register({fileName:"terminalCommandSucceeded.mp3"}),be.chatUserActionRequired=be.register({fileName:"chatUserActionRequired.mp3"}),be.codeActionTriggered=be.register({fileName:"codeActionTriggered.mp3"}),be.codeActionApplied=be.register({fileName:"codeActionApplied.mp3"});let Sound=be;class SoundSource{constructor(e){this.randomOneOf=e}}const me=class me{constructor(e,t,r,s,a,l,c=!1){this.sound=e,this.name=t,this.legacySoundSettingsKey=r,this.settingsKey=s,this.legacyAnnouncementSettingsKey=a,this.announcementMessage=l,this.managesOwnEnablement=c}static register(e){const t=new SoundSource("randomOneOf"in e.sound?e.sound.randomOneOf:[e.sound]),r=new me(t,e.name,e.legacySoundSettingsKey,e.settingsKey,e.legacyAnnouncementSettingsKey,e.announcementMessage,e.managesOwnEnablement);return me._signals.add(r),r}};me._signals=new Set,me.errorAtPosition=me.register({name:localize(1576,"Error at Position"),sound:Sound.error,announcementMessage:localize(1577,"Error"),settingsKey:"accessibility.signals.positionHasError",delaySettingsKey:"accessibility.signalOptions.delays.errorAtPosition"}),me.warningAtPosition=me.register({name:localize(1578,"Warning at Position"),sound:Sound.warning,announcementMessage:localize(1579,"Warning"),settingsKey:"accessibility.signals.positionHasWarning",delaySettingsKey:"accessibility.signalOptions.delays.warningAtPosition"}),me.errorOnLine=me.register({name:localize(1580,"Error on Line"),sound:Sound.error,legacySoundSettingsKey:"audioCues.lineHasError",legacyAnnouncementSettingsKey:"accessibility.alert.error",announcementMessage:localize(1581,"Error on Line"),settingsKey:"accessibility.signals.lineHasError"}),me.warningOnLine=me.register({name:localize(1582,"Warning on Line"),sound:Sound.warning,legacySoundSettingsKey:"audioCues.lineHasWarning",legacyAnnouncementSettingsKey:"accessibility.alert.warning",announcementMessage:localize(1583,"Warning on Line"),settingsKey:"accessibility.signals.lineHasWarning"}),me.foldedArea=me.register({name:localize(1584,"Folded Area on Line"),sound:Sound.foldedArea,legacySoundSettingsKey:"audioCues.lineHasFoldedArea",legacyAnnouncementSettingsKey:"accessibility.alert.foldedArea",announcementMessage:localize(1585,"Folded"),settingsKey:"accessibility.signals.lineHasFoldedArea"}),me.break=me.register({name:localize(1586,"Breakpoint on Line"),sound:Sound.break,legacySoundSettingsKey:"audioCues.lineHasBreakpoint",legacyAnnouncementSettingsKey:"accessibility.alert.breakpoint",announcementMessage:localize(1587,"Breakpoint"),settingsKey:"accessibility.signals.lineHasBreakpoint"}),me.inlineSuggestion=me.register({name:localize(1588,"Inline Suggestion on Line"),sound:Sound.quickFixes,legacySoundSettingsKey:"audioCues.lineHasInlineSuggestion",settingsKey:"accessibility.signals.lineHasInlineSuggestion"}),me.nextEditSuggestion=me.register({name:localize(1589,"Next Edit Suggestion on Line"),sound:Sound.nextEditSuggestion,legacySoundSettingsKey:"audioCues.nextEditSuggestion",settingsKey:"accessibility.signals.nextEditSuggestion",announcementMessage:localize(1590,"Next Edit Suggestion")}),me.terminalQuickFix=me.register({name:localize(1591,"Terminal Quick Fix"),sound:Sound.quickFixes,legacySoundSettingsKey:"audioCues.terminalQuickFix",legacyAnnouncementSettingsKey:"accessibility.alert.terminalQuickFix",announcementMessage:localize(1592,"Quick Fix"),settingsKey:"accessibility.signals.terminalQuickFix"}),me.onDebugBreak=me.register({name:localize(1593,"Debugger Stopped on Breakpoint"),sound:Sound.break,legacySoundSettingsKey:"audioCues.onDebugBreak",legacyAnnouncementSettingsKey:"accessibility.alert.onDebugBreak",announcementMessage:localize(1594,"Breakpoint"),settingsKey:"accessibility.signals.onDebugBreak"}),me.noInlayHints=me.register({name:localize(1595,"No Inlay Hints on Line"),sound:Sound.error,legacySoundSettingsKey:"audioCues.noInlayHints",legacyAnnouncementSettingsKey:"accessibility.alert.noInlayHints",announcementMessage:localize(1596,"No Inlay Hints"),settingsKey:"accessibility.signals.noInlayHints"}),me.taskCompleted=me.register({name:localize(1597,"Task Completed"),sound:Sound.taskCompleted,legacySoundSettingsKey:"audioCues.taskCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.taskCompleted",announcementMessage:localize(1598,"Task Completed"),settingsKey:"accessibility.signals.taskCompleted"}),me.taskFailed=me.register({name:localize(1599,"Task Failed"),sound:Sound.taskFailed,legacySoundSettingsKey:"audioCues.taskFailed",legacyAnnouncementSettingsKey:"accessibility.alert.taskFailed",announcementMessage:localize(1600,"Task Failed"),settingsKey:"accessibility.signals.taskFailed"}),me.terminalCommandFailed=me.register({name:localize(1601,"Terminal Command Failed"),sound:Sound.error,legacySoundSettingsKey:"audioCues.terminalCommandFailed",legacyAnnouncementSettingsKey:"accessibility.alert.terminalCommandFailed",announcementMessage:localize(1602,"Command Failed"),settingsKey:"accessibility.signals.terminalCommandFailed"}),me.terminalCommandSucceeded=me.register({name:localize(1603,"Terminal Command Succeeded"),sound:Sound.terminalCommandSucceeded,announcementMessage:localize(1604,"Command Succeeded"),settingsKey:"accessibility.signals.terminalCommandSucceeded"}),me.terminalBell=me.register({name:localize(1605,"Terminal Bell"),sound:Sound.terminalBell,legacySoundSettingsKey:"audioCues.terminalBell",legacyAnnouncementSettingsKey:"accessibility.alert.terminalBell",announcementMessage:localize(1606,"Terminal Bell"),settingsKey:"accessibility.signals.terminalBell"}),me.notebookCellCompleted=me.register({name:localize(1607,"Notebook Cell Completed"),sound:Sound.taskCompleted,legacySoundSettingsKey:"audioCues.notebookCellCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellCompleted",announcementMessage:localize(1608,"Notebook Cell Completed"),settingsKey:"accessibility.signals.notebookCellCompleted"}),me.notebookCellFailed=me.register({name:localize(1609,"Notebook Cell Failed"),sound:Sound.taskFailed,legacySoundSettingsKey:"audioCues.notebookCellFailed",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellFailed",announcementMessage:localize(1610,"Notebook Cell Failed"),settingsKey:"accessibility.signals.notebookCellFailed"}),me.diffLineInserted=me.register({name:localize(1611,"Diff Line Inserted"),sound:Sound.diffLineInserted,legacySoundSettingsKey:"audioCues.diffLineInserted",settingsKey:"accessibility.signals.diffLineInserted"}),me.diffLineDeleted=me.register({name:localize(1612,"Diff Line Deleted"),sound:Sound.diffLineDeleted,legacySoundSettingsKey:"audioCues.diffLineDeleted",settingsKey:"accessibility.signals.diffLineDeleted"}),me.diffLineModified=me.register({name:localize(1613,"Diff Line Modified"),sound:Sound.diffLineModified,legacySoundSettingsKey:"audioCues.diffLineModified",settingsKey:"accessibility.signals.diffLineModified"}),me.chatEditModifiedFile=me.register({name:localize(1614,"Chat Edit Modified File"),sound:Sound.chatEditModifiedFile,announcementMessage:localize(1615,"File Modified from Chat Edits"),settingsKey:"accessibility.signals.chatEditModifiedFile"}),me.chatRequestSent=me.register({name:localize(1616,"Chat Request Sent"),sound:Sound.requestSent,legacySoundSettingsKey:"audioCues.chatRequestSent",legacyAnnouncementSettingsKey:"accessibility.alert.chatRequestSent",announcementMessage:localize(1617,"Chat Request Sent"),settingsKey:"accessibility.signals.chatRequestSent"}),me.chatResponseReceived=me.register({name:localize(1618,"Chat Response Received"),legacySoundSettingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[Sound.responseReceived1,Sound.responseReceived2,Sound.responseReceived3,Sound.responseReceived4]},settingsKey:"accessibility.signals.chatResponseReceived"}),me.codeActionTriggered=me.register({name:localize(1619,"Code Action Request Triggered"),sound:Sound.codeActionTriggered,legacySoundSettingsKey:"audioCues.codeActionRequestTriggered",legacyAnnouncementSettingsKey:"accessibility.alert.codeActionRequestTriggered",announcementMessage:localize(1620,"Code Action Request Triggered"),settingsKey:"accessibility.signals.codeActionTriggered"}),me.codeActionApplied=me.register({name:localize(1621,"Code Action Applied"),legacySoundSettingsKey:"audioCues.codeActionApplied",sound:Sound.codeActionApplied,settingsKey:"accessibility.signals.codeActionApplied"}),me.progress=me.register({name:localize(1622,"Progress"),sound:Sound.progress,legacySoundSettingsKey:"audioCues.chatResponsePending",legacyAnnouncementSettingsKey:"accessibility.alert.progress",announcementMessage:localize(1623,"Progress"),settingsKey:"accessibility.signals.progress"}),me.clear=me.register({name:localize(1624,"Clear"),sound:Sound.clear,legacySoundSettingsKey:"audioCues.clear",legacyAnnouncementSettingsKey:"accessibility.alert.clear",announcementMessage:localize(1625,"Clear"),settingsKey:"accessibility.signals.clear"}),me.save=me.register({name:localize(1626,"Save"),sound:Sound.save,legacySoundSettingsKey:"audioCues.save",legacyAnnouncementSettingsKey:"accessibility.alert.save",announcementMessage:localize(1627,"Save"),settingsKey:"accessibility.signals.save"}),me.format=me.register({name:localize(1628,"Format"),sound:Sound.format,legacySoundSettingsKey:"audioCues.format",legacyAnnouncementSettingsKey:"accessibility.alert.format",announcementMessage:localize(1629,"Format"),settingsKey:"accessibility.signals.format"}),me.voiceRecordingStarted=me.register({name:localize(1630,"Voice Recording Started"),sound:Sound.voiceRecordingStarted,legacySoundSettingsKey:"audioCues.voiceRecordingStarted",settingsKey:"accessibility.signals.voiceRecordingStarted"}),me.voiceRecordingStopped=me.register({name:localize(1631,"Voice Recording Stopped"),sound:Sound.voiceRecordingStopped,legacySoundSettingsKey:"audioCues.voiceRecordingStopped",settingsKey:"accessibility.signals.voiceRecordingStopped"}),me.editsKept=me.register({name:localize(1632,"Edits Kept"),sound:Sound.editsKept,announcementMessage:localize(1633,"Edits Kept"),settingsKey:"accessibility.signals.editsKept"}),me.editsUndone=me.register({name:localize(1634,"Undo Edits"),sound:Sound.editsUndone,announcementMessage:localize(1635,"Edits Undone"),settingsKey:"accessibility.signals.editsUndone"}),me.chatUserActionRequired=me.register({name:localize(1636,"Chat User Action Required"),sound:Sound.chatUserActionRequired,announcementMessage:localize(1637,"Chat User Action Required"),settingsKey:"accessibility.signals.chatUserActionRequired",managesOwnEnablement:!0});let AccessibilitySignal=me;function observableConfigValue(o,e,t,r=DebugLocation.ofCaller()){return observableFromEventOpts({debugName:()=>'Configuration Key "'.concat(o,'"')},s=>t.onDidChangeConfiguration(a=>{a.affectsConfiguration(o)&&s(a)}),()=>{var s;return(s=t.getValue(o))!=null?s:e},r)}function bindContextKey(o,e,t,r=DebugLocation.ofCaller()){const s=o.bindTo(e),a=new DisposableStore$1;return derivedOpts({debugName:()=>'Set Context Key "'.concat(o.key,'"')},l=>{const c=t(l);return s.set(c),c},r).recomputeInitiallyAndOnChange(a),a}const IProgressService=createDecorator("progressService"),ta=class ta{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}};ta.None=Object.freeze({report(){}});let Progress=ta;const IEditorProgressService=createDecorator("editorProgressService");class StableEditorScrollState{static capture(e){if(e.getScrollTop()===0||e.hasPendingScrollAnimation())return new StableEditorScrollState(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,r=0;const s=e.getVisibleRanges();if(s.length>0){t=s[0].getStartPosition();const a=e.getTopForPosition(t.lineNumber,t.column);r=e.getScrollTop()-a}return new StableEditorScrollState(e.getScrollTop(),e.getContentHeight(),t,r,e.getPosition())}constructor(e,t,r,s,a){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=r,this._visiblePositionScrollDelta=s,this._cursorPosition=a}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 r=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+r,1)}}const DataTransfers={RESOURCES:"ResourceURLs",TEXT:Mimes.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"},nullHoverDelegateFactory=()=>({get delay(){return-1},dispose:()=>{},showHover:()=>{}});let hoverDelegateFactory=nullHoverDelegateFactory;const defaultHoverDelegateMouse=new Lazy(()=>hoverDelegateFactory("mouse",!1)),defaultHoverDelegateElement=new Lazy(()=>hoverDelegateFactory("element",!1));function setHoverDelegateFactory(o){hoverDelegateFactory=o}function getDefaultHoverDelegate(o){return o==="element"?defaultHoverDelegateElement.value:defaultHoverDelegateMouse.value}function createInstantHoverDelegate(){return hoverDelegateFactory("element",!0)}function asFragment(o){return o}function asCssValueWithDefault(o,e){if(o!==void 0){const t=o.match(/^\s*var\((.+)\)$/);if(t){const r=t[1].split(",",2);return r.length===2&&(e=asCssValueWithDefault(r[1].trim(),e)),"var(".concat(r[0],", ").concat(e,")")}return o}return e}function identValue(o){const e=o.replaceAll(/[^_\-a-z0-9]/gi,"");return e!==o&&console.warn("CSS ident value ".concat(o," modified to ").concat(e," to be safe for CSS")),e}function stringValue(o){return"'".concat(o.replaceAll(/'/g,"\\000027"),"'")}var xa;function asCSSUrl(o){return o?inline$1(xa||(xa=Ze(["url('","')"])),CSS.escape(FileAccess.uriToBrowserUri(o).toString(!0))):"url('')"}function className(o,e=!1){const t=CSS.escape(o);return!e&&t!==o&&console.warn("CSS class name ".concat(o," modified to ").concat(t," to be safe for CSS")),t}function inline$1(o,...e){return o.reduce((t,r,s)=>{const a=e[s]||"";return t+r+a},"")}class Builder{constructor(){this._parts=[]}push(...e){this._parts.push(...e)}join(e="\n"){return this._parts.join(e)}}function getKoreanAltChars(o){const e=disassembleKorean(o);if(e&&e.length>0)return new Uint32Array(e)}let codeBufferLength=0;const codeBuffer=new Uint32Array(10);function disassembleKorean(o){if(codeBufferLength=0,getCodesFromArray(o,modernConsonants,4352),codeBufferLength>0||(getCodesFromArray(o,modernVowels,4449),codeBufferLength>0)||(getCodesFromArray(o,modernFinalConsonants,4520),codeBufferLength>0)||(getCodesFromArray(o,compatibilityJamo,12593),codeBufferLength))return codeBuffer.subarray(0,codeBufferLength);if(o>=44032&&o<=55203){const e=o-44032,t=e%588,r=Math.floor(e/588),s=Math.floor(t/28),a=t%28-1;if(r<modernConsonants.length?getCodesFromArray(r,modernConsonants,0):4352+r-12593<compatibilityJamo.length&&getCodesFromArray(4352+r,compatibilityJamo,12593),s<modernVowels.length?getCodesFromArray(s,modernVowels,0):4449+s-12593<compatibilityJamo.length&&getCodesFromArray(4449+s-12593,compatibilityJamo,12593),a>=0&&(a<modernFinalConsonants.length?getCodesFromArray(a,modernFinalConsonants,0):4520+a-12593<compatibilityJamo.length&&getCodesFromArray(4520+a-12593,compatibilityJamo,12593)),codeBufferLength>0)return codeBuffer.subarray(0,codeBufferLength)}}function getCodesFromArray(o,e,t){o>=t&&o<t+e.length&&addCodesToBuffer(e[o-t])}function addCodesToBuffer(o){o!==0&&(codeBuffer[codeBufferLength++]=o&255,o>>8&&(codeBuffer[codeBufferLength++]=o>>8&255),o>>16&&(codeBuffer[codeBufferLength++]=o>>16&255))}const modernConsonants=new Uint8Array([114,82,115,101,69,102,97,113,81,116,84,100,119,87,99,122,120,118,103]),modernVowels=new Uint16Array([107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]),modernFinalConsonants=new Uint16Array([114,82,29810,115,30579,26483,101,102,29286,24934,29030,29798,30822,30310,26470,97,113,29809,116,84,100,119,99,122,120,118,103]),compatibilityJamo=new Uint16Array([114,82,29810,115,30579,26483,101,69,102,29286,24934,29030,29798,30822,30310,26470,97,113,81,29809,116,84,100,119,87,99,122,120,118,103,107,111,105,79,106,112,117,80,104,27496,28520,27752,121,110,27246,28782,27758,98,109,27757,108]);function or(...o){return function(e,t){for(let r=0,s=o.length;r<s;r++){const a=o[r](e,t);if(a)return a}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 r;return o?r=startsWithIgnoreCase(t,e):r=t.indexOf(e)===0,r?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,r){if(t===o.length)return[];if(r===e.length)return null;if(o[t]===e[r]){let s=null;return(s=_matchesSubString(o,e,t+1,r+1))?join({start:r,end:r+1},s):null}return _matchesSubString(o,e,t,r+1)}function isLower(o){return 97<=o&&o<=122}function isUpper(o){return 65<=o&&o<=90}function isNumber$1(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)}const alternateCharsCache=new Map;function getAlternateCodes(o){if(alternateCharsCache.has(o))return alternateCharsCache.get(o);let e;const t=getKoreanAltChars(o);return t&&(e=t),alternateCharsCache.set(o,e),e}function isAlphanumeric(o){return isLower(o)||isUpper(o)||isNumber$1(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 r=o.charCodeAt(t);if(isUpper(r)||isNumber$1(r)||t>0&&!isAlphanumeric(o.charCodeAt(t-1)))return t}return o.length}function _matchesCamelCase(o,e,t,r){if(t===o.length)return[];if(r===e.length)return null;if(o[t]!==e[r].toLowerCase())return null;{let s=null,a=r+1;for(s=_matchesCamelCase(o,e,t+1,r+1);!s&&(a=nextAnchor(e,a))<e.length;)s=_matchesCamelCase(o,e,t+1,a),a++;return s===null?null:join({start:r,end:r+1},s)}}function analyzeCamelCaseWord(o){let e=0,t=0,r=0,s=0,a=0;for(let g=0;g<o.length;g++)a=o.charCodeAt(g),isUpper(a)&&e++,isLower(a)&&t++,isAlphanumeric(a)&&r++,isNumber$1(a)&&s++;const l=e/o.length,c=t/o.length,d=r/o.length,u=s/o.length;return{upperPercent:l,lowerPercent:c,alphaPercent:d,numericPercent:u}}function isUpperCaseWord(o){const{upperPercent:e,lowerPercent:t}=o;return t===0&&e>.6}function isCamelCaseWord(o){const{upperPercent:e,lowerPercent:t,alphaPercent:r,numericPercent:s}=o;return t>.2&&e<.8&&r>.6&&s<.2}function isCamelCasePattern(o){let e=0,t=0,r=0,s=0;for(let a=0;a<o.length;a++)r=o.charCodeAt(a),isUpper(r)&&e++,isLower(r)&&t++,isWhitespace(r)&&s++;return(e===0||t===0)&&s===0?o.length<=30:e<=5}function matchesCamelCase(o,e){if(!e||(e=e.trim(),e.length===0)||!isCamelCasePattern(o))return null;e.length>60&&(e=e.substring(0,60));const t=analyzeCamelCaseWord(e);if(!isCamelCaseWord(t)){if(!isUpperCaseWord(t))return null;e=e.toLowerCase()}let r=null,s=0;for(o=o.toLowerCase();s<e.length&&(r=_matchesCamelCase(o,e,0,s))===null;)s=nextAnchor(e,s+1);return r}function matchesWords(o,e,t=!1){if(!e||e.length===0)return null;let r=null,s=0;for(o=o.toLowerCase(),e=e.toLowerCase();s<e.length&&(r=_matchesWords(o,e,0,s,t),r===null);)s=nextWord(e,s+1);return r}function _matchesWords(o,e,t,r,s){let a=0;if(t===o.length)return[];if(r===e.length)return null;if(!charactersMatch(o.charCodeAt(t),e.charCodeAt(r))){const d=getAlternateCodes(o.charCodeAt(t));if(!d)return null;for(let u=0;u<d.length;u++)if(!charactersMatch(d[u],e.charCodeAt(r+u)))return null;a+=d.length-1}let l=null,c=r+a+1;if(l=_matchesWords(o,e,t+1,c,s),!s)for(;!l&&(c=nextWord(e,c))<e.length;)l=_matchesWords(o,e,t+1,c,s),c++;if(!l)return null;if(o.charCodeAt(t)!==e.charCodeAt(r)){const d=getAlternateCodes(o.charCodeAt(t));if(!d)return l;for(let u=0;u<d.length;u++)if(d[u]!==e.charCodeAt(r+u))return l}return join({start:r,end:r+a+1},l)}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 r=fuzzyRegExpCache.get(o);r||(r=new RegExp(convertSimple2RegExpPattern(o),"i"),fuzzyRegExpCache.set(o,r));const s=r.exec(e);return s?[{start:s.index,end:s.index+s[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,r,s,a){const l=Math.min(13,o.length);for(;t<l;t++){const c=fuzzyScore(o,e,t,r,s,a,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(c)return c}return[0,a]}function createMatches(o){if(typeof o>"u")return[];const e=[],t=o[1];for(let r=o.length-1;r>1;r--){const s=o[r]+t,a=e[e.length-1];a&&a.end===s?a.end=s+1:e.push({start:s,end:s+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,r,s,a,l=!1){for(;e<t&&s<a;)o[e]===r[s]&&(l&&(_minWordMatchPos[e]=s),e+=1),s+=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={}));const ia=class ia{constructor(e,t){this.firstMatchCanBeWeak=e,this.boostFullMatch=t}};ia.default={boostFullMatch:!0,firstMatchCanBeWeak:!1};let FuzzyScoreOptions=ia;function fuzzyScore(o,e,t,r,s,a,l=FuzzyScoreOptions.default){const c=o.length>_maxLen?_maxLen:o.length,d=r.length>_maxLen?_maxLen:r.length;if(t>=c||a>=d||c-t>d-a||!isPatternInWord(e,t,c,s,a,d,!0))return;_fillInMaxWordMatchPos(c,d,t,a,e,s);let u=1,g=1,f=t,m=a;const _=[!1];for(u=1,f=t;f<c;u++,f++){const S=_minWordMatchPos[f],w=_maxWordMatchPos[f],E=f+1<c?_maxWordMatchPos[f+1]:d;for(g=S-a+1,m=S;m<E;g++,m++){let x=Number.MIN_SAFE_INTEGER,L=!1;m<=w&&(x=_doScore(o,e,f,t,r,s,m,d,a,_diag[u-1][g-1]===0,_));let k=0;x!==Number.MIN_SAFE_INTEGER&&(L=!0,k=x+_table[u-1][g-1]);const D=m>S,I=D?_table[u][g-1]+(_diag[u][g-1]>0?-5:0):0,T=m>S+1&&_diag[u][g-1]>0,M=T?_table[u][g-2]+(_diag[u][g-2]>0?-5:0):0;if(T&&(!D||M>=I)&&(!L||M>=k))_table[u][g]=M,_arrows[u][g]=3,_diag[u][g]=0;else if(D&&(!L||I>=k))_table[u][g]=I,_arrows[u][g]=2,_diag[u][g]=0;else if(L)_table[u][g]=k,_arrows[u][g]=1,_diag[u][g]=_diag[u-1][g-1]+1;else throw new Error("not possible")}}if(!_[0]&&!l.firstMatchCanBeWeak)return;u--,g--;const v=[_table[u][g],a];let b=0,C=0;for(;u>=1;){let S=g;do{const w=_arrows[u][S];if(w===3)S=S-2;else if(w===2)S=S-1;else break}while(S>=1);b>1&&e[t+u-1]===s[a+g-1]&&!isUpperCaseAtPos(S+a-1,r,s)&&b+1>_diag[u][S]&&(S=g),S===g?b++:b=1,C||(C=S),u--,g=S-1,v.push(g)}d-a===c&&l.boostFullMatch&&(v[0]+=2);const y=C-c;return v[0]-=y,v}function _fillInMaxWordMatchPos(o,e,t,r,s,a){let l=o-1,c=e-1;for(;l>=t&&c>=r;)s[l]===a[c]&&(_maxWordMatchPos[l]=c,l--),c--}function _doScore(o,e,t,r,s,a,l,c,d,u,g){if(e[t]!==a[l])return Number.MIN_SAFE_INTEGER;let f=1,m=!1;return l===t-r?f=o[t]===s[l]?7:5:isUpperCaseAtPos(l,s,a)&&(l===0||!isUpperCaseAtPos(l-1,s,a))?(f=o[t]===s[l]?7:5,m=!0):isSeparatorAtPos(a,l)&&(l===0||!isSeparatorAtPos(a,l-1))?f=5:(isSeparatorAtPos(a,l-1)||isWhitespaceAtPos(a,l-1))&&(f=5,m=!0),f>1&&t===r&&(g[0]=!0),m||(m=isUpperCaseAtPos(l,s,a)||isSeparatorAtPos(a,l-1)||isWhitespaceAtPos(a,l-1)),t===r?l>d&&(f-=m?3:5):u?f+=m?2:0:f+=m?0:1,l+1===c&&(f-=m?3:5),f}function fuzzyScoreGracefulAggressive(o,e,t,r,s,a,l){return fuzzyScoreWithPermutations(o,e,t,r,s,a,!0,l)}function fuzzyScoreWithPermutations(o,e,t,r,s,a,l,c){let d=fuzzyScore(o,e,t,r,s,a,c);if(o.length>=3){const u=Math.min(7,o.length-1);for(let g=t+1;g<u;g++){const f=nextTypoPermutation(o,g);if(f){const m=fuzzyScore(f,f.toLowerCase(),t,r,s,a,c);m&&(m[0]-=3,(!d||m[0]>d[0])&&(d=m))}}}return d}function nextTypoPermutation(o,e){if(e+1>=o.length)return;const t=o[e],r=o[e+1];if(t!==r)return o.slice(0,e)+r+t+o.slice(e+2)}const iconStartMarker="$(",iconsRegex=new RegExp("\\$\\(".concat(ThemeIcon.iconNameExpression,"(?:").concat(ThemeIcon.iconModifierExpression,")?\\)"),"g"),escapeIconsRegex=new RegExp("(\\\\)?".concat(iconsRegex.source),"g");function escapeIcons(o){return o.replace(escapeIconsRegex,(e,t)=>t?e:"\\".concat(e))}const markdownEscapedIconsRegex=new RegExp("\\\\".concat(iconsRegex.source),"g");function markdownEscapeEscapedIcons(o){return o.replace(markdownEscapedIconsRegex,e=>"\\".concat(e))}const stripIconsRegex=new RegExp("(\\s)?(\\\\)?".concat(iconsRegex.source,"(\\s)?"),"g");function stripIcons(o){return o.indexOf(iconStartMarker)===-1?o:o.replace(stripIconsRegex,(e,t,r,s)=>r?e:t||s||"")}function getCodiconAriaLabel(o){return o?o.replace(/\$\((.*?)\)/g,(e,t)=>" ".concat(t," ")).trim():""}const _parseIconsRegex=new RegExp("\\$\\(".concat(ThemeIcon.iconNameCharacter,"+\\)"),"g");function parseLabelWithIcons(o){_parseIconsRegex.lastIndex=0;let e="";const t=[];let r=0;for(;;){const s=_parseIconsRegex.lastIndex,a=_parseIconsRegex.exec(o),l=o.substring(s,a==null?void 0:a.index);if(l.length>0){e+=l;for(let c=0;c<l.length;c++)t.push(r)}if(!a)break;r+=a[0].length}return{text:e,iconOffsets:t}}function matchesFuzzyIconAware(o,e,t=!1){const{text:r,iconOffsets:s}=e;if(!s||s.length===0)return matchesFuzzy(o,r,t);const a=ltrim(r," "),l=r.length-a.length,c=matchesFuzzy(o,a,t);if(c)for(const d of c){const u=s[d.start+l]+l;d.start+=u,d.end+=u}return c}class MarkdownString{constructor(e="",t=!1){var r,s,a,l;if(this.value=e,typeof this.value!="string")throw illegalArgument("value");typeof t=="boolean"?(this.isTrusted=t,this.supportThemeIcons=!1,this.supportHtml=!1,this.supportAlertSyntax=!1):(this.isTrusted=(r=t.isTrusted)!=null?r:void 0,this.supportThemeIcons=(s=t.supportThemeIcons)!=null?s:!1,this.supportHtml=(a=t.supportHtml)!=null?a:!1,this.supportAlertSyntax=(l=t.supportAlertSyntax)!=null?l:!1)}appendText(e,t=0){return this.value+=escapeMarkdownSyntaxTokens(this.supportThemeIcons?escapeIcons(e):e).replace(/([ \t]+)/g,(r,s)=>"&nbsp;".repeat(s.length)).replace(/\>/gm,"\\>").replace(/\n/g,t===1?"\\\n":"\n\n"),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+="\n".concat(appendEscapedMarkdownCodeBlockFence(t,e),"\n"),this}appendLink(e,t,r){return this.value+="[",this.value+=this._escape(t,"]"),this.value+="](",this.value+=this._escape(String(e),")"),r&&(this.value+=' "'.concat(this._escape(this._escape(r,'"'),")"),'"')),this.value+=")",this}_escape(e,t){const r=new RegExp(escapeRegExpCharacters(t),"g");return e.replace(r,(s,a)=>e.charAt(a-1)!=="\\"?"\\".concat(s):s)}}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)&&(typeof o.supportAlertSyntax=="boolean"||o.supportAlertSyntax===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.supportAlertSyntax===e.supportAlertSyntax&&(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 appendEscapedMarkdownCodeBlockFence(o,e){var s,a;const t=(a=(s=o.match(/^`+/gm))==null?void 0:s.reduce((l,c)=>l.length>c.length?l:c).length)!=null?a:0,r=t>=3?t+1:3;return["".concat("`".repeat(r)).concat(e),o,"".concat("`".repeat(r))].join("\n")}function escapeDoubleQuotes(o){return o.replace(/"/g,"&quot;")}function removeMarkdownEscapes(o){return o&&o.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")}function parseHrefAndDimensions(o){const e=[],t=o.split("|").map(s=>s.trim());o=t[0];const r=t[1];if(r){const s=/height=(\d+)/.exec(r),a=/width=(\d+)/.exec(r),l=s?s[1]:"",c=a?a[1]:"",d=isFinite(parseInt(c)),u=isFinite(parseInt(l));d&&e.push('width="'.concat(c,'"')),u&&e.push('height="'.concat(l,'"'))}return{href:o,dimensions:e}}function createCommandUri(o,...e){return URI.from({scheme:Schemas.command,path:o,query:e.length?encodeURIComponent(JSON.stringify(e)):void 0})}class IdGenerator{constructor(e){this._prefix=e,this._lastId=0}nextId(){return this._prefix+ ++this._lastId}}const defaultGenerator=new IdGenerator("id#");function _getDefaults(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}let _defaults=_getDefaults();function changeDefaults(o){_defaults=o}const escapeTest=/[&<>"']/,escapeReplace=new RegExp(escapeTest.source,"g"),escapeTestNoEncode=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode=new RegExp(escapeTestNoEncode.source,"g"),escapeReplacements={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},getEscapeReplacement=o=>escapeReplacements[o];function escape$1(o,e){if(e){if(escapeTest.test(o))return o.replace(escapeReplace,getEscapeReplacement)}else if(escapeTestNoEncode.test(o))return o.replace(escapeReplaceNoEncode,getEscapeReplacement);return o}const caret=/(^|[^\[])\^/g;function edit(o,e){let t=typeof o=="string"?o:o.source;e=e||"";const r={replace:(s,a)=>{let l=typeof a=="string"?a:a.source;return l=l.replace(caret,"$1"),t=t.replace(s,l),r},getRegex:()=>new RegExp(t,e)};return r}function cleanUrl(o){try{o=encodeURI(o).replace(/%25/g,"%")}catch(e){return null}return o}const noopTest={exec:()=>null};function splitCells(o,e){const t=o.replace(/\|/g,(a,l,c)=>{let d=!1,u=l;for(;--u>=0&&c[u]==="\\";)d=!d;return d?"|":" |"}),r=t.split(/ \|/);let s=0;if(r[0].trim()||r.shift(),r.length>0&&!r[r.length-1].trim()&&r.pop(),e)if(r.length>e)r.splice(e);else for(;r.length<e;)r.push("");for(;s<r.length;s++)r[s]=r[s].trim().replace(/\\\|/g,"|");return r}function rtrim(o,e,t){const r=o.length;if(r===0)return"";let s=0;for(;s<r&&o.charAt(r-s-1)===e;)s++;return o.slice(0,r-s)}function findClosingBracket(o,e){if(o.indexOf(e[1])===-1)return-1;let t=0;for(let r=0;r<o.length;r++)if(o[r]==="\\")r++;else if(o[r]===e[0])t++;else if(o[r]===e[1]&&(t--,t<0))return r;return-1}function outputLink(o,e,t,r){const s=e.href,a=e.title?escape$1(e.title):null,l=o[1].replace(/\\([\[\]])/g,"$1");if(o[0].charAt(0)!=="!"){r.state.inLink=!0;const c={type:"link",raw:t,href:s,title:a,text:l,tokens:r.inlineTokens(l)};return r.state.inLink=!1,c}return{type:"image",raw:t,href:s,title:a,text:escape$1(l)}}function indentCodeCompensation(o,e){const t=o.match(/^(\s+)(?:```)/);if(t===null)return e;const r=t[1];return e.split("\n").map(s=>{const a=s.match(/^\s+/);if(a===null)return s;const[l]=a;return l.length>=r.length?s.slice(r.length):s}).join("\n")}class _Tokenizer{constructor(e){K(this,"options");K(this,"rules");K(this,"lexer");this.options=e||_defaults}space(e){const t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:"space",raw:t[0]}}code(e){const t=this.rules.block.code.exec(e);if(t){const r=t[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?r:rtrim(r,"\n")}}}fences(e){const t=this.rules.block.fences.exec(e);if(t){const r=t[0],s=indentCodeCompensation(r,t[3]||"");return{type:"code",raw:r,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:s}}}heading(e){const t=this.rules.block.heading.exec(e);if(t){let r=t[2].trim();if(/#$/.test(r)){const s=rtrim(r,"#");(this.options.pedantic||!s||/ $/.test(s))&&(r=s.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:r,tokens:this.lexer.inline(r)}}}hr(e){const t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:rtrim(t[0],"\n")}}blockquote(e){const t=this.rules.block.blockquote.exec(e);if(t){let r=rtrim(t[0],"\n").split("\n"),s="",a="";const l=[];for(;r.length>0;){let c=!1;const d=[];let u;for(u=0;u<r.length;u++)if(/^ {0,3}>/.test(r[u]))d.push(r[u]),c=!0;else if(!c)d.push(r[u]);else break;r=r.slice(u);const g=d.join("\n"),f=g.replace(/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,"\n $1").replace(/^ {0,3}>[ \t]?/gm,"");s=s?"".concat(s,"\n").concat(g):g,a=a?"".concat(a,"\n").concat(f):f;const m=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(f,l,!0),this.lexer.state.top=m,r.length===0)break;const _=l[l.length-1];if((_==null?void 0:_.type)==="code")break;if((_==null?void 0:_.type)==="blockquote"){const v=_,b=v.raw+"\n"+r.join("\n"),C=this.blockquote(b);l[l.length-1]=C,s=s.substring(0,s.length-v.raw.length)+C.raw,a=a.substring(0,a.length-v.text.length)+C.text;break}else if((_==null?void 0:_.type)==="list"){const v=_,b=v.raw+"\n"+r.join("\n"),C=this.list(b);l[l.length-1]=C,s=s.substring(0,s.length-_.raw.length)+C.raw,a=a.substring(0,a.length-v.raw.length)+C.raw,r=b.substring(l[l.length-1].raw.length).split("\n");continue}}return{type:"blockquote",raw:s,tokens:l,text:a}}}list(e){let t=this.rules.block.list.exec(e);if(t){let r=t[1].trim();const s=r.length>1,a={type:"list",raw:"",ordered:s,start:s?+r.slice(0,-1):"",loose:!1,items:[]};r=s?"\\d{1,9}\\".concat(r.slice(-1)):"\\".concat(r),this.options.pedantic&&(r=s?r:"[*+-]");const l=new RegExp("^( {0,3}".concat(r,")((?:[ ][^\\n]*)?(?:\\n|$))"));let c=!1;for(;e;){let d=!1,u="",g="";if(!(t=l.exec(e))||this.rules.block.hr.test(e))break;u=t[0],e=e.substring(u.length);let f=t[2].split("\n",1)[0].replace(/^\t+/,y=>" ".repeat(3*y.length)),m=e.split("\n",1)[0],_=!f.trim(),v=0;if(this.options.pedantic?(v=2,g=f.trimStart()):_?v=t[1].length+1:(v=t[2].search(/[^ ]/),v=v>4?1:v,g=f.slice(v),v+=t[1].length),_&&/^ *$/.test(m)&&(u+=m+"\n",e=e.substring(m.length+1),d=!0),!d){const y=new RegExp("^ {0,".concat(Math.min(3,v-1),"}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))")),S=new RegExp("^ {0,".concat(Math.min(3,v-1),"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)")),w=new RegExp("^ {0,".concat(Math.min(3,v-1),"}(?:```|~~~)")),E=new RegExp("^ {0,".concat(Math.min(3,v-1),"}#"));for(;e;){const x=e.split("\n",1)[0];if(m=x,this.options.pedantic&&(m=m.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),w.test(m)||E.test(m)||y.test(m)||S.test(e))break;if(m.search(/[^ ]/)>=v||!m.trim())g+="\n"+m.slice(v);else{if(_||f.search(/[^ ]/)>=4||w.test(f)||E.test(f)||S.test(f))break;g+="\n"+m}!_&&!m.trim()&&(_=!0),u+=x+"\n",e=e.substring(x.length+1),f=m.slice(v)}}a.loose||(c?a.loose=!0:/\n *\n *$/.test(u)&&(c=!0));let b=null,C;this.options.gfm&&(b=/^\[[ xX]\] /.exec(g),b&&(C=b[0]!=="[ ] ",g=g.replace(/^\[[ xX]\] +/,""))),a.items.push({type:"list_item",raw:u,task:!!b,checked:C,loose:!1,text:g,tokens:[]}),a.raw+=u}a.items[a.items.length-1].raw=a.items[a.items.length-1].raw.trimEnd(),a.items[a.items.length-1].text=a.items[a.items.length-1].text.trimEnd(),a.raw=a.raw.trimEnd();for(let d=0;d<a.items.length;d++)if(this.lexer.state.top=!1,a.items[d].tokens=this.lexer.blockTokens(a.items[d].text,[]),!a.loose){const u=a.items[d].tokens.filter(f=>f.type==="space"),g=u.length>0&&u.some(f=>/\n.*\n/.test(f.raw));a.loose=g}if(a.loose)for(let d=0;d<a.items.length;d++)a.items[d].loose=!0;return a}}html(e){const t=this.rules.block.html.exec(e);if(t)return{type:"html",block:!0,raw:t[0],pre:t[1]==="pre"||t[1]==="script"||t[1]==="style",text:t[0]}}def(e){const t=this.rules.block.def.exec(e);if(t){const r=t[1].toLowerCase().replace(/\s+/g," "),s=t[2]?t[2].replace(/^<(.*)>$/,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",a=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):t[3];return{type:"def",tag:r,raw:t[0],href:s,title:a}}}table(e){const t=this.rules.block.table.exec(e);if(!t||!/[:|]/.test(t[2]))return;const r=splitCells(t[1]),s=t[2].replace(/^\||\| *$/g,"").split("|"),a=t[3]&&t[3].trim()?t[3].replace(/\n[ \t]*$/,"").split("\n"):[],l={type:"table",raw:t[0],header:[],align:[],rows:[]};if(r.length===s.length){for(const c of s)/^ *-+: *$/.test(c)?l.align.push("right"):/^ *:-+: *$/.test(c)?l.align.push("center"):/^ *:-+ *$/.test(c)?l.align.push("left"):l.align.push(null);for(let c=0;c<r.length;c++)l.header.push({text:r[c],tokens:this.lexer.inline(r[c]),header:!0,align:l.align[c]});for(const c of a)l.rows.push(splitCells(c,l.header.length).map((d,u)=>({text:d,tokens:this.lexer.inline(d),header:!1,align:l.align[u]})));return l}}lheading(e){const t=this.rules.block.lheading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[2].charAt(0)==="="?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){const t=this.rules.block.paragraph.exec(e);if(t){const r=t[1].charAt(t[1].length-1)==="\n"?t[1].slice(0,-1):t[1];return{type:"paragraph",raw:t[0],text:r,tokens:this.lexer.inline(r)}}}text(e){const t=this.rules.block.text.exec(e);if(t)return{type:"text",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){const t=this.rules.inline.escape.exec(e);if(t)return{type:"escape",raw:t[0],text:escape$1(t[1])}}tag(e){const t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&/^<a /i.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&/^<\/a>/i.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){const t=this.rules.inline.link.exec(e);if(t){const r=t[2].trim();if(!this.options.pedantic&&/^</.test(r)){if(!/>$/.test(r))return;const l=rtrim(r.slice(0,-1),"\\");if((r.length-l.length)%2===0)return}else{const l=findClosingBracket(t[2],"()");if(l>-1){const d=(t[0].indexOf("!")===0?5:4)+t[1].length+l;t[2]=t[2].substring(0,l),t[0]=t[0].substring(0,d).trim(),t[3]=""}}let s=t[2],a="";if(this.options.pedantic){const l=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(s);l&&(s=l[1],a=l[3])}else a=t[3]?t[3].slice(1,-1):"";return s=s.trim(),/^</.test(s)&&(this.options.pedantic&&!/>$/.test(r)?s=s.slice(1):s=s.slice(1,-1)),outputLink(t,{href:s&&s.replace(this.rules.inline.anyPunctuation,"$1"),title:a&&a.replace(this.rules.inline.anyPunctuation,"$1")},t[0],this.lexer)}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){const s=(r[2]||r[1]).replace(/\s+/g," "),a=t[s.toLowerCase()];if(!a){const l=r[0].charAt(0);return{type:"text",raw:l,text:l}}return outputLink(r,a,r[0],this.lexer)}}emStrong(e,t,r=""){let s=this.rules.inline.emStrongLDelim.exec(e);if(!s||s[3]&&r.match(/[\p{L}\p{N}]/u))return;if(!(s[1]||s[2]||"")||!r||this.rules.inline.punctuation.exec(r)){const l=[...s[0]].length-1;let c,d,u=l,g=0;const f=s[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(f.lastIndex=0,t=t.slice(-1*e.length+l);(s=f.exec(t))!=null;){if(c=s[1]||s[2]||s[3]||s[4]||s[5]||s[6],!c)continue;if(d=[...c].length,s[3]||s[4]){u+=d;continue}else if((s[5]||s[6])&&l%3&&!((l+d)%3)){g+=d;continue}if(u-=d,u>0)continue;d=Math.min(d,d+u+g);const m=[...s[0]][0].length,_=e.slice(0,l+s.index+m+d);if(Math.min(l,d)%2){const b=_.slice(1,-1);return{type:"em",raw:_,text:b,tokens:this.lexer.inlineTokens(b)}}const v=_.slice(2,-2);return{type:"strong",raw:_,text:v,tokens:this.lexer.inlineTokens(v)}}}}codespan(e){const t=this.rules.inline.code.exec(e);if(t){let r=t[2].replace(/\n/g," ");const s=/[^ ]/.test(r),a=/^ /.test(r)&&/ $/.test(r);return s&&a&&(r=r.substring(1,r.length-1)),r=escape$1(r,!0),{type:"codespan",raw:t[0],text:r}}}br(e){const t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){const t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){const t=this.rules.inline.autolink.exec(e);if(t){let r,s;return t[2]==="@"?(r=escape$1(t[1]),s="mailto:"+r):(r=escape$1(t[1]),s=r),{type:"link",raw:t[0],text:r,href:s,tokens:[{type:"text",raw:r,text:r}]}}}url(e){var r,s;let t;if(t=this.rules.inline.url.exec(e)){let a,l;if(t[2]==="@")a=escape$1(t[0]),l="mailto:"+a;else{let c;do c=t[0],t[0]=(s=(r=this.rules.inline._backpedal.exec(t[0]))==null?void 0:r[0])!=null?s:"";while(c!==t[0]);a=escape$1(t[0]),t[1]==="www."?l="http://"+t[0]:l=t[0]}return{type:"link",raw:t[0],text:a,href:l,tokens:[{type:"text",raw:a,text:a}]}}}inlineText(e){const t=this.rules.inline.text.exec(e);if(t){let r;return this.lexer.state.inRawBlock?r=t[0]:r=escape$1(t[0]),{type:"text",raw:t[0],text:r}}}}const newline=/^(?: *(?:\n|$))+/,blockCode=/^( {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+|$)/,bullet=/(?:[*+-]|\d{1,9}[.)])/,lheading=edit(/^(?!bull |blockCode|fences|blockquote|heading|html)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html))+?)\n {0,3}(=+|-+) *(?:\n+|$)/).replace(/bull/g,bullet).replace(/blockCode/g,/ {4}/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).getRegex(),_paragraph=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,blockText=/^[^\n]+/,_blockLabel=/(?!\s*\])(?:\\.|[^\[\]\\])+/,def=edit(/^ {0,3}\[(label)\]: *(?:\n *)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/).replace("label",_blockLabel).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),list=edit(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,bullet).getRegex(),_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|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",_comment=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,html$2=edit("^ {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|$))","i").replace("comment",_comment).replace("tag",_tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),paragraph=edit(_paragraph).replace("hr",hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",_tag).getRegex(),blockquote=edit(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",paragraph).getRegex(),blockNormal={blockquote,code:blockCode,def,fences,heading,hr,html:html$2,lheading,list,newline,paragraph,table:noopTest,text:blockText},gfmTable=edit("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",_tag).getRegex(),blockGfm={...blockNormal,table:gfmTable,paragraph:edit(_paragraph).replace("hr",hr).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",gfmTable).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",_tag).getRegex()},blockPedantic={...blockNormal,html:edit("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\s[^'\"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",_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:noopTest,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:edit(_paragraph).replace("hr",hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",lheading).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},escape=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,inlineCode=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br=/^( {2,}|\\)\n(?!\s*$)/,inlineText=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,_punctuation="\\p{P}\\p{S}",punctuation=edit(/^((?![*_])[\spunctuation])/,"u").replace(/punctuation/g,_punctuation).getRegex(),blockSkip=/\[[^[\]]*?\]\([^\(\)]*?\)|`[^`]*?`|<[^<>]*?>/g,emStrongLDelim=edit(/^(?:\*+(?:((?!\*)[punct])|[^\s*]))|^_+(?:((?!_)[punct])|([^\s_]))/,"u").replace(/punct/g,_punctuation).getRegex(),emStrongRDelimAst=edit("^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)[punct](\\*+)(?=[\\s]|$)|[^punct\\s](\\*+)(?!\\*)(?=[punct\\s]|$)|(?!\\*)[punct\\s](\\*+)(?=[^punct\\s])|[\\s](\\*+)(?!\\*)(?=[punct])|(?!\\*)[punct](\\*+)(?!\\*)(?=[punct])|[^punct\\s](\\*+)(?=[^punct\\s])","gu").replace(/punct/g,_punctuation).getRegex(),emStrongRDelimUnd=edit("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)[punct](_+)(?=[\\s]|$)|[^punct\\s](_+)(?!_)(?=[punct\\s]|$)|(?!_)[punct\\s](_+)(?=[^punct\\s])|[\\s](_+)(?!_)(?=[punct])|(?!_)[punct](_+)(?!_)(?=[punct])","gu").replace(/punct/g,_punctuation).getRegex(),anyPunctuation=edit(/\\([punct])/,"gu").replace(/punct/g,_punctuation).getRegex(),autolink=edit(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),_inlineComment=edit(_comment).replace("(?:-->|$)","-->").getRegex(),tag=edit("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",_inlineComment).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),_inlineLabel=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,link=edit(/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/).replace("label",_inlineLabel).replace("href",/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),reflink=edit(/^!?\[(label)\]\[(ref)\]/).replace("label",_inlineLabel).replace("ref",_blockLabel).getRegex(),nolink=edit(/^!?\[(ref)\](?:\[\])?/).replace("ref",_blockLabel).getRegex(),reflinkSearch=edit("reflink|nolink(?!\\()","g").replace("reflink",reflink).replace("nolink",nolink).getRegex(),inlineNormal={_backpedal:noopTest,anyPunctuation,autolink,blockSkip,br,code:inlineCode,del:noopTest,emStrongLDelim,emStrongRDelimAst,emStrongRDelimUnd,escape,link,nolink,punctuation,reflink,reflinkSearch,tag,text:inlineText,url:noopTest},inlinePedantic={...inlineNormal,link:edit(/^!?\[(label)\]\((.*?)\)/).replace("label",_inlineLabel).getRegex(),reflink:edit(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",_inlineLabel).getRegex()},inlineGfm={...inlineNormal,escape:edit(escape).replace("])","~|])").getRegex(),url:edit(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,"i").replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|https?:\/\/|ftp:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/},inlineBreaks={...inlineGfm,br:edit(br).replace("{2,}","*").getRegex(),text:edit(inlineGfm.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},block={normal:blockNormal,gfm:blockGfm,pedantic:blockPedantic},inline={normal:inlineNormal,gfm:inlineGfm,breaks:inlineBreaks,pedantic:inlinePedantic};class _Lexer{constructor(e){K(this,"tokens");K(this,"options");K(this,"state");K(this,"tokenizer");K(this,"inlineQueue");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||_defaults,this.options.tokenizer=this.options.tokenizer||new _Tokenizer,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};const t={block:block.normal,inline:inline.normal};this.options.pedantic?(t.block=block.pedantic,t.inline=inline.pedantic):this.options.gfm&&(t.block=block.gfm,this.options.breaks?t.inline=inline.breaks:t.inline=inline.gfm),this.tokenizer.rules=t}static get rules(){return{block,inline}}static lex(e,t){return new _Lexer(t).lex(e)}static lexInline(e,t){return new _Lexer(t).inlineTokens(e)}lex(e){e=e.replace(/\r\n|\r/g,"\n"),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){const r=this.inlineQueue[t];this.inlineTokens(r.src,r.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],r=!1){this.options.pedantic?e=e.replace(/\t/g," ").replace(/^ +$/gm,""):e=e.replace(/^( *)(\t+)/gm,(c,d,u)=>d+" ".repeat(u.length));let s,a,l;for(;e;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(c=>(s=c.call({lexer:this},e,t))?(e=e.substring(s.raw.length),t.push(s),!0):!1))){if(s=this.tokenizer.space(e)){e=e.substring(s.raw.length),s.raw.length===1&&t.length>0?t[t.length-1].raw+="\n":t.push(s);continue}if(s=this.tokenizer.code(e)){e=e.substring(s.raw.length),a=t[t.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+="\n"+s.raw,a.text+="\n"+s.text,this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(s);continue}if(s=this.tokenizer.fences(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.heading(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.hr(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.blockquote(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.list(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.html(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.def(e)){e=e.substring(s.raw.length),a=t[t.length-1],a&&(a.type==="paragraph"||a.type==="text")?(a.raw+="\n"+s.raw,a.text+="\n"+s.raw,this.inlineQueue[this.inlineQueue.length-1].src=a.text):this.tokens.links[s.tag]||(this.tokens.links[s.tag]={href:s.href,title:s.title});continue}if(s=this.tokenizer.table(e)){e=e.substring(s.raw.length),t.push(s);continue}if(s=this.tokenizer.lheading(e)){e=e.substring(s.raw.length),t.push(s);continue}if(l=e,this.options.extensions&&this.options.extensions.startBlock){let c=1/0;const d=e.slice(1);let u;this.options.extensions.startBlock.forEach(g=>{u=g.call({lexer:this},d),typeof u=="number"&&u>=0&&(c=Math.min(c,u))}),c<1/0&&c>=0&&(l=e.substring(0,c+1))}if(this.state.top&&(s=this.tokenizer.paragraph(l))){a=t[t.length-1],r&&(a==null?void 0:a.type)==="paragraph"?(a.raw+="\n"+s.raw,a.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(s),r=l.length!==e.length,e=e.substring(s.raw.length);continue}if(s=this.tokenizer.text(e)){e=e.substring(s.raw.length),a=t[t.length-1],a&&a.type==="text"?(a.raw+="\n"+s.raw,a.text+="\n"+s.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=a.text):t.push(s);continue}if(e){const c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let r,s,a,l=e,c,d,u;if(this.tokens.links){const g=Object.keys(this.tokens.links);if(g.length>0)for(;(c=this.tokenizer.rules.inline.reflinkSearch.exec(l))!=null;)g.includes(c[0].slice(c[0].lastIndexOf("[")+1,-1))&&(l=l.slice(0,c.index)+"["+"a".repeat(c[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(c=this.tokenizer.rules.inline.blockSkip.exec(l))!=null;)l=l.slice(0,c.index)+"["+"a".repeat(c[0].length-2)+"]"+l.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(c=this.tokenizer.rules.inline.anyPunctuation.exec(l))!=null;)l=l.slice(0,c.index)+"++"+l.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);for(;e;)if(d||(u=""),d=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(g=>(r=g.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))){if(r=this.tokenizer.escape(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.tag(e)){e=e.substring(r.raw.length),s=t[t.length-1],s&&r.type==="text"&&s.type==="text"?(s.raw+=r.raw,s.text+=r.text):t.push(r);continue}if(r=this.tokenizer.link(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(r.raw.length),s=t[t.length-1],s&&r.type==="text"&&s.type==="text"?(s.raw+=r.raw,s.text+=r.text):t.push(r);continue}if(r=this.tokenizer.emStrong(e,l,u)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.codespan(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.br(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.del(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.autolink(e)){e=e.substring(r.raw.length),t.push(r);continue}if(!this.state.inLink&&(r=this.tokenizer.url(e))){e=e.substring(r.raw.length),t.push(r);continue}if(a=e,this.options.extensions&&this.options.extensions.startInline){let g=1/0;const f=e.slice(1);let m;this.options.extensions.startInline.forEach(_=>{m=_.call({lexer:this},f),typeof m=="number"&&m>=0&&(g=Math.min(g,m))}),g<1/0&&g>=0&&(a=e.substring(0,g+1))}if(r=this.tokenizer.inlineText(a)){e=e.substring(r.raw.length),r.raw.slice(-1)!=="_"&&(u=r.raw.slice(-1)),d=!0,s=t[t.length-1],s&&s.type==="text"?(s.raw+=r.raw,s.text+=r.text):t.push(r);continue}if(e){const g="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(g);break}else throw new Error(g)}}return t}}class _Renderer{constructor(e){K(this,"options");K(this,"parser");this.options=e||_defaults}space(e){return""}code({text:e,lang:t,escaped:r}){var l;const s=(l=(t||"").match(/^\S*/))==null?void 0:l[0],a=e.replace(/\n$/,"")+"\n";return s?'<pre><code class="language-'+escape$1(s)+'">'+(r?a:escape$1(a,!0))+"</code></pre>\n":"<pre><code>"+(r?a:escape$1(a,!0))+"</code></pre>\n"}blockquote({tokens:e}){const t=this.parser.parse(e);return"<blockquote>\n".concat(t,"</blockquote>\n")}html({text:e}){return e}heading({tokens:e,depth:t}){return"<h".concat(t,">").concat(this.parser.parseInline(e),"</h").concat(t,">\n")}hr(e){return"<hr>\n"}list(e){const t=e.ordered,r=e.start;let s="";for(let c=0;c<e.items.length;c++){const d=e.items[c];s+=this.listitem(d)}const a=t?"ol":"ul",l=t&&r!==1?' start="'+r+'"':"";return"<"+a+l+">\n"+s+"</"+a+">\n"}listitem(e){let t="";if(e.task){const r=this.checkbox({checked:!!e.checked});e.loose?e.tokens.length>0&&e.tokens[0].type==="paragraph"?(e.tokens[0].text=r+" "+e.tokens[0].text,e.tokens[0].tokens&&e.tokens[0].tokens.length>0&&e.tokens[0].tokens[0].type==="text"&&(e.tokens[0].tokens[0].text=r+" "+e.tokens[0].tokens[0].text)):e.tokens.unshift({type:"text",raw:r+" ",text:r+" "}):t+=r+" "}return t+=this.parser.parse(e.tokens,!!e.loose),"<li>".concat(t,"</li>\n")}checkbox({checked:e}){return"<input "+(e?'checked="" ':"")+'disabled="" type="checkbox">'}paragraph({tokens:e}){return"<p>".concat(this.parser.parseInline(e),"</p>\n")}table(e){let t="",r="";for(let a=0;a<e.header.length;a++)r+=this.tablecell(e.header[a]);t+=this.tablerow({text:r});let s="";for(let a=0;a<e.rows.length;a++){const l=e.rows[a];r="";for(let c=0;c<l.length;c++)r+=this.tablecell(l[c]);s+=this.tablerow({text:r})}return s&&(s="<tbody>".concat(s,"</tbody>")),"<table>\n<thead>\n"+t+"</thead>\n"+s+"</table>\n"}tablerow({text:e}){return"<tr>\n".concat(e,"</tr>\n")}tablecell(e){const t=this.parser.parseInline(e.tokens),r=e.header?"th":"td";return(e.align?"<".concat(r,' align="').concat(e.align,'">'):"<".concat(r,">"))+t+"</".concat(r,">\n")}strong({tokens:e}){return"<strong>".concat(this.parser.parseInline(e),"</strong>")}em({tokens:e}){return"<em>".concat(this.parser.parseInline(e),"</em>")}codespan({text:e}){return"<code>".concat(e,"</code>")}br(e){return"<br>"}del({tokens:e}){return"<del>".concat(this.parser.parseInline(e),"</del>")}link({href:e,title:t,tokens:r}){const s=this.parser.parseInline(r),a=cleanUrl(e);if(a===null)return s;e=a;let l='<a href="'+e+'"';return t&&(l+=' title="'+t+'"'),l+=">"+s+"</a>",l}image({href:e,title:t,text:r}){const s=cleanUrl(e);if(s===null)return r;e=s;let a='<img src="'.concat(e,'" alt="').concat(r,'"');return t&&(a+=' title="'.concat(t,'"')),a+=">",a}text(e){return"tokens"in e&&e.tokens?this.parser.parseInline(e.tokens):e.text}}class _TextRenderer{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return""+e}image({text:e}){return""+e}br(){return""}}class _Parser{constructor(e){K(this,"options");K(this,"renderer");K(this,"textRenderer");this.options=e||_defaults,this.options.renderer=this.options.renderer||new _Renderer,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new _TextRenderer}static parse(e,t){return new _Parser(t).parse(e)}static parseInline(e,t){return new _Parser(t).parseInline(e)}parse(e,t=!0){let r="";for(let s=0;s<e.length;s++){const a=e[s];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[a.type]){const c=a,d=this.options.extensions.renderers[c.type].call({parser:this},c);if(d!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(c.type)){r+=d||"";continue}}const l=a;switch(l.type){case"space":{r+=this.renderer.space(l);continue}case"hr":{r+=this.renderer.hr(l);continue}case"heading":{r+=this.renderer.heading(l);continue}case"code":{r+=this.renderer.code(l);continue}case"table":{r+=this.renderer.table(l);continue}case"blockquote":{r+=this.renderer.blockquote(l);continue}case"list":{r+=this.renderer.list(l);continue}case"html":{r+=this.renderer.html(l);continue}case"paragraph":{r+=this.renderer.paragraph(l);continue}case"text":{let c=l,d=this.renderer.text(c);for(;s+1<e.length&&e[s+1].type==="text";)c=e[++s],d+="\n"+this.renderer.text(c);t?r+=this.renderer.paragraph({type:"paragraph",raw:d,text:d,tokens:[{type:"text",raw:d,text:d}]}):r+=d;continue}default:{const c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return r}parseInline(e,t){t=t||this.renderer;let r="";for(let s=0;s<e.length;s++){const a=e[s];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[a.type]){const c=this.options.extensions.renderers[a.type].call({parser:this},a);if(c!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){r+=c||"";continue}}const l=a;switch(l.type){case"escape":{r+=t.text(l);break}case"html":{r+=t.html(l);break}case"link":{r+=t.link(l);break}case"image":{r+=t.image(l);break}case"strong":{r+=t.strong(l);break}case"em":{r+=t.em(l);break}case"codespan":{r+=t.codespan(l);break}case"br":{r+=t.br(l);break}case"del":{r+=t.del(l);break}case"text":{r+=t.text(l);break}default:{const c='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(c),"";throw new Error(c)}}}return r}}class _Hooks{constructor(e){K(this,"options");this.options=e||_defaults}preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}}K(_Hooks,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens"]));class Marked{constructor(...e){K(this,"defaults",_getDefaults());K(this,"options",this.setOptions);K(this,"parse",this.parseMarkdown(_Lexer.lex,_Parser.parse));K(this,"parseInline",this.parseMarkdown(_Lexer.lexInline,_Parser.parseInline));K(this,"Parser",_Parser);K(this,"Renderer",_Renderer);K(this,"TextRenderer",_TextRenderer);K(this,"Lexer",_Lexer);K(this,"Tokenizer",_Tokenizer);K(this,"Hooks",_Hooks);this.use(...e)}walkTokens(e,t){var s,a;let r=[];for(const l of e)switch(r=r.concat(t.call(this,l)),l.type){case"table":{const c=l;for(const d of c.header)r=r.concat(this.walkTokens(d.tokens,t));for(const d of c.rows)for(const u of d)r=r.concat(this.walkTokens(u.tokens,t));break}case"list":{const c=l;r=r.concat(this.walkTokens(c.items,t));break}default:{const c=l;(a=(s=this.defaults.extensions)==null?void 0:s.childTokens)!=null&&a[c.type]?this.defaults.extensions.childTokens[c.type].forEach(d=>{const u=c[d].flat(1/0);r=r.concat(this.walkTokens(u,t))}):c.tokens&&(r=r.concat(this.walkTokens(c.tokens,t)))}}return r}use(...e){const t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(r=>{const s={...r};if(s.async=this.defaults.async||s.async||!1,r.extensions&&(r.extensions.forEach(a=>{if(!a.name)throw new Error("extension name required");if("renderer"in a){const l=t.renderers[a.name];l?t.renderers[a.name]=function(...c){let d=a.renderer.apply(this,c);return d===!1&&(d=l.apply(this,c)),d}:t.renderers[a.name]=a.renderer}if("tokenizer"in a){if(!a.level||a.level!=="block"&&a.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");const l=t[a.level];l?l.unshift(a.tokenizer):t[a.level]=[a.tokenizer],a.start&&(a.level==="block"?t.startBlock?t.startBlock.push(a.start):t.startBlock=[a.start]:a.level==="inline"&&(t.startInline?t.startInline.push(a.start):t.startInline=[a.start]))}"childTokens"in a&&a.childTokens&&(t.childTokens[a.name]=a.childTokens)}),s.extensions=t),r.renderer){const a=this.defaults.renderer||new _Renderer(this.defaults);for(const l in r.renderer){if(!(l in a))throw new Error("renderer '".concat(l,"' does not exist"));if(["options","parser"].includes(l))continue;const c=l,d=r.renderer[c],u=a[c];a[c]=(...g)=>{let f=d.apply(a,g);return f===!1&&(f=u.apply(a,g)),f||""}}s.renderer=a}if(r.tokenizer){const a=this.defaults.tokenizer||new _Tokenizer(this.defaults);for(const l in r.tokenizer){if(!(l in a))throw new Error("tokenizer '".concat(l,"' does not exist"));if(["options","rules","lexer"].includes(l))continue;const c=l,d=r.tokenizer[c],u=a[c];a[c]=(...g)=>{let f=d.apply(a,g);return f===!1&&(f=u.apply(a,g)),f}}s.tokenizer=a}if(r.hooks){const a=this.defaults.hooks||new _Hooks;for(const l in r.hooks){if(!(l in a))throw new Error("hook '".concat(l,"' does not exist"));if(l==="options")continue;const c=l,d=r.hooks[c],u=a[c];_Hooks.passThroughHooks.has(l)?a[c]=g=>{if(this.defaults.async)return Promise.resolve(d.call(a,g)).then(m=>u.call(a,m));const f=d.call(a,g);return u.call(a,f)}:a[c]=(...g)=>{let f=d.apply(a,g);return f===!1&&(f=u.apply(a,g)),f}}s.hooks=a}if(r.walkTokens){const a=this.defaults.walkTokens,l=r.walkTokens;s.walkTokens=function(c){let d=[];return d.push(l.call(this,c)),a&&(d=d.concat(a.call(this,c))),d}}this.defaults={...this.defaults,...s}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return _Lexer.lex(e,t!=null?t:this.defaults)}parser(e,t){return _Parser.parse(e,t!=null?t:this.defaults)}parseMarkdown(e,t){return(s,a)=>{const l={...a},c={...this.defaults,...l},d=this.onError(!!c.silent,!!c.async);if(this.defaults.async===!0&&l.async===!1)return d(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof s>"u"||s===null)return d(new Error("marked(): input parameter is undefined or null"));if(typeof s!="string")return d(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(s)+", string expected"));if(c.hooks&&(c.hooks.options=c),c.async)return Promise.resolve(c.hooks?c.hooks.preprocess(s):s).then(u=>e(u,c)).then(u=>c.hooks?c.hooks.processAllTokens(u):u).then(u=>c.walkTokens?Promise.all(this.walkTokens(u,c.walkTokens)).then(()=>u):u).then(u=>t(u,c)).then(u=>c.hooks?c.hooks.postprocess(u):u).catch(d);try{c.hooks&&(s=c.hooks.preprocess(s));let u=e(s,c);c.hooks&&(u=c.hooks.processAllTokens(u)),c.walkTokens&&this.walkTokens(u,c.walkTokens);let g=t(u,c);return c.hooks&&(g=c.hooks.postprocess(g)),g}catch(u){return d(u)}}}onError(e,t){return r=>{if(r.message+="\nPlease report this to https://github.com/markedjs/marked.",e){const s="<p>An error occurred:</p><pre>"+escape$1(r.message+"",!0)+"</pre>";return t?Promise.resolve(s):s}if(t)return Promise.reject(r);throw r}}}const markedInstance=new Marked;function marked(o,e){return markedInstance.parse(o,e)}marked.options=marked.setOptions=function(o){return markedInstance.setOptions(o),marked.defaults=markedInstance.defaults,changeDefaults(marked.defaults),marked};marked.getDefaults=_getDefaults;marked.defaults=_defaults;marked.use=function(...o){return markedInstance.use(...o),marked.defaults=markedInstance.defaults,changeDefaults(marked.defaults),marked};marked.walkTokens=function(o,e){return markedInstance.walkTokens(o,e)};marked.parseInline=markedInstance.parseInline;marked.Parser=_Parser;marked.parser=_Parser.parse;marked.Renderer=_Renderer;marked.TextRenderer=_TextRenderer;marked.Lexer=_Lexer;marked.lexer=_Lexer.lex;marked.Tokenizer=_Tokenizer;marked.Hooks=_Hooks;marked.parse=marked;marked.options;marked.setOptions;marked.use;marked.walkTokens;marked.parseInline;const parse$3=marked;_Parser.parse;const lexer=_Lexer.lex;function stringify(o){return JSON.stringify(o,replacer)}function parse$2(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{entries,setPrototypeOf,isFrozen,getPrototypeOf,getOwnPropertyDescriptor}=Object;let{freeze:freeze$1,seal,create:create$1}=Object,{apply,construct}=typeof Reflect<"u"&&Reflect;freeze$1||(freeze$1=function(e){return e});seal||(seal=function(e){return e});apply||(apply=function(e,t){for(var r=arguments.length,s=new Array(r>2?r-2:0),a=2;a<r;a++)s[a-2]=arguments[a];return e.apply(t,s)});construct||(construct=function(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),s=1;s<t;s++)r[s-1]=arguments[s];return new e(...r)});const arrayForEach=unapply(Array.prototype.forEach),arrayLastIndexOf=unapply(Array.prototype.lastIndexOf),arrayPop=unapply(Array.prototype.pop),arrayPush=unapply(Array.prototype.push),arraySplice=unapply(Array.prototype.splice),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),objectHasOwnProperty=unapply(Object.prototype.hasOwnProperty),regExpTest=unapply(RegExp.prototype.test),typeErrorCreate=unconstruct(TypeError);function unapply(o){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var t=arguments.length,r=new Array(t>1?t-1:0),s=1;s<t;s++)r[s-1]=arguments[s];return apply(o,e,r)}}function unconstruct(o){return function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return construct(o,t)}}function addToSet(o,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:stringToLowerCase;setPrototypeOf&&setPrototypeOf(o,null);let r=e.length;for(;r--;){let s=e[r];if(typeof s=="string"){const a=t(s);a!==s&&(isFrozen(e)||(e[r]=a),s=a)}o[s]=!0}return o}function cleanArray(o){for(let e=0;e<o.length;e++)objectHasOwnProperty(o,e)||(o[e]=null);return o}function clone$1(o){const e=create$1(null);for(const[t,r]of entries(o))objectHasOwnProperty(o,t)&&(Array.isArray(r)?e[t]=cleanArray(r):r&&typeof r=="object"&&r.constructor===Object?e[t]=clone$1(r):e[t]=r);return e}function lookupGetter(o,e){for(;o!==null;){const r=getOwnPropertyDescriptor(o,e);if(r){if(r.get)return unapply(r.get);if(typeof r.value=="function")return unapply(r.value)}o=getPrototypeOf(o)}function t(){return 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","search","section","select","shadow","slot","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","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","slot","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$1=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","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","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","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),svg=freeze$1(["accent-height","accumulate","additive","alignment-baseline","amplitude","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","exponent","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","intercept","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","slope","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","tablevalues","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|matrix):|[^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),CUSTOM_ELEMENT=seal(/^[a-z][.\w]*(-[.\w]+)+$/i);var EXPRESSIONS=Object.freeze({__proto__:null,ARIA_ATTR,ATTR_WHITESPACE,CUSTOM_ELEMENT,DATA_ATTR,DOCTYPE_NAME,ERB_EXPR,IS_ALLOWED_URI,IS_SCRIPT_OR_DATA,MUSTACHE_EXPR,TMPLIT_EXPR});const NODE_TYPE={element:1,text:3,progressingInstruction:7,comment:8,document:9},getGlobal=function(){return typeof window>"u"?null:window},_createTrustedTypesPolicy=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null;const s="data-tt-policy-suffix";t&&t.hasAttribute(s)&&(r=t.getAttribute(s));const a="dompurify"+(r?"#"+r:"");try{return e.createPolicy(a,{createHTML(l){return l},createScriptURL(l){return l}})}catch(l){return console.warn("TrustedTypes policy "+a+" could not be created."),null}},_createHooksMap=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function createDOMPurify(){let o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const e=Se=>createDOMPurify(Se);if(e.version="3.2.7",e.removed=[],!o||!o.document||o.document.nodeType!==NODE_TYPE.document||!o.Element)return e.isSupported=!1,e;let{document:t}=o;const r=t,s=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:l,Node:c,Element:d,NodeFilter:u,NamedNodeMap:g=o.NamedNodeMap||o.MozNamedAttrMap,HTMLFormElement:f,DOMParser:m,trustedTypes:_}=o,v=d.prototype,b=lookupGetter(v,"cloneNode"),C=lookupGetter(v,"remove"),y=lookupGetter(v,"nextSibling"),S=lookupGetter(v,"childNodes"),w=lookupGetter(v,"parentNode");if(typeof l=="function"){const Se=t.createElement("template");Se.content&&Se.content.ownerDocument&&(t=Se.content.ownerDocument)}let E,x="";const{implementation:L,createNodeIterator:k,createDocumentFragment:D,getElementsByTagName:I}=t,{importNode:T}=r;let M=_createHooksMap();e.isSupported=typeof entries=="function"&&typeof w=="function"&&L&&L.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:R,ERB_EXPR:N,TMPLIT_EXPR:A,DATA_ATTR:O,ARIA_ATTR:P,IS_SCRIPT_OR_DATA:F,ATTR_WHITESPACE:B,CUSTOM_ELEMENT:H}=EXPRESSIONS;let{IS_ALLOWED_URI:V}=EXPRESSIONS,U=null;const j=addToSet({},[...html$1,...svg$1,...svgFilters,...mathMl$1,...text$1]);let X=null;const ee=addToSet({},[...html,...svg,...mathMl,...xml]);let Z=Object.seal(create$1(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}})),J=null,q=null,Q=!0,re=!0,de=!1,se=!0,W=!1,G=!0,Y=!1,ie=!1,ne=!1,oe=!1,ue=!1,ae=!1,le=!0,ce=!1;const ve="user-content-";let he=!0,fe=!1,pe={},ye=null;const we=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 xe=null;const Te=addToSet({},["audio","video","img","source","image","track"]);let Ae=null;const Oe=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Me="http://www.w3.org/1998/Math/MathML",Qe="http://www.w3.org/2000/svg",je="http://www.w3.org/1999/xhtml";let Le=je,Pe=!1,yt=null;const St=addToSet({},[Me,Qe,je],stringToString);let et=addToSet({},["mi","mo","mn","ms","mtext"]),Ee=addToSet({},["annotation-xml"]);const $e=addToSet({},["title","style","font","a","script"]);let ft=null;const Ni=["application/xhtml+xml","text/html"],Tr="text/html";let Re=null,Fe=null;const it=t.createElement("form"),nt=function(te){return te instanceof RegExp||te instanceof Function},lt=function(){let te=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Fe&&Fe===te)){if((!te||typeof te!="object")&&(te={}),te=clone$1(te),ft=Ni.indexOf(te.PARSER_MEDIA_TYPE)===-1?Tr:te.PARSER_MEDIA_TYPE,Re=ft==="application/xhtml+xml"?stringToString:stringToLowerCase,U=objectHasOwnProperty(te,"ALLOWED_TAGS")?addToSet({},te.ALLOWED_TAGS,Re):j,X=objectHasOwnProperty(te,"ALLOWED_ATTR")?addToSet({},te.ALLOWED_ATTR,Re):ee,yt=objectHasOwnProperty(te,"ALLOWED_NAMESPACES")?addToSet({},te.ALLOWED_NAMESPACES,stringToString):St,Ae=objectHasOwnProperty(te,"ADD_URI_SAFE_ATTR")?addToSet(clone$1(Oe),te.ADD_URI_SAFE_ATTR,Re):Oe,xe=objectHasOwnProperty(te,"ADD_DATA_URI_TAGS")?addToSet(clone$1(Te),te.ADD_DATA_URI_TAGS,Re):Te,ye=objectHasOwnProperty(te,"FORBID_CONTENTS")?addToSet({},te.FORBID_CONTENTS,Re):we,J=objectHasOwnProperty(te,"FORBID_TAGS")?addToSet({},te.FORBID_TAGS,Re):clone$1({}),q=objectHasOwnProperty(te,"FORBID_ATTR")?addToSet({},te.FORBID_ATTR,Re):clone$1({}),pe=objectHasOwnProperty(te,"USE_PROFILES")?te.USE_PROFILES:!1,Q=te.ALLOW_ARIA_ATTR!==!1,re=te.ALLOW_DATA_ATTR!==!1,de=te.ALLOW_UNKNOWN_PROTOCOLS||!1,se=te.ALLOW_SELF_CLOSE_IN_ATTR!==!1,W=te.SAFE_FOR_TEMPLATES||!1,G=te.SAFE_FOR_XML!==!1,Y=te.WHOLE_DOCUMENT||!1,oe=te.RETURN_DOM||!1,ue=te.RETURN_DOM_FRAGMENT||!1,ae=te.RETURN_TRUSTED_TYPE||!1,ne=te.FORCE_BODY||!1,le=te.SANITIZE_DOM!==!1,ce=te.SANITIZE_NAMED_PROPS||!1,he=te.KEEP_CONTENT!==!1,fe=te.IN_PLACE||!1,V=te.ALLOWED_URI_REGEXP||IS_ALLOWED_URI,Le=te.NAMESPACE||je,et=te.MATHML_TEXT_INTEGRATION_POINTS||et,Ee=te.HTML_INTEGRATION_POINTS||Ee,Z=te.CUSTOM_ELEMENT_HANDLING||{},te.CUSTOM_ELEMENT_HANDLING&&nt(te.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Z.tagNameCheck=te.CUSTOM_ELEMENT_HANDLING.tagNameCheck),te.CUSTOM_ELEMENT_HANDLING&&nt(te.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Z.attributeNameCheck=te.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),te.CUSTOM_ELEMENT_HANDLING&&typeof te.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Z.allowCustomizedBuiltInElements=te.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),W&&(re=!1),ue&&(oe=!0),pe&&(U=addToSet({},text$1),X=[],pe.html===!0&&(addToSet(U,html$1),addToSet(X,html)),pe.svg===!0&&(addToSet(U,svg$1),addToSet(X,svg),addToSet(X,xml)),pe.svgFilters===!0&&(addToSet(U,svgFilters),addToSet(X,svg),addToSet(X,xml)),pe.mathMl===!0&&(addToSet(U,mathMl$1),addToSet(X,mathMl),addToSet(X,xml))),te.ADD_TAGS&&(U===j&&(U=clone$1(U)),addToSet(U,te.ADD_TAGS,Re)),te.ADD_ATTR&&(X===ee&&(X=clone$1(X)),addToSet(X,te.ADD_ATTR,Re)),te.ADD_URI_SAFE_ATTR&&addToSet(Ae,te.ADD_URI_SAFE_ATTR,Re),te.FORBID_CONTENTS&&(ye===we&&(ye=clone$1(ye)),addToSet(ye,te.FORBID_CONTENTS,Re)),he&&(U["#text"]=!0),Y&&addToSet(U,["html","head","body"]),U.table&&(addToSet(U,["tbody"]),delete J.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.');E=te.TRUSTED_TYPES_POLICY,x=E.createHTML("")}else E===void 0&&(E=_createTrustedTypesPolicy(_,s)),E!==null&&typeof x=="string"&&(x=E.createHTML(""));freeze$1&&freeze$1(te),Fe=te}},pt=addToSet({},[...svg$1,...svgFilters,...svgDisallowed]),ct=addToSet({},[...mathMl$1,...mathMlDisallowed]),mt=function(te){let ge=w(te);(!ge||!ge.tagName)&&(ge={namespaceURI:Le,tagName:"template"});const Ce=stringToLowerCase(te.tagName),Ne=stringToLowerCase(ge.tagName);return yt[te.namespaceURI]?te.namespaceURI===Qe?ge.namespaceURI===je?Ce==="svg":ge.namespaceURI===Me?Ce==="svg"&&(Ne==="annotation-xml"||et[Ne]):!!pt[Ce]:te.namespaceURI===Me?ge.namespaceURI===je?Ce==="math":ge.namespaceURI===Qe?Ce==="math"&&Ee[Ne]:!!ct[Ce]:te.namespaceURI===je?ge.namespaceURI===Qe&&!Ee[Ne]||ge.namespaceURI===Me&&!et[Ne]?!1:!ct[Ce]&&($e[Ce]||!pt[Ce]):!!(ft==="application/xhtml+xml"&&yt[te.namespaceURI]):!1},ze=function(te){arrayPush(e.removed,{element:te});try{w(te).removeChild(te)}catch(ge){C(te)}},Ye=function(te,ge){try{arrayPush(e.removed,{attribute:ge.getAttributeNode(te),from:ge})}catch(Ce){arrayPush(e.removed,{attribute:null,from:ge})}if(ge.removeAttribute(te),te==="is")if(oe||ue)try{ze(ge)}catch(Ce){}else try{ge.setAttribute(te,"")}catch(Ce){}},Ai=function(te){let ge=null,Ce=null;if(ne)te="<remove></remove>"+te;else{const He=stringMatch(te,/^[\r\n\t ]+/);Ce=He&&He[0]}ft==="application/xhtml+xml"&&Le===je&&(te='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+te+"</body></html>");const Ne=E?E.createHTML(te):te;if(Le===je)try{ge=new m().parseFromString(Ne,ft)}catch(He){}if(!ge||!ge.documentElement){ge=L.createDocument(Le,"template",null);try{ge.documentElement.innerHTML=Pe?x:Ne}catch(He){}}const Xe=ge.body||ge.documentElement;return te&&Ce&&Xe.insertBefore(t.createTextNode(Ce),Xe.childNodes[0]||null),Le===je?I.call(ge,Y?"html":"body")[0]:Y?ge.documentElement:Xe},Kt=function(te){return k.call(te.ownerDocument||te,te,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Gt=function(te){return te instanceof f&&(typeof te.nodeName!="string"||typeof te.textContent!="string"||typeof te.removeChild!="function"||!(te.attributes instanceof g)||typeof te.removeAttribute!="function"||typeof te.setAttribute!="function"||typeof te.namespaceURI!="string"||typeof te.insertBefore!="function"||typeof te.hasChildNodes!="function")},Tt=function(te){return typeof c=="function"&&te instanceof c};function wt(Se,te,ge){arrayForEach(Se,Ce=>{Ce.call(e,te,ge,Fe)})}const Rr=function(te){let ge=null;if(wt(M.beforeSanitizeElements,te,null),Gt(te))return ze(te),!0;const Ce=Re(te.nodeName);if(wt(M.uponSanitizeElement,te,{tagName:Ce,allowedTags:U}),G&&te.hasChildNodes()&&!Tt(te.firstElementChild)&&regExpTest(/<[/\w!]/g,te.innerHTML)&&regExpTest(/<[/\w!]/g,te.textContent)||te.nodeType===NODE_TYPE.progressingInstruction||G&&te.nodeType===NODE_TYPE.comment&&regExpTest(/<[/\w]/g,te.data))return ze(te),!0;if(!U[Ce]||J[Ce]){if(!J[Ce]&&ua(Ce)&&(Z.tagNameCheck instanceof RegExp&&regExpTest(Z.tagNameCheck,Ce)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(Ce)))return!1;if(he&&!ye[Ce]){const Ne=w(te)||te.parentNode,Xe=S(te)||te.childNodes;if(Xe&&Ne){const He=Xe.length;for(let rt=He-1;rt>=0;--rt){const jt=b(Xe[rt],!0);jt.__removalCount=(te.__removalCount||0)+1,Ne.insertBefore(jt,y(te))}}}return ze(te),!0}return te instanceof d&&!mt(te)||(Ce==="noscript"||Ce==="noembed"||Ce==="noframes")&&regExpTest(/<\/no(script|embed|frames)/i,te.innerHTML)?(ze(te),!0):(W&&te.nodeType===NODE_TYPE.text&&(ge=te.textContent,arrayForEach([R,N,A],Ne=>{ge=stringReplace(ge,Ne," ")}),te.textContent!==ge&&(arrayPush(e.removed,{element:te.cloneNode()}),te.textContent=ge)),wt(M.afterSanitizeElements,te,null),!1)},no=function(te,ge,Ce){if(le&&(ge==="id"||ge==="name")&&(Ce in t||Ce in it))return!1;if(!(re&&!q[ge]&&regExpTest(O,ge))){if(!(Q&&regExpTest(P,ge))){if(!X[ge]||q[ge]){if(!(ua(te)&&(Z.tagNameCheck instanceof RegExp&&regExpTest(Z.tagNameCheck,te)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(te))&&(Z.attributeNameCheck instanceof RegExp&&regExpTest(Z.attributeNameCheck,ge)||Z.attributeNameCheck instanceof Function&&Z.attributeNameCheck(ge,te))||ge==="is"&&Z.allowCustomizedBuiltInElements&&(Z.tagNameCheck instanceof RegExp&&regExpTest(Z.tagNameCheck,Ce)||Z.tagNameCheck instanceof Function&&Z.tagNameCheck(Ce))))return!1}else if(!Ae[ge]){if(!regExpTest(V,stringReplace(Ce,B,""))){if(!((ge==="src"||ge==="xlink:href"||ge==="href")&&te!=="script"&&stringIndexOf(Ce,"data:")===0&&xe[te])){if(!(de&&!regExpTest(F,stringReplace(Ce,B,"")))){if(Ce)return!1}}}}}}return!0},ua=function(te){return te!=="annotation-xml"&&stringMatch(te,H)},ha=function(te){wt(M.beforeSanitizeAttributes,te,null);const{attributes:ge}=te;if(!ge||Gt(te))return;const Ce={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:X,forceKeepAttr:void 0};let Ne=ge.length;for(;Ne--;){const Xe=ge[Ne],{name:He,namespaceURI:rt,value:jt}=Xe,Yn=Re(He),qs=jt;let qe=He==="value"?qs:stringTrim(qs);if(Ce.attrName=Yn,Ce.attrValue=qe,Ce.keepAttr=!0,Ce.forceKeepAttr=void 0,wt(M.uponSanitizeAttribute,te,Ce),qe=Ce.attrValue,ce&&(Yn==="id"||Yn==="name")&&(Ye(He,te),qe=ve+qe),G&&regExpTest(/((--!?|])>)|<\/(style|title|textarea)/i,qe)){Ye(He,te);continue}if(Yn==="attributename"&&stringMatch(qe,"href")){Ye(He,te);continue}if(Ce.forceKeepAttr)continue;if(!Ce.keepAttr){Ye(He,te);continue}if(!se&&regExpTest(/\/>/i,qe)){Ye(He,te);continue}W&&arrayForEach([R,N,A],fa=>{qe=stringReplace(qe,fa," ")});const ga=Re(te.nodeName);if(!no(ga,Yn,qe)){Ye(He,te);continue}if(E&&typeof _=="object"&&typeof _.getAttributeType=="function"&&!rt)switch(_.getAttributeType(ga,Yn)){case"TrustedHTML":{qe=E.createHTML(qe);break}case"TrustedScriptURL":{qe=E.createScriptURL(qe);break}}if(qe!==qs)try{rt?te.setAttributeNS(rt,He,qe):te.setAttribute(He,qe),Gt(te)?ze(te):arrayPop(e.removed)}catch(fa){Ye(He,te)}}wt(M.afterSanitizeAttributes,te,null)},Ya=function Se(te){let ge=null;const Ce=Kt(te);for(wt(M.beforeSanitizeShadowDOM,te,null);ge=Ce.nextNode();)wt(M.uponSanitizeShadowNode,ge,null),Rr(ge),ha(ge),ge.content instanceof a&&Se(ge.content);wt(M.afterSanitizeShadowDOM,te,null)};return e.sanitize=function(Se){let te=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},ge=null,Ce=null,Ne=null,Xe=null;if(Pe=!Se,Pe&&(Se="<!-->"),typeof Se!="string"&&!Tt(Se))if(typeof Se.toString=="function"){if(Se=Se.toString(),typeof Se!="string")throw typeErrorCreate("dirty is not a string, aborting")}else throw typeErrorCreate("toString is not a function");if(!e.isSupported)return Se;if(ie||lt(te),e.removed=[],typeof Se=="string"&&(fe=!1),fe){if(Se.nodeName){const jt=Re(Se.nodeName);if(!U[jt]||J[jt])throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}}else if(Se instanceof c)ge=Ai("<!---->"),Ce=ge.ownerDocument.importNode(Se,!0),Ce.nodeType===NODE_TYPE.element&&Ce.nodeName==="BODY"||Ce.nodeName==="HTML"?ge=Ce:ge.appendChild(Ce);else{if(!oe&&!W&&!Y&&Se.indexOf("<")===-1)return E&&ae?E.createHTML(Se):Se;if(ge=Ai(Se),!ge)return oe?null:ae?x:""}ge&&ne&&ze(ge.firstChild);const He=Kt(fe?Se:ge);for(;Ne=He.nextNode();)Rr(Ne),ha(Ne),Ne.content instanceof a&&Ya(Ne.content);if(fe)return Se;if(oe){if(ue)for(Xe=D.call(ge.ownerDocument);ge.firstChild;)Xe.appendChild(ge.firstChild);else Xe=ge;return(X.shadowroot||X.shadowrootmode)&&(Xe=T.call(r,Xe,!0)),Xe}let rt=Y?ge.outerHTML:ge.innerHTML;return Y&&U["!doctype"]&&ge.ownerDocument&&ge.ownerDocument.doctype&&ge.ownerDocument.doctype.name&&regExpTest(DOCTYPE_NAME,ge.ownerDocument.doctype.name)&&(rt="<!DOCTYPE "+ge.ownerDocument.doctype.name+">\n"+rt),W&&arrayForEach([R,N,A],jt=>{rt=stringReplace(rt,jt," ")}),E&&ae?E.createHTML(rt):rt},e.setConfig=function(){let Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};lt(Se),ie=!0},e.clearConfig=function(){Fe=null,ie=!1},e.isValidAttribute=function(Se,te,ge){Fe||lt({});const Ce=Re(Se),Ne=Re(te);return no(Ce,Ne,ge)},e.addHook=function(Se,te){typeof te=="function"&&arrayPush(M[Se],te)},e.removeHook=function(Se,te){if(te!==void 0){const ge=arrayLastIndexOf(M[Se],te);return ge===-1?void 0:arraySplice(M[Se],ge,1)[0]}return arrayPop(M[Se])},e.removeHooks=function(Se){M[Se]=[]},e.removeAllHooks=function(){M=_createHooksMap()},e}var purify=createDOMPurify();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","s","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]),defaultAllowedAttrs=Object.freeze(["href","target","src","alt","title","for","name","role","tabindex","x-dispatch","required","checked","placeholder","type","start","width","height","align"]),fakeRelativeUrlProtocol="vscode-relative-path";function validateLink(o,e){if(e.override==="*")return!0;try{const t=new URL(o,fakeRelativeUrlProtocol+"://");return!!(e.override.includes(t.protocol.replace(/:$/,""))||e.allowRelativePaths&&t.protocol===fakeRelativeUrlProtocol+":"&&!o.trim().toLowerCase().startsWith(fakeRelativeUrlProtocol))}catch(t){return!1}}function hookDomPurifyHrefAndSrcSanitizer(o,e){purify.addHook("afterSanitizeAttributes",t=>{for(const r of["href","src"])if(t.hasAttribute(r)){const s=t.getAttribute(r);r==="href"?!s.startsWith("#")&&!validateLink(s,o)&&t.removeAttribute(r):validateLink(s,e)||t.removeAttribute(r)}})}const defaultDomPurifyConfig=Object.freeze({ALLOWED_TAGS:[...basicMarkupHtmlTags],ALLOWED_ATTR:[...defaultAllowedAttrs],ALLOW_UNKNOWN_PROTOCOLS:!0});function sanitizeHtml(o,e){return doSanitizeHtml(o,e,"trusted")}function doSanitizeHtml(o,e,t){var r,s,a,l,c,d,u;try{const g={...defaultDomPurifyConfig};e!=null&&e.allowedTags&&(e.allowedTags.override&&(g.ALLOWED_TAGS=[...e.allowedTags.override]),e.allowedTags.augment&&(g.ALLOWED_TAGS=[...(r=g.ALLOWED_TAGS)!=null?r:[],...e.allowedTags.augment]));let f=[...defaultAllowedAttrs];e!=null&&e.allowedAttributes&&(e.allowedAttributes.override&&(f=[...e.allowedAttributes.override]),e.allowedAttributes.augment&&(f=[...f,...e.allowedAttributes.augment])),f=f.map(v=>typeof v=="string"?v.toLowerCase():{attributeName:v.attributeName.toLowerCase(),shouldKeep:v.shouldKeep});const m=new Set(f.map(v=>typeof v=="string"?v:v.attributeName)),_=new Map;for(const v of f)typeof v=="string"?_.delete(v):_.set(v.attributeName,v);return g.ALLOWED_ATTR=Array.from(m),hookDomPurifyHrefAndSrcSanitizer({override:(a=(s=e==null?void 0:e.allowedLinkProtocols)==null?void 0:s.override)!=null?a:[Schemas.http,Schemas.https],allowRelativePaths:(l=e==null?void 0:e.allowRelativeLinkPaths)!=null?l:!1},{override:(d=(c=e==null?void 0:e.allowedMediaProtocols)==null?void 0:c.override)!=null?d:[Schemas.http,Schemas.https],allowRelativePaths:(u=e==null?void 0:e.allowRelativeMediaPaths)!=null?u:!1}),e!=null&&e.replaceWithPlaintext&&purify.addHook("uponSanitizeElement",replaceWithPlainTextHook),_.size&&purify.addHook("uponSanitizeAttribute",(v,b)=>{const C=_.get(b.attrName);if(C){const y=C.shouldKeep(v,b);typeof y=="string"?(b.keepAttr=!0,b.attrValue=y):b.keepAttr=y}else b.keepAttr=m.has(b.attrName)}),t==="dom"?purify.sanitize(o,{...g,RETURN_DOM_FRAGMENT:!0}):purify.sanitize(o,{...g,RETURN_TRUSTED_TYPE:!0})}finally{purify.removeAllHooks()}}const selfClosingTags=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],replaceWithPlainTextHook=(o,e,t)=>{var r,s;if(!e.allowedTags[e.tagName]&&e.tagName!=="body"){const a=convertTagToPlaintext(o);a&&(o.nodeType===Node.COMMENT_NODE?(r=o.parentElement)==null||r.insertBefore(a,o):(s=o.parentElement)==null||s.replaceChild(a,o))}};function convertTagToPlaintext(o){if(!o.ownerDocument)return;let e,t;if(o.nodeType===Node.COMMENT_NODE)e="<!--".concat(o.textContent,"-->");else if(o instanceof Element){const l=o.tagName.toLowerCase(),c=selfClosingTags.includes(l),d=o.attributes.length?" "+Array.from(o.attributes).map(u=>"".concat(u.name,'="').concat(u.value,'"')).join(" "):"";e="<".concat(l).concat(d,">"),c||(t="</".concat(l,">"))}else return;const r=document.createDocumentFragment(),s=o.ownerDocument.createTextNode(e);for(r.appendChild(s);o.firstChild;)r.appendChild(o.firstChild);const a=t?o.ownerDocument.createTextNode(t):void 0;return a&&r.appendChild(a),r}function safeSetInnerHtml(o,e,t){const r=doSanitizeHtml(e,t,"dom");reset(o,r)}const labelWithIconsRegex=new RegExp("(\\\\)?\\$\\((".concat(ThemeIcon.iconNameExpression,"(?:").concat(ThemeIcon.iconModifierExpression,")?)\\)"),"g");function renderLabelWithIcons(o){const e=new Array;let t,r=0,s=0;for(;(t=labelWithIconsRegex.exec(o))!==null;){s=t.index||0,r<s&&e.push(o.substring(r,s)),r=(t.index||0)+t[0].length;const[,a,l]=t;e.push(a?"$(".concat(l,")"):renderIcon({id:l}))}return r<o.length&&e.push(o.substring(r)),e}function renderIcon(o){const e=$$m("span");return e.classList.add(...ThemeIcon.asClassNameArray(o)),e}const defaultMarkedRenderers=Object.freeze({image:({href:o,title:e,text:t})=>{let r=[],s=[];return o&&({href:o,dimensions:r}=parseHrefAndDimensions(o),s.push('src="'.concat(escapeDoubleQuotes(o),'"'))),t&&s.push('alt="'.concat(escapeDoubleQuotes(t),'"')),e&&s.push('title="'.concat(escapeDoubleQuotes(e),'"')),r.length&&(s=s.concat(r)),"<img "+s.join(" ")+">"},paragraph({tokens:o}){return"<p>".concat(this.parser.parseInline(o),"</p>")},link({href:o,title:e,tokens:t}){let r=this.parser.parseInline(t);return typeof o!="string"?"":(o===r&&(r=removeMarkdownEscapes(r)),e=typeof e=="string"?escapeDoubleQuotes(removeMarkdownEscapes(e)):"",o=removeMarkdownEscapes(o),o=o.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),'<a href="'.concat(o,'" title="').concat(e||o,'" draggable="false">').concat(r,"</a>"))}});function createAlertBlockquoteRenderer(o){return function(e){const{tokens:t}=e,r=t[0];if((r==null?void 0:r.type)!=="paragraph")return o.call(this,e);const s=r.tokens;if(!s||s.length===0)return o.call(this,e);const a=s[0];if((a==null?void 0:a.type)!=="text")return o.call(this,e);const l=/^\s*\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*?\n*/i,c=a.raw.match(l);if(!c)return o.call(this,e);a.raw=a.raw.replace(l,""),a.text=a.text.replace(l,"");const d={note:"info",tip:"light-bulb",important:"comment",warning:"alert",caution:"stop"},u=c[1],g=u.charAt(0).toUpperCase()+u.slice(1).toLowerCase(),f=u.toLowerCase(),m=renderIcon({id:d[f]}).outerHTML,_=this.parser.parse(t);return'<blockquote data-severity="'.concat(f,'"><p><span>').concat(m).concat(g,"</span>").concat(_.substring(3),"</blockquote>\n")}}function renderMarkdown$1(o,e={},t){var v,b,C,y,S,w;const r=new DisposableStore$1;let s=!1;const a=new Marked(...(v=e.markedExtensions)!=null?v:[]),{renderer:l,codeBlocks:c,syncCodeBlocks:d}=createMarkdownRenderer(a,e,o),u=preprocessMarkdownString(o);let g;if(e.fillInIncompleteTokens){const E={...a.defaults,...e.markedOptions,renderer:l},x=a.lexer(u,E),L=fillInIncompleteTokens(x);g=a.parser(L,E)}else g=a.parse(u,{...e==null?void 0:e.markedOptions,renderer:l,async:!1});o.supportThemeIcons&&(g=renderLabelWithIcons(g).map(x=>typeof x=="string"?x:x.outerHTML).join(""));const f=document.createElement("div"),m=getDomSanitizerConfig(o,(b=e.sanitizerConfig)!=null?b:{});safeSetInnerHtml(f,g,m),rewriteRenderedLinks(o,e,f);let _;if(t?(_=t,reset(t,...f.children)):_=f,c.length>0)Promise.all(c).then(E=>{var k,D;if(s)return;const x=new Map(E),L=_.querySelectorAll("div[data-code]");for(const I of L){const T=x.get((k=I.dataset.code)!=null?k:"");T&&reset(I,T)}(D=e.asyncRenderCallback)==null||D.call(e)});else if(d.length>0){const E=new Map(d),x=_.querySelectorAll("div[data-code]");for(const L of x){const k=E.get((C=L.dataset.code)!=null?C:"");k&&reset(L,k)}}if(e.asyncRenderCallback)for(const E of _.getElementsByTagName("img")){const x=r.add(addDisposableListener(E,"load",()=>{x.dispose(),e.asyncRenderCallback()}))}if(e.actionHandler){const E=x=>{const L=new StandardMouseEvent(getWindow$1(_),x);!L.leftButton&&!L.middleButton||activateLink(o,e,L)};r.add(addDisposableListener(_,"click",E)),r.add(addDisposableListener(_,"auxclick",E)),r.add(addDisposableListener(_,"keydown",x=>{const L=new StandardKeyboardEvent(x);!L.equals(10)&&!L.equals(3)||activateLink(o,e,L)}))}for(const E of[..._.getElementsByTagName("input")])if(((y=E.attributes.getNamedItem("type"))==null?void 0:y.value)==="checkbox")E.setAttribute("disabled","");else if((S=e.sanitizerConfig)!=null&&S.replaceWithPlaintext){const x=convertTagToPlaintext(E);x?(w=E.parentElement)==null||w.replaceChild(x,E):E.remove()}else E.remove();return{element:_,dispose:()=>{s=!0,r.dispose()}}}function rewriteRenderedLinks(o,e,t){var r;for(const s of t.querySelectorAll("img, audio, video, source")){const a=s.getAttribute("src");if(a){let l=a;try{o.baseUri&&(l=resolveWithBaseUri(URI.from(o.baseUri),l))}catch(c){}if(s.setAttribute("src",massageHref(o,l,!0)),(r=e.sanitizerConfig)!=null&&r.remoteImageIsAllowed){const c=URI.parse(l);c.scheme!==Schemas.file&&c.scheme!==Schemas.data&&!e.sanitizerConfig.remoteImageIsAllowed(c)&&s.replaceWith($$m("",void 0,s.outerHTML))}}}for(const s of t.querySelectorAll("a")){const a=s.getAttribute("href");if(s.setAttribute("href",""),!a||/^data:|javascript:/i.test(a)||/^command:/i.test(a)&&!o.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(a))s.replaceWith(...s.childNodes);else{let l=massageHref(o,a,!1);o.baseUri&&(l=resolveWithBaseUri(URI.from(o.baseUri),a)),s.dataset.href=l}}}function createMarkdownRenderer(o,e,t){const r=new o.Renderer(e.markedOptions);r.image=defaultMarkedRenderers.image,r.link=defaultMarkedRenderers.link,r.paragraph=defaultMarkedRenderers.paragraph,t.supportAlertSyntax&&(r.blockquote=createAlertBlockquoteRenderer(r.blockquote));const s=[],a=[];return e.codeBlockRendererSync?r.code=({text:l,lang:c,raw:d})=>{const u=defaultGenerator.nextId(),g=e.codeBlockRendererSync(postProcessCodeBlockLanguageId(c),l,d);return a.push([u,g]),'<div class="code" data-code="'.concat(u,'">').concat(escape$2(l),"</div>")}:e.codeBlockRenderer&&(r.code=({text:l,lang:c})=>{const d=defaultGenerator.nextId(),u=e.codeBlockRenderer(postProcessCodeBlockLanguageId(c),l);return s.push(u.then(g=>[d,g])),'<div class="code" data-code="'.concat(d,'">').concat(escape$2(l),"</div>")}),t.supportHtml||(r.html=({text:l})=>{var d;return(d=e.sanitizerConfig)!=null&&d.replaceWithPlaintext?escape$2(l):(t.isTrusted?l.match(/^(<span[^>]+>)|(<\/\s*span>)$/):void 0)?l:""}),{renderer:r,codeBlocks:s,syncCodeBlocks:a}}function preprocessMarkdownString(o){let e=o.value;return e.length>1e5&&(e="".concat(e.substr(0,1e5),"…")),o.supportThemeIcons&&(e=markdownEscapeEscapedIcons(e)),e}function activateLink(o,e,t){var s;const r=t.target.closest("a[data-href]");if(isHTMLElement(r))try{let a=r.dataset.href;a&&(o.baseUri&&(a=resolveWithBaseUri(URI.from(o.baseUri),a)),(s=e.actionHandler)==null||s.call(e,a,o))}catch(a){onUnexpectedError(a)}finally{t.preventDefault()}}function uriMassage(o,e){let t;try{t=parse$2(decodeURIComponent(e))}catch(r){}return t?(t=cloneAndChange(t,r=>{if(o.uris&&o.uris[r])return URI.revive(o.uris[r])}),encodeURIComponent(JSON.stringify(t))):e}function massageHref(o,e,t){const r=o.uris&&o.uris[e];let s=URI.revive(r);return t?e.startsWith(Schemas.data+":")?e:(s||(s=URI.parse(e)),FileAccess.uriToBrowserUri(s).toString(!0)):!s||URI.parse(e).toString()===s.toString()?e:(s.query&&(s=s.with({query:uriMassage(o,s.query)})),s.toString())}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,t={}){const r=getDomSanitizerConfig(e,t);return sanitizeHtml(o,r)}const allowedMarkdownHtmlTags=Object.freeze([...basicMarkupHtmlTags,"input"]),allowedMarkdownHtmlAttributes=Object.freeze(["align","autoplay","alt","colspan","controls","draggable","height","href","loop","muted","playsinline","poster","rowspan","src","target","title","type","width","start","checked","disabled","value","data-code","data-href","data-severity",{attributeName:"style",shouldKeep:(o,e)=>o.tagName==="SPAN"&&e.attrName==="style"?/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z0-9]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z0-9]+)+\));)?(border-radius:[0-9]+px;)?$/.test(e.attrValue):!1},{attributeName:"class",shouldKeep:(o,e)=>o.tagName==="SPAN"&&e.attrName==="class"?/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(e.attrValue):!1}]);function getDomSanitizerConfig(o,e){var s,a,l,c,d,u;const t=(s=o.isTrusted)!=null?s:!1,r=[Schemas.http,Schemas.https,Schemas.mailto,Schemas.file,Schemas.vscodeFileResource,Schemas.vscodeRemote,Schemas.vscodeRemoteResource,Schemas.vscodeNotebookCell];return t&&r.push(Schemas.command),(a=e.allowedLinkSchemes)!=null&&a.augment&&r.push(...e.allowedLinkSchemes.augment),{allowedTags:{override:(c=(l=e.allowedTags)==null?void 0:l.override)!=null?c:allowedMarkdownHtmlTags},allowedAttributes:{override:(u=(d=e.allowedAttributes)==null?void 0:d.override)!=null?u:allowedMarkdownHtmlAttributes},allowedLinkProtocols:{override:r},allowRelativeLinkPaths:!!o.baseUri,allowedMediaProtocols:{override:[Schemas.http,Schemas.https,Schemas.data,Schemas.file,Schemas.vscodeFileResource,Schemas.vscodeRemote,Schemas.vscodeRemoteResource]},allowRelativeMediaPaths:!!o.baseUri,replaceWithPlaintext:e.replaceWithPlaintext}}function renderAsPlaintext(o,e){var s;if(typeof o=="string")return o;let t=(s=o.value)!=null?s:"";t.length>1e5&&(t="".concat(t.substr(0,1e5),"…"));const r=parse$3(t,{async:!1,renderer:plainTextRenderer.value});return sanitizeRenderedMarkdown(r,{isTrusted:!1},{}).toString().replace(/&(#\d+|[a-zA-Z]+);/g,a=>{var l;return(l=unescapeInfo.get(a))!=null?l:a}).trim()}const unescapeInfo=new Map([["&quot;",'"'],["&nbsp;"," "],["&amp;","&"],["&#39;","'"],["&lt;","<"],["&gt;",">"]]);function createPlainTextRenderer(){const o=new _Renderer;return o.code=({text:e})=>escape$2(e),o.blockquote=({text:e})=>e+"\n",o.html=e=>"",o.heading=function({tokens:e}){return this.parser.parseInline(e)+"\n"},o.hr=()=>"",o.list=function({items:e}){return e.map(t=>this.listitem(t)).join("\n")+"\n"},o.listitem=({text:e})=>e+"\n",o.paragraph=function({tokens:e}){return this.parser.parseInline(e)+"\n"},o.table=function({header:e,rows:t}){return e.map(r=>this.tablecell(r)).join(" ")+"\n"+t.map(r=>r.map(s=>this.tablecell(s)).join(" ")).join("\n")+"\n"},o.tablerow=({text:e})=>e,o.tablecell=function({tokens:e}){return this.parser.parseInline(e)},o.strong=({text:e})=>e,o.em=({text:e})=>e,o.codespan=({text:e})=>escape$2(e),o.br=e=>"\n",o.del=({text:e})=>e,o.image=e=>"",o.text=({text:e})=>e,o.link=({text:e})=>e,o}const plainTextRenderer=new Lazy(createPlainTextRenderer);new Lazy(()=>{const o=createPlainTextRenderer();return o.code=({text:e})=>"\n```\n".concat(escape$2(e),"\n```\n"),o});function mergeRawTokenText(o){let e="";return o.forEach(t=>{e+=t.raw}),e}function completeSingleLinePattern(o){var e,t;if(o.tokens)for(let r=o.tokens.length-1;r>=0;r--){const s=o.tokens[r];if(s.type==="text"){const a=s.raw.split("\n"),l=a[a.length-1];if(l.includes("`"))return completeCodespan(o);if(l.includes("**"))return completeDoublestar(o);if(l.match(/\*\w/))return completeStar(o);if(l.match(/(^|\s)__\w/))return completeDoubleUnderscore(o);if(l.match(/(^|\s)_\w/))return completeUnderscore(o);if(hasLinkTextAndStartOfLinkTarget(l)||hasStartOfLinkTargetAndNoLinkText(l)&&o.tokens.slice(0,r).some(c=>c.type==="text"&&c.raw.match(/\[[^\]]*$/))){const c=o.tokens.slice(r+1);return((e=c[0])==null?void 0:e.type)==="link"&&((t=c[1])==null?void 0:t.type)==="text"&&c[1].raw.match(/^ *"[^"]*$/)||l.match(/^[^"]* +"[^"]*$/)?completeLinkTargetArg(o):completeLinkTarget(o)}else if(l.match(/(^|\s)\[\w*[^\]]*$/))return completeLinkText(o)}}}function hasLinkTextAndStartOfLinkTarget(o){return!!o.match(/(^|\s)\[.*\]\(\w*/)}function hasStartOfLinkTargetAndNoLinkText(o){return!!o.match(/^[^\[]*\]\([^\)]*$/)}function completeListItemPattern(o){var u;const e=o.items[o.items.length-1],t=e.tokens?e.tokens[e.tokens.length-1]:void 0,r=g=>{const f=g.items.at(-1),m=f==null?void 0:f.tokens.at(-1);return(m==null?void 0:m.type)==="heading"||(m==null?void 0:m.type)==="list"&&r(m)};let s;if((t==null?void 0:t.type)==="text"&&!("inRawBlock"in e))s=completeSingleLinePattern(t);else if(r(o)){const g=lexer(o.raw.trim()+" &nbsp;")[0];return g.type!=="list"?void 0:g}if(!s||s.type!=="paragraph")return;const a=mergeRawTokenText(o.items.slice(0,-1)),l=(u=e.raw.match(/^(\s*(-|\d+\.|\*) +)/))==null?void 0:u[0];if(!l)return;const c=l+mergeRawTokenText(e.tokens.slice(0,-1))+s.raw,d=lexer(a+c)[0];if(d.type==="list")return d}function completeHeading(o,e){if(o.raw.match(/-\s*$/))return lexer(e+" &nbsp;")}const maxIncompleteTokensFixRounds=3;function fillInIncompleteTokens(o){for(let e=0;e<maxIncompleteTokensFixRounds;e++){const t=fillInIncompleteTokensOnce(o);if(t)o=t;else break}return o}function fillInIncompleteTokensOnce(o){let e,t;for(e=0;e<o.length;e++){const s=o[e];if(s.type==="paragraph"&&s.raw.match(/(\n|^)\|/)){t=completeTable(o.slice(e));break}}const r=o.at(-1);if(!t&&(r==null?void 0:r.type)==="list"){const s=completeListItemPattern(r);s&&(t=[s],e=o.length-1)}if(!t&&(r==null?void 0:r.type)==="paragraph"){const s=completeSingleLinePattern(r);s&&(t=[s],e=o.length-1)}if(t){const s=[...o.slice(0,e),...t];return s.links=o.links,s}if((r==null?void 0:r.type)==="heading"){const s=completeHeading(r,mergeRawTokenText(o));if(s)return s}return null}function completeCodespan(o){return completeWithString(o,"`")}function completeStar(o){return completeWithString(o,"*")}function completeUnderscore(o){return completeWithString(o,"_")}function completeLinkTarget(o){return completeWithString(o,")",!1)}function completeLinkTargetArg(o){return completeWithString(o,'")',!1)}function completeLinkText(o){return completeWithString(o,"](https://microsoft.com)",!1)}function completeDoublestar(o){return completeWithString(o,"**")}function completeDoubleUnderscore(o){return completeWithString(o,"__")}function completeWithString(o,e,t=!0){const r=mergeRawTokenText(Array.isArray(o)?o:[o]),s=t?r.trimEnd():r;return lexer(s+e)[0]}function completeTable(o){const e=mergeRawTokenText(o),t=e.split("\n");let r,s=!1;for(let a=0;a<t.length;a++){const l=t[a].trim();if(typeof r>"u"&&l.match(/^\s*\|/)){const c=l.match(/(\|[^\|]+)(?=\||$)/g);c&&(r=c.length)}else if(typeof r=="number")if(l.match(/^\s*\|/)){if(a!==t.length-1)return;s=!0}else return}if(typeof r=="number"&&r>0){const a=s?t.slice(0,-1).join("\n"):e,l=!!a.match(/\|\s*$/),c=a+(l?"":"|")+"\n|".concat(" --- |".repeat(r));return lexer(c)}}let baseHoverDelegate={showInstantHover:()=>{},showDelayedHover:()=>{},setupDelayedHover:()=>Disposable$1.None,setupDelayedHoverAtMouse:()=>Disposable$1.None,hideHover:()=>{},showAndFocusLastHover:()=>{},setupManagedHover:()=>({dispose:()=>{},show:()=>{},hide:()=>{},update:()=>{}}),showManagedHover:()=>{}};function setBaseLayerHoverDelegate(o){baseHoverDelegate=o}function getBaseLayerHoverDelegate(){return baseHoverDelegate}class CombinedSpliceable{constructor(e){this.spliceables=e}splice(e,t,r){this.spliceables.forEach(s=>s.splice(e,t,r))}}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}}class ListError extends Error{constructor(e,t){super("ListError [".concat(e,"] ").concat(t))}}var Range$1;(function(o){function e(a,l){if(a.start>=l.end||l.start>=a.end)return{start:0,end:0};const c=Math.max(a.start,l.start),d=Math.min(a.end,l.end);return d-c<=0?{start:0,end:0}:{start:c,end:d}}o.intersect=e;function t(a){return a.end-a.start<=0}o.isEmpty=t;function r(a,l){return!t(e(a,l))}o.intersects=r;function s(a,l){const c=[],d={start:a.start,end:Math.min(l.start,a.end)},u={start:Math.max(l.end,a.start),end:a.end};return t(d)||c.push(d),t(u)||c.push(u),c}o.relativeComplement=s})(Range$1||(Range$1={}));function groupIntersect(o,e){const t=[];for(const r of e){if(o.start>=r.range.end)continue;if(o.end<r.range.start)break;const s=Range$1.intersect(o,r.range);Range$1.isEmpty(s)||t.push({range:s,size:r.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 r of o){const s=r.range.start,a=r.range.end,l=r.size;if(t&&l===t.size){t.range.end=a;continue}t={range:{start:s,end:a},size:l},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!=null?e:0,this._size=this._paddingTop}splice(e,t,r=[]){const s=r.length-t,a=groupIntersect({start:0,end:e},this.groups),l=groupIntersect({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map(d=>({range:shift(d.range,s),size:d.size})),c=r.map((d,u)=>({range:{start:e+u,end:e+u+1},size:d.size}));this.groups=concat(a,c,l),this._size=this._paddingTop+this.groups.reduce((d,u)=>d+u.size*(u.range.end-u.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,r=this._paddingTop;for(const s of this.groups){const a=s.range.end-s.range.start,l=r+a*s.size;if(e<l)return t+Math.floor((e-r)/s.size);t+=a,r=l}return t}indexAfter(e){return Math.min(this.indexAt(e)+1,this.count)}positionAt(e){if(e<0)return-1;let t=0,r=0;for(const s of this.groups){const a=s.range.end-s.range.start,l=r+a;if(e<l)return this._paddingTop+t+(e-r)*s.size;t+=a*s.size,r=l}return-1}}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(),r=!1;if(t)r=this.transactionNodesPendingRemoval.has(t.domNode),r&&this.transactionNodesPendingRemoval.delete(t.domNode);else{const s=$$m(".monaco-list-row"),l=this.getRenderer(e).renderTemplate(s);t={domNode:s,templateId:e,templateData:l}}return{row:t,isReusingConnectedDomNode:r}}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:r}=e;t&&(this.inTransaction?this.transactionNodesPendingRemoval.add(t):this.doRemoveNode(t)),this.getTemplateCache(r).push(e)}doRemoveNode(e){e.classList.remove("scrolling"),e.remove()}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 r of e)this.getRenderer(t).disposeTemplate(r.templateData),r.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 ".concat(e));return t}}function applyDragImage(o,e,t,r=[]){if(!o.dataTransfer)return;const s=$$m(".monaco-drag-image");s.textContent=t,s.classList.add(...r),(c=>{for(;c&&!c.classList.contains("monaco-workbench");)c=c.parentElement;return c||e.ownerDocument.body})(e).appendChild(s),o.dataTransfer.setDragImage(s,-10,-10),setTimeout(()=>s.remove(),0)}var __decorate$2N=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a};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 r=e.files.item(t);r&&(r.size||r.type)&&this.files.push(r)}}}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,r,s)=>s,e!=null&&e.getPosInSet?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(t,r)=>r+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=>{}}}const ko=class ko{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(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="".concat(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,r,s=DefaultOptions$1){var l,c,d,u,g,f,m,_,v,b,C,y,S;if(this.virtualDelegate=t,this.domId="list_id_".concat(++ko.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$1.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=Disposable$1.None,this.onDragLeaveTimeout=Disposable$1.None,this.currentSelectionDisposable=Disposable$1.None,this.disposables=new DisposableStore$1,this._onDidChangeContentHeight=new Emitter$1,this._onDidChangeContentWidth=new Emitter$1,this.onDidChangeContentHeight=Event$1.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,s.horizontalScrolling&&s.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap((l=s.paddingTop)!=null?l:0);for(const w of r)this.renderers.set(w.templateId,w);if(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 s.mouseSupport=="boolean"?s.mouseSupport:!0),this._horizontalScrolling=(c=s.horizontalScrolling)!=null?c:DefaultOptions$1.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=typeof s.paddingBottom>"u"?0:s.paddingBottom,this.accessibilityProvider=new ListViewAccessibilityProvider(s.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",((d=s.transformOptimization)!=null?d: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$1({forceIntegerValues:!0,smoothScrollDuration:(u=s.smoothScrolling)!=null&&u?125:0,scheduleAtNextAnimationFrame:w=>scheduleAtNextAnimationFrame(getWindow$1(this.domNode),w)})),this.scrollableElement=this.disposables.add(new SmoothScrollableElement(this.rowsContainer,{alwaysConsumeMouseWheel:(g=s.alwaysConsumeMouseWheel)!=null?g:DefaultOptions$1.alwaysConsumeMouseWheel,horizontal:1,vertical:(f=s.verticalScrollMode)!=null?f:DefaultOptions$1.verticalScrollMode,useShadows:(m=s.useShadows)!=null?m:DefaultOptions$1.useShadows,mouseWheelScrollSensitivity:s.mouseWheelScrollSensitivity,fastScrollSensitivity:s.fastScrollSensitivity,scrollByPage:s.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,w=>this.onTouchChange(w))),this.disposables.add(addDisposableListener(this.scrollableElement.getDomNode(),"scroll",w=>{const E=w.target,x=E.scrollTop;E.scrollTop=0,s.scrollToActiveElement&&this.setScrollTop(this.scrollTop+x)})),this.disposables.add(addDisposableListener(this.domNode,"dragover",w=>this.onDragOver(this.toDragEvent(w)))),this.disposables.add(addDisposableListener(this.domNode,"drop",w=>this.onDrop(this.toDragEvent(w)))),this.disposables.add(addDisposableListener(this.domNode,"dragleave",w=>this.onDragLeave(this.toDragEvent(w)))),this.disposables.add(addDisposableListener(this.domNode,"dragend",w=>this.onDragEnd(w))),s.userSelection){if(s.dnd)throw new Error("DND and user selection cannot be used simultaneously");this.disposables.add(addDisposableListener(this.domNode,"mousedown",w=>this.onPotentialSelectionStart(w)))}this.setRowLineHeight=(_=s.setRowLineHeight)!=null?_:DefaultOptions$1.setRowLineHeight,this.setRowHeight=(v=s.setRowHeight)!=null?v:DefaultOptions$1.setRowHeight,this.supportDynamicHeights=(b=s.supportDynamicHeights)!=null?b:DefaultOptions$1.supportDynamicHeights,this.dnd=(C=s.dnd)!=null?C:this.disposables.add(DefaultOptions$1.dnd),this.layout((y=s.initialSize)==null?void 0:y.height,(S=s.initialSize)==null?void 0:S.width),s.scrollToActiveElement&&this._setupFocusObserver(e)}_setupFocusObserver(e){this.disposables.add(addDisposableListener(e,"focus",()=>{const t=getActiveElement();this.activeElement!==t&&t!==null&&(this.activeElement=t,this._scrollToActiveElement(this.activeElement,e))},!0))}_scrollToActiveElement(e,t){const r=t.getBoundingClientRect(),a=e.getBoundingClientRect().top-r.top;a<0&&this.setScrollTop(this.scrollTop+a)}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={...t!=null?t:{},scrollByPage:e.scrollByPage}),e.mouseWheelScrollSensitivity!==void 0&&(t={...t!=null?t:{},mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity}),e.fastScrollSensitivity!==void 0&&(t={...t!=null?t:{},fastScrollSensitivity:e.fastScrollSensitivity}),t&&this.scrollableElement.updateOptions(t),e.paddingTop!==void 0&&e.paddingTop!==this.rangeMap.paddingTop){const r=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),s=e.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=e.paddingTop,this.render(r,Math.max(0,this.lastRenderTop+s),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(e){return new RangeMap(e)}splice(e,t,r=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,r)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t,r=[]){const s=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),a={start:e,end:e+t},l=Range$1.intersect(s,a),c=new Map;for(let x=l.end-1;x>=l.start;x--){const L=this.items[x];if(L.dragStartDisposable.dispose(),L.checkedDisposable.dispose(),L.row){let k=c.get(L.templateId);k||(k=[],c.set(L.templateId,k));const D=this.renderers.get(L.templateId);D&&D.disposeElement&&D.disposeElement(L.element,x,L.row.templateData,{height:L.size}),k.unshift(L.row)}L.row=null,L.stale=!0}const d={start:e+t,end:this.items.length},u=Range$1.intersect(d,s),g=Range$1.relativeComplement(d,s),f=r.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$1.None,checkedDisposable:Disposable$1.None,stale:!1}));let m;e===0&&t>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,f),m=this.items,this.items=f):(this.rangeMap.splice(e,t,f),m=splice$1(this.items,e,t,f));const _=r.length-t,v=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),b=shift(u,_),C=Range$1.intersect(v,b);for(let x=C.start;x<C.end;x++)this.updateItemInDOM(this.items[x],x);const y=Range$1.relativeComplement(b,v);for(const x of y)for(let L=x.start;L<x.end;L++)this.removeItemFromDOM(L);const S=g.map(x=>shift(x,_)),E=[{start:e,end:e+r.length},...S].map(x=>Range$1.intersect(v,x)).reverse();for(const x of E)for(let L=x.end-1;L>=x.start;L--){const k=this.items[L],D=c.get(k.templateId),I=D==null?void 0:D.pop();this.insertItemInDOM(L,I)}for(const x of c.values())for(const L of x)this.cache.release(L);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),m.map(x=>x.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height="".concat(this._scrollHeight,"px"),this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=scheduleAtNextAnimationFrame(getWindow$1(this.domNode),()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let 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(){return this.getVisibleRange(this.lastRenderTop,this.lastRenderHeight).start}element(e){return this.items[e].element}indexOf(e){return this.items.findIndex(t=>t.element===e)}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 r={height:typeof e=="number"?e:getContentHeight(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,r.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(r),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,r,s,a,l=!1,c=!1){const d=this.getRenderRange(t,r),u=Range$1.relativeComplement(d,e).reverse(),g=Range$1.relativeComplement(e,d);if(l){const f=Range$1.intersect(e,d);for(let m=f.start;m<f.end;m++)this.updateItemInDOM(this.items[m],m)}this.cache.transact(()=>{for(const f of g)for(let m=f.start;m<f.end;m++)this.removeItemFromDOM(m,c);for(const f of u)for(let m=f.end-1;m>=f.start;m--)this.insertItemInDOM(m)}),s!==void 0&&(this.rowsContainer.style.left="-".concat(s,"px")),this.rowsContainer.style.top="-".concat(t,"px"),this.horizontalScrolling&&a!==void 0&&(this.rowsContainer.style.width="".concat(Math.max(a,this.renderWidth),"px")),this.lastRenderTop=t,this.lastRenderHeight=r}insertItemInDOM(e,t){var u,g,f;const r=this.items[e];if(!r.row)if(t)r.row=t,r.stale=!0;else{const m=this.cache.alloc(r.templateId);r.row=m.row,r.stale||(r.stale=m.isReusingConnectedDomNode)}const s=this.accessibilityProvider.getRole(r.element)||"listitem";r.row.domNode.setAttribute("role",s);const a=this.accessibilityProvider.isChecked(r.element),l=m=>m==="mixed"?"mixed":String(!!m);if(typeof a=="boolean"||a==="mixed")r.row.domNode.setAttribute("aria-checked",l(a));else if(a){const m=_=>r.row.domNode.setAttribute("aria-checked",l(_));m(a.value),r.checkedDisposable=a.onDidChange(()=>m(a.value))}if(r.stale||!r.row.domNode.parentElement){const m=(f=(g=(u=this.items.at(e+1))==null?void 0:u.row)==null?void 0:g.domNode)!=null?f:null;(r.row.domNode.parentElement!==this.rowsContainer||r.row.domNode.nextElementSibling!==m)&&this.rowsContainer.insertBefore(r.row.domNode,m),r.stale=!1}this.updateItemInDOM(r,e);const c=this.renderers.get(r.templateId);if(!c)throw new Error("No renderer found for template id ".concat(r.templateId));c==null||c.renderElement(r.element,e,r.row.templateData,{height:r.size});const d=this.dnd.getDragURI(r.element);r.dragStartDisposable.dispose(),r.row.domNode.draggable=!!d,d&&(r.dragStartDisposable=addDisposableListener(r.row.domNode,"dragstart",m=>this.onDragStart(r.element,d,m))),this.horizontalScrolling&&(this.measureItemWidth(r),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=getWindow$1(e.row.domNode).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="".concat(this.elementTop(t),"px"),this.setRowHeight&&(e.row.domNode.style.height="".concat(e.size,"px")),this.setRowLineHeight&&(e.row.domNode.style.lineHeight="".concat(e.size,"px")),e.row.domNode.setAttribute("data-index","".concat(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,t){const r=this.items[e];if(r.dragStartDisposable.dispose(),r.checkedDisposable.dispose(),r.row){const s=this.renderers.get(r.templateId);s&&s.disposeElement&&s.disposeElement(r.element,e,r.row.templateData,{height:r.size,onScroll:t}),this.cache.release(r.row),r.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$1.map(this.disposables.add(new DomEmitter(this.domNode,"click")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseDblClick(){return Event$1.map(this.disposables.add(new DomEmitter(this.domNode,"dblclick")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseMiddleClick(){return Event$1.filter(Event$1.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$1.map(this.disposables.add(new DomEmitter(this.domNode,"mousedown")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOver(){return Event$1.map(this.disposables.add(new DomEmitter(this.domNode,"mouseover")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOut(){return Event$1.map(this.disposables.add(new DomEmitter(this.domNode,"mouseout")).event,e=>this.toMouseEvent(e),this.disposables)}get onContextMenu(){return Event$1.any(Event$1.map(this.disposables.add(new DomEmitter(this.domNode,"contextmenu")).event,e=>this.toMouseEvent(e),this.disposables),Event$1.map(this.disposables.add(new DomEmitter(this.domNode,EventType.Contextmenu)).event,e=>this.toGestureEvent(e),this.disposables))}get onTouchStart(){return Event$1.map(this.disposables.add(new DomEmitter(this.domNode,"touchstart")).event,e=>this.toTouchEvent(e),this.disposables)}get onTap(){return Event$1.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),r=typeof t>"u"?void 0:this.items[t],s=r&&r.element;return{browserEvent:e,index:t,element:s}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),r=typeof t>"u"?void 0:this.items[t],s=r&&r.element;return{browserEvent:e,index:t,element:s}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),r=typeof t>"u"?void 0:this.items[t],s=r&&r.element;return{browserEvent:e,index:t,element:s}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),r=typeof t>"u"?void 0:this.items[t],s=r&&r.element,a=this.getTargetSector(e,t);return{browserEvent:e,index:t,element:s,sector:a}}onScroll(e){try{const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth,void 0,!0),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,r){var l,c;if(!r.dataTransfer)return;const s=this.dnd.getDragElements(e);r.dataTransfer.effectAllowed="copyMove",r.dataTransfer.setData(DataTransfers.TEXT,t);let a;this.dnd.getDragLabel&&(a=this.dnd.getDragLabel(s,r)),typeof a>"u"&&(a=String(s.length)),applyDragImage(r,this.domNode,a,[this.domId]),this.domNode.classList.add("dragging"),this.currentDragData=new ElementsDragAndDropData(s),StaticDND.CurrentDragAndDropData=new ExternalElementsDragAndDropData(s),(c=(l=this.dnd).onDragStart)==null||c.call(l,this.currentDragData,r)}onPotentialSelectionStart(e){this.currentSelectionDisposable.dispose();const t=getDocument$1(this.domNode),r=this.currentSelectionDisposable=new DisposableStore$1,s=r.add(new DisposableStore$1);s.add(addDisposableListener(this.domNode,"selectstart",()=>{s.add(addDisposableListener(t,"mousemove",a=>{var l;((l=t.getSelection())==null?void 0:l.isCollapsed)===!1&&this.setupDragAndDropScrollTopAnimation(a)})),r.add(toDisposable(()=>{const a=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.currentSelectionBounds=void 0,this.render(a,this.lastRenderTop,this.lastRenderHeight,void 0,void 0)})),r.add(addDisposableListener(t,"selectionchange",()=>{const a=t.getSelection();if(!a||a.isCollapsed){s.isDisposed&&r.dispose();return}let l=this.getIndexOfListElement(a.anchorNode),c=this.getIndexOfListElement(a.focusNode);l!==void 0&&c!==void 0&&(c<l&&([l,c]=[c,l]),this.currentSelectionBounds={start:l,end:c})}))})),s.add(addDisposableListener(t,"mouseup",()=>{var a;s.dispose(),this.teardownDragAndDropScrollTopAnimation(),((a=t.getSelection())==null?void 0:a.isCollapsed)!==!1&&r.dispose()}))}getIndexOfListElement(e){var t;if(!(!e||!this.domNode.contains(e)))for(;e&&e!==this.domNode;){if((t=e.dataset)!=null&&t.index)return Number(e.dataset.index);e=e.parentElement}}onDragOver(e){var a,l;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 t=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.sector,e.browserEvent);if(this.canDrop=typeof t=="boolean"?t:t.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;e.browserEvent.dataTransfer.dropEffect=typeof t!="boolean"&&((a=t.effect)==null?void 0:a.type)===0?"copy":"move";let r;typeof t!="boolean"&&t.feedback?r=t.feedback:typeof e.index>"u"?r=[-1]:r=[e.index],r=distinct(r).filter(c=>c>=-1&&c<this.length).sort((c,d)=>c-d),r=r[0]===-1?[-1]:r;let s=typeof t!="boolean"&&t.effect&&t.effect.position?t.effect.position:"drop-target";if(equalsDragFeedback(this.currentDragFeedback,r)&&this.currentDragFeedbackPosition===s)return!0;if(this.currentDragFeedback=r,this.currentDragFeedbackPosition=s,this.currentDragFeedbackDisposable.dispose(),r[0]===-1)this.domNode.classList.add(s),this.rowsContainer.classList.add(s),this.currentDragFeedbackDisposable=toDisposable(()=>{this.domNode.classList.remove(s),this.rowsContainer.classList.remove(s)});else{if(r.length>1&&s!=="drop-target")throw new Error("Can't use multiple feedbacks with position different than 'over'");s==="drop-target-after"&&r[0]<this.length-1&&(r[0]+=1,s="drop-target-before");for(const c of r){const d=this.items[c];d.dropTarget=!0,(l=d.row)==null||l.domNode.classList.add(s)}this.currentDragFeedbackDisposable=toDisposable(()=>{var c;for(const d of r){const u=this.items[d];u.dropTarget=!1,(c=u.row)==null||c.domNode.classList.remove(s)}})}return!0}onDragLeave(e){var t,r;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=disposableTimeout(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&((r=(t=this.dnd).onDragLeave)==null||r.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.sector,e.browserEvent))}onDragEnd(e){var t,r;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,StaticDND.CurrentDragAndDropData=void 0,(r=(t=this.dnd).onDragEnd)==null||r.call(t,e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=Disposable$1.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const t=getTopLeftOffset(this.domNode).top;this.dragOverAnimationDisposable=animate(getWindow$1(this.domNode),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,r=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>r&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-r))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(e,t){if(t===void 0)return;const r=e.offsetY/this.items[t].size,s=Math.floor(r/.25);return clamp(s,0,3)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let r=e;for(;(isHTMLElement(r)||isSVGElement(r))&&r!==this.rowsContainer&&t.contains(r);){const s=r.getAttribute("data-index");if(s){const a=Number(s);if(!isNaN(a))return a}r=r.parentElement}}getVisibleRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}getRenderRange(e,t){const r=this.getVisibleRange(e,t);if(this.currentSelectionBounds){const s=this.rangeMap.count;r.start=Math.min(r.start,this.currentSelectionBounds.start,s),r.end=Math.min(Math.max(r.end,this.currentSelectionBounds.end+1),s)}return r}_rerender(e,t,r){const s=this.getRenderRange(e,t);let a,l;e===this.elementTop(s.start)?(a=s.start,l=0):s.end-s.start>1&&(a=s.start+1,l=this.elementTop(a)-e);let c=0;for(;;){const d=this.getRenderRange(e,t);let u=!1;for(let g=d.start;g<d.end;g++){const f=this.probeDynamicHeight(g);f!==0&&this.rangeMap.splice(g,1,[this.items[g]]),c+=f,u=u||f!==0}if(!u){c!==0&&this.eventuallyUpdateScrollDimensions();const g=Range$1.relativeComplement(s,d);for(const m of g)for(let _=m.start;_<m.end;_++)this.items[_].row&&this.removeItemFromDOM(_);const f=Range$1.relativeComplement(d,s).reverse();for(const m of f)for(let _=m.end-1;_>=m.start;_--)this.insertItemInDOM(_);for(let m=d.start;m<d.end;m++)this.items[m].row&&this.updateItemInDOM(this.items[m],m);if(typeof a=="number"){const m=this.scrollable.getFutureScrollPosition().scrollTop-e,_=this.elementTop(a)-l+m;this.setScrollTop(_,r)}this._onDidChangeContentHeight.fire(this.contentHeight);return}}}probeDynamicHeight(e){var l,c,d;const t=this.items[e];if(this.virtualDelegate.getDynamicHeight){const u=this.virtualDelegate.getDynamicHeight(t.element);if(u!==null){const g=t.size;return t.size=u,t.lastDynamicHeightWidth=this.renderWidth,u-g}}if(!t.hasDynamicHeight||t.lastDynamicHeightWidth===this.renderWidth||this.virtualDelegate.hasDynamicHeight&&!this.virtualDelegate.hasDynamicHeight(t.element))return 0;const r=t.size;if(t.row)return t.row.domNode.style.height="",t.size=t.row.domNode.offsetHeight,t.size===0&&!isAncestor$1(t.row.domNode,getWindow$1(t.row.domNode).document.body)&&console.warn("Measuring item node that is not in DOM! Add ListView to the DOM before measuring row height!",new Error().stack),t.lastDynamicHeightWidth=this.renderWidth,t.size-r;const{row:s}=this.cache.alloc(t.templateId);s.domNode.style.height="",this.rowsContainer.appendChild(s.domNode);const a=this.renderers.get(t.templateId);if(!a)throw new BugIndicatingError("Missing renderer for templateId: "+t.templateId);return a.renderElement(t.element,e,s.templateData),t.size=s.domNode.offsetHeight,(l=a.disposeElement)==null||l.call(a,t.element,e,s.templateData),(d=(c=this.virtualDelegate).setDynamicHeight)==null||d.call(c,t.element,t.size),t.lastDynamicHeightWidth=this.renderWidth,s.domNode.remove(),this.cache.release(s),t.size-r}getElementDomId(e){return"".concat(this.domId,"_").concat(e)}dispose(){var e,t,r;for(const s of this.items)if(s.dragStartDisposable.dispose(),s.checkedDisposable.dispose(),s.row){const a=this.renderers.get(s.row.templateId);a&&((e=a.disposeElement)==null||e.call(a,s.element,-1,s.row.templateData,void 0),a.disposeTemplate(s.row.templateData))}this.items=[],(t=this.domNode)==null||t.remove(),(r=this.dragOverAnimationDisposable)==null||r.dispose(),this.disposables.dispose()}};ko.InstanceCount=0;let ListView=ko;__decorate$2N([memoize],ListView.prototype,"onMouseClick",null);__decorate$2N([memoize],ListView.prototype,"onMouseDblClick",null);__decorate$2N([memoize],ListView.prototype,"onMouseMiddleClick",null);__decorate$2N([memoize],ListView.prototype,"onMouseDown",null);__decorate$2N([memoize],ListView.prototype,"onMouseOver",null);__decorate$2N([memoize],ListView.prototype,"onMouseOut",null);__decorate$2N([memoize],ListView.prototype,"onContextMenu",null);__decorate$2N([memoize],ListView.prototype,"onTouchStart",null);__decorate$2N([memoize],ListView.prototype,"onTap",null);var __decorate$2M=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a};class TraitRenderer{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return"template:".concat(this.trait.name)}renderTemplate(e){return e}renderElement(e,t,r){const s=this.renderedElements.findIndex(a=>a.templateData===r);if(s>=0){const a=this.renderedElements[s];this.trait.unrender(r),a.index=t}else{const a={index:t,templateData:r};this.renderedElements.push(a)}this.trait.renderIndex(t,r)}splice(e,t,r){const s=[];for(const a of this.renderedElements)a.index<e?s.push(a):a.index>=e+t&&s.push({index:a.index+r-t,templateData:a.templateData});this.renderedElements=s}renderIndexes(e){for(const{index:t,templateData:r}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,r)}disposeTemplate(e){const t=this.renderedElements.findIndex(r=>r.templateData===e);t<0||this.renderedElements.splice(t,1)}}let Trait$1=class{get onChange(){return this._onChange.event}get name(){return this._trait}get renderer(){return new TraitRenderer(this)}constructor(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new Emitter$1}splice(e,t,r){const s=r.length-t,a=e+t,l=[];let c=0;for(;c<this.sortedIndexes.length&&this.sortedIndexes[c]<e;)l.push(this.sortedIndexes[c++]);for(let d=0;d<r.length;d++)r[d]&&l.push(d+e);for(;c<this.sortedIndexes.length&&this.sortedIndexes[c]>=a;)l.push(this.sortedIndexes[c++]+s);this.renderer.splice(e,t,r.length),this._set(l,l)}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,r){const s=this.indexes,a=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const l=disjunction(a,e);return this.renderer.renderIndexes(l),this._onChange.fire({indexes:e,browserEvent:r}),s}get(){return this.indexes}contains(e){return binarySearch(this.sortedIndexes,e,numericSort)>=0}dispose(){dispose(this._onChange)}};__decorate$2M([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,r){this.trait=e,this.view=t,this.identityProvider=r}splice(e,t,r){if(!this.identityProvider)return this.trait.splice(e,t,new Array(r.length).fill(!1));const s=this.trait.get().map(c=>this.identityProvider.getId(this.view.element(c)).toString());if(s.length===0)return this.trait.splice(e,t,new Array(r.length).fill(!1));const a=new Set(s),l=r.map(c=>a.has(this.identityProvider.getId(c).toString()));this.trait.splice(e,t,l)}}function isListElementDescendantOfClass(o,e){return o.classList.contains(e)?!0:o.classList.contains("monaco-list")||!o.parentElement?!1:isListElementDescendantOfClass(o.parentElement,e)}function isMonacoEditor(o){return isListElementDescendantOfClass(o,"monaco-editor")}function isMonacoCustomToggle(o){return isListElementDescendantOfClass(o,"monaco-custom-toggle")}function isActionItem(o){return isListElementDescendantOfClass(o,"action-item")}function isStickyScrollElement(o){return isListElementDescendantOfClass(o,"monaco-tree-sticky-row")}function isStickyScrollContainer(o){return o.classList.contains("monaco-tree-sticky-container")}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$1.chain(this.disposables.add(new DomEmitter(this.view.domNode,"keydown")).event,e=>e.filter(t=>!isEditableElement(t.target)).map(t=>new StandardKeyboardEvent(t)))}constructor(e,t,r){this.list=e,this.view=t,this.disposables=new DisposableStore$1,this.multipleSelectionDisposables=new DisposableStore$1,this.multipleSelectionSupport=r.multipleSelectionSupport,this.disposables.add(this.onKeyDown(s=>{switch(s.keyCode){case 3:return this.onEnter(s);case 16:return this.onUpArrow(s);case 18:return this.onDownArrow(s);case 11:return this.onPageUpArrow(s);case 12:return this.onPageDownArrow(s);case 9:return this.onEscape(s);case 31:this.multipleSelectionSupport&&(isMacintosh?s.metaKey:s.ctrlKey)&&this.onCtrlA(s)}}))}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$2M([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,r,s,a){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=r,this.keyboardNavigationEventFilter=s,this.delegate=a,this.enabled=!1,this.state=TypeNavigationControllerState.Idle,this.mode=TypeNavigationMode.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new DisposableStore$1,this.disposables=new DisposableStore$1,this.updateOptions(e.options)}updateOptions(e){var t,r;(t=e.typeNavigationEnabled)==null||t?this.enable():this.disable(),this.mode=(r=e.typeNavigationMode)!=null?r:TypeNavigationMode.Automatic}enable(){if(this.enabled)return;let e=!1;const t=Event$1.chain(this.enabledDisposables.add(new DomEmitter(this.view.domNode,"keydown")).event,a=>a.filter(l=>!isEditableElement(l.target)).filter(()=>this.mode===TypeNavigationMode.Automatic||this.triggered).map(l=>new StandardKeyboardEvent(l)).filter(l=>e||this.keyboardNavigationEventFilter(l)).filter(l=>this.delegate.mightProducePrintableCharacter(l)).forEach(l=>EventHelper$1.stop(l,!0)).map(l=>l.browserEvent.key)),r=Event$1.debounce(t,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);Event$1.reduce(Event$1.any(t,r),(a,l)=>l===null?null:(a||"")+l,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),r(this.onClear,this,this.enabledDisposables),t(()=>e=!0,void 0,this.enabledDisposables),r(()=>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 t;const e=this.list.getFocus();if(e.length>0&&e[0]===this.previouslyFocused){const r=(t=this.list.options.accessibilityProvider)==null?void 0:t.getAriaLabel(this.list.element(e[0]));typeof r=="string"?alert(r):r&&alert(r.get())}this.previouslyFocused=-1}onInput(e){if(!e){this.state=TypeNavigationControllerState.Idle,this.triggered=!1;return}const t=this.list.getFocus(),r=t.length>0?t[0]:0,s=this.state===TypeNavigationControllerState.Idle?1:0;this.state=TypeNavigationControllerState.Typing;for(let a=0;a<this.list.length;a++){const l=(r+a+s)%this.list.length,c=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(this.view.element(l)),d=c&&c.toString();if(this.list.options.typeNavigationEnabled){if(typeof d<"u"){if(matchesPrefix(e,d)){this.previouslyFocused=r,this.list.setFocus([l]),this.list.reveal(l);return}const u=matchesFuzzy2(e,d);if(u&&u[0].end-u[0].start>1&&u.length===1){this.previouslyFocused=r,this.list.setFocus([l]),this.list.reveal(l);return}}}else if(typeof d>"u"||matchesPrefix(e,d)){this.previouslyFocused=r,this.list.setFocus([l]),this.list.reveal(l);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$1;const r=Event$1.chain(this.disposables.add(new DomEmitter(t.domNode,"keydown")).event,a=>a.filter(l=>!isEditableElement(l.target)).map(l=>new StandardKeyboardEvent(l)));Event$1.chain(r,a=>a.filter(l=>l.keyCode===2&&!l.ctrlKey&&!l.metaKey&&!l.shiftKey&&!l.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 r=this.view.domElement(t[0]);if(!r)return;const s=r.querySelector("[tabIndex]");if(!s||!isHTMLElement(s)||s.tabIndex===-1)return;const a=getWindow$1(s).getComputedStyle(s);a.visibility==="hidden"||a.display==="none"||(e.preventDefault(),e.stopPropagation(),s.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 isMouseEvent$1(o)&&o.button===2}const DefaultMultipleSelectionController={isSelectionSingleChangeEvent,isSelectionRangeChangeEvent};class MouseController{get onPointer(){return this._onPointer.event}constructor(e){this.list=e,this.disposables=new DisposableStore$1,this._onPointer=this.disposables.add(new Emitter$1),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$1.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)||getActiveElement()!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(isEditableElement(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||isEditableElement(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(isEditableElement(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 r=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)){if(typeof r>"u"){const g=this.list.getFocus()[0];r=g!=null?g:t,this.list.setAnchor(r)}const s=Math.min(r,t),a=Math.max(r,t),l=range(s,a+1),c=this.list.getSelection(),d=getContiguousRangeContaining(disjunction(c,[r]),r);if(d.length===0)return;const u=disjunction(l,relativeComplement(c,d));this.list.setSelection(u,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){const s=this.list.getSelection(),a=s.filter(l=>l!==t);this.list.setFocus([t]),this.list.setAnchor(t),s.length===a.length?this.list.setSelection([...a,t],e.browserEvent):this.list.setSelection(a,e.browserEvent)}}dispose(){this.disposables.dispose()}}class DefaultStyleController{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){var l,c;const t=this.selectorSuffix&&".".concat(this.selectorSuffix),r=[];e.listBackground&&r.push(".monaco-list".concat(t," .monaco-list-rows { background: ").concat(e.listBackground,"; }")),e.listFocusBackground&&(r.push(".monaco-list".concat(t,":focus .monaco-list-row.focused { background-color: ").concat(e.listFocusBackground,"; }")),r.push(".monaco-list".concat(t,":focus .monaco-list-row.focused:hover { background-color: ").concat(e.listFocusBackground,"; }"))),e.listFocusForeground&&r.push(".monaco-list".concat(t,":focus .monaco-list-row.focused { color: ").concat(e.listFocusForeground,"; }")),e.listActiveSelectionBackground&&(r.push(".monaco-list".concat(t,":focus .monaco-list-row.selected { background-color: ").concat(e.listActiveSelectionBackground,"; }")),r.push(".monaco-list".concat(t,":focus .monaco-list-row.selected:hover { background-color: ").concat(e.listActiveSelectionBackground,"; }"))),e.listActiveSelectionForeground&&r.push(".monaco-list".concat(t,":focus .monaco-list-row.selected { color: ").concat(e.listActiveSelectionForeground,"; }")),e.listActiveSelectionIconForeground&&r.push(".monaco-list".concat(t,":focus .monaco-list-row.selected .codicon { color: ").concat(e.listActiveSelectionIconForeground,"; }")),e.listFocusAndSelectionBackground&&r.push("\n .monaco-drag-image".concat(t,",\n .monaco-list").concat(t,":focus .monaco-list-row.selected.focused { background-color: ").concat(e.listFocusAndSelectionBackground,"; }\n ")),e.listFocusAndSelectionForeground&&r.push("\n .monaco-drag-image".concat(t,",\n .monaco-list").concat(t,":focus .monaco-list-row.selected.focused { color: ").concat(e.listFocusAndSelectionForeground,"; }\n ")),e.listInactiveFocusForeground&&(r.push(".monaco-list".concat(t," .monaco-list-row.focused { color: ").concat(e.listInactiveFocusForeground,"; }")),r.push(".monaco-list".concat(t," .monaco-list-row.focused:hover { color: ").concat(e.listInactiveFocusForeground,"; }"))),e.listInactiveSelectionIconForeground&&r.push(".monaco-list".concat(t," .monaco-list-row.focused .codicon { color: ").concat(e.listInactiveSelectionIconForeground,"; }")),e.listInactiveFocusBackground&&(r.push(".monaco-list".concat(t," .monaco-list-row.focused { background-color: ").concat(e.listInactiveFocusBackground,"; }")),r.push(".monaco-list".concat(t," .monaco-list-row.focused:hover { background-color: ").concat(e.listInactiveFocusBackground,"; }"))),e.listInactiveSelectionBackground&&(r.push(".monaco-list".concat(t," .monaco-list-row.selected { background-color: ").concat(e.listInactiveSelectionBackground,"; }")),r.push(".monaco-list".concat(t," .monaco-list-row.selected:hover { background-color: ").concat(e.listInactiveSelectionBackground,"; }"))),e.listInactiveSelectionForeground&&r.push(".monaco-list".concat(t," .monaco-list-row.selected { color: ").concat(e.listInactiveSelectionForeground,"; }")),e.listHoverBackground&&r.push(".monaco-list".concat(t,":not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ").concat(e.listHoverBackground,"; }")),e.listHoverForeground&&r.push(".monaco-list".concat(t,":not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ").concat(e.listHoverForeground,"; }"));const s=asCssValueWithDefault(e.listFocusAndSelectionOutline,asCssValueWithDefault(e.listSelectionOutline,(l=e.listFocusOutline)!=null?l:""));s&&r.push(".monaco-list".concat(t,":focus .monaco-list-row.focused.selected { outline: 1px solid ").concat(s,"; outline-offset: -1px;}")),e.listFocusOutline&&r.push("\n .monaco-drag-image".concat(t,",\n .monaco-list").concat(t,":focus .monaco-list-row.focused,\n .context-menu-visible .monaco-list").concat(t,".last-focused .monaco-list-row.focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }\n "));const a=asCssValueWithDefault(e.listSelectionOutline,(c=e.listInactiveFocusOutline)!=null?c:"");a&&r.push(".monaco-list".concat(t," .monaco-list-row.focused.selected { outline: 1px dotted ").concat(a,"; outline-offset: -1px; }")),e.listSelectionOutline&&r.push(".monaco-list".concat(t," .monaco-list-row.selected { outline: 1px dotted ").concat(e.listSelectionOutline,"; outline-offset: -1px; }")),e.listInactiveFocusOutline&&r.push(".monaco-list".concat(t," .monaco-list-row.focused { outline: 1px dotted ").concat(e.listInactiveFocusOutline,"; outline-offset: -1px; }")),e.listHoverOutline&&r.push(".monaco-list".concat(t," .monaco-list-row:hover { outline: 1px dashed ").concat(e.listHoverOutline,"; outline-offset: -1px; }")),e.listDropOverBackground&&r.push("\n .monaco-list".concat(t,".drop-target,\n .monaco-list").concat(t," .monaco-list-rows.drop-target,\n .monaco-list").concat(t," .monaco-list-row.drop-target { background-color: ").concat(e.listDropOverBackground," !important; color: inherit !important; }\n ")),e.listDropBetweenBackground&&(r.push("\n .monaco-list".concat(t," .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before,\n .monaco-list").concat(t,' .monaco-list-row.drop-target-before::before {\n content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px;\n background-color: ').concat(e.listDropBetweenBackground,";\n }")),r.push("\n .monaco-list".concat(t," .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after,\n .monaco-list").concat(t,' .monaco-list-row.drop-target-after::after {\n content: ""; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px;\n background-color: ').concat(e.listDropBetweenBackground,";\n }"))),e.tableColumnsBorder&&r.push("\n .monaco-table > .monaco-split-view2,\n .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before,\n .monaco-enable-motion .monaco-table:hover > .monaco-split-view2,\n .monaco-enable-motion .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before {\n border-color: ".concat(e.tableColumnsBorder,";\n }\n\n .monaco-enable-motion .monaco-table > .monaco-split-view2,\n .monaco-enable-motion .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before {\n border-color: transparent;\n }\n ")),e.tableOddRowsBackgroundColor&&r.push("\n .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr,\n .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr,\n .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr {\n background-color: ".concat(e.tableOddRowsBackgroundColor,";\n }\n ")),this.styleElement.textContent=r.join("\n")}}const unthemedListStyles={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropOverBackground:"#383B3D",listDropBetweenBackground:"#EEEEEE",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke: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,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow: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 r=[];let s=t-1;for(;s>=0&&o[s]===e-(t-s);)r.push(o[s--]);for(r.reverse(),s=t;s<o.length&&o[s]===e+(s-t);)r.push(o[s++]);return r}function disjunction(o,e){const t=[];let r=0,s=0;for(;r<o.length||s<e.length;)if(r>=o.length)t.push(e[s++]);else if(s>=e.length)t.push(o[r++]);else if(o[r]===e[s]){t.push(o[r]),r++,s++;continue}else o[r]<e[s]?t.push(o[r++]):t.push(e[s++]);return t}function relativeComplement(o,e){const t=[];let r=0,s=0;for(;r<o.length||s<e.length;)if(r>=o.length)t.push(e[s++]);else if(s>=e.length)t.push(o[r++]);else if(o[r]===e[s]){r++,s++;continue}else o[r]<e[s]?t.push(o[r++]):s++;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,r,s){let a=0;for(const l of this.renderers)l.renderElement(e,t,r[a++],s)}disposeElement(e,t,r,s){var l;let a=0;for(const c of this.renderers)(l=c.disposeElement)==null||l.call(c,e,t,r[a],s),a+=1}disposeTemplate(e){let t=0;for(const r of this.renderers)r.disposeTemplate(e[t++])}}class AccessibiltyRenderer{constructor(e){this.accessibilityProvider=e,this.templateId="a18n"}renderTemplate(e){return{container:e,disposables:new DisposableStore$1}}renderElement(e,t,r){const s=this.accessibilityProvider.getAriaLabel(e),a=s&&typeof s!="string"?s:constObservable(s);r.disposables.add(autorun(c=>{this.setAriaLabel(c.readObservable(a),r.container)}));const l=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);typeof l=="number"?r.container.setAttribute("aria-level","".concat(l)):r.container.removeAttribute("aria-level")}setAriaLabel(e,t){e?t.setAttribute("aria-label",e):t.removeAttribute("aria-label")}disposeElement(e,t,r){r.disposables.clear()}disposeTemplate(e){e.disposables.dispose()}}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 r,s;(s=(r=this.dnd).onDragStart)==null||s.call(r,e,t)}onDragOver(e,t,r,s,a){return this.dnd.onDragOver(e,t,r,s,a)}onDragLeave(e,t,r,s){var a,l;(l=(a=this.dnd).onDragLeave)==null||l.call(a,e,t,r,s)}onDragEnd(e){var t,r;(r=(t=this.dnd).onDragEnd)==null||r.call(t,e)}drop(e,t,r,s,a){this.dnd.drop(e,t,r,s,a)}dispose(){this.dnd.dispose()}}class List{get onDidChangeFocus(){return Event$1.map(this.eventBufferer.wrapEvent(this.focus.onChange),e=>this.toListEvent(e),this.disposables)}get onDidChangeSelection(){return Event$1.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$1.chain(this.disposables.add(new DomEmitter(this.view.domNode,"keydown")).event,a=>a.map(l=>new StandardKeyboardEvent(l)).filter(l=>e=l.keyCode===58||l.shiftKey&&l.keyCode===68).map(l=>EventHelper$1.stop(l,!0)).filter(()=>!1)),r=Event$1.chain(this.disposables.add(new DomEmitter(this.view.domNode,"keyup")).event,a=>a.forEach(()=>e=!1).map(l=>new StandardKeyboardEvent(l)).filter(l=>l.keyCode===58||l.shiftKey&&l.keyCode===68).map(l=>EventHelper$1.stop(l,!0)).map(({browserEvent:l})=>{const c=this.getFocus(),d=c.length?c[0]:void 0,u=typeof d<"u"?this.view.element(d):void 0,g=typeof d<"u"?this.view.domElement(d):this.view.domNode;return{index:d,element:u,anchor:g,browserEvent:l}})),s=Event$1.chain(this.view.onContextMenu,a=>a.filter(l=>!e).map(({element:l,index:c,browserEvent:d})=>({element:l,index:c,anchor:new StandardMouseEvent(getWindow$1(this.view.domNode),d),browserEvent:d})));return Event$1.any(t,r,s)}get onKeyDown(){return this.disposables.add(new DomEmitter(this.view.domNode,"keydown")).event}get onDidFocus(){return Event$1.signal(this.disposables.add(new DomEmitter(this.view.domNode,"focus",!0)).event)}get onDidBlur(){return Event$1.signal(this.disposables.add(new DomEmitter(this.view.domNode,"blur",!0)).event)}constructor(e,t,r,s,a=DefaultOptions){var u,g,f,m;this.user=e,this._options=a,this.focus=new Trait$1("focused"),this.anchor=new Trait$1("anchor"),this.eventBufferer=new EventBufferer,this._ariaLabel="",this.disposables=new DisposableStore$1,this._onDidDispose=new Emitter$1,this.onDidDispose=this._onDidDispose.event;const l=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?(u=this._options.accessibilityProvider)==null?void 0:u.getWidgetRole():"list";this.selection=new SelectionTrait(l!=="listbox");const c=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=a.accessibilityProvider,this.accessibilityProvider&&(c.push(new AccessibiltyRenderer(this.accessibilityProvider)),(f=(g=this.accessibilityProvider).onDidChangeActiveDescendant)==null||f.call(g,this.onDidChangeActiveDescendant,this,this.disposables)),s=s.map(_=>new PipelineRenderer(_.templateId,[...c,_]));const d={...a,dnd:a.dnd&&new ListViewDragAndDrop(this,a.dnd)};if(this.view=this.createListView(t,r,s,d),this.view.domNode.setAttribute("role",l),a.styleController)this.styleController=a.styleController(this.view.domId);else{const _=createStyleSheet(this.view.domNode);this.styleController=new DefaultStyleController(_,this.view.domId)}if(this.spliceable=new CombinedSpliceable([new TraitSpliceable(this.focus,this.view,a.identityProvider),new TraitSpliceable(this.selection,this.view,a.identityProvider),new TraitSpliceable(this.anchor,this.view,a.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 a.keyboardSupport!="boolean"||a.keyboardSupport)&&(this.keyboardController=new KeyboardController(this,this.view,a),this.disposables.add(this.keyboardController)),a.keyboardNavigationLabelProvider){const _=a.keyboardNavigationDelegate||DefaultKeyboardNavigationDelegate;this.typeNavigationController=new TypeNavigationController(this,this.view,a.keyboardNavigationLabelProvider,(m=a.keyboardNavigationEventFilter)!=null?m:(()=>!0),_),this.disposables.add(this.typeNavigationController)}if(this.mouseController=this.createMouseController(a),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider){const _=this.accessibilityProvider.getWidgetAriaLabel(),v=_&&typeof _!="string"?_:constObservable(_);this.disposables.add(autorun(b=>{this.ariaLabel=b.readObservable(v)}))}this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(e,t,r,s){return new ListView(e,t,r,s)}createMouseController(e){return new MouseController(this)}updateOptions(e={}){var t,r;this._options={...this._options,...e},(t=this.typeNavigationController)==null||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),(r=this.keyboardController)==null||r.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,r=[]){if(e<0||e>this.view.length)throw new ListError(this.user,"Invalid start index: ".concat(e));if(t<0)throw new ListError(this.user,"Invalid delete count: ".concat(t));t===0&&r.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(e,t,r))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}indexOf(e){return this.view.indexOf(e)}indexAt(e){return this.view.indexAt(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(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 r of e)if(r<0||r>=this.length)throw new ListError(this.user,"Invalid index ".concat(r));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 ".concat(e));this.anchor.set([e])}getAnchor(){return this.anchor.get().at(0)}getAnchorElement(){const e=this.getAnchor();return typeof e>"u"?void 0:this.element(e)}setFocus(e,t){for(const r of e)if(r<0||r>=this.length)throw new ListError(this.user,"Invalid index ".concat(r));this.focus.set(e,t)}focusNext(e=1,t=!1,r,s){if(this.length===0)return;const a=this.focus.get(),l=this.findNextIndex(a.length>0?a[0]+e:0,t,s);l>-1&&this.setFocus([l],r)}focusPrevious(e=1,t=!1,r,s){if(this.length===0)return;const a=this.focus.get(),l=this.findPreviousIndex(a.length>0?a[0]-e:0,t,s);l>-1&&this.setFocus([l],r)}async focusNextPage(e,t){let r=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);r=r===0?0:r-1;const s=this.getFocus()[0];if(s!==r&&(s===void 0||r>s)){const a=this.findPreviousIndex(r,!1,t);a>-1&&s!==a?this.setFocus([a],e):this.setFocus([r],e)}else{const a=this.view.getScrollTop();let l=a+this.view.renderHeight;r>s&&(l-=this.view.elementHeight(r)),this.view.setScrollTop(l),this.view.getScrollTop()!==a&&(this.setFocus([]),await timeout(0),await this.focusNextPage(e,t))}}async focusPreviousPage(e,t,r=()=>0){let s;const a=r(),l=this.view.getScrollTop()+a;l===0?s=this.view.indexAt(l):s=this.view.indexAfter(l-1);const c=this.getFocus()[0];if(c!==s&&(c===void 0||c>=s)){const d=this.findNextIndex(s,!1,t);d>-1&&c!==d?this.setFocus([d],e):this.setFocus([s],e)}else{const d=l;this.view.setScrollTop(l-this.view.renderHeight-a),this.view.getScrollTop()+r()!==d&&(this.setFocus([]),await timeout(0),await this.focusPreviousPage(e,t,r))}}focusLast(e,t){if(this.length===0)return;const r=this.findPreviousIndex(this.length-1,!1,t);r>-1&&this.setFocus([r],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,r){if(this.length===0)return;const s=this.findNextIndex(e,!1,r);s>-1&&this.setFocus([s],t)}findNextIndex(e,t=!1,r){for(let s=0;s<this.length;s++){if(e>=this.length&&!t)return-1;if(e=e%this.length,!r||r(this.element(e)))return e;e++}return-1}findPreviousIndex(e,t=!1,r){for(let s=0;s<this.length;s++){if(e<0&&!t)return-1;if(e=(this.length+e%this.length)%this.length,!r||r(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,r=0){if(e<0||e>=this.length)throw new ListError(this.user,"Invalid index ".concat(e));const s=this.view.getScrollTop(),a=this.view.elementTop(e),l=this.view.elementHeight(e);if(isNumber$2(t)){const c=l-this.view.renderHeight+r;this.view.setScrollTop(c*clamp(t,0,1)+a-r)}else{const c=a+l,d=s+this.view.renderHeight;a<s+r&&c>=d||(a<s+r||c>=d&&l>=this.view.renderHeight?this.view.setScrollTop(a-r):c>=d&&this.view.setScrollTop(c-this.view.renderHeight))}}getRelativeTop(e,t=0){if(e<0||e>=this.length)throw new ListError(this.user,"Invalid index ".concat(e));const r=this.view.getScrollTop(),s=this.view.elementTop(e),a=this.view.elementHeight(e);if(s<r+t||s+a>r+this.view.renderHeight)return null;const l=a-this.view.renderHeight+t;return Math.abs((r+t-s)/l)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(e){return this.view.getElementDomId(e)}getElementTop(e){return this.view.elementTop(e)}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){return{indexes:e,elements:e.map(r=>this.view.element(r)),browserEvent:t}}_onFocusChange(){const e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var t;const e=this.focus.get();if(e.length>0){let r;(t=this.accessibilityProvider)!=null&&t.getActiveDescendantId&&(r=this.accessibilityProvider.getActiveDescendantId(this.view.element(e[0]))),this.view.domNode.setAttribute("aria-activedescendant",r||this.view.getElementDomId(e[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$2M([memoize],List.prototype,"onDidChangeFocus",null);__decorate$2M([memoize],List.prototype,"onDidChangeSelection",null);__decorate$2M([memoize],List.prototype,"onContextMenu",null);__decorate$2M([memoize],List.prototype,"onKeyDown",null);__decorate$2M([memoize],List.prototype,"onDidFocus",null);__decorate$2M([memoize],List.prototype,"onDidBlur",null);const $$l=$$m,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$2(e,$$l(".option-text")),t.detail=append$2(e,$$l(".option-detail")),t.decoratorRight=append$2(e,$$l(".option-decorator-right")),t}renderElement(e,t,r){const s=r,a=e.text,l=e.detail,c=e.decoratorRight,d=e.isDisabled;s.text.textContent=a,s.detail.textContent=l||"",s.decoratorRight.textContent=c||"",d?s.root.classList.add("option-disabled"):s.root.classList.remove("option-disabled")}disposeTemplate(e){}}const Ot=class Ot extends Disposable$1{constructor(e,t,r,s,a){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._selectionDetailsDisposables=this._register(new DisposableStore$1),this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=s,this.selectBoxOptions=a||Object.create(null),typeof this.selectBoxOptions.minBottomMargin!="number"?this.selectBoxOptions.minBottomMargin=Ot.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(r),this.selected=t||0,e&&this.setOptions(e,t),this.initStyleSheet()}setTitle(e){!this._hover&&e?this._hover=this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate("mouse"),this.selectElement,e)):this._hover&&this._hover.update(e)}getHeight(){return 22}getTemplateId(){return SELECT_OPTION_ENTRY_TEMPLATE_ID}constructSelectDropDown(e){this.contextViewProvider=e,this.selectDropDownContainer=$$m(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=append$2(this.selectDropDownContainer,$$l(".select-box-details-pane"));const t=append$2(this.selectDropDownContainer,$$l(".select-box-dropdown-container-width-control")),r=append$2(t,$$l(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",append$2(r,this.widthControlElement),this._dropDownPosition=0,this.styleElement=createStyleSheet(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(addDisposableListener(this.selectDropDownContainer,EventType$1.DRAG_START,s=>{EventHelper$1.stop(s,!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.setTitle(this.options[this.selected].text)})),this._register(addDisposableListener(this.selectElement,EventType$1.CLICK,t=>{EventHelper$1.stop(t),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(addDisposableListener(this.selectElement,EventType$1.MOUSE_DOWN,t=>{EventHelper$1.stop(t)}));let e;this._register(addDisposableListener(this.selectElement,"touchstart",t=>{e=this._isVisible})),this._register(addDisposableListener(this.selectElement,"touchend",t=>{EventHelper$1.stop(t),e?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(addDisposableListener(this.selectElement,EventType$1.KEY_DOWN,t=>{const r=new StandardKeyboardEvent(t);let s=!1;isMacintosh?(r.keyCode===18||r.keyCode===16||r.keyCode===10||r.keyCode===3)&&(s=!0):(r.keyCode===18&&r.altKey||r.keyCode===16&&r.altKey||r.keyCode===10||r.keyCode===3)&&(s=!0),s&&(this.showSelectDropDown(),EventHelper$1.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((r,s)=>{this.selectElement.add(this.createOption(r.text,s,r.isDisabled)),typeof r.description=="string"&&(this._hasDetails=!0)})),t!==void 0&&(this.select(t),this._currentSelection=this.selected)}setOptionsList(){var e;(e=this.selectList)==null||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.setTitle(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(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: ".concat(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: ".concat(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: ".concat(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 ".concat(this.styles.selectBorder," } ")),e.push(".monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ".concat(this.styles.selectBorder," } ")),e.push(".monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ".concat(this.styles.selectBorder," } "))):this.styles.selectListBorder&&(e.push(".monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ".concat(this.styles.selectListBorder," } ")),e.push(".monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ".concat(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: ".concat(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: ".concat(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 ".concat(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 ".concat(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("\n")}styleSelectElement(){var s,a,l;const e=(s=this.styles.selectBackground)!=null?s:"",t=(a=this.styles.selectForeground)!=null?a:"",r=(l=this.styles.selectBorder)!=null?l:"";this.selectElement.style.backgroundColor=e,this.selectElement.style.color=t,this.selectElement.style.borderColor=r}styleList(){var s,a;const e=(s=this.styles.selectBackground)!=null?s:"",t=asCssValueWithDefault(this.styles.selectListBackground,e);this.selectDropDownListContainer.style.backgroundColor=t,this.selectionDetailsPane.style.backgroundColor=t;const r=(a=this.styles.focusBorder)!=null?a:"";this.selectDropDownContainer.style.outlineColor=r,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(e,t,r){const s=document.createElement("option");return s.value=e,s.text=e,s.disabled=!!r,s}showSelectDropDown(){this.selectionDetailsPane.textContent="",!(!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:()=>{this.selectDropDownContainer.remove()}}}measureMaxDetailsHeight(){let e=0;return this.options.forEach((t,r)=>{this.updateDetail(r),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=getWindow$1(this.selectElement),r=getDomNodePagePosition(this.selectElement),s=getWindow$1(this.selectElement).getComputedStyle(this.selectElement),a=parseFloat(s.getPropertyValue("--dropdown-padding-top"))+parseFloat(s.getPropertyValue("--dropdown-padding-bottom")),l=t.innerHeight-r.top-r.height-(this.selectBoxOptions.minBottomMargin||0),c=r.top-Ot.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,d=this.selectElement.offsetWidth,u=this.setWidthControlElement(this.widthControlElement),g=Math.max(u,Math.round(d)).toString()+"px";this.selectDropDownContainer.style.width=g,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let f=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const m=this._hasDetails?this._cachedMaxDetailsHeight:0,_=f+a+m,v=Math.floor((l-a-m)/this.getHeight()),b=Math.floor((c-a-m)/this.getHeight());if(e)return r.top+r.height>t.innerHeight-22||r.top<Ot.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN||v<1&&b<1?!1:(v<Ot.DEFAULT_MINIMUM_VISIBLE_OPTIONS&&b>v&&this.options.length>v?(this._dropDownPosition=1,this.selectDropDownListContainer.remove(),this.selectionDetailsPane.remove(),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownListContainer.remove(),this.selectionDetailsPane.remove(),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(r.top+r.height>t.innerHeight-22||r.top<Ot.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN||this._dropDownPosition===0&&v<1||this._dropDownPosition===1&&b<1)return this.hideSelectDropDown(!0),!1;if(this._dropDownPosition===0){if(this._isVisible&&v+b<1)return this.hideSelectDropDown(!0),!1;_>l&&(f=v*this.getHeight())}else _>c&&(f=b*this.getHeight());return this.selectList.layout(f),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=f+a+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=f+a+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=g,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 r=0,s=0;this.options.forEach((a,l)=>{const c=a.detail?a.detail.length:0,d=a.decoratorRight?a.decoratorRight.length:0,u=a.text.length+c+d;u>s&&(r=l,s=u)}),e.textContent=this.options[r].text+(this.options[r].decoratorRight?this.options[r].decoratorRight+" ":""),t=getTotalWidth(e)}return t}createSelectList(e){if(this.selectList)return;this.selectDropDownListContainer=append$2(e,$$l(".select-box-dropdown-list-container")),this.listRenderer=new SelectListRenderer,this.selectList=this._register(new List("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:s=>{let a=s.text;return s.detail&&(a+=". ".concat(s.detail)),s.decoratorRight&&(a+=". ".concat(s.decoratorRight)),s.description&&(a+=". ".concat(s.description)),a},getWidgetAriaLabel:()=>localize(16,"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")),r=Event$1.chain(t.event,s=>s.filter(()=>this.selectList.length>0).map(a=>new StandardKeyboardEvent(a)));this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===3))(this.onEnter,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===2))(this.onEnter,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===9))(this.onEscape,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===16))(this.onUpArrow,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===18))(this.onDownArrow,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===12))(this.onPageDown,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===11))(this.onPageUp,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===14))(this.onHome,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode===13))(this.onEnd,this)),this._register(Event$1.chain(r,s=>s.filter(a=>a.keyCode>=21&&a.keyCode<=56||a.keyCode>=85&&a.keyCode<=113))(this.onCharacter,this)),this._register(addDisposableListener(this.selectList.getHTMLElement(),EventType$1.POINTER_UP,s=>this.onPointerUp(s))),this._register(this.selectList.onMouseOver(s=>typeof s.index<"u"&&this.selectList.setFocus([s.index]))),this._register(this.selectList.onDidChangeFocus(s=>this.onListFocus(s))),this._register(addDisposableListener(this.selectDropDownContainer,EventType$1.FOCUS_OUT,s=>{!this._isVisible||isAncestor$1(s.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$1.stop(e);const t=e.target;if(!t||t.classList.contains("slider"))return;const r=t.closest(".monaco-list-row");if(!r)return;const s=Number(r.getAttribute("data-index")),a=r.classList.contains("option-disabled");s>=0&&s<this.options.length&&!a&&(this.selected=s,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.setTitle(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 r=a=>{for(let l=0;l<a.childNodes.length;l++){const c=a.childNodes.item(l);(c.tagName&&c.tagName.toLowerCase())==="img"?c.remove():r(c)}},s=renderMarkdown$1({value:e,supportThemeIcons:!0},{actionHandler:t});return s.element.classList.add("select-box-description-markdown"),r(s.element),s}onListFocus(e){!this._isVisible||!this._hasDetails||this.updateDetail(e.indexes[0])}updateDetail(e){var a,l;this._selectionDetailsDisposables.clear(),this.selectionDetailsPane.textContent="";const t=this.options[e],r=(a=t==null?void 0:t.description)!=null?a:"",s=(l=t==null?void 0:t.descriptionIsMarkdown)!=null?l:!1;if(r){if(s){const c=t.descriptionMarkdownActionHandler,d=this._selectionDetailsDisposables.add(this.renderDescriptionMarkdown(r,c));this.selectionDetailsPane.appendChild(d.element)}else this.selectionDetailsPane.textContent=r;this.selectionDetailsPane.style.display="block"}else this.selectionDetailsPane.style.display="none";this._skipLayout=!0,this.contextViewProvider.layout(),this._skipLayout=!1}onEscape(e){EventHelper$1.stop(e),this.select(this._currentSelection),this.hideSelectDropDown(!0)}onEnter(e){EventHelper$1.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.setTitle(this.options[this.selected].text)),this.hideSelectDropDown(!0)}onDownArrow(e){if(this.selected<this.options.length-1){EventHelper$1.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$1.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$1.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$1.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$1.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$1.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 r=-1;for(let s=0;s<this.options.length-1;s++)if(r=(s+this.selected+1)%this.options.length,this.options[r].text.charAt(0).toUpperCase()===t&&!this.options[r].isDisabled){this.select(r),this.selectList.setFocus([r]),this.selectList.reveal(this.selectList.getFocus()[0]),EventHelper$1.stop(e);break}}dispose(){this.hideSelectDropDown(!1),super.dispose()}};Ot.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN=32,Ot.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN=2,Ot.DEFAULT_MINIMUM_VISIBLE_OPTIONS=3;let SelectBoxList=Ot;class SelectBoxNative extends Disposable$1{constructor(e,t,r,s){super(),this.selected=0,this.selectBoxOptions=s||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=r,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$1.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((r,s)=>{this.selectElement.add(this.createOption(r.text,s,r.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,r;this.selectElement&&(this.selectElement.style.backgroundColor=(e=this.styles.selectBackground)!=null?e:"",this.selectElement.style.color=(t=this.styles.selectForeground)!=null?t:"",this.selectElement.style.borderColor=(r=this.styles.selectBorder)!=null?r:"")}createOption(e,t,r){const s=document.createElement("option");return s.value=e,s.text=e,s.disabled=!!r,s}}class SelectBox extends Widget$1{constructor(e,t,r,s,a){super(),isMacintosh&&!(a!=null&&a.useCustomDrawn)?this.selectBoxDelegate=new SelectBoxNative(e,t,s,a):this.selectBoxDelegate=new SelectBoxList(e,t,r,s,a),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$1{get action(){return this._action}constructor(e,t,r={}){super(),this.options=r,this._context=e||this,this._action=t,t instanceof Action&&this._register(t.onDidChange(s=>{this.element&&this.handleActionChangeEvent(s)}))}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 r=this.options&&this.options.draggable;r&&(e.draggable=!0,isFirefox$1&&this._register(addDisposableListener(e,EventType$1.DRAG_START,s=>{var a;return(a=s.dataTransfer)==null?void 0:a.setData(DataTransfers.TEXT,this._action.label)}))),this._register(addDisposableListener(t,EventType.Tap,s=>this.onClick(s,!0))),this._register(addDisposableListener(t,EventType$1.MOUSE_DOWN,s=>{r||EventHelper$1.stop(s,!0),this._action.enabled&&s.button===0&&t.classList.add("active")})),isMacintosh&&this._register(addDisposableListener(t,EventType$1.CONTEXT_MENU,s=>{s.button===0&&s.ctrlKey===!0&&this.onClick(s)})),this._register(addDisposableListener(t,EventType$1.CLICK,s=>{EventHelper$1.stop(s,!0),this.options&&this.options.isMenu||this.onClick(s)})),this._register(addDisposableListener(t,EventType$1.DBLCLICK,s=>{EventHelper$1.stop(s,!0)})),[EventType$1.MOUSE_UP,EventType$1.MOUSE_OUT].forEach(s=>{this._register(addDisposableListener(t,s,a=>{EventHelper$1.stop(a),t.classList.remove("active")}))})}onClick(e,t=!1){var s;EventHelper$1.stop(e,!0);const r=isUndefinedOrNull(this._context)?(s=this.options)!=null&&s.useEventAsContext?e:{preserveFocus:t}:this._context;this.actionRunner.run(this._action,r)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(e){this.element&&(this.element.tabIndex=e?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}getHoverContents(){return this.getTooltip()}updateTooltip(){var t,r;if(!this.element)return;const e=(t=this.getHoverContents())!=null?t:"";if(this.updateAriaLabel(),!this.customHover&&e!==""){const s=(r=this.options.hoverDelegate)!=null?r:getDefaultHoverDelegate("element");this.customHover=this._store.add(getBaseLayerHoverDelegate().setupManagedHover(s,this.element,e))}else this.customHover&&this.customHover.update(e)}updateAriaLabel(){var e;if(this.element){const t=(e=this.getTooltip())!=null?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,r){r={...r,icon:r.icon!==void 0?r.icon:!1,label:r.label!==void 0?r.label:!0},super(e,t,r),this.options=r,this.cssClass=""}render(e){super.render(e),assertType(this.element);const t=document.createElement("a");if(t.classList.add("action-label"),t.setAttribute("role",this.getDefaultAriaRole()),this.label=t,this.element.appendChild(t),this.options.label&&this.options.keybinding&&!this.options.keybindingNotRenderedWithLabel){const r=document.createElement("span");r.classList.add("keybinding"),r.textContent=this.options.keybinding,this.element.appendChild(r)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===Separator.ID?"presentation":this.options.isMenu?"menuitem":this.options.isTabList?"tab":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(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.action.label&&(e=this.action.label,this.options.keybinding&&(e=localize(0,"{0} ({1})",e,this.options.keybinding))),e!=null?e:void 0}updateClass(){var e;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):(e=this.label)==null||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.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),(t=this.element)==null||t.classList.add("disabled"))}updateAriaLabel(){var e;if(this.label){const t=(e=this.getTooltip())!=null?e:"";this.label.setAttribute("aria-label",t)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle("checked",this.action.checked),this.options.isTabList?this.label.setAttribute("aria-selected",this.action.checked?"true":"false"):(this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox"))):(this.label.classList.remove("checked"),this.label.removeAttribute(this.options.isTabList?"aria-selected":"aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}class SelectActionViewItem extends BaseActionViewItem{constructor(e,t,r,s,a,l,c){super(e,t),this.selectBox=new SelectBox(r,s,a,l,c),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.focus()}blur(){var e;(e=this.selectBox)==null||e.blur()}render(e){this.selectBox.render(e)}}class ActionBar extends Disposable$1{get onDidBlur(){return this._onDidBlur.event}get onDidCancel(){return this._onDidCancel.event}get onDidRun(){return this._onDidRun.event}get onWillRun(){return this._onWillRun.event}constructor(e,t={}){var a,l,c,d,u,g,f;super(),this._actionRunnerDisposables=this._register(new DisposableStore$1),this.viewItemDisposables=this._register(new DisposableMap),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new Emitter$1),this._onDidCancel=this._register(new Emitter$1({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.cancelHasListener=!1,this._onDidRun=this._register(new Emitter$1),this._onWillRun=this._register(new Emitter$1),this.options=t,this._context=(a=t.context)!=null?a:null,this._orientation=(l=this.options.orientation)!=null?l:0,this._triggerKeys={keyDown:(d=(c=this.options.triggerKeys)==null?void 0:c.keyDown)!=null?d:!1,keys:(g=(u=this.options.triggerKeys)==null?void 0:u.keys)!=null?g:[3,10]},this._hoverDelegate=(f=t.hoverDelegate)!=null?f:this._register(createInstantHoverDelegate()),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new ActionRunner,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(m=>this._onDidRun.fire(m))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(m=>this._onWillRun.fire(m))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar";let r,s;switch(this._orientation){case 0:r=[15],s=[17];break;case 1:r=[16],s=[18],this.domNode.className+=" vertical";break}this._register(addDisposableListener(this.domNode,EventType$1.KEY_DOWN,m=>{const _=new StandardKeyboardEvent(m);let v=!0;const b=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;r&&(_.equals(r[0])||_.equals(r[1]))?v=this.focusPrevious():s&&(_.equals(s[0])||_.equals(s[1]))?v=this.focusNext():_.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():_.equals(14)?v=this.focusFirst():_.equals(13)?v=this.focusLast():_.equals(2)&&b instanceof BaseActionViewItem&&b.trapsArrowNavigation?v=this.focusNext(void 0,!0):this.isTriggerKeyEvent(_)?this._triggerKeys.keyDown?this.doTrigger(_):this.triggerKeyDown=!0:v=!1,v&&(_.preventDefault(),_.stopPropagation())})),this._register(addDisposableListener(this.domNode,EventType$1.KEY_UP,m=>{const _=new StandardKeyboardEvent(m);this.isTriggerKeyEvent(_)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(_)),_.preventDefault(),_.stopPropagation()):(_.equals(2)||_.equals(1026)||_.equals(16)||_.equals(18)||_.equals(15)||_.equals(17))&&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()>=1?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(r=>r instanceof BaseActionViewItem&&r.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(r=>{t=t||e.equals(r)}),t}updateFocusedItem(){var e,t;for(let r=0;r<this.actionsList.children.length;r++){const s=this.actionsList.children[r];if(isAncestor$1(getActiveElement(),s)){this.focusedItem=r,(t=(e=this.viewItems[this.focusedItem])==null?void 0:e.showHover)==null||t.call(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?void 0:t.action;if(isHTMLElement(e)){for(;e.parentElement!==this.actionsList;){if(!e.parentElement)return;e=e.parentElement}for(let r=0;r<this.actionsList.childNodes.length;r++)if(this.actionsList.childNodes[r]===e)return this.viewItems[r].action}}push(e,t={}){const r=Array.isArray(e)?e:[e];let s=isNumber$2(t.index)?t.index:null;if(r.forEach(a=>{const l=document.createElement("li");l.className="action-item",l.setAttribute("role","presentation");let c;const d={hoverDelegate:this._hoverDelegate,...t,isTabList:this.options.ariaRole==="tablist"};this.options.actionViewItemProvider&&(c=this.options.actionViewItemProvider(a,d)),c||(c=new ActionViewItem(this.context,a,d)),this.options.allowContextMenu||this.viewItemDisposables.set(c,addDisposableListener(l,EventType$1.CONTEXT_MENU,u=>{EventHelper$1.stop(u,!0)})),c.actionRunner=this._actionRunner,c.setActionContext(this.context),c.render(l),s===null||s<0||s>=this.actionsList.children.length?(this.actionsList.appendChild(l),this.viewItems.push(c)):(this.actionsList.insertBefore(l,this.actionsList.children[s]),this.viewItems.splice(s,0,c),s++)}),this.focusable){let a=!1;for(const l of this.viewItems){if(!(l instanceof BaseActionViewItem))continue;let c;a||l.action.id===Separator.ID||!l.isEnabled()&&this.options.focusOnlyEnabledItems?c=!1:c=!0,c?(l.setFocusable(!0),a=!0):l.setFocusable(!1)}}typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}getWidth(e){if(e>=0&&e<this.actionsList.children.length){const t=this.actionsList.children.item(e);if(t)return t.clientWidth}return 0}pull(e){e>=0&&e<this.viewItems.length&&(this.actionsList.childNodes[e].remove(),this.viewItemDisposables.deleteAndDispose(this.viewItems[e]),dispose(this.viewItems.splice(e,1)),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,r;if(e===void 0?t=!0:typeof e=="number"?r=e:typeof e=="boolean"&&(t=e),t&&typeof this.focusedItem>"u"){const s=this.viewItems.findIndex(a=>a.isEnabled());this.focusedItem=s===-1?void 0:s,this.updateFocus(void 0,void 0,!0)}else r!==void 0&&(this.focusedItem=r),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,t){if(typeof this.focusedItem>"u")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const r=this.focusedItem;let s;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=r,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,s=this.viewItems[this.focusedItem]}while(this.focusedItem!==r&&(this.options.focusOnlyEnabledItems&&!s.isEnabled()||s.action.id===Separator.ID));return this.updateFocus(void 0,void 0,t),!0}focusPrevious(e){if(typeof this.focusedItem>"u")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let r;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}r=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!r.isEnabled()||r.action.id===Separator.ID));return this.updateFocus(!0),!0}updateFocus(e,t,r=!1){var a,l;typeof this.focusedItem>"u"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&((a=this.viewItems[this.previouslyFocusedItem])==null||a.blur());const s=this.focusedItem!==void 0?this.viewItems[this.focusedItem]:void 0;if(s){let c=!0;isFunction$2(s.focus)||(c=!1),this.options.focusOnlyEnabledItems&&isFunction$2(s.isEnabled)&&!s.isEnabled()&&(c=!1),s.action.id===Separator.ID&&(c=!1),c?(r||this.previouslyFocusedItem!==this.focusedItem)&&(s.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0),c&&((l=s.showHover)==null||l.call(s))}}doTrigger(e){if(typeof this.focusedItem>"u")return;const t=this.viewItems[this.focusedItem];if(t instanceof BaseActionViewItem){const r=t._context===null||t._context===void 0?e:t._context;this.run(t._action,r)}}async run(e,t){await this._actionRunner.run(e,t)}dispose(){this._context=void 0,this.viewItems=dispose(this.viewItems),this.getContainer().remove(),super.dispose()}}function joinCombine(o,e,t,r){if(o.length===0)return e;if(e.length===0)return o;const s=[];let a=0,l=0;for(;a<o.length&&l<e.length;){const c=o[a],d=e[l],u=t(c),g=t(d);u<g?(s.push(c),a++):u>g?(s.push(d),l++):(s.push(r(c,d)),a++,l++)}for(;a<o.length;)s.push(o[a]),a++;for(;l<e.length;)s.push(e[l]),l++;return s}function applyObservableDecorations(o,e){const t=new DisposableStore$1,r=o.createDecorationsCollection();return t.add(autorunOpts({debugName:()=>"Apply decorations from ".concat(e.debugName)},s=>{const a=e.read(s);r.set(a)})),t.add({dispose:()=>{r.clear()}}),t}function appendRemoveOnDispose(o,e){return o.appendChild(e),toDisposable(()=>{e.remove()})}function prependRemoveOnDispose(o,e){return o.prepend(e),toDisposable(()=>{e.remove()})}class ObservableElementSizeObserver extends Disposable$1{get width(){return this._width}get height(){return this._height}get automaticLayout(){return this._automaticLayout}constructor(e,t){super(),this._automaticLayout=!1,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(r=>transaction(s=>{this._width.set(this.elementSizeObserver.getWidth(),s),this._height.set(this.elementSizeObserver.getHeight(),s)})))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){this._automaticLayout=e,e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function animatedObservable(o,e,t){let r=e.get(),s=r,a=r;const l=observableValue("animatedValue",r);let c=-1;const d=300;let u;t.add(autorunHandleChanges({changeTracker:{createChangeSummary:()=>({animate:!1}),handleChange:(f,m)=>(f.didChange(e)&&(m.animate=m.animate||f.change),!0)}},(f,m)=>{u!==void 0&&(o.cancelAnimationFrame(u),u=void 0),s=a,r=e.read(f),c=Date.now()-(m.animate?0:d),g()}));function g(){const f=Date.now()-c;a=Math.floor(easeOutExpo$1(f,s,r-s,d)),f<d?u=o.requestAnimationFrame(g):a=r,l.set(a,void 0)}return l}function easeOutExpo$1(o,e,t,r){return o===r?e+t:t*(-Math.pow(2,-10*o/r)+1)+e}class ViewZoneOverlayWidget extends Disposable$1{constructor(e,t,r){super(),this._register(new ManagedOverlayWidget(e,r)),this._register(applyStyle(r,{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=r=>{this._actualTop.set(r,void 0)},this.onComputedHeight=r=>{this._actualHeight.set(r,void 0)}}}const Io=class Io{constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId="managedOverlayWidget-".concat(Io._counter++),this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}};Io._counter=0;let ManagedOverlayWidget=Io;function applyStyle(o,e){return autorun(t=>{for(let[r,s]of Object.entries(e))s&&typeof s=="object"&&"read"in s&&(s=s.read(t)),typeof s=="number"&&(s="".concat(s,"px")),r=r.replace(/[A-Z]/g,a=>"-"+a.toLowerCase()),o.style[r]=s})}function applyViewZones(o,e,t,r){const s=new DisposableStore$1,a=[];return s.add(autorunWithStore((l,c)=>{const d=e.read(l),u=new Map,g=new Map;t&&t(!0),o.changeViewZones(f=>{for(const m of a)f.removeZone(m),r==null||r.delete(m);a.length=0;for(const m of d){const _=f.addZone(m);m.setZoneId&&m.setZoneId(_),a.push(_),r==null||r.add(_),u.set(m,_)}}),t&&t(!1),c.add(autorunHandleChanges({changeTracker:{createChangeSummary(){return{zoneIds:[]}},handleChange(f,m){const _=g.get(f.changedObservable);return _!==void 0&&m.zoneIds.push(_),!0}}},(f,m)=>{for(const _ of d)_.onChange&&(g.set(_.onChange,u.get(_)),_.onChange.read(f));t&&t(!0),o.changeViewZones(_=>{for(const v of m.zoneIds)_.layoutZone(v)}),t&&t(!1)}))})),s.add({dispose(){t&&t(!0),o.changeViewZones(l=>{for(const c of a)l.removeZone(c)}),r==null||r.clear(),t&&t(!1)}}),s}class DisposableCancellationTokenSource extends CancellationTokenSource$1{dispose(){super.dispose(!0)}}function translatePosition(o,e){const t=findLast$1(e,s=>s.original.startLineNumber<=o.lineNumber);if(!t)return Range$2.fromPositions(o);if(t.original.endLineNumberExclusive<=o.lineNumber){const s=o.lineNumber-t.original.endLineNumberExclusive+t.modified.endLineNumberExclusive;return Range$2.fromPositions(new Position$1(s,o.column))}if(!t.innerChanges)return Range$2.fromPositions(new Position$1(t.modified.startLineNumber,1));const r=findLast$1(t.innerChanges,s=>s.originalRange.getStartPosition().isBeforeOrEqual(o));if(!r){const s=o.lineNumber-t.original.startLineNumber+t.modified.startLineNumber;return Range$2.fromPositions(new Position$1(s,o.column))}if(r.originalRange.containsPosition(o))return r.modifiedRange;{const s=lengthBetweenPositions(r.originalRange.getEndPosition(),o);return Range$2.fromPositions(s.addToPosition(r.modifiedRange.getEndPosition()))}}function lengthBetweenPositions(o,e){return o.lineNumber===e.lineNumber?new TextLength(0,e.column-o.column):new TextLength(e.lineNumber-o.lineNumber,e.column-1)}function filterWithPrevious(o,e){let t;return o.filter(r=>{const s=e(r,t);return t=r,s})}class RefCounted{static create(e,t=void 0){return new BaseRefCounted(e,e,t)}static createWithDisposable(e,t,r=void 0){const s=new DisposableStore$1;return s.add(t),s.add(e),new BaseRefCounted(e,s,r)}}class BaseRefCounted extends RefCounted{constructor(e,t,r){super(),this.object=e,this._disposable=t,this._debugOwner=r,this._refCount=1,this._isDisposed=!1,this._owners=[],r&&this._addOwner(r)}_addOwner(e){e&&this._owners.push(e)}createNewRef(e){return this._refCount++,e&&this._addOwner(e),new ClonedRefCounted(this,e)}dispose(){this._isDisposed||(this._isDisposed=!0,this._decreaseRefCount(this._debugOwner))}_decreaseRefCount(e){if(this._refCount--,this._refCount===0&&this._disposable.dispose(),e){const t=this._owners.indexOf(e);t!==-1&&this._owners.splice(t,1)}}}class ClonedRefCounted extends RefCounted{constructor(e,t){super(),this._base=e,this._debugOwner=t,this._isDisposed=!1}get object(){return this._base.object}createNewRef(e){return this._base.createNewRef(e)}dispose(){this._isDisposed||(this._isDisposed=!0,this._base._decreaseRefCount(this._debugOwner))}}class LineRangeMapping{static inverse(e,t,r){const s=[];let a=1,l=1;for(const d of e){const u=new LineRangeMapping(new LineRange(a,d.original.startLineNumber),new LineRange(l,d.modified.startLineNumber));u.modified.isEmpty||s.push(u),a=d.original.endLineNumberExclusive,l=d.modified.endLineNumberExclusive}const c=new LineRangeMapping(new LineRange(a,t+1),new LineRange(l,r+1));return c.modified.isEmpty||s.push(c),s}static clip(e,t,r){const s=[];for(const a of e){const l=a.original.intersect(t),c=a.modified.intersect(r);l&&!l.isEmpty&&c&&!c.isEmpty&&s.push(new LineRangeMapping(l,c))}return s}constructor(e,t){this.original=e,this.modified=t}toString(){return"{".concat(this.original.toString(),"->").concat(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))}toRangeMapping(){const e=this.original.toInclusiveRange(),t=this.modified.toInclusiveRange();if(e&&t)return new RangeMapping(e,t);if(this.original.startLineNumber===1||this.modified.startLineNumber===1){if(!(this.modified.startLineNumber===1&&this.original.startLineNumber===1))throw new BugIndicatingError("not a valid diff");return new RangeMapping(new Range$2(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new Range$2(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1))}else return new RangeMapping(new Range$2(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),new Range$2(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER,this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER))}toRangeMapping2(e,t){if(isValidLineNumber(this.original.endLineNumberExclusive,e)&&isValidLineNumber(this.modified.endLineNumberExclusive,t))return new RangeMapping(new Range$2(this.original.startLineNumber,1,this.original.endLineNumberExclusive,1),new Range$2(this.modified.startLineNumber,1,this.modified.endLineNumberExclusive,1));if(!this.original.isEmpty&&!this.modified.isEmpty)return new RangeMapping(Range$2.fromPositions(new Position$1(this.original.startLineNumber,1),normalizePosition(new Position$1(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),Range$2.fromPositions(new Position$1(this.modified.startLineNumber,1),normalizePosition(new Position$1(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));if(this.original.startLineNumber>1&&this.modified.startLineNumber>1)return new RangeMapping(Range$2.fromPositions(normalizePosition(new Position$1(this.original.startLineNumber-1,Number.MAX_SAFE_INTEGER),e),normalizePosition(new Position$1(this.original.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),e)),Range$2.fromPositions(normalizePosition(new Position$1(this.modified.startLineNumber-1,Number.MAX_SAFE_INTEGER),t),normalizePosition(new Position$1(this.modified.endLineNumberExclusive-1,Number.MAX_SAFE_INTEGER),t)));throw new BugIndicatingError}}function normalizePosition(o,e){if(o.lineNumber<1)return new Position$1(1,1);if(o.lineNumber>e.length)return new Position$1(e.length,e[e.length-1].length+1);const t=e[o.lineNumber-1];return o.column>t.length+1?new Position$1(o.lineNumber,t.length+1):o}function isValidLineNumber(o,e){return o>=1&&o<=e.length}class DetailedLineRangeMapping extends LineRangeMapping{static fromRangeMappings(e){const t=LineRange.join(e.map(s=>LineRange.fromRangeInclusive(s.originalRange))),r=LineRange.join(e.map(s=>LineRange.fromRangeInclusive(s.modifiedRange)));return new DetailedLineRangeMapping(t,r,e)}constructor(e,t,r){super(e,t),this.innerChanges=r}flip(){var e;return new DetailedLineRangeMapping(this.modified,this.original,(e=this.innerChanges)==null?void 0:e.map(t=>t.flip()))}withInnerChangesFromLineRanges(){return new DetailedLineRangeMapping(this.original,this.modified,[this.toRangeMapping()])}}class RangeMapping{static fromEdit(e){const t=e.getNewRanges();return e.replacements.map((s,a)=>new RangeMapping(s.range,t[a]))}static assertSorted(e){for(let t=1;t<e.length;t++){const r=e[t-1],s=e[t];if(!(r.originalRange.getEndPosition().isBeforeOrEqual(s.originalRange.getStartPosition())&&r.modifiedRange.getEndPosition().isBeforeOrEqual(s.modifiedRange.getStartPosition())))throw new BugIndicatingError("Range mappings must be sorted")}}constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return"{".concat(this.originalRange.toString(),"->").concat(this.modifiedRange.toString(),"}")}flip(){return new RangeMapping(this.modifiedRange,this.originalRange)}toTextEdit(e){const t=e.getValueOfRange(this.modifiedRange);return new TextReplacement(this.originalRange,t)}}function lineRangeMappingFromRangeMappings(o,e,t,r=!1){const s=[];for(const a of groupAdjacentBy(o.map(l=>getLineRangeMapping(l,e,t)),(l,c)=>l.original.intersectsOrTouches(c.original)||l.modified.intersectsOrTouches(c.modified))){const l=a[0],c=a[a.length-1];s.push(new DetailedLineRangeMapping(l.original.join(c.original),l.modified.join(c.modified),a.map(d=>d.innerChanges[0])))}return assertFn(()=>!r&&s.length>0&&(s[0].modified.startLineNumber!==s[0].original.startLineNumber||t.length.lineCount-s[s.length-1].modified.endLineNumberExclusive!==e.length.lineCount-s[s.length-1].original.endLineNumberExclusive)?!1:checkAdjacentItems(s,(a,l)=>l.original.startLineNumber-a.original.endLineNumberExclusive===l.modified.startLineNumber-a.modified.endLineNumberExclusive&&a.original.endLineNumberExclusive<l.original.startLineNumber&&a.modified.endLineNumberExclusive<l.modified.startLineNumber)),s}function getLineRangeMapping(o,e,t){let r=0,s=0;o.modifiedRange.endColumn===1&&o.originalRange.endColumn===1&&o.originalRange.startLineNumber+r<=o.originalRange.endLineNumber&&o.modifiedRange.startLineNumber+r<=o.modifiedRange.endLineNumber&&(s=-1),o.modifiedRange.startColumn-1>=t.getLineLength(o.modifiedRange.startLineNumber)&&o.originalRange.startColumn-1>=e.getLineLength(o.originalRange.startLineNumber)&&o.originalRange.startLineNumber<=o.originalRange.endLineNumber+s&&o.modifiedRange.startLineNumber<=o.modifiedRange.endLineNumber+s&&(r=1);const a=new LineRange(o.originalRange.startLineNumber+r,o.originalRange.endLineNumber+1+s),l=new LineRange(o.modifiedRange.startLineNumber+r,o.modifiedRange.endLineNumber+1+s);return new DetailedLineRangeMapping(a,l,[o])}const Extensions$2={IconContribution:"base.contributions.icons"};var IconContribution;(function(o){function e(t,r){let s=t.defaults;for(;ThemeIcon.isThemeIcon(s);){const a=iconRegistry.getIcon(s.id);if(!a)return;s=a.defaults}return s}o.getDefinition=e})(IconContribution||(IconContribution={}));var IconFontDefinition;(function(o){function e(r){return{weight:r.weight,style:r.style,src:r.src.map(s=>({format:s.format,location:s.location.toString()}))}}o.toJSONObject=e;function t(r){const s=a=>isString$2(a)?a:void 0;if(r&&Array.isArray(r.src)&&r.src.every(a=>isString$2(a.format)&&isString$2(a.location)))return{weight:s(r.weight),style:s(r.style),src:r.src.map(a=>({format:a.format,location:URI.parse(a.location)}))}}o.fromJSONObject=t})(IconFontDefinition||(IconFontDefinition={}));const fontIdRegex=/^([\w_-]+)$/,fontIdErrorMessage=localize(2024,"The font ID must only contain letters, numbers, underscores and dashes.");class IconRegistry extends Disposable$1{constructor(){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:localize(2025,"The id of the font to use. If not set, the font that is defined first is used."),pattern:fontIdRegex.source,patternErrorMessage:fontIdErrorMessage},fontCharacter:{type:"string",description:localize(2026,"The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:"^".concat(ThemeIcon.iconNameExpression,"$"),enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,r,s){const a=this.iconsById[e];if(a){if(r&&!a.description){a.description=r,this.iconSchema.properties[e].markdownDescription="".concat(r," $(").concat(e,")");const d=this.iconReferenceSchema.enum.indexOf(e);d!==-1&&(this.iconReferenceSchema.enumDescriptions[d]=r),this._onDidChange.fire()}return a}const l={id:e,description:r,defaults:t,deprecationMessage:s};this.iconsById[e]=l;const c={$ref:"#/definitions/icons"};return s&&(c.deprecationMessage=s),r&&(c.markdownDescription="".concat(r,": $(").concat(e,")")),this.iconSchema.properties[e]=c,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(r||""),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=(a,l)=>a.id.localeCompare(l.id),t=a=>{for(;ThemeIcon.isThemeIcon(a.defaults);)a=this.iconsById[a.defaults.id];return"codicon codicon-".concat(a?a.id:"")},r=[];r.push("| preview | identifier | default codicon ID | description"),r.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const s=Object.keys(this.iconsById).map(a=>this.iconsById[a]);for(const a of s.filter(l=>!!l.description).sort(e))r.push('|<i class="'.concat(t(a),'"></i>|').concat(a.id,"|").concat(ThemeIcon.isThemeIcon(a.defaults)?a.defaults.id:a.id,"|").concat(a.description||"","|"));r.push("| preview | identifier "),r.push("| ----------- | --------------------------------- |");for(const a of s.filter(l=>!ThemeIcon.isThemeIcon(l.defaults)).sort(e))r.push('|<i class="'.concat(t(a),'"></i>|').concat(a.id,"|"));return r.join("\n")}}const iconRegistry=new IconRegistry;Registry.add(Extensions$2.IconContribution,iconRegistry);function registerIcon(o,e,t,r){return iconRegistry.registerIcon(o,e,t,r)}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(2027,"Icon for the close action in widgets."));registerIcon("goto-previous-location",Codicon.arrowUp,localize(2028,"Icon for goto previous editor location."));registerIcon("goto-next-location",Codicon.arrowDown,localize(2029,"Icon for goto next editor location."));ThemeIcon.modify(Codicon.sync,"spin");ThemeIcon.modify(Codicon.loading,"spin");var __decorate$2L=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2E=function(o,e){return function(t,r){e(t,r,o)}};const accessibleDiffViewerInsertIcon=registerIcon("diff-review-insert",Codicon.add,localize(97,"Icon for 'Insert' in accessible diff viewer.")),accessibleDiffViewerRemoveIcon=registerIcon("diff-review-remove",Codicon.remove,localize(98,"Icon for 'Remove' in accessible diff viewer.")),accessibleDiffViewerCloseIcon=registerIcon("diff-review-close",Codicon.close,localize(99,"Icon for 'Close' in accessible diff viewer."));var pr;let AccessibleDiffViewer=(pr=class extends Disposable$1{constructor(e,t,r,s,a,l,c,d,u){super(),this._parentNode=e,this._visible=t,this._setVisible=r,this._canClose=s,this._width=a,this._height=l,this._diffs=c,this._models=d,this._instantiationService=u,this._state=derived(this,g=>{const f=this._visible.read(g);if(this._parentNode.style.visibility=f?"visible":"hidden",!f)return null;const m=g.store.add(this._instantiationService.createInstance(ViewModel,this._diffs,this._models,this._setVisible,this._canClose)),_=g.store.add(this._instantiationService.createInstance(View,this._parentNode,m,this._width,this._height,this._models));return{model:m,view:_}}).recomputeInitiallyAndOnChange(this._store)}next(){transaction(e=>{const t=this._visible.get();this._setVisible(!0,e),t&&this._state.get().model.nextGroup(e)})}prev(){transaction(e=>{this._setVisible(!0,e),this._state.get().model.previousGroup(e)})}close(){transaction(e=>{this._setVisible(!1,e)})}},pr._ttPolicy=createTrustedTypesPolicy$1("diffReview",{createHTML:e=>e}),pr);AccessibleDiffViewer=__decorate$2L([__param$2E(8,IInstantiationService)],AccessibleDiffViewer);let ViewModel=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._diffs=e,this._models=t,this._setVisible=r,this.canClose=s,this._accessibilitySignalService=a,this._groups=observableValue(this,[]),this._currentGroupIdx=observableValue(this,0),this._currentElementIdx=observableValue(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((l,c)=>this._groups.read(c)[l]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((l,c)=>{var d;return(d=this.currentGroup.read(c))==null?void 0:d.lines[l]}),this._register(autorun(l=>{const c=this._diffs.read(l);if(!c){this._groups.set([],void 0);return}const d=computeViewElementGroups(c,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());transaction(u=>{const g=this._models.getModifiedPosition();if(g){const f=d.findIndex(m=>(g==null?void 0:g.lineNumber)<m.range.modified.endLineNumberExclusive);f!==-1&&this._currentGroupIdx.set(f,u)}this._groups.set(d,u)})})),this._register(autorun(l=>{const c=this.currentElement.read(l);(c==null?void 0:c.type)===LineType.Deleted?this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):(c==null?void 0:c.type)===LineType.Added&&this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register(autorun(l=>{var d;const c=this.currentElement.read(l);if(c&&c.type!==LineType.Header){const u=(d=c.modifiedLineNumber)!=null?d:c.diff.modified.startLineNumber;this._models.modifiedSetSelection(Range$2.fromPositions(new Position$1(u,1)))}}))}_goToGroupDelta(e,t){const r=this.groups.get();!r||r.length<=1||subtransaction(t,s=>{this._currentGroupIdx.set(OffsetRange.ofLength(r.length).clipCyclic(this._currentGroupIdx.get()+e),s),this._currentElementIdx.set(0,s)})}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(r=>{this._currentElementIdx.set(OffsetRange.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),r)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){const t=this.currentGroup.get();if(!t)return;const r=t.lines.indexOf(e);r!==-1&&transaction(s=>{this._currentElementIdx.set(r,s)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const e=this.currentElement.get();e&&(e.type===LineType.Deleted?this._models.originalReveal(Range$2.fromPositions(new Position$1(e.originalLineNumber,1))):this._models.modifiedReveal(e.type!==LineType.Header?Range$2.fromPositions(new Position$1(e.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};ViewModel=__decorate$2L([__param$2E(4,IAccessibilitySignalService)],ViewModel);const viewElementGroupLineMargin=3;function computeViewElementGroups(o,e,t){const r=[];for(const s of groupAdjacentBy(o,(a,l)=>l.modified.startLineNumber-a.modified.endLineNumberExclusive<2*viewElementGroupLineMargin)){const a=[];a.push(new HeaderViewElement);const l=new LineRange(Math.max(1,s[0].original.startLineNumber-viewElementGroupLineMargin),Math.min(s[s.length-1].original.endLineNumberExclusive+viewElementGroupLineMargin,e+1)),c=new LineRange(Math.max(1,s[0].modified.startLineNumber-viewElementGroupLineMargin),Math.min(s[s.length-1].modified.endLineNumberExclusive+viewElementGroupLineMargin,t+1));forEachAdjacent(s,(g,f)=>{const m=new LineRange(g?g.original.endLineNumberExclusive:l.startLineNumber,f?f.original.startLineNumber:l.endLineNumberExclusive),_=new LineRange(g?g.modified.endLineNumberExclusive:c.startLineNumber,f?f.modified.startLineNumber:c.endLineNumberExclusive);m.forEach(v=>{a.push(new UnchangedLineViewElement(v,_.startLineNumber+(v-m.startLineNumber)))}),f&&(f.original.forEach(v=>{a.push(new DeletedLineViewElement(f,v))}),f.modified.forEach(v=>{a.push(new AddedLineViewElement(f,v))}))});const d=s[0].modified.join(s[s.length-1].modified),u=s[0].original.join(s[s.length-1].original);r.push(new ViewElementGroup(new LineRangeMapping(d,u),a))}return r}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$1{constructor(e,t,r,s,a,l){super(),this._element=e,this._model=t,this._width=r,this._height=s,this._models=a,this._languageService=l,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";const c=document.createElement("div");c.className="diff-review-actions",this._actionBar=this._register(new ActionBar(c)),this._register(autorun(d=>{this._actionBar.clear(),this._model.canClose.read(d)&&this._actionBar.push(toAction({id:"diffreview.close",label:localize(100,"Close"),class:"close-diff-review "+ThemeIcon.asClassName(accessibleDiffViewerCloseIcon),enabled:!0,run:async()=>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(),c),this._register(autorun(d=>{this._height.read(d),this._width.read(d),this._scrollbar.scanDomNode()})),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((d,u)=>{this._model.currentGroup.read(d),this._render(u)})),this._register(addStandardDisposableListener(this.domNode,"keydown",d=>{(d.equals(18)||d.equals(2066)||d.equals(530))&&(d.preventDefault(),this._model.goToNextLine()),(d.equals(16)||d.equals(2064)||d.equals(528))&&(d.preventDefault(),this._model.goToPreviousLine()),(d.equals(9)||d.equals(2057)||d.equals(521)||d.equals(1033))&&(d.preventDefault(),this._model.close()),(d.equals(10)||d.equals(3))&&(d.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(e){const t=this._models.getOriginalOptions(),r=this._models.getModifiedOptions(),s=document.createElement("div");s.className="diff-review-table",s.setAttribute("role","list"),s.setAttribute("aria-label",localize(101,"Accessible Diff Viewer. Use arrow up and down to navigate.")),applyFontInfo(s,r.get(59)),reset(this._content,s);const a=this._models.getOriginalModel(),l=this._models.getModifiedModel();if(!a||!l)return;const c=a.getOptions(),d=l.getOptions(),u=r.get(75),g=this._model.currentGroup.get();for(const f of(g==null?void 0:g.lines)||[]){if(!g)break;let m;if(f.type===LineType.Header){const v=document.createElement("div");v.className="diff-review-row",v.setAttribute("role","listitem");const b=g.range,C=this._model.currentGroupIndex.get(),y=this._model.groups.get().length,S=L=>L===0?localize(102,"no lines changed"):L===1?localize(103,"1 line changed"):localize(104,"{0} lines changed",L),w=S(b.original.length),E=S(b.modified.length);v.setAttribute("aria-label",localize(105,"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",C+1,y,b.original.startLineNumber,w,b.modified.startLineNumber,E));const x=document.createElement("div");x.className="diff-review-cell diff-review-summary",x.appendChild(document.createTextNode("".concat(C+1,"/").concat(y,": @@ -").concat(b.original.startLineNumber,",").concat(b.original.length," +").concat(b.modified.startLineNumber,",").concat(b.modified.length," @@"))),v.appendChild(x),m=v}else m=this._createRow(f,u,this._width.get(),t,a,c,r,l,d);s.appendChild(m);const _=derived(v=>this._model.currentElement.read(v)===f);e.add(autorun(v=>{const b=_.read(v);m.tabIndex=b?0:-1,b&&m.focus()})),e.add(addDisposableListener(m,"focus",()=>{this._model.goToLine(f)}))}this._scrollbar.scanDomNode()}_createRow(e,t,r,s,a,l,c,d,u){const g=s.get(165),f=g.glyphMarginWidth+g.lineNumbersWidth,m=c.get(165),_=10+m.glyphMarginWidth+m.lineNumbersWidth;let v="diff-review-row",b="";const C="diff-review-spacer";let y=null;switch(e.type){case LineType.Added:v="diff-review-row line-insert",b=" char-insert",y=accessibleDiffViewerInsertIcon;break;case LineType.Deleted:v="diff-review-row line-delete",b=" char-delete",y=accessibleDiffViewerRemoveIcon;break}const S=document.createElement("div");S.style.minWidth=r+"px",S.className=v,S.setAttribute("role","listitem"),S.ariaLevel="";const w=document.createElement("div");w.className="diff-review-cell",w.style.height="".concat(t,"px"),S.appendChild(w);const E=document.createElement("span");E.style.width=f+"px",E.style.minWidth=f+"px",E.className="diff-review-line-number"+b,e.originalLineNumber!==void 0?E.appendChild(document.createTextNode(String(e.originalLineNumber))):E.innerText=" ",w.appendChild(E);const x=document.createElement("span");x.style.width=_+"px",x.style.minWidth=_+"px",x.style.paddingRight="10px",x.className="diff-review-line-number"+b,e.modifiedLineNumber!==void 0?x.appendChild(document.createTextNode(String(e.modifiedLineNumber))):x.innerText=" ",w.appendChild(x);const L=document.createElement("span");if(L.className=C,y){const I=document.createElement("span");I.className=ThemeIcon.asClassName(y),I.innerText="  ",L.appendChild(I)}else L.innerText="  ";w.appendChild(L);let k;if(e.modifiedLineNumber!==void 0){let I=this._getLineHtml(d,c,u.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);AccessibleDiffViewer._ttPolicy&&(I=AccessibleDiffViewer._ttPolicy.createHTML(I)),w.insertAdjacentHTML("beforeend",I),k=d.getLineContent(e.modifiedLineNumber)}else{let I=this._getLineHtml(a,s,l.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);AccessibleDiffViewer._ttPolicy&&(I=AccessibleDiffViewer._ttPolicy.createHTML(I)),w.insertAdjacentHTML("beforeend",I),k=a.getLineContent(e.originalLineNumber)}k.length===0&&(k=localize(106,"blank"));let D="";switch(e.type){case LineType.Unchanged:e.originalLineNumber===e.modifiedLineNumber?D=localize(107,"{0} unchanged line {1}",k,e.originalLineNumber):D=localize(108,"{0} original line {1} modified line {2}",k,e.originalLineNumber,e.modifiedLineNumber);break;case LineType.Added:D=localize(109,"+ {0} modified line {1}",k,e.modifiedLineNumber);break;case LineType.Deleted:D=localize(110,"- {0} original line {1}",k,e.originalLineNumber);break}return S.setAttribute("aria-label",D),S}_getLineHtml(e,t,r,s,a){const l=e.getLineContent(s),c=t.get(59),d=t.get(117).verticalScrollbarSize,u=LineTokens.createEmpty(l,a),g=ViewLineRenderingData.isBasicASCII(l,e.mightContainNonBasicASCII()),f=ViewLineRenderingData.containsRTL(l,g,e.mightContainRTL());return renderViewLine2(new RenderLineInput(c.isMonospace&&!t.get(40),c.canUseHalfwidthRightwardsArrow,l,!1,g,f,0,u,[],r,0,c.spaceWidth,c.middotWidth,c.wsmiddotWidth,t.get(133),t.get(113),t.get(108),t.get(60)!==EditorFontLigatures.OFF,null,null,d)).html}};View=__decorate$2L([__param$2E(5,ILanguageService)],View);class AccessibleDiffViewerModelFromEditors{constructor(e){this.editors=e}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(e){this.editors.original.revealRange(e),this.editors.original.setSelection(e),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(e){e&&(this.editors.modified.revealRange(e),this.editors.modified.setSelection(e)),this.editors.modified.focus()}modifiedSetSelection(e){this.editors.modified.setSelection(e)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){var e;return(e=this.editors.modified.getPosition())!=null?e:void 0}}registerColor("diffEditor.move.border","#8b8b8b9c",localize(137,"The border color for text that got moved in the diff editor."));registerColor("diffEditor.moveActive.border","#FFA500",localize(138,"The active border color for text that got moved in the diff editor."));registerColor("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},localize(139,"The color of the shadow around unchanged region widgets."));const diffInsertIcon=registerIcon("diff-insert",Codicon.add,localize(140,"Line decoration for inserts in the diff editor.")),diffRemoveIcon=registerIcon("diff-remove",Codicon.remove,localize(141,"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"}),IEditorWorkerService=createDecorator("editorWorkerService");var __decorate$2K=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2D=function(o,e){return function(t,r){e(t,r,o)}},WorkerBasedDocumentDiffProvider_1;const IDiffProviderFactoryService=createDecorator("diffProviderFactoryService");let WorkerBasedDiffProviderFactoryService=class{constructor(e){this.instantiationService=e}createDiffProvider(e){return this.instantiationService.createInstance(WorkerBasedDocumentDiffProvider,e)}};WorkerBasedDiffProviderFactoryService=__decorate$2K([__param$2D(0,IInstantiationService)],WorkerBasedDiffProviderFactoryService);registerSingleton(IDiffProviderFactoryService,WorkerBasedDiffProviderFactoryService,1);var Ji;let WorkerBasedDocumentDiffProvider=(Ji=class{constructor(e,t,r){this.editorWorkerService=t,this.telemetryService=r,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.dispose()}async computeDiff(e,t,r,s){var f,m;if(typeof this.diffAlgorithm!="string")return this.diffAlgorithm.computeDiff(e,t,r,s);if(e.isDisposed()||t.isDisposed())return{changes:[],identical:!0,quitEarly:!1,moves:[]};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,2),new LineRange(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(r)]),c=WorkerBasedDocumentDiffProvider_1.diffCache.get(a);if(c&&c.context===l)return c.result;const d=StopWatch.create(),u=await this.editorWorkerService.computeDiff(e.uri,t.uri,r,this.diffAlgorithm),g=d.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:g,timedOut:(f=u==null?void 0:u.quitEarly)!=null?f:!0,detectedMoves:r.computeMoves?(m=u==null?void 0:u.moves.length)!=null?m:0:-1}),s.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 r;let t=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&((r=this.diffAlgorithmOnDidChangeSubscription)==null||r.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,typeof e.diffAlgorithm!="string"&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),t=!0),t&&this.onDidChangeEventEmitter.fire()}},WorkerBasedDocumentDiffProvider_1=Ji,Ji.diffCache=new Map,Ji);WorkerBasedDocumentDiffProvider=WorkerBasedDocumentDiffProvider_1=__decorate$2K([__param$2D(1,IEditorWorkerService),__param$2D(2,ITelemetryService)],WorkerBasedDocumentDiffProvider);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 r=[];return forEachAdjacent(e,(s,a)=>{r.push(SequenceDiff.fromOffsetPairs(s?s.getEndExclusives():OffsetPair.zero,a?a.getStarts():new OffsetPair(t,(s?s.seq2Range.endExclusive-s.seq1Range.endExclusive:0)+t)))}),r}static fromOffsetPairs(e,t){return new SequenceDiff(new OffsetRange(e.offset1,t.offset1),new OffsetRange(e.offset2,t.offset2))}static assertSorted(e){let t;for(const r of e){if(t&&!(t.seq1Range.endExclusive<=r.seq1Range.start&&t.seq2Range.endExclusive<=r.seq2Range.start))throw new BugIndicatingError("Sequence diffs must be sorted");t=r}}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new SequenceDiff(this.seq2Range,this.seq1Range)}toString(){return"".concat(this.seq1Range," <-> ").concat(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),r=this.seq2Range.intersect(e.seq2Range);if(!(!t||!r))return new SequenceDiff(t,r)}getStarts(){return new OffsetPair(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new OffsetPair(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}const Hi=class Hi{constructor(e,t){this.offset1=e,this.offset2=t}toString(){return"".concat(this.offset1," <-> ").concat(this.offset2)}delta(e){return e===0?this:new Hi(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}};Hi.zero=new Hi(0,0),Hi.max=new Hi(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);let OffsetPair=Hi;const Do=class Do{isValid(){return!0}};Do.instance=new Do;let InfiniteTimeout=Do;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(){return!(Date.now()-this.startTime<this.timeout)&&this.valid&&(this.valid=!1),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,r){this.array[e+t*this.width]=r}}function isSpace(o){return o===32||o===9}const Fr=class Fr{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,r){this.range=e,this.lines=t,this.source=r,this.histogram=[];let s=0;for(let a=e.startLineNumber-1;a<e.endLineNumberExclusive-1;a++){const l=t[a];for(let d=0;d<l.length;d++){s++;const u=l[d],g=Fr.getKey(u);this.histogram[g]=(this.histogram[g]||0)+1}s++;const c=Fr.getKey("\n");this.histogram[c]=(this.histogram[c]||0)+1}this.totalCount=s}computeSimilarity(e){var s,a;let t=0;const r=Math.max(this.histogram.length,e.histogram.length);for(let l=0;l<r;l++)t+=Math.abs(((s=this.histogram[l])!=null?s:0)-((a=e.histogram[l])!=null?a:0));return 1-t/(this.totalCount+e.totalCount)}};Fr.chrKeys=new Map;let LineRangeFragment=Fr;function waitForState(o,e,t,r){return e||(e=s=>s!=null),new Promise((s,a)=>{let l=!0,c=!1;const d=o.map(g=>({isFinished:e(g),error:t?t(g):!1,state:g})),u=autorun(g=>{const{isFinished:f,error:m,state:_}=d.read(g);(f||m)&&(l?c=!0:u.dispose(),m?a(m===!0?_:m):s(_))});if(r){const g=r.onCancellationRequested(()=>{u.dispose(),g.dispose(),a(new CancellationError)});if(r.isCancellationRequested){u.dispose(),g.dispose(),a(new CancellationError);return}}l=!1,c&&u.dispose()})}function observableSignalFromEvent(o,e,t=DebugLocation.ofCaller()){return new FromEventObservableSignal(typeof o=="string"?o:new DebugNameData(o,void 0,void 0),e,t)}class FromEventObservableSignal extends BaseObservable{constructor(e,t,r){var s;super(r),this.event=t,this.handleEvent=()=>{transaction(a=>{for(const l of this._observers)a.updateObserver(l,this),l.handleChange(this,void 0)},()=>this.debugName)},this.debugName=typeof e=="string"?e:(s=e.getDebugName(this))!=null?s:"Observable Signal From Event"}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}var __decorate$2J=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2C=function(o,e){return function(t,r){e(t,r,o)}};let DiffEditorViewModel=class extends Disposable$1{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,r){super(),this.model=e,this._options=t,this._diffProviderFactoryService=r,this._isDiffUpToDate=observableValue(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=observableValue(this,void 0),this.diff=this._diff,this._unchangedRegions=observableValue(this,void 0),this.unchangedRegions=derived(this,c=>{var d,u;return this._options.hideUnchangedRegions.read(c)?(u=(d=this._unchangedRegions.read(c))==null?void 0:d.regions)!=null?u:[]:(transaction(g=>{var f;for(const m of((f=this._unchangedRegions.read(void 0))==null?void 0:f.regions)||[])m.collapseAll(g)}),[])}),this.movedTextToCompare=observableValue(this,void 0),this._activeMovedText=observableValue(this,void 0),this._hoveredMovedText=observableValue(this,void 0),this.activeMovedText=derived(this,c=>{var d,u;return(u=(d=this.movedTextToCompare.read(c))!=null?d:this._hoveredMovedText.read(c))!=null?u:this._activeMovedText.read(c)}),this._cancellationTokenSource=new CancellationTokenSource$1,this._diffProvider=derived(this,c=>{const d=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(c)}),u=observableSignalFromEvent("onDidChange",d.onDidChange);return{diffProvider:d,onChangeSignal:u}}),this._register(toDisposable(()=>this._cancellationTokenSource.cancel()));const s=observableSignal("contentChangedSignal"),a=this._register(new RunOnceScheduler(()=>s.trigger(void 0),200));this._register(autorun(c=>{const d=this._unchangedRegions.read(c);if(!d||d.regions.some(v=>v.isDragged.read(c)))return;const u=d.originalDecorationIds.map(v=>e.original.getDecorationRange(v)).map(v=>v?LineRange.fromRangeInclusive(v):void 0),g=d.modifiedDecorationIds.map(v=>e.modified.getDecorationRange(v)).map(v=>v?LineRange.fromRangeInclusive(v):void 0),f=d.regions.map((v,b)=>!u[b]||!g[b]?void 0:new UnchangedRegion(u[b].startLineNumber,g[b].startLineNumber,u[b].length,v.visibleLineCountTop.read(c),v.visibleLineCountBottom.read(c))).filter(isDefined),m=[];let _=!1;for(const v of groupAdjacentBy(f,(b,C)=>b.getHiddenModifiedRange(c).endLineNumberExclusive===C.getHiddenModifiedRange(c).startLineNumber))if(v.length>1){_=!0;const b=v.reduce((y,S)=>y+S.lineCount,0),C=new UnchangedRegion(v[0].originalLineNumber,v[0].modifiedLineNumber,b,v[0].visibleLineCountTop.read(void 0),v[v.length-1].visibleLineCountBottom.read(void 0));m.push(C)}else m.push(v[0]);if(_){const v=e.original.deltaDecorations(d.originalDecorationIds,m.map(C=>({range:C.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),b=e.modified.deltaDecorations(d.modifiedDecorationIds,m.map(C=>({range:C.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));transaction(C=>{this._unchangedRegions.set({regions:m,originalDecorationIds:v,modifiedDecorationIds:b},C)})}}));const l=(c,d,u)=>{const g=UnchangedRegion.fromDiffs(c.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(u),this._options.hideUnchangedRegionsContextLineCount.read(u));let f;const m=this._unchangedRegions.get();if(m){const C=m.originalDecorationIds.map(E=>e.original.getDecorationRange(E)).map(E=>E?LineRange.fromRangeInclusive(E):void 0),y=m.modifiedDecorationIds.map(E=>e.modified.getDecorationRange(E)).map(E=>E?LineRange.fromRangeInclusive(E):void 0);let w=filterWithPrevious(m.regions.map((E,x)=>{if(!C[x]||!y[x])return;const L=C[x].length;return new UnchangedRegion(C[x].startLineNumber,y[x].startLineNumber,L,Math.min(E.visibleLineCountTop.get(),L),Math.min(E.visibleLineCountBottom.get(),L-E.visibleLineCountTop.get()))}).filter(isDefined),(E,x)=>!x||E.modifiedLineNumber>=x.modifiedLineNumber+x.lineCount&&E.originalLineNumber>=x.originalLineNumber+x.lineCount).map(E=>new LineRangeMapping(E.getHiddenOriginalRange(u),E.getHiddenModifiedRange(u)));w=LineRangeMapping.clip(w,LineRange.ofLength(1,e.original.getLineCount()),LineRange.ofLength(1,e.modified.getLineCount())),f=LineRangeMapping.inverse(w,e.original.getLineCount(),e.modified.getLineCount())}const _=[];if(f)for(const C of g){const y=f.filter(S=>S.original.intersectsStrict(C.originalUnchangedRange)&&S.modified.intersectsStrict(C.modifiedUnchangedRange));_.push(...C.setVisibleRanges(y,d))}else _.push(...g);const v=e.original.deltaDecorations((m==null?void 0:m.originalDecorationIds)||[],_.map(C=>({range:C.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),b=e.modified.deltaDecorations((m==null?void 0:m.modifiedDecorationIds)||[],_.map(C=>({range:C.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:_,originalDecorationIds:v,modifiedDecorationIds:b},d)};this._register(e.modified.onDidChangeContent(c=>{if(this._diff.get()){const u=TextEditInfo.fromModelContentChanges(c.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),a.schedule()})),this._register(e.original.onDidChangeContent(c=>{if(this._diff.get()){const u=TextEditInfo.fromModelContentChanges(c.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),a.schedule()})),this._register(autorunWithStore(async(c,d)=>{var _,v;this._options.hideUnchangedRegionsMinimumLineCount.read(c),this._options.hideUnchangedRegionsContextLineCount.read(c),a.cancel(),s.read(c);const u=this._diffProvider.read(c);u.onChangeSignal.read(c),this._isDiffUpToDate.set(!1,void 0);let g=[];d.add(e.original.onDidChangeContent(b=>{const C=TextEditInfo.fromModelContentChanges(b.changes);g=combineTextEditInfos(g,C)}));let f=[];d.add(e.modified.onDidChangeContent(b=>{const C=TextEditInfo.fromModelContentChanges(b.changes);f=combineTextEditInfos(f,C)}));let m=await u.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(c),maxComputationTimeMs:this._options.maxComputationTimeMs.read(c),computeMoves:this._options.showMoves.read(c)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||e.original.isDisposed()||e.modified.isDisposed()||(m=normalizeDocumentDiff(m,e.original,e.modified),m=(_=(e.original,e.modified,void 0))!=null?_:m,m=(v=(e.original,e.modified,void 0))!=null?v:m,transaction(b=>{l(m,b),this._lastDiff=m;const C=DiffState.fromDiffResult(m);this._diff.set(C,b),this._isDiffUpToDate.set(!0,b);const y=this.movedTextToCompare.read(void 0);this.movedTextToCompare.set(y?this._lastDiff.moves.find(S=>S.lineRangeMapping.modified.intersect(y.lineRangeMapping.modified)):void 0,b)}))}))}ensureModifiedLineIsVisible(e,t,r){var a,l;if(((a=this.diff.get())==null?void 0:a.mappings.length)===0)return;const s=((l=this._unchangedRegions.get())==null?void 0:l.regions)||[];for(const c of s)if(c.getHiddenModifiedRange(void 0).contains(e)){c.showModifiedLine(e,t,r);return}}ensureOriginalLineIsVisible(e,t,r){var a,l;if(((a=this.diff.get())==null?void 0:a.mappings.length)===0)return;const s=((l=this._unchangedRegions.get())==null?void 0:l.regions)||[];for(const c of s)if(c.getHiddenOriginalRange(void 0).contains(e)){c.showOriginalLine(e,t,r);return}}async waitForDiff(){await waitForState(this.isDiffUpToDate,e=>e)}serializeState(){const e=this._unchangedRegions.get();return{collapsedRegions:e==null?void 0:e.regions.map(t=>({range:t.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(e){var s;const t=(s=e.collapsedRegions)==null?void 0:s.map(a=>LineRange.deserialize(a.range)),r=this._unchangedRegions.get();!r||!t||transaction(a=>{for(const l of r.regions)for(const c of t)if(l.modifiedUnchangedRange.intersect(c)){l.setHiddenModifiedRange(c,a);break}})}};DiffEditorViewModel=__decorate$2J([__param$2C(2,IDiffProviderFactoryService)],DiffEditorViewModel);function normalizeDocumentDiff(o,e,t){return{changes:o.changes.map(r=>new DetailedLineRangeMapping(r.original,r.modified,r.innerChanges?r.innerChanges.map(s=>normalizeRangeMapping(s,e,t)):void 0)),moves:o.moves,identical:o.identical,quitEarly:o.quitEarly}}function normalizeRangeMapping(o,e,t){let r=o.originalRange,s=o.modifiedRange;return r.startColumn===1&&s.startColumn===1&&(r.endColumn!==1||s.endColumn!==1)&&r.endColumn===e.getLineMaxColumn(r.endLineNumber)&&s.endColumn===t.getLineMaxColumn(s.endLineNumber)&&r.endLineNumber<e.getLineCount()&&s.endLineNumber<t.getLineCount()&&(r=r.setEndPosition(r.endLineNumber+1,1),s=s.setEndPosition(s.endLineNumber+1,1)),new RangeMapping(r,s)}class DiffState{static fromDiffResult(e){return new DiffState(e.changes.map(t=>new DiffMapping(t)),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,r,s){this.mappings=e,this.movedTexts=t,this.identical=r,this.quitEarly=s}}class DiffMapping{constructor(e){this.lineRangeMapping=e}}class UnchangedRegion{static fromDiffs(e,t,r,s,a){const l=DetailedLineRangeMapping.inverse(e,t,r),c=[];for(const d of l){let u=d.original.startLineNumber,g=d.modified.startLineNumber,f=d.original.length;const m=u===1&&g===1,_=u+f===t+1&&g+f===r+1;(m||_)&&f>=a+s?(m&&!_&&(f-=a),_&&!m&&(u+=a,g+=a,f-=a),c.push(new UnchangedRegion(u,g,f,0,0))):f>=a*2+s&&(u+=a,g+=a,f-=a*2,c.push(new UnchangedRegion(u,g,f,0,0)))}return c}get originalUnchangedRange(){return LineRange.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return LineRange.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,r,s,a){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=r,this._visibleLineCountTop=observableValue(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=observableValue(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=derived(this,d=>this.visibleLineCountTop.read(d)+this.visibleLineCountBottom.read(d)===this.lineCount&&!this.isDragged.read(d)),this.isDragged=observableValue(this,void 0);const l=Math.max(Math.min(s,this.lineCount),0),c=Math.max(Math.min(a,this.lineCount-s),0);softAssert(s===l),softAssert(a===c),this._visibleLineCountTop.set(l,void 0),this._visibleLineCountBottom.set(c,void 0)}setVisibleRanges(e,t){const r=[],s=new LineRangeSet(e.map(d=>d.modified)).subtractFrom(this.modifiedUnchangedRange);let a=this.originalLineNumber,l=this.modifiedLineNumber;const c=this.modifiedLineNumber+this.lineCount;if(s.ranges.length===0)this.showAll(t),r.push(this);else{let d=0;for(const u of s.ranges){const g=d===s.ranges.length-1;d++;const f=(g?c:u.endLineNumberExclusive)-l,m=new UnchangedRegion(a,l,f,0,0);m.setHiddenModifiedRange(u,t),r.push(m),a=m.originalUnchangedRange.endLineNumberExclusive,l=m.modifiedUnchangedRange.endLineNumberExclusive}}return r}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return LineRange.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return LineRange.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){const r=e.startLineNumber-this.modifiedLineNumber,s=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(r,s,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(e=10,t){const r=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,r),t)}showMoreBelow(e=10,t){const r=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,r),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t,r){const s=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),a=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;t===0&&s<a||t===1?this._visibleLineCountTop.set(this._visibleLineCountTop.get()+s,r):this._visibleLineCountBottom.set(this._visibleLineCountBottom.get()+a,r)}showOriginalLine(e,t,r){const s=e-this.originalLineNumber,a=this.originalLineNumber+this.lineCount-e;t===0&&s<a||t===1?this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+a-s,this.getMaxVisibleLineCountTop()),r):this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+s-a,this.getMaxVisibleLineCountBottom()),r)}collapseAll(e){this._visibleLineCountTop.set(0,e),this._visibleLineCountBottom.set(0,e)}setState(e,t,r){e=Math.max(Math.min(e,this.lineCount),0),t=Math.max(Math.min(t,this.lineCount-e),0),this._visibleLineCountTop.set(e,r),this._visibleLineCountBottom.set(t,r)}}function applyOriginalEdits(o,e,t,r){}function applyModifiedEdits(o,e,t,r){}function enableCopySelection(o){const{domNode:e,renderLinesResult:t,diffEntry:r,originalModel:s,clipboardService:a}=o,l=new DisposableStore$1;return l.add(addDisposableListener(e,"copy",c=>{c.preventDefault();const d=e.ownerDocument.getSelection();if(!d||d.rangeCount===0)return;const u=d.getRangeAt(0);if(!u||u.collapsed)return;const g=u.startContainer.nodeType===Node.TEXT_NODE?u.startContainer.parentElement:u.startContainer,f=u.endContainer.nodeType===Node.TEXT_NODE?u.endContainer.parentElement:u.endContainer;if(!g||!f)return;const m=t.getModelPositionAt(g,u.startOffset),_=t.getModelPositionAt(f,u.endOffset);if(!m||!_)return;const v=m.delta(r.original.startLineNumber-1),b=_.delta(r.original.startLineNumber-1),C=b.isBefore(v)?Range$2.fromPositions(b,v):Range$2.fromPositions(v,b),y=s.getValueInRange(C);a.writeText(y)})),l}class InlineDiffDeletedCodeMargin extends Disposable$1{get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}constructor(e,t,r,s,a,l,c,d,u,g){super(),this._getViewZoneId=e,this._marginDomNode=t,this._deletedCodeDomNode=r,this._modifiedEditor=s,this._diff=a,this._editor=l,this._renderLinesResult=c,this._originalTextModel=d,this._contextMenuService=u,this._clipboardService=g,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 f=this._modifiedEditor.getOption(75);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height="".concat(f,"px"),this._diffActions.style.lineHeight="".concat(f,"px"),this._marginDomNode.appendChild(this._diffActions);let m=0;const _=s.getOption(144)&&!isIOS,v=(b,C,y)=>{var S;this._contextMenuService.showContextMenu({domForShadowRoot:_&&(S=s.getDomNode())!=null?S:void 0,getAnchor:()=>b,onHide:y,getActions:()=>{const w=[],E=a.modified.isEmpty;return w.push(new Action("diff.clipboard.copyDeletedContent",E?a.original.length>1?localize(112,"Copy deleted lines"):localize(113,"Copy deleted line"):a.original.length>1?localize(114,"Copy changed lines"):localize(115,"Copy changed line"),void 0,!0,async()=>{const L=this._originalTextModel.getValueInRange(a.original.toExclusiveRange());await this._clipboardService.writeText(L)})),a.original.length>1&&w.push(new Action("diff.clipboard.copyDeletedLineContent",E?localize(116,"Copy deleted line ({0})",a.original.startLineNumber+m):localize(117,"Copy changed line ({0})",a.original.startLineNumber+m),void 0,!0,async()=>{let L=this._originalTextModel.getLineContent(a.original.startLineNumber+m);L===""&&(L=this._originalTextModel.getEndOfLineSequence()===0?"\n":"\r\n"),await this._clipboardService.writeText(L)})),s.getOption(104)||w.push(new Action("diff.inline.revertChange",localize(118,"Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),w},autoSelectFirstItem:!0})};this._register(addStandardDisposableListener(this._diffActions,"mousedown",b=>{if(!b.leftButton)return;const{top:C,height:y}=getDomNodePagePosition(this._diffActions),S=Math.floor(f/3);b.preventDefault(),v({x:b.posx,y:C+y+S})})),this._register(s.onMouseMove(b=>{(b.target.type===8||b.target.type===5)&&b.target.detail.viewZoneId===this._getViewZoneId()?(m=this._updateLightBulbPosition(this._marginDomNode,b.event.browserEvent.y,f),this.visibility=!0):this.visibility=!1})),this._register(enableCopySelection({domNode:this._deletedCodeDomNode,diffEntry:a,originalModel:this._originalTextModel,renderLinesResult:this._renderLinesResult,clipboardService:g}))}_updateLightBulbPosition(e,t,r){const{top:s}=getDomNodePagePosition(e),a=t-s,l=Math.floor(a/r),c=l*r;if(this._diffActions.style.top="".concat(c,"px"),this._renderLinesResult.viewLineCounts){let d=0;for(let u=0;u<this._renderLinesResult.viewLineCounts.length;u++)if(d+=this._renderLinesResult.viewLineCounts[u],l<d)return u}return l}}const ttPolicy$4=createTrustedTypesPolicy$1("diffEditorWidget",{createHTML:o=>o});function renderLines$1(o,e,t,r,s=!1){applyFontInfo(r,e.fontInfo);const a=t.length>0,l=new StringBuilder(1e4);let c=0,d=0;const u=[],g=[];for(let v=0;v<o.lineTokens.length;v++){const b=v+1,C=o.lineTokens[v],y=o.lineBreakData[v],S=LineDecoration.filter(t,b,1,Number.MAX_SAFE_INTEGER);if(y){let w=0;for(const E of y.breakOffsets){const x=C.sliceAndInflate(w,E,0),L=renderOriginalLine(d,x,LineDecoration.extractWrapped(S,w,E),a,o.mightContainNonBasicASCII,o.mightContainRTL,e,l,s);c=Math.max(c,L.maxCharWidth),g.push(new RenderLineOutputWithOffset(L.output.characterMapping,L.output.containsForeignElements,w)),d++,w=E}u.push(y.breakOffsets.length)}else{u.push(1);const w=renderOriginalLine(d,C,S,a,o.mightContainNonBasicASCII,o.mightContainRTL,e,l,s);c=Math.max(c,w.maxCharWidth),g.push(new RenderLineOutputWithOffset(w.output.characterMapping,w.output.containsForeignElements,0)),d++}}c+=e.scrollBeyondLastColumn;const f=l.build(),m=ttPolicy$4?ttPolicy$4.createHTML(f):f;r.innerHTML=m;const _=c*e.typicalHalfwidthCharacterWidth;return new RenderLinesResult(d,_,u,g,o)}class LineSource{constructor(e,t=e.map(a=>null),r=!0,s=!0){this.lineTokens=e,this.lineBreakData=t,this.mightContainNonBasicASCII=r,this.mightContainRTL=s}}class RenderOptions{static fromEditor(e){var a;const t=e.getOptions(),r=t.get(59),s=t.get(165);return new RenderOptions(((a=e.getModel())==null?void 0:a.getOptions().tabSize)||0,r,t.get(40),r.typicalHalfwidthCharacterWidth,t.get(118),t.get(75),s.decorationsWidth,t.get(133),t.get(113),t.get(108),t.get(60),t.get(117).verticalScrollbarSize)}constructor(e,t,r,s,a,l,c,d,u,g,f,m,_=!0){this.tabSize=e,this.fontInfo=t,this.disableMonospaceOptimizations=r,this.typicalHalfwidthCharacterWidth=s,this.scrollBeyondLastColumn=a,this.lineHeight=l,this.lineDecorationsWidth=c,this.stopRenderingLineAfter=d,this.renderWhitespace=u,this.renderControlCharacters=g,this.fontLigatures=f,this.verticalScrollbarSize=m,this.setWidth=_}withSetWidth(e){return new RenderOptions(this.tabSize,this.fontInfo,this.disableMonospaceOptimizations,this.typicalHalfwidthCharacterWidth,this.scrollBeyondLastColumn,this.lineHeight,this.lineDecorationsWidth,this.stopRenderingLineAfter,this.renderWhitespace,this.renderControlCharacters,this.fontLigatures,this.verticalScrollbarSize,e)}withScrollBeyondLastColumn(e){return new RenderOptions(this.tabSize,this.fontInfo,this.disableMonospaceOptimizations,this.typicalHalfwidthCharacterWidth,e,this.lineHeight,this.lineDecorationsWidth,this.stopRenderingLineAfter,this.renderWhitespace,this.renderControlCharacters,this.fontLigatures,this.verticalScrollbarSize,this.setWidth)}}class RenderLinesResult{constructor(e,t,r,s,a){this.heightInLines=e,this.minWidthInPx=t,this.viewLineCounts=r,this._renderOutputs=s,this._source=a}getModelPositionAt(e,t){let r=e;for(;r&&!r.classList.contains("view-line");)r=r.parentElement;if(!r)return;const s=r.parentElement;if(!s)return;const a=s.querySelectorAll(".view-line");let l=-1;for(let f=0;f<a.length;f++)if(a[f]===r){l=f;break}if(l===-1||l>=this._renderOutputs.length)return;let c=1,d=l;for(let f=0;f<this.viewLineCounts.length;f++){if(d<this.viewLineCounts[f]){c=f+1;break}d-=this.viewLineCounts[f]}if(c>this._source.lineTokens.length)return;const u=this._renderOutputs[l];if(!u)return;const g=getColumnOfNodeOffset(u.characterMapping,e,t)+u.offset;return new Position$1(c,g)}}class RenderLineOutputWithOffset extends RenderLineOutput{constructor(e,t,r){super(e,t),this.offset=r}}function renderOriginalLine(o,e,t,r,s,a,l,c,d){c.appendString('<div class="view-line'),!d&&!r&&c.appendString(" char-delete"),c.appendString('" style="top:'),c.appendString(String(o*l.lineHeight)),l.setWidth?c.appendString('px;width:1000000px;">'):c.appendString('px;">');const u=e.getLineContent(),g=ViewLineRenderingData.isBasicASCII(u,s),f=ViewLineRenderingData.containsRTL(u,g,a),m=renderViewLine(new RenderLineInput(l.fontInfo.isMonospace&&!l.disableMonospaceOptimizations,l.fontInfo.canUseHalfwidthRightwardsArrow,u,!1,g,f,0,e,t,l.tabSize,0,l.fontInfo.spaceWidth,l.fontInfo.middotWidth,l.fontInfo.wsmiddotWidth,l.stopRenderingLineAfter,l.renderWhitespace,l.renderControlCharacters,l.fontLigatures!==EditorFontLigatures.OFF,null,null,l.verticalScrollbarSize),c);c.appendString("</div>");const _=m.characterMapping.getHorizontalOffset(m.characterMapping.length);return{output:m,maxCharWidth:_}}const IClipboardService=createDecorator("clipboardService"),IContextViewService=createDecorator("contextViewService"),IContextMenuService=createDecorator("contextMenuService");var __decorate$2I=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2B=function(o,e){return function(t,r){e(t,r,o)}};let DiffEditorViewZones=class extends Disposable$1{constructor(e,t,r,s,a,l,c,d,u,g){super(),this._targetWindow=e,this._editors=t,this._diffModel=r,this._options=s,this._diffEditorWidget=a,this._canIgnoreViewZoneUpdateEvent=l,this._origViewZonesToIgnore=c,this._modViewZonesToIgnore=d,this._clipboardService=u,this._contextMenuService=g,this._originalTopPadding=observableValue(this,0),this._originalScrollOffset=observableValue(this,0),this._originalScrollOffsetAnimated=animatedObservable(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=observableValue(this,0),this._modifiedScrollOffset=observableValue(this,0),this._modifiedScrollOffsetAnimated=animatedObservable(this._targetWindow,this._modifiedScrollOffset,this._store);const f=observableValue("invalidateAlignmentsState",0),m=this._register(new RunOnceScheduler(()=>{f.set(f.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(w=>{this._canIgnoreViewZoneUpdateEvent()||m.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(w=>{this._canIgnoreViewZoneUpdateEvent()||m.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(w=>{(w.hasChanged(166)||w.hasChanged(75))&&m.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(w=>{(w.hasChanged(166)||w.hasChanged(75))&&m.schedule()}));const _=this._diffModel.map(w=>w?observableFromEvent(this,w.model.original.onDidChangeTokens,()=>w.model.original.tokenization.backgroundTokenizationState===2):void 0).map((w,E)=>w==null?void 0:w.read(E)),v=derived(w=>{const E=this._diffModel.read(w),x=E==null?void 0:E.diff.read(w);if(!E||!x)return null;f.read(w);const k=this._options.renderSideBySide.read(w);return computeRangeAlignment(this._editors.original,this._editors.modified,x.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,k)}),b=derived(w=>{var L;const E=(L=this._diffModel.read(w))==null?void 0:L.movedTextToCompare.read(w);if(!E)return null;f.read(w);const x=E.changes.map(k=>new DiffMapping(k));return computeRangeAlignment(this._editors.original,this._editors.modified,x,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function C(){const w=document.createElement("div");return w.className="diagonal-fill",w}const y=this._register(new DisposableStore$1);this.viewZones=derived(this,w=>{var B,H,V,U,j,X,ee,Z;y.clear();const E=v.read(w)||[],x=[],L=[],k=this._modifiedTopPadding.read(w);k>0&&L.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:k,showInHiddenAreas:!0,suppressMouseDown:!0});const D=this._originalTopPadding.read(w);D>0&&x.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:D,showInHiddenAreas:!0,suppressMouseDown:!0});const I=this._options.renderSideBySide.read(w),T=I||(B=this._editors.modified._getViewModel())==null?void 0:B.createLineBreaksComputer();if(T){const J=this._editors.original.getModel();for(const q of E)if(q.diff)for(let Q=q.originalRange.startLineNumber;Q<q.originalRange.endLineNumberExclusive;Q++){if(Q>J.getLineCount())return{orig:x,mod:L};T==null||T.addRequest(J.getLineContent(Q),null,null)}}const M=(H=T==null?void 0:T.finalize())!=null?H:[];let R=0;const N=this._editors.modified.getOption(75),A=(V=this._diffModel.read(w))==null?void 0:V.movedTextToCompare.read(w),O=(j=(U=this._editors.original.getModel())==null?void 0:U.mightContainNonBasicASCII())!=null?j:!1,P=(ee=(X=this._editors.original.getModel())==null?void 0:X.mightContainRTL())!=null?ee:!1,F=RenderOptions.fromEditor(this._editors.modified);for(const J of E)if(J.diff&&!I&&(!this._options.useTrueInlineDiffRendering.read(w)||!allowsTrueInlineDiffRendering$1(J.diff))){if(!J.originalRange.isEmpty){_.read(w);const Q=document.createElement("div");Q.classList.add("view-lines","line-delete","line-delete-selectable","monaco-mouse-cursor-text");const re=this._editors.original.getModel();if(J.originalRange.endLineNumberExclusive-1>re.getLineCount())return{orig:x,mod:L};const de=new LineSource(J.originalRange.mapToLineArray(ie=>re.tokenization.getLineTokens(ie)),J.originalRange.mapToLineArray(ie=>M[R++]),O,P),se=[];for(const ie of J.diff.innerChanges||[])se.push(new InlineDecoration(ie.originalRange.delta(-(J.diff.original.startLineNumber-1)),diffDeleteDecoration.className,0));const W=renderLines$1(de,F,se,Q),G=document.createElement("div");if(G.className="inline-deleted-margin-view-zone",applyFontInfo(G,F.fontInfo),this._options.renderIndicators.read(w))for(let ie=0;ie<W.heightInLines;ie++){const ne=document.createElement("div");ne.className="delete-sign ".concat(ThemeIcon.asClassName(diffRemoveIcon)),ne.setAttribute("style","position:absolute;top:".concat(ie*N,"px;width:").concat(F.lineDecorationsWidth,"px;height:").concat(N,"px;right:0;")),G.appendChild(ne)}let Y;y.add(new InlineDiffDeletedCodeMargin(()=>assertReturnsDefined(Y),G,Q,this._editors.modified,J.diff,this._diffEditorWidget,W,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let ie=0;ie<W.viewLineCounts.length;ie++){const ne=W.viewLineCounts[ie];ne>1&&x.push({afterLineNumber:J.originalRange.startLineNumber+ie,domNode:C(),heightInPx:(ne-1)*N,showInHiddenAreas:!0,suppressMouseDown:!0})}L.push({afterLineNumber:J.modifiedRange.startLineNumber-1,domNode:Q,heightInPx:W.heightInLines*N,minWidthInPx:W.minWidthInPx,marginDomNode:G,setZoneId(ie){Y=ie},showInHiddenAreas:!0,suppressMouseDown:!1})}const q=document.createElement("div");q.className="gutter-delete",x.push({afterLineNumber:J.originalRange.endLineNumberExclusive-1,domNode:C(),heightInPx:J.modifiedHeightInPx,marginDomNode:q,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const q=J.modifiedHeightInPx-J.originalHeightInPx;if(q>0){if(A!=null&&A.lineRangeMapping.original.delta(-1).deltaLength(2).contains(J.originalRange.endLineNumberExclusive-1))continue;x.push({afterLineNumber:J.originalRange.endLineNumberExclusive-1,domNode:C(),heightInPx:q,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let Q=function(){const de=document.createElement("div");return de.className="arrow-revert-change "+ThemeIcon.asClassName(Codicon.arrowRight),w.store.add(addDisposableListener(de,"mousedown",se=>se.stopPropagation())),w.store.add(addDisposableListener(de,"click",se=>{se.stopPropagation(),a.revert(J.diff)})),$$m("div",{},de)};if(A!=null&&A.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(J.modifiedRange.endLineNumberExclusive-1))continue;let re;J.diff&&J.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(w)&&(re=Q()),L.push({afterLineNumber:J.modifiedRange.endLineNumberExclusive-1,domNode:C(),heightInPx:-q,marginDomNode:re,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const J of(Z=b.read(w))!=null?Z:[]){if(!(A!=null&&A.lineRangeMapping.original.intersect(J.originalRange))||!(A!=null&&A.lineRangeMapping.modified.intersect(J.modifiedRange)))continue;const q=J.modifiedHeightInPx-J.originalHeightInPx;q>0?x.push({afterLineNumber:J.originalRange.endLineNumberExclusive-1,domNode:C(),heightInPx:q,showInHiddenAreas:!0,suppressMouseDown:!0}):L.push({afterLineNumber:J.modifiedRange.endLineNumberExclusive-1,domNode:C(),heightInPx:-q,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:x,mod:L}});let S=!1;this._register(this._editors.original.onDidScrollChange(w=>{w.scrollLeftChanged&&!S&&(S=!0,this._editors.modified.setScrollLeft(w.scrollLeft),S=!1)})),this._register(this._editors.modified.onDidScrollChange(w=>{w.scrollLeftChanged&&!S&&(S=!0,this._editors.original.setScrollLeft(w.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(w=>{const E=this._originalScrollTop.read(w)-(this._originalScrollOffsetAnimated.read(void 0)-this._modifiedScrollOffsetAnimated.read(w))-(this._originalTopPadding.read(void 0)-this._modifiedTopPadding.read(w));E!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(E,1)})),this._register(autorun(w=>{const E=this._modifiedScrollTop.read(w)-(this._modifiedScrollOffsetAnimated.read(void 0)-this._originalScrollOffsetAnimated.read(w))-(this._modifiedTopPadding.read(void 0)-this._originalTopPadding.read(w));E!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(E,1)})),this._register(autorun(w=>{var L;const E=(L=this._diffModel.read(w))==null?void 0:L.movedTextToCompare.read(w);let x=0;if(E){const k=this._editors.original.getTopForLineNumber(E.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.read(void 0);x=this._editors.modified.getTopForLineNumber(E.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.read(void 0)-k}x>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(x,void 0)):x<0?(this._modifiedTopPadding.set(-x,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.read(void 0)-x,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.read(void 0)+x,void 0,!0)}))}};DiffEditorViewZones=__decorate$2I([__param$2B(8,IClipboardService),__param$2B(9,IContextMenuService)],DiffEditorViewZones);function computeRangeAlignment(o,e,t,r,s,a){const l=new ArrayQueue(getAdditionalLineHeights(o,r)),c=new ArrayQueue(getAdditionalLineHeights(e,s)),d=o.getOption(75),u=e.getOption(75),g=[];let f=0,m=0;function _(v,b){for(;;){let C=l.peek(),y=c.peek();if(C&&C.lineNumber>=v&&(C=void 0),y&&y.lineNumber>=b&&(y=void 0),!C&&!y)break;const S=C?C.lineNumber-f:Number.MAX_VALUE,w=y?y.lineNumber-m:Number.MAX_VALUE;S<w?(l.dequeue(),y={lineNumber:C.lineNumber-f+m,heightInPx:0}):S>w?(c.dequeue(),C={lineNumber:y.lineNumber-m+f,heightInPx:0}):(l.dequeue(),c.dequeue()),g.push({originalRange:LineRange.ofLength(C.lineNumber,1),modifiedRange:LineRange.ofLength(y.lineNumber,1),originalHeightInPx:d+C.heightInPx,modifiedHeightInPx:u+y.heightInPx,diff:void 0})}}for(const v of t){let w=function(E,x,L=!1){var M,R,N,A;if(E<S||x<y)return;if(C)C=!1;else if(!L&&(E===S||x===y))return;const k=new LineRange(S,E),D=new LineRange(y,x);if(k.isEmpty&&D.isEmpty)return;const I=(R=(M=l.takeWhile(O=>O.lineNumber<E))==null?void 0:M.reduce((O,P)=>O+P.heightInPx,0))!=null?R:0,T=(A=(N=c.takeWhile(O=>O.lineNumber<x))==null?void 0:N.reduce((O,P)=>O+P.heightInPx,0))!=null?A:0;g.push({originalRange:k,modifiedRange:D,originalHeightInPx:k.length*d+I,modifiedHeightInPx:D.length*u+T,diff:v.lineRangeMapping}),S=E,y=x};const b=v.lineRangeMapping;_(b.original.startLineNumber,b.modified.startLineNumber);let C=!0,y=b.modified.startLineNumber,S=b.original.startLineNumber;if(a)for(const E of b.innerChanges||[]){E.originalRange.startColumn>1&&E.modifiedRange.startColumn>1&&w(E.originalRange.startLineNumber,E.modifiedRange.startLineNumber);const x=o.getModel(),L=E.originalRange.endLineNumber<=x.getLineCount()?x.getLineMaxColumn(E.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;E.originalRange.endColumn<L&&w(E.originalRange.endLineNumber,E.modifiedRange.endLineNumber)}w(b.original.endLineNumberExclusive,b.modified.endLineNumberExclusive,!0),f=b.original.endLineNumberExclusive,m=b.modified.endLineNumberExclusive}return _(Number.MAX_VALUE,Number.MAX_VALUE),g}function getAdditionalLineHeights(o,e){const t=[],r=[],s=o.getOption(166).wrappingColumn!==-1,a=o._getViewModel().coordinatesConverter,l=o.getOption(75);if(s)for(let d=1;d<=o.getModel().getLineCount();d++){const u=a.getModelLineViewLineCount(d);u>1&&r.push({lineNumber:d,heightInPx:l*(u-1)})}for(const d of o.getWhitespaces()){if(e.has(d.id))continue;const u=d.afterLineNumber===0?0:a.convertViewPositionToModelPosition(new Position$1(d.afterLineNumber,1)).lineNumber;t.push({lineNumber:u,heightInPx:d.height})}return joinCombine(t,r,d=>d.lineNumber,(d,u)=>({lineNumber:d.lineNumber,heightInPx:d.heightInPx+u.heightInPx}))}function allowsTrueInlineDiffRendering$1(o){return o.innerChanges?o.innerChanges.every(e=>rangeIsSingleLine(e.modifiedRange)&&rangeIsSingleLine(e.originalRange)||e.originalRange.equalsRange(new Range$2(1,1,1,1))):!1}function rangeIsSingleLine(o){return o.startLineNumber===o.endLineNumber}const Br=class Br extends Disposable$1{constructor(e,t,r,s,a){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=r,this._modifiedEditorLayoutInfo=s,this._editors=a,this._originalScrollTop=observableFromEvent(this,this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=observableFromEvent(this,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=derived(this,g=>{var L;this._element.replaceChildren();const f=this._diffModel.read(g),m=(L=f==null?void 0:f.diff.read(g))==null?void 0:L.movedTexts;if(!m||m.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(g);const _=this._originalEditorLayoutInfo.read(g),v=this._modifiedEditorLayoutInfo.read(g);if(!_||!v){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(g),this._originalViewZonesChangedSignal.read(g);const b=m.map(k=>{function D(F,B){const H=B.getTopForLineNumber(F.startLineNumber,!0),V=B.getTopForLineNumber(F.endLineNumberExclusive,!0);return(H+V)/2}const I=D(k.lineRangeMapping.original,this._editors.original),T=this._originalScrollTop.read(g),M=D(k.lineRangeMapping.modified,this._editors.modified),R=this._modifiedScrollTop.read(g),N=I-T,A=M-R,O=Math.min(I,M),P=Math.max(I,M);return{range:new OffsetRange(O,P),from:N,to:A,fromWithoutScroll:I,toWithoutScroll:M,move:k}});b.sort(tieBreakComparators(compareBy(k=>k.fromWithoutScroll>k.toWithoutScroll,booleanComparator),compareBy(k=>k.fromWithoutScroll>k.toWithoutScroll?k.fromWithoutScroll:-k.toWithoutScroll,numberComparator)));const C=LinesLayout.compute(b.map(k=>k.range)),y=10,S=_.verticalScrollbarWidth,w=(C.getTrackCount()-1)*10+y*2,E=S+w+(v.contentLeft-Br.movedCodeBlockPadding);let x=0;for(const k of b){const D=C.getTrack(x),I=S+y+D*10,T=15,M=15,R=E,N=v.glyphMarginWidth+v.lineNumbersWidth,A=18,O=document.createElementNS("http://www.w3.org/2000/svg","rect");O.classList.add("arrow-rectangle"),O.setAttribute("x","".concat(R-N)),O.setAttribute("y","".concat(k.to-A/2)),O.setAttribute("width","".concat(N)),O.setAttribute("height","".concat(A)),this._element.appendChild(O);const P=document.createElementNS("http://www.w3.org/2000/svg","g"),F=document.createElementNS("http://www.w3.org/2000/svg","path");F.setAttribute("d","M 0 ".concat(k.from," L ").concat(I," ").concat(k.from," L ").concat(I," ").concat(k.to," L ").concat(R-M," ").concat(k.to)),F.setAttribute("fill","none"),P.appendChild(F);const B=document.createElementNS("http://www.w3.org/2000/svg","polygon");B.classList.add("arrow"),g.store.add(autorun(H=>{F.classList.toggle("currentMove",k.move===f.activeMovedText.read(H)),B.classList.toggle("currentMove",k.move===f.activeMovedText.read(H))})),B.setAttribute("points","".concat(R-M,",").concat(k.to-T/2," ").concat(R,",").concat(k.to," ").concat(R-M,",").concat(k.to+T/2)),P.appendChild(B),this._element.appendChild(P),x++}this.width.set(w,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),m=this._modifiedEditorLayoutInfo.read(g);!f||!m||(this._element.style.left="".concat(f.width-f.verticalScrollbarWidth,"px"),this._element.style.height="".concat(f.height,"px"),this._element.style.width="".concat(f.verticalScrollbarWidth+f.contentLeft-Br.movedCodeBlockPadding+this.width.read(g),"px"))})),this._register(recomputeInitiallyAndOnChange(this._state));const l=derived(g=>{const f=this._diffModel.read(g),m=f==null?void 0:f.diff.read(g);return m?m.movedTexts.map(_=>({move:_,original:new PlaceholderViewZone(constObservable(_.lineRangeMapping.original.startLineNumber-1),18),modified:new PlaceholderViewZone(constObservable(_.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(applyViewZones(this._editors.original,l.map(g=>g.map(f=>f.original)))),this._register(applyViewZones(this._editors.modified,l.map(g=>g.map(f=>f.modified)))),this._register(autorunWithStore((g,f)=>{const m=l.read(g);for(const _ of m)f.add(new MovedBlockOverlayWidget(this._editors.original,_.original,_.move,"original",this._diffModel.get())),f.add(new MovedBlockOverlayWidget(this._editors.modified,_.modified,_.move,"modified",this._diffModel.get()))}));const c=observableSignalFromEvent("original.onDidFocusEditorWidget",g=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>g(void 0),0))),d=observableSignalFromEvent("modified.onDidFocusEditorWidget",g=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>g(void 0),0)));let u="modified";this._register(autorunHandleChanges({changeTracker:{createChangeSummary:()=>{},handleChange:(g,f)=>(g.didChange(c)&&(u="original"),g.didChange(d)&&(u="modified"),!0)}},g=>{c.read(g),d.read(g);const f=this._diffModel.read(g);if(!f)return;const m=f.diff.read(g);let _;if(m&&u==="original"){const v=this._editors.originalCursor.read(g);v&&(_=m.movedTexts.find(b=>b.lineRangeMapping.original.contains(v.lineNumber)))}if(m&&u==="modified"){const v=this._editors.modifiedCursor.read(g);v&&(_=m.movedTexts.find(b=>b.lineRangeMapping.modified.contains(v.lineNumber)))}_!==f.movedTextToCompare.read(void 0)&&f.movedTextToCompare.set(void 0,void 0),f.setActiveMovedText(_)}))}};Br.movedCodeBlockPadding=4;let MovedBlocksLinesFeature=Br;class LinesLayout{static compute(e){const t=[],r=[];for(const s of e){let a=t.findIndex(l=>!l.intersectsStrict(s));a===-1&&(t.length>=6?a=findMaxIdx(t,compareBy(c=>c.intersectWithRangeLength(s),numberComparator)):(a=t.length,t.push(new OffsetRangeSet))),t[a].addRange(s),r.push(a)}return new LinesLayout(t.length,r)}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,r,s,a){const l=h("div.diff-hidden-lines-widget");super(e,t,l.root),this._editor=e,this._move=r,this._kind=s,this._diffModel=a,this._nodes=h("div.diff-moved-code-block",{style:{marginRight:"4px"}},[h("div.text-content@textContent"),h("div.action-bar@actionBar")]),l.root.appendChild(this._nodes.root);const c=observableFromEvent(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(applyStyle(this._nodes.root,{paddingRight:c.map(m=>m.verticalScrollbarWidth)}));let d;r.changes.length>0?d=this._kind==="original"?localize(131,"Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):localize(132,"Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):d=this._kind==="original"?localize(133,"Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):localize(134,"Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const u=this._register(new ActionBar(this._nodes.actionBar,{highlightToggledItems:!0})),g=new Action("",d,"",!1);u.push(g,{icon:!1,label:!0});const f=new Action("","Compare",ThemeIcon.asClassName(Codicon.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===r?void 0:this._move,void 0)});this._register(autorun(m=>{const _=this._diffModel.movedTextToCompare.read(m)===r;f.checked=_})),u.push(f,{icon:!1,label:!0})}}class DiffEditorDecorations extends Disposable$1{constructor(e,t,r,s){super(),this._editors=e,this._diffModel=t,this._options=r,this._decorations=derived(this,a=>{const l=this._diffModel.read(a),c=l==null?void 0:l.diff.read(a);if(!c)return null;const d=this._diffModel.read(a).movedTextToCompare.read(a),u=this._options.renderIndicators.read(a),g=this._options.showEmptyDecorations.read(a),f=[],m=[];if(!d)for(const v of c.mappings)if(v.lineRangeMapping.original.isEmpty||f.push({range:v.lineRangeMapping.original.toInclusiveRange(),options:u?diffLineDeleteDecorationBackgroundWithIndicator:diffLineDeleteDecorationBackground}),v.lineRangeMapping.modified.isEmpty||m.push({range:v.lineRangeMapping.modified.toInclusiveRange(),options:u?diffLineAddDecorationBackgroundWithIndicator:diffLineAddDecorationBackground}),v.lineRangeMapping.modified.isEmpty||v.lineRangeMapping.original.isEmpty)v.lineRangeMapping.original.isEmpty||f.push({range:v.lineRangeMapping.original.toInclusiveRange(),options:diffWholeLineDeleteDecoration}),v.lineRangeMapping.modified.isEmpty||m.push({range:v.lineRangeMapping.modified.toInclusiveRange(),options:diffWholeLineAddDecoration});else{const b=this._options.useTrueInlineDiffRendering.read(a)&&allowsTrueInlineDiffRendering$1(v.lineRangeMapping);for(const C of v.lineRangeMapping.innerChanges||[])if(v.lineRangeMapping.original.contains(C.originalRange.startLineNumber)&&f.push({range:C.originalRange,options:C.originalRange.isEmpty()&&g?diffDeleteDecorationEmpty:diffDeleteDecoration}),v.lineRangeMapping.modified.contains(C.modifiedRange.startLineNumber)&&m.push({range:C.modifiedRange,options:C.modifiedRange.isEmpty()&&g&&!b?diffAddDecorationEmpty:diffAddDecoration}),b){const y=l.model.original.getValueInRange(C.originalRange);m.push({range:C.modifiedRange,options:{description:"deleted-text",before:{content:y,inlineClassName:"inline-deleted-text"},zIndex:1e5,showIfCollapsed:!0}})}}if(d)for(const v of d.changes){const b=v.original.toInclusiveRange();b&&f.push({range:b,options:u?diffLineDeleteDecorationBackgroundWithIndicator:diffLineDeleteDecorationBackground});const C=v.modified.toInclusiveRange();C&&m.push({range:C,options:u?diffLineAddDecorationBackgroundWithIndicator:diffLineAddDecorationBackground});for(const y of v.innerChanges||[])f.push({range:y.originalRange,options:diffDeleteDecoration}),m.push({range:y.modifiedRange,options:diffAddDecoration})}const _=this._diffModel.read(a).activeMovedText.read(a);for(const v of c.movedTexts)f.push({range:v.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(v===_?" currentMove":""),blockPadding:[MovedBlocksLinesFeature.movedCodeBlockPadding,0,MovedBlocksLinesFeature.movedCodeBlockPadding,MovedBlocksLinesFeature.movedCodeBlockPadding]}}),m.push({range:v.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(v===_?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:f,modifiedDecorations:m}}),this._register(applyObservableDecorations(this._editors.original,this._decorations.map(a=>(a==null?void 0:a.originalDecorations)||[]))),this._register(applyObservableDecorations(this._editors.modified,this._decorations.map(a=>(a==null?void 0:a.modifiedDecorations)||[])))}}class Point{static equals(e,t){return e.x===t.x&&e.y===t.y}constructor(e,t){this.x=e,this.y=t}add(e){return new Point(this.x+e.x,this.y+e.y)}deltaX(e){return new Point(this.x+e,this.y)}deltaY(e){return new Point(this.x,this.y+e)}toString(){return"(".concat(this.x,",").concat(this.y,")")}subtract(e){return new Point(this.x-e.x,this.y-e.y)}scale(e){return new Point(this.x*e,this.y*e)}mapComponents(e){return new Point(e(this.x),e(this.y))}isZero(){return this.x===0&&this.y===0}withThreshold(e){return this.mapComponents(t=>t>e?t-e:t<-e?t+e:0)}}function observableCodeEditor(o){return ObservableCodeEditor.get(o)}const si=class si extends Disposable$1{static get(e){let t=si._map.get(e);if(!t){t=new si(e),si._map.set(e,t);const r=e.onDidDispose(()=>{const s=si._map.get(e);s&&(si._map.delete(e),s.dispose(),r.dispose())})}return t}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&(this._currentTransaction=new TransactionImpl(()=>{}))}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){const e=this._currentTransaction;this._currentTransaction=void 0,e.finish()}}constructor(e){var t,r,s;super(),this.editor=e,this._updateCounter=0,this._currentTransaction=void 0,this._model=observableValue(this,this.editor.getModel()),this.model=this._model,this.isReadonly=observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(104)),this._versionId=observableValueOpts({owner:this,lazy:!0},(r=(t=this.editor.getModel())==null?void 0:t.getVersionId())!=null?r:null),this.versionId=this._versionId,this._selections=observableValueOpts({owner:this,equalsFn:equalsIfDefined(itemsEquals(Selection$1.selectionsEqual)),lazy:!0},(s=this.editor.getSelections())!=null?s:null),this.selections=this._selections,this.positions=derivedOpts({owner:this,equalsFn:equalsIfDefined(itemsEquals(Position$1.equals))},a=>{var l,c;return(c=(l=this.selections.read(a))==null?void 0:l.map(d=>d.getStartPosition()))!=null?c:null}),this.isFocused=observableFromEvent(this,a=>{const l=this.editor.onDidFocusEditorWidget(a),c=this.editor.onDidBlurEditorWidget(a);return{dispose(){l.dispose(),c.dispose()}}},()=>this.editor.hasWidgetFocus()),this.isTextFocused=observableFromEvent(this,a=>{const l=this.editor.onDidFocusEditorText(a),c=this.editor.onDidBlurEditorText(a);return{dispose(){l.dispose(),c.dispose()}}},()=>this.editor.hasTextFocus()),this.inComposition=observableFromEvent(this,a=>{const l=this.editor.onDidCompositionStart(()=>{a(void 0)}),c=this.editor.onDidCompositionEnd(()=>{a(void 0)});return{dispose(){l.dispose(),c.dispose()}}},()=>this.editor.inComposition),this.value=derivedWithSetter(this,a=>{var l,c;return this.versionId.read(a),(c=(l=this.model.read(a))==null?void 0:l.getValue())!=null?c:""},(a,l)=>{const c=this.model.get();c!==null&&a!==c.getValue()&&c.setValue(a)}),this.valueIsEmpty=derived(this,a=>{var l;return this.versionId.read(a),((l=this.editor.getModel())==null?void 0:l.getValueLength())===0}),this.cursorSelection=derivedOpts({owner:this,equalsFn:equalsIfDefined(Selection$1.selectionsEqual)},a=>{var l,c;return(c=(l=this.selections.read(a))==null?void 0:l[0])!=null?c:null}),this.cursorPosition=derivedOpts({owner:this,equalsFn:Position$1.equals},a=>{var l,c,d;return(d=(c=(l=this.selections.read(a))==null?void 0:l[0])==null?void 0:c.getPosition())!=null?d:null}),this.cursorLineNumber=derived(this,a=>{var l,c;return(c=(l=this.cursorPosition.read(a))==null?void 0:l.lineNumber)!=null?c:null}),this.onDidType=observableSignal(this),this.onDidPaste=observableSignal(this),this.scrollTop=observableFromEvent(this.editor.onDidScrollChange,()=>this.editor.getScrollTop()),this.scrollLeft=observableFromEvent(this.editor.onDidScrollChange,()=>this.editor.getScrollLeft()),this.layoutInfo=observableFromEvent(this.editor.onDidLayoutChange,()=>this.editor.getLayoutInfo()),this.layoutInfoContentLeft=this.layoutInfo.map(a=>a.contentLeft),this.layoutInfoDecorationsLeft=this.layoutInfo.map(a=>a.decorationsLeft),this.layoutInfoWidth=this.layoutInfo.map(a=>a.width),this.layoutInfoHeight=this.layoutInfo.map(a=>a.height),this.layoutInfoMinimap=this.layoutInfo.map(a=>a.minimap),this.layoutInfoVerticalScrollbarWidth=this.layoutInfo.map(a=>a.verticalScrollbarWidth),this.contentWidth=observableFromEvent(this.editor.onDidContentSizeChange,()=>this.editor.getContentWidth()),this.contentHeight=observableFromEvent(this.editor.onDidContentSizeChange,()=>this.editor.getContentHeight()),this._widgetCounter=0,this.openedPeekWidgets=observableValue(this,0),this._register(this.editor.onBeginUpdate(()=>this._beginUpdate())),this._register(this.editor.onEndUpdate(()=>this._endUpdate())),this._register(this.editor.onDidChangeModel(()=>{this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidType(a=>{this._beginUpdate();try{this._forceUpdate(),this.onDidType.trigger(this._currentTransaction,a)}finally{this._endUpdate()}})),this._register(this.editor.onDidPaste(a=>{this._beginUpdate();try{this._forceUpdate(),this.onDidPaste.trigger(this._currentTransaction,a)}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeModelContent(a=>{var l,c;this._beginUpdate();try{this._versionId.set((c=(l=this.editor.getModel())==null?void 0:l.getVersionId())!=null?c:null,this._currentTransaction,a),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeCursorSelection(a=>{this._beginUpdate();try{this._selections.set(this.editor.getSelections(),this._currentTransaction,a),this._forceUpdate()}finally{this._endUpdate()}})),this.domNode=derived(a=>(this.model.read(a),this.editor.getDomNode()))}forceUpdate(e){this._beginUpdate();try{return this._forceUpdate(),e?e(this._currentTransaction):void 0}finally{this._endUpdate()}}_forceUpdate(){var e,t;this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._versionId.set((t=(e=this.editor.getModel())==null?void 0:e.getVersionId())!=null?t:null,this._currentTransaction,void 0),this._selections.set(this.editor.getSelections(),this._currentTransaction,void 0)}finally{this._endUpdate()}}getOption(e,t=DebugLocation.ofCaller()){return observableFromEvent(this,r=>this.editor.onDidChangeConfiguration(s=>{s.hasChanged(e)&&r(void 0)}),()=>this.editor.getOption(e),t)}setDecorations(e){const t=new DisposableStore$1,r=this.editor.createDecorationsCollection();return t.add(autorunOpts({owner:this,debugName:()=>"Apply decorations from ".concat(e.debugName)},s=>{const a=e.read(s);r.set(a)})),t.add({dispose:()=>{r.clear()}}),t}createOverlayWidget(e){const t="observableOverlayWidget"+this._widgetCounter++,r={getDomNode:()=>e.domNode,getPosition:()=>e.position.get(),getId:()=>t,allowEditorOverflow:e.allowEditorOverflow,getMinContentWidthInPx:()=>e.minContentWidthInPx.get()};this.editor.addOverlayWidget(r);const s=autorun(a=>{e.position.read(a),e.minContentWidthInPx.read(a),this.editor.layoutOverlayWidget(r)});return toDisposable(()=>{s.dispose(),this.editor.removeOverlayWidget(r)})}createContentWidget(e){const t="observableContentWidget"+this._widgetCounter++,r={getDomNode:()=>e.domNode,getPosition:()=>e.position.get(),getId:()=>t,allowEditorOverflow:e.allowEditorOverflow};this.editor.addContentWidget(r);const s=autorun(a=>{e.position.read(a),this.editor.layoutContentWidget(r)});return toDisposable(()=>{s.dispose(),this.editor.removeContentWidget(r)})}observeLineOffsetRange(e,t){const r=this.observePosition(e.map(a=>new Position$1(a.startLineNumber,1)),t),s=this.observePosition(e.map(a=>new Position$1(a.endLineNumberExclusive+1,1)),t);return derived(a=>{var g;r.read(a),s.read(a);const l=e.read(a),c=(g=this.model.read(a))==null?void 0:g.getLineCount(),d=(typeof c<"u"&&l.startLineNumber>c?this.editor.getBottomForLineNumber(c):this.editor.getTopForLineNumber(l.startLineNumber))-this.scrollTop.read(a),u=l.isEmpty?d:this.editor.getBottomForLineNumber(l.endLineNumberExclusive-1)-this.scrollTop.read(a);return new OffsetRange(d,u)})}observePosition(e,t){let r=e.get();const s=observableValueOpts({owner:this,debugName:()=>"topLeftOfPosition".concat(r==null?void 0:r.toString()),equalsFn:equalsIfDefined(Point.equals)},new Point(0,0)),a="observablePositionWidget"+this._widgetCounter++,l=document.createElement("div"),c={getDomNode:()=>l,getPosition:()=>r?{preference:[0],position:e.get()}:null,getId:()=>a,allowEditorOverflow:!1,afterRender:(d,u)=>{const g=this._model.get();g&&r&&r.lineNumber>g.getLineCount()?s.set(new Point(0,this.editor.getBottomForLineNumber(g.getLineCount())-this.scrollTop.get()),void 0):s.set(u?new Point(u.left,u.top):null,void 0)}};return this.editor.addContentWidget(c),t.add(autorun(d=>{r=e.read(d),this.editor.layoutContentWidget(c)})),t.add(toDisposable(()=>{this.editor.removeContentWidget(c)})),s}isTargetHovered(e,t){const r=observableValue("isInjectedTextHovered",!1);return t.add(this.editor.onMouseMove(s=>{const a=e(s);r.set(a,void 0)})),t.add(this.editor.onMouseLeave(s=>{r.set(!1,void 0)})),r}observeLineHeightForPosition(e){return derived(t=>{const r=e instanceof Position$1?e:e.read(t);return r===null?null:(this.getOption(75).read(t),this.editor.getLineHeightForPosition(r))})}observeLineHeightForLine(e){return typeof e=="number"?this.observeLineHeightForPosition(new Position$1(e,1)):derived(t=>{const r=e.read(t);return r===null?null:this.observeLineHeightForPosition(new Position$1(r,1)).read(t)})}observeLineHeightsForLineRange(e){return derived(t=>{const r=e instanceof LineRange?e:e.read(t),s=[];for(let a=r.startLineNumber;a<r.endLineNumberExclusive;a++)s.push(this.observeLineHeightForLine(a).read(t));return s})}};si._map=new Map;let ObservableCodeEditor=si;var __decorate$2H=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2A=function(o,e){return function(t,r){e(t,r,o)}},OverviewRulerFeature_1,ti;let OverviewRulerFeature=(ti=class extends Disposable$1{constructor(e,t,r,s,a,l,c){super(),this._editors=e,this._rootElement=t,this._diffModel=r,this._rootWidth=s,this._rootHeight=a,this._modifiedEditorLayoutInfo=l,this._themeService=c,this.width=OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH;const d=observableFromEvent(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),u=derived(m=>{const _=d.read(m),v=_.getColor(diffOverviewRulerInserted)||(_.getColor(diffInserted)||defaultInsertColor).transparent(2),b=_.getColor(diffOverviewRulerRemoved)||(_.getColor(diffRemoved)||defaultRemoveColor).transparent(2);return{insertColor:v,removeColor:b}}),g=createFastDomNode(document.createElement("div"));g.setClassName("diffViewport"),g.setPosition("absolute");const f=h("div.diffOverview",{style:{position:"absolute",top:"0px",width:OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(appendRemoveOnDispose(f,g.domNode)),this._register(addStandardDisposableListener(f,EventType$1.POINTER_DOWN,m=>{this._editors.modified.delegateVerticalScrollbarPointerDown(m)})),this._register(addDisposableListener(f,EventType$1.MOUSE_WHEEL,m=>{this._editors.modified.delegateScrollFromMouseWheelEvent(m)},{passive:!1})),this._register(appendRemoveOnDispose(this._rootElement,f)),this._register(autorunWithStore((m,_)=>{const v=this._diffModel.read(m),b=this._editors.original.createOverviewRuler("original diffOverviewRuler");b&&(_.add(b),_.add(appendRemoveOnDispose(f,b.getDomNode())));const C=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(C&&(_.add(C),_.add(appendRemoveOnDispose(f,C.getDomNode()))),!b||!C)return;const y=observableSignalFromEvent("viewZoneChanged",this._editors.original.onDidChangeViewZones),S=observableSignalFromEvent("viewZoneChanged",this._editors.modified.onDidChangeViewZones),w=observableSignalFromEvent("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),E=observableSignalFromEvent("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);_.add(autorun(x=>{var M;y.read(x),S.read(x),w.read(x),E.read(x);const L=u.read(x),k=(M=v==null?void 0:v.diff.read(x))==null?void 0:M.mappings;function D(R,N,A){const O=A._getViewModel();return O?R.filter(P=>P.length>0).map(P=>{const F=O.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(P.startLineNumber,1)),B=O.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(P.endLineNumberExclusive,1)),H=B.lineNumber-F.lineNumber;return new OverviewRulerZone(F.lineNumber,B.lineNumber,H,N.toString())}):[]}const I=D((k||[]).map(R=>R.lineRangeMapping.original),L.removeColor,this._editors.original),T=D((k||[]).map(R=>R.lineRangeMapping.modified),L.insertColor,this._editors.modified);b==null||b.setZones(I),C==null||C.setZones(T)})),_.add(autorun(x=>{const L=this._rootHeight.read(x),k=this._rootWidth.read(x),D=this._modifiedEditorLayoutInfo.read(x);if(D){const I=OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH-2*OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH;b.setLayout({top:0,height:L,right:I+OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH,width:OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH}),C.setLayout({top:0,height:L,right:0,width:OverviewRulerFeature_1.ONE_OVERVIEW_WIDTH});const T=this._editors.modifiedScrollTop.read(x),M=this._editors.modifiedScrollHeight.read(x),R=this._editors.modified.getOption(117),N=new ScrollbarState(R.verticalHasArrows?R.arrowSize:0,R.verticalScrollbarSize,0,D.height,M,T);g.setTop(N.getSliderPosition()),g.setHeight(N.getSliderSize())}else g.setTop(0),g.setHeight(0);f.style.height=L+"px",f.style.left=k-OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",g.setWidth(OverviewRulerFeature_1.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}},OverviewRulerFeature_1=ti,ti.ONE_OVERVIEW_WIDTH=15,ti.ENTIRE_DIFF_OVERVIEW_WIDTH=ti.ONE_OVERVIEW_WIDTH*2,ti);OverviewRulerFeature=OverviewRulerFeature_1=__decorate$2H([__param$2A(6,IThemeService)],OverviewRulerFeature);var __decorate$2G=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2z=function(o,e){return function(t,r){e(t,r,o)}};let DiffEditorEditors=class extends Disposable$1{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,r,s,a,l,c,d){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=r,this._argCodeEditorWidgetOptions=s,this._createInnerEditor=a,this._contextKeyService=l,this._instantiationService=c,this._keybindingService=d,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new Emitter$1),this.modifiedScrollTop=observableFromEvent(this,this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=observableFromEvent(this,this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedObs=observableCodeEditor(this.modified),this.originalObs=observableCodeEditor(this.original),this.modifiedModel=this.modifiedObs.model,this.modifiedSelections=observableFromEvent(this,this.modified.onDidChangeCursorSelection,()=>{var u;return(u=this.modified.getSelections())!=null?u:[]}),this.modifiedCursor=derivedOpts({owner:this,equalsFn:Position$1.equals},u=>{var g,f;return(f=(g=this.modifiedSelections.read(u)[0])==null?void 0:g.getPosition())!=null?f:new Position$1(1,1)}),this.originalCursor=observableFromEvent(this,this.original.onDidChangeCursorPosition,()=>{var u;return(u=this.original.getPosition())!=null?u:new Position$1(1,1)}),this.isOriginalFocused=observableCodeEditor(this.original).isFocused,this.isModifiedFocused=observableCodeEditor(this.modified).isFocused,this.isFocused=derived(this,u=>this.isOriginalFocused.read(u)||this.isModifiedFocused.read(u)),this._argCodeEditorWidgetOptions=null,this._register(autorunHandleChanges({changeTracker:{createChangeSummary:()=>({}),handleChange:(u,g)=>(u.didChange(r.editorOptions)&&Object.assign(g,u.change.changedOptions),!0)}},(u,g)=>{r.editorOptions.read(u),this._options.renderSideBySide.read(u),this.modified.updateOptions(this._adjustOptionsForRightHandSide(u,g)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(u,g))}))}_createLeftHandSideEditor(e,t){const r=this._adjustOptionsForLeftHandSide(void 0,e),s=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,r,t),a=this._contextKeyService.createKey("isInDiffLeftEditor",s.hasWidgetFocus());return this._register(s.onDidFocusEditorWidget(()=>a.set(!0))),this._register(s.onDidBlurEditorWidget(()=>a.set(!1))),s}_createRightHandSideEditor(e,t){const r=this._adjustOptionsForRightHandSide(void 0,e),s=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,r,t),a=this._contextKeyService.createKey("isInDiffRightEditor",s.hasWidgetFocus());return this._register(s.onDidFocusEditorWidget(()=>a.set(!0))),this._register(s.onDidBlurEditorWidget(()=>a.set(!1))),s}_constructInnerEditor(e,t,r,s){const a=this._createInnerEditor(e,t,r,s);return this._register(a.onDidContentSizeChange(l=>{const c=this.original.getContentWidth()+this.modified.getContentWidth()+OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH,d=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:d,contentWidth:c,contentHeightChanged:l.contentHeightChanged,contentWidthChanged:l.contentWidthChanged})})),a}_adjustOptionsForLeftHandSide(e,t){const r=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(r.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},r.wordWrapOverride1=this._options.diffWordWrap.get()):(r.wordWrapOverride1="off",r.wordWrapOverride2="off",r.stickyScroll={enabled:!1},r.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),r.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(r.ariaLabel=t.originalAriaLabel),r.ariaLabel=this._updateAriaLabel(r.ariaLabel),r.readOnly=!this._options.originalEditable.get(),r.dropIntoEditor={enabled:!r.readOnly},r.extraEditorClassName="original-in-monaco-diff-editor",r}_adjustOptionsForRightHandSide(e,t){const r=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(r.ariaLabel=t.modifiedAriaLabel),r.ariaLabel=this._updateAriaLabel(r.ariaLabel),r.wordWrapOverride1=this._options.diffWordWrap.get(),r.revealHorizontalRightPadding=EditorOptions.revealHorizontalRightPadding.defaultValue+OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH,r.scrollbar.verticalHasArrows=!1,r.extraEditorClassName="modified-in-monaco-diff-editor",r}_adjustOptionsForSubEditor(e){const t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!1,t.allowVariableLineHeights=!1,t.allowVariableFonts=!1,t.allowVariableFontsInAccessibilityMode=!1,t.scrollbar={...t.scrollbar||{}},t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap={...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 r;e||(e="");const t=localize(111," use {0} to open the accessibility help.",(r=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))==null?void 0:r.getAriaLabel());return this._options.accessibilityVerbose.get()?e+t:e?e.replaceAll(t,""):""}};DiffEditorEditors=__decorate$2G([__param$2z(5,IContextKeyService),__param$2z(6,IInstantiationService),__param$2z(7,IKeybindingService)],DiffEditorEditors);var __decorate$2F=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a};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(e){this.el=e,this.disposables=new DisposableStore$1}get onPointerMove(){return this.disposables.add(new DomEmitter(getWindow$1(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new DomEmitter(getWindow$1(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}__decorate$2F([memoize],MouseEventFactory.prototype,"onPointerMove",null);__decorate$2F([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$1}dispose(){this.disposables.dispose()}}__decorate$2F([memoize],GestureEventFactory.prototype,"onPointerMove",null);__decorate$2F([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$2F([memoize],OrthogonalPointerEventFactory.prototype,"onPointerMove",null);__decorate$2F([memoize],OrthogonalPointerEventFactory.prototype,"onPointerUp",null);const PointerEventsDisabledCssClass="pointer-events-disabled";class Sash extends Disposable$1{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))}get onDidStart(){return this._onDidStart.event}get onDidChange(){return this._onDidChange.event}get onDidReset(){return this._onDidReset.event}get onDidEnd(){return this._onDidEnd.event}set orthogonalStartSash(e){if(this._orthogonalStartSash!==e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=r=>{this.orthogonalStartDragHandleDisposables.clear(),r!==0&&(this._orthogonalStartDragHandle=append$2(this.el,$$m(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add(toDisposable(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(addDisposableListener(this._orthogonalStartDragHandle,"mouseenter",()=>Sash.onMouseEnter(e))),this.orthogonalStartDragHandleDisposables.add(addDisposableListener(this._orthogonalStartDragHandle,"mouseleave",()=>Sash.onMouseLeave(e))))};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=r=>{this.orthogonalEndDragHandleDisposables.clear(),r!==0&&(this._orthogonalEndDragHandle=append$2(this.el,$$m(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add(toDisposable(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(addDisposableListener(this._orthogonalEndDragHandle,"mouseenter",()=>Sash.onMouseEnter(e))),this.orthogonalEndDragHandleDisposables.add(addDisposableListener(this._orthogonalEndDragHandle,"mouseleave",()=>Sash.onMouseLeave(e))))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}}constructor(e,t,r){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$1),this.orthogonalStartDragHandleDisposables=this._register(new DisposableStore$1),this.orthogonalEndSashDisposables=this._register(new DisposableStore$1),this.orthogonalEndDragHandleDisposables=this._register(new DisposableStore$1),this.linkedSash=void 0,this.el=append$2(e,$$m(".monaco-sash")),r.orthogonalEdge&&this.el.classList.add("orthogonal-edge-".concat(r.orthogonalEdge)),isMacintosh&&this.el.classList.add("mac"),this._register(addDisposableListener(this.el,"mousedown",a=>this.onPointerStart(a,new MouseEventFactory(e)))),this._register(addDisposableListener(this.el,"dblclick",a=>this.onPointerDoublePress(a))),this._register(addDisposableListener(this.el,"mouseenter",()=>Sash.onMouseEnter(this))),this._register(addDisposableListener(this.el,"mouseleave",()=>Sash.onMouseLeave(this))),this._register(Gesture.addTarget(this.el)),this._register(addDisposableListener(this.el,EventType.Start,a=>this.onPointerStart(a,new GestureEventFactory(this.el))));let s;this._register(addDisposableListener(this.el,EventType.Tap,a=>{if(s){clearTimeout(s),s=void 0,this.onPointerDoublePress(a);return}clearTimeout(s),s=setTimeout(()=>s=void 0,250)})),typeof r.size=="number"?(this.size=r.size,r.orientation===0?this.el.style.width="".concat(this.size,"px"):this.el.style.height="".concat(this.size,"px")):(this.size=globalSize,this._register(onDidChangeGlobalSize.event(a=>{this.size=a,this.layout()}))),this._register(onDidChangeHoverDelay.event(a=>this.hoverDelay=a)),this.layoutProvider=t,this.orthogonalStartSash=r.orthogonalStartSash,this.orthogonalEndSash=r.orthogonalEndSash,this.orientation=r.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$1.stop(e);let r=!1;if(!e.__orthogonalSashEvent){const v=this.getOrthogonalSash(e);v&&(r=!0,e.__orthogonalSashEvent=!0,v.onPointerStart(e,new OrthogonalPointerEventFactory(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new OrthogonalPointerEventFactory(t))),!this.state)return;const s=this.el.ownerDocument.getElementsByTagName("iframe");for(const v of s)v.classList.add(PointerEventsDisabledCssClass);const a=e.pageX,l=e.pageY,c=e.altKey,d={startX:a,currentX:a,startY:l,currentY:l,altKey:c};this.el.classList.add("active"),this._onDidStart.fire(d);const u=createStyleSheet(this.el),g=()=>{let v="";r?v="all-scroll":this.orientation===1?this.state===1?v="s-resize":this.state===2?v="n-resize":v=isMacintosh?"row-resize":"ns-resize":this.state===1?v="e-resize":this.state===2?v="w-resize":v=isMacintosh?"col-resize":"ew-resize",u.textContent="* { cursor: ".concat(v," !important; }")},f=new DisposableStore$1;g(),r||this.onDidEnablementChange.event(g,null,f);const m=v=>{EventHelper$1.stop(v,!1);const b={startX:a,currentX:v.pageX,startY:l,currentY:v.pageY,altKey:c};this._onDidChange.fire(b)},_=v=>{EventHelper$1.stop(v,!1),u.remove(),this.el.classList.remove("active"),this._onDidEnd.fire(),f.dispose();for(const b of s)b.classList.remove(PointerEventsDisabledCssClass)};t.onPointerMove(m,null,f),t.onPointerUp(_,null,f),f.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 r;const t=(r=e.initialTarget)!=null?r:e.target;if(!(!t||!isHTMLElement(t))&&t.classList.contains("orthogonal-drag-handle"))return t.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}class SashLayout{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(e,t){this._options=e,this.dimensions=t,this.sashLeft=derivedWithSetter(this,r=>{var a;const s=(a=this._sashRatio.read(r))!=null?a:this._options.splitViewDefaultRatio.read(r);return this._computeSashLeft(s,r)},(r,s)=>{const a=this.dimensions.width.get();this._sashRatio.set(r/a,s)}),this._sashRatio=observableValue(this,void 0)}_computeSashLeft(e,t){const r=this.dimensions.width.read(t),s=Math.floor(this._options.splitViewDefaultRatio.read(t)*r),a=this._options.enableSplitViewResizing.read(t)?Math.floor(e*r):s,l=100;return r<=l*2?s:a<l?l:a>r-l?r-l:a}}class DiffEditorSash extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._domNode=e,this._dimensions=t,this._enabled=r,this._boundarySashes=s,this.sashLeft=a,this._resetSash=l,this._sash=this._register(new Sash(this._domNode,{getVerticalSashTop:c=>0,getVerticalSashLeft:c=>this.sashLeft.get(),getVerticalSashHeight:c=>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(c=>{this.sashLeft.set(this._startSashPosition+(c.currentX-c.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register(autorun(c=>{const d=this._boundarySashes.read(c);d&&(this._sash.orthogonalEndSash=d.bottom)})),this._register(autorun(c=>{const d=this._enabled.read(c);this._sash.state=d?3:0,this.sashLeft.read(c),this._dimensions.height.read(c),this._sash.layout()}))}}const To=class To extends Disposable$1{constructor(){super(...arguments),this._id=++To.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,r=0){this._targetEditor.revealLines(e,t,r)}revealLinesInCenter(e,t,r=0){this._targetEditor.revealLinesInCenter(e,t,r)}revealLinesInCenterIfOutsideViewport(e,t,r=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,r)}revealLinesNearTop(e,t,r=0){this._targetEditor.revealLinesNearTop(e,t,r)}revealRange(e,t=0,r=!1,s=!0){this._targetEditor.revealRange(e,t,r,s)}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,r){this._targetEditor.trigger(e,t,r)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}};To.idCounter=0;let DelegatingEditor=To;const diffEditorDefaultOptions={enableSplitViewResizing:!0,renderSideBySide:!0,renderMarginRevertIcon:!0,renderGutterMenu:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0,useTrueInlineView:!1},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0,compactMode:!1};function derivedConstOnceDefined(o,e){return derivedObservableWithCache(o,(t,r)=>r!=null?r:e(t))}var __decorate$2E=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2y=function(o,e){return function(t,r){e(t,r,o)}};let DiffEditorOptions=class{get editorOptions(){return this._options}constructor(e,t){this._accessibilityService=t,this._diffEditorWidth=observableValue(this,0),this._screenReaderMode=observableFromEvent(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=derived(this,s=>this._options.read(s).renderSideBySide&&this._diffEditorWidth.read(s)<=this._options.read(s).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=derived(this,s=>this._options.read(s).renderOverviewRuler),this.renderSideBySide=derived(this,s=>this.compactMode.read(s)&&this.shouldRenderInlineViewInSmartMode.read(s)?!1:this._options.read(s).renderSideBySide&&!(this._options.read(s).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(s)&&!this._screenReaderMode.read(s))),this.readOnly=derived(this,s=>this._options.read(s).readOnly),this.shouldRenderOldRevertArrows=derived(this,s=>!(!this._options.read(s).renderMarginRevertIcon||!this.renderSideBySide.read(s)||this.readOnly.read(s)||this.shouldRenderGutterMenu.read(s))),this.shouldRenderGutterMenu=derived(this,s=>this._options.read(s).renderGutterMenu),this.renderIndicators=derived(this,s=>this._options.read(s).renderIndicators),this.enableSplitViewResizing=derived(this,s=>this._options.read(s).enableSplitViewResizing),this.splitViewDefaultRatio=derived(this,s=>this._options.read(s).splitViewDefaultRatio),this.ignoreTrimWhitespace=derived(this,s=>this._options.read(s).ignoreTrimWhitespace),this.maxComputationTimeMs=derived(this,s=>this._options.read(s).maxComputationTime),this.showMoves=derived(this,s=>this._options.read(s).experimental.showMoves&&this.renderSideBySide.read(s)),this.isInEmbeddedEditor=derived(this,s=>this._options.read(s).isInEmbeddedEditor),this.diffWordWrap=derived(this,s=>this._options.read(s).diffWordWrap),this.originalEditable=derived(this,s=>this._options.read(s).originalEditable),this.diffCodeLens=derived(this,s=>this._options.read(s).diffCodeLens),this.accessibilityVerbose=derived(this,s=>this._options.read(s).accessibilityVerbose),this.diffAlgorithm=derived(this,s=>this._options.read(s).diffAlgorithm),this.showEmptyDecorations=derived(this,s=>this._options.read(s).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=derived(this,s=>this._options.read(s).onlyShowAccessibleDiffViewer),this.compactMode=derived(this,s=>this._options.read(s).compactMode),this.trueInlineDiffRenderingEnabled=derived(this,s=>this._options.read(s).experimental.useTrueInlineView),this.useTrueInlineDiffRendering=derived(this,s=>!this.renderSideBySide.read(s)&&this.trueInlineDiffRenderingEnabled.read(s)),this.hideUnchangedRegions=derived(this,s=>this._options.read(s).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=derived(this,s=>this._options.read(s).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=derived(this,s=>this._options.read(s).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=derived(this,s=>this._options.read(s).hideUnchangedRegions.minimumLineCount),this._model=observableValue(this,void 0),this.shouldRenderInlineViewInSmartMode=this._model.map(this,s=>derivedConstOnceDefined(this,a=>{const l=s==null?void 0:s.diff.read(a);return l?isSimpleDiff(l,this.trueInlineDiffRenderingEnabled.read(a)):void 0})).flatten().map(this,s=>!!s),this.inlineViewHideOriginalLineNumbers=this.compactMode;const r={...e,...validateDiffEditorOptions(e,diffEditorDefaultOptions)};this._options=observableValue(this,r)}updateOptions(e){const t=validateDiffEditorOptions(e,this._options.get()),r={...this._options.get(),...e,...t};this._options.set(r,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}setModel(e){this._model.set(e,void 0)}};DiffEditorOptions=__decorate$2E([__param$2y(1,IAccessibilityService)],DiffEditorOptions);function isSimpleDiff(o,e){return o.mappings.every(t=>isInsertion(t.lineRangeMapping)||isDeletion$1(t.lineRangeMapping)||e&&allowsTrueInlineDiffRendering$1(t.lineRangeMapping))}function isInsertion(o){return o.original.length===0}function isDeletion$1(o){return o.modified.length===0}function validateDiffEditorOptions(o,e){var t,r,s,a,l,c,d,u,g;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?void 0:t.showMoves,e.experimental.showMoves),showEmptyDecorations:boolean((r=o.experimental)==null?void 0:r.showEmptyDecorations,e.experimental.showEmptyDecorations),useTrueInlineView:boolean((s=o.experimental)==null?void 0:s.useTrueInlineView,e.experimental.useTrueInlineView)},hideUnchangedRegions:{enabled:boolean((c=(a=o.hideUnchangedRegions)==null?void 0:a.enabled)!=null?c:(l=o.experimental)==null?void 0:l.collapseUnchangedRegions,e.hideUnchangedRegions.enabled),contextLineCount:clampedInt((d=o.hideUnchangedRegions)==null?void 0:d.contextLineCount,e.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:clampedInt((u=o.hideUnchangedRegions)==null?void 0:u.minimumLineCount,e.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:clampedInt((g=o.hideUnchangedRegions)==null?void 0:g.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),renderGutterMenu:boolean(o.renderGutterMenu,e.renderGutterMenu),compactMode:boolean(o.compactMode,e.compactMode)}}class BaseDropdown extends ActionRunner{constructor(e,t){super(),this._onDidChangeVisibility=this._register(new Emitter$1),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=append$2(e,$$m(".monaco-dropdown")),this._label=append$2(this._element,$$m(".dropdown-label"));let r=t.labelRenderer;r||(r=a=>(a.textContent=t.label||"",null));for(const a of[EventType$1.CLICK,EventType$1.MOUSE_DOWN,EventType.Tap])this._register(addDisposableListener(this.element,a,l=>EventHelper$1.stop(l,!0)));for(const a of[EventType$1.MOUSE_DOWN,EventType.Tap])this._register(addDisposableListener(this._label,a,l=>{isMouseEvent$1(l)&&l.button!==0||(this.visible?this.hide():this.show())}));this._register(addDisposableListener(this._label,EventType$1.KEY_DOWN,a=>{const l=new StandardKeyboardEvent(a);(l.equals(3)||l.equals(10))&&(EventHelper$1.stop(a,!0),this.visible?this.hide():this.show())}));const s=r(this._label);s&&this._register(s),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{get onDidChangeVisibility(){return this._onDidChangeVisibility.event}constructor(e,t,r,s=Object.create(null)){super(null,e,s),this.actionItem=null,this._onDidChangeVisibility=this._register(new Emitter$1),this.menuActionsOrProvider=t,this.contextMenuProvider=r,this.options=s,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(e){this.actionItem=e;const t=a=>(this.element=append$2(a,$$m("a.action-label")),this.renderLabel(this.element)),r=Array.isArray(this.menuActionsOrProvider),s={contextMenuProvider:this.contextMenuProvider,labelRenderer:t,menuAsChild:this.options.menuAsChild,actions:r?this.menuActionsOrProvider:void 0,actionProvider:r?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new DropdownMenu(e,s)),this._register(this.dropdownMenu.onDidChangeVisibility(a=>{var l;(l=this.element)==null||l.setAttribute("aria-expanded","".concat(a)),this._onDidChangeVisibility.fire(a)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const a=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return a.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}renderLabel(e){var r;let t=[];return typeof this.options.classNames=="string"?t=this.options.classNames.split(/\s+/g).filter(s=>!!s):this.options.classNames&&(t=this.options.classNames),t.find(s=>s==="icon")||t.push("codicon"),e.classList.add(...t),this._action.label&&this._register(getBaseLayerHoverDelegate().setupManagedHover((r=this.options.hoverDelegate)!=null?r:getDefaultHoverDelegate("mouse"),e,this._action.label)),null}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:this.action.label&&(e=this.action.label),e!=null?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.show()}updateEnabled(){var t,r;const e=!this.action.enabled;(t=this.actionItem)==null||t.classList.toggle("disabled",e),(r=this.element)==null||r.classList.toggle("disabled",e)}}const ACTION_MIN_WIDTH=24;class ToolBar extends Disposable$1{get onDidChangeDropdownVisibility(){return this._onDidChangeDropdownVisibility.event}constructor(e,t,r={orientation:0}){var s;if(super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new EventMultiplexer),this.originalPrimaryActions=[],this.originalSecondaryActions=[],this.hiddenActions=[],this.disposables=this._register(new DisposableStore$1),r.hoverDelegate=(s=r.hoverDelegate)!=null?s:this._register(createInstantHoverDelegate()),this.options=r,this.toggleMenuAction=this._register(new ToggleMenuAction(()=>{var a;return(a=this.toggleMenuActionViewItem)==null?void 0:a.show()},r.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new ActionBar(this.element,{orientation:r.orientation,ariaLabel:r.ariaLabel,actionRunner:r.actionRunner,allowContextMenu:r.allowContextMenu,highlightToggledItems:r.highlightToggledItems,hoverDelegate:r.hoverDelegate,actionViewItemProvider:(a,l)=>{var c;if(a.id===ToggleMenuAction.ID)return this.toggleMenuActionViewItem=new DropdownMenuActionViewItem(a,{getActions:()=>this.toggleMenuAction.menuActions},t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:ThemeIcon.asClassNameArray((c=r.moreIcon)!=null?c:Codicon.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(r.actionViewItemProvider){const d=r.actionViewItemProvider(a,l);if(d)return d}if(a instanceof SubmenuAction){const d=new DropdownMenuActionViewItem(a,a.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:a.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return d.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(d),this.disposables.add(this._onDidChangeDropdownVisibility.add(d.onDidChangeVisibility)),d}}})),this.options.responsive){this.element.classList.add("responsive");const a=new ResizeObserver(()=>{this.setToolbarMaxWidth(this.element.getBoundingClientRect().width)});a.observe(this.element),this._store.add(toDisposable(()=>a.disconnect()))}}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}set context(e){var t;this.actionBar.context=e,(t=this.toggleMenuActionViewItem)==null||t.setActionContext(e);for(const r of this.submenuActionViewItems)r.setActionContext(e)}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}getItemWidth(e){return this.actionBar.getWidth(e)}setActions(e,t){this.clear(),this.originalPrimaryActions=e?e.slice(0):[],this.originalSecondaryActions=t?t.slice(0):[];const r=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),r.push(this.toggleMenuAction)),r.length>0&&this.options.trailingSeparator&&r.push(new Separator),r.forEach(s=>{var a,l;this.actionBar.push(s,{icon:(a=this.options.icon)!=null?a:!0,label:(l=this.options.label)!=null?l:!1,keybinding:this.getKeybindingLabel(s)})}),this.options.responsive&&(this.hiddenActions.length=0,this.setToolbarMaxWidth(this.element.getBoundingClientRect().width))}getKeybindingLabel(e){var r,s,a;const t=(s=(r=this.options).getKeyBinding)==null?void 0:s.call(r,e);return(a=t==null?void 0:t.getLabel())!=null?a:void 0}getItemsWidthResponsive(){return this.actionBar.length()*ACTION_MIN_WIDTH}setToolbarMaxWidth(e){var r,s,a,l;if(this.actionBar.isEmpty()||this.getItemsWidthResponsive()<=e&&this.hiddenActions.length===0)return;if(this.getItemsWidthResponsive()>e)for(;this.getItemsWidthResponsive()>e&&this.actionBar.length()>0;){const c=this.originalPrimaryActions.length-this.hiddenActions.length-1;if(c<0)break;const d=Math.min(ACTION_MIN_WIDTH,this.getItemWidth(c)),u=this.originalPrimaryActions[c];this.hiddenActions.unshift({action:u,size:d}),this.actionBar.pull(c),this.originalSecondaryActions.length===0&&this.hiddenActions.length===1&&this.actionBar.push(this.toggleMenuAction,{icon:(r=this.options.icon)!=null?r:!0,label:(s=this.options.label)!=null?s:!1,keybinding:this.getKeybindingLabel(this.toggleMenuAction)})}else for(;this.hiddenActions.length>0;){const c=this.hiddenActions.shift();if(this.getItemsWidthResponsive()+c.size>e){this.hiddenActions.unshift(c);break}this.actionBar.push(c.action,{icon:(a=this.options.icon)!=null?a:!0,label:(l=this.options.label)!=null?l:!1,keybinding:this.getKeybindingLabel(c.action),index:this.originalPrimaryActions.length-this.hiddenActions.length-1}),this.originalSecondaryActions.length===0&&this.hiddenActions.length===1&&(this.toggleMenuAction.menuActions=[],this.actionBar.pull(this.actionBar.length()-1))}const t=this.hiddenActions.map(c=>c.action);if(this.originalSecondaryActions.length>0||t.length>0){const c=this.originalSecondaryActions.slice(0);this.toggleMenuAction.menuActions=Separator.join(t,c)}}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}const Ro=class Ro extends Action{constructor(e,t){t=t||localize(17,"More Actions..."),super(Ro.ID,t,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}};Ro.ID="toolbar.toggle.more";let ToggleMenuAction=Ro;class ModifierLabelProvider{constructor(e,t,r=t){this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=r}toLabel(e,t,r){if(t.length===0)return null;const s=[];for(let a=0,l=t.length;a<l;a++){const c=t[a],d=r(c);if(d===null)return null;s[a]=_simpleAsString(c,d,this.modifierLabels[e])}return s.join(" ")}}const UILabelProvider=new ModifierLabelProvider({ctrlKey:"⌃",shiftKey:"⇧",altKey:"⌥",metaKey:"⌘",separator:""},{ctrlKey:localize(35,"Ctrl"),shiftKey:localize(36,"Shift"),altKey:localize(37,"Alt"),metaKey:localize(38,"Windows"),separator:"+"},{ctrlKey:localize(39,"Ctrl"),shiftKey:localize(40,"Shift"),altKey:localize(41,"Alt"),metaKey:localize(42,"Super"),separator:"+"}),AriaLabelProvider=new ModifierLabelProvider({ctrlKey:localize(43,"Control"),shiftKey:localize(44,"Shift"),altKey:localize(45,"Option"),metaKey:localize(46,"Command"),separator:"+"},{ctrlKey:localize(47,"Control"),shiftKey:localize(48,"Shift"),altKey:localize(49,"Alt"),metaKey:localize(50,"Windows"),separator:"+"},{ctrlKey:localize(51,"Control"),shiftKey:localize(52,"Shift"),altKey:localize(53,"Alt"),metaKey:localize(54,"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 r=[];return o.ctrlKey&&r.push(t.ctrlKey),o.shiftKey&&r.push(t.shiftKey),o.altKey&&r.push(t.altKey),o.metaKey&&r.push(t.metaKey),e!==""&&r.push(e),r.join(t.separator)}function isLocalizedString(o){return!!o&&typeof o=="object"&&typeof o.original=="string"&&typeof o.value=="string"}function isICommandActionToggleInfo(o){return o?o.condition!==void 0:!1}var 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={}));const No=class No extends Disposable$1{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(No.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.pendingClose=void 0,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(e=>this.onDidChangeItemsExternal(e)))}onDidChangeItemsExternal(e){var t,r;this._onDidChangeStorage.pause();try{(t=e.changed)==null||t.forEach((s,a)=>this.acceptExternal(a,s)),(r=e.deleted)==null||r.forEach(s=>this.acceptExternal(s,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,t){if(this.state===StorageState.Closed)return;let r=!1;isUndefinedOrNull(t)?r=this.cache.delete(e):this.cache.get(e)!==t&&(this.cache.set(e,t),r=!0),r&&this._onDidChangeStorage.fire({key:e,external:!0})}get(e,t){const r=this.cache.get(e);return isUndefinedOrNull(r)?t:r}getBoolean(e,t){const r=this.get(e);return isUndefinedOrNull(r)?t:r==="true"}getNumber(e,t){const r=this.get(e);return isUndefinedOrNull(r)?t:parseInt(r,10)}async set(e,t,r=!1){if(this.state===StorageState.Closed)return;if(isUndefinedOrNull(t))return this.delete(e,r);const s=isObject$3(t)||Array.isArray(t)?stringify(t):String(t);if(this.cache.get(e)!==s)return this.cache.set(e,s),this.pendingInserts.set(e,s),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:r}),this.doFlush()}async delete(e,t=!1){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}async flushPending(){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()})}async flush(e){if(!(this.state===StorageState.Closed||this.pendingClose))return this.doFlush(e)}async doFlush(e){return this.options.hint===StorageHint.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),e)}async whenFlushed(){if(this.hasPending)return new Promise(e=>this.whenFlushedCallbacks.push(e))}};No.DEFAULT_FLUSH_DELAY=100;let Storage=No;class InMemoryStorageDatabase{constructor(){this.onDidChangeItemsExternal=Event$1.None,this.items=new Map}async updateItems(e){var t,r;(t=e.insert)==null||t.forEach((s,a)=>this.items.set(a,s)),(r=e.delete)==null||r.forEach(s=>this.items.delete(s))}}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(t){}return Object.create(null)}const Ao=class Ao extends Disposable$1{constructor(e={flushInterval:Ao.DEFAULT_FLUSH_INTERVAL}){super(),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.runFlushWhenIdle=this._register(new MutableDisposable),this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0,this.flushWhenIdleScheduler=this._register(new RunOnceScheduler(()=>this.doFlushWhenIdle(),e.flushInterval))}onDidChangeValue(e,t,r){return Event$1.filter(this._onDidChangeValue.event,s=>s.scope===e&&(t===void 0||s.key===t),r)}doFlushWhenIdle(){this.runFlushWhenIdle.value=runWhenGlobalIdle(()=>{this.shouldFlushWhenIdle()&&this.flush(),this.flushWhenIdleScheduler.schedule()})}shouldFlushWhenIdle(){return!0}emitDidChangeValue(e,t){const{key:r,external:s}=t;if(r===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:r,target:this.getKeyTargets(e)[r],external:s})}get(e,t,r){var s;return(s=this.getStorage(t))==null?void 0:s.get(e,r)}getBoolean(e,t,r){var s;return(s=this.getStorage(t))==null?void 0:s.getBoolean(e,r)}getNumber(e,t,r){var s;return(s=this.getStorage(t))==null?void 0:s.getNumber(e,r)}store(e,t,r,s,a=!1){if(isUndefinedOrNull(t)){this.remove(e,r,a);return}this.withPausedEmitters(()=>{var l;this.updateKeyTarget(e,r,s),(l=this.getStorage(r))==null||l.set(e,t,a)})}remove(e,t,r=!1){this.withPausedEmitters(()=>{var s;this.updateKeyTarget(e,t,void 0),(s=this.getStorage(t))==null||s.delete(e,r)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,r,s=!1){var l,c;const a=this.getKeyTargets(t);typeof r=="number"?a[e]!==r&&(a[e]=r,(l=this.getStorage(t))==null||l.set(TARGET_KEY,JSON.stringify(a),s)):typeof a[e]=="number"&&(delete a[e],(c=this.getStorage(t))==null||c.set(TARGET_KEY,JSON.stringify(a),s))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(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)}async flush(e=WillSaveStateReason.NONE){var a,l,c,d,u,g;this._onWillSaveState.fire({reason:e});const t=this.getStorage(-1),r=this.getStorage(0),s=this.getStorage(1);switch(e){case WillSaveStateReason.NONE:await Promises.settled([(a=t==null?void 0:t.whenFlushed())!=null?a:Promise.resolve(),(l=r==null?void 0:r.whenFlushed())!=null?l:Promise.resolve(),(c=s==null?void 0:s.whenFlushed())!=null?c:Promise.resolve()]);break;case WillSaveStateReason.SHUTDOWN:await Promises.settled([(d=t==null?void 0:t.flush(0))!=null?d:Promise.resolve(),(u=r==null?void 0:r.flush(0))!=null?u:Promise.resolve(),(g=s==null?void 0:s.flush(0))!=null?g:Promise.resolve()]);break}}};Ao.DEFAULT_FLUSH_INTERVAL=60*1e3;let AbstractStorageService=Ao;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}}shouldFlushWhenIdle(){return!1}}function overrideStyles(o,e){const t={...e};for(const r in o){const s=o[r];t[r]=s!==void 0?asCssVariable(s):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(radioActiveForeground),asCssVariable(radioActiveBackground),asCssVariable(radioActiveBorder),asCssVariable(radioInactiveForeground),asCssVariable(radioInactiveBackground),asCssVariable(radioInactiveBorder),asCssVariable(radioInactiveHoverBackground);const defaultCheckboxStyles={checkboxBackground:asCssVariable(checkboxBackground),checkboxBorder:asCssVariable(checkboxBorder),checkboxForeground:asCssVariable(checkboxForeground),checkboxDisabledBackground:asCssVariable(checkboxDisabledBackground),checkboxDisabledForeground:asCssVariable(checkboxDisabledForeground)};asCssVariable(editorWidgetBackground),asCssVariable(editorWidgetForeground),asCssVariable(widgetShadow),asCssVariable(widgetBorder),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),listDropOverBackground:asCssVariable(listDropOverBackground),listDropBetweenBackground:asCssVariable(listDropBetweenBackground),listSelectionOutline:asCssVariable(activeContrastBorder),listHoverOutline:asCssVariable(activeContrastBorder),treeIndentGuidesStroke:asCssVariable(treeIndentGuidesStroke),treeInactiveIndentGuidesStroke:asCssVariable(treeInactiveIndentGuidesStroke),treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:asCssVariable(scrollbarShadow),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,listDropOverBackground:void 0,listDropBetweenBackground:void 0,listInactiveSelectionBackground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusBackground:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listFocusAndSelectionForeground:void 0,listFocusAndSelectionOutline:void 0,listInactiveFocusForeground:void 0,tableColumnsBorder:void 0,tableOddRowsBackgroundColor:void 0,treeIndentGuidesStroke:void 0,treeInactiveIndentGuidesStroke:void 0,treeStickyScrollBackground:void 0,treeStickyScrollBorder:void 0,treeStickyScrollShadow:void 0},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)};function hasNativeContextMenu(o,e){if(isWeb)return!1;const t=hasNativeTitlebar(o,e),r=o.getValue("window");return(r==null?void 0:r.menuStyle)==="native"?!(!isMacintosh&&!t):(r==null?void 0:r.menuStyle)==="custom"?!1:t}function hasNativeTitlebar(o,e){return e||(e=getTitleBarStyle(o)),e==="native"}function getTitleBarStyle(o){if(isWeb)return"custom";const e=o.getValue("window");if(e){if(isMacintosh&&e.nativeTabs===!0||isMacintosh&&e.nativeFullScreen===!1)return"native";const s=e.titleBarStyle;if(s==="native"||s==="custom")return s}return"custom"}function getWindowControlsStyle(o){if(isWeb||isMacintosh||getTitleBarStyle(o)==="native")return"native";const e=o.getValue("window"),t=e==null?void 0:e.controlsStyle;return t==="custom"||t==="hidden"?t:"native"}var __decorate$2D=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2x=function(o,e){return function(t,r){e(t,r,o)}};function getFlatContextMenuActions(o,e){const t=[];return getContextMenuActionsImpl(o,t),t}function getContextMenuActionsImpl(o,e,t){const r=ModifierKeyEmitter.getInstance(),s=r.keyStatus.altKey||(isWindows||isLinux)&&r.keyStatus.shiftKey;fillInActions(o,e,s,a=>a==="navigation")}function getActionBarActions(o,e,t,r){const s={primary:[],secondary:[]};return fillInActionBarActions(o,s,e,t,r),s}function getFlatActionBarActions(o,e,t,r){const s=[];return fillInActionBarActions(o,s,e,t,r),s}function fillInActionBarActions(o,e,t,r,s){fillInActions(o,e,!1,typeof t=="string"?l=>l===t:t,r,s)}function fillInActions(o,e,t,r=l=>l==="navigation",s=()=>!1,a=!1){let l,c;Array.isArray(e)?(l=e,c=e):(l=e.primary,c=e.secondary);const d=new Set;for(const[u,g]of o){let f;r(u)?(f=l,f.length>0&&a&&f.push(new Separator)):(f=c,f.length>0&&f.push(new Separator));for(let m of g){t&&(m=m instanceof MenuItemAction&&m.alt?m.alt:m);const _=f.push(m);m instanceof SubmenuAction&&d.add({group:u,action:m,index:_-1})}}for(const{group:u,action:g,index:f}of d){const m=r(u)?l:c,_=g.actions;s(g,u,m.length)&&m.splice(f,1,..._)}}let MenuEntryActionViewItem=class extends ActionViewItem{constructor(e,t,r,s,a,l,c,d){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,keybindingNotRenderedWithLabel:t==null?void 0:t.keybindingNotRenderedWithLabel}),this._options=t,this._keybindingService=r,this._notificationService=s,this._contextKeyService=a,this._themeService=l,this._contextMenuService=c,this._accessibilityService=d,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}async onClick(e){e.preventDefault(),e.stopPropagation();try{await 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 r=()=>{var a;const s=!!((a=this._menuItemAction.alt)!=null&&a.enabled)&&(!this._accessibilityService.isMotionReduced()||t)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&t);s!==this._wantsAltCommand&&(this._wantsAltCommand=s,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(r)),this._register(addDisposableListener(e,"mouseleave",s=>{t=!1,r()})),this._register(addDisposableListener(e,"mouseenter",s=>{t=!0,r()})),r()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var a;const e=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),t=e&&e.getLabel(),r=this._commandAction.tooltip||this._commandAction.label;let s=t?localize(1644,"{0} ({1})",r,t):r;if(!this._wantsAltCommand&&((a=this._menuItemAction.alt)!=null&&a.enabled)){const l=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,c=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),d=c&&c.getLabel(),u=d?localize(1645,"{0} ({1})",l,d):l;s=localize(1646,"{0}\n[{1}] {2}",s,UILabelProvider.modifierLabels[OS].altKey,u)}return s}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:r}=this;if(!t||!r)return;const s=this._commandAction.checked&&isICommandActionToggleInfo(e.toggled)&&e.toggled.icon?e.toggled.icon:e.icon;if(s)if(ThemeIcon.isThemeIcon(s)){const a=ThemeIcon.asClassNameArray(s);r.classList.add(...a),this._itemClassDispose.value=toDisposable(()=>{r.classList.remove(...a)})}else r.style.backgroundImage=isDark(this._themeService.getColorTheme().type)?asCSSUrl(s.dark):asCSSUrl(s.light),r.classList.add("icon"),this._itemClassDispose.value=combinedDisposable(toDisposable(()=>{r.style.backgroundImage="",r.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};MenuEntryActionViewItem=__decorate$2D([__param$2x(2,IKeybindingService),__param$2x(3,INotificationService),__param$2x(4,IContextKeyService),__param$2x(5,IThemeService),__param$2x(6,IContextMenuService),__param$2x(7,IAccessibilityService)],MenuEntryActionViewItem);class TextOnlyMenuEntryActionViewItem extends MenuEntryActionViewItem{render(e){var t,r;this.options.label=!0,this.options.icon=!1,super.render(e),e.classList.add("text-only"),e.classList.toggle("use-comma",(r=(t=this._options)==null?void 0:t.useComma)!=null?r:!1)}updateLabel(){var t;const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const r=TextOnlyMenuEntryActionViewItem._symbolPrintEnter(e);(t=this._options)!=null&&t.conversational?this.label.textContent=localize(1647,"{1} to {0}",this._action.label,r):this.label.textContent=localize(1648,"{0} ({1})",this._action.label,r)}}static _symbolPrintEnter(e){var t;return(t=e.getLabel())==null?void 0:t.replace(/\benter\b/gi,"⏎").replace(/\bEscape\b/gi,"Esc")}}let SubmenuEntryActionViewItem=class extends DropdownMenuActionViewItem{constructor(e,t,r,s,a){var c,d,u;const l={...t,menuAsChild:(c=t==null?void 0:t.menuAsChild)!=null?c:!1,classNames:(d=t==null?void 0:t.classNames)!=null?d:ThemeIcon.isThemeIcon(e.item.icon)?ThemeIcon.asClassName(e.item.icon):void 0,keybindingProvider:(u=t==null?void 0:t.keybindingProvider)!=null?u:(g=>r.lookupKeybinding(g.id))};super(e,{getActions:()=>e.actions},s,l),this._keybindingService=r,this._contextMenuService=s,this._themeService=a}render(e){super.render(e),assertType(this.element),e.classList.add("menu-entry");const t=this._action,{icon:r}=t.item;if(r&&!ThemeIcon.isThemeIcon(r)){this.element.classList.add("icon");const s=()=>{this.element&&(this.element.style.backgroundImage=isDark(this._themeService.getColorTheme().type)?asCSSUrl(r.dark):asCSSUrl(r.light))};s(),this._register(this._themeService.onDidColorThemeChange(()=>{s()}))}}};SubmenuEntryActionViewItem=__decorate$2D([__param$2x(2,IKeybindingService),__param$2x(3,IContextMenuService),__param$2x(4,IThemeService)],SubmenuEntryActionViewItem);let DropdownWithDefaultActionViewItem=class extends BaseActionViewItem{constructor(e,t,r,s,a,l,c,d){var m,_,v;super(null,e),this._keybindingService=r,this._notificationService=s,this._contextMenuService=a,this._menuService=l,this._instaService=c,this._storageService=d,this._defaultActionDisposables=this._register(new DisposableStore$1),this._container=null,this._options=t,this._storageKey="".concat(e.item.submenu.id,"_lastActionId");let u;const g=t!=null&&t.togglePrimaryAction?d.get(this._storageKey,1):void 0;g&&(u=e.actions.find(b=>g===b.id)),u||(u=e.actions[0]),this._defaultAction=this._defaultActionDisposables.add(this._instaService.createInstance(MenuEntryActionViewItem,u,{keybinding:this._getDefaultActionKeybindingLabel(u)}));const f={keybindingProvider:b=>this._keybindingService.lookupKeybinding(b.id),...t,menuAsChild:(m=t==null?void 0:t.menuAsChild)!=null?m:!0,classNames:(_=t==null?void 0:t.classNames)!=null?_:["codicon","codicon-chevron-down"],actionRunner:(v=t==null?void 0:t.actionRunner)!=null?v:this._register(new ActionRunner)};this._dropdown=this._register(new DropdownMenuActionViewItem(e,e.actions,this._contextMenuService,f)),t!=null&&t.togglePrimaryAction&&this._register(this._dropdown.actionRunner.onDidRun(b=>{b.action instanceof MenuItemAction&&this.update(b.action)}))}update(e){var t;(t=this._options)!=null&&t.togglePrimaryAction&&this._storageService.store(this._storageKey,e.id,1,1),this._defaultActionDisposables.clear(),this._defaultAction=this._defaultActionDisposables.add(this._instaService.createInstance(MenuEntryActionViewItem,e,{keybinding:this._getDefaultActionKeybindingLabel(e)})),this._defaultAction.actionRunner=this._defaultActionDisposables.add(new class extends ActionRunner{async runAction(r,s){await r.run(void 0)}}),this._container&&this._defaultAction.render(prepend$2(this._container,$$m(".action-container")))}_getDefaultActionKeybindingLabel(e){var r;let t;if((r=this._options)!=null&&r.renderKeybindingWithDefaultActionLabel){const s=this._keybindingService.lookupKeybinding(e.id);s&&(t="(".concat(s.getLabel(),")"))}return t}setActionContext(e){super.setActionContext(e),this._defaultAction.setActionContext(e),this._dropdown.setActionContext(e)}set actionRunner(e){super.actionRunner=e,this._defaultAction.actionRunner=e,this._dropdown.actionRunner=e}get actionRunner(){return super.actionRunner}render(e){this._container=e,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const t=$$m(".action-container");this._defaultAction.render(append$2(this._container,t)),this._register(addDisposableListener(t,EventType$1.KEY_DOWN,s=>{const a=new StandardKeyboardEvent(s);a.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),a.stopPropagation())}));const r=$$m(".dropdown-action-container");this._dropdown.render(append$2(this._container,r)),this._register(addDisposableListener(r,EventType$1.KEY_DOWN,s=>{var l;const a=new StandardKeyboardEvent(s);a.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(l=this._defaultAction.element)==null||l.focus(),a.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))}};DropdownWithDefaultActionViewItem=__decorate$2D([__param$2x(2,IKeybindingService),__param$2x(3,INotificationService),__param$2x(4,IContextMenuService),__param$2x(5,IMenuService),__param$2x(6,IInstantiationService),__param$2x(7,IStorageService)],DropdownWithDefaultActionViewItem);let SubmenuEntrySelectActionViewItem=class extends SelectActionViewItem{constructor(e,t,r){super(null,e,e.actions.map(s=>({text:s.id===Separator.ID?"─────────":s.label,isDisabled:!s.enabled})),0,t,defaultSelectBoxStyles,{ariaLabel:e.tooltip,optionsAsChildren:!0,useCustomDrawn:!hasNativeContextMenu(r)}),this.select(Math.max(0,e.actions.findIndex(s=>s.checked)))}render(e){super.render(e),e.style.borderColor=asCssVariable(selectBorder)}runAction(e,t){const r=this.action.actions[t];r&&this.actionRunner.run(r)}};SubmenuEntrySelectActionViewItem=__decorate$2D([__param$2x(1,IContextViewService),__param$2x(2,IConfigurationService)],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.isSplitButton?o.createInstance(DropdownWithDefaultActionViewItem,e,{...t,togglePrimaryAction:typeof e.item.isSplitButton!="boolean"?e.item.isSplitButton.togglePrimaryAction:!1}):o.createInstance(SubmenuEntryActionViewItem,e,t):void 0}var __decorate$2C=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2w=function(o,e){return function(t,r){e(t,r,o)}},PersistedMenuHideState_1,MenuInfo_1;let MenuService=class{constructor(e,t,r){this._commandService=e,this._keybindingService=t,this._hiddenStates=new PersistedMenuHideState(r)}createMenu(e,t,r){return new MenuImpl(e,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...r},this._commandService,this._keybindingService,t)}getMenuActions(e,t,r){const s=new MenuImpl(e,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...r},this._commandService,this._keybindingService,t),a=s.getActions(r);return s.dispose(),a}resetHiddenStates(e){this._hiddenStates.reset(e)}};MenuService=__decorate$2C([__param$2w(0,ICommandService),__param$2w(1,IKeybindingService),__param$2w(2,IStorageService)],MenuService);var en;let PersistedMenuHideState=(en=class{constructor(e){this._storageService=e,this._disposables=new DisposableStore$1,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(t){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 r;return(r=this._hiddenByDefaultCache.get("".concat(e.id,"/").concat(t)))!=null?r:!1}setDefaultState(e,t,r){this._hiddenByDefaultCache.set("".concat(e.id,"/").concat(t),r)}isHidden(e,t){var a,l;const r=this._isHiddenByDefault(e,t),s=(l=(a=this._data[e.id])==null?void 0:a.includes(t))!=null?l:!1;return r?!s:s}updateHidden(e,t,r){this._isHiddenByDefault(e,t)&&(r=!r);const a=this._data[e.id];if(r)a?a.indexOf(t)<0&&a.push(t):this._data[e.id]=[t];else if(a){const l=a.indexOf(t);l>=0&&removeFastWithoutKeepingOrder(a,l),a.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_1=en,en._key="menu.hiddenCommands",en);PersistedMenuHideState=PersistedMenuHideState_1=__decorate$2C([__param$2w(0,IStorageService)],PersistedMenuHideState);class MenuInfoSnapshot{constructor(e,t){this._id=e,this._collectContextKeysForSubmenus=t,this._menuGroups=[],this._allMenuIds=new Set,this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get allMenuIds(){return this._allMenuIds}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._allMenuIds.clear(),this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const e=this._sort(MenuRegistry.getMenuItems(this._id));let t;for(const r of e){const s=r.group||"";(!t||t[0]!==s)&&(t=[s,[]],this._menuGroups.push(t)),t[1].push(r),this._collectContextKeysAndSubmenuIds(r)}this._allMenuIds.add(this._id)}_sort(e){return e}_collectContextKeysAndSubmenuIds(e){if(MenuInfoSnapshot._fillInKbExprKeys(e.when,this._structureContextKeys),isIMenuItem(e)){if(e.command.precondition&&MenuInfoSnapshot._fillInKbExprKeys(e.command.precondition,this._preconditionContextKeys),e.command.toggled){const t=e.command.toggled.condition||e.command.toggled;MenuInfoSnapshot._fillInKbExprKeys(t,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&(MenuRegistry.getMenuItems(e.submenu).forEach(this._collectContextKeysAndSubmenuIds,this),this._allMenuIds.add(e.submenu))}static _fillInKbExprKeys(e,t){if(e)for(const r of e.keys())t.add(r)}}let MenuInfo=MenuInfo_1=class extends MenuInfoSnapshot{constructor(e,t,r,s,a,l){super(e,r),this._hiddenStates=t,this._commandService=s,this._keybindingService=a,this._contextKeyService=l,this.refresh()}createActionGroups(e){const t=[];for(const r of this._menuGroups){const[s,a]=r;let l;for(const c of a)if(this._contextKeyService.contextMatchesRules(c.when)){const d=isIMenuItem(c);d&&this._hiddenStates.setDefaultState(this._id,c.command.id,!!c.isHiddenByDefault);const u=createMenuHide(this._id,d?c.command:c,this._hiddenStates);if(d){const g=createConfigureKeybindingAction(this._commandService,this._keybindingService,c.command.id,c.when);(l!=null?l:l=[]).push(new MenuItemAction(c.command,c.alt,e,u,g,this._contextKeyService,this._commandService))}else{const g=new MenuInfo_1(c.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._keybindingService,this._contextKeyService).createActionGroups(e),f=Separator.join(...g.map(m=>m[1]));f.length>0&&(l!=null?l:l=[]).push(new SubmenuItemAction(c,u,f))}}l&&l.length>0&&t.push([s,l])}return t}_sort(e){return e.sort(MenuInfo_1._compareMenuItems)}static _compareMenuItems(e,t){const r=e.group,s=t.group;if(r!==s){if(r){if(!s)return-1}else return 1;if(r==="navigation")return-1;if(s==="navigation")return 1;const c=r.localeCompare(s);if(c!==0)return c}const a=e.order||0,l=t.order||0;return a<l?-1:a>l?1:MenuInfo_1._compareTitles(isIMenuItem(e)?e.command.title:e.title,isIMenuItem(t)?t.command.title:t.title)}static _compareTitles(e,t){const r=typeof e=="string"?e:e.original,s=typeof t=="string"?t:t.original;return r.localeCompare(s)}};MenuInfo=MenuInfo_1=__decorate$2C([__param$2w(3,ICommandService),__param$2w(4,IKeybindingService),__param$2w(5,IContextKeyService)],MenuInfo);let MenuImpl=class{constructor(e,t,r,s,a,l){this._disposables=new DisposableStore$1,this._menuInfo=new MenuInfo(e,t,r.emitEventsForSubmenuChanges,s,a,l);const c=new RunOnceScheduler(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},r.eventDebounceDelay);this._disposables.add(c),this._disposables.add(MenuRegistry.onDidChangeMenu(f=>{for(const m of this._menuInfo.allMenuIds)if(f.has(m)){c.schedule();break}}));const d=this._disposables.add(new DisposableStore$1),u=f=>{let m=!1,_=!1,v=!1;for(const b of f)if(m=m||b.isStructuralChange,_=_||b.isEnablementChange,v=v||b.isToggleChange,m&&_&&v)break;return{menu:this,isStructuralChange:m,isEnablementChange:_,isToggleChange:v}},g=()=>{d.add(l.onDidChangeContext(f=>{const m=f.affectsSome(this._menuInfo.structureContextKeys),_=f.affectsSome(this._menuInfo.preconditionContextKeys),v=f.affectsSome(this._menuInfo.toggledContextKeys);(m||_||v)&&this._onDidChange.fire({menu:this,isStructuralChange:m,isEnablementChange:_,isToggleChange:v})})),d.add(t.onDidChange(f=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new DebounceEmitter({onWillAddFirstListener:g,onDidRemoveLastListener:d.clear.bind(d),delay:r.eventDebounceDelay,merge:u}),this.onDidChange=this._onDidChange.event}getActions(e){return this._menuInfo.createActionGroups(e)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};MenuImpl=__decorate$2C([__param$2w(3,ICommandService),__param$2w(4,IKeybindingService),__param$2w(5,IContextKeyService)],MenuImpl);function createMenuHide(o,e,t){const r=isISubmenuItem(e)?e.submenu.id:e.id,s=typeof e.title=="string"?e.title:e.title.value,a=toAction({id:"hide/".concat(o.id,"/").concat(r),label:localize(1651,"Hide '{0}'",s),run(){t.updateHidden(o,r,!0)}}),l=toAction({id:"toggle/".concat(o.id,"/").concat(r),label:s,get checked(){return!t.isHidden(o,r)},run(){t.updateHidden(o,r,!!this.checked)}});return{hide:a,toggle:l,get isHidden(){return!l.checked}}}function createConfigureKeybindingAction(o,e,t,r=void 0,s=!0){return toAction({id:"configureKeybinding/".concat(t),label:localize(1652,"Configure Keybinding"),enabled:s,run(){const l=!!!e.lookupKeybinding(t)&&r?r.serialize():void 0;o.executeCommand("workbench.action.openGlobalKeybindings","@command:".concat(t)+(l?" +when:".concat(l):""))}})}const IActionViewItemService=createDecorator("IActionViewItemService");class ActionViewItemService{constructor(){this._providers=new Map,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event}dispose(){this._onDidChange.dispose()}lookUp(e,t){return this._providers.get(this._makeKey(e,t))}_makeKey(e,t){return"".concat(e.id,"/").concat(t instanceof MenuId?t.id:t)}}registerSingleton(IActionViewItemService,ActionViewItemService,1);var __decorate$2B=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2v=function(o,e){return function(t,r){e(t,r,o)}};let WorkbenchToolBar=class extends ToolBar{constructor(e,t,r,s,a,l,c,d){super(e,a,{getKeyBinding:g=>{var f;return(f=l.lookupKeybinding(g.id))!=null?f:void 0},...t,allowContextMenu:!0,skipTelemetry:typeof(t==null?void 0:t.telemetrySource)=="string"}),this._options=t,this._menuService=r,this._contextKeyService=s,this._contextMenuService=a,this._keybindingService=l,this._commandService=c,this._sessionDisposables=this._store.add(new DisposableStore$1);const u=t==null?void 0:t.telemetrySource;u&&this._store.add(this.actionBar.onDidRun(g=>d.publicLog2("workbenchActionExecuted",{id:g.action.id,from:u})))}setActions(e,t=[],r){var g,f,m;this._sessionDisposables.clear();const s=e.slice(),a=t.slice(),l=[];let c=0;const d=[];let u=!1;if(((g=this._options)==null?void 0:g.hiddenItemStrategy)!==-1)for(let _=0;_<s.length;_++){const v=s[_];!(v instanceof MenuItemAction)&&!(v instanceof SubmenuItemAction)||v.hideActions&&(l.push(v.hideActions.toggle),v.hideActions.toggle.checked&&c++,v.hideActions.isHidden&&(u=!0,s[_]=void 0,((f=this._options)==null?void 0:f.hiddenItemStrategy)!==0&&(d[_]=v)))}if(((m=this._options)==null?void 0:m.overflowBehavior)!==void 0){const _=intersection(new Set(this._options.overflowBehavior.exempted),Iterable.map(s,C=>C==null?void 0:C.id)),v=this._options.overflowBehavior.maxItems-_.size;let b=0;for(let C=0;C<s.length;C++){const y=s[C];y&&(b++,!_.has(y.id)&&b>=v&&(s[C]=void 0,d[C]=y))}}coalesceInPlace(s),coalesceInPlace(d),super.setActions(s,Separator.join(d,a)),(l.length>0||s.length>0)&&this._sessionDisposables.add(addDisposableListener(this.getElement(),"contextmenu",_=>{var S,w,E,x,L;const v=new StandardMouseEvent(getWindow$1(this.getElement()),_),b=this.getItemAction(v.target);if(!b)return;v.preventDefault(),v.stopPropagation();const C=[];if(b instanceof MenuItemAction&&b.menuKeybinding)C.push(b.menuKeybinding);else if(!(b instanceof SubmenuItemAction||b instanceof ToggleMenuAction)){const k=!!this._keybindingService.lookupKeybinding(b.id);C.push(createConfigureKeybindingAction(this._commandService,this._keybindingService,b.id,void 0,k))}if(l.length>0){let k=!1;if(c===1&&((S=this._options)==null?void 0:S.hiddenItemStrategy)===0){k=!0;for(let D=0;D<l.length;D++)if(l[D].checked){l[D]=toAction({id:b.id,label:b.label,checked:!0,enabled:!1,run(){}});break}}if(!k&&(b instanceof MenuItemAction||b instanceof SubmenuItemAction)){if(!b.hideActions)return;C.push(b.hideActions.hide)}else C.push(toAction({id:"label",label:localize(1649,"Hide"),enabled:!1,run(){}}))}const y=Separator.join(C,l);(w=this._options)!=null&&w.resetMenu&&!r&&(r=[this._options.resetMenu]),u&&r&&(y.push(new Separator),y.push(toAction({id:"resetThisMenu",label:localize(1650,"Reset Menu"),run:()=>this._menuService.resetHiddenStates(r)}))),y.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>v,getActions:()=>y,menuId:(E=this._options)==null?void 0:E.contextMenu,menuActionOptions:{renderShortTitle:!0,...(x=this._options)==null?void 0:x.menuOptions},skipTelemetry:typeof((L=this._options)==null?void 0:L.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};WorkbenchToolBar=__decorate$2B([__param$2v(2,IMenuService),__param$2v(3,IContextKeyService),__param$2v(4,IContextMenuService),__param$2v(5,IKeybindingService),__param$2v(6,ICommandService),__param$2v(7,ITelemetryService)],WorkbenchToolBar);let MenuWorkbenchToolBar=class extends WorkbenchToolBar{get onDidChangeMenuItems(){return this._onDidChangeMenuItems.event}constructor(e,t,r,s,a,l,c,d,u,g,f){super(e,{resetMenu:t,...r,actionViewItemProvider:(v,b)=>{let C=g.lookUp(t,v instanceof SubmenuItemAction?v.item.submenu.id:v.id);C||(C=r==null?void 0:r.actionViewItemProvider);const y=C==null?void 0:C(v,b,f,getWindow$1(e).vscodeWindowId);return y||createActionViewItem(f,v,b)}},s,a,l,c,d,u),this._onDidChangeMenuItems=this._store.add(new Emitter$1);const m=this._store.add(s.createMenu(t,a,{emitEventsForSubmenuChanges:!0,eventDebounceDelay:r==null?void 0:r.eventDebounceDelay})),_=()=>{var C,y,S;const{primary:v,secondary:b}=getActionBarActions(m.getActions(r==null?void 0:r.menuOptions),(C=r==null?void 0:r.toolbarOptions)==null?void 0:C.primaryGroup,(y=r==null?void 0:r.toolbarOptions)==null?void 0:y.shouldInlineSubmenu,(S=r==null?void 0:r.toolbarOptions)==null?void 0:S.useSeparatorsInPrimaryActions);e.classList.toggle("has-no-actions",v.length===0&&b.length===0),super.setActions(v,b)};this._store.add(m.onDidChange(()=>{_(),this._onDidChangeMenuItems.fire(this)})),this._store.add(g.onDidChange(v=>{v===t&&_()})),_()}setActions(){throw new BugIndicatingError("This toolbar is populated from a menu.")}};MenuWorkbenchToolBar=__decorate$2B([__param$2v(3,IMenuService),__param$2v(4,IContextKeyService),__param$2v(5,IContextMenuService),__param$2v(6,IKeybindingService),__param$2v(7,ICommandService),__param$2v(8,ITelemetryService),__param$2v(9,IActionViewItemService),__param$2v(10,IInstantiationService)],MenuWorkbenchToolBar);var __decorate$2A=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2u=function(o,e){return function(t,r){e(t,r,o)}};const IHoverService=createDecorator("hoverService");let WorkbenchHoverDelegate=class extends Disposable$1{get delay(){var e;return this.isInstantlyHovering()?0:(e=this.hoverOptions)!=null&&e.dynamicDelay?t=>{var r,s,a;return(a=(s=(r=this.hoverOptions)==null?void 0:r.dynamicDelay)==null?void 0:s.call(r,t))!=null?a:this._delay}:this._delay}constructor(e,t,r={},s,a){super(),this.placement=e,this.hoverOptions=t,this.overrideOptions=r,this.configurationService=s,this.hoverService=a,this.lastHoverHideTime=0,this.timeLimit=200,this.hoverDisposables=this._register(new DisposableStore$1),this._delay=this.configurationService.getValue("workbench.hover.delay"),this._register(this.configurationService.onDidChangeConfiguration(l=>{l.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(e,t){const r=typeof this.overrideOptions=="function"?this.overrideOptions(e,t):this.overrideOptions;this.hoverDisposables.clear();const s=isHTMLElement(e.target)?[e.target]:e.target.targetElements;for(const l of s)this.hoverDisposables.add(addStandardDisposableListener(l,"keydown",c=>{c.equals(9)&&this.hoverService.hideHover()}));const a=isHTMLElement(e.content)?void 0:typeof e.content=="string"?e.content.toString():e.content.value;return this.hoverService.showInstantHover({...e,...r,persistence:{hideOnKeyDown:!0,...r.persistence},id:a,appearance:{...e.appearance,compact:!0,skipFadeInAnimation:this.isInstantlyHovering(),...r.appearance}},t)}isInstantlyHovering(){var e;return!!((e=this.hoverOptions)!=null&&e.instantHover)&&Date.now()-this.lastHoverHideTime<this.timeLimit}onDidHideHover(){var e;this.hoverDisposables.clear(),(e=this.hoverOptions)!=null&&e.instantHover&&(this.lastHoverHideTime=Date.now())}};WorkbenchHoverDelegate=__decorate$2A([__param$2u(3,IConfigurationService),__param$2u(4,IHoverService)],WorkbenchHoverDelegate);const nativeHoverDelegate={showHover:function(){throw new Error("Native hover function not implemented.")},delay:0,showNativeHover:!0};class TextModelText extends AbstractText{constructor(e){super(),this._textModel=e}getValueOfRange(e){return this._textModel.getValueInRange(e)}getLineLength(e){return this._textModel.getLineLength(e)}get length(){const e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new TextLength(e-1,t)}}class ActionRunnerWithContext extends ActionRunner{constructor(e){super(),this._getContext=e}runAction(e,t){const r=this._getContext();return super.runAction(e,r)}}class EditorGutter extends Disposable$1{constructor(e,t,r){super(),this._editor=e,this._domNode=t,this.itemProvider=r,this.scrollTop=observableFromEvent(this,this._editor.onDidScrollChange,l=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(l=>l===0),this.modelAttached=observableFromEvent(this,this._editor.onDidChangeModel,l=>this._editor.hasModel()),this.editorOnDidChangeViewZones=observableSignalFromEvent("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=observableSignalFromEvent("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=observableSignal("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const s=this._domNode.appendChild(h("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),a=new ResizeObserver(()=>{transaction(l=>{this.domNodeSizeChanged.trigger(l)})});a.observe(this._domNode),this._register(toDisposable(()=>a.disconnect())),this._register(autorun(l=>{s.className=this.isScrollTopZero.read(l)?"":"scroll-decoration"})),this._register(autorun(l=>this.render(l)))}dispose(){super.dispose(),reset(this._domNode)}render(e){if(!this.modelAttached.read(e))return;this.domNodeSizeChanged.read(e),this.editorOnDidChangeViewZones.read(e),this.editorOnDidContentSizeChange.read(e);const t=this.scrollTop.read(e),r=this._editor.getVisibleRanges(),s=new Set(this.views.keys()),a=OffsetRange.ofStartAndLength(0,this._domNode.clientHeight);if(!a.isEmpty)for(const l of r){const c=new LineRange(l.startLineNumber,l.endLineNumber+1),d=this.itemProvider.getIntersectingGutterItems(c,e);transaction(u=>{for(const g of d){if(!g.range.intersect(c))continue;s.delete(g.id);let f=this.views.get(g.id);if(f)f.item.set(g,u);else{const b=document.createElement("div");this._domNode.appendChild(b);const C=observableValue("item",g),y=this.itemProvider.createView(C,b);f=new ManagedGutterItemView(C,y,b),this.views.set(g.id,f)}const m=g.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(g.range.startLineNumber,!0)-t:g.range.startLineNumber>1?this._editor.getBottomForLineNumber(g.range.startLineNumber-1,!1)-t:0,v=(g.range.endLineNumberExclusive===1?Math.max(m,this._editor.getTopForLineNumber(g.range.startLineNumber,!1)-t):Math.max(m,this._editor.getBottomForLineNumber(g.range.endLineNumberExclusive-1,!0)-t))-m;f.domNode.style.top="".concat(m,"px"),f.domNode.style.height="".concat(v,"px"),f.gutterItemView.layout(OffsetRange.ofStartAndLength(m,v),a)}})}for(const l of s){const c=this.views.get(l);c.gutterItemView.dispose(),c.domNode.remove(),this.views.delete(l)}}}class ManagedGutterItemView{constructor(e,t,r){this.item=e,this.gutterItemView=t,this.domNode=r}}var __decorate$2z=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2t=function(o,e){return function(t,r){e(t,r,o)}};const emptyArr$1=[],width=35;let DiffEditorGutter=class extends Disposable$1{constructor(e,t,r,s,a,l,c,d,u){super(),this._diffModel=t,this._editors=r,this._options=s,this._sashLayout=a,this._boundarySashes=l,this._instantiationService=c,this._contextKeyService=d,this._menuService=u,this._menu=this._register(this._menuService.createMenu(MenuId.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=observableFromEvent(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(f=>f.length>0),this._showSash=derived(this,f=>this._options.renderSideBySide.read(f)&&this._hasActions.read(f)),this.width=derived(this,f=>this._hasActions.read(f)?width:0),this.elements=h("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:width+"px"}},[]),this._currentDiff=derived(this,f=>{var b;const m=this._diffModel.read(f);if(!m)return;const _=(b=m.diff.read(f))==null?void 0:b.mappings,v=this._editors.modifiedCursor.read(f);if(v)return _==null?void 0:_.find(C=>C.lineRangeMapping.modified.contains(v.lineNumber))}),this._selectedDiffs=derived(this,f=>{const m=this._diffModel.read(f),_=m==null?void 0:m.diff.read(f);if(!_)return emptyArr$1;const v=this._editors.modifiedSelections.read(f);if(v.every(S=>S.isEmpty()))return emptyArr$1;const b=new LineRangeSet(v.map(S=>LineRange.fromRangeInclusive(S))),y=_.mappings.filter(S=>S.lineRangeMapping.innerChanges&&b.intersects(S.lineRangeMapping.modified)).map(S=>({mapping:S,rangeMappings:S.lineRangeMapping.innerChanges.filter(w=>v.some(E=>Range$2.areIntersecting(w.modifiedRange,E)))}));return y.length===0||y.every(S=>S.rangeMappings.length===0)?emptyArr$1:y}),this._register(prependRemoveOnDispose(e,this.elements.root)),this._register(addDisposableListener(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register(applyStyle(this.elements.root,{display:this._hasActions.map(f=>f?"block":"none")})),derivedDisposable(this,f=>this._showSash.read(f)?new DiffEditorSash(e,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,derivedWithSetter(this,_=>this._sashLayout.sashLeft.read(_)-width,(_,v)=>this._sashLayout.sashLeft.set(_+width,v)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store);const g=derived(this,f=>{const m=this._diffModel.read(f);if(!m)return[];const _=m.diff.read(f);if(!_)return[];const v=this._selectedDiffs.read(f);if(v.length>0){const C=DetailedLineRangeMapping.fromRangeMappings(v.flatMap(y=>y.rangeMappings));return[new DiffGutterItem(C,!0,MenuId.DiffEditorSelectionToolbar,void 0,m.model.original.uri,m.model.modified.uri)]}const b=this._currentDiff.read(f);return _.mappings.map(C=>new DiffGutterItem(C.lineRangeMapping.withInnerChangesFromLineRanges(),C.lineRangeMapping===(b==null?void 0:b.lineRangeMapping),MenuId.DiffEditorHunkToolbar,void 0,m.model.original.uri,m.model.modified.uri))});this._register(new EditorGutter(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(f,m)=>g.read(m),createView:(f,m)=>this._instantiationService.createInstance(DiffToolBar,f,m,this)})),this._register(addDisposableListener(this.elements.gutter,EventType$1.MOUSE_WHEEL,f=>{this._editors.modified.getOption(117).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(f)},{passive:!1}))}computeStagedValue(e){var c;const t=(c=e.innerChanges)!=null?c:[],r=new TextModelText(this._editors.modifiedModel.get()),s=new TextModelText(this._editors.original.getModel());return new TextEdit(t.map(d=>d.toTextEdit(r))).apply(s)}layout(e){this.elements.gutter.style.left=e+"px"}};DiffEditorGutter=__decorate$2z([__param$2t(6,IInstantiationService),__param$2t(7,IContextKeyService),__param$2t(8,IMenuService)],DiffEditorGutter);class DiffGutterItem{constructor(e,t,r,s,a,l){this.mapping=e,this.showAlways=t,this.menuId=r,this.rangeOverride=s,this.originalUri=a,this.modifiedUri=l}get id(){return this.mapping.modified.toString()}get range(){var e;return(e=this.rangeOverride)!=null?e:this.mapping.modified}}let DiffToolBar=class extends Disposable$1{constructor(e,t,r,s){super(),this._item=e,this._elements=h("div.gutterItem",{style:{height:"20px",width:"34px"}},[h("div.background@background",{},[]),h("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,l=>l.showAlways),this._menuId=this._item.map(this,l=>l.menuId),this._isSmall=observableValue(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const a=this._register(s.createInstance(WorkbenchHoverDelegate,"element",{instantHover:!0},{position:{hoverPosition:1}}));this._register(appendRemoveOnDispose(t,this._elements.root)),this._register(autorun(l=>{const c=this._showAlways.read(l);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",c),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register(autorunWithStore((l,c)=>{this._elements.buttons.replaceChildren();const d=c.add(s.createInstance(MenuWorkbenchToolBar,this._elements.buttons,this._menuId.read(l),{orientation:1,hoverDelegate:a,toolbarOptions:{primaryGroup:u=>u.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(l)?1:3},hiddenItemStrategy:0,actionRunner:c.add(new ActionRunnerWithContext(()=>{const u=this._item.read(void 0),g=u.mapping;return{mapping:g,originalWithModifiedChanges:r.computeStagedValue(g),originalUri:u.originalUri,modifiedUri:u.modifiedUri}})),menuOptions:{shouldForwardArgs:!0}}));c.add(d.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(e,t){this._lastItemRange=e,this._lastViewRange=t;let r=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&e.length<30,void 0),r=this._elements.buttons.clientHeight;const s=e.length/2-r/2,a=r;let l=e.start+s;const c=OffsetRange.tryCreate(a,t.endExclusive-a-r),d=OffsetRange.tryCreate(e.start+a,e.endExclusive-r-a);d&&c&&d.start<d.endExclusive&&(l=c.clip(l),l=d.clip(l)),this._elements.buttons.style.top="".concat(l-e.start,"px")}};DiffToolBar=__decorate$2z([__param$2t(3,IInstantiationService)],DiffToolBar);var __decorate$2y=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2s=function(o,e){return function(t,r){e(t,r,o)}},HideUnchangedRegionsFeature_1,pi;let HideUnchangedRegionsFeature=(pi=class extends Disposable$1{static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,r,s){super(),this._editors=e,this._diffModel=t,this._options=r,this._instantiationService=s,this._modifiedOutlineSource=derivedDisposable(this,d=>{const u=this._editors.modifiedModel.read(d),g=HideUnchangedRegionsFeature_1._breadcrumbsSourceFactory.read(d);return!u||!g?void 0:g(u,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(d=>{if(d.reason===1)return;const u=this._diffModel.get();transaction(g=>{for(const f of this._editors.original.getSelections()||[])u==null||u.ensureOriginalLineIsVisible(f.getStartPosition().lineNumber,0,g),u==null||u.ensureOriginalLineIsVisible(f.getEndPosition().lineNumber,0,g)})})),this._register(this._editors.modified.onDidChangeCursorPosition(d=>{if(d.reason===1)return;const u=this._diffModel.get();transaction(g=>{for(const f of this._editors.modified.getSelections()||[])u==null||u.ensureModifiedLineIsVisible(f.getStartPosition().lineNumber,0,g),u==null||u.ensureModifiedLineIsVisible(f.getEndPosition().lineNumber,0,g)})}));const a=this._diffModel.map((d,u)=>{var f,m;const g=(f=d==null?void 0:d.unchangedRegions.read(u))!=null?f:[];return g.length===1&&g[0].modifiedLineNumber===1&&g[0].lineCount===((m=this._editors.modifiedModel.read(u))==null?void 0:m.getLineCount())?[]:g});this.viewZones=derived(this,d=>{const u=this._modifiedOutlineSource.read(d);if(!u)return{origViewZones:[],modViewZones:[]};const g=[],f=[],m=this._options.renderSideBySide.read(d),_=this._options.compactMode.read(d),v=a.read(d);for(let b=0;b<v.length;b++){const C=v[b];if(!C.shouldHideControls(d)&&!(_&&(b===0||b===v.length-1)))if(_){{const y=derived(this,w=>C.getHiddenOriginalRange(w).startLineNumber-1),S=new PlaceholderViewZone(y,12);g.push(S),d.store.add(new CompactCollapsedCodeOverlayWidget(this._editors.original,S,C,!m))}{const y=derived(this,w=>C.getHiddenModifiedRange(w).startLineNumber-1),S=new PlaceholderViewZone(y,12);f.push(S),d.store.add(new CompactCollapsedCodeOverlayWidget(this._editors.modified,S,C))}}else{{const y=derived(this,w=>C.getHiddenOriginalRange(w).startLineNumber-1),S=new PlaceholderViewZone(y,24);g.push(S),d.store.add(new CollapsedCodeOverlayWidget(this._editors.original,S,C,C.originalUnchangedRange,!m,u,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}{const y=derived(this,w=>C.getHiddenModifiedRange(w).startLineNumber-1),S=new PlaceholderViewZone(y,24);f.push(S),d.store.add(new CollapsedCodeOverlayWidget(this._editors.modified,S,C,C.modifiedUnchangedRange,!1,u,w=>this._diffModel.get().ensureModifiedLineIsVisible(w,2,void 0),this._options))}}}return{origViewZones:g,modViewZones:f}});const l={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},c={description:"Fold Unchanged",glyphMarginHoverMessage:new MarkdownString(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(localize(124,"Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+ThemeIcon.asClassName(Codicon.fold),zIndex:10001};this._register(applyObservableDecorations(this._editors.original,derived(this,d=>{const u=a.read(d),g=u.map(f=>({range:f.originalUnchangedRange.toInclusiveRange(),options:l}));for(const f of u)f.shouldHideControls(d)&&g.push({range:Range$2.fromPositions(new Position$1(f.originalLineNumber,1)),options:c});return g}))),this._register(applyObservableDecorations(this._editors.modified,derived(this,d=>{const u=a.read(d),g=u.map(f=>({range:f.modifiedUnchangedRange.toInclusiveRange(),options:l}));for(const f of u)f.shouldHideControls(d)&&g.push({range:LineRange.ofLength(f.modifiedLineNumber,1).toInclusiveRange(),options:c});return g}))),this._register(autorun(d=>{const u=a.read(d);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(u.map(g=>g.getHiddenOriginalRange(d).toInclusiveRange()).filter(isDefined)),this._editors.modified.setHiddenAreas(u.map(g=>g.getHiddenModifiedRange(d).toInclusiveRange()).filter(isDefined))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(d=>{var u;if(!d.event.rightButton&&d.target.position&&((u=d.target.element)!=null&&u.className.includes("fold-unchanged"))){const g=d.target.position.lineNumber,f=this._diffModel.get();if(!f)return;const m=f.unchangedRegions.get().find(_=>_.modifiedUnchangedRange.contains(g));if(!m)return;m.collapseAll(void 0),d.event.stopPropagation(),d.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(d=>{var u;if(!d.event.rightButton&&d.target.position&&((u=d.target.element)!=null&&u.className.includes("fold-unchanged"))){const g=d.target.position.lineNumber,f=this._diffModel.get();if(!f)return;const m=f.unchangedRegions.get().find(_=>_.originalUnchangedRange.contains(g));if(!m)return;m.collapseAll(void 0),d.event.stopPropagation(),d.event.preventDefault()}}))}},HideUnchangedRegionsFeature_1=pi,pi._breadcrumbsSourceFactory=observableValue(pi,()=>({dispose(){},getBreadcrumbItems(e,t){return[]}})),pi);HideUnchangedRegionsFeature=HideUnchangedRegionsFeature_1=__decorate$2y([__param$2s(3,IInstantiationService)],HideUnchangedRegionsFeature);class CompactCollapsedCodeOverlayWidget extends ViewZoneOverlayWidget{constructor(e,t,r,s=!1){const a=h("div.diff-hidden-lines-widget");super(e,t,a.root),this._unchangedRegion=r,this._hide=s,this._nodes=h("div.diff-hidden-lines-compact",[h("div.line-left",[]),h("div.text@text",[]),h("div.line-right",[])]),a.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register(autorun(l=>{if(!this._hide){const c=this._unchangedRegion.getHiddenModifiedRange(l).length,d=localize(125,"{0} hidden lines",c);this._nodes.text.innerText=d}}))}}class CollapsedCodeOverlayWidget extends ViewZoneOverlayWidget{constructor(e,t,r,s,a,l,c,d){const u=h("div.diff-hidden-lines-widget");super(e,t,u.root),this._editor=e,this._unchangedRegion=r,this._unchangedRegionRange=s,this._hide=a,this._modifiedOutlineSource=l,this._revealModifiedHiddenLine=c,this._options=d,this._nodes=h("div.diff-hidden-lines",[h("div.top@top",{title:localize(126,"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"}},[$$m("a",{title:localize(127,"Show Unchanged Region"),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(128,"Click or drag to show more below"),role:"button"})]),u.root.appendChild(this._nodes.root),this._hide?reset(this._nodes.first):this._register(applyStyle(this._nodes.first,{width:observableCodeEditor(this._editor).layoutInfoContentLeft})),this._register(autorun(f=>{const m=this._unchangedRegion.visibleLineCountTop.read(f)+this._unchangedRegion.visibleLineCountBottom.read(f)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!m),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(f)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(f)>0),this._nodes.top.classList.toggle("canMoveBottom",!m);const _=this._unchangedRegion.isDragged.read(f),v=this._editor.getDomNode();v&&(v.classList.toggle("draggingUnchangedRegion",!!_),_==="top"?(v.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(f)>0),v.classList.toggle("canMoveBottom",!m)):_==="bottom"?(v.classList.toggle("canMoveTop",!m),v.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(f)>0)):(v.classList.toggle("canMoveTop",!1),v.classList.toggle("canMoveBottom",!1)))}));const g=this._editor;this._register(addDisposableListener(this._nodes.top,"mousedown",f=>{if(f.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),f.preventDefault();const m=f.clientY;let _=!1;const v=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const b=getWindow$1(this._nodes.top),C=addDisposableListener(b,"mousemove",S=>{const E=S.clientY-m;_=_||Math.abs(E)>2;const x=Math.round(E/g.getOption(75)),L=Math.max(0,Math.min(v+x,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(L,void 0)}),y=addDisposableListener(b,"mouseup",S=>{_||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),C.dispose(),y.dispose()})})),this._register(addDisposableListener(this._nodes.bottom,"mousedown",f=>{if(f.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),f.preventDefault();const m=f.clientY;let _=!1;const v=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const b=getWindow$1(this._nodes.bottom),C=addDisposableListener(b,"mousemove",S=>{const E=S.clientY-m;_=_||Math.abs(E)>2;const x=Math.round(E/g.getOption(75)),L=Math.max(0,Math.min(v-x,this._unchangedRegion.getMaxVisibleLineCountBottom())),k=this._unchangedRegionRange.endLineNumberExclusive>g.getModel().getLineCount()?g.getContentHeight():g.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(L,void 0);const D=this._unchangedRegionRange.endLineNumberExclusive>g.getModel().getLineCount()?g.getContentHeight():g.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);g.setScrollTop(g.getScrollTop()+(D-k))}),y=addDisposableListener(b,"mouseup",S=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!_){const w=g.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const E=g.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);g.setScrollTop(g.getScrollTop()+(E-w))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),C.dispose(),y.dispose()})})),this._register(autorun(f=>{const m=[];if(!this._hide){const _=r.getHiddenModifiedRange(f).length,v=localize(129,"{0} hidden lines",_),b=$$m("span",{title:localize(130,"Double click to unfold")},v);b.addEventListener("dblclick",S=>{S.button===0&&(S.preventDefault(),this._unchangedRegion.showAll(void 0))}),m.push(b);const C=this._unchangedRegion.getHiddenModifiedRange(f),y=this._modifiedOutlineSource.getBreadcrumbItems(C,f);if(y.length>0){m.push($$m("span",void 0,"  |  "));for(let S=0;S<y.length;S++){const w=y[S],E=SymbolKinds.toIcon(w.kind),x=h("div.breadcrumb-item",{style:{display:"flex",alignItems:"center"}},[renderIcon(E)," ",w.name,...S===y.length-1?[]:[renderIcon(Codicon.chevronRight)]]).root;m.push(x),x.onclick=()=>{this._revealModifiedHiddenLine(w.startLineNumber)}}}}reset(this._nodes.others,...m)}))}}const emptyArr=[];class RevertButtonsFeature extends Disposable$1{constructor(e,t,r,s){super(),this._editors=e,this._diffModel=t,this._options=r,this._widget=s,this._selectedDiffs=derived(this,a=>{const l=this._diffModel.read(a),c=l==null?void 0:l.diff.read(a);if(!c)return emptyArr;const d=this._editors.modifiedSelections.read(a);if(d.every(m=>m.isEmpty()))return emptyArr;const u=new LineRangeSet(d.map(m=>LineRange.fromRangeInclusive(m))),f=c.mappings.filter(m=>m.lineRangeMapping.innerChanges&&u.intersects(m.lineRangeMapping.modified)).map(m=>({mapping:m,rangeMappings:m.lineRangeMapping.innerChanges.filter(_=>d.some(v=>Range$2.areIntersecting(_.modifiedRange,v)))}));return f.length===0||f.every(m=>m.rangeMappings.length===0)?emptyArr:f}),this._register(autorunWithStore((a,l)=>{if(!this._options.shouldRenderOldRevertArrows.read(a))return;const c=this._diffModel.read(a),d=c==null?void 0:c.diff.read(a);if(!c||!d||c.movedTextToCompare.read(a))return;const u=[],g=this._selectedDiffs.read(a),f=new Set(g.map(m=>m.mapping));if(g.length>0){const m=this._editors.modifiedSelections.read(a),_=l.add(new RevertButton(m[m.length-1].positionLineNumber,this._widget,g.flatMap(v=>v.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(_),u.push(_)}for(const m of d.mappings)if(!f.has(m)&&!m.lineRangeMapping.modified.isEmpty&&m.lineRangeMapping.innerChanges){const _=l.add(new RevertButton(m.lineRangeMapping.modified.startLineNumber,this._widget,m.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(_),u.push(_)}l.add(toDisposable(()=>{for(const m of u)this._editors.modified.removeGlyphMarginWidget(m)}))}))}}const Mo=class Mo extends Disposable$1{getId(){return this._id}constructor(e,t,r,s){super(),this._lineNumber=e,this._widget=t,this._diffs=r,this._revertSelection=s,this._id="revertButton".concat(Mo.counter++),this._domNode=h("div.revertButton",{title:this._revertSelection?localize(135,"Revert Selected Changes"):localize(136,"Revert Change")},[renderIcon(Codicon.arrowRight)]).root,this._register(addDisposableListener(this._domNode,EventType$1.MOUSE_DOWN,a=>{a.button!==2&&(a.stopPropagation(),a.preventDefault())})),this._register(addDisposableListener(this._domNode,EventType$1.MOUSE_UP,a=>{a.stopPropagation(),a.preventDefault()})),this._register(addDisposableListener(this._domNode,EventType$1.CLICK,a=>{this._diffs instanceof LineRangeMapping?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),a.stopPropagation(),a.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:GlyphMarginLane$1.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}};Mo.counter=0;let RevertButton=Mo;var __decorate$2x=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2r=function(o,e){return function(t,r){e(t,r,o)}};let DiffEditorWidget=class extends DelegatingEditor{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,r,s,a,l,c,d){var E;super(),this._domElement=e,this._parentContextKeyService=s,this._parentInstantiationService=a,this._codeEditorService=l,this._accessibilitySignalService=c,this._editorProgressService=d,this.elements=h("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[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._diffModelSrc=this._register(disposableObservableValue(this,void 0)),this._diffModel=derived(this,x=>{var L;return(L=this._diffModelSrc.read(x))==null?void 0:L.object}),this.onDidChangeModel=Event$1.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new ServiceCollection([IContextKeyService,this._contextKeyService]))),this._boundarySashes=observableValue(this,void 0),this._accessibleDiffViewerShouldBeVisible=observableValue(this,!1),this._accessibleDiffViewerVisible=derived(this,x=>this._options.onlyShowAccessibleDiffViewer.read(x)?!0:this._accessibleDiffViewerShouldBeVisible.read(x)),this._movedBlocksLinesPart=observableValue(this,void 0),this._layoutInfo=derived(this,x=>{var B,H,V,U,j;const L=this._rootSizeObserver.width.read(x),k=this._rootSizeObserver.height.read(x);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=k+"px";const D=this._sash.read(x),I=this._gutter.read(x),T=(B=I==null?void 0:I.width.read(x))!=null?B:0,M=(V=(H=this._overviewRulerPart.read(x))==null?void 0:H.width)!=null?V:0;let R,N,A,O,P;if(!!D){const X=D.sashLeft.read(x),ee=(j=(U=this._movedBlocksLinesPart.read(x))==null?void 0:U.width.read(x))!=null?j:0;R=0,N=X-T-ee,P=X-T,A=X,O=L-A-M}else{P=0;const X=this._options.inlineViewHideOriginalLineNumbers.read(x);R=T,X?N=0:N=Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read(x)),A=T+N,O=L-A-M}return this.elements.original.style.left=R+"px",this.elements.original.style.width=N+"px",this._editors.original.layout({width:N,height:k},!0),I==null||I.layout(P),this.elements.modified.style.left=A+"px",this.elements.modified.style.width=O+"px",this._editors.modified.layout({width:O,height:k},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((x,L)=>x==null?void 0:x.diff.read(L)),this.onDidUpdateDiff=Event$1.fromObservableLight(this._diffValue),this._codeEditorService.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(toDisposable(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new ObservableElementSizeObserver(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout((E=t.automaticLayout)!=null?E:!1),this._options=this._instantiationService.createInstance(DiffEditorOptions,t),this._register(autorun(x=>{this._options.setWidth(this._rootSizeObserver.width.read(x))})),this._contextKeyService.createKey(EditorContextKeys.isEmbeddedDiffEditor.key,!1),this._register(bindContextKey(EditorContextKeys.isEmbeddedDiffEditor,this._contextKeyService,x=>this._options.isInEmbeddedEditor.read(x))),this._register(bindContextKey(EditorContextKeys.comparingMovedCode,this._contextKeyService,x=>{var L;return!!((L=this._diffModel.read(x))!=null&&L.movedTextToCompare.read(x))})),this._register(bindContextKey(EditorContextKeys.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,x=>this._options.couldShowInlineViewBecauseOfSize.read(x))),this._register(bindContextKey(EditorContextKeys.diffEditorInlineMode,this._contextKeyService,x=>!this._options.renderSideBySide.read(x))),this._register(bindContextKey(EditorContextKeys.hasChanges,this._contextKeyService,x=>{var L,k,D;return((D=(k=(L=this._diffModel.read(x))==null?void 0:L.diff.read(x))==null?void 0:k.mappings.length)!=null?D:0)>0})),this._editors=this._register(this._instantiationService.createInstance(DiffEditorEditors,this.elements.original,this.elements.modified,this._options,r,(x,L,k,D)=>this._createInnerEditor(x,L,k,D))),this._register(bindContextKey(EditorContextKeys.diffEditorOriginalWritable,this._contextKeyService,x=>this._options.originalEditable.read(x))),this._register(bindContextKey(EditorContextKeys.diffEditorModifiedWritable,this._contextKeyService,x=>!this._options.readOnly.read(x))),this._register(bindContextKey(EditorContextKeys.diffEditorOriginalUri,this._contextKeyService,x=>{var L,k;return(k=(L=this._diffModel.read(x))==null?void 0:L.model.original.uri.toString())!=null?k:""})),this._register(bindContextKey(EditorContextKeys.diffEditorModifiedUri,this._contextKeyService,x=>{var L,k;return(k=(L=this._diffModel.read(x))==null?void 0:L.model.modified.uri.toString())!=null?k:""})),this._overviewRulerPart=derivedDisposable(this,x=>this._options.renderOverviewRuler.read(x)?this._instantiationService.createInstance(readHotReloadableExport(OverviewRulerFeature),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(L=>L.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const u={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((x,L)=>{var k,D;return x-((D=(k=this._overviewRulerPart.read(L))==null?void 0:k.width)!=null?D:0)})};this._sashLayout=new SashLayout(this._options,u),this._sash=derivedDisposable(this,x=>{const L=this._options.renderSideBySide.read(x);return this.elements.root.classList.toggle("side-by-side",L),L?new DiffEditorSash(this.elements.root,u,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const g=derivedDisposable(this,x=>this._instantiationService.createInstance(readHotReloadableExport(HideUnchangedRegionsFeature),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);derivedDisposable(this,x=>this._instantiationService.createInstance(readHotReloadableExport(DiffEditorDecorations),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const f=new Set,m=new Set;let _=!1;const v=derivedDisposable(this,x=>this._instantiationService.createInstance(readHotReloadableExport(DiffEditorViewZones),getWindow$1(this._domElement),this._editors,this._diffModel,this._options,this,()=>_||g.read(void 0).isUpdatingHiddenAreas,f,m)).recomputeInitiallyAndOnChange(this._store),b=derived(this,x=>{const L=v.read(x).viewZones.read(x).orig,k=g.read(x).viewZones.read(x).origViewZones;return L.concat(k)}),C=derived(this,x=>{const L=v.read(x).viewZones.read(x).mod,k=g.read(x).viewZones.read(x).modViewZones;return L.concat(k)});this._register(applyViewZones(this._editors.original,b,x=>{_=x},f));let y;this._register(applyViewZones(this._editors.modified,C,x=>{_=x,_?y=StableEditorScrollState.capture(this._editors.modified):(y==null||y.restore(this._editors.modified),y=void 0)},m)),this._accessibleDiffViewer=derivedDisposable(this,x=>this._instantiationService.createInstance(readHotReloadableExport(AccessibleDiffViewer),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(L,k)=>this._accessibleDiffViewerShouldBeVisible.set(L,k),this._options.onlyShowAccessibleDiffViewer.map(L=>!L),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((L,k)=>{var D;return(D=L==null?void 0:L.diff.read(k))==null?void 0:D.mappings.map(I=>I.lineRangeMapping)}),new AccessibleDiffViewerModelFromEditors(this._editors))).recomputeInitiallyAndOnChange(this._store);const S=this._accessibleDiffViewerVisible.map(x=>x?"hidden":"visible");this._register(applyStyle(this.elements.modified,{visibility:S})),this._register(applyStyle(this.elements.original,{visibility:S})),this._createDiffEditorContributions(),this._codeEditorService.addDiffEditor(this),this._register(toDisposable(()=>{this._codeEditorService.removeDiffEditor(this)})),this._gutter=derivedDisposable(this,x=>this._options.shouldRenderGutterMenu.read(x)?this._instantiationService.createInstance(readHotReloadableExport(DiffEditorGutter),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register(recomputeInitiallyAndOnChange(this._layoutInfo)),derivedDisposable(this,x=>new(readHotReloadableExport(MovedBlocksLinesFeature))(this.elements.root,this._diffModel,this._layoutInfo.map(L=>L.originalEditor),this._layoutInfo.map(L=>L.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,x=>{this._movedBlocksLinesPart.set(x,void 0)}),this._register(Event$1.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,x=>this._handleCursorPositionChange(x,!0))),this._register(Event$1.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,x=>this._handleCursorPositionChange(x,!1)));const w=this._diffModel.map(this,(x,L)=>{if(x)return x.diff.read(L)===void 0&&!x.isDiffUpToDate.read(L)});this._register(autorunWithStore((x,L)=>{if(w.read(x)===!0){const k=this._editorProgressService.show(!0,1e3);L.add(toDisposable(()=>k.done()))}})),this._register(autorunWithStore((x,L)=>{L.add(new(readHotReloadableExport(RevertButtonsFeature))(this._editors,this._diffModel,this._options,this))})),this._register(autorunWithStore((x,L)=>{const k=this._diffModel.read(x);if(k)for(const D of[k.model.original,k.model.modified])L.add(D.onWillDispose(I=>{onUnexpectedError(new BugIndicatingError("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register(autorun(x=>{this._options.setModel(this._diffModel.read(x))}))}_createInnerEditor(e,t,r,s){return e.createInstance(CodeEditorWidget,t,r,s)}_createDiffEditorContributions(){const e=EditorExtensionsRegistry.getDiffEditorContributions();for(const t of e)try{this._register(this._instantiationService.createInstance(t.ctor,this))}catch(r){onUnexpectedError(r)}}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 r;const e=this._editors.original.saveViewState(),t=this._editors.modified.saveViewState();return{original:e,modified:t,modelState:(r=this._diffModel.get())==null?void 0:r.serializeState()}}restoreViewState(e){var t;if(e&&e.original&&e.modified){const r=e;this._editors.original.restoreViewState(r.original),this._editors.modified.restoreViewState(r.modified),r.modelState&&((t=this._diffModel.get())==null||t.restoreSerializedState(r.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(DiffEditorViewModel,e,this._options)}getModel(){var e,t;return(t=(e=this._diffModel.get())==null?void 0:e.model)!=null?t:null}setModel(e){const t=e?"model"in e?RefCounted.create(e).createNewRef(this):RefCounted.create(this.createViewModel(e),this):null;this.setDiffModel(t)}setDiffModel(e,t){const r=this._diffModel.get();!e&&r&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==(e==null?void 0:e.object)&&subtransaction(t,s=>{var c;const a=e==null?void 0:e.object;observableFromEvent.batchEventsGlobally(s,()=>{this._editors.original.setModel(a?a.model.original:null),this._editors.modified.setModel(a?a.model.modified:null)});const l=(c=this._diffModelSrc.get())==null?void 0:c.createNewRef(this);this._diffModelSrc.set(e==null?void 0:e.createNewRef(this),s),setTimeout(()=>{l==null||l.dispose()},0)})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var t;const e=(t=this._diffModel.get())==null?void 0:t.diff.get();return e?toLineChanges(e):null}getDiffComputationResult(){var t;const e=(t=this._diffModel.get())==null?void 0:t.diff.get();return e?{changes:this.getLineChanges(),changes2:e.mappings.map(r=>r.lineRangeMapping),identical:e.identical,quitEarly:e.quitEarly}:null}revert(e){const t=this._diffModel.get();!t||!t.isDiffUpToDate.get()||(this._editors.modified.pushUndoStop(),this._editors.modified.executeEdits("diffEditor",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}]),this._editors.modified.pushUndoStop())}revertRangeMappings(e){const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const r=e.map(s=>({range:s.modifiedRange,text:t.model.original.getValueInRange(s.originalRange)}));this._editors.modified.pushUndoStop(),this._editors.modified.executeEdits("diffEditor",r),this._editors.modified.pushUndoStop()}revertFocusedRangeMappings(){var d,u;const e=this._diffModel.get();if(!e||!e.isDiffUpToDate.get())return;const t=(u=(d=this._diffModel.get())==null?void 0:d.diff.get())==null?void 0:u.mappings;if(!t||t.length===0)return;const r=this._editors.modified;if(!r.hasTextFocus())return;const s=r.getPosition().lineNumber,a=r.getSelection(),l=LineRange.fromRange(a||new Range$2(s,0,s,0)),c=t.filter(g=>g.lineRangeMapping.modified.intersect(l));r.pushUndoStop(),r.executeEdits("diffEditor",c.map(g=>({range:g.lineRangeMapping.modified.toExclusiveRange(),text:e.model.original.getValueInRange(g.lineRangeMapping.original.toExclusiveRange())}))),r.pushUndoStop()}_goTo(e){this._editors.modified.setPosition(new Position$1(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){var a,l,c,d;const t=(l=(a=this._diffModel.get())==null?void 0:a.diff.get())==null?void 0:l.mappings;if(!t||t.length===0)return;const r=this._editors.modified.getPosition().lineNumber;let s;e==="next"?this._editors.modified.getModel().getLineCount()===r?s=t[0]:s=(c=t.find(g=>g.lineRangeMapping.modified.startLineNumber>r))!=null?c:t[0]:s=(d=findLast$1(t,u=>u.lineRangeMapping.modified.startLineNumber<r))!=null?d:t[t.length-1],this._goTo(s),s.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted,{source:"diffEditor.goToDiff"}):s.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted,{source:"diffEditor.goToDiff"}):s&&this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineModified,{source:"diffEditor.goToDiff"})}revealFirstDiff(){const e=this._diffModel.get();e&&this.waitForDiff().then(()=>{var r;const t=(r=e.diff.get())==null?void 0:r.mappings;!t||t.length===0||this._goTo(t[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){var l,c;const e=this._editors.modified.hasWidgetFocus(),t=e?this._editors.modified:this._editors.original,r=e?this._editors.original:this._editors.modified;let s;const a=t.getSelection();if(a){const d=(c=(l=this._diffModel.get())==null?void 0:l.diff.get())==null?void 0:c.mappings.map(u=>e?u.lineRangeMapping.flip():u.lineRangeMapping);if(d){const u=translatePosition(a.getStartPosition(),d),g=translatePosition(a.getEndPosition(),d);s=Range$2.plusRange(u,g)}}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 t;const e=(t=this._diffModel.get())==null?void 0:t.unchangedRegions.get();e&&transaction(r=>{for(const s of e)s.collapseAll(r)})}showAllUnchangedRegions(){var t;const e=(t=this._diffModel.get())==null?void 0:t.unchangedRegions.get();e&&transaction(r=>{for(const s of e)s.showAll(r)})}_handleCursorPositionChange(e,t){var r,s;if((e==null?void 0:e.reason)===3){const a=(s=(r=this._diffModel.get())==null?void 0:r.diff.get())==null?void 0:s.mappings.find(l=>t?l.lineRangeMapping.modified.contains(e.position.lineNumber):l.lineRangeMapping.original.contains(e.position.lineNumber));a!=null&&a.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):a!=null&&a.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):a&&this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};DiffEditorWidget=__decorate$2x([__param$2r(3,IContextKeyService),__param$2r(4,IInstantiationService),__param$2r(5,ICodeEditorService),__param$2r(6,IAccessibilitySignalService),__param$2r(7,IEditorProgressService)],DiffEditorWidget);function toLineChanges(o){return o.mappings.map(e=>{const t=e.lineRangeMapping;let r,s,a,l,c=t.innerChanges;return t.original.isEmpty?(r=t.original.startLineNumber-1,s=0,c=void 0):(r=t.original.startLineNumber,s=t.original.endLineNumberExclusive-1),t.modified.isEmpty?(a=t.modified.startLineNumber-1,l=0,c=void 0):(a=t.modified.startLineNumber,l=t.modified.endLineNumberExclusive-1),{originalStartLineNumber:r,originalEndLineNumber:s,modifiedStartLineNumber:a,modifiedEndLineNumber:l,charChanges:c==null?void 0:c.map(d=>({originalStartLineNumber:d.originalRange.startLineNumber,originalStartColumn:d.originalRange.startColumn,originalEndLineNumber:d.originalRange.endLineNumber,originalEndColumn:d.originalRange.endColumn,modifiedStartLineNumber:d.modifiedRange.startLineNumber,modifiedStartColumn:d.modifiedRange.startColumn,modifiedEndLineNumber:d.modifiedRange.endLineNumber,modifiedEndColumn:d.modifiedRange.endColumn}))}})}class ToggleCollapseUnchangedRegions extends Action2{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:localize2(85,"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 r=e.get(IConfigurationService),s=!r.getValue("diffEditor.hideUnchangedRegions.enabled");r.updateValue("diffEditor.hideUnchangedRegions.enabled",s)}}class ToggleShowMovedCodeBlocks extends Action2{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:localize2(86,"Toggle Show Moved Code Blocks"),precondition:ContextKeyExpr.has("isInDiffEditor")})}run(e,...t){const r=e.get(IConfigurationService),s=!r.getValue("diffEditor.experimental.showMoves");r.updateValue("diffEditor.experimental.showMoves",s)}}class ToggleUseInlineViewWhenSpaceIsLimited extends Action2{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:localize2(87,"Toggle Use Inline View When Space Is Limited"),precondition:ContextKeyExpr.has("isInDiffEditor")})}run(e,...t){const r=e.get(IConfigurationService),s=!r.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");r.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",s)}}const diffEditorCategory=localize2(88,"Diff Editor");class SwitchSide extends EditorAction2{constructor(){super({id:"diffEditor.switchSide",title:localize2(89,"Switch Side"),icon:Codicon.arrowSwap,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(e,t,r){const s=findFocusedDiffEditor(e);if(s instanceof DiffEditorWidget){if(r&&r.dryRun)return{destinationSelection:s.mapToOtherSide().destinationSelection};s.switchSide()}}}class ExitCompareMove extends EditorAction2{constructor(){super({id:"diffEditor.exitCompareMove",title:localize2(90,"Exit Compare Move"),icon:Codicon.close,precondition:EditorContextKeys.comparingMovedCode,f1:!1,category:diffEditorCategory,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...r){const s=findFocusedDiffEditor(e);s instanceof DiffEditorWidget&&s.exitCompareMove()}}class CollapseAllUnchangedRegions extends EditorAction2{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:localize2(91,"Collapse All Unchanged Regions"),icon:Codicon.fold,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(e,t,...r){const s=findFocusedDiffEditor(e);s instanceof DiffEditorWidget&&s.collapseAllUnchangedRegions()}}class ShowAllUnchangedRegions extends EditorAction2{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:localize2(92,"Show All Unchanged Regions"),icon:Codicon.unfold,precondition:ContextKeyExpr.has("isInDiffEditor"),f1:!0,category:diffEditorCategory})}runEditorCommand(e,t,...r){const s=findFocusedDiffEditor(e);s instanceof DiffEditorWidget&&s.showAllUnchangedRegions()}}class RevertHunkOrSelection extends Action2{constructor(){super({id:"diffEditor.revert",title:localize2(93,"Revert"),f1:!0,category:diffEditorCategory,precondition:ContextKeyExpr.has("isInDiffEditor")})}run(e,t){return t?this.runViaToolbarContext(e,t):this.runViaCursorOrSelection(e)}runViaCursorOrSelection(e){const t=findFocusedDiffEditor(e);t instanceof DiffEditorWidget&&t.revertFocusedRangeMappings()}runViaToolbarContext(e,t){var s;const r=findDiffEditor(e,t.originalUri,t.modifiedUri);r instanceof DiffEditorWidget&&r.revertRangeMappings((s=t.mapping.innerChanges)!=null?s:[])}}const accessibleDiffViewerCategory=localize2(94,"Accessible Diff Viewer"),Oo=class Oo extends Action2{constructor(){super({id:Oo.id,title:localize2(95,"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()}};Oo.id="editor.action.accessibleDiffViewer.next";let AccessibleDiffViewerNext=Oo;const Po=class Po extends Action2{constructor(){super({id:Po.id,title:localize2(96,"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()}};Po.id="editor.action.accessibleDiffViewer.prev";let AccessibleDiffViewerPrev=Po;function findDiffEditor(o,e,t){return o.get(ICodeEditorService).listDiffEditors().find(a=>{var d,u;const l=a.getModifiedEditor(),c=a.getOriginalEditor();return l&&((d=l.getModel())==null?void 0:d.uri.toString())===t.toString()&&c&&((u=c.getModel())==null?void 0:u.uri.toString())===e.toString()})||null}function findFocusedDiffEditor(o){const t=o.get(ICodeEditorService).listDiffEditors(),r=getActiveElement();if(r){for(const s of t)if(s.getContainerDomNode().contains(r))return s}return null}registerAction2(ToggleCollapseUnchangedRegions);registerAction2(ToggleShowMovedCodeBlocks);registerAction2(ToggleUseInlineViewWhenSpaceIsLimited);MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:new ToggleUseInlineViewWhenSpaceIsLimited().desc.id,title:localize(119,"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(120,"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")});registerAction2(RevertHunkOrSelection);for(const o of[{icon:Codicon.arrowRight,key:EditorContextKeys.diffEditorInlineMode.toNegated()},{icon:Codicon.discard,key:EditorContextKeys.diffEditorInlineMode}])MenuRegistry.appendMenuItem(MenuId.DiffEditorHunkToolbar,{command:{id:new RevertHunkOrSelection().desc.id,title:localize(121,"Revert Block"),icon:o.icon},when:ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable,o.key),order:5,group:"primary"}),MenuRegistry.appendMenuItem(MenuId.DiffEditorSelectionToolbar,{command:{id:new RevertHunkOrSelection().desc.id,title:localize(122,"Revert Selection"),icon:o.icon},when:ContextKeyExpr.and(EditorContextKeys.diffEditorModifiedWritable,o.key),order:5,group:"primary"});registerAction2(SwitchSide);registerAction2(ExitCompareMove);registerAction2(CollapseAllUnchangedRegions);registerAction2(ShowAllUnchangedRegions);MenuRegistry.appendMenuItem(MenuId.EditorTitle,{command:{id:AccessibleDiffViewerNext.id,title:localize(123,"Open Accessible Diff Viewer"),precondition:ContextKeyExpr.has("isInDiffEditor")},order:10,group:"2_diff",when:ContextKeyExpr.and(EditorContextKeys.accessibleDiffViewerVisible.negate(),ContextKeyExpr.has("isInDiffEditor"))});CommandsRegistry.registerCommandAlias("editor.action.diffReview.next",AccessibleDiffViewerNext.id);registerAction2(AccessibleDiffViewerNext);CommandsRegistry.registerCommandAlias("editor.action.diffReview.prev",AccessibleDiffViewerPrev.id);registerAction2(AccessibleDiffViewerPrev);var __decorate$2w=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2q=function(o,e){return function(t,r){e(t,r,o)}},SelectionAnchorController_1;const SelectionAnchorSet=new RawContextKey("selectionAnchorSet",!1);var tn;let SelectionAnchorController=(tn=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(798,"Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),alert(localize(799,"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_1=tn,tn.ID="editor.contrib.selectionAnchorController",tn);SelectionAnchorController=SelectionAnchorController_1=__decorate$2w([__param$2q(1,IContextKeyService)],SelectionAnchorController);class SetSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.setSelectionAnchor",label:localize2(800,"Set Selection Anchor"),precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2080),weight:100}})}async run(e,t){var r;(r=SelectionAnchorController.get(t))==null||r.setSelectionAnchor()}}class GoToSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.goToSelectionAnchor",label:localize2(801,"Go to Selection Anchor"),precondition:SelectionAnchorSet})}async run(e,t){var r;(r=SelectionAnchorController.get(t))==null||r.goToSelectionAnchor()}}class SelectFromAnchorToCursor extends EditorAction{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:localize2(802,"Select from Anchor to Cursor"),precondition:SelectionAnchorSet,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2089),weight:100}})}async run(e,t){var r;(r=SelectionAnchorController.get(t))==null||r.selectFromAnchorToCursor()}}class CancelSelectionAnchor extends EditorAction{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:localize2(803,"Cancel Selection Anchor"),precondition:SelectionAnchorSet,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:9,weight:100}})}async run(e,t){var r;(r=SelectionAnchorController.get(t))==null||r.cancelSelectionAnchor()}}registerEditorContribution(SelectionAnchorController.ID,SelectionAnchorController,4);registerEditorAction(SetSelectionAnchor);registerEditorAction(GoToSelectionAnchor);registerEditorAction(SelectFromAnchorToCursor);registerEditorAction(CancelSelectionAnchor);const overviewRulerBracketMatchForeground=registerColor("editorOverviewRuler.bracketMatchForeground","#A0A0A0",localize(804,"Overview ruler marker color for matching brackets."));class JumpToBracketAction extends EditorAction{constructor(){super({id:"editor.action.jumpToBracket",label:localize2(806,"Go to Bracket"),precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3165,weight:100}})}run(e,t){var r;(r=BracketMatchingController.get(t))==null||r.jumpToBracket()}}class SelectToBracketAction extends EditorAction{constructor(){super({id:"editor.action.selectToBracket",label:localize2(807,"Select to Bracket"),precondition:void 0,metadata:{description:localize2(808,"Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,r){var a;let s=!0;r&&r.selectBrackets===!1&&(s=!1),(a=BracketMatchingController.get(t))==null||a.selectToBracket(s)}}class RemoveBracketsAction extends EditorAction{constructor(){super({id:"editor.action.removeBrackets",label:localize2(809,"Remove Brackets"),precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2561,weight:100},canTriggerInlineEdits:!0})}run(e,t){var r;(r=BracketMatchingController.get(t))==null||r.removeBrackets(this.id)}}class BracketsData{constructor(e,t,r){this.position=e,this.brackets=t,this.options=r}}const ai=class ai extends Disposable$1{static get(e){return e.getContribution(ai.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(80),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(80)&&(this._matchBrackets=this._editor.getOption(80),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(r=>{const s=r.getStartPosition(),a=e.bracketPairs.matchBracket(s);let l=null;if(a)a[0].containsPosition(s)&&!a[1].containsPosition(s)?l=a[1].getStartPosition():a[1].containsPosition(s)&&(l=a[0].getStartPosition());else{const c=e.bracketPairs.findEnclosingBrackets(s);if(c)l=c[1].getStartPosition();else{const d=e.bracketPairs.findNextBracket(s);d&&d.range&&(l=d.range.getStartPosition())}}return l?new Selection$1(l.lineNumber,l.column,l.lineNumber,l.column):new Selection$1(s.lineNumber,s.column,s.lineNumber,s.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),r=[];this._editor.getSelections().forEach(s=>{const a=s.getStartPosition();let l=t.bracketPairs.matchBracket(a);if(!l&&(l=t.bracketPairs.findEnclosingBrackets(a),!l)){const u=t.bracketPairs.findNextBracket(a);u&&u.range&&(l=t.bracketPairs.matchBracket(u.range.getStartPosition()))}let c=null,d=null;if(l){l.sort(Range$2.compareRangesUsingStarts);const[u,g]=l;if(c=e?u.getStartPosition():u.getEndPosition(),d=e?g.getEndPosition():g.getStartPosition(),g.containsPosition(a)){const f=c;c=d,d=f}}c&&d&&r.push(new Selection$1(c.lineNumber,c.column,d.lineNumber,d.column))}),r.length>0&&(this._editor.setSelections(r),this._editor.revealRange(r[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(r=>{const s=r.getPosition();let a=t.bracketPairs.matchBracket(s);a||(a=t.bracketPairs.findEnclosingBrackets(s)),a&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:a[0],text:""},{range:a[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const r of this._lastBracketsData){const s=r.brackets;s&&(e[t++]={range:s[0],options:r.options},e[t++]={range:s[1],options:r.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(),r=t.getVersionId();let s=[];this._lastVersionId===r&&(s=this._lastBracketsData);const a=[];let l=0;for(let f=0,m=e.length;f<m;f++){const _=e[f];_.isEmpty()&&(a[l++]=_.getStartPosition())}a.length>1&&a.sort(Position$1.compare);const c=[];let d=0,u=0;const g=s.length;for(let f=0,m=a.length;f<m;f++){const _=a[f];for(;u<g&&s[u].position.isBefore(_);)u++;if(u<g&&s[u].position.equals(_))c[d++]=s[u];else{let v=t.bracketPairs.matchBracket(_,20),b=ai._DECORATION_OPTIONS_WITH_OVERVIEW_RULER;!v&&this._matchBrackets==="always"&&(v=t.bracketPairs.findEnclosingBrackets(_,20),b=ai._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER),c[d++]=new BracketsData(_,v,b)}}this._lastBracketsData=c,this._lastVersionId=r}};ai.ID="editor.contrib.bracketMatchingController",ai._DECORATION_OPTIONS_WITH_OVERVIEW_RULER=ModelDecorationOptions.register({description:"bracket-match-overview",stickiness:1,className:"bracket-match",overviewRuler:{color:themeColorFromId(overviewRulerBracketMatchForeground),position:OverviewRulerLane$1.Center}}),ai._DECORATION_OPTIONS_WITHOUT_OVERVIEW_RULER=ModelDecorationOptions.register({description:"bracket-match-no-overview",stickiness:1,className:"bracket-match"});let BracketMatchingController=ai;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(805,"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 r=this._selection.startLineNumber,s=this._selection.startColumn,a=this._selection.endColumn;if(!(this._isMovingLeft&&s===1)&&!(!this._isMovingLeft&&a===e.getLineMaxColumn(r)))if(this._isMovingLeft){const l=new Range$2(r,s-1,r,s),c=e.getValueInRange(l);t.addEditOperation(l,null),t.addEditOperation(new Range$2(r,a,r,a),c)}else{const l=new Range$2(r,a,r,a+1),c=e.getValueInRange(l);t.addEditOperation(l,null),t.addEditOperation(new Range$2(r,s,r,s),c)}}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 r=[],s=t.getSelections();for(const a of s)r.push(new MoveCaretCommand(a,this.left));t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop()}}class MoveCaretLeftAction extends MoveCaretAction{constructor(){super(!0,{id:"editor.action.moveCarretLeftAction",label:localize2(810,"Move Selected Text Left"),precondition:EditorContextKeys.writable})}}class MoveCaretRightAction extends MoveCaretAction{constructor(){super(!1,{id:"editor.action.moveCarretRightAction",label:localize2(811,"Move Selected Text Right"),precondition:EditorContextKeys.writable})}}registerEditorAction(MoveCaretLeftAction);registerEditorAction(MoveCaretRightAction);class TransposeLettersAction extends EditorAction{constructor(){super({id:"editor.action.transposeLetters",label:localize2(812,"Transpose Letters"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:306},weight:100}})}run(e,t){if(!t.hasModel())return;const r=t.getModel(),s=[],a=t.getSelections();for(const l of a){if(!l.isEmpty())continue;const c=l.startLineNumber,d=l.startColumn,u=r.getLineMaxColumn(c);if(c===1&&(d===1||d===2&&u===2))continue;const g=d===u?l.getPosition():MoveOperations.rightPosition(r,l.getPosition().lineNumber,l.getPosition().column),f=MoveOperations.leftPosition(r,g),m=MoveOperations.leftPosition(r,f),_=r.getValueInRange(Range$2.fromPositions(m,f)),v=r.getValueInRange(Range$2.fromPositions(f,g)),b=Range$2.fromPositions(m,g);s.push(new ReplaceCommand(b,v+_))}s.length>0&&(t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop())}}registerEditorAction(TransposeLettersAction);const IProductService=createDecorator("productService");function createStringDataTransferItem(o,e){return{id:e,asString:async()=>o,asFile:()=>{},value:typeof o=="string"?o:void 0}}function createFileDataTransferItem(o,e,t,r){const s={id:generateUuid(),name:o,uri:e,data:t};return{id:r,asString:async()=>"",asFile:()=>s,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,([r,s])=>s.asFile())&&t.push("files"),matchesMimeType_normalized(normalizeMimeType(e),t)}get(e){var t;return(t=this._entries.get(this.toKey(e)))==null?void 0:t[0]}append(e,t){const r=this._entries.get(e);r?r.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 r of t)yield[e,r]}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[r,s,a]=t;return a==="*"?e.some(l=>l.startsWith(s+"/")):!1}const UriList=Object.freeze({create:o=>distinct(o.map(e=>e.toString())).join("\r\n"),split:o=>o.split("\r\n"),parse:o=>UriList.split(o).filter(e=>!e.startsWith("#"))}),Pt=class Pt{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+Pt.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(...e){return new Pt((this.value?[this.value,...e]:e).join(Pt.sep))}};Pt.sep=".",Pt.None=new Pt("@@none@@"),Pt.Empty=new Pt("");let HierarchicalKind=Pt;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={}));var QuickPickFocus;(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",o[o.NextSeparator=8]="NextSeparator",o[o.PreviousSeparator=9]="PreviousSeparator"})(QuickPickFocus||(QuickPickFocus={}));var QuickInputButtonLocation;(function(o){o[o.Title=1]="Title",o[o.Inline=2]="Inline",o[o.Input=3]="Input"})(QuickInputButtonLocation||(QuickInputButtonLocation={}));const IQuickInputService=createDecorator("quickInputService"),CodeDataTransfers={EDITORS:"CodeEditors",FILES:"CodeFiles"};class DragAndDropContributionRegistry{}const Extensions$1={DragAndDropContribution:"workbench.contributions.dragAndDrop"};Registry.add(Extensions$1.DragAndDropContribution,new DragAndDropContributionRegistry);const zr=class zr{constructor(){}static getInstance(){return zr.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}};zr.INSTANCE=new zr;let LocalSelectionTransfer=zr;function getPathForFile(o){var e,t,r,s;if(isNative&&typeof((t=(e=globalThis.vscode)==null?void 0:e.webUtils)==null?void 0:t.getPathForFile)=="function")return(s=(r=globalThis.vscode)==null?void 0:r.webUtils)==null?void 0:s.getPathForFile(o)}function toVSDataTransfer(o){const e=new VSDataTransfer;for(const t of o.items){const r=t.type;if(t.kind==="string"){const s=new Promise(a=>t.getAsString(a));e.append(r,createStringDataTransferItem(s))}else if(t.kind==="file"){const s=t.getAsFile();s&&e.append(r,createFileDataTransferItemFromFile(s))}}return e}function createFileDataTransferItemFromFile(o){const e=getPathForFile(o),t=e?URI.parse(e):void 0;return createFileDataTransferItem(o.name,t,async()=>new Uint8Array(await 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),r=t.get(DataTransfers.INTERNAL_URI_LIST);if(r)t.replace(Mimes.uriList,r);else if(e||!t.has(Mimes.uriList)){const s=[];for(const a of o.items){const l=a.getAsFile();if(l){const c=getPathForFile(l);try{c?s.push(URI.file(c).toString()):s.push(URI.parse(l.name,!0).toString())}catch(d){}}}s.length&&t.replace(Mimes.uriList,createStringDataTransferItem(UriList.create(s)))}for(const s of INTERNAL_DND_MIME_TYPES)t.delete(s);return t}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$3(e)&&URI.isUri(e.resource)&&isObject$3(e.textEdit)}static lift(e){return e instanceof ResourceTextEdit?e:new ResourceTextEdit(e.resource,e.textEdit,e.versionId,e.metadata)}constructor(e,t,r=void 0,s){super(s),this.resource=e,this.textEdit=t,this.versionId=r}}class ResourceFileEdit extends ResourceEdit{static is(e){return e instanceof ResourceFileEdit?!0:isObject$3(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,r={},s){super(s),this.oldResource=e,this.newResource=t,this.options=r}}const IEditorCancellationTokens=createDecorator("IEditorCancelService"),ctxCancellableOperation=new RawContextKey("cancellableOperation",!1,localize(939,"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(s=>{const a=ctxCancellableOperation.bindTo(s.get(IContextKeyService)),l=new LinkedList;return{key:a,tokens:l}}),this._tokens.set(o,t));let r;return t.key.set(!0),r=t.tokens.push(e),()=>{r&&(r(),t.key.set(!t.tokens.isEmpty()),r=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(r=>r.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 Xs{constructor(e,t){if(this.flags=t,(this.flags&1)!==0){const r=e.getModel();this.modelVersionId=r?format("{0}#{1}",r.uri.toString(),r.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 Xs))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 Xs(e,this.flags))}};class EditorStateCancellationTokenSource extends EditorKeybindingCancellationTokenSource{constructor(e,t,r,s){super(e,s),this._listener=new DisposableStore$1,t&4&&this._listener.add(e.onDidChangeCursorPosition(a=>{(!r||!Range$2.containsPosition(r,a.position))&&this.cancel()})),t&2&&this._listener.add(e.onDidChangeCursorSelection(a=>{(!r||!Range$2.containsRange(r,a.selection))&&this.cancel()})),t&8&&this._listener.add(e.onDidScrollChange(a=>this.cancel())),t&1&&(this._listener.add(e.onDidChangeModel(a=>this.cancel())),this._listener.add(e.onDidChangeModelContent(a=>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()}}var __decorate$2v=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2p=function(o,e){return function(t,r){e(t,r,o)}};const inlineProgressDecoration=ModelDecorationOptions.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:noBreakWhitespace,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}}),$o=class $o extends Disposable$1{constructor(e,t,r,s,a){super(),this.typeId=e,this.editor=t,this.range=r,this.delegate=a,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(s),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=$$m(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=$$m("span.icon");this.domNode.append(t),t.classList.add(...ThemeIcon.asClassNameArray(Codicon.loading),"codicon-modifier-spin");const r=()=>{const s=this.editor.getOption(75);this.domNode.style.height="".concat(s,"px"),this.domNode.style.width="".concat(Math.ceil(.8*s),"px")};r(),this._register(this.editor.onDidChangeConfiguration(s=>{(s.hasChanged(61)||s.hasChanged(75))&&r()})),this._register(addDisposableListener(this.domNode,EventType$1.CLICK,s=>{this.delegate.cancel()}))}getId(){return $o.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}};$o.baseId="editor.widget.inlineProgressWidget";let InlineProgressWidget=$o,InlineProgressManager=class extends Disposable$1{constructor(e,t,r){super(),this.id=e,this._editor=t,this._instantiationService=r,this._showDelay=500,this._showPromise=this._register(new MutableDisposable),this._currentWidget=this._register(new MutableDisposable),this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}dispose(){super.dispose(),this._currentDecorations.clear()}async showWhile(e,t,r,s,a){const l=this._operationIdPool++;this._currentOperation=l,this.clear(),this._showPromise.value=disposableTimeout(()=>{const c=Range$2.fromPositions(e);this._currentDecorations.set([{range:c,options:inlineProgressDecoration}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(InlineProgressWidget,this.id,this._editor,c,t,s))},a!=null?a:this._showDelay);try{return await r}finally{this._currentOperation===l&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};InlineProgressManager=__decorate$2v([__param$2p(2,IInstantiationService)],InlineProgressManager);const IOpenerService=createDecorator("openerService");function withSelection(o,e){return o.with({fragment:"".concat(e.startLineNumber,",").concat(e.startColumn).concat(e.endLineNumber?"-".concat(e.endLineNumber).concat(e.endColumn?",".concat(e.endColumn):""):"")})}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$2u=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2o=function(o,e){return function(t,r){e(t,r,o)}};const IMarkdownRendererService=createDecorator("markdownRendererService");let MarkdownRendererService=class{constructor(e){this._openerService=e}render(e,t,r){const s={...t};s.actionHandler||(s.actionHandler=(l,c)=>openLinkFromMarkdown(this._openerService,l,c.isTrusted)),s.codeBlockRenderer||(s.codeBlockRenderer=(l,c)=>{var d,u;return(u=(d=this._defaultCodeBlockRenderer)==null?void 0:d.renderCodeBlock(l,c,s!=null?s:{}))!=null?u:Promise.resolve(document.createElement("span"))});const a=renderMarkdown$1(e,s,r);return a.element.classList.add("rendered-markdown"),a}setDefaultCodeBlockRenderer(e){this._defaultCodeBlockRenderer=e}};MarkdownRendererService=__decorate$2u([__param$2o(0,IOpenerService)],MarkdownRendererService);async function openLinkFromMarkdown(o,e,t,r){try{return await o.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:toAllowCommandsOption(t),skipValidation:r})}catch(s){return onUnexpectedError(s),!1}}function toAllowCommandsOption(o){return o===!0?!0:o&&Array.isArray(o.enabledCommands)?o.enabledCommands:!1}registerSingleton(IMarkdownRendererService,MarkdownRendererService,1);var __decorate$2t=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2n=function(o,e){return function(t,r){e(t,r,o)}},MessageController_1,mi;let MessageController=(mi=class{static get(e){return e.getContribution(MessageController_1.ID)}constructor(e,t,r){this._openerService=r,this._messageWidget=new MutableDisposable,this._messageListeners=new DisposableStore$1,this._mouseOverMessage=!1,this._editor=e,this._visible=MessageController_1.MESSAGE_VISIBLE.bindTo(t)}dispose(){this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){if(alert(isMarkdownString(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),isMarkdownString(e)){const s=this._messageListeners.add(renderMarkdown$1(e,{actionHandler:(a,l)=>{this.closeMessage(),openLinkFromMarkdown(this._openerService,a,l.isTrusted)}}));this._messageWidget.value=new MessageWidget$1(this._editor,t,s.element)}else this._messageWidget.value=new MessageWidget$1(this._editor,t,e);this._messageListeners.add(Event$1.debounce(this._editor.onDidBlurEditorText,(s,a)=>a,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 r;this._messageListeners.add(this._editor.onMouseMove(s=>{s.target.position&&(r?r.containsPosition(s.target.position)||this.closeMessage():r=new Range$2(t.lineNumber-3,1,s.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_1=mi,mi.ID="editor.contrib.messageController",mi.MESSAGE_VISIBLE=new RawContextKey("messageVisible",!1,localize(1287,"Whether the editor is currently showing an inline message")),mi);MessageController=MessageController_1=__decorate$2t([__param$2n(1,IContextKeyService),__param$2n(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(r),e.getDomNode().removeEventListener("animationend",t)},r=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}constructor(e,{lineNumber:t,column:r},s){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:r},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const a=document.createElement("div");a.classList.add("anchor","top"),this._domNode.appendChild(a);const l=document.createElement("div");typeof s=="string"?(l.classList.add("message"),l.textContent=s):(s.classList.add("message"),l.appendChild(s)),this._domNode.appendChild(l);const c=document.createElement("div");c.classList.add("anchor","below"),this._domNode.appendChild(c),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);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),r=this._value.charCodeAt(this._pos);return t-r}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 r=this._value.charCodeAt(t);if(!(r===47||this._splitOnBackslash&&r===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}}const Hr=class Hr{static wrap(e){return e===void 0?Hr.Val:e}static unwrap(e){return e===Hr.Val?void 0:e}};Hr.Val=Symbol("undefined_placeholder");let Undef=Hr;class TernarySearchTreeNode{constructor(){this.height=1,this.value=void 0,this.key=void 0,this.left=void 0,this.mid=void 0,this.right=void 0}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?void 0:e.height)!=null?t:0}get heightRight(){var e,t;return(t=(e=this.right)==null?void 0:e.height)!=null?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 r=this._iter.reset(e);let s;this._root||(this._root=new TernarySearchTreeNode,this._root.segment=r.value());const a=[];for(s=this._root;;){const c=r.cmp(s.segment);if(c>0)s.left||(s.left=new TernarySearchTreeNode,s.left.segment=r.value()),a.push([-1,s]),s=s.left;else if(c<0)s.right||(s.right=new TernarySearchTreeNode,s.right.segment=r.value()),a.push([1,s]),s=s.right;else if(r.hasNext())r.next(),s.mid||(s.mid=new TernarySearchTreeNode,s.mid.segment=r.value()),a.push([0,s]),s=s.mid;else break}const l=Undef.unwrap(s.value);s.value=Undef.wrap(t),s.key=e;for(let c=a.length-1;c>=0;c--){const d=a[c][1];d.updateHeight();const u=d.balanceFactor();if(u<-1||u>1){const g=a[c][0],f=a[c+1][0];if(g===1&&f===1)a[c][1]=d.rotateLeft();else if(g===-1&&f===-1)a[c][1]=d.rotateRight();else if(g===1&&f===-1)d.right=a[c+1][1]=a[c+1][1].rotateRight(),a[c][1]=d.rotateLeft();else if(g===-1&&f===1)d.left=a[c+1][1]=a[c+1][1].rotateLeft(),a[c][1]=d.rotateRight();else throw new Error;if(c>0)switch(a[c-1][0]){case-1:a[c-1][1].left=a[c][1];break;case 1:a[c-1][1].right=a[c][1];break;case 0:a[c-1][1].mid=a[c][1];break}else this._root=a[0][1]}}return l}get(e){var t;return Undef.unwrap((t=this._getNode(e))==null?void 0:t.value)}_getNode(e){const t=this._iter.reset(e);let r=this._root;for(;r;){const s=t.cmp(r.segment);if(s>0)r=r.left;else if(s<0)r=r.right;else if(t.hasNext())t.next(),r=r.mid;else break}return r}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 l,c;const r=this._iter.reset(e),s=[];let a=this._root;for(;a;){const d=r.cmp(a.segment);if(d>0)s.push([-1,a]),a=a.left;else if(d<0)s.push([1,a]),a=a.right;else if(r.hasNext())r.next(),s.push([0,a]),a=a.mid;else break}if(a){if(t?(a.left=void 0,a.mid=void 0,a.right=void 0,a.height=1):(a.key=void 0,a.value=void 0),!a.mid&&!a.value)if(a.left&&a.right){const d=[[1,a]],u=this._min(a.right,d);if(u.key){a.key=u.key,a.value=u.value,a.segment=u.segment;const g=u.right;if(d.length>1){const[m,_]=d[d.length-1];switch(m){case-1:_.left=g;break;case 0:assert(!1);case 1:assert(!1)}}else a.right=g;const f=this._balanceByStack(d);if(s.length>0){const[m,_]=s[s.length-1];switch(m){case-1:_.left=f;break;case 0:_.mid=f;break;case 1:_.right=f;break}}else this._root=f}}else{const d=(l=a.left)!=null?l:a.right;if(s.length>0){const[u,g]=s[s.length-1];switch(u){case-1:g.left=d;break;case 0:g.mid=d;break;case 1:g.right=d;break}}else this._root=d}this._root=(c=this._balanceByStack(s))!=null?c:this._root}}_min(e,t){for(;e.left;)t.push([-1,e]),e=e.left;return e}_balanceByStack(e){for(let t=e.length-1;t>=0;t--){const r=e[t][1];r.updateHeight();const s=r.balanceFactor();if(s>1?(r.right.balanceFactor()>=0||(r.right=r.right.rotateRight()),e[t][1]=r.rotateLeft()):s<-1&&(r.left.balanceFactor()<=0||(r.left=r.left.rotateLeft()),e[t][1]=r.rotateRight()),t>0)switch(e[t-1][0]){case-1:e[t-1][1].left=e[t][1];break;case 1:e[t-1][1].right=e[t][1];break;case 0:e[t-1][1].mid=e[t][1];break}else return e[0][1]}}findSubstr(e){const t=this._iter.reset(e);let r=this._root,s;for(;r;){const a=t.cmp(r.segment);if(a>0)r=r.left;else if(a<0)r=r.right;else if(t.hasNext())t.next(),s=Undef.unwrap(r.value)||s,r=r.mid;else break}return r&&Undef.unwrap(r.value)||s}findSuperstr(e){return this._findSuperstrOrElement(e,!1)}_findSuperstrOrElement(e,t){const r=this._iter.reset(e);let s=this._root;for(;s;){const a=r.cmp(s.segment);if(a>0)s=s.left;else if(a<0)s=s.right;else if(r.hasNext())r.next(),s=s.mid;else return s.mid?this._entries(s.mid):t?Undef.unwrap(s.value):void 0}}forEach(e){for(const[t,r]of this)e(r,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!==void 0&&t.push([e.key,Undef.unwrap(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(2050,"Code Workspace");const STANDALONE_EDITOR_WORKSPACE_ID="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function isStandaloneEditorWorkspace(o){return o.id===STANDALONE_EDITOR_WORKSPACE_ID}var __decorate$2s=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2m=function(o,e){return function(t,r){e(t,r,o)}};class SimplePasteAndDropProvider{constructor(e){this.copyMimeTypes=[],this.kind=e,this.providedDropEditKinds=[this.kind],this.providedPasteEditKinds=[this.kind]}async provideDocumentPasteEdits(e,t,r,s,a){const l=await this.getEdit(r,a);if(l)return{edits:[{insertText:l.insertText,title:l.title,kind:l.kind,handledMimeType:l.handledMimeType,yieldTo:l.yieldTo}],dispose(){}}}async provideDocumentDropEdits(e,t,r,s){const a=await this.getEdit(r,s);if(a)return{edits:[{insertText:a.insertText,title:a.title,kind:a.kind,handledMimeType:a.handledMimeType,yieldTo:a.yieldTo}],dispose(){}}}}const Fo=class Fo extends SimplePasteAndDropProvider{constructor(){super(HierarchicalKind.Empty.append("text","plain")),this.id=Fo.id,this.dropMimeTypes=[Mimes.text],this.pasteMimeTypes=[Mimes.text]}async getEdit(e,t){const r=e.get(Mimes.text);if(!r||e.has(Mimes.uriList))return;const s=await r.asString();return{handledMimeType:Mimes.text,title:localize(926,"Insert Plain Text"),insertText:s,kind:this.kind}}};Fo.id="text";let DefaultTextPasteOrDropEditProvider=Fo;class PathProvider extends SimplePasteAndDropProvider{constructor(){super(HierarchicalKind.Empty.append("uri","path","absolute")),this.dropMimeTypes=[Mimes.uriList],this.pasteMimeTypes=[Mimes.uriList]}async getEdit(e,t){const r=await extractUriList(e);if(!r.length||t.isCancellationRequested)return;let s=0;const a=r.map(({uri:c,originalText:d})=>c.scheme===Schemas.file?c.fsPath:(s++,d)).join(" ");let l;return s>0?l=r.length>1?localize(927,"Insert Uris"):localize(928,"Insert Uri"):l=r.length>1?localize(929,"Insert Paths"):localize(930,"Insert Path"),{handledMimeType:Mimes.uriList,insertText:a,title:l,kind:this.kind}}}let RelativePathProvider=class extends SimplePasteAndDropProvider{constructor(e){super(HierarchicalKind.Empty.append("uri","path","relative")),this._workspaceContextService=e,this.dropMimeTypes=[Mimes.uriList],this.pasteMimeTypes=[Mimes.uriList]}async getEdit(e,t){const r=await extractUriList(e);if(!r.length||t.isCancellationRequested)return;const s=coalesce(r.map(({uri:a})=>{const l=this._workspaceContextService.getWorkspaceFolder(a);return l?relativePath(l.uri,a):void 0}));if(s.length)return{handledMimeType:Mimes.uriList,insertText:s.join(" "),title:r.length>1?localize(931,"Insert Relative Paths"):localize(932,"Insert Relative Path"),kind:this.kind}}};RelativePathProvider=__decorate$2s([__param$2m(0,IWorkspaceContextService)],RelativePathProvider);class PasteHtmlProvider{constructor(){this.kind=new HierarchicalKind("html"),this.providedPasteEditKinds=[this.kind],this.copyMimeTypes=[],this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Mimes.text}]}async provideDocumentPasteEdits(e,t,r,s,a){var d;if(s.triggerKind!==DocumentPasteTriggerKind.PasteAs&&!((d=s.only)!=null&&d.contains(this.kind)))return;const l=r.get("text/html"),c=await(l==null?void 0:l.asString());if(!(!c||a.isCancellationRequested))return{dispose(){},edits:[{insertText:c,yieldTo:this._yieldTo,title:localize(933,"Insert HTML"),kind:this.kind}]}}}async function extractUriList(o){const e=o.get(Mimes.uriList);if(!e)return[];const t=await e.asString(),r=[];for(const s of UriList.parse(t))try{r.push({uri:URI.parse(s),originalText:s})}catch(a){}return r}const genericLanguageSelector={scheme:"*",hasAccessToAllModels:!0};let DefaultDropProvidersFeature=class extends Disposable$1{constructor(e,t){super(),this._register(e.documentDropEditProvider.register(genericLanguageSelector,new DefaultTextPasteOrDropEditProvider)),this._register(e.documentDropEditProvider.register(genericLanguageSelector,new PathProvider)),this._register(e.documentDropEditProvider.register(genericLanguageSelector,new RelativePathProvider(t)))}};DefaultDropProvidersFeature=__decorate$2s([__param$2m(0,ILanguageFeaturesService),__param$2m(1,IWorkspaceContextService)],DefaultDropProvidersFeature);let DefaultPasteProvidersFeature=class extends Disposable$1{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register(genericLanguageSelector,new DefaultTextPasteOrDropEditProvider)),this._register(e.documentPasteEditProvider.register(genericLanguageSelector,new PathProvider)),this._register(e.documentPasteEditProvider.register(genericLanguageSelector,new RelativePathProvider(t))),this._register(e.documentPasteEditProvider.register(genericLanguageSelector,new PasteHtmlProvider))}};DefaultPasteProvidersFeature=__decorate$2s([__param$2m(0,ILanguageFeaturesService),__param$2m(1,IWorkspaceContextService)],DefaultPasteProvidersFeature);const vt=class vt{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,r=this.value.charCodeAt(e),s;if(s=vt._table[r],typeof s=="number")return this.pos+=1,{type:s,pos:e,len:1};if(vt.isDigitCharacter(r)){s=8;do t+=1,r=this.value.charCodeAt(e+t);while(vt.isDigitCharacter(r));return this.pos+=t,{type:s,pos:e,len:t}}if(vt.isVariableCharacter(r)){s=9;do r=this.value.charCodeAt(e+ ++t);while(vt.isVariableCharacter(r)||vt.isDigitCharacter(r));return this.pos+=t,{type:s,pos:e,len:t}}s=10;do t+=1,r=this.value.charCodeAt(e+t);while(!isNaN(r)&&typeof vt._table[r]>"u"&&!vt.isDigitCharacter(r)&&!vt.isVariableCharacter(r));return this.pos+=t,{type:s,pos:e,len:t}}};vt._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};let Scanner=vt;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:r}=e,s=r.children.indexOf(e),a=r.children.slice(0);a.splice(s,1,...t),r._children=a,(function l(c,d){for(const u of c)u.parent=d,l(u.children,u)})(t,r)}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 r=!1,s=e.replace(this.regexp,function(){return r=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!r&&this._children.some(a=>a instanceof FormatString&&!!a.elseValue)&&(s=this._replace([])),s}_replace(e){let t="";for(const r of this._children)if(r instanceof FormatString){let s=e[r.index]||"";s=r.resolve(s),t+=s}else t+=r.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,r,s){super(),this.index=e,this.shorthandName=t,this.ifValue=r,this.elseValue=s}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(r=>r.charAt(0).toUpperCase()+r.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((r,s)=>s===0?r.charAt(0).toLowerCase()+r.substr(1):r.charAt(0).toUpperCase()+r.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 r=t.shift();if(!e(r))break;t.unshift(...r.children)}}class TextmateSnippet extends Marker{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(r){return r instanceof Placeholder&&(e.push(r),t=!t||t.index<r.index?r: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,r=!1;return this.walk(s=>s===e?(r=!0,!1):(t+=s.len(),!0)),r?t:-1}fullLen(e){let t=0;return walk([e],r=>(t+=r.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:r}=e;for(;r;)r instanceof Placeholder&&t.push(r),r=r.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,r){const s=new TextmateSnippet;return this.parseFragment(e,s),this.ensureFinalTabstop(s,r!=null?r:!1,t!=null?t:!1),s}parseFragment(e,t){const r=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const s=new Map,a=[];t.walk(d=>(d instanceof Placeholder&&(d.isFinalTabstop?s.set(0,void 0):!s.has(d.index)&&d.children.length>0?s.set(d.index,d.children):a.push(d)),!0));const l=(d,u)=>{const g=s.get(d.index);if(!g)return;const f=new Placeholder(d.index);f.transform=d.transform;for(const m of g){const _=m.clone();f.appendChild(_),_ instanceof Placeholder&&s.has(_.index)&&!u.has(_.index)&&(u.add(_.index),l(_,u),u.delete(_.index))}t.replace(d,[f])},c=new Set;for(const d of a)l(d,c);return t.children.slice(r)}ensureFinalTabstop(e,t,r){(t||r&&e.placeholders.length>0)&&(e.placeholders.find(a=>a.index===0)||e.appendChild(new Placeholder(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const r=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),r}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 s=this._scanner.next();if(s.type!==0&&s.type!==4&&s.type!==5)return!1}this._token=this._scanner.next()}const r=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),r}_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 r=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(r)}_parseComplexPlaceholder(e){let t;const r=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(r);const a=new Placeholder(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(a),!0;if(!this._parse(a))return e.appendChild(new Text("${"+t+":")),a.children.forEach(e.appendChild,e),!0}else if(a.index>0&&this._accept(7)){const l=new Choice;for(;;){if(this._parseChoiceElement(l)){if(this._accept(2))continue;if(this._accept(7)&&(a.appendChild(l),this._accept(4)))return e.appendChild(a),!0}return this._backTo(r),!1}}else return this._accept(6)?this._parseTransform(a)?(e.appendChild(a),!0):(this._backTo(r),!1):this._accept(4)?(e.appendChild(a),!0):this._backTo(r)}_parseChoiceElement(e){const t=this._token,r=[];for(;!(this._token.type===2||this._token.type===7);){let s;if((s=this._accept(5,!0))?s=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||s:s=this._accept(void 0,!0),!s)return this._backTo(t),!1;r.push(s)}return r.length===0?(this._backTo(t),!1):(e.appendChild(new Text(r.join(""))),!0)}_parseComplexVariable(e){let t;const r=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(r);const a=new Variable(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(a),!0;if(!this._parse(a))return e.appendChild(new Text("${"+t+":")),a.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(a)?(e.appendChild(a),!0):(this._backTo(r),!1):this._accept(4)?(e.appendChild(a),!0):this._backTo(r)}_parseTransform(e){const t=new Transform;let r="",s="";for(;!this._accept(6);){let a;if(a=this._accept(5,!0)){a=this._accept(6,!0)||a,r+=a;continue}if(this._token.type!==14){r+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let a;if(a=this._accept(5,!0)){a=this._accept(5,!0)||this._accept(6,!0)||a,t.appendChild(new Text(a));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){s+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(r,s)}catch(a){return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let r=!1;this._accept(3)&&(r=!0);const s=this._accept(8,!0);if(s)if(r){if(this._accept(4))return e.appendChild(new FormatString(Number(s))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new FormatString(Number(s))),!0;else return this._backTo(t),!1;if(this._accept(6)){const a=this._accept(9,!0);return!a||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new FormatString(Number(s),a)),!0)}else if(this._accept(11)){const a=this._until(4);if(a)return e.appendChild(new FormatString(Number(s),void 0,a,void 0)),!0}else if(this._accept(12)){const a=this._until(4);if(a)return e.appendChild(new FormatString(Number(s),void 0,void 0,a)),!0}else if(this._accept(13)){const a=this._until(1);if(a){const l=this._until(4);if(l)return e.appendChild(new FormatString(Number(s),void 0,a,l)),!0}}else{const a=this._until(4);if(a)return e.appendChild(new FormatString(Number(s),void 0,void 0,a)),!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}}function createCombinedWorkspaceEdit(o,e,t){var r,s,a,l;return(typeof t.insertText=="string"?t.insertText==="":t.insertText.snippet==="")?{edits:(s=(r=t.additionalEdit)==null?void 0:r.edits)!=null?s:[]}:{edits:[...e.map(c=>new ResourceTextEdit(o,{range:c,text:typeof t.insertText=="string"?SnippetParser.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...(l=(a=t.additionalEdit)==null?void 0:a.edits)!=null?l:[]]}}function sortEditsByYieldTo(o){var l;function e(c,d){return"mimeType"in c?c.mimeType===d.handledMimeType:!!d.kind&&c.kind.contains(d.kind)}const t=new Map;for(const c of o)for(const d of(l=c.yieldTo)!=null?l:[])for(const u of o)if(u!==c&&e(d,u)){let g=t.get(c);g||(g=[],t.set(c,g)),g.push(u)}if(!t.size)return Array.from(o);const r=new Set,s=[];function a(c){if(!c.length)return[];const d=c[0];if(s.includes(d))return console.warn("Yield to cycle detected",d),c;if(r.has(d))return a(c.slice(1));let u=[];const g=t.get(d);return g&&(s.push(d),u=a(g),s.pop()),r.add(d),[...u,d,...a(c.slice(1))]}return a(Array.from(o))}Color.white.toString(),Color.white.toString();const buttonSanitizerConfig=Object.freeze({allowedTags:{override:["b","i","u","code","span"]},allowedAttributes:{override:["class"]}});class Button extends Disposable$1{get onDidClick(){return this._onDidClick.event}constructor(e,t){super(),this._label="",this._onDidClick=this._register(new Emitter$1),this._onDidEscape=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 r=t.secondary?t.buttonSecondaryBackground:t.buttonBackground,s=t.secondary?t.buttonSecondaryForeground:t.buttonForeground;this._element.style.color=s||"",this._element.style.backgroundColor=r||"",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")),typeof t.title=="string"&&this.setTitle(t.title),typeof t.ariaLabel=="string"&&this._element.setAttribute("aria-label",t.ariaLabel),e.appendChild(this._element),this.enabled=!t.disabled,this._register(Gesture.addTarget(this._element)),[EventType$1.CLICK,EventType.Tap].forEach(a=>{this._register(addDisposableListener(this._element,a,l=>{if(!this.enabled){EventHelper$1.stop(l);return}this._onDidClick.fire(l)}))}),this._register(addDisposableListener(this._element,EventType$1.KEY_DOWN,a=>{const l=new StandardKeyboardEvent(a);let c=!1;this.enabled&&(l.equals(3)||l.equals(10))?(this._onDidClick.fire(a),c=!0):l.equals(9)&&(this._onDidEscape.fire(a),this._element.blur(),c=!0),c&&EventHelper$1.stop(l,!0)})),this._register(addDisposableListener(this._element,EventType$1.MOUSE_OVER,a=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register(addDisposableListener(this._element,EventType$1.MOUSE_OUT,a=>{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 r of renderLabelWithIcons(e))if(typeof r=="string"){if(r=r.trim(),r==="")continue;const s=document.createElement("span");s.textContent=r,t.push(s)}else t.push(r);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 s;if(this._label===e||isMarkdownString(this._label)&&isMarkdownString(e)&&markdownStringEqual(this._label,e))return;this._element.classList.add("monaco-text-button");const t=this.options.supportShortLabel?this._labelElement:this._element;if(isMarkdownString(e)){const a=renderMarkdown$1(e,void 0,document.createElement("span"));a.dispose();const l=(s=a.element.querySelector("p"))==null?void 0:s.innerHTML;l?safeSetInnerHtml(t,l,buttonSanitizerConfig):reset(t)}else this.options.supportIcons?reset(t,...this.getContentElements(e)):t.textContent=e;let r="";typeof this.options.title=="string"?r=this.options.title:this.options.title&&(r=renderAsPlaintext(e)),this.setTitle(r),this._setAriaLabel(),this._label=e}get label(){return this._label}_setAriaLabel(){typeof this.options.ariaLabel=="string"?this._element.setAttribute("aria-label",this.options.ariaLabel):typeof this.options.title=="string"&&this._element.setAttribute("aria-label",this.options.title)}set icon(e){this._setAriaLabel();const t=Array.from(this._element.classList).filter(r=>r.startsWith("codicon-"));this._element.classList.remove(...t),this._element.classList.add(...ThemeIcon.asClassNameArray(e))}set enabled(e){e?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}setTitle(e){var t;!this._hover&&e!==""?this._hover=this._register(getBaseLayerHoverDelegate().setupManagedHover((t=this.options.hoverDelegate)!=null?t:getDefaultHoverDelegate("element"),this._element,e)):this._hover&&this._hover.update(e)}}function exceptionToErrorMessage(o,e){return e&&(o.stack||o.stacktrace)?localize(29,"{0}: {1}",detectSystemErrorMessage(o),stackToString(o.stack)||stackToString(o.stacktrace)):detectSystemErrorMessage(o)}function stackToString(o){return Array.isArray(o)?o.join("\n"):o}function detectSystemErrorMessage(o){return o.code==="ERR_UNC_HOST_NOT_ALLOWED"?"".concat(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(30,"A system error occurred ({0})",o.message):o.message||localize(31,"An unknown error occurred. Please consult the log for more details.")}function toErrorMessage(o=null,e=!1){if(!o)return localize(32,"An unknown error occurred. Please consult the log for more details.");if(Array.isArray(o)){const t=coalesce(o),r=toErrorMessage(t[0],e);return t.length>1?localize(33,"{0} ({1} errors in total)",r,t.length):r}if(isString$2(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(34,"An unknown error occurred. Please consult the log for more details.")}const $$k=$$m,unthemedKeybindingLabelOptions={keybindingLabelBackground:void 0,keybindingLabelForeground:void 0,keybindingLabelBorder:void 0,keybindingLabelBottomBorder:void 0,keybindingLabelShadow:void 0};class KeybindingLabel extends Disposable$1{constructor(e,t,r){super(),this.os=t,this.keyElements=new Set,this.options=r||Object.create(null);const s=this.options.keybindingLabelForeground;this.domNode=append$2(e,$$k(".monaco-keybinding")),s&&(this.domNode.style.color=s),this.hover=this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate("mouse"),this.domNode,"")),this.didEverRender=!1,e.appendChild(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 s=1;s<t.length;s++)append$2(this.domNode,$$k("span.monaco-keybinding-key-chord-separator",void 0," ")),this.renderChord(this.domNode,t[s],this.matches?this.matches.chordPart:null);const r=(e=this.options.disableTitle)!=null&&e?void 0:this.keybinding.getAriaLabel()||void 0;this.hover.update(r),this.domNode.setAttribute("aria-label",r||"")}else this.options&&this.options.renderUnboundKeybindings&&this.renderUnbound(this.domNode);this.didEverRender=!0}clear(){clearNode(this.domNode),this.keyElements.clear()}renderChord(e,t,r){const s=UILabelProvider.modifierLabels[this.os];t.ctrlKey&&this.renderKey(e,s.ctrlKey,!!(r!=null&&r.ctrlKey),s.separator),t.shiftKey&&this.renderKey(e,s.shiftKey,!!(r!=null&&r.shiftKey),s.separator),t.altKey&&this.renderKey(e,s.altKey,!!(r!=null&&r.altKey),s.separator),t.metaKey&&this.renderKey(e,s.metaKey,!!(r!=null&&r.metaKey),s.separator);const a=t.keyLabel;a&&this.renderKey(e,a,!!(r!=null&&r.keyCode),"")}renderKey(e,t,r,s){append$2(e,this.createKeyElement(t,r?".highlight":"")),s&&append$2(e,$$k("span.monaco-keybinding-key-separator",void 0,s))}renderUnbound(e){append$2(e,this.createKeyElement(localize(15,"Unbound")))}createKeyElement(e,t=""){const r=$$k("span.monaco-keybinding-key"+t,void 0,e);return this.keyElements.add(r),this.options.keybindingLabelBackground&&(r.style.backgroundColor=this.options.keybindingLabelBackground),this.options.keybindingLabelBorder&&(r.style.borderColor=this.options.keybindingLabelBorder),this.options.keybindingLabelBottomBorder&&(r.style.borderBottomColor=this.options.keybindingLabelBottomBorder),this.options.keybindingLabelShadow&&(r.style.boxShadow="inset 0 -1px 0 ".concat(this.options.keybindingLabelShadow)),r}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 ILayoutService=createDecorator("layoutService");var __decorate$2r=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2l=function(o,e){return function(t,r){e(t,r,o)}};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,r){var s,a,l;r.text.textContent=(l=(a=(s=e.group)==null?void 0:s.title)!=null?a:e.label)!=null?l:""}disposeTemplate(e){}}class SeparatorRenderer{get templateId(){return"separator"}renderTemplate(e){e.classList.add("separator");const t=document.createElement("span");return e.append(t),{container:e,text:t}}renderElement(e,t,r){var s;r.text.textContent=(s=e.label)!=null?s:""}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 r=document.createElement("span");r.className="title",e.append(r);const s=document.createElement("span");s.className="description",e.append(s);const a=new KeybindingLabel(e,OS);return{container:e,icon:t,text:r,description:s,keybinding:a}}renderElement(e,t,r){var l,c,d;if((l=e.group)!=null&&l.icon?(r.icon.className=ThemeIcon.asClassName(e.group.icon),e.group.icon.color&&(r.icon.style.color=asCssVariable(e.group.icon.color.id))):(r.icon.className=ThemeIcon.asClassName(Codicon.lightBulb),r.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!e.item||!e.label)return;setVisibility(!e.hideIcon,r.icon),r.text.textContent=stripNewlines(e.label),e.keybinding?(r.description.textContent=e.keybinding.getLabel(),r.description.style.display="inline",r.description.style.letterSpacing="0.5px"):e.description?(r.description.textContent=stripNewlines(e.description),r.description.style.display="inline"):(r.description.textContent="",r.description.style.display="none");const s=(c=this._keybindingService.lookupKeybinding(acceptSelectedActionCommand))==null?void 0:c.getLabel(),a=(d=this._keybindingService.lookupKeybinding(previewSelectedActionCommand))==null?void 0:d.getLabel();r.container.classList.toggle("option-disabled",e.disabled),e.tooltip?r.container.title=e.tooltip:e.disabled?r.container.title=e.label:s&&a?this._supportsPreview&&e.canPreview?r.container.title=localize(1653,"{0} to Apply, {1} to Preview",s,a):r.container.title=localize(1654,"{0} to Apply",s):r.container.title=""}disposeTemplate(e){e.keybinding.dispose()}};ActionItemRenderer=__decorate$2r([__param$2l(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$1{constructor(e,t,r,s,a,l,c,d){super(),this._delegate=s,this._contextViewService=l,this._keybindingService=c,this._layoutService=d,this._actionLineHeight=28,this._headerLineHeight=28,this._separatorLineHeight=8,this.cts=this._register(new CancellationTokenSource$1),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const u={getHeight:g=>{switch(g.kind){case"header":return this._headerLineHeight;case"separator":return this._separatorLineHeight;default:return this._actionLineHeight}},getTemplateId:g=>g.kind};this._list=this._register(new List(e,this.domNode,u,[new ActionItemRenderer(t,this._keybindingService),new HeaderRenderer,new SeparatorRenderer],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel},accessibilityProvider:{getAriaLabel:g=>{if(g.kind==="action"){let f=g.label?stripNewlines(g==null?void 0:g.label):"";return g.description&&(f=f+", "+stripNewlines(g.description)),g.disabled&&(f=localize(1655,"{0}, Disabled Reason: {1}",f,g.disabled)),f}return null},getWidgetAriaLabel:()=>localize(1656,"Action Widget"),getRole:g=>{switch(g.kind){case"action":return"option";case"separator":return"separator";default:return"separator"}},getWidgetRole:()=>"listbox",...a}})),this._list.style(defaultListStyles),this._register(this._list.onMouseClick(g=>this.onListClick(g))),this._register(this._list.onMouseOver(g=>this.onListHover(g))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(g=>this.onListSelection(g))),this._allMenuItems=r,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(g=>g.kind==="header").length,r=this._allMenuItems.filter(g=>g.kind==="separator").length,l=this._allMenuItems.length*this._actionLineHeight+t*this._headerLineHeight-t*this._actionLineHeight+r*this._separatorLineHeight-r*this._actionLineHeight;this._list.layout(l);let c=e;if(this._allMenuItems.length>=50)c=380;else{const g=this._allMenuItems.map((f,m)=>{const _=this.domNode.ownerDocument.getElementById(this._list.getElementID(m));if(_){_.style.width="auto";const v=_.getBoundingClientRect().width;return _.style.width="",v}return 0});c=Math.max(...g,e)}const u=Math.min(l,this._layoutService.getContainer(getWindow$1(this.domNode)).clientHeight*.7);return this._list.layout(u,c),this.domNode.style.height="".concat(u,"px"),this._list.domFocus(),c}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 r=t[0],s=this._list.element(r);if(!this.focusCondition(s))return;const a=e?new PreviewSelectedEvent:new AcceptSelectedEvent;this._list.setSelection([r],a)}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 s,a;const e=this._list.getFocus();if(e.length===0)return;const t=e[0],r=this._list.element(t);(a=(s=this._delegate).onFocus)==null||a.call(s,r.item)}async onListHover(e){const t=e.element;if(t&&t.item&&this.focusCondition(t)){if(this._delegate.onHover&&!t.disabled&&t.kind==="action"){const r=await this._delegate.onHover(t.item,this.cts.token);t.canPreview=r?r.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$2r([__param$2l(5,IContextViewService),__param$2l(6,IKeybindingService),__param$2l(7,ILayoutService)],ActionList);function stripNewlines(o){return o.replace(/\r\n|\r|\n/g," ")}var __decorate$2q=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2k=function(o,e){return function(t,r){e(t,r,o)}};registerColor("actionBar.toggledBackground",inputActiveOptionBackground,localize(1657,"Background color for toggled action items in action bar."));const ActionWidgetContextKeys={Visible:new RawContextKey("codeActionMenuVisible",!1,localize(1658,"Whether the action widget list is visible"))},IActionWidgetService=createDecorator("actionWidgetService");let ActionWidgetService=class extends Disposable$1{get isVisible(){return ActionWidgetContextKeys.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,r){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=r,this._list=this._register(new MutableDisposable)}show(e,t,r,s,a,l,c,d){const u=ActionWidgetContextKeys.Visible.bindTo(this._contextKeyService),g=this._instantiationService.createInstance(ActionList,e,t,r,s,d);this._contextViewService.showContextView({getAnchor:()=>a,render:f=>(u.set(!0),this._renderWidget(f,g,c!=null?c:[])),onHide:f=>{u.reset(),this._onWidgetClosed(f)}},l,!1)}acceptSelected(e){var t;(t=this._list.value)==null||t.acceptSelected(e)}focusPrevious(){var e,t;(t=(e=this._list)==null?void 0:e.value)==null||t.focusPrevious()}focusNext(){var e,t;(t=(e=this._list)==null?void 0:e.value)==null||t.focusNext()}hide(e){var t;(t=this._list.value)==null||t.hide(e),this._list.clear()}_renderWidget(e,t,r){var _;const s=document.createElement("div");if(s.classList.add("action-widget"),e.appendChild(s),this._list.value=t,this._list.value)s.appendChild(this._list.value.domNode);else throw new Error("List has no value");const a=new DisposableStore$1,l=document.createElement("div"),c=e.appendChild(l);c.classList.add("context-view-block"),a.add(addDisposableListener(c,EventType$1.MOUSE_DOWN,v=>v.stopPropagation()));const d=document.createElement("div"),u=e.appendChild(d);u.classList.add("context-view-pointerBlock"),a.add(addDisposableListener(u,EventType$1.POINTER_MOVE,()=>u.remove())),a.add(addDisposableListener(u,EventType$1.MOUSE_DOWN,()=>u.remove()));let g=0;if(r.length){const v=this._createActionBar(".action-widget-action-bar",r);v&&(s.appendChild(v.getContainer().parentElement),a.add(v),g=v.getContainer().offsetWidth)}const f=(_=this._list.value)==null?void 0:_.layout(g);s.style.width="".concat(f,"px");const m=a.add(trackFocus(e));return a.add(m.onDidBlur(()=>this.hide(!0))),a}_createActionBar(e,t){if(!t.length)return;const r=$$m(e),s=new ActionBar(r);return s.push(t,{icon:!1,label:!0}),s}_onWidgetClosed(e){var t;(t=this._list.value)==null||t.hide(e)}};ActionWidgetService=__decorate$2q([__param$2k(0,IContextViewService),__param$2k(1,IContextKeyService),__param$2k(2,IInstantiationService)],ActionWidgetService);registerSingleton(IActionWidgetService,ActionWidgetService,1);const weight$3=1100;registerAction2(class extends Action2{constructor(){super({id:"hideCodeActionWidget",title:localize2(1659,"Hide action widget"),precondition:ActionWidgetContextKeys.Visible,keybinding:{weight:weight$3,primary:9,secondary:[1033]}})}run(o){o.get(IActionWidgetService).hide(!0)}});registerAction2(class extends Action2{constructor(){super({id:"selectPrevCodeAction",title:localize2(1660,"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:localize2(1661,"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:localize2(1662,"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:localize2(1663,"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 __decorate$2p=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2j=function(o,e){return function(t,r){e(t,r,o)}},PostEditWidget_1,nn;let PostEditWidget=(nn=class extends Disposable$1{constructor(e,t,r,s,a,l,c,d,u,g,f){super(),this.typeId=e,this.editor=t,this.showCommand=s,this.range=a,this.edits=l,this.onSelectNewEdit=c,this.additionalActions=d,this._keybindingService=g,this._actionWidgetService=f,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=r.bindTo(u),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(m=>{this.dispose()})),this._register(Event$1.runAndSubscribe(g.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var t;const e=(t=this._keybindingService.lookupKeybinding(this.showCommand.id))==null?void 0:t.getLabel();this.button.element.title=this.showCommand.label+(e?" (".concat(e,")"):"")}create(){this.domNode=$$m(".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(){var r;const e=getDomNodePagePosition(this.button.element),t={x:e.left+e.width,y:e.top+e.height};this._actionWidgetService.show("postEditWidget",!1,this.edits.allEdits.map((s,a)=>({kind:"action",item:s,label:s.title,disabled:!1,canPreview:!1,group:{title:"",icon:ThemeIcon.fromId(a===this.edits.activeEditIndex?Codicon.check.id:Codicon.blank.id)}})),{onHide:()=>{this.editor.focus()},onSelect:s=>{this._actionWidgetService.hide(!1);const a=this.edits.allEdits.findIndex(l=>l===s);if(a!==this.edits.activeEditIndex)return this.onSelectNewEdit(a)}},t,(r=this.editor.getDomNode())!=null?r:void 0,this.additionalActions)}},PostEditWidget_1=nn,nn.baseId="editor.widget.postEditWidget",nn);PostEditWidget=PostEditWidget_1=__decorate$2p([__param$2j(8,IContextKeyService),__param$2j(9,IKeybindingService),__param$2j(10,IActionWidgetService)],PostEditWidget);let PostEditWidgetManager=class extends Disposable$1{constructor(e,t,r,s,a,l,c,d){super(),this._id=e,this._editor=t,this._visibleContext=r,this._showCommand=s,this._getAdditionalActions=a,this._instantiationService=l,this._bulkEditService=c,this._notificationService=d,this._currentWidget=this._register(new MutableDisposable),this._register(Event$1.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,r,s,a){if(!e.length||!this._editor.hasModel())return;const l=this._editor.getModel(),c=t.allEdits.at(t.activeEditIndex);if(!c)return;const d=async y=>{const S=this._editor.getModel();S&&(await S.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:y,allEdits:t.allEdits},r,s,a))},u=(y,S)=>{isCancellationError(y)||(this._notificationService.error(S),r&&this.show(e[0],t,d))},g=new EditorStateCancellationTokenSource(this._editor,3,void 0,a);let f;try{f=await raceCancellationError(s(c,g.token),g.token)}catch(y){return u(y,localize(937,"Error resolving edit '{0}':\n{1}",c.title,toErrorMessage(y)))}finally{g.dispose()}if(a.isCancellationRequested)return;const m=createCombinedWorkspaceEdit(l.uri,e,f),_=e[0],v=l.deltaDecorations([],[{range:_,options:{description:"paste-line-suffix",stickiness:0}}]);this._editor.focus();let b,C;try{b=await this._bulkEditService.apply(m,{editor:this._editor,token:a}),C=l.getDecorationRange(v[0])}catch(y){return u(y,localize(938,"Error applying edit '{0}':\n{1}",c.title,toErrorMessage(y)))}finally{l.deltaDecorations(v,[])}a.isCancellationRequested||r&&b.isApplied&&t.allEdits.length>1&&this.show(C!=null?C:_,t,d)}show(e,t,r){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(PostEditWidget,this._id,this._editor,this._visibleContext,this._showCommand,e,t,r,this._getAdditionalActions()))}clear(){this._currentWidget.clear()}tryShowSelector(){var e;(e=this._currentWidget.value)==null||e.showSelector()}};PostEditWidgetManager=__decorate$2p([__param$2j(5,IInstantiationService),__param$2j(6,IBulkEditService),__param$2j(7,INotificationService)],PostEditWidgetManager);var __decorate$2o=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2i=function(o,e){return function(t,r){e(t,r,o)}},CopyPasteController_1;const changePasteTypeCommandId="editor.changePasteType",pasteAsPreferenceConfig="editor.pasteAs.preferences",pasteWidgetVisibleCtx=new RawContextKey("pasteWidgetVisible",!1,localize(917,"Whether the paste widget is showing")),vscodeClipboardMime="application/vnd.code.copymetadata";var rn;let CopyPasteController=(rn=class extends Disposable$1{static get(e){return e.getContribution(CopyPasteController_1.ID)}constructor(e,t,r,s,a,l,c,d,u,g){super(),this._logService=r,this._bulkEditService=s,this._clipboardService=a,this._commandService=l,this._configService=c,this._languageFeaturesService=d,this._quickInputService=u,this._progressService=g,this._editor=e;const f=e.getContainerDomNode();this._register(addDisposableListener(f,"copy",m=>this.handleCopy(m))),this._register(addDisposableListener(f,"cut",m=>this.handleCopy(m))),this._register(addDisposableListener(f,"paste",m=>this.handlePaste(m),!0)),this._pasteProgressManager=this._register(new InlineProgressManager("pasteIntoEditor",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(PostEditWidgetManager,"pasteIntoEditor",e,pasteWidgetVisibleCtx,{id:changePasteTypeCommandId,label:localize(918,"Show paste options...")},()=>CopyPasteController_1._configureDefaultAction?[CopyPasteController_1._configureDefaultAction]:[]))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}async pasteAs(e){this._logService.trace("CopyPasteController.pasteAs"),this._editor.focus();try{this._logService.trace("Before calling editor.action.clipboardPasteAction"),this._pasteAsActionContext={preferred:e},await this._commandService.executeCommand("editor.action.clipboardPasteAction")}finally{this._pasteAsActionContext=void 0}}clearWidgets(){this._postPasteWidgetManager.clear()}isPasteAsEnabled(){return this._editor.getOption(97).enabled}async finishedPaste(){await this._currentPasteOperation}handleCopy(e){var C,y,S,w;let t=null;if(e.clipboardData){const[E,x]=ClipboardEventUtils.getTextData(e.clipboardData),L=x||InMemoryClipboardMetadataManager.INSTANCE.get(E);t=(L==null?void 0:L.id)||null,this._logService.trace("CopyPasteController#handleCopy for id : ",t," with text.length : ",E.length)}else this._logService.trace("CopyPasteController#handleCopy");if(!this._editor.hasTextFocus()||((y=(C=this._clipboardService).clearInternalState)==null||y.call(C),!e.clipboardData||!this.isPasteAsEnabled()))return;const r=this._editor.getModel(),s=this._editor.getSelections();if(!r||!(s!=null&&s.length))return;const a=this._editor.getOption(45);let l=s;const c=s.length===1&&s[0].isEmpty();if(c){if(!a)return;l=[new Range$2(l[0].startLineNumber,1,l[0].startLineNumber,1+r.getLineLength(l[0].startLineNumber))]}const d=(S=this._editor._getViewModel())==null?void 0:S.getPlainTextToCopy(s,a,isWindows),g={multicursorText:Array.isArray(d)?d:null,pasteOnNewLine:c,mode:null},f=this._languageFeaturesService.documentPasteEditProvider.ordered(r).filter(E=>!!E.prepareDocumentPaste);if(!f.length){this.setCopyMetadata(e.clipboardData,{defaultPastePayload:g});return}const m=toVSDataTransfer(e.clipboardData),_=f.flatMap(E=>{var x;return(x=E.copyMimeTypes)!=null?x:[]}),v=t!=null?t:generateUuid();this.setCopyMetadata(e.clipboardData,{id:v,providerCopyMimeTypes:_,defaultPastePayload:g});const b=f.map(E=>({providerMimeTypes:E.copyMimeTypes,operation:createCancelablePromise(x=>E.prepareDocumentPaste(r,l,m,x).catch(L=>{console.error(L)}))}));(w=CopyPasteController_1._currentCopyOperation)==null||w.operations.forEach(E=>E.operation.cancel()),CopyPasteController_1._currentCopyOperation={handle:v,operations:b}}async handlePaste(e){var u,g,f,m;if(e.clipboardData){const[_,v]=ClipboardEventUtils.getTextData(e.clipboardData),b=v||InMemoryClipboardMetadataManager.INSTANCE.get(_);this._logService.trace("CopyPasteController#handlePaste for id : ",b==null?void 0:b.id)}else this._logService.trace("CopyPasteController#handlePaste");if(!e.clipboardData||!this._editor.hasTextFocus())return;(u=MessageController.get(this._editor))==null||u.closeMessage(),(g=this._currentPasteOperation)==null||g.cancel(),this._currentPasteOperation=void 0;const t=this._editor.getModel(),r=this._editor.getSelections();if(!(r!=null&&r.length)||!t||this._editor.getOption(104)||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const s=this.fetchCopyMetadata(e);this._logService.trace("CopyPasteController#handlePaste with metadata : ",s==null?void 0:s.id," and text.length : ",e.clipboardData.getData("text/plain").length);const a=toExternalVSDataTransfer(e.clipboardData);a.delete(vscodeClipboardMime);const l=Array.from(e.clipboardData.files).map(_=>_.type),c=[...e.clipboardData.types,...l,...(f=s==null?void 0:s.providerCopyMimeTypes)!=null?f:[],Mimes.uriList],d=this._languageFeaturesService.documentPasteEditProvider.ordered(t).filter(_=>{var b,C;const v=(b=this._pasteAsActionContext)==null?void 0:b.preferred;return v&&!this.providerMatchesPreference(_,v)?!1:(C=_.pasteMimeTypes)==null?void 0:C.some(y=>matchesMimeType(y,c))});if(!d.length){(m=this._pasteAsActionContext)!=null&&m.preferred&&(this.showPasteAsNoEditMessage(r,this._pasteAsActionContext.preferred),e.preventDefault(),e.stopImmediatePropagation());return}e.preventDefault(),e.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferred,d,r,a,s):this.doPasteInline(d,r,a,s,e)}showPasteAsNoEditMessage(e,t){var s;const r="only"in t?t.only.value:"preferences"in t?t.preferences.length?t.preferences.map(a=>a.value).join(", "):localize(919,"empty"):t.providerId;(s=MessageController.get(this._editor))==null||s.showMessage(localize(920,"No paste edits for '{0}' found",r),e[0].getStartPosition())}doPasteInline(e,t,r,s,a){this._logService.trace("CopyPasteController#doPasteInline");const l=this._editor;if(!l.hasModel())return;const c=new EditorStateCancellationTokenSource(l,3,void 0),d=createCancelablePromise(async u=>{const g=this._editor;if(!g.hasModel())return;const f=g.getModel(),m=new DisposableStore$1,_=m.add(new CancellationTokenSource$1(u));m.add(c.token.onCancellationRequested(()=>_.cancel()));const v=_.token;try{if(await this.mergeInDataFromCopy(e,r,s,v),v.isCancellationRequested)return;const b=e.filter(S=>this.isSupportedPasteProvider(S,r));if(!b.length||b.length===1&&b[0]instanceof DefaultTextPasteOrDropEditProvider)return this.applyDefaultPasteHandler(r,s,v,a);const C={triggerKind:DocumentPasteTriggerKind.Automatic},y=await this.getPasteEdits(b,r,f,t,C,v);if(m.add(y),v.isCancellationRequested)return;if(y.edits.length===1&&y.edits[0].provider instanceof DefaultTextPasteOrDropEditProvider)return this.applyDefaultPasteHandler(r,s,v,a);if(y.edits.length){const S=g.getOption(97).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:this.getInitialActiveEditIndex(f,y.edits),allEdits:y.edits},S,async(w,E)=>{if(!w.provider.resolveDocumentPasteEdit)return w;const x=w.provider.resolveDocumentPasteEdit(w,E),L=new DeferredPromise,k=await this._pasteProgressManager.showWhile(t[0].getEndPosition(),localize(921,"Resolving paste edit for '{0}'. Click to cancel",w.title),raceCancellation(Promise.race([L.p,x]),E),{cancel:()=>L.cancel()},0);return k&&(w.insertText=k.insertText,w.additionalEdit=k.additionalEdit),w},v)}await this.applyDefaultPasteHandler(r,s,v,a)}finally{m.dispose(),this._currentPasteOperation===d&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(t[0].getEndPosition(),localize(922,"Running paste handlers. Click to cancel and do basic paste"),d,{cancel:async()=>{d.cancel(),!c.token.isCancellationRequested&&await this.applyDefaultPasteHandler(r,s,c.token,a)}}).finally(()=>{c.dispose()}),this._currentPasteOperation=d}showPasteAsPick(e,t,r,s,a){this._logService.trace("CopyPasteController#showPasteAsPick");const l=createCancelablePromise(async c=>{var m;const d=this._editor;if(!d.hasModel())return;const u=d.getModel(),g=new DisposableStore$1,f=g.add(new EditorStateCancellationTokenSource(d,3,void 0,c));try{if(await this.mergeInDataFromCopy(t,s,a,f.token),f.token.isCancellationRequested)return;let _=t.filter(S=>this.isSupportedPasteProvider(S,s,e));e&&(_=_.filter(S=>this.providerMatchesPreference(S,e)));const v={triggerKind:DocumentPasteTriggerKind.PasteAs,only:e&&"only"in e?e.only:void 0};let b=g.add(await this.getPasteEdits(_,s,u,r,v,f.token));if(f.token.isCancellationRequested)return;if(e&&(b={edits:b.edits.filter(S=>"only"in e?e.only.contains(S.kind):"preferences"in e?e.preferences.some(w=>w.contains(S.kind)):e.providerId===S.provider.id),dispose:b.dispose}),!b.edits.length){e&&this.showPasteAsNoEditMessage(r,e);return}let C;if(e)C=b.edits.at(0);else{const S={id:"editor.pasteAs.default",label:localize(923,"Configure default paste action"),edit:void 0},w=await this._quickInputService.pick([...b.edits.map(E=>{var x;return{label:E.title,description:(x=E.kind)==null?void 0:x.value,edit:E}}),...CopyPasteController_1._configureDefaultAction?[{type:"separator"},{label:CopyPasteController_1._configureDefaultAction.label,edit:void 0}]:[]],{placeHolder:localize(924,"Select Paste Action")});if(w===S){(m=CopyPasteController_1._configureDefaultAction)==null||m.run();return}C=w==null?void 0:w.edit}if(!C)return;const y=createCombinedWorkspaceEdit(u.uri,r,C);await this._bulkEditService.apply(y,{editor:this._editor})}finally{g.dispose(),this._currentPasteOperation===l&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:localize(925,"Running paste handlers")},()=>l)}setCopyMetadata(e,t){this._logService.trace("CopyPasteController#setCopyMetadata new id : ",t.id),e.setData(vscodeClipboardMime,JSON.stringify(t))}fetchCopyMetadata(e){var a;if(this._logService.trace("CopyPasteController#fetchCopyMetadata"),!e.clipboardData)return;const t=e.clipboardData.getData(vscodeClipboardMime);if(t)try{return JSON.parse(t)}catch(l){return}const[r,s]=ClipboardEventUtils.getTextData(e.clipboardData);if(s)return{defaultPastePayload:{mode:s.mode,multicursorText:(a=s.multicursorText)!=null?a:null,pasteOnNewLine:!!s.isFromEmptySelection}}}async mergeInDataFromCopy(e,t,r,s){var a;if(this._logService.trace("CopyPasteController#mergeInDataFromCopy with metadata : ",r==null?void 0:r.id),r!=null&&r.id&&((a=CopyPasteController_1._currentCopyOperation)==null?void 0:a.handle)===r.id){const l=CopyPasteController_1._currentCopyOperation.operations.filter(d=>e.some(u=>u.pasteMimeTypes.some(g=>matchesMimeType(g,d.providerMimeTypes)))).map(d=>d.operation),c=await Promise.all(l);if(s.isCancellationRequested)return;for(const d of c.reverse())if(d)for(const[u,g]of d)t.replace(u,g)}if(!t.has(Mimes.uriList)){const l=await this._clipboardService.readResources();if(s.isCancellationRequested)return;l.length&&t.append(Mimes.uriList,createStringDataTransferItem(UriList.create(l)))}}async getPasteEdits(e,t,r,s,a,l){const c=new DisposableStore$1,d=await raceCancellation(Promise.all(e.map(async g=>{var f,m;try{const _=await((f=g.provideDocumentPasteEdits)==null?void 0:f.call(g,r,s,t,a,l));return _&&c.add(_),(m=_==null?void 0:_.edits)==null?void 0:m.map(v=>({...v,provider:g}))}catch(_){isCancellationError(_)||console.error(_);return}})),l),u=coalesce(d!=null?d:[]).flat().filter(g=>!a.only||a.only.contains(g.kind));return{edits:sortEditsByYieldTo(u),dispose:()=>c.dispose()}}async applyDefaultPasteHandler(e,t,r,s){var d,u,g,f;const a=(d=e.get(Mimes.text))!=null?d:e.get("text"),l=(u=await(a==null?void 0:a.asString()))!=null?u:"";if(r.isCancellationRequested)return;const c={clipboardEvent:s,text:l,pasteOnNewLine:(g=t==null?void 0:t.defaultPastePayload.pasteOnNewLine)!=null?g:!1,multicursorText:(f=t==null?void 0:t.defaultPastePayload.multicursorText)!=null?f:null,mode:null};this._logService.trace("CopyPasteController#applyDefaultPasteHandler for id : ",t==null?void 0:t.id),this._editor.trigger("keyboard","paste",c)}isSupportedPasteProvider(e,t,r){var s;return(s=e.pasteMimeTypes)!=null&&s.some(a=>t.matches(a))?!r||this.providerMatchesPreference(e,r):!1}providerMatchesPreference(e,t){return"only"in t?e.providedPasteEditKinds.some(r=>t.only.contains(r)):"preferences"in t?t.preferences.some(r=>t.preferences.some(s=>s.contains(r))):e.id===t.providerId}getInitialActiveEditIndex(e,t){const r=this._configService.getValue(pasteAsPreferenceConfig,{resource:e.uri});for(const s of Array.isArray(r)?r:[]){const a=new HierarchicalKind(s),l=t.findIndex(c=>a.contains(c.kind));if(l>=0)return l}return 0}},CopyPasteController_1=rn,rn.ID="editor.contrib.copyPasteActionController",rn);CopyPasteController=CopyPasteController_1=__decorate$2o([__param$2i(1,IInstantiationService),__param$2i(2,ILogService),__param$2i(3,IBulkEditService),__param$2i(4,IClipboardService),__param$2i(5,ICommandService),__param$2i(6,IConfigurationService),__param$2i(7,ILanguageFeaturesService),__param$2i(8,IQuickInputService),__param$2i(9,IProgressService)],CopyPasteController);const CLIPBOARD_CONTEXT_MENU_GROUP="9_cutcopypaste",supportsCut=isNative||document.queryCommandSupported("cut"),supportsCopy=isNative||document.queryCommandSupported("copy"),supportsPaste=typeof navigator.clipboard>"u"||isFirefox$1?document.queryCommandSupported("paste"):!0;function registerCommand$1(o){return o.register(),o}const CutAction=supportsCut?registerCommand$1(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(813,"Cu&&t"),order:1},{menuId:MenuId.EditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize(814,"Cut"),when:EditorContextKeys.writable,order:1},{menuId:MenuId.CommandPalette,group:"",title:localize(815,"Cut"),order:1},{menuId:MenuId.SimpleEditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize(816,"Cut"),when:EditorContextKeys.writable,order:1}]})):void 0,CopyAction=supportsCopy?registerCommand$1(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(817,"&&Copy"),order:2},{menuId:MenuId.EditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize(818,"Copy"),order:2},{menuId:MenuId.CommandPalette,group:"",title:localize(819,"Copy"),order:1},{menuId:MenuId.SimpleEditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize(820,"Copy"),order:2}]})):void 0;MenuRegistry.appendMenuItem(MenuId.MenubarEditMenu,{submenu:MenuId.MenubarCopy,title:localize2(825,"Copy As"),group:"2_ccp",order:3});MenuRegistry.appendMenuItem(MenuId.EditorContext,{submenu:MenuId.EditorContextCopy,title:localize2(826,"Copy As"),group:CLIPBOARD_CONTEXT_MENU_GROUP,order:3});MenuRegistry.appendMenuItem(MenuId.EditorContext,{submenu:MenuId.EditorContextShare,title:localize2(827,"Share"),group:"11_share",order:-1,when:ContextKeyExpr.and(ContextKeyExpr.notEquals("resourceScheme","output"),EditorContextKeys.editorTextFocus)});MenuRegistry.appendMenuItem(MenuId.ExplorerContext,{submenu:MenuId.ExplorerContextShare,title:localize2(828,"Share"),group:"11_share",order:-1});const PasteAction=supportsPaste?registerCommand$1(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(821,"&&Paste"),order:4},{menuId:MenuId.EditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize(822,"Paste"),when:EditorContextKeys.writable,order:4},{menuId:MenuId.CommandPalette,group:"",title:localize(823,"Paste"),order:1},{menuId:MenuId.SimpleEditorContext,group:CLIPBOARD_CONTEXT_MENU_GROUP,title:localize(824,"Paste"),when:EditorContextKeys.writable,order:4}]})):void 0;class ExecCommandCopyWithSyntaxHighlightingAction extends EditorAction{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:localize2(829,"Copy with Syntax Highlighting"),precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,weight:100}})}run(e,t){const r=e.get(ILogService);r.trace("ExecCommandCopyWithSyntaxHighlightingAction#run"),!(!t.hasModel()||!t.getOption(45)&&t.getSelection().isEmpty())&&(CopyOptions.forceCopyWithSyntaxHighlighting=!0,t.focus(),r.trace("ExecCommandCopyWithSyntaxHighlightingAction (before execCommand copy)"),t.getContainerDomNode().ownerDocument.execCommand("copy"),r.trace("ExecCommandCopyWithSyntaxHighlightingAction (after execCommand copy)"),CopyOptions.forceCopyWithSyntaxHighlighting=!1)}}function registerExecCommandImpl(o,e){o&&(o.addImplementation(1e4,"code-editor",(t,r)=>{const s=t.get(ILogService);s.trace("registerExecCommandImpl (addImplementation code-editor for : ",e,")");const a=t.get(ICodeEditorService).getFocusedCodeEditor();if(a&&a.hasTextFocus()){const l=a.getOption(45),c=a.getSelection();return c&&c.isEmpty()&&!l||(a.getOption(170)&&e==="cut"?(logCopyCommand(a),s.trace("registerExecCommandImpl (before execCommand copy)"),a.getContainerDomNode().ownerDocument.execCommand("copy"),a.trigger(void 0,"cut",void 0),s.trace("registerExecCommandImpl (after execCommand copy)")):(logCopyCommand(a),s.trace("registerExecCommandImpl (before execCommand "+e+")"),a.getContainerDomNode().ownerDocument.execCommand(e),s.trace("registerExecCommandImpl (after execCommand "+e+")"))),!0}return!1}),o.addImplementation(0,"generic-dom",(t,r)=>{const s=t.get(ILogService);return s.trace("registerExecCommandImpl (addImplementation generic-dom for : ",e,")"),s.trace("registerExecCommandImpl (before execCommand "+e+")"),getActiveDocument().execCommand(e),s.trace("registerExecCommandImpl (after execCommand "+e+")"),!0}))}function logCopyCommand(o){if(o.getOption(170)){const t=NativeEditContextRegistry.get(o.getId());t&&t.onWillCopy()}}registerExecCommandImpl(CutAction,"cut");registerExecCommandImpl(CopyAction,"copy");PasteAction&&(PasteAction.addImplementation(1e4,"code-editor",(o,e)=>{const t=o.get(ILogService);t.trace("registerExecCommandImpl (addImplementation code-editor for : paste)");const r=o.get(ICodeEditorService),s=o.get(IClipboardService),a=o.get(ITelemetryService),l=o.get(IProductService),c=r.getFocusedCodeEditor();if(c&&c.hasModel()&&c.hasTextFocus()){if(c.getOption(170)){const f=NativeEditContextRegistry.get(c.getId());f&&f.onWillPaste()}const u=StopWatch.create(!0);t.trace("registerExecCommandImpl (before triggerPaste)");const g=s.triggerPaste(getActiveWindow().vscodeWindowId);return g?(t.trace("registerExecCommandImpl (triggerPaste defined)"),g.then(async()=>{var f,m;if(t.trace("registerExecCommandImpl (after triggerPaste)"),l.quality!=="stable"){const _=u.elapsed();a.publicLog2("editorAsyncPaste",{duration:_})}return(m=(f=CopyPasteController.get(c))==null?void 0:f.finishedPaste())!=null?m:Promise.resolve()})):(t.trace("registerExecCommandImpl (triggerPaste undefined)"),isWeb?(t.trace("registerExecCommandImpl (Paste handling on web)"),(async()=>{const f=await s.readText();if(f!==""){const m=InMemoryClipboardMetadataManager.INSTANCE.get(f);let _=!1,v=null,b=null;m&&(_=c.getOption(45)&&!!m.isFromEmptySelection,v=typeof m.multicursorText<"u"?m.multicursorText:null,b=m.mode),t.trace("registerExecCommandImpl (clipboardText.length : ",f.length," id : ",m==null?void 0:m.id,")"),c.trigger("keyboard","paste",{text:f,pasteOnNewLine:_,multicursorText:v,mode:b})}})()):!0)}return!1}),PasteAction.addImplementation(0,"generic-dom",(o,e)=>{o.get(ILogService).trace("registerExecCommandImpl (addImplementation generic-dom for : paste)");const r=o.get(IClipboardService).triggerPaste(getActiveWindow().vscodeWindowId);return r!=null?r:!1}));supportsCopy&&registerEditorAction(ExecCommandCopyWithSyntaxHighlightingAction);const editorConfigurationBaseNode=Object.freeze({id:"editor",order:5,type:"object",title:localize(147,"Editor"),scope:6}),editorConfiguration={...editorConfigurationBaseNode,properties:{"editor.tabSize":{type:"number",default:EDITOR_MODEL_DEFAULTS.tabSize,minimum:1,maximum:100,markdownDescription:localize(148,"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(149,'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(150,"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(151,"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(152,"Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:EDITOR_MODEL_DEFAULTS.largeFileOptimizations,description:localize(153,"Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[localize(154,"Turn off Word Based Suggestions."),localize(155,"Only suggest words from the active document."),localize(156,"Suggest words from all open documents of the same language."),localize(157,"Suggest words from all open documents.")],description:localize(158,"Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[localize(159,"Semantic highlighting enabled for all color themes."),localize(160,"Semantic highlighting disabled for all color themes."),localize(161,"Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:localize(162,"Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:localize(163,"Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:localize(164,"Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!0,description:localize(165,"Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:localize(166,"Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:localize(167,"Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.experimental.treeSitterTelemetry":{type:"boolean",default:!1,markdownDescription:localize(168,"Controls whether tree sitter parsing should be turned on and telemetry collected. Setting `#editor.experimental.preferTreeSitter#` for specific languages will take precedence."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.css":{type:"boolean",default:!1,markdownDescription:localize(169,"Controls whether tree sitter parsing should be turned on for css. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for css."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.typescript":{type:"boolean",default:!1,markdownDescription:localize(170,"Controls whether tree sitter parsing should be turned on for typescript. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for typescript."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.ini":{type:"boolean",default:!1,markdownDescription:localize(171,"Controls whether tree sitter parsing should be turned on for ini. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for ini."),tags:["experimental"],experiment:{mode:"auto"}},"editor.experimental.preferTreeSitter.regex":{type:"boolean",default:!1,markdownDescription:localize(172,"Controls whether tree sitter parsing should be turned on for regex. This will take precedence over `#editor.experimental.treeSitterTelemetry#` for regex."),tags:["experimental"],experiment:{mode:"auto"}},"editor.language.brackets":{type:["array","null"],default:null,description:localize(173,"Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:localize(174,"The opening bracket character or string sequence.")},{type:"string",description:localize(175,"The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:localize(176,"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(177,"The opening bracket character or string sequence.")},{type:"string",description:localize(178,"The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:diffEditorDefaultOptions.maxComputationTime,description:localize(179,"Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:diffEditorDefaultOptions.maxFileSize,description:localize(180,"Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:diffEditorDefaultOptions.renderSideBySide,description:localize(181,"Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:diffEditorDefaultOptions.renderSideBySideInlineBreakpoint,description:localize(182,"If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:diffEditorDefaultOptions.useInlineViewWhenSpaceIsLimited,description:localize(183,"If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:diffEditorDefaultOptions.renderMarginRevertIcon,description:localize(184,"When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.renderGutterMenu":{type:"boolean",default:diffEditorDefaultOptions.renderGutterMenu,description:localize(185,"When enabled, the diff editor shows a special gutter for revert and stage actions.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:diffEditorDefaultOptions.ignoreTrimWhitespace,description:localize(186,"When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:diffEditorDefaultOptions.renderIndicators,description:localize(187,"Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:diffEditorDefaultOptions.diffCodeLens,description:localize(188,"Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:diffEditorDefaultOptions.diffWordWrap,markdownEnumDescriptions:[localize(189,"Lines will never wrap."),localize(190,"Lines will wrap at the viewport width."),localize(191,"Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:diffEditorDefaultOptions.diffAlgorithm,markdownEnumDescriptions:[localize(192,"Uses the legacy diffing algorithm."),localize(193,"Uses the advanced diffing algorithm.")]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:diffEditorDefaultOptions.hideUnchangedRegions.enabled,markdownDescription:localize(194,"Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:diffEditorDefaultOptions.hideUnchangedRegions.revealLineCount,markdownDescription:localize(195,"Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:diffEditorDefaultOptions.hideUnchangedRegions.minimumLineCount,markdownDescription:localize(196,"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(197,"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(198,"Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:diffEditorDefaultOptions.experimental.showEmptyDecorations,description:localize(199,"Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")},"diffEditor.experimental.useTrueInlineView":{type:"boolean",default:diffEditorDefaultOptions.experimental.useTrueInlineView,description:localize(200,"If enabled and the editor uses the inline view, word changes are rendered inline.")}}};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.".concat(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.".concat(o)]||!1}function isDiffEditorConfigurationKey(o){return getEditorConfigurationKeys()["diffEditor.".concat(o)]||!1}const configurationRegistry$1=Registry.as(Extensions$6.Configuration);configurationRegistry$1.registerConfiguration(editorConfiguration);const CodeActionKind$1=new class{constructor(){this.QuickFix=new HierarchicalKind("quickfix"),this.Refactor=new HierarchicalKind("refactor"),this.RefactorExtract=this.Refactor.append("extract"),this.RefactorInline=this.Refactor.append("inline"),this.RefactorMove=this.Refactor.append("move"),this.RefactorRewrite=this.Refactor.append("rewrite"),this.Notebook=new HierarchicalKind("notebook"),this.Source=new HierarchicalKind("source"),this.SourceOrganizeImports=this.Source.append("organizeImports"),this.SourceFixAll=this.Source.append("fixAll"),this.SurroundWith=this.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$1.Source.contains(e))}function filtersAction(o,e){const t=e.kind?new HierarchicalKind(e.kind):void 0;return!(o.include&&(!t||!o.include.contains(t))||o.excludes&&t&&o.excludes.some(r=>excludesAction(t,r,o.include))||!o.includeSourceActions&&t&&CodeActionKind$1.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 HierarchicalKind(e.kind):t}static getPreferredUser(e){return typeof e.preferred=="boolean"?e.preferred:!1}constructor(e,t,r){this.kind=e,this.apply=t,this.preferred=r}}class CodeActionItem{constructor(e,t,r){this.action=e,this.provider=t,this.highlightRange=r}async resolve(e){var t;if((t=this.provider)!=null&&t.resolveCodeAction&&!this.action.edit){let r;try{r=await this.provider.resolveCodeAction(this.action,e)}catch(s){onUnexpectedExternalError(s)}r&&(this.action.edit=r.edit)}return this}}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",CODE_ACTION_SOUND_APPLIED_DURATION=1e3;class ManagedCodeActionSet extends Disposable$1{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator({action:e},{action:t}){return e.isAI&&!t.isAI?1:!e.isAI&&t.isAI?-1:isNonEmptyArray(e.diagnostics)?isNonEmptyArray(t.diagnostics)?ManagedCodeActionSet.codeActionsPreferredComparator(e,t):-1:isNonEmptyArray(t.diagnostics)?1:ManagedCodeActionSet.codeActionsPreferredComparator(e,t)}constructor(e,t,r){super(),this.documentation=t,this._register(r),this.allActions=[...e].sort(ManagedCodeActionSet.codeActionsComparator),this.validActions=this.allActions.filter(({action:s})=>!s.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&CodeActionKind$1.QuickFix.contains(new HierarchicalKind(e.kind))&&!!e.isPreferred)}get hasAIFix(){return this.validActions.some(({action:e})=>!!e.isAI)}get allAIFixes(){return this.validActions.every(({action:e})=>!!e.isAI)}}const emptyCodeActionsResponse={actions:[],documentation:void 0};async function getCodeActions(o,e,t,r,s,a){var b;const l=r.filter||{},c={...l,excludes:[...l.excludes||[],CodeActionKind$1.Notebook]},d={only:(b=l.include)==null?void 0:b.value,trigger:r.type},u=new TextModelCancellationTokenSource(e,a),g=r.type===2,f=getCodeActionProviders(o,e,g?c:l),m=new DisposableStore$1,_=f.map(async C=>{const y=setTimeout(()=>s.report(C),1250);try{const S=await C.provideCodeActions(e,t,d,u.token);if(u.token.isCancellationRequested)return S==null||S.dispose(),emptyCodeActionsResponse;S&&m.add(S);const w=((S==null?void 0:S.actions)||[]).filter(x=>x&&filtersAction(l,x)),E=getDocumentationFromProvider(C,w,l.include);return{actions:w.map(x=>new CodeActionItem(x,C)),documentation:E}}catch(S){if(isCancellationError(S))throw S;return onUnexpectedExternalError(S),emptyCodeActionsResponse}finally{clearTimeout(y)}}),v=o.onDidChange(()=>{const C=o.all(e);equals$2(C,f)||u.cancel()});try{const C=await Promise.all(_),y=C.map(E=>E.actions).flat(),S=[...coalesce(C.map(E=>E.documentation)),...getAdditionalDocumentationForShowingActions(o,e,r,y)],w=new ManagedCodeActionSet(y,S,m);return m.add(w),w}catch(C){throw m.dispose(),C}finally{v.dispose(),u.dispose()}}function getCodeActionProviders(o,e,t){return o.all(e).filter(r=>r.providedCodeActionKinds?r.providedCodeActionKinds.some(s=>mayIncludeActionsOfKind(t,new HierarchicalKind(s))):!0)}function*getAdditionalDocumentationForShowingActions(o,e,t,r){var s,a,l;if(e&&r.length)for(const c of o.all(e))c._getAdditionalMenuItems&&(yield*(l=c._getAdditionalMenuItems)==null?void 0:l.call(c,{trigger:t.type,only:(a=(s=t.filter)==null?void 0:s.include)==null?void 0:a.value},r.map(d=>d.action)))}function getDocumentationFromProvider(o,e,t){if(!o.documentation)return;const r=o.documentation.map(s=>({kind:new HierarchicalKind(s.kind),command:s.command}));if(t){let s;for(const a of r)a.kind.contains(t)&&(s?s.kind.contains(a.kind)&&(s=a):s=a);if(s)return s==null?void 0:s.command}for(const s of e)if(s.kind){for(const a of r)if(a.kind.contains(new HierarchicalKind(s.kind)))return a.command}}var ApplyCodeActionReason;(function(o){o.OnSave="onSave",o.FromProblemsView="fromProblemsView",o.FromCodeActions="fromCodeActions",o.FromAILightbulb="fromAILightbulb",o.FromProblemsHover="fromProblemsHover"})(ApplyCodeActionReason||(ApplyCodeActionReason={}));async function applyCodeAction(o,e,t,r,s=CancellationToken.None){var g,f;const a=o.get(IBulkEditService),l=o.get(ICommandService),c=o.get(ITelemetryService),d=o.get(INotificationService),u=o.get(IAccessibilitySignalService);if(c.publicLog2("codeAction.applyCodeAction",{codeActionTitle:e.action.title,codeActionKind:e.action.kind,codeActionIsPreferred:!!e.action.isPreferred,reason:t}),u.playSignal(AccessibilitySignal.codeActionTriggered),await e.resolve(s),!s.isCancellationRequested&&!((g=e.action.edit)!=null&&g.edits.length&&!(await a.apply(e.action.edit,{editor:r==null?void 0:r.editor,label:e.action.title,quotableLabel:e.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:t!==ApplyCodeActionReason.OnSave,showPreview:r==null?void 0:r.preview,reason:EditSources.codeAction({kind:e.action.kind,providerId:ProviderId.fromExtensionId((f=e.provider)==null?void 0:f.extensionId)})})).isApplied)){if(e.action.command)try{await l.executeCommand(e.action.command.id,...e.action.command.arguments||[])}catch(m){const _=asMessage(m);d.error(typeof _=="string"?_:localize(830,"An unknown error occurred while applying the code action"))}setTimeout(()=>u.playSignal(AccessibilitySignal.codeActionApplied),CODE_ACTION_SOUND_APPLIED_DURATION)}}function asMessage(o){return typeof o=="string"?o:o instanceof Error&&typeof o.message=="string"?o.message:void 0}CommandsRegistry.registerCommand("_executeCodeActionProvider",async function(o,e,t,r,s){if(!(e instanceof URI))throw illegalArgument();const{codeActionProvider:a}=o.get(ILanguageFeaturesService),l=o.get(IModelService).getModel(e);if(!l)throw illegalArgument();const c=Selection$1.isISelection(t)?Selection$1.liftSelection(t):Range$2.isIRange(t)?l.validateRange(t):void 0;if(!c)throw illegalArgument();const d=typeof r=="string"?new HierarchicalKind(r):void 0,u=await getCodeActions(a,l,c,{type:1,triggerAction:CodeActionTriggerSource.Default,filter:{includeSourceActions:!0,include:d}},Progress.None,CancellationToken.None),g=[],f=Math.min(u.validActions.length,typeof s=="number"?s:0);for(let m=0;m<f;m++)g.push(u.validActions[m].resolve(CancellationToken.None));try{return await Promise.all(g),u.validActions.map(m=>m.action)}finally{setTimeout(()=>u.dispose(),100)}});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={}));(function(o){function e(d,u){return u-d}o.compare=e;const t=Object.create(null);t[o.Error]=localize(1732,"Error"),t[o.Warning]=localize(1733,"Warning"),t[o.Info]=localize(1734,"Info");function r(d){return t[d]||""}o.toString=r;const s=Object.create(null);s[o.Error]=localize(1735,"Errors"),s[o.Warning]=localize(1736,"Warnings"),s[o.Info]=localize(1737,"Infos");function a(d){return s[d]||""}o.toStringPlural=a;function l(d){switch(d){case Severity$1$1.Error:return o.Error;case Severity$1$1.Warning:return o.Warning;case Severity$1$1.Info:return o.Info;case Severity$1$1.Ignore:return o.Hint}}o.fromSeverity=l;function c(d){switch(d){case o.Error:return Severity$1$1.Error;case o.Warning:return Severity$1$1.Warning;case o.Info:return Severity$1$1.Info;case o.Hint:return Severity$1$1.Ignore}}o.toSeverity=c})(MarkerSeverity$2||(MarkerSeverity$2={}));var IMarkerData;(function(o){function t(s){return r(s,!0)}o.makeKey=t;function r(s,a){const l=[""];return s.source?l.push(s.source.replace("¦","\\¦")):l.push(""),s.code?typeof s.code=="string"?l.push(s.code.replace("¦","\\¦")):l.push(s.code.value.replace("¦","\\¦")):l.push(""),s.severity!==void 0&&s.severity!==null?l.push(MarkerSeverity$2.toString(s.severity)):l.push(""),s.message&&a?l.push(s.message.replace("¦","\\¦")):l.push(""),s.startLineNumber!==void 0&&s.startLineNumber!==null?l.push(s.startLineNumber.toString()):l.push(""),s.startColumn!==void 0&&s.startColumn!==null?l.push(s.startColumn.toString()):l.push(""),s.endLineNumber!==void 0&&s.endLineNumber!==null?l.push(s.endLineNumber.toString()):l.push(""),s.endColumn!==void 0&&s.endColumn!==null?l.push(s.endColumn.toString()):l.push(""),l.push(""),l.join("¦")}o.makeKeyOptionalMessage=r})(IMarkerData||(IMarkerData={}));const IMarkerService=createDecorator("markerService");var __decorate$2n=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2h=function(o,e){return function(t,r){e(t,r,o)}},CodeActionKeybindingResolver_1,sn;let CodeActionKeybindingResolver=(sn=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 r=t.commandArgs;return t.command===organizeImportsCommandId?r={kind:CodeActionKind$1.SourceOrganizeImports.value}:t.command===fixAllCommandId&&(r={kind:CodeActionKind$1.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...CodeActionCommandArgs.fromUser(r,{kind:HierarchicalKind.None,apply:"never"})}}));return t=>{if(t.kind){const r=this.bestKeybindingForCodeAction(t,e.value);return r==null?void 0:r.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const r=new HierarchicalKind(e.kind);return t.filter(s=>s.kind.contains(r)).filter(s=>s.preferred?e.isPreferred:!0).reduceRight((s,a)=>s?s.kind.contains(a.kind)?a:s:a,void 0)}},CodeActionKeybindingResolver_1=sn,sn.codeActionCommands=[refactorCommandId,codeActionCommandId,sourceActionCommandId,organizeImportsCommandId,fixAllCommandId],sn);CodeActionKeybindingResolver=CodeActionKeybindingResolver_1=__decorate$2n([__param$2h(0,IKeybindingService)],CodeActionKeybindingResolver);registerColor("symbolIcon.arrayForeground",foreground,localize(1495,"The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.booleanForeground",foreground,localize(1496,"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(1497,"The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.colorForeground",foreground,localize(1498,"The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.constantForeground",foreground,localize(1499,"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(1500,"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(1501,"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(1502,"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(1503,"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(1504,"The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.fileForeground",foreground,localize(1505,"The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.folderForeground",foreground,localize(1506,"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(1507,"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(1508,"The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.keyForeground",foreground,localize(1509,"The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.keywordForeground",foreground,localize(1510,"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(1511,"The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.moduleForeground",foreground,localize(1512,"The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.namespaceForeground",foreground,localize(1513,"The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.nullForeground",foreground,localize(1514,"The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.numberForeground",foreground,localize(1515,"The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.objectForeground",foreground,localize(1516,"The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.operatorForeground",foreground,localize(1517,"The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.packageForeground",foreground,localize(1518,"The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.propertyForeground",foreground,localize(1519,"The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.referenceForeground",foreground,localize(1520,"The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.snippetForeground",foreground,localize(1521,"The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.stringForeground",foreground,localize(1522,"The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.structForeground",foreground,localize(1523,"The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.textForeground",foreground,localize(1524,"The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.typeParameterForeground",foreground,localize(1525,"The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));registerColor("symbolIcon.unitForeground",foreground,localize(1526,"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(1527,"The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const uncategorizedCodeActionGroup=Object.freeze({kind:HierarchicalKind.Empty,title:localize(866,"More Actions...")}),codeActionGroups=Object.freeze([{kind:CodeActionKind$1.QuickFix,title:localize(867,"Quick Fix")},{kind:CodeActionKind$1.RefactorExtract,title:localize(868,"Extract"),icon:Codicon.wrench},{kind:CodeActionKind$1.RefactorInline,title:localize(869,"Inline"),icon:Codicon.wrench},{kind:CodeActionKind$1.RefactorRewrite,title:localize(870,"Rewrite"),icon:Codicon.wrench},{kind:CodeActionKind$1.RefactorMove,title:localize(871,"Move"),icon:Codicon.wrench},{kind:CodeActionKind$1.SurroundWith,title:localize(872,"Surround With"),icon:Codicon.surroundWith},{kind:CodeActionKind$1.Source,title:localize(873,"Source Action"),icon:Codicon.symbolFile},uncategorizedCodeActionGroup]);function toMenuItems(o,e,t){if(!e)return o.map(a=>{var l;return{kind:"action",item:a,group:uncategorizedCodeActionGroup,disabled:!!a.action.disabled,label:a.action.disabled||a.action.title,canPreview:!!((l=a.action.edit)!=null&&l.edits.length)}});const r=codeActionGroups.map(a=>({group:a,actions:[]}));for(const a of o){const l=a.action.kind?new HierarchicalKind(a.action.kind):HierarchicalKind.None;for(const c of r)if(c.group.kind.contains(l)){c.actions.push(a);break}}const s=[];for(const a of r)if(a.actions.length){s.push({kind:"header",group:a.group});for(const l of a.actions){const c=a.group;s.push({kind:"action",item:l,group:l.action.isAI?{title:c.title,kind:c.kind,icon:Codicon.sparkle}:c,label:l.action.title,disabled:!!l.action.disabled,keybinding:t(l.action)})}}return s}const SUPPORTED_CODE_ACTIONS=new RawContextKey("supportedCodeAction",""),APPLY_FIX_ALL_COMMAND_ID="_typescript.applyFixAllCodeAction";class CodeActionOracle extends Disposable$1{constructor(e,t,r,s=250){super(),this._editor=e,this._markerService=t,this._signalChange=r,this._delay=s,this._autoTriggerTimer=this._register(new TimeoutTimer),this._register(this._markerService.onMarkerChanged(a=>this._onMarkerChanges(a))),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(r=>isEqual(r,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.getSelection();if(e.type===1)return t;const r=this._editor.getOption(73).enabled;if(r!==ShowLightbulbIconMode$1.Off){{if(r===ShowLightbulbIconMode$1.On)return t;if(r===ShowLightbulbIconMode$1.OnCode){if(!t.isEmpty())return t;const a=this._editor.getModel(),{lineNumber:l,column:c}=t.getPosition(),d=a.getLineContent(l);if(d.length===0)return;if(c===1){if(/\s/.test(d[0]))return}else if(c===a.getLineMaxColumn(l)){if(/\s/.test(d[d.length-1]))return}else if(/\s/.test(d[c-2])&&/\s/.test(d[c-1]))return}}return t}}}var CodeActionsState;(function(o){o.Empty={type:0};class e{constructor(r,s,a){this.trigger=r,this.position=s,this._cancellablePromise=a,this.type=1,this.actions=a.catch(l=>{if(isCancellationError(l))return emptyCodeActionSet;throw l})}cancel(){this._cancellablePromise.cancel()}}o.Triggered=e})(CodeActionsState||(CodeActionsState={}));const emptyCodeActionSet=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class CodeActionModel extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._editor=e,this._registry=t,this._markerService=r,this._progressService=a,this._configurationService=l,this._codeActionOracle=this._register(new MutableDisposable),this._state=CodeActionsState.Empty,this._onDidChangeState=this._register(new Emitter$1),this.onDidChangeState=this._onDidChangeState.event,this.codeActionsDisposable=this._register(new MutableDisposable),this._disposed=!1,this._supportedCodeActions=SUPPORTED_CODE_ACTIONS.bindTo(s),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(c=>{c.hasChanged(73)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(CodeActionsState.Empty,!0))}_settingEnabledNearbyQuickfixes(){var t;const e=(t=this._editor)==null?void 0:t.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:e==null?void 0:e.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(104)){const t=this._registry.all(e).flatMap(r=>{var s;return(s=r.providedCodeActionKinds)!=null?s:[]});this._supportedCodeActions.set(t.join(" ")),this._codeActionOracle.value=new CodeActionOracle(this._editor,this._markerService,r=>{var d;if(!r){this.setState(CodeActionsState.Empty);return}const s=r.selection.getStartPosition(),a=createCancelablePromise(async u=>{var f,m,_,v,b,C,y,S,w,E;if(this._settingEnabledNearbyQuickfixes()&&r.trigger.type===1&&(r.trigger.triggerAction===CodeActionTriggerSource.QuickFix||(m=(f=r.trigger.filter)==null?void 0:f.include)!=null&&m.contains(CodeActionKind$1.QuickFix))){const x=await getCodeActions(this._registry,e,r.selection,r.trigger,Progress.None,u);this.codeActionsDisposable.value=x;const L=[...x.allActions];if(u.isCancellationRequested)return x.dispose(),emptyCodeActionSet;const k=(_=x.validActions)==null?void 0:_.some(I=>I.action.kind&&CodeActionKind$1.QuickFix.contains(new HierarchicalKind(I.action.kind))&&!I.action.isAI),D=this._markerService.read({resource:e.uri});if(k){for(const I of x.validActions)(b=(v=I.action.command)==null?void 0:v.arguments)!=null&&b.some(T=>typeof T=="string"&&T.includes(APPLY_FIX_ALL_COMMAND_ID))&&(I.action.diagnostics=[...D.filter(T=>T.relatedInformation)]);return{validActions:x.validActions,allActions:L,documentation:x.documentation,hasAutoFix:x.hasAutoFix,hasAIFix:x.hasAIFix,allAIFixes:x.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=x}}}else if(!k&&D.length>0){const I=r.selection.getPosition();let T=I,M=Number.MAX_VALUE;const R=[...x.validActions];for(const A of D){const O=A.endColumn,P=A.endLineNumber,F=A.startLineNumber;if(P===I.lineNumber||F===I.lineNumber){T=new Position$1(P,O);const B={type:r.trigger.type,triggerAction:r.trigger.triggerAction,filter:{include:(C=r.trigger.filter)!=null&&C.include?(y=r.trigger.filter)==null?void 0:y.include:CodeActionKind$1.QuickFix},autoApply:r.trigger.autoApply,context:{notAvailableMessage:((S=r.trigger.context)==null?void 0:S.notAvailableMessage)||"",position:T}},H=new Selection$1(T.lineNumber,T.column,T.lineNumber,T.column),V=await getCodeActions(this._registry,e,H,B,Progress.None,u);if(u.isCancellationRequested)return V.dispose(),emptyCodeActionSet;if(V.validActions.length!==0){for(const U of V.validActions)(E=(w=U.action.command)==null?void 0:w.arguments)!=null&&E.some(j=>typeof j=="string"&&j.includes(APPLY_FIX_ALL_COMMAND_ID))&&(U.action.diagnostics=[...D.filter(j=>j.relatedInformation)]);x.allActions.length===0&&L.push(...V.allActions),Math.abs(I.column-O)<M?R.unshift(...V.validActions):R.push(...V.validActions)}M=Math.abs(I.column-O)}}const N=R.filter((A,O,P)=>P.findIndex(F=>F.action.title===A.action.title)===O);return N.sort((A,O)=>A.action.isPreferred&&!O.action.isPreferred?-1:!A.action.isPreferred&&O.action.isPreferred||A.action.isAI&&!O.action.isAI?1:!A.action.isAI&&O.action.isAI?-1:0),{validActions:N,allActions:L,documentation:x.documentation,hasAutoFix:x.hasAutoFix,hasAIFix:x.hasAIFix,allAIFixes:x.allAIFixes,dispose:()=>{this.codeActionsDisposable.value=x}}}}if(r.trigger.type===1){const x=await getCodeActions(this._registry,e,r.selection,r.trigger,Progress.None,u);return this.codeActionsDisposable.value=x,x}const g=await getCodeActions(this._registry,e,r.selection,r.trigger,Progress.None,u);return this.codeActionsDisposable.value=g,g});r.trigger.type===1&&((d=this._progressService)==null||d.showWhile(a,250));const l=new CodeActionsState.Triggered(r.trigger,s,a);let c=!1;this._state.type===1&&(c=this._state.trigger.type===1&&l.type===1&&l.trigger.type===2&&this._state.position!==l.position),c?setTimeout(()=>{this.setState(l)},500):this.setState(l)},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.trigger(e),this.codeActionsDisposable.dispose()}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$2m=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2g=function(o,e){return function(t,r){e(t,r,o)}},LightBulbWidget_1;const GUTTER_LIGHTBULB_ICON=registerIcon("gutter-lightbulb",Codicon.lightBulb,localize(874,"Icon which spawns code actions menu from the gutter when there is no space in the editor.")),GUTTER_LIGHTBULB_AUTO_FIX_ICON=registerIcon("gutter-lightbulb-auto-fix",Codicon.lightbulbAutofix,localize(875,"Icon which spawns code actions menu from the gutter when there is no space in the editor and a quick fix is available.")),GUTTER_LIGHTBULB_AIFIX_ICON=registerIcon("gutter-lightbulb-sparkle",Codicon.lightbulbSparkle,localize(876,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix is available.")),GUTTER_LIGHTBULB_AIFIX_AUTO_FIX_ICON=registerIcon("gutter-lightbulb-aifix-auto-fix",Codicon.lightbulbSparkleAutofix,localize(877,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available.")),GUTTER_SPARKLE_FILLED_ICON=registerIcon("gutter-lightbulb-sparkle-filled",Codicon.sparkleFilled,localize(878,"Icon which spawns code actions menu from the gutter when there is no space in the editor and an AI fix and a quick fix is available."));var LightBulbState;(function(o){o.Hidden={type:0};class e{constructor(r,s,a,l){this.actions=r,this.trigger=s,this.editorPosition=a,this.widgetPosition=l,this.type=1}}o.Showing=e})(LightBulbState||(LightBulbState={}));var ii;let LightBulbWidget=(ii=class extends Disposable$1{constructor(e,t){super(),this._editor=e,this._keybindingService=t,this._onClick=this._register(new Emitter$1),this.onClick=this._onClick.event,this._state=LightBulbState.Hidden,this._gutterState=LightBulbState.Hidden,this._iconClasses=[],this.lightbulbClasses=["codicon-"+GUTTER_LIGHTBULB_ICON.id,"codicon-"+GUTTER_LIGHTBULB_AIFIX_AUTO_FIX_ICON.id,"codicon-"+GUTTER_LIGHTBULB_AUTO_FIX_ICON.id,"codicon-"+GUTTER_LIGHTBULB_AIFIX_ICON.id,"codicon-"+GUTTER_SPARKLE_FILLED_ICON.id],this.gutterDecoration=LightBulbWidget_1.GUTTER_DECORATION,this._domNode=$$m("div.lightBulbWidget"),this._domNode.role="listbox",this._register(Gesture.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(r=>{const s=this._editor.getModel();(this.state.type!==1||!s||this.state.editorPosition.lineNumber>=s.getLineCount())&&this.hide(),(this.gutterState.type!==1||!s||this.gutterState.editorPosition.lineNumber>=s.getLineCount())&&this.gutterHide()})),this._register(addStandardDisposableGenericMouseDownListener(this._domNode,r=>{if(this.state.type!==1)return;this._editor.focus(),r.preventDefault();const{top:s,height:a}=getDomNodePagePosition(this._domNode),l=this._editor.getOption(75);let c=Math.floor(l/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber<this.state.editorPosition.lineNumber&&(c+=l),this._onClick.fire({x:r.posx,y:s+a+c,actions:this.state.actions,trigger:this.state.trigger})})),this._register(addDisposableListener(this._domNode,"mouseenter",r=>{(r.buttons&1)===1&&this.hide()})),this._register(Event$1.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{var r,s,a,l;this._preferredKbLabel=(s=(r=this._keybindingService.lookupKeybinding(autoFixCommandId))==null?void 0:r.getLabel())!=null?s:void 0,this._quickFixKbLabel=(l=(a=this._keybindingService.lookupKeybinding(quickFixCommandId))==null?void 0:a.getLabel())!=null?l:void 0,this._updateLightBulbTitleAndIcon()})),this._register(this._editor.onMouseDown(async r=>{if(!r.target.element||!this.lightbulbClasses.some(d=>r.target.element&&r.target.element.classList.contains(d))||this.gutterState.type!==1)return;this._editor.focus();const{top:s,height:a}=getDomNodePagePosition(r.target.element),l=this._editor.getOption(75);let c=Math.floor(l/3);this.gutterState.widgetPosition.position!==null&&this.gutterState.widgetPosition.position.lineNumber<this.gutterState.editorPosition.lineNumber&&(c+=l),this._onClick.fire({x:r.event.posx,y:s+a+c,actions:this.gutterState.actions,trigger:this.gutterState.trigger})}))}dispose(){super.dispose(),this._editor.removeContentWidget(this),this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(e,t,r){if(e.validActions.length<=0)return this.gutterHide(),this.hide();if(!this._editor.hasTextFocus())return this.gutterHide(),this.hide();if(!this._editor.getOptions().get(73).enabled)return this.gutterHide(),this.hide();const l=this._editor.getModel();if(!l)return this.gutterHide(),this.hide();const{lineNumber:c,column:d}=l.validatePosition(r),u=l.getOptions().tabSize,g=this._editor.getOptions().get(59),f=l.getLineContent(c),m=computeIndentLevel(f,u),_=g.spaceWidth*m>22,v=x=>x>2&&this._editor.getTopForLineNumber(x)===this._editor.getTopForLineNumber(x-1),b=this._editor.getLineDecorations(c);let C=!1;if(b)for(const x of b){const L=x.options.glyphMarginClassName;if(L&&!this.lightbulbClasses.some(k=>L.includes(k))){C=!0;break}}let y=c,S=1;if(!_){const x=L=>{const k=l.getLineContent(L);return/^\s*$|^\s+/.test(k)||k.length<=S};if(c>1&&!v(c-1)){const L=l.getLineCount(),k=c===L,D=c>1&&x(c-1),I=!k&&x(c+1),T=x(c),M=!I&&!D;if(!I&&!D&&!C)return this.gutterState=new LightBulbState.Showing(e,t,r,{position:{lineNumber:y,column:S},preference:LightBulbWidget_1._posPref}),this.renderGutterLightbub(),this.hide();D||k||D&&!T?y-=1:(I||M&&T)&&(y+=1)}else if(c===1&&(c===l.getLineCount()||!x(c+1)&&!x(c)))if(this.gutterState=new LightBulbState.Showing(e,t,r,{position:{lineNumber:y,column:S},preference:LightBulbWidget_1._posPref}),C)this.gutterHide();else return this.renderGutterLightbub(),this.hide();else if(c<l.getLineCount()&&!v(c+1))y+=1;else if(d*g.spaceWidth<22)return this.hide();S=/^\S\s*$/.test(l.getLineContent(y))?2:1}this.state=new LightBulbState.Showing(e,t,r,{position:{lineNumber:y,column:S},preference:LightBulbWidget_1._posPref}),this._gutterDecorationID&&(this._removeGutterDecoration(this._gutterDecorationID),this.gutterHide());const w=e.validActions,E=e.validActions[0].action.kind;if(w.length!==1||!E){this._editor.layoutContentWidget(this);return}this._editor.layoutContentWidget(this)}hide(){this.state!==LightBulbState.Hidden&&(this.state=LightBulbState.Hidden,this._editor.layoutContentWidget(this))}gutterHide(){this.gutterState!==LightBulbState.Hidden&&(this._gutterDecorationID&&this._removeGutterDecoration(this._gutterDecorationID),this.gutterState=LightBulbState.Hidden)}get state(){return this._state}set state(e){this._state=e,this._updateLightBulbTitleAndIcon()}get gutterState(){return this._gutterState}set gutterState(e){this._gutterState=e,this._updateGutterLightBulbTitleAndIcon()}_updateLightBulbTitleAndIcon(){if(this._domNode.classList.remove(...this._iconClasses),this._iconClasses=[],this.state.type!==1)return;let e,t=!1;this.state.actions.allAIFixes?(e=Codicon.sparkleFilled,this.state.actions.validActions.length===1&&(t=!0)):this.state.actions.hasAutoFix?this.state.actions.hasAIFix?e=Codicon.lightbulbSparkleAutofix:e=Codicon.lightbulbAutofix:this.state.actions.hasAIFix?e=Codicon.lightbulbSparkle:e=Codicon.lightBulb,this._updateLightbulbTitle(this.state.actions.hasAutoFix,t),this._iconClasses=ThemeIcon.asClassNameArray(e),this._domNode.classList.add(...this._iconClasses)}_updateGutterLightBulbTitleAndIcon(){if(this.gutterState.type!==1)return;let e,t=!1;this.gutterState.actions.allAIFixes?(e=GUTTER_SPARKLE_FILLED_ICON,this.gutterState.actions.validActions.length===1&&(t=!0)):this.gutterState.actions.hasAutoFix?this.gutterState.actions.hasAIFix?e=GUTTER_LIGHTBULB_AIFIX_AUTO_FIX_ICON:e=GUTTER_LIGHTBULB_AUTO_FIX_ICON:this.gutterState.actions.hasAIFix?e=GUTTER_LIGHTBULB_AIFIX_ICON:e=GUTTER_LIGHTBULB_ICON,this._updateLightbulbTitle(this.gutterState.actions.hasAutoFix,t);const r=ModelDecorationOptions.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:ThemeIcon.asClassName(e),glyphMargin:{position:GlyphMarginLane$1.Left},stickiness:1});this.gutterDecoration=r}renderGutterLightbub(){const e=this._editor.getSelection();e&&(this._gutterDecorationID===void 0?this._addGutterDecoration(e.startLineNumber):this._updateGutterDecoration(this._gutterDecorationID,e.startLineNumber))}_addGutterDecoration(e){this._editor.changeDecorations(t=>{this._gutterDecorationID=t.addDecoration(new Range$2(e,0,e,0),this.gutterDecoration)})}_removeGutterDecoration(e){this._editor.changeDecorations(t=>{t.removeDecoration(e),this._gutterDecorationID=void 0})}_updateGutterDecoration(e,t){this._editor.changeDecorations(r=>{r.changeDecoration(e,new Range$2(t,0,t,0)),r.changeDecorationOptions(e,this.gutterDecoration)})}_updateLightbulbTitle(e,t){this.state.type===1&&(t?this.title=localize(879,"Run: {0}",this.state.actions.validActions[0].action.title):e&&this._preferredKbLabel?this.title=localize(880,"Show Code Actions. Preferred Quick Fix Available ({0})",this._preferredKbLabel):!e&&this._quickFixKbLabel?this.title=localize(881,"Show Code Actions ({0})",this._quickFixKbLabel):e||(this.title=localize(882,"Show Code Actions")))}set title(e){this._domNode.title=e}},LightBulbWidget_1=ii,ii.GUTTER_DECORATION=ModelDecorationOptions.register({description:"codicon-gutter-lightbulb-decoration",glyphMarginClassName:ThemeIcon.asClassName(Codicon.lightBulb),glyphMargin:{position:GlyphMarginLane$1.Left},stickiness:1}),ii.ID="editor.contrib.lightbulbWidget",ii._posPref=[0],ii);LightBulbWidget=LightBulbWidget_1=__decorate$2m([__param$2g(1,IKeybindingService)],LightBulbWidget);var __decorate$2l=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2f=function(o,e){return function(t,r){e(t,r,o)}},CodeActionController_1;const DECORATION_CLASS_NAME$1="quickfix-edit-highlight";var _i;let CodeActionController=(_i=class extends Disposable$1{static get(e){return e.getContribution(CodeActionController_1.ID)}constructor(e,t,r,s,a,l,c,d,u,g,f){super(),this._commandService=c,this._configurationService=d,this._actionWidgetService=u,this._instantiationService=g,this._progressService=f,this._activeCodeActions=this._register(new MutableDisposable),this._showDisabled=!1,this._disposed=!1,this._editor=e,this._model=this._register(new CodeActionModel(this._editor,a.codeActionProvider,t,r,l,d)),this._register(this._model.onDidChangeState(m=>this.update(m))),this._lightBulbWidget=new Lazy(()=>{const m=this._editor.getContribution(LightBulbWidget.ID);return m&&this._register(m.onClick(_=>this.showCodeActionsFromLightbulb(_.actions,_))),m}),this._resolver=s.createInstance(CodeActionKeybindingResolver),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(e,t){if(e.allAIFixes&&e.validActions.length===1){const r=e.validActions[0],s=r.action.command;s&&s.id==="inlineChat.start"&&s.arguments&&s.arguments.length>=1&&s.arguments[0]&&(s.arguments[0]={...s.arguments[0],autoSend:!1}),await this.applyCodeAction(r,!1,!1,ApplyCodeActionReason.FromAILightbulb);return}await this.showCodeActionList(e,t,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(e,t,r){return this.showCodeActionList(t,r,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,r,s){var l;if(!this._editor.hasModel())return;(l=MessageController.get(this._editor))==null||l.closeMessage();const a=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:r,autoApply:s,context:{notAvailableMessage:e,position:a}})}_trigger(e){return this._model.trigger(e)}async applyCodeAction(e,t,r,s){const a=this._progressService.show(!0,500);try{await this._instantiationService.invokeFunction(applyCodeAction,e,s,{preview:r,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:CodeActionTriggerSource.QuickFix,filter:{}}),a.done()}}hideLightBulbWidget(){var e,t;(e=this._lightBulbWidget.rawValue)==null||e.hide(),(t=this._lightBulbWidget.rawValue)==null||t.gutterHide()}async update(e){var s,a,l,c,d;if(e.type!==1){this.hideLightBulbWidget();return}let t;try{t=await e.actions}catch(u){onUnexpectedError(u);return}if(this._disposed)return;const r=this._editor.getSelection();if((r==null?void 0:r.startLineNumber)===e.position.lineNumber)if((s=this._lightBulbWidget.value)==null||s.update(t,e.trigger,e.position),e.trigger.type===1){if((a=e.trigger.filter)!=null&&a.include){const g=this.tryGetValidActionToApply(e.trigger,t);if(g){try{this.hideLightBulbWidget(),await this.applyCodeAction(g,!1,!1,ApplyCodeActionReason.FromCodeActions)}finally{t.dispose()}return}if(e.trigger.context){const f=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,t);if(f&&f.action.disabled){(l=MessageController.get(this._editor))==null||l.showMessage(f.action.disabled,e.trigger.context.position),t.dispose();return}}}const u=!!((c=e.trigger.filter)!=null&&c.include);if(e.trigger.context&&(!t.allActions.length||!u&&!t.validActions.length)){(d=MessageController.get(this._editor))==null||d.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=t,t.dispose();return}this._activeCodeActions.value=t,this.showCodeActionList(t,this.toCoords(e.position),{includeDisabledActions:u,fromLightbulb:!1})}else this._actionWidgetService.isVisible?t.dispose():this._activeCodeActions.value=t}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:r})=>r.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]}async showCodeActionList(e,t,r){const s=this._editor.createDecorationsCollection(),a=this._editor.getDomNode();if(!a)return;const l=r.includeDisabledActions&&(this._showDisabled||e.validActions.length===0)?e.allActions:e.validActions;if(!l.length)return;const c=Position$1.isIPosition(t)?this.toCoords(t):t,d={onSelect:async(u,g)=>{this.applyCodeAction(u,!0,!!g,r.fromLightbulb?ApplyCodeActionReason.FromAILightbulb:ApplyCodeActionReason.FromCodeActions),this._actionWidgetService.hide(!1),s.clear()},onHide:u=>{var g;(g=this._editor)==null||g.focus(),s.clear()},onHover:async(u,g)=>{var _;if(g.isCancellationRequested)return;let f=!1;const m=u.action.kind;if(m){const v=new HierarchicalKind(m);f=[CodeActionKind$1.RefactorExtract,CodeActionKind$1.RefactorInline,CodeActionKind$1.RefactorRewrite,CodeActionKind$1.RefactorMove,CodeActionKind$1.Source].some(C=>C.contains(v))}return{canPreview:f||!!((_=u.action.edit)!=null&&_.edits.length)}},onFocus:u=>{var g,f;if(u&&u.action){const m=u.action.ranges,_=u.action.diagnostics;if(s.clear(),m&&m.length>0){const v=_&&(_==null?void 0:_.length)>1?_.map(b=>({range:b,options:CodeActionController_1.DECORATION})):m.map(b=>({range:b,options:CodeActionController_1.DECORATION}));s.set(v)}else if(_&&_.length>0){const v=_.map(C=>({range:C,options:CodeActionController_1.DECORATION}));s.set(v);const b=_[0];if(b.startLineNumber&&b.startColumn){const C=(f=(g=this._editor.getModel())==null?void 0:g.getWordAtPosition({lineNumber:b.startLineNumber,column:b.startColumn}))==null?void 0:f.word;status(localize(863,"Context: {0} at line {1} and column {2}.",C,b.startLineNumber,b.startColumn))}}}else s.clear()}};this._actionWidgetService.show("codeActionWidget",!0,toMenuItems(l,this._shouldShowHeaders(),this._resolver.getResolver()),d,c,a,this._getActionBarActions(e,t,r))}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),r=getDomNodePagePosition(this._editor.getDomNode()),s=r.left+t.left,a=r.top+t.top+t.height;return{x:s,y:a}}_shouldShowHeaders(){var t;const e=(t=this._editor)==null?void 0:t.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:e==null?void 0:e.uri})}_getActionBarActions(e,t,r){if(r.fromLightbulb)return[];const s=e.documentation.map(a=>{var l;return{id:a.id,label:a.title,tooltip:(l=a.tooltip)!=null?l:"",class:void 0,enabled:!0,run:()=>{var c;return this._commandService.executeCommand(a.id,...(c=a.arguments)!=null?c:[])}}});return r.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&s.push(this._showDisabled?{id:"hideMoreActions",label:localize(864,"Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(e,t,r))}:{id:"showMoreActions",label:localize(865,"Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(e,t,r))}),s}},CodeActionController_1=_i,_i.ID="editor.contrib.codeActionController",_i.DECORATION=ModelDecorationOptions.register({description:"quickfix-highlight",className:DECORATION_CLASS_NAME$1}),_i);CodeActionController=CodeActionController_1=__decorate$2l([__param$2f(1,IMarkerService),__param$2f(2,IContextKeyService),__param$2f(3,IInstantiationService),__param$2f(4,ILanguageFeaturesService),__param$2f(5,IEditorProgressService),__param$2f(6,ICommandService),__param$2f(7,IConfigurationService),__param$2f(8,IActionWidgetService),__param$2f(9,IInstantiationService),__param$2f(10,IEditorProgressService)],CodeActionController);registerThemingParticipant((o,e)=>{((s,a)=>{a&&e.addRule(".monaco-editor ".concat(s," { background-color: ").concat(a,"; }"))})(".quickfix-edit-highlight",o.getColor(editorFindMatchHighlight));const r=o.getColor(editorFindMatchHighlightBorder);r&&e.addRule(".monaco-editor .quickfix-edit-highlight { border: 1px ".concat(isHighContrast(o.type)?"dotted":"solid"," ").concat(r,"; 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(831,"Kind of the code action to run.")},apply:{type:"string",description:localize(832,"Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[localize(833,"Always apply the first returned code action."),localize(834,"Apply the first returned code action if it is the only one."),localize(835,"Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:localize(836,"Controls if only preferred code actions should be returned.")}}};function triggerCodeActionsForEditorSelection(o,e,t,r,s=CodeActionTriggerSource.Default){if(o.hasModel()){const a=CodeActionController.get(o);a==null||a.manualTriggerAtCurrentPosition(e,s,t,r)}}class QuickFixAction extends EditorAction{constructor(){super({id:quickFixCommandId,label:localize2(853,"Quick Fix..."),precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasCodeActionsProvider),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2137,weight:100}})}run(e,t){return triggerCodeActionsForEditorSelection(t,localize(837,"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),metadata:{description:"Trigger a code action",args:[{name:"args",schema:argsSchema}]}})}runEditorCommand(e,t,r){const s=CodeActionCommandArgs.fromUser(r,{kind:HierarchicalKind.Empty,apply:"ifSingle"});return triggerCodeActionsForEditorSelection(t,typeof(r==null?void 0:r.kind)=="string"?s.preferred?localize(838,"No preferred code actions for '{0}' available",r.kind):localize(839,"No code actions for '{0}' available",r.kind):s.preferred?localize(840,"No preferred code actions available"):localize(841,"No code actions available"),{include:s.kind,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply)}}class RefactorAction extends EditorAction{constructor(){super({id:refactorCommandId,label:localize2(854,"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$1.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:argsSchema}]}})}run(e,t,r){const s=CodeActionCommandArgs.fromUser(r,{kind:CodeActionKind$1.Refactor,apply:"never"});return triggerCodeActionsForEditorSelection(t,typeof(r==null?void 0:r.kind)=="string"?s.preferred?localize(842,"No preferred refactorings for '{0}' available",r.kind):localize(843,"No refactorings for '{0}' available",r.kind):s.preferred?localize(844,"No preferred refactorings available"):localize(845,"No refactorings available"),{include:CodeActionKind$1.Refactor.contains(s.kind)?s.kind:HierarchicalKind.None,onlyIncludePreferredActions:s.preferred},s.apply,CodeActionTriggerSource.Refactor)}}class SourceAction extends EditorAction{constructor(){super({id:sourceActionCommandId,label:localize2(855,"Source Action..."),precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind$1.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:argsSchema}]}})}run(e,t,r){const s=CodeActionCommandArgs.fromUser(r,{kind:CodeActionKind$1.Source,apply:"never"});return triggerCodeActionsForEditorSelection(t,typeof(r==null?void 0:r.kind)=="string"?s.preferred?localize(846,"No preferred source actions for '{0}' available",r.kind):localize(847,"No source actions for '{0}' available",r.kind):s.preferred?localize(848,"No preferred source actions available"):localize(849,"No source actions available"),{include:CodeActionKind$1.Source.contains(s.kind)?s.kind:HierarchicalKind.None,includeSourceActions:!0,onlyIncludePreferredActions:s.preferred},s.apply,CodeActionTriggerSource.SourceAction)}}class OrganizeImportsAction extends EditorAction{constructor(){super({id:organizeImportsCommandId,label:localize2(856,"Organize Imports"),precondition:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind$1.SourceOrganizeImports)),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:1581,weight:100},metadata:{description:localize2(857,"Organize imports in the current file. Also called 'Optimize Imports' by some tools")}})}run(e,t){return triggerCodeActionsForEditorSelection(t,localize(850,"No organize imports action available"),{include:CodeActionKind$1.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",CodeActionTriggerSource.OrganizeImports)}}class FixAllAction extends EditorAction{constructor(){super({id:fixAllCommandId,label:localize2(858,"Fix All"),precondition:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind$1.SourceFixAll))})}run(e,t){return triggerCodeActionsForEditorSelection(t,localize(851,"No fix all action available"),{include:CodeActionKind$1.SourceFixAll,includeSourceActions:!0},"ifSingle",CodeActionTriggerSource.FixAll)}}class AutoFixAction extends EditorAction{constructor(){super({id:autoFixCommandId,label:localize2(859,"Auto Fix..."),precondition:ContextKeyExpr.and(EditorContextKeys.writable,contextKeyForSupportedActions(CodeActionKind$1.QuickFix)),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(e,t){return triggerCodeActionsForEditorSelection(t,localize(852,"No auto fixes available"),{include:CodeActionKind$1.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({...editorConfigurationBaseNode,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:6,description:localize(860,"Enable/disable showing group headers in the Code Action menu."),default:!0}}});Registry.as(Extensions$6.Configuration).registerConfiguration({...editorConfigurationBaseNode,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:6,description:localize(861,"Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});Registry.as(Extensions$6.Configuration).registerConfiguration({...editorConfigurationBaseNode,properties:{"editor.codeActions.triggerOnFocusChange":{type:"boolean",scope:6,markdownDescription:localize(862,"Enable triggering {0} when {1} is set to {2}. Code Actions must be set to {3} to be triggered for window and focus changes.","`#editor.codeActionsOnSave#`","`#files.autoSave#`","`afterDelay`","`always`"),default:!1}}});const Bo=class Bo{constructor(){this.lenses=[]}dispose(){var e;(e=this._store)==null||e.dispose()}get isDisposed(){var e,t;return(t=(e=this._store)==null?void 0:e.isDisposed)!=null?t:!1}add(e,t){var r;isDisposable(e)&&((r=this._store)!=null||(this._store=new DisposableStore$1),this._store.add(e));for(const s of e.lenses)this.lenses.push({symbol:s,provider:t})}};Bo.Empty=new Bo;let CodeLensModel=Bo;async function getCodeLensModel(o,e,t){const r=o.ordered(e),s=new Map,a=new CodeLensModel,l=r.map(async(c,d)=>{s.set(c,d);try{const u=await Promise.resolve(c.provideCodeLenses(e,t));u&&a.add(u,c)}catch(u){onUnexpectedExternalError(u)}});return await Promise.all(l),t.isCancellationRequested?(a.dispose(),CodeLensModel.Empty):(a.lenses=a.lenses.sort((c,d)=>c.symbol.range.startLineNumber<d.symbol.range.startLineNumber?-1:c.symbol.range.startLineNumber>d.symbol.range.startLineNumber?1:s.get(c.provider)<s.get(d.provider)?-1:s.get(c.provider)>s.get(d.provider)?1:c.symbol.range.startColumn<d.symbol.range.startColumn?-1:c.symbol.range.startColumn>d.symbol.range.startColumn?1:0),a)}CommandsRegistry.registerCommand("_executeCodeLensProvider",function(o,...e){let[t,r]=e;assertType(URI.isUri(t)),assertType(typeof r=="number"||!r);const{codeLensProvider:s}=o.get(ILanguageFeaturesService),a=o.get(IModelService).getModel(t);if(!a)throw illegalArgument();const l=[],c=new DisposableStore$1;return getCodeLensModel(s,a,CancellationToken.None).then(d=>{c.add(d);const u=[];for(const g of d.lenses)r==null||g.symbol.command?l.push(g.symbol):r-- >0&&g.provider.resolveCodeLens&&u.push(Promise.resolve(g.provider.resolveCodeLens(a,g.symbol,CancellationToken.None)).then(f=>l.push(f||g.symbol)));return Promise.all(u)}).then(()=>l).finally(()=>{setTimeout(()=>c.dispose(),100)})});var __decorate$2k=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2e=function(o,e){return function(t,r){e(t,r,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";runWhenWindowIdle(mainWindow,()=>e.remove(t,1));const r="codelens/cache2",s=e.get(r,1,"{}");this._deserialize(s);const a=Event$1.filter(e.onWillSaveState,l=>l.reason===WillSaveStateReason.SHUTDOWN);Event$1.once(a)(l=>{e.store(r,this._serialize(),1,1)})}put(e,t){const r=t.lenses.map(l=>{var c;return{range:l.symbol.range,command:l.symbol.command&&{id:"",title:(c=l.symbol.command)==null?void 0:c.title}}}),s=new CodeLensModel;s.add({lenses:r},this._fakeProvider);const a=new CacheItem(e.getLineCount(),s);this._cache.set(e.uri.toString(),a)}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,r]of this._cache){const s=new Set;for(const a of r.data.lenses)s.add(a.symbol.range.startLineNumber);e[t]={lineCount:r.lineCount,lines:[...s.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const r in t){const s=t[r],a=[];for(const c of s.lines)a.push({range:new Range$2(c,1,c,11)});const l=new CodeLensModel;l.add({lenses:a},this._fakeProvider),this._cache.set(r,new CacheItem(s.lineCount,l))}}catch(t){}}};CodeLensCache=__decorate$2k([__param$2e(0,IStorageService)],CodeLensCache);registerSingleton(ICodeLensCache,CodeLensCache,1);class CodeLensViewZone{constructor(e,t,r){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=r,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")}}const Vr=class Vr{constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id="codelens.widget-".concat(Vr._idPool++),this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(e,t){this._commands.clear();const r=[];let s=!1;for(let a=0;a<e.length;a++){const l=e[a];if(l&&(s=!0,l.command)){const c=renderLabelWithIcons(l.command.title.trim());if(l.command.id){const d="c".concat(Vr._idPool++);r.push($$m("a",{id:d,title:l.command.tooltip,role:"button"},...c)),this._commands.set(d,l.command)}else r.push($$m("span",{title:l.command.tooltip},...c));a+1<e.length&&r.push($$m("span",void 0," | "))}}s?(reset(this._domNode,...r),this._isEmpty&&t&&this._domNode.classList.add("fadein"),this._isEmpty=!1):reset(this._domNode,$$m("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}};Vr._idPool=0;let CodeLensContentWidget=Vr;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 r=0,s=t.length;r<s;r++)this._addDecorationsCallbacks[r](t[r])}}const codeLensDecorationOptions=ModelDecorationOptions.register({collapseOnReplaceEdit:!0,description:"codelens"});class CodeLensWidget{constructor(e,t,r,s,a,l){this._isDisposed=!1,this._editor=t,this._data=e,this._decorationIds=[];let c;const d=[];this._data.forEach((u,g)=>{u.symbol.command&&d.push(u.symbol),r.addDecoration({range:u.symbol.range,options:codeLensDecorationOptions},f=>this._decorationIds[g]=f),c?c=Range$2.plusRange(c,u.symbol.range):c=Range$2.lift(u.symbol.range)}),this._viewZone=new CodeLensViewZone(c.startLineNumber-1,a,l),this._viewZoneId=s.addZone(this._viewZone),d.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(d,!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 r=this._editor.getModel().getDecorationRange(e),s=this._data[t].symbol;return!!(r&&Range$2.isEmpty(s.range)===r.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((r,s)=>{t.addDecoration({range:r.symbol.range,options:codeLensDecorationOptions},a=>this._decorationIds[s]=a)})}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 r=e.getDecorationRange(this._decorationIds[t]);r&&(this._data[t].symbol.range=r)}return this._data}updateCommands(e){this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(e,!0);for(let t=0;t<this._data.length;t++){const r=e[t];if(r){const{symbol:s}=this._data[t];s.command=r.command||s.command}}}getCommand(e){var t;return(t=this._contentWidget)==null?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)))}}}const IEnvironmentService=createDecorator("environmentService");var __decorate$2j=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2d=function(o,e){return function(t,r){e(t,r,o)}};const ILanguageFeatureDebounceService=createDecorator("ILanguageFeatureDebounceService");var IdentityHash;(function(o){const e=new WeakMap;let t=0;function r(s){let a=e.get(s);return a===void 0&&(a=++t,e.set(s,a)),a}o.of=r})(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,r,s,a,l){this._logService=e,this._name=t,this._registry=r,this._default=s,this._min=a,this._max=l,this._cache=new LRUCache(50,.7)}_key(e){return e.id+this._registry.all(e).reduce((t,r)=>doHash(IdentityHash.of(r),t),0)}get(e){const t=this._key(e),r=this._cache.get(t);return r?clamp(r.value,this._min,this._max):this.default()}update(e,t){const r=this._key(e);let s=this._cache.get(r);s||(s=new SlidingWindowAverage(6),this._cache.set(r,s));const a=clamp(s.update(t),this._min,this._max);return matchesScheme(e.uri,"output")||this._logService.trace("[DEBOUNCE: ".concat(this._name,"] for ").concat(e.uri.toString()," is ").concat(a,"ms")),a}_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,r){var u,g,f;const s=(u=r==null?void 0:r.min)!=null?u:50,a=(g=r==null?void 0:r.max)!=null?g:s**2,l=(f=r==null?void 0:r.key)!=null?f:void 0,c="".concat(IdentityHash.of(e),",").concat(s).concat(l?","+l:"");let d=this._data.get(c);return d||(this._isDev?(this._logService.debug("[DEBOUNCE: ".concat(t,"] is disabled in developed mode")),d=new NullDebounceInformation(s*1.5)):d=new FeatureDebounceInformation(this._logService,t,e,this._overallAverage()|0||s*1.5,s,a),this._data.set(c,d)),d}_overallAverage(){const e=new MovingAverage;for(const t of this._data.values())e.update(t.default());return e.value}};LanguageFeatureDebounceService=__decorate$2j([__param$2d(0,ILogService),__param$2d(1,IEnvironmentService)],LanguageFeatureDebounceService);registerSingleton(ILanguageFeatureDebounceService,LanguageFeatureDebounceService,1);var __decorate$2i=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2c=function(o,e){return function(t,r){e(t,r,o)}},mr;let CodeLensContribution=(mr=class{constructor(e,t,r,s,a,l){this._editor=e,this._languageFeaturesService=t,this._commandService=s,this._notificationService=a,this._codeLensCache=l,this._disposables=new DisposableStore$1,this._localToDispose=new DisposableStore$1,this._lenses=[],this._oldCodeLensModels=new DisposableStore$1,this._provideCodeLensDebounce=r.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=r.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(c=>{(c.hasChanged(59)||c.hasChanged(25)||c.hasChanged(24))&&this._updateLensStyle(),c.hasChanged(23)&&this._onModelChange()})),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var e;this._localDispose(),this._localToDispose.dispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(e=this._currentCodeLensModel)==null||e.dispose()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(75)/this._editor.getOption(61));let t=this._editor.getOption(25);return(!t||t<5)&&(t=this._editor.getOption(61)*.9|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),r=this._editor.getOption(24),s=this._editor.getOption(59),{style:a}=this._editor.getContainerDomNode();a.setProperty("--vscode-editorCodeLens-lineHeight","".concat(e,"px")),a.setProperty("--vscode-editorCodeLens-fontSize","".concat(t,"px")),a.setProperty("--vscode-editorCodeLens-fontFeatureSettings",s.fontFeatureSettings),r&&(a.setProperty("--vscode-editorCodeLens-fontFamily",r),a.setProperty("--vscode-editorCodeLens-fontFamilyDefault",EDITOR_FONT_DEFAULTS.fontFamily)),this._editor.changeViewZones(l=>{for(const c of this._lenses)c.updateHeight(e,l)})}_localDispose(){var e,t,r;(e=this._getCodeLensModelPromise)==null||e.cancel(),this._getCodeLensModelPromise=void 0,(t=this._resolveCodeLensesPromise)==null||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(r=this._currentCodeLensModel)==null||r.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e||!this._editor.getOption(23)||e.isTooLargeForTokenization())return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e)){t&&disposableTimeout(()=>{const s=this._codeLensCache.get(e);t===s&&(this._codeLensCache.delete(e),this._onModelChange())},30*1e3,this._localToDispose);return}for(const s of this._languageFeaturesService.codeLensProvider.all(e))if(typeof s.onDidChange=="function"){const a=s.onDidChange(()=>r.schedule());this._localToDispose.add(a)}const r=new RunOnceScheduler(()=>{var a;const s=Date.now();(a=this._getCodeLensModelPromise)==null||a.cancel(),this._getCodeLensModelPromise=createCancelablePromise(l=>getCodeLensModel(this._languageFeaturesService.codeLensProvider,e,l)),this._getCodeLensModelPromise.then(l=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=l,this._codeLensCache.put(e,l);const c=this._provideCodeLensDebounce.update(e,Date.now()-s);r.delay=c,this._renderCodeLensSymbols(l),this._resolveCodeLensesInViewportSoon()},onUnexpectedError)},this._provideCodeLensDebounce.get(e));this._localToDispose.add(r),this._localToDispose.add(toDisposable(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var s;this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{const c=[];let d=-1;this._lenses.forEach(g=>{!g.isValid()||d===g.getLineNumber()?c.push(g):(g.update(l),d=g.getLineNumber())});const u=new CodeLensHelper;c.forEach(g=>{g.dispose(u,l),this._lenses.splice(this._lenses.indexOf(g),1)}),u.commit(a)})}),r.schedule(),this._resolveCodeLensesScheduler.cancel(),(s=this._resolveCodeLensesPromise)==null||s.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorText(()=>{r.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{r.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(s=>{s.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(toDisposable(()=>{if(this._editor.getModel()){const s=StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{this._disposeAllLenses(a,l)})}),s.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(s=>{if(s.target.type!==9)return;let a=s.target.element;if((a==null?void 0:a.tagName)==="SPAN"&&(a=a.parentElement),(a==null?void 0:a.tagName)==="A")for(const l of this._lenses){const c=l.getCommand(a);if(c){this._commandService.executeCommand(c.id,...c.arguments||[]).catch(d=>this._notificationService.error(d));break}}})),r.schedule()}_disposeAllLenses(e,t){const r=new CodeLensHelper;for(const s of this._lenses)s.dispose(r,t);e&&r.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),r=[];let s;for(const c of e.lenses){const d=c.symbol.range.startLineNumber;d<1||d>t||(s&&s[s.length-1].symbol.range.startLineNumber===d?s.push(c):(s=[c],r.push(s)))}if(!r.length&&!this._lenses.length)return;const a=StableEditorScrollState.capture(this._editor),l=this._getLayoutInfo();this._editor.changeDecorations(c=>{this._editor.changeViewZones(d=>{const u=new CodeLensHelper;let g=0,f=0;for(;f<r.length&&g<this._lenses.length;){const m=r[f][0].symbol.range.startLineNumber,_=this._lenses[g].getLineNumber();_<m?(this._lenses[g].dispose(u,d),this._lenses.splice(g,1)):_===m?(this._lenses[g].updateCodeLensSymbols(r[f],u),f++,g++):(this._lenses.splice(g,0,new CodeLensWidget(r[f],this._editor,u,d,l.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),g++,f++)}for(;g<this._lenses.length;)this._lenses[g].dispose(u,d),this._lenses.splice(g,1);for(;f<r.length;)this._lenses.push(new CodeLensWidget(r[f],this._editor,u,d,l.codeLensHeight,()=>this._resolveCodeLensesInViewportSoon())),f++;u.commit(c)})}),a.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var l;(l=this._resolveCodeLensesPromise)==null||l.cancel(),this._resolveCodeLensesPromise=void 0;const e=this._editor.getModel();if(!e)return;const t=[],r=[];if(this._lenses.forEach(c=>{const d=c.computeIfNecessary(e);d&&(t.push(d),r.push(c))}),t.length===0){this._oldCodeLensModels.clear();return}const s=Date.now(),a=createCancelablePromise(c=>{const d=t.map((u,g)=>{const f=new Array(u.length),m=u.map((_,v)=>!_.symbol.command&&typeof _.provider.resolveCodeLens=="function"?Promise.resolve(_.provider.resolveCodeLens(e,_.symbol,c)).then(b=>{f[v]=b},onUnexpectedExternalError):(f[v]=_.symbol,Promise.resolve(void 0)));return Promise.all(m).then(()=>{!c.isCancellationRequested&&!r[g].isDisposed()&&r[g].updateCommands(f)})});return Promise.all(d)});this._resolveCodeLensesPromise=a,this._resolveCodeLensesPromise.then(()=>{const c=this._resolveCodeLensesDebounce.update(e,Date.now()-s);this._resolveCodeLensesScheduler.delay=c,this._currentCodeLensModel&&this._codeLensCache.put(e,this._currentCodeLensModel),this._oldCodeLensModels.clear(),a===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},c=>{onUnexpectedError(c),a===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){var e;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,(e=this._currentCodeLensModel)!=null&&e.isDisposed?void 0:this._currentCodeLensModel}},mr.ID="css.editor.codeLens",mr);CodeLensContribution=__decorate$2i([__param$2c(1,ILanguageFeaturesService),__param$2c(2,ILanguageFeatureDebounceService),__param$2c(3,ICommandService),__param$2c(4,INotificationService),__param$2c(5,ICodeLensCache)],CodeLensContribution);registerEditorContribution(CodeLensContribution.ID,CodeLensContribution,1);registerEditorAction(class extends EditorAction{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:EditorContextKeys.hasCodeLensProvider,label:localize2(884,"Show CodeLens Commands for Current Line")})}async run(e,t){if(!t.hasModel())return;const r=e.get(IQuickInputService),s=e.get(ICommandService),a=e.get(INotificationService),l=t.getSelection().positionLineNumber,c=t.getContribution(CodeLensContribution.ID);if(!c)return;const d=await c.getModel();if(!d)return;const u=[];for(const m of d.lenses)m.symbol.command&&m.symbol.range.startLineNumber===l&&u.push({label:m.symbol.command.title,command:m.symbol.command});if(u.length===0)return;const g=await r.pick(u,{canPickMany:!1,placeHolder:localize(883,"Select a command")});if(!g)return;let f=g.command;if(d.isDisposed){const m=await c.getModel(),_=m==null?void 0:m.lenses.find(v=>{var b;return v.symbol.range.startLineNumber===l&&((b=v.symbol.command)==null?void 0:b.title)===f.title});if(!_||!_.symbol.command)return;f=_.symbol.command}try{await s.executeCommand(f.id,...f.arguments||[])}catch(m){a.error(m)}}});const editorFeatures=[];function registerEditorFeature(o){editorFeatures.push(o)}function getEditorFeatures(){return editorFeatures.slice(0)}class HoverRangeAnchor{constructor(e,t,r,s){this.priority=e,this.range=t,this.initialMousePosX=r,this.initialMousePosY=s,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,r,s,a,l){this.priority=e,this.owner=t,this.range=r,this.initialMousePosX=s,this.initialMousePosY=a,this.supportsMarkerHover=l,this.type=2}equals(e){return e.type===2&&this.owner===e.owner}canAdoptVisibleHover(e,t){return e.type===2&&this.owner===e.owner}}class RenderedHoverParts{constructor(e,t){this.renderedHoverParts=e,this.disposables=t}dispose(){var e;for(const t of this.renderedHoverParts)t.dispose();(e=this.disposables)==null||e.dispose()}}const HoverParticipantRegistry=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};var __decorate$2h=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2b=function(o,e){return function(t,r){e(t,r,o)}};let DefaultDocumentColorProvider=class{constructor(e){this._editorWorkerService=e}async provideDocumentColors(e,t){return this._editorWorkerService.computeDefaultDocumentColors(e.uri)}provideColorPresentations(e,t,r){const s=t.range,a=t.color,l=a.alpha,c=new Color(new RGBA$1(Math.round(255*a.red),Math.round(255*a.green),Math.round(255*a.blue),l)),d=l?Color.Format.CSS.formatRGBA(c):Color.Format.CSS.formatRGB(c),u=l?Color.Format.CSS.formatHSLA(c):Color.Format.CSS.formatHSL(c),g=l?Color.Format.CSS.formatHexA(c):Color.Format.CSS.formatHex(c),f=[];return f.push({label:d,textEdit:{range:s,text:d}}),f.push({label:u,textEdit:{range:s,text:u}}),f.push({label:g,textEdit:{range:s,text:g}}),f}};DefaultDocumentColorProvider=__decorate$2h([__param$2b(0,IEditorWorkerService)],DefaultDocumentColorProvider);let DefaultDocumentColorProviderFeature=class extends Disposable$1{constructor(e,t){super(),this._register(e.colorProvider.register("*",new DefaultDocumentColorProvider(t)))}};DefaultDocumentColorProviderFeature=__decorate$2h([__param$2b(0,ILanguageFeaturesService),__param$2b(1,IEditorWorkerService)],DefaultDocumentColorProviderFeature);async function getColors(o,e,t,r="auto"){return _findColorData(new ColorDataCollector,o,e,t,r)}function getColorPresentations(o,e,t,r){return Promise.resolve(t.provideColorPresentations(o,e,r))}class ColorDataCollector{constructor(){}async compute(e,t,r,s){const a=await e.provideDocumentColors(t,r);if(Array.isArray(a))for(const l of a)s.push({colorInfo:l,provider:e});return Array.isArray(a)}}class ExtColorDataCollector{constructor(){}async compute(e,t,r,s){const a=await e.provideDocumentColors(t,r);if(Array.isArray(a))for(const l of a)s.push({range:l.range,color:[l.color.red,l.color.green,l.color.blue,l.color.alpha]});return Array.isArray(a)}}class ColorPresentationsCollector{constructor(e){this.colorInfo=e}async compute(e,t,r,s){const a=await e.provideColorPresentations(t,this.colorInfo,CancellationToken.None);return Array.isArray(a)&&s.push(...a),Array.isArray(a)}}async function _findColorData(o,e,t,r,s){let a=!1,l;const c=[],d=e.ordered(t);for(let u=d.length-1;u>=0;u--){const g=d[u];if(s!=="always"&&g instanceof DefaultDocumentColorProvider)l=g;else try{await o.compute(g,t,r,c)&&(a=!0)}catch(f){onUnexpectedExternalError(f)}}return a?c:l&&s!=="never"?(await o.compute(l,t,r,c),c):[]}function _setupColorCommand(o,e){const{colorProvider:t}=o.get(ILanguageFeaturesService),r=o.get(IModelService).getModel(e);if(!r)throw illegalArgument();const s=o.get(IConfigurationService).getValue("editor.defaultColorDecorators",{resource:e});return{model:r,colorProviderRegistry:t,defaultColorDecoratorsEnablement:s}}var __decorate$2g=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2a=function(o,e){return function(t,r){e(t,r,o)}},ColorDetector_1;const ColorDecorationInjectedTextMarker=Object.create({});var vi;let ColorDetector=(vi=class extends Disposable$1{constructor(e,t,r,s){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=r,this._localToDispose=this._register(new DisposableStore$1),this._decorationsIds=[],this._colorDatas=new Map,this._decoratorLimitReporter=this._register(new DecoratorLimitReporter),this._colorDecorationClassRefs=this._register(new DisposableStore$1),this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=this._register(new DynamicCssRules(this._editor)),this._debounceInformation=s.for(r.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(r.colorProvider.onDidChange(()=>this.updateColors())),this._register(e.onDidChangeConfiguration(a=>{const l=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167);const c=l!==this._isColorDecoratorsEnabled||a.hasChanged(27),d=a.hasChanged(167);(c||d)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._defaultColorDecoratorsEnablement=this._editor.getOption(167),this.updateColors()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),r=this._configurationService.getValue(t);if(r&&typeof r=="object"){const s=r.colorDecorators;if(s&&s.enable!==void 0&&!s.enable)return s.enable}return this._editor.getOption(26)}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())}async beginCompute(){this._computePromise=createCancelablePromise(async e=>{const t=this._editor.getModel();if(!t)return[];const r=new StopWatch(!1),s=await getColors(this._languageFeaturesService.colorProvider,t,e,this._defaultColorDecoratorsEnablement);return this._debounceInformation.update(t,r.elapsed()),s});try{const e=await 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(r=>({range:{startLineNumber:r.colorInfo.range.startLineNumber,startColumn:r.colorInfo.range.startColumn,endLineNumber:r.colorInfo.range.endLineNumber,endColumn:r.colorInfo.range.endColumn},options:ModelDecorationOptions.EMPTY}));this._editor.changeDecorations(r=>{this._decorationsIds=r.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((s,a)=>this._colorDatas.set(s,e[a]))})}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],r=this._editor.getOption(27);for(let a=0;a<e.length&&t.length<r;a++){const{red:l,green:c,blue:d,alpha:u}=e[a].colorInfo.color,g=new RGBA$1(Math.round(l*255),Math.round(c*255),Math.round(d*255),u),f="rgba(".concat(g.r,", ").concat(g.g,", ").concat(g.b,", ").concat(g.a,")"),m=this._colorDecorationClassRefs.add(this._ruleFactory.createClassNameRef({backgroundColor:f}));t.push({range:{startLineNumber:e[a].colorInfo.range.startLineNumber,startColumn:e[a].colorInfo.range.startColumn,endLineNumber:e[a].colorInfo.range.endLineNumber,endColumn:e[a].colorInfo.range.endColumn},options:{description:"colorDetector",before:{content:noBreakWhitespace,inlineClassName:"".concat(m.className," colorpicker-color-decoration"),inlineClassNameAffectsLetterSpacing:!0,attachedData:ColorDecorationInjectedTextMarker}}})}const s=r<e.length?r:!1;this._decoratorLimitReporter.update(e.length,s),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 r=t.getDecorationsInRange(Range$2.fromPositions(e,e)).filter(s=>this._colorDatas.has(s.id));return r.length===0?null:this._colorDatas.get(r[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}},ColorDetector_1=vi,vi.ID="editor.contrib.colorDetector",vi.RECOMPUTE_TIME=1e3,vi);ColorDetector=ColorDetector_1=__decorate$2g([__param$2a(1,IConfigurationService),__param$2a(2,ILanguageFeaturesService),__param$2a(3,ILanguageFeatureDebounceService)],ColorDetector);class DecoratorLimitReporter extends Disposable$1{constructor(){super(...arguments),this._onDidChange=this._register(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())}}const SHOW_OR_FOCUS_HOVER_ACTION_ID="editor.action.showHover",SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID="editor.action.showDefinitionPreviewHover",HIDE_HOVER_ACTION_ID="editor.action.hideHover",SCROLL_UP_HOVER_ACTION_ID="editor.action.scrollUpHover",SCROLL_DOWN_HOVER_ACTION_ID="editor.action.scrollDownHover",SCROLL_LEFT_HOVER_ACTION_ID="editor.action.scrollLeftHover",SCROLL_RIGHT_HOVER_ACTION_ID="editor.action.scrollRightHover",PAGE_UP_HOVER_ACTION_ID="editor.action.pageUpHover",PAGE_DOWN_HOVER_ACTION_ID="editor.action.pageDownHover",GO_TO_TOP_HOVER_ACTION_ID="editor.action.goToTopHover",GO_TO_BOTTOM_HOVER_ACTION_ID="editor.action.goToBottomHover",INCREASE_HOVER_VERBOSITY_ACTION_ID="editor.action.increaseHoverVerbosityLevel",INCREASE_HOVER_VERBOSITY_ACTION_LABEL=localize(1102,"Increase Hover Verbosity Level"),DECREASE_HOVER_VERBOSITY_ACTION_ID="editor.action.decreaseHoverVerbosityLevel",DECREASE_HOVER_VERBOSITY_ACTION_LABEL=localize(1103,"Decrease Hover Verbosity Level"),inlineSuggestCommitId="editor.action.inlineSuggest.commit",showPreviousInlineSuggestionActionId="editor.action.inlineSuggest.showPrevious",showNextInlineSuggestionActionId="editor.action.inlineSuggest.showNext",jumpToNextInlineEditId="editor.action.inlineSuggest.jump",hideInlineCompletionId="editor.action.inlineSuggest.hide",toggleShowCollapsedId="editor.action.inlineSuggest.toggleShowCollapsed";var __decorate$2f=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$29=function(o,e){return function(t,r){e(t,r,o)}},InlineSuggestionHintsContentWidget_1;let InlineCompletionsHintsWidget=class extends Disposable$1{constructor(e,t,r){super(),this.editor=e,this.model=t,this.instantiationService=r,this.alwaysShowToolbar=observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).showToolbar==="always"),this.sessionPosition=void 0,this.position=derived(this,s=>{var d,u,g;const a=(d=this.model.read(s))==null?void 0:d.primaryGhostText.read(s);if(!this.alwaysShowToolbar.read(s)||!a||a.parts.length===0)return this.sessionPosition=void 0,null;const l=a.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==a.lineNumber&&(this.sessionPosition=void 0);const c=new Position$1(a.lineNumber,Math.min(l,(g=(u=this.sessionPosition)==null?void 0:u.column)!=null?g:Number.MAX_SAFE_INTEGER));return this.sessionPosition=c,c}),this._register(autorunWithStore((s,a)=>{const l=this.model.read(s);if(!l||!this.alwaysShowToolbar.read(s))return;const c=derived(u=>{const g=u.store.add(this.instantiationService.createInstance(InlineSuggestionHintsContentWidget.hot.read(u),this.editor,!0,this.position,l.selectedInlineCompletionIndex,l.inlineCompletionsCount,l.activeCommands,l.warning,()=>{}));return e.addContentWidget(g),u.store.add(toDisposable(()=>e.removeContentWidget(g))),u.store.add(autorun(f=>{this.position.read(f)&&l.lastTriggerKind.read(f)!==InlineCompletionTriggerKind$1.Explicit&&l.triggerExplicitly()})),g}),d=derivedObservableWithCache(this,(u,g)=>!!this.position.read(u)||!!g);a.add(autorun(u=>{d.read(u)&&c.read(u)}))}))}};InlineCompletionsHintsWidget=__decorate$2f([__param$29(2,IInstantiationService)],InlineCompletionsHintsWidget);const inlineSuggestionHintsNextIcon=registerIcon("inline-suggestion-hints-next",Codicon.chevronRight,localize(1207,"Icon for show next parameter hint.")),inlineSuggestionHintsPreviousIcon=registerIcon("inline-suggestion-hints-previous",Codicon.chevronLeft,localize(1208,"Icon for show previous parameter hint."));var Ht;let InlineSuggestionHintsContentWidget=(Ht=class extends Disposable$1{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(e,t,r){const s=new Action(e,t,r,!0,()=>this._commandService.executeCommand(e)),a=this.keybindingService.lookupKeybinding(e,this._contextKeyService);let l=t;return a&&(l=localize(1209,"{0} ({1})",t,a.getLabel())),s.tooltip=l,s}constructor(e,t,r,s,a,l,c,d,u,g,f,m,_){super(),this.editor=e,this.withBorder=t,this._position=r,this._currentSuggestionIdx=s,this._suggestionCount=a,this._extraCommands=l,this._warning=c,this._relayout=d,this._commandService=u,this.keybindingService=f,this._contextKeyService=m,this._menuService=_,this.id="InlineSuggestionHintsContentWidget".concat(InlineSuggestionHintsContentWidget_1.id++),this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._warningMessageContentNode=derived(v=>{const b=this._warning.read(v);return b?typeof b.message=="string"?b.message:v.store.add(renderMarkdown$1(b.message)).element:void 0}),this._warningMessageNode=n.div({class:"warningMessage",style:{maxWidth:400,margin:4,marginBottom:4,display:derived(v=>this._warning.read(v)?"block":"none")}},[this._warningMessageContentNode]).keepUpdated(this._store),this.nodes=h("div.inlineSuggestionsHints",{className:this.withBorder?"monaco-hover monaco-hover-content":""},[this._warningMessageNode.element,h("div@toolBar")]),this.previousAction=this._register(this.createCommandAction(showPreviousInlineSuggestionActionId,localize(1210,"Previous"),ThemeIcon.asClassName(inlineSuggestionHintsPreviousIcon))),this.availableSuggestionCountAction=this._register(new Action("inlineSuggestionHints.availableSuggestionCount","",void 0,!1)),this.nextAction=this._register(this.createCommandAction(showNextInlineSuggestionActionId,localize(1211,"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._register(autorun(v=>{this._warningMessageContentNode.read(v),this._warningMessageNode.readEffect(v),this._relayout()})),this.toolBar=this._register(g.createInstance(CustomizedMenuWorkbenchToolBar,this.nodes.toolBar,MenuId.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:v=>v.startsWith("primary")},actionViewItemProvider:(v,b)=>{if(v instanceof MenuItemAction)return g.createInstance(StatusBarViewItem,v,void 0);if(v===this.availableSuggestionCountAction){const C=new ActionViewItemWithClassName(void 0,v,{label:!0,icon:!1});return C.setClass("availableSuggestionCount"),C}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(v=>{InlineSuggestionHintsContentWidget_1._dropDownVisible=v})),this._register(autorun(v=>{this._position.read(v),this.editor.layoutContentWidget(this)})),this._register(autorun(v=>{const b=this._suggestionCount.read(v),C=this._currentSuggestionIdx.read(v);b!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label="".concat(C+1,"/").concat(b)):this.clearAvailableSuggestionCountLabelDebounced.schedule(),b!==void 0&&b>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(autorun(v=>{const C=this._extraCommands.read(v).map(y=>({class:void 0,id:y.command.id,enabled:!0,tooltip:y.command.tooltip||"",label:y.command.title,run:S=>this._commandService.executeCommand(y.command.id)}));for(const[y,S]of this.inlineCompletionsActionsMenus.getActions())for(const w of S)w instanceof MenuItemAction&&C.push(w);C.length>0&&C.unshift(new Separator),this.toolBar.setAdditionalSecondaryActions(C)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}},InlineSuggestionHintsContentWidget_1=Ht,Ht.hot=createHotClass(Ht),Ht._dropDownVisible=!1,Ht.id=0,Ht);InlineSuggestionHintsContentWidget=InlineSuggestionHintsContentWidget_1=__decorate$2f([__param$29(8,ICommandService),__param$29(9,IInstantiationService),__param$29(10,IKeybindingService),__param$29(11,IContextKeyService),__param$29(12,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)}updateTooltip(){}}class StatusBarViewItem extends MenuEntryActionViewItem{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService,!0);if(!e)return super.updateLabel();if(this.label){const t=h("div.keybinding").root;this._register(new KeybindingLabel(t,OS,{disableTitle:!0,...unthemedKeybindingLabelOptions})).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}}let CustomizedMenuWorkbenchToolBar=class extends WorkbenchToolBar{constructor(e,t,r,s,a,l,c,d,u){super(e,{resetMenu:t,...r},s,a,l,c,d,u),this.menuId=t,this.options2=r,this.menuService=s,this.contextKeyService=a,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this.additionalPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var r,s,a,l,c,d,u;const{primary:e,secondary:t}=getActionBarActions(this.menu.getActions((r=this.options2)==null?void 0:r.menuOptions),(a=(s=this.options2)==null?void 0:s.toolbarOptions)==null?void 0:a.primaryGroup,(c=(l=this.options2)==null?void 0:l.toolbarOptions)==null?void 0:c.shouldInlineSubmenu,(u=(d=this.options2)==null?void 0:d.toolbarOptions)==null?void 0:u.useSeparatorsInPrimaryActions);t.push(...this.additionalActions),e.unshift(...this.prependedPrimaryActions),e.push(...this.additionalPrimaryActions),this.setActions(e,t)}setPrependedPrimaryActions(e){equals$2(this.prependedPrimaryActions,e,(t,r)=>t===r)||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){equals$2(this.additionalActions,e,(t,r)=>t===r)||(this.additionalActions=e,this.updateToolbar())}};CustomizedMenuWorkbenchToolBar=__decorate$2f([__param$29(3,IMenuService),__param$29(4,IContextKeyService),__param$29(5,IContextMenuService),__param$29(6,IKeybindingService),__param$29(7,ICommandService),__param$29(8,ITelemetryService)],CustomizedMenuWorkbenchToolBar);function isMousePositionWithinElement(o,e,t){const r=getDomNodePagePosition(o);return!(e<r.left||e>r.left+r.width||t<r.top||t>r.top+r.height)}class HoverResult{constructor(e,t,r,s){this.value=e,this.isComplete=t,this.hasLoadingMessage=r,this.options=s}}class HoverOperation extends Disposable$1{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new Emitter$1),this.onResult=this._onResult.event,this._asyncComputationScheduler=this._register(new Debouncer(r=>this._triggerAsyncComputation(r),0)),this._syncComputationScheduler=this._register(new Debouncer(r=>this._triggerSyncComputation(r),0)),this._loadingMessageScheduler=this._register(new Debouncer(r=>this._triggerLoadingMessage(r),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._options=void 0,super.dispose()}get _hoverTime(){return this._editor.getOption(69).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e,t){this._options=t,this._state=e,this._fireResult(t)}_triggerAsyncComputation(e){this._setState(2,e),this._syncComputationScheduler.schedule(e,this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=createCancelableAsyncIterableProducer(t=>this._computer.computeAsync(e,t)),(async()=>{try{for await(const t of this._asyncIterable)t&&(this._result.push(t),this._fireResult(e));this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0,e)}catch(t){onUnexpectedError(t)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(e){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync(e))),this._setState(this._asyncIterableDone?0:3,e)}_triggerLoadingMessage(e){this._state===3&&this._setState(4,e)}_fireResult(e){if(this._state===1||this._state===2)return;const t=this._state===0,r=this._state===4;this._onResult.fire(new HoverResult(this._result.slice(0),t,r,e))}start(e,t){if(e===0)this._state===0&&(this._setState(1,t),this._asyncComputationScheduler.schedule(t,this._firstWaitTime),this._loadingMessageScheduler.schedule(t,this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(t),this._syncComputationScheduler.cancel(),this._triggerSyncComputation(t);break;case 2:this._syncComputationScheduler.cancel(),this._triggerSyncComputation(t);break}}cancel(){this._asyncComputationScheduler.cancel(),this._syncComputationScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._options=void 0,this._state=0}get options(){return this._options}}class Debouncer extends Disposable$1{constructor(e,t){super(),this._scheduler=this._register(new RunOnceScheduler(()=>e(this._options),t))}schedule(e,t){this._options=e,this._scheduler.schedule(t)}cancel(){this._scheduler.cancel()}}class ResizableHTMLElement{get onDidWillResize(){return this._onDidWillResize.event}get onDidResize(){return this._onDidResize.event}constructor(){this._onDidWillResize=new Emitter$1,this._onDidResize=new Emitter$1,this._sashListener=new DisposableStore$1,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,r=0;this._sashListener.add(Event$1.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{e===void 0&&(this._onDidWillResize.fire(),e=this._size,t=0,r=0)})),this._sashListener.add(Event$1.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{e!==void 0&&(e=void 0,t=0,r=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(s=>{e&&(r=s.currentX-s.startX,this.layout(e.height+t,e.width+r),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(s=>{e&&(r=-(s.currentX-s.startX),this.layout(e.height+t,e.width+r),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(s=>{e&&(t=-(s.currentY-s.startY),this.layout(e.height+t,e.width+r),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(s=>{e&&(t=s.currentY-s.startY,this.layout(e.height+t,e.width+r),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(Event$1.any(this._eastSash.onDidReset,this._westSash.onDidReset)(s=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(Event$1.any(this._northSash.onDidReset,this._southSash.onDidReset)(s=>{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,r,s){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=r?3:0,this._westSash.state=s?3:0}layout(e=this.size.height,t=this.size.width){const{height:r,width:s}=this._minSize,{height:a,width:l}=this._maxSize;e=Math.max(r,Math.min(a,e)),t=Math.max(s,Math.min(l,t));const c=new Dimension(t,e);Dimension.equals(c,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=c,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$1{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(r=>{this._resize(new Dimension(r.dimension.width,r.dimension.height)),r.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.position?Position$1.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(e){const t=this._editor.getDomNode(),r=this._editor.getScrolledVisiblePosition(e);return!t||!r?void 0:getDomNodePagePosition(t).top+r.top-TOP_HEIGHT}_availableVerticalSpaceBelow(e){const t=this._editor.getDomNode(),r=this._editor.getScrolledVisiblePosition(e);if(!t||!r)return;const s=getDomNodePagePosition(t),a=getClientArea(t.ownerDocument.body),l=s.top+r.top+r.height;return a.height-l-BOTTOM_HEIGHT}_findPositionPreference(e,t){var d,u;const r=Math.min((d=this._availableVerticalSpaceBelow(t))!=null?d:1/0,e),s=Math.min((u=this._availableVerticalSpaceAbove(t))!=null?u:1/0,e),a=Math.min(Math.max(s,r),e),l=Math.min(e,a);let c;return this._editor.getOption(69).above?c=l<=s?1:2:c=l<=r?2:1,c===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),c}_resize(e){this._resizableNode.layout(e.height,e.width)}}const $$j=$$m;let HoverWidget$1=class extends Disposable$1{constructor(e){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.classList.toggle("fade-in",!!e),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$1{static render(e,t,r){return new HoverAction(e,t,r)}constructor(e,t,r){super(),this.actionLabel=t.label,this.actionKeybindingLabel=r,this.actionContainer=append$2(e,$$j("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=append$2(this.actionContainer,$$j("a.action")),this.action.setAttribute("role","button"),t.iconClass&&append$2(this.action,$$j("span.icon")).classList.add(...t.iconClass.split(" ")),this.actionRenderedLabel=r?"".concat(t.label," (").concat(r,")"):t.label;const s=append$2(this.action,$$j("span"));s.textContent=this.actionRenderedLabel,this._store.add(new ClickAction(this.actionContainer,t.run)),this._store.add(new KeyDownAction(this.actionContainer,t.run,[3,10])),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(7,"Inspect this in the accessible view with {0}.",e):o?localize(8,"Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}class ClickAction extends Disposable$1{constructor(e,t){super(),this._register(addDisposableListener(e,EventType$1.CLICK,r=>{r.stopPropagation(),r.preventDefault(),t(e)}))}}class KeyDownAction extends Disposable$1{constructor(e,t,r){super(),this._register(addDisposableListener(e,EventType$1.KEY_DOWN,s=>{const a=new StandardKeyboardEvent(s);r.some(l=>a.equals(l))&&(s.stopPropagation(),s.preventDefault(),t(e))}))}}var __decorate$2e=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$28=function(o,e){return function(t,r){e(t,r,o)}},ContentHoverWidget_1;const HORIZONTAL_SCROLLING_BY=30;var bi;let ContentHoverWidget=(bi=class extends ResizableContentWidget{get isVisibleFromKeyboard(){var e;return((e=this._renderedHover)==null?void 0:e.source)===2}get isVisible(){var e;return(e=this._hoverVisibleKey.get())!=null?e:!1}get isFocused(){var e;return(e=this._hoverFocusedKey.get())!=null?e:!1}constructor(e,t,r,s,a){const l=e.getOption(75)+8,c=150,d=new Dimension(c,l);super(e,d),this._configurationService=r,this._accessibilityService=s,this._keybindingService=a,this._hover=this._register(new HoverWidget$1(!0)),this._onDidResize=this._register(new Emitter$1),this.onDidResize=this._onDidResize.event,this._onDidScroll=this._register(new Emitter$1),this.onDidScroll=this._onDidScroll.event,this._onContentsChanged=this._register(new Emitter$1),this.onContentsChanged=this._onContentsChanged.event,this._minimumSize=d,this._hoverVisibleKey=EditorContextKeys.hoverVisible.bindTo(t),this._hoverFocusedKey=EditorContextKeys.hoverFocused.bindTo(t),append$2(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._resizableNode.domNode.className="monaco-resizable-hover",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(g=>{g.hasChanged(59)&&this._updateFont()}));const u=this._register(trackFocus(this._resizableNode.domNode));this._register(u.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(u.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._register(this._hover.scrollbar.onScroll(g=>{this._onDidScroll.fire(g)})),this._setRenderedHover(void 0),this._editor.addContentWidget(this)}dispose(){var e;super.dispose(),(e=this._renderedHover)==null||e.dispose(),this._editor.removeContentWidget(this)}getId(){return ContentHoverWidget_1.ID}static _applyDimensions(e,t,r){const s=typeof t=="number"?"".concat(t,"px"):t,a=typeof r=="number"?"".concat(r,"px"):r;e.style.width=s,e.style.height=a}_setContentsDomNodeDimensions(e,t){const r=this._hover.contentsDomNode;return ContentHoverWidget_1._applyDimensions(r,e,t)}_setContainerDomNodeDimensions(e,t){const r=this._hover.containerDomNode;return ContentHoverWidget_1._applyDimensions(r,e,t)}_setScrollableElementDimensions(e,t){const r=this._hover.scrollbar.getDomNode();return ContentHoverWidget_1._applyDimensions(r,e,t)}_setHoverWidgetDimensions(e,t){this._setContainerDomNodeDimensions(e,t),this._setScrollableElementDimensions(e,t),this._setContentsDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,r){const s=typeof t=="number"?"".concat(t,"px"):t,a=typeof r=="number"?"".concat(r,"px"):r;e.style.maxWidth=s,e.style.maxHeight=a}_setHoverWidgetMaxDimensions(e,t){ContentHoverWidget_1._applyMaxDimensions(this._hover.contentsDomNode,e,t),ContentHoverWidget_1._applyMaxDimensions(this._hover.scrollbar.getDomNode(),e,t),ContentHoverWidget_1._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof e=="number"?"".concat(e,"px"):e),this._layoutContentWidget()}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions("none","none"),this._setHoverWidgetDimensions(e.width,e.height)}_updateResizableNodeMaxDimensions(){var r,s;const e=(r=this._findMaximumRenderingWidth())!=null?r:1/0,t=(s=this._findMaximumRenderingHeight())!=null?s:1/0;this._resizableNode.maxSize=new Dimension(e,t),this._setHoverWidgetMaxDimensions(e,t)}_resize(e){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),this._onDidResize.fire()}_findAvailableSpaceVertically(){var t;const e=(t=this._renderedHover)==null?void 0:t.showAtPosition;if(e)return this._positionPreference===1?this._availableVerticalSpaceAbove(e):this._availableVerticalSpaceBelow(e)}_findMaximumRenderingHeight(){const e=this._findAvailableSpaceVertically();if(!e)return;let r=this._hover.contentsDomNode.children.length-1;return Array.from(this._hover.contentsDomNode.children).forEach(s=>{r+=s.clientHeight}),Math.min(e,r)}_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;return e||this._hover.containerDomNode.clientWidth<t?getClientArea(this._hover.containerDomNode.ownerDocument.body).width-14:this._hover.containerDomNode.clientWidth}isMouseGettingCloser(e,t){if(!this._renderedHover)return!1;if(this._renderedHover.initialMousePosX===void 0||this._renderedHover.initialMousePosY===void 0)return this._renderedHover.initialMousePosX=e,this._renderedHover.initialMousePosY=t,!1;const r=getDomNodePagePosition(this.getDomNode());this._renderedHover.closestMouseDistance===void 0&&(this._renderedHover.closestMouseDistance=computeDistanceFromPointToRectangle(this._renderedHover.initialMousePosX,this._renderedHover.initialMousePosY,r.left,r.top,r.width,r.height));const s=computeDistanceFromPointToRectangle(e,t,r.left,r.top,r.width,r.height);return s>this._renderedHover.closestMouseDistance+4?!1:(this._renderedHover.closestMouseDistance=Math.min(this._renderedHover.closestMouseDistance,s),!0)}_setRenderedHover(e){var t;(t=this._renderedHover)==null||t.dispose(),this._renderedHover=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle("hidden",!e)}_updateFont(){const{fontSize:e,lineHeight:t}=this._editor.getOption(59),r=this._hover.contentsDomNode;r.style.fontSize="".concat(e,"px"),r.style.lineHeight="".concat(t/e),Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(a=>this._editor.applyFontInfo(a))}_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,750,ContentHoverWidget_1._lastDimensions.width);this._resizableNode.maxSize=new Dimension(t,e),this._setHoverWidgetMaxDimensions(t,e)}_render(e){this._setRenderedHover(e),this._updateFont(),this._updateContent(e.domNode),this.handleContentsChanged(),this._editor.render()}getPosition(){var e;return this._renderedHover?{position:this._renderedHover.showAtPosition,secondaryPosition:this._renderedHover.showAtSecondaryPosition,positionAffinity:this._renderedHover.shouldAppearBeforeContent?3:void 0,preference:[(e=this._positionPreference)!=null?e:1]}:null}show(e){var l,c,d;if(!this._editor||!this._editor.hasModel())return;this._render(e);const t=getTotalHeight(this._hover.containerDomNode),r=e.showAtPosition;this._positionPreference=(l=this._findPositionPreference(t,r))!=null?l:1,this.handleContentsChanged(),e.shouldFocus&&this._hover.containerDomNode.focus(),this._onDidResize.fire();const a=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&getHoverAccessibleViewHint(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(d=(c=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))==null?void 0:c.getAriaLabel())!=null?d:"");a&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+a)}hide(){if(!this._renderedHover)return;const e=this._renderedHover.shouldFocus||this._hoverFocusedKey.get();this._setRenderedHover(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"),this._updateMaxDimensions()}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)}handleContentsChanged(){var s;this._removeConstraintsRenderNormally();const e=this._hover.contentsDomNode;let t=getTotalHeight(e),r=getTotalWidth(e)+2;if(this._resizableNode.layout(t,r),this._setHoverWidgetDimensions(r,t),t=getTotalHeight(e),r=getTotalWidth(e),this._contentWidth=r,this._updateMinimumWidth(),this._resizableNode.layout(t,r),(s=this._renderedHover)!=null&&s.showAtPosition){const a=getTotalHeight(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(a,this._renderedHover.showAtPosition)}this._layoutContentWidget(),this._onContentsChanged.fire()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(59);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(59);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_1=bi,bi.ID="editor.contrib.resizableContentHoverWidget",bi._lastDimensions=new Dimension(0,0),bi);ContentHoverWidget=ContentHoverWidget_1=__decorate$2e([__param$28(1,IContextKeyService),__param$28(2,IConfigurationService),__param$28(3,IAccessibilityService),__param$28(4,IKeybindingService)],ContentHoverWidget);function computeDistanceFromPointToRectangle(o,e,t,r,s,a){const l=t+s/2,c=r+a/2,d=Math.max(Math.abs(o-l)-s/2,0),u=Math.max(Math.abs(e-c)-a/2,0);return Math.sqrt(d*d+u*u)}class ContentHoverComputer{constructor(e,t){this._editor=e,this._participants=t}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];const r=e.getModel(),s=t.range.startLineNumber;if(s>r.getLineCount())return[];const a=r.getLineMaxColumn(s);return e.getLineDecorations(s).filter(l=>{if(l.options.isWholeLine)return!0;const c=l.range.startLineNumber===s?l.range.startColumn:1,d=l.range.endLineNumber===s?l.range.endColumn:a;if(l.options.showIfCollapsed){if(c>t.range.startColumn+1||t.range.endColumn-1>d)return!1}else if(c>t.range.startColumn||t.range.endColumn>d)return!1;return!0})}computeAsync(e,t){const r=e.anchor;if(!this._editor.hasModel()||!r)return AsyncIterableProducer.EMPTY;const s=ContentHoverComputer._getLineDecorations(this._editor,r);return AsyncIterableProducer.merge(this._participants.map(a=>a.computeAsync?a.computeAsync(r,s,e.source,t):AsyncIterableProducer.EMPTY))}computeSync(e){if(!this._editor.hasModel())return[];const t=e.anchor,r=ContentHoverComputer._getLineDecorations(this._editor,t);let s=[];for(const a of this._participants)s=s.concat(a.computeSync(t,r,e.source));return coalesce(s)}}class ContentHoverResult{constructor(e,t,r){this.hoverParts=e,this.isComplete=t,this.options=r}filter(e){const t=this.hoverParts.filter(r=>r.isValidForHoverAnchor(e));return t.length===this.hoverParts.length?this:new FilteredContentHoverResult(this,t,this.isComplete,this.options)}}class FilteredContentHoverResult extends ContentHoverResult{constructor(e,t,r,s){super(t,r,s),this.original=e}filter(e){return this.original.filter(e)}}var __decorate$2d=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$27=function(o,e){return function(t,r){e(t,r,o)}};const $$i=$$m;let EditorHoverStatusBar=class extends Disposable$1{get hasContent(){return this._hasContent}constructor(e,t){super(),this._keybindingService=e,this._hoverService=t,this.actions=[],this._hasContent=!1,this.hoverElement=$$i("div.hover-row.status-bar"),this.hoverElement.tabIndex=0,this.actionsElement=append$2(this.hoverElement,$$i("div.actions"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),r=t?t.getLabel():null;this._hasContent=!0;const s=this._register(HoverAction.render(this.actionsElement,e,r));return this._register(this._hoverService.setupManagedHover(getDefaultHoverDelegate("element"),s.actionContainer,s.actionRenderedLabel)),this.actions.push(s),s}append(e){const t=append$2(this.actionsElement,e);return this._hasContent=!0,t}};EditorHoverStatusBar=__decorate$2d([__param$27(0,IKeybindingService),__param$27(1,IHoverService)],EditorHoverStatusBar);const unthemedToggleStyles={inputActiveOptionBorder:"#007ACC00",inputActiveOptionForeground:"#FFFFFF",inputActiveOptionBackground:"#0E639C50"};class Toggle extends Widget$1{get onChange(){return this._onChange.event}get onKeyDown(){return this._onKeyDown.event}constructor(e){super(),this._onChange=this._register(new Emitter$1),this._onKeyDown=this._register(new Emitter$1),this._opts=e,this._title=this._opts.title,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._register(getBaseLayerHoverDelegate().setupDelayedHover(this.domNode,()=>({content:this._title,style:1}),this._opts.hoverLifecycleOptions)),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.setTitle(this._opts.title),this.applyStyles(),this.onclick(this.domNode,r=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),r.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,r=>{if(this.enabled){if(r.keyCode===10||r.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),r.preventDefault(),r.stopPropagation();return}this._onKeyDown.fire(r)}})}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()}setIcon(e){this._icon&&this.domNode.classList.remove(...ThemeIcon.asClassNameArray(this._icon)),this._icon=e,this._icon&&this.domNode.classList.add(...ThemeIcon.asClassNameArray(this._icon))}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)),this.domNode.classList.remove("disabled")}disable(){this.domNode.setAttribute("aria-disabled",String(!0)),this.domNode.classList.add("disabled")}setTitle(e){this._title=e,this.domNode.setAttribute("aria-label",e)}set visible(e){this.domNode.style.display=e?"":"none"}get visible(){return this.domNode.style.display!=="none"}}const na=class na extends Widget$1{constructor(e,t,r){super(),this.checkbox=e,this.domNode=t,this.styles=r,this._onChange=this._register(new Emitter$1),this.onChange=this._onChange.event,this.applyStyles()}get enabled(){return this.checkbox.enabled}enable(){this.checkbox.enable(),this.applyStyles(!0)}disable(){this.checkbox.disable(),this.applyStyles(!1)}setTitle(e){this.checkbox.setTitle(e)}applyStyles(e=this.enabled){this.domNode.style.color=(e?this.styles.checkboxForeground:this.styles.checkboxDisabledForeground)||"",this.domNode.style.backgroundColor=(e?this.styles.checkboxBackground:this.styles.checkboxDisabledBackground)||"",this.domNode.style.borderColor=(e?this.styles.checkboxBorder:this.styles.checkboxDisabledBackground)||"";const t=this.styles.size||18;this.domNode.style.width=this.domNode.style.height=this.domNode.style.fontSize="".concat(t,"px"),this.domNode.style.fontSize="".concat(t-2,"px")}};na.CLASS_NAME="monaco-checkbox";let BaseCheckbox=na;class Checkbox extends BaseCheckbox{constructor(e,t,r){const s=new Toggle({title:e,isChecked:t,icon:Codicon.check,actionClassName:BaseCheckbox.CLASS_NAME,hoverLifecycleOptions:r.hoverLifecycleOptions,...unthemedToggleStyles});super(s,s.domNode,r),this._register(s),this._register(this.checkbox.onChange(a=>{this.applyStyles(),this._onChange.fire(a)}))}get checked(){return this.checkbox.checked}set checked(e){this.checkbox.checked=e,this.applyStyles()}applyStyles(e){this.checkbox.checked?this.checkbox.setIcon(Codicon.check):this.checkbox.setIcon(void 0),super.applyStyles(e)}}class TriStateCheckbox extends BaseCheckbox{constructor(e,t,r){let s;switch(t){case!0:s=Codicon.check;break;case"mixed":s=Codicon.dash;break;case!1:s=void 0;break}const a=new Toggle({title:e,isChecked:t===!0,icon:s,actionClassName:Checkbox.CLASS_NAME,hoverLifecycleOptions:r.hoverLifecycleOptions,...unthemedToggleStyles});super(a,a.domNode,r),this._state=t,this._register(a),this._register(this.checkbox.onChange(l=>{this._state=this.checkbox.checked,this.applyStyles(),this._onChange.fire(l)}))}get checked(){return this._state}set checked(e){this._state!==e&&(this._state=e,this.checkbox.checked=e===!0,this.applyStyles())}applyStyles(e){switch(this._state){case!0:this.checkbox.setIcon(Codicon.check);break;case"mixed":this.checkbox.setIcon(Codicon.dash);break;case!1:this.checkbox.setIcon(void 0);break}super.applyStyles(e)}}const Ke=class Ke{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 r of t){const s=r.options;if(s===Ke._FIND_MATCH_DECORATION||s===Ke._CURRENT_FIND_MATCH_DECORATION)return this._getDecorationIndex(r.id)}return 0}setCurrentFindMatch(e){let t=null,r=0;if(e)for(let s=0,a=this._decorations.length;s<a;s++){const l=this._editor.getModel().getDecorationRange(this._decorations[s]);if(e.equalsRange(l)){t=this._decorations[s],r=s+1;break}}return(this._highlightedDecorationId!==null||t!==null)&&this._editor.changeDecorations(s=>{if(this._highlightedDecorationId!==null&&(s.changeDecorationOptions(this._highlightedDecorationId,Ke._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,s.changeDecorationOptions(this._highlightedDecorationId,Ke._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(s.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let a=this._editor.getModel().getDecorationRange(t);if(a.startLineNumber!==a.endLineNumber&&a.endColumn===1){const l=a.endLineNumber-1,c=this._editor.getModel().getLineMaxColumn(l);a=new Range$2(a.startLineNumber,a.startColumn,l,c)}this._rangeHighlightDecorationId=s.addDecoration(a,Ke._RANGE_HIGHLIGHT_DECORATION)}}),r}set(e,t){this._editor.changeDecorations(r=>{let s=Ke._FIND_MATCH_DECORATION;const a=[];if(e.length>1e3){s=Ke._FIND_MATCH_NO_OVERVIEW_DECORATION;const c=this._editor.getModel().getLineCount(),u=this._editor.getLayoutInfo().height/c,g=Math.max(2,Math.ceil(3/u));let f=e[0].range.startLineNumber,m=e[0].range.endLineNumber;for(let _=1,v=e.length;_<v;_++){const b=e[_].range;m+g>=b.startLineNumber?b.endLineNumber>m&&(m=b.endLineNumber):(a.push({range:new Range$2(f,1,m,1),options:Ke._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),f=b.startLineNumber,m=b.endLineNumber)}a.push({range:new Range$2(f,1,m,1),options:Ke._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const l=new Array(e.length);for(let c=0,d=e.length;c<d;c++)l[c]={range:e[c].range,options:s};this._decorations=r.deltaDecorations(this._decorations,l),this._overviewRulerApproximateDecorations=r.deltaDecorations(this._overviewRulerApproximateDecorations,a),this._rangeHighlightDecorationId&&(r.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),this._findScopeDecorationIds.length&&(this._findScopeDecorationIds.forEach(c=>r.removeDecoration(c)),this._findScopeDecorationIds=[]),t!=null&&t.length&&(this._findScopeDecorationIds=t.map(c=>r.addDecoration(c,Ke._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){const r=this._decorations[t],s=this._editor.getModel().getDecorationRange(r);if(!(!s||s.endLineNumber>e.lineNumber)){if(s.endLineNumber<e.lineNumber)return s;if(!(s.endColumn>e.column))return s}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,r=this._decorations.length;t<r;t++){const s=this._decorations[t],a=this._editor.getModel().getDecorationRange(s);if(!(!a||a.startLineNumber<e.lineNumber)){if(a.startLineNumber>e.lineNumber)return a;if(!(a.startColumn<e.column))return a}}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}};Ke._CURRENT_FIND_MATCH_DECORATION=ModelDecorationOptions.register({description:"current-find-match",stickiness:1,zIndex:13,className:"currentFindMatch",inlineClassName:"currentFindMatchInline",showIfCollapsed:!0,overviewRuler:{color:themeColorFromId(overviewRulerFindMatchForeground),position:OverviewRulerLane$1.Center},minimap:{color:themeColorFromId(minimapFindMatch),position:1}}),Ke._FIND_MATCH_DECORATION=ModelDecorationOptions.register({description:"find-match",stickiness:1,zIndex:10,className:"findMatch",inlineClassName:"findMatchInline",showIfCollapsed:!0,overviewRuler:{color:themeColorFromId(overviewRulerFindMatchForeground),position:OverviewRulerLane$1.Center},minimap:{color:themeColorFromId(minimapFindMatch),position:1}}),Ke._FIND_MATCH_NO_OVERVIEW_DECORATION=ModelDecorationOptions.register({description:"find-match-no-overview",stickiness:1,className:"findMatch",showIfCollapsed:!0}),Ke._FIND_MATCH_ONLY_OVERVIEW_DECORATION=ModelDecorationOptions.register({description:"find-match-only-overview",stickiness:1,overviewRuler:{color:themeColorFromId(overviewRulerFindMatchForeground),position:OverviewRulerLane$1.Center}}),Ke._RANGE_HIGHLIGHT_DECORATION=ModelDecorationOptions.register({description:"find-range-highlight",stickiness:1,className:"rangeHighlight",isWholeLine:!0}),Ke._FIND_SCOPE_DECORATION=ModelDecorationOptions.register({description:"find-scope",className:"findScope",isWholeLine:!0});let FindDecorations=Ke;class ReplaceAllCommand{constructor(e,t,r){this._editorSelection=e,this._ranges=t,this._replaceStrings=r,this._trackedEditorSelectionId=null}getEditOperations(e,t){if(this._ranges.length>0){const r=[];for(let l=0;l<this._ranges.length;l++)r.push({range:this._ranges[l],text:this._replaceStrings[l]});r.sort((l,c)=>Range$2.compareRangesUsingStarts(l.range,c.range));const s=[];let a=r[0];for(let l=1;l<r.length;l++)a.range.endLineNumber===r[l].range.startLineNumber&&a.range.endColumn===r[l].range.startColumn?(a.range=a.range.plusRange(r[l].range),a.text=a.text+r[l].text):(s.push(a),a=r[l]);s.push(a);for(const l of s)t.addEditOperation(l.range,l.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,"-"),r=validateSpecificSpecialCharacter(o,e,"_");return t&&!r?buildReplaceStringForSpecificSpecialCharacter(o,e,"-"):!t&&r?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 r=e.split(t),s=o[0].split(t);let a="";return r.forEach((l,c)=>{a+=buildReplaceStringWithCasePreserved([s[c]],l)+t}),a.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 r="";for(let s=0,a=this._state.pieces.length;s<a;s++){const l=this._state.pieces[s];if(l.staticValue!==null){r+=l.staticValue;continue}let c=ReplacePattern._substitute(l.matchIndex,e);if(l.caseOps!==null&&l.caseOps.length>0){const d=[],u=l.caseOps.length;let g=0;for(let f=0,m=c.length;f<m;f++){if(g>=u){d.push(c.slice(f));break}switch(l.caseOps[g]){case"U":d.push(c[f].toUpperCase());break;case"u":d.push(c[f].toUpperCase()),g++;break;case"L":d.push(c[f].toLowerCase());break;case"l":d.push(c[f].toLowerCase()),g++;break;default:d.push(c[f])}}c=d.join("")}r+=c}return r}static _substitute(e,t){if(t===null)return"";if(e===0)return t[0];let r="";for(;e>0;){if(e<t.length)return(t[e]||"")+r;r=String(e%10)+r,e=Math.floor(e/10)}return"$"+r}}class ReplacePiece{static staticValue(e){return new ReplacePiece(e,-1,null)}static caseOps(e,t){return new ReplacePiece(null,e,t)}constructor(e,t,r){this.staticValue=e,this.matchIndex=t,!r||r.length===0?this.caseOps=null:this.caseOps=r.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,r){this._currentStaticPiece.length!==0&&(this._result[this._resultLen++]=ReplacePiece.staticValue(this._currentStaticPiece),this._currentStaticPiece=""),this._result[this._resultLen++]=ReplacePiece.caseOps(e,r),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 r=0,s=o.length;r<s;r++){const a=o.charCodeAt(r);if(a===92){if(r++,r>=s)break;const l=o.charCodeAt(r);switch(l){case 92:t.emitUnchanged(r-1),t.emitStatic("\\",r+1);break;case 110:t.emitUnchanged(r-1),t.emitStatic("\n",r+1);break;case 116:t.emitUnchanged(r-1),t.emitStatic(" ",r+1);break;case 117:case 85:case 108:case 76:t.emitUnchanged(r-1),t.emitStatic("",r+1),e.push(String.fromCharCode(l));break}continue}if(a===36){if(r++,r>=s)break;const l=o.charCodeAt(r);if(l===36){t.emitUnchanged(r-1),t.emitStatic("$",r+1);continue}if(l===48||l===38){t.emitUnchanged(r-1),t.emitMatchIndex(0,r+1,e),e.length=0;continue}if(49<=l&&l<=57){let c=l-48;if(r+1<s){const d=o.charCodeAt(r+1);if(48<=d&&d<=57){r++,c=c*10+(d-48),t.emitUnchanged(r-2),t.emitMatchIndex(c,r+1,e),e.length=0;continue}}t.emitUnchanged(r-1),t.emitMatchIndex(c,r+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$1,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(()=>{if(this._editor.hasModel())return this.research(!1)},100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(r=>{(r.reason===3||r.reason===5||r.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(r=>{this._ignoreModelContentChanged||(r.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(r=>this._onStateChanged(r))),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 r=null;typeof t<"u"?t!==null&&(Array.isArray(t)?r=t:r=[t]):r=this._decorations.getFindScopes(),r!==null&&(r=r.map(c=>{if(c.startLineNumber!==c.endLineNumber){let d=c.endLineNumber;return c.endColumn===1&&(d=d-1),new Range$2(c.startLineNumber,1,d,this._editor.getModel().getLineMaxColumn(d))}return c}));const s=this._findMatches(r,!1,MATCHES_LIMIT);this._decorations.set(s,r);const a=this._editor.getSelection();let l=this._decorations.getCurrentMatchesPosition(a);if(l===0&&s.length>0){const c=findFirstIdxMonotonousOrArrLen(s.map(d=>d.range),d=>Range$2.compareRangesUsingStarts(d,a)>=0);l=c>0?c-1+1:l}this._state.changeMatchInfo(l,this._decorations.getCount(),void 0),e&&this._editor.getOption(50).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:r,column:s}=e;const a=this._editor.getModel();return t||s===1?(r===1?r=a.getLineCount():r--,s=a.getLineMaxColumn(r)):s--,new Position$1(r,s)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const g=this._decorations.matchAfterPosition(e);g&&this._setCurrentFindMatch(g);return}if(this._decorations.getCount()<MATCHES_LIMIT){let g=this._decorations.matchBeforePosition(e);g&&g.isEmpty()&&g.getStartPosition().equals(e)&&(e=this._prevSearchPosition(e),g=this._decorations.matchBeforePosition(e)),g&&this._setCurrentFindMatch(g);return}if(this._cannotFind())return;const r=this._decorations.getFindScope(),s=FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(),r);s.getEndPosition().isBefore(e)&&(e=s.getEndPosition()),e.isBefore(s.getStartPosition())&&(e=s.getEndPosition());const{lineNumber:a,column:l}=e,c=this._editor.getModel();let d=new Position$1(a,l),u=c.findPreviousMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1);if(u&&u.range.isEmpty()&&u.range.getStartPosition().equals(d)&&(d=this._prevSearchPosition(d),u=c.findPreviousMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,!1)),!!u){if(!t&&!s.containsRange(u.range))return this._moveToPrevMatch(u.range.getStartPosition(),!0);this._setCurrentFindMatch(u.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:r,column:s}=e;const a=this._editor.getModel();return t||s===a.getLineMaxColumn(r)?(r===a.getLineCount()?r=1:r++,s=1):s++,new Position$1(r,s)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const r=this._decorations.matchBeforePosition(e);r&&this._setCurrentFindMatch(r);return}if(this._decorations.getCount()<MATCHES_LIMIT){let r=this._decorations.matchAfterPosition(e);r&&r.isEmpty()&&r.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),r=this._decorations.matchAfterPosition(e)),r&&this._setCurrentFindMatch(r);return}const t=this._getNextMatch(e,!1,!0);t&&this._setCurrentFindMatch(t.range)}_getNextMatch(e,t,r,s=!1){if(this._cannotFind())return null;const a=this._decorations.getFindScope(),l=FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(),a);l.getEndPosition().isBefore(e)&&(e=l.getStartPosition()),e.isBefore(l.getStartPosition())&&(e=l.getStartPosition());const{lineNumber:c,column:d}=e,u=this._editor.getModel();let g=new Position$1(c,d),f=u.findNextMatch(this._state.searchString,g,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,t);return r&&f&&f.range.isEmpty()&&f.range.getStartPosition().equals(g)&&(g=this._nextSearchPosition(g),f=u.findNextMatch(this._state.searchString,g,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,t)),f?!s&&!l.containsRange(f.range)?this._getNextMatch(f.range.getEndPosition(),t,r,!0):f: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(),r=this._getNextMatch(t.getStartPosition(),!0,!1);if(r)if(t.equalsRange(r.range)){const s=e.buildReplaceString(r.matches,this._state.preserveCase),a=new ReplaceCommand(t,s);this._executeEditorCommand("replace",a),this._decorations.setStartPosition(new Position$1(t.startLineNumber,t.startColumn+s.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(r.range)}_findMatches(e,t,r){const s=(e||[null]).map(a=>FindModelBoundToEditorModel._getSearchRange(this._editor.getModel(),a));return this._editor.getModel().findMatches(this._state.searchString,s,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(148):null,t,r)}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(148):null).parseSearchRequest();if(!t)return;let r=t.regex;if(!r.multiline){let f="mu";r.ignoreCase&&(f+="i"),r.global&&(f+="g"),r=new RegExp(r.source,f)}const s=this._editor.getModel(),a=s.getValue(1),l=s.getFullModelRange(),c=this._getReplacePattern();let d;const u=this._state.preserveCase;c.hasReplacementPatterns||u?d=a.replace(r,function(){return c.buildReplaceString(arguments,u)}):d=a.replace(r,c.buildReplaceString(null,u));const g=new ReplaceCommandThatPreservesSelection(l,d,this._editor.getSelection());this._executeEditorCommand("replaceAll",g)}_regularReplaceAll(e){const t=this._getReplacePattern(),r=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),s=[];for(let l=0,c=r.length;l<c;l++)s[l]=t.buildReplaceString(r[l].matches,this._state.preserveCase);const a=new ReplaceAllCommand(this._editor.getSelection(),r.map(l=>l.range),s);this._executeEditorCommand("replaceAll",a)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let r=this._findMatches(e,!1,1073741824).map(a=>new Selection$1(a.range.startLineNumber,a.range.startColumn,a.range.endLineNumber,a.range.endColumn));const s=this._editor.getSelection();for(let a=0,l=r.length;a<l;a++)if(r[a].equalsRange(s)){r=[s].concat(r.slice(0,a)).concat(r.slice(a+1));break}this._editor.setSelections(r)}_executeEditorCommand(e,t){try{this._ignoreModelContentChanged=!0,this._editor.pushUndoStop(),this._editor.executeCommand(e,t),this._editor.pushUndoStop()}finally{this._ignoreModelContentChanged=!1}}}const NLS_CASE_SENSITIVE_TOGGLE_LABEL=localize(2,"Match Case"),NLS_WHOLE_WORD_TOGGLE_LABEL=localize(3,"Match Whole Word"),NLS_REGEX_TOGGLE_LABEL=localize(4,"Use Regular Expression");class CaseSensitiveToggle extends Toggle{constructor(e){super({icon:Codicon.caseSensitive,title:NLS_CASE_SENSITIVE_TOGGLE_LABEL+e.appendTitle,isChecked:e.isChecked,hoverLifecycleOptions:e.hoverLifecycleOptions,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,hoverLifecycleOptions:e.hoverLifecycleOptions,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,hoverLifecycleOptions:e.hoverLifecycleOptions,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}function renderText(o,e,t){const r=t!=null?t:document.createElement("div");return r.textContent=o,r}function renderFormattedText(o,e,t){const r=t!=null?t:document.createElement("div");return r.textContent="",_renderFormattedText(r,parseFormattedText(o),e==null?void 0:e.actionHandler,e==null?void 0:e.renderCodeSegments),r}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,r){let s;if(e.type===2)s=document.createTextNode(e.content||"");else if(e.type===3)s=document.createElement("b");else if(e.type===4)s=document.createElement("i");else if(e.type===7&&r)s=document.createElement("code");else if(e.type===5&&t){const a=document.createElement("a");t.disposables.add(addStandardDisposableListener(a,"click",l=>{t.callback(String(e.index),l)})),s=a}else e.type===8?s=document.createElement("br"):e.type===1&&(s=o);s&&o!==s&&o.appendChild(s),s&&Array.isArray(e.children)&&e.children.forEach(a=>{_renderFormattedText(s,a,t,r)})}function parseFormattedText(o,e){const t={type:1,children:[]};let r=0,s=t;const a=[],l=new StringStream(o);for(;!l.eos();){let c=l.next();const d=c==="\\"&&formatTagType(l.peek())!==0;if(d&&(c=l.next()),!d&&isFormatTag(c)&&c===l.peek()){l.advance(),s.type===2&&(s=a.pop());const u=formatTagType(c);if(s.type===u||s.type===5&&u===6)s=a.pop();else{const g={type:u,children:[]};u===5&&(g.index=r,r++),s.children.push(g),a.push(s),s=g}}else if(c==="\n")s.type===2&&(s=a.pop()),s.children.push({type:8});else if(s.type!==2){const u={type:2,content:c};s.children.push(u),a.push(s),s=u}else s.content+=c}return s.type===2&&(s=a.pop()),t}function isFormatTag(o,e){return formatTagType(o)!==0}function formatTagType(o,e){switch(o){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return 0;default:return 0}}class ArrayNavigator{constructor(e,t=0,r=e.length,s=t-1){this.items=e,this.start=t,this.end=r,this.index=s}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=new Set,t=10){this._history=e,this._limit=t,this._onChange(),this._history.onDidChange&&(this._disposable=this._history.onDidChange(()=>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;if(e.length>this._limit){const t=e.slice(e.length-this._limit);this._history.replace?this._history.replace(t):this._history=new Set(t)}}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}get _elements(){const e=[];return this._history.forEach(t=>e.push(t)),e}dispose(){this._disposable&&(this._disposable.dispose(),this._disposable=void 0)}}const $$h=$$m;let InputBox$1=class extends Widget$1{get onDidChange(){return this._onDidChange.event}get onDidHeightChange(){return this._onDidHeightChange.event}constructor(e,t,r){var l;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this.hover=this._register(new MutableDisposable),this._onDidChange=this._register(new Emitter$1),this._onDidHeightChange=this._register(new Emitter$1),this.contextViewProvider=t,this.options=r,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=(l=this.options.tooltip)!=null?l:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=append$2(e,$$h(".monaco-inputbox.idle"));const s=this.options.flexibleHeight?"textarea":"input",a=append$2(this.element,$$h(".ibwrapper"));if(this.input=append$2(a,$$h(s+".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$2(a,$$h("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$2(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(u=>this.input.scrollTop=u.scrollTop));const c=this._register(new DomEmitter(e.ownerDocument,"selectionchange")),d=Event$1.filter(c.event,()=>{const u=e.ownerDocument.getSelection();return(u==null?void 0:u.anchorNode)===a});this._register(d(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.hover.value||(this.hover.value=this._register(getBaseLayerHoverDelegate().setupDelayedHoverAtMouse(this.input,()=>({content:this.tooltip,appearance:{compact:!0}}))))}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 isActiveElement(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}getSelection(){var r;const e=this.input.selectionStart;if(e===null)return null;const t=(r=this.input.selectionEnd)!=null?r:e;return{start:e,end:t}}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(e){this.input.style.width="calc(100% - ".concat(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,r=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:r})}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 r=this.stylesForType(this.message.type);this.element.style.border="1px solid ".concat(asCssValueWithDefault(r.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:s=>{var c,d;if(!this.message)return null;e=append$2(s,$$h(".monaco-inputbox-container")),t();const a=$$h("span.monaco-inputbox-message");this.message.formatContent?renderFormattedText(this.message.content,void 0,a):renderText(this.message.content,void 0,a),a.classList.add(this.classForType(this.message.type));const l=this.stylesForType(this.message.type);return a.style.backgroundColor=(c=l.background)!=null?c:"",a.style.color=(d=l.foreground)!=null?d:"",a.style.border=l.border?"1px solid ".concat(l.border):"",append$2(e,a),null},onHide:()=>{this.state="closed"},layout:t});let r;this.message.type===3?r=localize(9,"Error: {0}",this.message.content):this.message.type===2?r=localize(10,"Warning: {0}",this.message.content):r=localize(11,"Info: {0}",this.message.content),alert(r),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,r=e.charCodeAt(e.length-1)===10?" ":"";(e+r).replace(/\u000c/g,"")?this.mirror.textContent=e+r:this.mirror.innerText=" ",this.layout()}applyStyles(){var a,l,c;const e=this.options.inputBoxStyles,t=(a=e.inputBackground)!=null?a:"",r=(l=e.inputForeground)!=null?l:"",s=(c=e.inputBorder)!=null?c:"";this.element.style.backgroundColor=t,this.element.style.color=r,this.input.style.backgroundColor="inherit",this.input.style.color=r,this.element.style.border="1px solid ".concat(asCssValueWithDefault(s,"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,r=t.selectionStart,s=t.selectionEnd,a=t.value;r!==null&&s!==null&&(this.value=a.substr(0,r)+e+a.substr(s),t.setSelectionRange(r+1,r+1),this.layout())}dispose(){var e;this._hideMessage(),this.message=null,(e=this.actionbar)==null||e.dispose(),super.dispose()}};class HistoryInputBox extends InputBox$1{constructor(e,t,r){const s=localize(12," or {0} for history","⇅"),a=localize(13," ({0} for history)","⇅");super(e,t,r),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=this._register(new HistoryNavigator(r.history,100));const l=()=>{if(r.showHistoryHint&&r.showHistoryHint()&&!this.placeholder.endsWith(s)&&!this.placeholder.endsWith(a)&&this.history.getHistory().length){const c=this.placeholder.endsWith(")")?s:a,d=this.placeholder+c;r.showPlaceholderOnFocus&&!isActiveElement(this.input)?this.placeholder=d:this.setPlaceHolder(d)}};this.observer=new MutationObserver((c,d)=>{c.forEach(u=>{u.target.textContent||l()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>l()),this.onblur(this.input,()=>{const c=d=>{if(this.placeholder.endsWith(d)){const u=this.placeholder.slice(0,this.placeholder.length-d.length);return r.showPlaceholderOnFocus?this.placeholder=u:this.setPlaceHolder(u),!0}else return!1};c(a)||c(s)})}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!=null?e:"",status(this.value?this.value:localize(14,"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))}setPlaceHolder(e){super.setPlaceHolder(e),this.setTooltip(e)}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(1,"input");class FindInput extends Widget$1{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onMouseDown(){return this._onMouseDown.event}get onCaseSensitiveKeyDown(){return this._onCaseSensitiveKeyDown.event}get onRegexKeyDown(){return this._onRegexKeyDown.event}constructor(e,t,r){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new MutableDisposable),this.additionalToggles=[],this._onDidOptionChange=this._register(new Emitter$1),this._onKeyDown=this._register(new Emitter$1),this._onMouseDown=this._register(new Emitter$1),this._onInput=this._register(new Emitter$1),this._onKeyUp=this._register(new Emitter$1),this._onCaseSensitiveKeyDown=this._register(new Emitter$1),this._onRegexKeyDown=this._register(new Emitter$1),this._lastHighlightFindOptions=0,this.placeholder=r.placeholder||"",this.validation=r.validation,this.label=r.label||NLS_DEFAULT_LABEL$1,this.showCommonFindToggles=!!r.showCommonFindToggles;const s=r.appendCaseSensitiveLabel||"",a=r.appendWholeWordsLabel||"",l=r.appendRegexLabel||"",c=!!r.flexibleHeight,d=!!r.flexibleWidth,u=r.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},showHistoryHint:r.showHistoryHint,flexibleHeight:c,flexibleWidth:d,flexibleMaxHeight:u,inputBoxStyles:r.inputBoxStyles,history:r.history})),this.showCommonFindToggles){const g=(r==null?void 0:r.hoverLifecycleOptions)||{groupId:"find-input"};this.regex=this._register(new RegexToggle({appendTitle:l,isChecked:!1,hoverLifecycleOptions:g,...r.toggleStyles})),this._register(this.regex.onChange(m=>{this._onDidOptionChange.fire(m),!m&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(m=>{this._onRegexKeyDown.fire(m)})),this.wholeWords=this._register(new WholeWordsToggle({appendTitle:a,isChecked:!1,hoverLifecycleOptions:g,...r.toggleStyles})),this._register(this.wholeWords.onChange(m=>{this._onDidOptionChange.fire(m),!m&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new CaseSensitiveToggle({appendTitle:s,isChecked:!1,hoverLifecycleOptions:g,...r.toggleStyles})),this._register(this.caseSensitive.onChange(m=>{this._onDidOptionChange.fire(m),!m&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(m=>{this._onCaseSensitiveKeyDown.fire(m)}));const f=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,m=>{if(m.equals(15)||m.equals(17)||m.equals(9)){const _=f.indexOf(this.domNode.ownerDocument.activeElement);if(_>=0){let v=-1;m.equals(17)?v=(_+1)%f.length:m.equals(15)&&(_===0?v=f.length-1:v=_-1),m.equals(9)?(f[_].blur(),this.inputBox.focus()):v>=0&&f[v].focus(),EventHelper$1.stop(m,!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(r==null?void 0:r.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),e==null||e.appendChild(this.domNode),this._register(addDisposableListener(this.inputBox.inputElement,"compositionstart",g=>{this.imeSessionInProgress=!0})),this._register(addDisposableListener(this.inputBox.inputElement,"compositionend",g=>{this.imeSessionInProgress=!1,this._onInput.fire()})),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))}get onDidChange(){return this.inputBox.onDidChange}layout(e){this.inputBox.layout(),this.updateInputBoxPadding(e.collapsedFindWidget)}enable(){var e,t,r;this.domNode.classList.remove("disabled"),this.inputBox.enable(),(e=this.regex)==null||e.enable(),(t=this.wholeWords)==null||t.enable(),(r=this.caseSensitive)==null||r.enable();for(const s of this.additionalToggles)s.enable()}disable(){var e,t,r;this.domNode.classList.add("disabled"),this.inputBox.disable(),(e=this.regex)==null||e.disable(),(t=this.wholeWords)==null||t.disable(),(r=this.caseSensitive)==null||r.disable();for(const s of this.additionalToggles)s.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$1;for(const t of e!=null?e:[])this.additionalTogglesDisposables.value.add(t),this.controls.appendChild(t.domNode),this.additionalTogglesDisposables.value.add(t.onChange(r=>{this._onDidOptionChange.fire(r),!r&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(t);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(e=!1){var t,r,s,a,l,c;e?this.inputBox.paddingRight=0:this.inputBox.paddingRight=((r=(t=this.caseSensitive)==null?void 0:t.width())!=null?r:0)+((a=(s=this.wholeWords)==null?void 0:s.width())!=null?a:0)+((c=(l=this.regex)==null?void 0:l.width())!=null?c:0)+this.additionalToggles.reduce((d,u)=>d+u.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?void 0:e.checked)!=null?t:!1}setCaseSensitive(e){this.caseSensitive&&(this.caseSensitive.checked=e)}getWholeWords(){var e,t;return(t=(e=this.wholeWords)==null?void 0:e.checked)!=null?t:!1}setWholeWords(e){this.wholeWords&&(this.wholeWords.checked=e)}getRegex(){var e,t;return(t=(e=this.regex)==null?void 0:e.checked)!=null?t:!1}setRegex(e){this.regex&&(this.regex.checked=e,this.validate())}focusOnCaseSensitive(){var e;(e=this.caseSensitive)==null||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()}}const NLS_DEFAULT_LABEL=localize(5,"input"),NLS_PRESERVE_CASE_LABEL=localize(6,"Preserve Case");class PreserveCaseToggle extends Toggle{constructor(e){super({icon:Codicon.preserveCase,title:NLS_PRESERVE_CASE_LABEL+e.appendTitle,isChecked:e.isChecked,hoverLifecycleOptions:e.hoverLifecycleOptions,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class ReplaceInput extends Widget$1{get onDidOptionChange(){return this._onDidOptionChange.event}get onKeyDown(){return this._onKeyDown.event}get onPreserveCaseKeyDown(){return this._onPreserveCaseKeyDown.event}constructor(e,t,r,s){super(),this._showOptionButtons=r,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new Emitter$1),this._onKeyDown=this._register(new Emitter$1),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.contextViewProvider=t,this.placeholder=s.placeholder||"",this.validation=s.validation,this.label=s.label||NLS_DEFAULT_LABEL;const a=s.appendPreserveCaseLabel||"",l=s.history||new Set([]),c=!!s.flexibleHeight,d=!!s.flexibleWidth,u=s.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:l,showHistoryHint:s.showHistoryHint,flexibleHeight:c,flexibleWidth:d,flexibleMaxHeight:u,inputBoxStyles:s.inputBoxStyles})),this.preserveCase=this._register(new PreserveCaseToggle({appendTitle:a,isChecked:!1,hoverLifecycleOptions:s.hoverLifecycleOptions,...s.toggleStyles})),this._register(this.preserveCase.onChange(m=>{this._onDidOptionChange.fire(m),!m&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(m=>{this._onPreserveCaseKeyDown.fire(m)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const g=[this.preserveCase.domNode];this.onkeydown(this.domNode,m=>{if(m.equals(15)||m.equals(17)||m.equals(9)){const _=g.indexOf(this.domNode.ownerDocument.activeElement);if(_>=0){let v=-1;m.equals(17)?v=(_+1)%g.length:m.equals(15)&&(_===0?v=g.length-1:v=_-1),m.equals(9)?(g[_].blur(),this.inputBox.focus()):v>=0&&g[v].focus(),EventHelper$1.stop(m,!0)}}});const f=document.createElement("div");f.className="controls",f.style.display=this._showOptionButtons?"block":"none",f.appendChild(this.preserveCase.domNode),this.domNode.appendChild(f),e==null||e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,m=>this._onKeyDown.fire(m)),this.onkeyup(this.inputBox.inputElement,m=>this._onKeyUp.fire(m)),this.oninput(this.inputBox.inputElement,m=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,m=>this._onMouseDown.fire(m))}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.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}var __decorate$2c=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$26=function(o,e){return function(t,r){e(t,r,o)}};const historyNavigationVisible=new RawContextKey("suggestWidgetVisible",!1,localize(1698,"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$1,r=new RawContextKey(HistoryNavigationWidgetFocusContext,!1).bindTo(o),s=new RawContextKey(HistoryNavigationForwardsEnablementContext,!0).bindTo(o),a=new RawContextKey(HistoryNavigationBackwardsEnablementContext,!0).bindTo(o),l=()=>{r.set(!0),lastFocusedWidget=e},c=()=>{r.set(!1),lastFocusedWidget===e&&(lastFocusedWidget=void 0)};return isActiveElement(e.element)&&l(),t.add(e.onDidFocus(()=>l())),t.add(e.onDidBlur(()=>c())),t.add(toDisposable(()=>{widgets.splice(widgets.indexOf(e),1),c()})),{historyNavigationForwardsEnablement:s,historyNavigationBackwardsEnablement:a,dispose(){t.dispose()}}}let ContextScopedFindInput=class extends FindInput{constructor(e,t,r,s){super(e,t,r);const a=this._register(s.createScoped(this.inputBox.element));this._register(registerAndCreateHistoryNavigationContext(a,this.inputBox))}};ContextScopedFindInput=__decorate$2c([__param$26(3,IContextKeyService)],ContextScopedFindInput);let ContextScopedReplaceInput=class extends ReplaceInput{constructor(e,t,r,s,a=!1){super(e,t,a,r);const l=this._register(s.createScoped(this.inputBox.element));this._register(registerAndCreateHistoryNavigationContext(l,this.inputBox))}};ContextScopedReplaceInput=__decorate$2c([__param$26(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?void 0:e.getElectronAccelerator())==="Up"&&((t=o.lookupKeybinding("history.showNext"))==null?void 0:t.getElectronAccelerator())==="Down"}const findCollapsedIcon=registerIcon("find-collapsed",Codicon.chevronRight,localize(956,"Icon to indicate that the editor find widget is collapsed.")),findExpandedIcon=registerIcon("find-expanded",Codicon.chevronDown,localize(957,"Icon to indicate that the editor find widget is expanded.")),findSelectionIcon=registerIcon("find-selection",Codicon.selection,localize(958,"Icon for 'Find in Selection' in the editor find widget.")),findReplaceIcon=registerIcon("find-replace",Codicon.replace,localize(959,"Icon for 'Replace' in the editor find widget.")),findReplaceAllIcon=registerIcon("find-replace-all",Codicon.replaceAll,localize(960,"Icon for 'Replace All' in the editor find widget.")),findPreviousMatchIcon=registerIcon("find-previous-match",Codicon.arrowUp,localize(961,"Icon for 'Find Previous' in the editor find widget.")),findNextMatchIcon=registerIcon("find-next-match",Codicon.arrowDown,localize(962,"Icon for 'Find Next' in the editor find widget.")),NLS_FIND_DIALOG_LABEL=localize(963,"Find / Replace"),NLS_FIND_INPUT_LABEL=localize(964,"Find"),NLS_FIND_INPUT_PLACEHOLDER=localize(965,"Find"),NLS_PREVIOUS_MATCH_BTN_LABEL=localize(966,"Previous Match"),NLS_NEXT_MATCH_BTN_LABEL=localize(967,"Next Match"),NLS_TOGGLE_SELECTION_FIND_TITLE=localize(968,"Find in Selection"),NLS_CLOSE_BTN_LABEL=localize(969,"Close"),NLS_REPLACE_INPUT_LABEL=localize(970,"Replace"),NLS_REPLACE_INPUT_PLACEHOLDER=localize(971,"Replace"),NLS_REPLACE_BTN_LABEL=localize(972,"Replace"),NLS_REPLACE_ALL_BTN_LABEL=localize(973,"Replace All"),NLS_TOGGLE_REPLACE_MODE_BTN_LABEL=localize(974,"Toggle Replace"),NLS_MATCHES_COUNT_LIMIT_TITLE=localize(975,"Only the first {0} results are highlighted, but all find operations work on the entire text.",MATCHES_LIMIT),NLS_MATCHES_LOCATION=localize(976,"{0} of {1}"),NLS_NO_RESULTS=localize(977,"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,ctrlKeyMod$1=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 r=!!e.match(/\n/);if(t&&r&&t.selectionStart>0){o.stopPropagation();return}}function stopPropagationForMultiLineDownwards(o,e,t){const r=!!e.match(/\n/);if(t&&r&&t.selectionEnd<t.value.length){o.stopPropagation();return}}const zo=class zo extends Widget$1{constructor(e,t,r,s,a,l,c,d,u){super(),this._hoverService=c,this._findWidgetSearchHistory=d,this._replaceWidgetHistory=u,this._cachedHeight=null,this._revealTimeouts=[],this._codeEditor=e,this._controller=t,this._state=r,this._contextViewProvider=s,this._keybindingService=a,this._contextKeyService=l,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(g=>this._onStateChanged(g))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(g=>{if(g.hasChanged(104)&&(this._codeEditor.getOption(104)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),g.hasChanged(165)&&this._tryUpdateWidgetWidth(),g.hasChanged(2)&&this.updateAccessibilitySupport(),g.hasChanged(50)){const f=this._codeEditor.getOption(50).loop;this._state.change({loop:f},!1);const m=this._codeEditor.getOption(50).addExtraSpaceOnTop;m&&!this._viewZone&&(this._viewZone=new FindWidgetViewZone(0),this._showViewZone()),!m&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const g=await this._controller.getGlobalBufferTerm();g&&g!==this._state.searchString&&(this._state.change({searchString:g},!1),this._findInput.select())}})),this._findInputFocused=CONTEXT_FIND_INPUT_FOCUSED.bindTo(l),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(l),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(50).addExtraSpaceOnTop&&(this._viewZone=new FindWidgetViewZone(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(g=>{if(g.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return zo.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(104)&&!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(){var t;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="",(t=this._matchesCount.firstChild)==null||t.remove();let e;if(this._state.matchesCount>0){let r=String(this._state.matchesCount);this._state.matchesCount>=MATCHES_LIMIT&&(r+="+");let s=String(this._state.matchesPosition);s==="0"&&(s="?"),e=format(NLS_MATCHES_LOCATION,s,r)}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,r){if(e===NLS_NO_RESULTS)return r===""?localize(978,"{0} found",e):localize(979,"{0} found for '{1}'",e,r);if(t){const s=localize(980,"{0} found for '{1}', at {2}",e,r,t.startLineNumber+":"+t.startColumn),a=this._codeEditor.getModel();if(a&&t.startLineNumber<=a.getLineCount()&&t.startLineNumber>=1){const l=a.getLineContent(t.startLineNumber);return"".concat(l,", ").concat(s)}return s}return localize(981,"{0} found for '{1}'",e,r)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,r=this._toggleSelectionFind.checked;this._isVisible&&(r||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 r=!this._codeEditor.getOption(104);this._toggleReplaceBtn.setEnabled(this._isVisible&&r)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(50).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const r=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=r;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(50).seedSearchStringFromSelection&&e){const r=this._codeEditor.getDomNode();if(r){const s=getDomNodePagePosition(r),a=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),l=s.left+(a?a.left:0),c=a?a.top:0;if(this._viewZone&&c<this._viewZone.heightInPx){e.endLineNumber>e.startLineNumber&&(t=!1);const d=getTopLeftOffset(this._domNode).left;l>d&&(t=!1);const u=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());s.left+(u?u.left:0)>d&&(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(50).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const r=this._viewZone;this._viewZoneId!==void 0||!r||this._codeEditor.changeViewZones(s=>{r.heightInPx=this._getHeight(),this._viewZoneId=s.addZone(r),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+r.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(50).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new FindWidgetViewZone(0));const r=this._viewZone;this._codeEditor.changeViewZones(s=>{if(this._viewZoneId!==void 0){const a=this._getHeight();if(a===r.heightInPx)return;const l=a-r.heightInPx;r.heightInPx=a,s.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+l);return}else{let a=this._getHeight();if(a-=this._codeEditor.getOption(96).top,a<=0)return;r.heightInPx=a,this._viewZoneId=s.addZone(r),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+a)}})}_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||!this._domNode.isConnected)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 r=e.width,s=e.minimap.minimapWidth;let a=!1,l=!1,c=!1;if(this._resized&&getTotalWidth(this._domNode)>FIND_WIDGET_INITIAL_WIDTH){this._domNode.style.maxWidth="".concat(r-28-s-15,"px"),this._replaceInput.width=getTotalWidth(this._findInput.domNode);return}if(FIND_WIDGET_INITIAL_WIDTH+28+s>=r&&(l=!0),FIND_WIDGET_INITIAL_WIDTH+28+s-MAX_MATCHES_COUNT_WIDTH>=r&&(c=!0),FIND_WIDGET_INITIAL_WIDTH+28+s-MAX_MATCHES_COUNT_WIDTH>=r+50&&(a=!0),this._domNode.classList.toggle("collapsed-find-widget",a),this._domNode.classList.toggle("narrow-find-widget",c),this._domNode.classList.toggle("reduced-find-widget",l),!c&&!a&&(this._domNode.style.maxWidth="".concat(r-28-s-15,"px")),this._findInput.layout({collapsedFindWidget:a,narrowFindWidget:c,reducedFindWidget:l}),this._resized){const d=this._findInput.inputBox.element.clientWidth;d>0&&(this._replaceInput.width=d)}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="".concat(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 r=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!Range$2.equalsRange(t,r)?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$1|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor("\n"),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$1|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._replaceInput.inputBox.insertAtCursor("\n"),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?" (".concat(t.getLabel(),")"):""}_buildDomNode(){const r=this._codeEditor.getOption(50).history,s=this._codeEditor.getOption(50).replaceHistory;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:f=>{if(f.length===0||!this._findInput.getRegex())return null;try{return new RegExp(f,"gu"),null}catch(m){return{content:m.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>showHistoryKeybindingHint(this._keybindingService),inputBoxStyles:defaultInputBoxStyles,toggleStyles:defaultToggleStyles,history:r==="workspace"?this._findWidgetSearchHistory:new Set([])},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(f=>{f.equals(3)&&!this._codeEditor.getOption(50).findOnType&&this._state.change({searchString:this._findInput.getValue()},!0),this._onFindInputKeyDown(f)})),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||!this._codeEditor.getOption(50).findOnType||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(f=>{f.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),f.preventDefault())})),this._register(this._findInput.onRegexKeyDown(f=>{f.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),f.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(f=>{this._tryUpdateHeight()&&this._showViewZone()})),isLinux&&this._register(this._findInput.onMouseDown(f=>this._onFindInputMouseDown(f))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount();const a={groupId:"find-widget"};this._prevBtn=this._register(new SimpleButton({label:NLS_PREVIOUS_MATCH_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.PreviousMatchFindAction),icon:findPreviousMatchIcon,hoverLifecycleOptions:a,onTrigger:()=>{assertReturnsDefined(this._codeEditor.getAction(FIND_IDS.PreviousMatchFindAction)).run().then(void 0,onUnexpectedError)}},this._hoverService)),this._nextBtn=this._register(new SimpleButton({label:NLS_NEXT_MATCH_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.NextMatchFindAction),icon:findNextMatchIcon,hoverLifecycleOptions:a,onTrigger:()=>{assertReturnsDefined(this._codeEditor.getAction(FIND_IDS.NextMatchFindAction)).run().then(void 0,onUnexpectedError)}},this._hoverService));const l=document.createElement("div");l.className="find-part",l.appendChild(this._findInput.domNode);const c=document.createElement("div");c.className="find-actions",l.appendChild(c),c.appendChild(this._matchesCount),c.appendChild(this._prevBtn.domNode),c.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,hoverLifecycleOptions:a,inputActiveOptionBackground:asCssVariable(inputActiveOptionBackground),inputActiveOptionBorder:asCssVariable(inputActiveOptionBorder),inputActiveOptionForeground:asCssVariable(inputActiveOptionForeground)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let f=this._codeEditor.getSelections();f=f.map(m=>(m.endColumn===1&&m.endLineNumber>m.startLineNumber&&(m=m.setEndPosition(m.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(m.endLineNumber-1))),m.isEmpty()?null:m)).filter(m=>!!m),f.length&&this._state.change({searchScope:f},!0)}}else this._state.change({searchScope:null},!0)})),c.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new SimpleButton({label:NLS_CLOSE_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.CloseFindWidgetCommand),icon:widgetClose,hoverLifecycleOptions:a,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:f=>{f.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),f.preventDefault())}},this._hoverService)),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:s==="workspace"?this._replaceWidgetHistory:new Set([]),flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>showHistoryKeybindingHint(this._keybindingService),inputBoxStyles:defaultInputBoxStyles,toggleStyles:defaultToggleStyles,hoverLifecycleOptions:a},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(f=>this._onReplaceInputKeyDown(f))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(f=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(f=>{f.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(),f.preventDefault())})),this._replaceBtn=this._register(new SimpleButton({label:NLS_REPLACE_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.ReplaceOneAction),icon:findReplaceIcon,hoverLifecycleOptions:a,onTrigger:()=>{this._controller.replace()},onKeyDown:f=>{f.equals(1026)&&(this._closeBtn.focus(),f.preventDefault())}},this._hoverService)),this._replaceAllBtn=this._register(new SimpleButton({label:NLS_REPLACE_ALL_BTN_LABEL+this._keybindingLabelFor(FIND_IDS.ReplaceAllAction),icon:findReplaceAllIcon,hoverLifecycleOptions:a,onTrigger:()=>{this._controller.replaceAll()}},this._hoverService));const d=document.createElement("div");d.className="replace-part",d.appendChild(this._replaceInput.domNode);const u=document.createElement("div");u.className="replace-actions",d.appendChild(u),u.appendChild(this._replaceBtn.domNode),u.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._hoverService)),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=NLS_FIND_DIALOG_LABEL,this._domNode.role="dialog",this._domNode.style.width="".concat(FIND_WIDGET_INITIAL_WIDTH,"px"),this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(l),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(d),this._resizeSash=this._register(new Sash(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let g=FIND_WIDGET_INITIAL_WIDTH;this._register(this._resizeSash.onDidStart(()=>{g=getTotalWidth(this._domNode)})),this._register(this._resizeSash.onDidChange(f=>{this._resized=!0;const m=g+f.startX-f.currentX;if(m<FIND_WIDGET_INITIAL_WIDTH)return;const _=parseFloat(getComputedStyle$2(this._domNode).maxWidth)||0;m>_||(this._domNode.style.width="".concat(m,"px"),this._isReplaceVisible&&(this._replaceInput.width=getTotalWidth(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const f=getTotalWidth(this._domNode);if(f<FIND_WIDGET_INITIAL_WIDTH)return;let m=FIND_WIDGET_INITIAL_WIDTH;if(!this._resized||f===FIND_WIDGET_INITIAL_WIDTH){const _=this._codeEditor.getLayoutInfo();m=_.width-28-_.minimap.minimapWidth-15,this._resized=!0}this._domNode.style.width="".concat(m,"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)}getViewState(){let e=!1;return this._viewZone&&this._viewZoneId&&(e=this._viewZone.heightInPx>this._codeEditor.getScrollTop()),{widgetViewZoneVisible:e,scrollTop:this._codeEditor.getScrollTop()}}setViewState(e){e&&e.widgetViewZoneVisible&&this._layoutViewZone(e.scrollTop)}};zo.ID="editor.contrib.findWidget";let FindWidget=zo;class SimpleButton extends Widget$1{constructor(e,t){super(),this._opts=e;let r="button";this._opts.className&&(r=r+" "+this._opts.className),this._opts.icon&&(r=r+" "+ThemeIcon.asClassName(this._opts.icon)),this._domNode=document.createElement("div"),this._domNode.tabIndex=0,this._domNode.className=r,this._domNode.setAttribute("role","button"),this._domNode.setAttribute("aria-label",this._opts.label),this._register(t.setupDelayedHover(this._domNode,{content:this._opts.label,style:1},e.hoverLifecycleOptions)),this.onclick(this._domNode,s=>{this._opts.onTrigger(),s.preventDefault()}),this.onkeydown(this._domNode,s=>{var a,l;if(s.equals(10)||s.equals(3)){this._opts.onTrigger(),s.preventDefault();return}(l=(a=this._opts).onKeyDown)==null||l.call(a,s)})}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=o.getColor(editorFindMatchHighlightBorder);t&&e.addRule(".monaco-editor .findMatch { border: 1px ".concat(isHighContrast(o.type)?"dotted":"solid"," ").concat(t,"; box-sizing: border-box; }"));const r=o.getColor(editorFindRangeHighlightBorder);r&&e.addRule(".monaco-editor .findScope { border: 1px ".concat(isHighContrast(o.type)?"dashed":"solid"," ").concat(r,"; }"));const s=o.getColor(contrastBorder);s&&e.addRule(".monaco-editor .find-widget { border: 1px solid ".concat(s,"; }"));const a=o.getColor(editorFindMatchForeground);a&&e.addRule(".monaco-editor .findMatchInline { color: ".concat(a,"; }"));const l=o.getColor(editorFindMatchHighlightForeground);l&&e.addRule(".monaco-editor .currentFindMatchInline { color: ".concat(l,"; }"))});var __decorate$2b=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$25=function(o,e){return function(t,r){e(t,r,o)}};let HoverCopyButton=class extends Disposable$1{constructor(e,t,r,s){super(),this._container=e,this._getContent=t,this._clipboardService=r,this._hoverService=s,this._container.classList.add("hover-row-with-copy"),this._button=this._register(new SimpleButton({label:localize(1128,"Copy"),icon:Codicon.copy,onTrigger:()=>this._copyContent(),className:"hover-copy-button"},this._hoverService)),this._container.appendChild(this._button.domNode)}async _copyContent(){const e=this._getContent();e&&(await this._clipboardService.writeText(e),status(localize(1129,"Copied to clipboard")))}};HoverCopyButton=__decorate$2b([__param$25(2,IClipboardService),__param$25(3,IHoverService)],HoverCopyButton);class HoverProviderResult{constructor(e,t,r){this.provider=e,this.hover=t,this.ordinal=r}}async function executeProvider(o,e,t,r,s){const a=await Promise.resolve(o.provideHover(t,r,s)).catch(onUnexpectedExternalError);if(!(!a||!isValid(a)))return new HoverProviderResult(o,a,e)}function getHoverProviderResultsAsAsyncIterable(o,e,t,r,s=!1){const l=o.ordered(e,s).map((c,d)=>executeProvider(c,d,e,t,r));return AsyncIterableProducer.fromPromisesResolveOrder(l).coalesce()}async function getHoversPromise(o,e,t,r,s=!1){const a=[];for await(const l of getHoverProviderResultsAsAsyncIterable(o,e,t,r,s))a.push(l.hover);return a}registerModelAndPositionCommand("_executeHoverProvider",(o,e,t)=>{const r=o.get(ILanguageFeaturesService);return getHoversPromise(r.hoverProvider,e,t,CancellationToken.None)});registerModelAndPositionCommand("_executeHoverProvider_recursive",(o,e,t)=>{const r=o.get(ILanguageFeaturesService);return getHoversPromise(r.hoverProvider,e,t,CancellationToken.None,!0)});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$2a=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$24=function(o,e){return function(t,r){e(t,r,o)}};const $$g=$$m,increaseHoverVerbosityIcon=registerIcon("hover-increase-verbosity",Codicon.add,localize(1130,"Icon for increaseing hover verbosity.")),decreaseHoverVerbosityIcon=registerIcon("hover-decrease-verbosity",Codicon.remove,localize(1131,"Icon for decreasing hover verbosity."));class MarkdownHover{constructor(e,t,r,s,a,l=void 0){this.owner=e,this.range=t,this.contents=r,this.isBeforeContent=s,this.ordinal=a,this.source=l}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}class HoverSource{constructor(e,t,r){this.hover=e,this.hoverProvider=t,this.hoverPosition=r}supportsVerbosityAction(e){var t,r;switch(e){case HoverVerbosityAction$1.Increase:return(t=this.hover.canIncreaseVerbosity)!=null?t:!1;case HoverVerbosityAction$1.Decrease:return(r=this.hover.canDecreaseVerbosity)!=null?r:!1}}}let MarkdownHoverParticipant=class{constructor(e,t,r,s,a,l,c){this._editor=e,this._markdownRendererService=t,this._configurationService=r,this._languageFeaturesService=s,this._keybindingService=a,this._hoverService=l,this._commandService=c,this.hoverOrdinal=3}createLoadingMessage(e){return new MarkdownHover(this,e.range,[new MarkdownString().appendText(localize(1132,"Loading..."))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const r=this._editor.getModel(),s=e.range.startLineNumber,a=r.getLineMaxColumn(s),l=[];let c=1e3;const d=r.getLineLength(s),u=r.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),g=this._editor.getOption(133),f=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:u});let m=!1;g>=0&&d>g&&e.range.startColumn>=g&&(m=!0,l.push(new MarkdownHover(this,e.range,[{value:localize(1133,"Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,c++))),!m&&typeof f=="number"&&d>=f&&l.push(new MarkdownHover(this,e.range,[{value:localize(1134,"Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,c++));let _=!1;for(const v of t){const b=v.range.startLineNumber===s?v.range.startColumn:1,C=v.range.endLineNumber===s?v.range.endColumn:a,y=v.options.hoverMessage;if(!y||isEmptyMarkdownString(y))continue;v.options.beforeContentClassName&&(_=!0);const S=new Range$2(e.range.startLineNumber,b,e.range.startLineNumber,C);l.push(new MarkdownHover(this,S,asArray(y),_,c++))}return l}computeAsync(e,t,r,s){if(!this._editor.hasModel()||e.type!==1)return AsyncIterableProducer.EMPTY;const a=this._editor.getModel(),l=this._languageFeaturesService.hoverProvider;return l.has(a)?this._getMarkdownHovers(l,a,e,s):AsyncIterableProducer.EMPTY}async*_getMarkdownHovers(e,t,r,s){const a=r.range.getStartPosition(),l=getHoverProviderResultsAsAsyncIterable(e,t,a,s);for await(const c of l)if(!isEmptyMarkdownString(c.hover.contents)){const d=c.hover.range?Range$2.lift(c.hover.range):r.range,u=new HoverSource(c.hover,c.provider,a);yield new MarkdownHover(this,d,c.hover.contents,!1,c.ordinal,u)}}renderHoverParts(e,t){return this._renderedHoverParts=new MarkdownRenderedHoverParts(t,e.fragment,this,this._editor,this._commandService,this._keybindingService,this._hoverService,this._configurationService,this._markdownRendererService,e.onContentsChanged),this._renderedHoverParts}handleScroll(e){var t;(t=this._renderedHoverParts)==null||t.handleScroll(e)}getAccessibleContent(e){var t,r;return(r=(t=this._renderedHoverParts)==null?void 0:t.getAccessibleContent(e))!=null?r:""}updateMarkdownHoverVerbosityLevel(e,t){var r;return Promise.resolve((r=this._renderedHoverParts)==null?void 0:r.updateMarkdownHoverPartVerbosityLevel(e,t))}};MarkdownHoverParticipant=__decorate$2a([__param$24(1,IMarkdownRendererService),__param$24(2,IConfigurationService),__param$24(3,ILanguageFeaturesService),__param$24(4,IKeybindingService),__param$24(5,IHoverService),__param$24(6,ICommandService)],MarkdownHoverParticipant);class RenderedMarkdownHoverPart{constructor(e,t,r,s){this.hoverPart=e,this.hoverElement=t,this.disposables=r,this.actionsContainer=s}dispose(){this.disposables.dispose()}}class MarkdownRenderedHoverParts{constructor(e,t,r,s,a,l,c,d,u,g){this._hoverParticipant=r,this._editor=s,this._commandService=a,this._keybindingService=l,this._hoverService=c,this._configurationService=d,this._markdownRendererService=u,this._onFinishedRendering=g,this._ongoingHoverOperations=new Map,this._disposables=new DisposableStore$1,this.renderedHoverParts=this._renderHoverParts(e,t,this._onFinishedRendering),this._disposables.add(toDisposable(()=>{this.renderedHoverParts.forEach(f=>{f.dispose()}),this._ongoingHoverOperations.forEach(f=>{f.tokenSource.dispose(!0)})}))}_renderHoverParts(e,t,r){return e.sort(compareBy(s=>s.ordinal,numberComparator)),e.map(s=>{const a=this._renderHoverPart(s,r);return t.appendChild(a.hoverElement),a})}_renderHoverPart(e,t){const r=this._renderMarkdownHover(e,t),s=r.hoverElement,a=e.source,l=new DisposableStore$1;if(l.add(r),!a)return new RenderedMarkdownHoverPart(e,s,l);const c=a.supportsVerbosityAction(HoverVerbosityAction$1.Increase),d=a.supportsVerbosityAction(HoverVerbosityAction$1.Decrease);if(!c&&!d)return new RenderedMarkdownHoverPart(e,s,l);const u=$$g("div.verbosity-actions");s.prepend(u);const g=$$g("div.verbosity-actions-inner");return u.append(g),l.add(this._renderHoverExpansionAction(g,HoverVerbosityAction$1.Increase,c)),l.add(this._renderHoverExpansionAction(g,HoverVerbosityAction$1.Decrease,d)),new RenderedMarkdownHoverPart(e,s,l,g)}_renderMarkdownHover(e,t){return renderMarkdown(this._editor,e,this._markdownRendererService,t)}_renderHoverExpansionAction(e,t,r){const s=new DisposableStore$1,a=t===HoverVerbosityAction$1.Increase,l=append$2(e,$$g(ThemeIcon.asCSSSelector(a?increaseHoverVerbosityIcon:decreaseHoverVerbosityIcon)));l.tabIndex=0;const c=new WorkbenchHoverDelegate("mouse",void 0,{target:e,position:{hoverPosition:0}},this._configurationService,this._hoverService);if(s.add(this._hoverService.setupManagedHover(c,l,labelForHoverVerbosityAction(this._keybindingService,t))),!r)return l.classList.add("disabled"),s;l.classList.add("enabled");const d=()=>this._commandService.executeCommand(t===HoverVerbosityAction$1.Increase?INCREASE_HOVER_VERBOSITY_ACTION_ID:DECREASE_HOVER_VERBOSITY_ACTION_ID,{focus:!0});return s.add(new ClickAction(l,d)),s.add(new KeyDownAction(l,d,[3,10])),s}handleScroll(e){this.renderedHoverParts.forEach(t=>{const r=t.actionsContainer;if(!r)return;const s=t.hoverElement,l=e.scrollTop+e.height,c=s.offsetTop,d=s.clientHeight,u=c+d,g=22;let f;u<=l||c>=l?f=d-g:f=l-c-g,r.style.top="".concat(f,"px")})}async updateMarkdownHoverPartVerbosityLevel(e,t){const r=this._editor.getModel();if(!r)return;const s=this._getRenderedHoverPartAtIndex(t),a=s==null?void 0:s.hoverPart.source;if(!s||!(a!=null&&a.supportsVerbosityAction(e)))return;const l=await this._fetchHover(a,r,e);if(!l)return;const c=new HoverSource(l,a.hoverProvider,a.hoverPosition),d=s.hoverPart,u=new MarkdownHover(this._hoverParticipant,d.range,l.contents,d.isBeforeContent,d.ordinal,c),g=this._updateRenderedHoverPart(t,u);if(g)return{hoverPart:u,hoverElement:g.hoverElement}}getAccessibleContent(e){const t=this.renderedHoverParts.findIndex(l=>l.hoverPart===e);if(t===-1)return;const r=this._getRenderedHoverPartAtIndex(t);return r?r.hoverElement.innerText.replace(/[^\S\n\r]+/gu," "):void 0}async _fetchHover(e,t,r){let s=r===HoverVerbosityAction$1.Increase?1:-1;const a=e.hoverProvider,l=this._ongoingHoverOperations.get(a);l&&(l.tokenSource.cancel(),s+=l.verbosityDelta);const c=new CancellationTokenSource$1;this._ongoingHoverOperations.set(a,{verbosityDelta:s,tokenSource:c});const d={verbosityRequest:{verbosityDelta:s,previousHover:e.hover}};let u;try{u=await Promise.resolve(a.provideHover(t,e.hoverPosition,c.token,d))}catch(g){onUnexpectedExternalError(g)}return c.dispose(),this._ongoingHoverOperations.delete(a),u}_updateRenderedHoverPart(e,t){if(e>=this.renderedHoverParts.length||e<0)return;const r=this._renderHoverPart(t,this._onFinishedRendering),s=this.renderedHoverParts[e],a=s.hoverElement,l=r.hoverElement,c=Array.from(l.children);a.replaceChildren(...c);const d=new RenderedMarkdownHoverPart(t,a,r.disposables,r.actionsContainer);return s.dispose(),this.renderedHoverParts[e]=d,d}_getRenderedHoverPartAtIndex(e){return this.renderedHoverParts[e]}dispose(){this._disposables.dispose()}}function renderMarkdownHovers(o,e,t,r){e.sort(compareBy(a=>a.ordinal,numberComparator));const s=[];for(const a of e){const l=renderMarkdown(t,a,r,o.onContentsChanged);o.fragment.appendChild(l.hoverElement),s.push(l)}return new RenderedHoverParts(s)}function renderMarkdown(o,e,t,r){const s=new DisposableStore$1,a=$$g("div.hover-row"),l=$$g("div.hover-row-contents");a.appendChild(l);const c=e.contents;for(const u of c){if(isEmptyMarkdownString(u))continue;const g=$$g("div.markdown-hover"),f=append$2(g,$$g("div.hover-contents")),m=s.add(t.render(u,{context:o,asyncRenderCallback:()=>{f.className="hover-contents code-hover-contents",r()}}));f.appendChild(m.element),l.appendChild(g)}return{hoverPart:e,hoverElement:a,dispose(){s.dispose()}}}function labelForHoverVerbosityAction(o,e){switch(e){case HoverVerbosityAction$1.Increase:{const t=o.lookupKeybinding(INCREASE_HOVER_VERBOSITY_ACTION_ID);return t?localize(1135,"Increase Hover Verbosity ({0})",t.getLabel()):localize(1136,"Increase Hover Verbosity")}case HoverVerbosityAction$1.Decrease:{const t=o.lookupKeybinding(DECREASE_HOVER_VERBOSITY_ACTION_ID);return t?localize(1137,"Decrease Hover Verbosity ({0})",t.getLabel()):localize(1138,"Decrease Hover Verbosity")}}}const $$f=$$m;class SaturationBox extends Disposable$1{constructor(e,t,r){super(),this.model=t,this.pixelRatio=r,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new Emitter$1,this.onColorFlushed=this._onColorFlushed.event,this._domNode=$$f(".saturation-wrap"),append$2(e,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",append$2(this._domNode,this._canvas),this.selection=$$f(".saturation-selection"),append$2(this._domNode,this.selection),this.layout(),this._register(addDisposableListener(this._domNode,EventType$1.POINTER_DOWN,s=>this.onPointerDown(s))),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,s=>this.onDidChangePosition(s.pageX-t.left,s.pageY-t.top),()=>null);const r=addDisposableListener(e.target.ownerDocument,EventType$1.POINTER_UP,()=>{this._onColorFlushed.fire(),r.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(e,t){const r=Math.max(0,Math.min(1,e/this.width)),s=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(r,s),this._onDidChange.fire({s:r,v:s})}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)),r=this._canvas.getContext("2d"),s=r.createLinearGradient(0,0,this._canvas.width,0);s.addColorStop(0,"rgba(255, 255, 255, 1)"),s.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),s.addColorStop(1,"rgba(255, 255, 255, 0)");const a=r.createLinearGradient(0,0,0,this._canvas.height);a.addColorStop(0,"rgba(0, 0, 0, 0)"),a.addColorStop(1,"rgba(0, 0, 0, 1)"),r.rect(0,0,this._canvas.width,this._canvas.height),r.fillStyle=Color.Format.CSS.format(t),r.fill(),r.fillStyle=s,r.fill(),r.fillStyle=a,r.fill()}paintSelection(e,t){this.selection.style.left="".concat(e*this.width,"px"),this.selection.style.top="".concat(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 InsertButton extends Disposable$1{constructor(e){super(),this._onClicked=this._register(new Emitter$1),this.onClicked=this._onClicked.event,this._button=append$2(e,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(addDisposableListener(this._button,EventType$1.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}const $$e=$$m;class Strip extends Disposable$1{constructor(e,t,r){super(),this.model=t,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new Emitter$1,this.onColorFlushed=this._onColorFlushed.event,r==="standalone"?(this.domNode=append$2(e,$$e(".standalone-strip")),this.overlay=append$2(this.domNode,$$e(".standalone-overlay"))):(this.domNode=append$2(e,$$e(".strip")),this.overlay=append$2(this.domNode,$$e(".overlay"))),this.slider=append$2(this.domNode,$$e(".slider")),this.slider.style.top="0px",this._register(addDisposableListener(this.domNode,EventType$1.POINTER_DOWN,s=>this.onPointerDown(s))),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),r=getDomNodePagePosition(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,a=>this.onDidChangeTop(a.pageY-r.top),()=>null);const s=addDisposableListener(e.target.ownerDocument,EventType$1.POINTER_UP,()=>{this._onColorFlushed.fire(),s.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="".concat((1-e)*this.height,"px")}}class OpacityStrip extends Strip{constructor(e,t,r){super(e,t,r),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){super.onDidChangeColor(e);const{r:t,g:r,b:s}=e.rgba,a=new Color(new RGBA$1(t,r,s,1)),l=new Color(new RGBA$1(t,r,s,0));this.overlay.style.background="linear-gradient(to bottom, ".concat(a," 0%, ").concat(l," 100%)")}getValue(e){return e.hsva.a}}class HueStrip extends Strip{constructor(e,t,r){super(e,t,r),this.domNode.classList.add("hue-strip")}getValue(e){return 1-e.hsva.h/360}}const $$d=$$m;class ColorPickerBody extends Disposable$1{constructor(e,t,r,s){super(),this.model=t,this.pixelRatio=r,this._insertButton=null,this._domNode=$$d(".colorpicker-body"),append$2(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,s),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,s),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),s==="standalone"&&(this._insertButton=this._register(new InsertButton(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const r=this.model.color.hsva;this.model.color=new Color(new HSVA(r.h,e,t,r.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,r=(1-e)*360;this.model.color=new Color(new HSVA(r===360?0:r,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()}}const $$c=$$m;class CloseButton extends Disposable$1{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$2(e,this._button);const t=document.createElement("div");t.classList.add("close-button-inner-div"),append$2(this._button,t),append$2(t,$$c(".button"+ThemeIcon.asCSSSelector(registerIcon("color-picker-close",Codicon.close,localize(885,"Icon to close the color picker"))))).classList.add("close-icon"),this._register(addDisposableListener(this._button,EventType$1.CLICK,()=>{this._onClicked.fire()}))}}const $$b=$$m;class ColorPickerHeader extends Disposable$1{constructor(e,t,r,s){super(),this.model=t,this.type=s,this._closeButton=null,this._domNode=$$b(".colorpicker-header"),append$2(e,this._domNode),this._pickedColorNode=append$2(this._domNode,$$b(".picked-color")),append$2(this._pickedColorNode,$$b("span.codicon.codicon-color-mode")),this._pickedColorPresentation=append$2(this._pickedColorNode,document.createElement("span")),this._pickedColorPresentation.classList.add("picked-color-presentation");const a=localize(886,"Click to toggle color options (rgb/hsl/hex)");this._pickedColorNode.setAttribute("title",a),this._originalColorNode=append$2(this._domNode,$$b(".original-color")),this._originalColorNode.style.backgroundColor=Color.Format.CSS.format(this.model.originalColor)||"",this.backgroundColor=r.getColorTheme().getColor(editorHoverBackground)||Color.white,this._register(r.onDidColorThemeChange(l=>{this.backgroundColor=l.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.type==="standalone"&&(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:""}}const $$a=$$m;class ColorPickerWidget extends Widget$1{constructor(e,t,r,s,a){super(),this.model=t,this.pixelRatio=r,this._register(PixelRatio.getInstance(getWindow$1(e)).onDidChange(()=>this.layout())),this._domNode=$$a(".colorpicker-widget"),e.appendChild(this._domNode),this.header=this._register(new ColorPickerHeader(this._domNode,this.model,s,a)),this.body=this._register(new ColorPickerBody(this._domNode,this.model,this.pixelRatio,a))}layout(){this.body.layout()}get domNode(){return this._domNode}}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,r){this.presentationIndex=r,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 r=-1;for(let s=0;s<this.colorPresentations.length;s++)if(t.toLowerCase()===this.colorPresentations[s].label){r=s;break}if(r===-1){const s=t.split("(")[0].toLowerCase();for(let a=0;a<this.colorPresentations.length;a++)if(this.colorPresentations[a].label.toLowerCase().startsWith(s)){r=a;break}}r!==-1&&r!==this.presentationIndex&&(this.presentationIndex=r,this._onDidChangePresentation.fire(this.presentation))}flushColor(){this._onColorFlushed.fire(this._color)}}async function createColorHover(o,e,t){const r=o.getValueInRange(e.range),{red:s,green:a,blue:l,alpha:c}=e.color,d=new RGBA$1(Math.round(s*255),Math.round(a*255),Math.round(l*255),c),u=new Color(d),g=await getColorPresentations(o,e,t,CancellationToken.None),f=new ColorPickerModel(u,[],0);return f.colorPresentations=g||[],f.guessColorPresentation(u,r),{range:Range$2.lift(e.range),model:f,provider:t}}function updateEditorModel(o,e,t){var c,d;const r=[],s=(c=t.presentation.textEdit)!=null?c:{range:e,text:t.presentation.label,forceMoveMarkers:!1};r.push(s),t.presentation.additionalTextEdits&&r.push(...t.presentation.additionalTextEdits);const a=Range$2.lift(s.range),l=o.getModel()._setTrackedRange(null,a,3);return o.executeEdits("colorpicker",r),o.pushUndoStop(),(d=o.getModel()._getTrackedRange(l))!=null?d:a}async function updateColorPresentations(o,e,t,r,s){const a=await getColorPresentations(o,{range:r,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},s.provider,CancellationToken.None);e.colorPresentations=a||[]}var __decorate$29=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$23=function(o,e){return function(t,r){e(t,r,o)}};class ColorHover{constructor(e,t,r,s){this.owner=e,this.range=t,this.model=r,this.provider=s,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}static fromBaseColor(e,t){return new ColorHover(e,t.range,t.model,t.provider)}}let HoverColorPickerParticipant=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t,r){return[]}computeAsync(e,t,r,s){return AsyncIterableProducer.fromPromise(this._computeAsync(e,t,r))}async _computeAsync(e,t,r){if(!this._editor.hasModel())return[];if(!this._isValidRequest(r))return[];const s=ColorDetector.get(this._editor);if(!s)return[];for(const a of t){if(!s.isColorDecoration(a))continue;const l=s.getColorData(a.range.getStartPosition());if(l)return[ColorHover.fromBaseColor(this,await createColorHover(this._editor.getModel(),l.colorInfo,l.provider))]}return[]}_isValidRequest(e){const t=this._editor.getOption(168);switch(e){case 0:return t==="hover"||t==="clickAndHover";case 1:return t==="click"||t==="clickAndHover";case 2:return!0}}renderHoverParts(e,t){const r=this._editor;if(t.length===0||!r.hasModel())return new RenderedHoverParts([]);const s=r.getOption(75)+8;e.setMinimumDimensions(new Dimension(302,s));const a=new DisposableStore$1,l=t[0],c=r.getModel(),d=l.model;this._colorPicker=a.add(new ColorPickerWidget(e.fragment,d,r.getOption(163),this._themeService,"hover"));let u=!1,g=new Range$2(l.range.startLineNumber,l.range.startColumn,l.range.endLineNumber,l.range.endColumn);a.add(d.onColorFlushed(async m=>{await updateColorPresentations(c,d,m,g,l),u=!0,g=updateEditorModel(r,g,d)})),a.add(d.onDidChangeColor(m=>{updateColorPresentations(c,d,m,g,l)})),a.add(r.onDidChangeModelContent(m=>{u?u=!1:(e.hide(),r.focus())}));const f={hoverPart:ColorHover.fromBaseColor(this,l),hoverElement:this._colorPicker.domNode,dispose(){a.dispose()}};return new RenderedHoverParts([f])}getAccessibleContent(e){return localize(887,"There is a color picker here.")}handleResize(){var e;(e=this._colorPicker)==null||e.layout()}handleContentsChanged(){var e;(e=this._colorPicker)==null||e.layout()}handleHide(){var e;(e=this._colorPicker)==null||e.dispose(),this._colorPicker=void 0}isColorPickerVisible(){return!!this._colorPicker}};HoverColorPickerParticipant=__decorate$29([__param$23(1,IThemeService)],HoverColorPickerParticipant);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 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.mouseMiddleClickAction=t.mouseMiddleClickAction,this.hasTriggerModifier=hasModifier(e.event,t.triggerModifier),this.isMiddleClick&&t.mouseMiddleClickAction==="ctrlLeftClick"&&(this.isMiddleClick=!1,this.isLeftClick=!0,this.hasTriggerModifier=!0),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,r,s,a){this.mouseMiddleClickAction=a,this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=r,this.triggerSideBySideModifier=s}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier&&this.mouseMiddleClickAction===e.mouseMiddleClickAction}}function createOptions(o,e){return o==="altKey"?isMacintosh?new ClickLinkOptions(57,"metaKey",6,"altKey",e):new ClickLinkOptions(5,"ctrlKey",6,"altKey",e):isMacintosh?new ClickLinkOptions(6,"altKey",57,"metaKey",e):new ClickLinkOptions(6,"altKey",5,"ctrlKey",e)}class ClickLinkGesture extends Disposable$1{constructor(e,t){var r;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=(r=t==null?void 0:t.extractLineNumberFromMouseEvent)!=null?r:(s=>s.target.position?s.target.position.lineNumber:0),this._opts=createOptions(this._editor.getOption(86),this._editor.getOption(87)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(s=>{if(s.hasChanged(86)||s.hasChanged(87)){const a=createOptions(this._editor.getOption(86),this._editor.getOption(87));if(this._opts.equals(a))return;this._opts=a,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(s=>this._onEditorMouseMove(new ClickLinkMouseEvent(s,this._opts)))),this._register(this._editor.onMouseDown(s=>this._onEditorMouseDown(new ClickLinkMouseEvent(s,this._opts)))),this._register(this._editor.onMouseUp(s=>this._onEditorMouseUp(new ClickLinkMouseEvent(s,this._opts)))),this._register(this._editor.onKeyDown(s=>this._onEditorKeyDown(new ClickLinkKeyboardEvent(s,this._opts)))),this._register(this._editor.onKeyUp(s=>this._onEditorKeyUp(new ClickLinkKeyboardEvent(s,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(s=>this._onDidChangeCursorSelection(s))),this._register(this._editor.onDidChangeModel(s=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(s=>{(s.scrollTopChanged||s.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._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&(this._hasTriggerKeyOnMouseDown||e.isMiddleClick&&e.mouseMiddleClickAction==="openLink")&&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()}}class InlayHintAnchor{constructor(e,t){this.range=e,this.direction=t}}class InlayHintItem{constructor(e,t,r){this.hint=e,this.anchor=t,this.provider=r,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}async resolve(e){if(typeof this.provider.resolveInlayHint=="function"){if(this._currentResolve)return await this._currentResolve,e.isCancellationRequested?void 0:this.resolve(e);this._isResolved||(this._currentResolve=this._doResolve(e).finally(()=>this._currentResolve=void 0)),await this._currentResolve}}async _doResolve(e){var t,r,s;try{const a=await Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=(t=a==null?void 0:a.tooltip)!=null?t:this.hint.tooltip,this.hint.label=(r=a==null?void 0:a.label)!=null?r:this.hint.label,this.hint.textEdits=(s=a==null?void 0:a.textEdits)!=null?s:this.hint.textEdits,this._isResolved=!0}catch(a){onUnexpectedExternalError(a),this._isResolved=!1}}}const ar=class ar{static async create(e,t,r,s){const a=[],l=e.ordered(t).reverse().map(c=>r.map(async d=>{try{const u=await c.provideInlayHints(t,d,s);(u!=null&&u.hints.length||c.onDidChangeInlayHints)&&a.push([u!=null?u:ar._emptyInlayHintList,c])}catch(u){onUnexpectedExternalError(u)}}));if(await Promise.all(l.flat()),s.isCancellationRequested||t.isDisposed())throw new CancellationError;return new ar(r,a,t)}constructor(e,t,r){this._disposables=new DisposableStore$1,this.ranges=e,this.provider=new Set;const s=[];for(const[a,l]of t){this._disposables.add(a),this.provider.add(l);for(const c of a.hints){const d=r.validatePosition(c.position);let u="before";const g=ar._getRangeAtPosition(r,d);let f;g.getStartPosition().isBefore(d)?(f=Range$2.fromPositions(g.getStartPosition(),d),u="after"):(f=Range$2.fromPositions(d,g.getEndPosition()),u="before"),s.push(new InlayHintItem(c,new InlayHintAnchor(f,u),l))}}this.items=s.sort((a,l)=>Position$1.compare(a.hint.position,l.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const r=t.lineNumber,s=e.getWordAtPosition(t);if(s)return new Range$2(r,s.startColumn,r,s.endColumn);e.tokenization.tokenizeIfCheap(r);const a=e.tokenization.getLineTokens(r),l=t.column-1,c=a.findTokenIndexAtOffset(l);let d=a.getStartOffset(c),u=a.getEndOffset(c);return u-d===1&&(d===l&&c>1?(d=a.getStartOffset(c-1),u=a.getEndOffset(c-1)):u===l&&c<a.getCount()-1&&(d=a.getStartOffset(c+1),u=a.getEndOffset(c+1))),new Range$2(r,d+1,r,u+1)}};ar._emptyInlayHintList=Object.freeze({dispose(){},hints:[]});let InlayHintsFragments=ar;function asCommandLink(o){var e;return createCommandUri(o.id,...(e=o.arguments)!=null?e:[]).toString()}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}var __decorate$28=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$22=function(o,e){return function(t,r){e(t,r,o)}};let EmbeddedCodeEditorWidget=class extends CodeEditorWidget{constructor(e,t,r,s,a,l,c,d,u,g,f,m,_){super(e,{...s.getRawOptions(),overflowWidgetsDomNode:s.getOverflowWidgetsDomNode()},r,a,l,c,d,u,g,f,m,_),this._parentEditor=s,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(s.onDidChangeConfiguration(v=>this._onParentConfigurationChanged(v)))}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$28([__param$22(4,IInstantiationService),__param$22(5,ICodeEditorService),__param$22(6,ICommandService),__param$22(7,IContextKeyService),__param$22(8,IThemeService),__param$22(9,INotificationService),__param$22(10,IAccessibilityService),__param$22(11,ILanguageConfigurationService),__param$22(12,ILanguageFeaturesService)],EmbeddedCodeEditorWidget);function getOuterEditor(o){const e=o.get(ICodeEditorService).getFocusedCodeEditor();return e instanceof EmbeddedCodeEditorWidget?e.getParentEditor():e}const defaultColor=new Color(new RGBA$1(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,r,s,a,l,c,d){this.id="",this.domNode=e,this.afterLineNumber=t,this.afterColumn=r,this.heightInLines=s,this.showInHiddenAreas=c,this.ordinal=d,this._onDomNodeTop=a,this._onComputedHeight=l}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}}const Ho=class Ho{constructor(e){this._editor=e,this._ruleName=Ho._IdGenerator.nextId(),this._color=null,this._height=-1,this._decorations=this._editor.createDecorationsCollection()}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 ".concat(this._ruleName),"border-style: solid; border-color: transparent; border-bottom-color: ".concat(this._color,"; border-width: ").concat(this._height,"px; bottom: -").concat(this._height,"px !important; margin-left: -").concat(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()}};Ho._IdGenerator=new IdGenerator(".arrow-decoration-");let Arrow=Ho;class ZoneWidget{constructor(e,t={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._isSashResizeHeight=!1,this._viewZone=null,this._disposables=new DisposableStore$1,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(r=>{const s=this._getWidth(r);this.domNode.style.width=s+"px",this.domNode.style.left=this._getLeft(r)+"px",this._onWidth(s)}))}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="".concat(e,"px"),this.container){const r=e-this._decoratingElementsHeight();this.container.style.height="".concat(r,"px");const s=this.editor.getLayoutInfo();this._doLayout(r,this._getWidth(s))}(t=this._resizeSash)==null||t.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const r=Range$2.isIRange(e)?Range$2.lift(e):Range$2.fromPositions(e);this._isShowing=!0,this._showImpl(r,t),this._isShowing=!1,this._positionMarkerId.set([{range:r,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.hide(),this._positionMarkerId.clear(),this._isSashResizeHeight=!1}_decoratingElementsHeight(){var r;const e=this.editor.getOption(75);let t=0;if(this.options.showArrow){const s=Math.round(e/3);t+=2*s}if(this.options.showFrame){const s=(r=this.options.frameWidth)!=null?r:Math.round(e/9);t+=2*s}return t}_getMaximumHeightInLines(){return Math.max(12,this.editor.getLayoutInfo().height/this.editor.getOption(75)*.8)}_showImpl(e,t){const r=e.getStartPosition(),s=this.editor.getLayoutInfo(),a=this._getWidth(s);this.domNode.style.width="".concat(a,"px"),this.domNode.style.left=this._getLeft(s)+"px";const l=document.createElement("div");l.style.overflow="hidden";const c=this.editor.getOption(75),d=this._getMaximumHeightInLines();d!==void 0&&(t=Math.min(t,d));let u=0,g=0;if(this._arrow&&this.options.showArrow&&(u=Math.round(c/3),this._arrow.height=u,this._arrow.show(r)),this.options.showFrame&&(g=Math.round(c/9)),this.editor.changeViewZones(_=>{this._viewZone&&_.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new ViewZoneDelegate(l,r.lineNumber,r.column,t,v=>this._onViewZoneTop(v),v=>this._onViewZoneHeight(v),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=_.addZone(this._viewZone),this._overlayWidget=new OverlayWidgetDelegate(WIDGET_ID+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this._updateSashEnablement(),this.container&&this.options.showFrame){const _=this.options.frameWidth?this.options.frameWidth:g;this.container.style.borderTopWidth=_+"px",this.container.style.borderBottomWidth=_+"px"}const f=t*c-this._decoratingElementsHeight();this.container&&(this.container.style.top=u+"px",this.container.style.height=f+"px",this.container.style.overflow="hidden"),this._doLayout(f,a),this.options.keepEditorSelection||this.editor.setSelection(e);const m=this.editor.getModel();if(m){const _=m.validateRange(new Range$2(e.startLineNumber,1,e.endLineNumber+1,1));this.revealRange(_,_.startLineNumber===m.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,t){const r=this._getMaximumHeightInLines(),s=t&&r!==void 0?Math.min(r,e):e;this._viewZone&&this._viewZone.heightInLines!==s&&(this.editor.changeViewZones(a=>{this._viewZone&&(this._viewZone.heightInLines=s,a.layoutZone(this._viewZone.id))}),this._updateSashEnablement())}_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._getResizeBounds()})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{e=void 0})),this._disposables.add(this._resizeSash.onDidChange(t=>{if(e){const r=(t.currentY-e.startY)/this.editor.getOption(75),s=r<0?Math.ceil(r):Math.floor(r),a=e.heightInLines+s;a>e.minLines&&a<e.maxLines&&(this._isSashResizeHeight=!0,this._relayout(a))}}))}_updateSashEnablement(){if(this._resizeSash){const{minLines:e,maxLines:t}=this._getResizeBounds();this._resizeSash.state=e===t?0:3}}_getResizeBounds(){return{minLines:5,maxLines:35}}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$27=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$21=function(o,e){return function(t,r){e(t,r,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 r=()=>{const s=this._widgets.get(o);s&&s.widget===e&&(s.listener.dispose(),this._widgets.delete(o))};this._widgets.set(o,{widget:e,listener:e.onDidClose(r)})}},1);var PeekContext;(function(o){o.inPeekEditor=new RawContextKey("inReferenceSearchEditor",!0,localize(1316,"Whether the current code editor is embedded inside peek")),o.notInPeekEditor=o.inPeekEditor.toNegated()})(PeekContext||(PeekContext={}));var _r;let PeekContextController=(_r=class{constructor(e,t){e instanceof EmbeddedCodeEditorWidget&&PeekContext.inPeekEditor.bindTo(t)}dispose(){}},_r.ID="editor.contrib.referenceController",_r);PeekContextController=__decorate$27([__param$21(1,IContextKeyService)],PeekContextController);registerEditorContribution(PeekContextController.ID,PeekContextController,0);const defaultOptions={headerBackgroundColor:Color.white,primaryHeadingColor:Color.fromHex("#333333"),secondaryHeadingColor:Color.fromHex("#6c6c6cb3")};let PeekViewWidget=class extends ZoneWidget{constructor(e,t,r){super(e,t),this.instantiationService=r,this._onDidClose=new Emitter$1,this.onDidClose=this._onDidClose.event,mixin(this.options,defaultOptions,!1);const s=observableCodeEditor(this.editor);s.openedPeekWidgets.set(s.openedPeekWidgets.get()+1,void 0)}dispose(){if(!this.disposed){this.disposed=!0,super.dispose(),this._onDidClose.fire(this);const e=observableCodeEditor(this.editor);e.openedPeekWidgets.set(e.openedPeekWidgets.get()-1,void 0)}}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=$$m(".head"),this._bodyElement=$$m(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=$$m(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),addStandardDisposableListener(this._titleElement,"click",a=>this._onTitleClick(a))),append$2(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=$$m("span.filename"),this._secondaryHeading=$$m("span.dirname"),this._metaHeading=$$m("span.meta"),append$2(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const r=$$m(".peekview-actions");append$2(this._headElement,r);const s=this._getActionBarOptions();this._actionbarWidget=new ActionBar(r,s),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(this._disposables.add(new Action("peekview.close",localize(1317,"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 r=Math.ceil(this.editor.getOption(75)*1.2),s=Math.round(e-(r+1));this._doLayoutHead(r,t),this._doLayoutBody(s,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height="".concat(e,"px"),this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height="".concat(e,"px"))}};PeekViewWidget=__decorate$27([__param$21(2,IInstantiationService)],PeekViewWidget);const peekViewTitleBackground=registerColor("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:Color.black,hcLight:Color.white},localize(1318,"Background color of the peek view title area.")),peekViewTitleForeground=registerColor("peekViewTitleLabel.foreground",{dark:Color.white,light:Color.black,hcDark:Color.white,hcLight:editorForeground},localize(1319,"Color of the peek view title.")),peekViewTitleInfoForeground=registerColor("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},localize(1320,"Color of the peek view title info.")),peekViewBorder=registerColor("peekView.border",{dark:editorInfoForeground,light:editorInfoForeground,hcDark:contrastBorder,hcLight:contrastBorder},localize(1321,"Color of the peek view borders and arrow.")),peekViewResultsBackground=registerColor("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:Color.black,hcLight:Color.white},localize(1322,"Background color of the peek view result list."));registerColor("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:Color.white,hcLight:editorForeground},localize(1323,"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(1324,"Foreground color for file nodes in the peek view result list."));registerColor("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},localize(1325,"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(1326,"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(1327,"Background color of the peek view editor."));registerColor("peekViewEditorGutter.background",peekViewEditorBackground,localize(1328,"Background color of the gutter in the peek view editor."));registerColor("peekViewEditorStickyScroll.background",peekViewEditorBackground,localize(1329,"Background color of sticky scroll in the peek view editor."));registerColor("peekViewEditorStickyScrollGutter.background",peekViewEditorBackground,localize(1330,"Background color of the gutter part of sticky scroll in the peek view editor."));registerColor("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},localize(1331,"Match highlight color in the peek view result list."));registerColor("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},localize(1332,"Match highlight color in the peek view editor."));registerColor("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize(1333,"Match highlight border in the peek view editor."));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$1.None}}renderElement(e,t,r,s){var d;if((d=r.disposable)==null||d.dispose(),!r.data)return;const a=this.modelProvider();if(a.isResolved(e))return this.renderer.renderElement(a.get(e),e,r.data,s);const l=new CancellationTokenSource$1,c=a.resolve(e,l.token);r.disposable={dispose:()=>l.cancel()},this.renderer.renderPlaceholder(e,r.data),c.then(u=>this.renderer.renderElement(u,e,r.data,s))}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{...e,accessibilityProvider:e.accessibilityProvider&&new PagedAccessibilityProvider(o,e.accessibilityProvider)}}class PagedList{constructor(e,t,r,s,a={}){this.modelDisposables=new DisposableStore$1;const l=()=>this.model,c=s.map(d=>new PagedRenderer(d,l));this.list=new List(e,t,r,c,fromPagedListOptions(l,a))}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$1.map(this.list.onMouseDblClick,({element:e,index:t,browserEvent:r})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:r}))}get onPointer(){return Event$1.map(this.list.onPointer,({element:e,index:t,browserEvent:r})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:r}))}get onDidChangeSelection(){return Event$1.map(this.list.onDidChangeSelection,({elements:e,indexes:t,browserEvent:r})=>({elements:e.map(s=>this._model.get(s)),indexes:t,browserEvent:r}))}get model(){return this._model}set model(e){this.modelDisposables.clear(),this._model=e,this.list.splice(0,this.list.length,range(e.length)),this.modelDisposables.add(e.onDidIncrementLength(t=>this.list.splice(this.list.length,0,range(this.list.length,t))))}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(),this.modelDisposables.dispose()}}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 r,s;if(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);try{(s=(r=this.view).setVisible)==null||s.call(r,e)}catch(a){console.error("Splitview: Failed to set visible view"),console.error(a)}}}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:!0}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,r,s){this.container=e,this.view=t,this.disposable=s,this._cachedVisibleSize=void 0,typeof r=="number"?(this._size=r,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=r.cachedVisibleSize)}layout(e,t){this.layoutContainer(e);try{this.view.layout(this.size,e,t)}catch(r){console.error("Splitview: Failed to layout view"),console.error(r)}}dispose(){this.disposable.dispose()}}class VerticalViewItem extends ViewItem{layoutContainer(e){this.container.style.top="".concat(e,"px"),this.container.style.height="".concat(this.size,"px")}}class HorizontalViewItem extends ViewItem{layoutContainer(e){this.container.style.left="".concat(e,"px"),this.container.style.width="".concat(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(s){return{type:"split",index:s}}o.Split=e;function t(s){return{type:"auto",index:s}}o.Auto=t;function r(s){return{type:"invisible",cachedVisibleSize:s}}o.Invisible=r})(Sizing||(Sizing={}));class SplitView extends Disposable$1{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 s,a,l,c,d;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=(s=t.orientation)!=null?s:0,this.inverseAltBehavior=(a=t.inverseAltBehavior)!=null?a:!1,this.proportionalLayout=(l=t.proportionalLayout)!=null?l:!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$2(this.el,$$m(".sash-container")),this.viewContainer=$$m(".split-view-container"),this.scrollable=this._register(new Scrollable$1({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:u=>scheduleAtNextAnimationFrame(getWindow$1(this.el),u)})),this.scrollableElement=this._register(new SmoothScrollableElement(this.viewContainer,{vertical:this.orientation===0?(c=t.scrollbarVisibility)!=null?c:1:2,horizontal:this.orientation===1?(d=t.scrollbarVisibility)!=null?d:1:2},this.scrollable));const r=this._register(new DomEmitter(this.viewContainer,"scroll")).event;this._register(r(u=>{const g=this.scrollableElement.getScrollPosition(),f=Math.abs(this.viewContainer.scrollLeft-g.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,m=Math.abs(this.viewContainer.scrollTop-g.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(f!==void 0||m!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:f,scrollTop:m})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(u=>{u.scrollTopChanged&&(this.viewContainer.scrollTop=u.scrollTop),u.scrollLeftChanged&&(this.viewContainer.scrollLeft=u.scrollLeft)})),append$2(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||defaultStyles),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach((u,g)=>{const f=isUndefined$2(u.visible)||u.visible?u.size:{type:"invisible",cachedVisibleSize:u.size},m=u.view;this.doAddView(m,f,g,!0)}),this._contentSize=this.viewItems.reduce((u,g)=>u+g.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,r=this.viewItems.length,s){this.doAddView(e,t,r,s)}layout(e,t){const r=Math.max(this.size,this._contentSize);if(this.size=e,this.layoutContext=t,this.proportions){let s=0;for(let a=0;a<this.viewItems.length;a++){const l=this.viewItems[a],c=this.proportions[a];typeof c=="number"?s+=c:e-=l.size}for(let a=0;a<this.viewItems.length;a++){const l=this.viewItems[a],c=this.proportions[a];typeof c=="number"&&s>0&&(l.size=clamp(Math.round(c*e/s),l.minimumSize,l.maximumSize))}}else{const s=range(this.viewItems.length),a=s.filter(c=>this.viewItems[c].priority===1),l=s.filter(c=>this.viewItems[c].priority===2);this.resize(this.viewItems.length-1,e-r,void 0,a,l)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map(e=>e.proportionalLayout&&e.visible?e.size/this._contentSize:void 0))}onSashStart({sash:e,start:t,alt:r}){for(const c of this.viewItems)c.enabled=!1;const s=this.sashItems.findIndex(c=>c.sash===e),a=combinedDisposable(addDisposableListener(this.el.ownerDocument.body,"keydown",c=>l(this.sashDragState.current,c.altKey)),addDisposableListener(this.el.ownerDocument.body,"keyup",()=>l(this.sashDragState.current,!1))),l=(c,d)=>{const u=this.viewItems.map(v=>v.size);let g=Number.NEGATIVE_INFINITY,f=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(d=!d),d)if(s===this.sashItems.length-1){const b=this.viewItems[s];g=(b.minimumSize-b.size)/2,f=(b.maximumSize-b.size)/2}else{const b=this.viewItems[s+1];g=(b.size-b.maximumSize)/2,f=(b.size-b.minimumSize)/2}let m,_;if(!d){const v=range(s,-1),b=range(s+1,this.viewItems.length),C=v.reduce((D,I)=>D+(this.viewItems[I].minimumSize-u[I]),0),y=v.reduce((D,I)=>D+(this.viewItems[I].viewMaximumSize-u[I]),0),S=b.length===0?Number.POSITIVE_INFINITY:b.reduce((D,I)=>D+(u[I]-this.viewItems[I].minimumSize),0),w=b.length===0?Number.NEGATIVE_INFINITY:b.reduce((D,I)=>D+(u[I]-this.viewItems[I].viewMaximumSize),0),E=Math.max(C,w),x=Math.min(S,y),L=this.findFirstSnapIndex(v),k=this.findFirstSnapIndex(b);if(typeof L=="number"){const D=this.viewItems[L],I=Math.floor(D.viewMinimumSize/2);m={index:L,limitDelta:D.visible?E-I:E+I,size:D.size}}if(typeof k=="number"){const D=this.viewItems[k],I=Math.floor(D.viewMinimumSize/2);_={index:k,limitDelta:D.visible?x+I:x-I,size:D.size}}}this.sashDragState={start:c,current:c,index:s,sizes:u,minDelta:g,maxDelta:f,alt:d,snapBefore:m,snapAfter:_,disposable:a}};l(t,r)}onSashChange({current:e}){const{index:t,start:r,sizes:s,alt:a,minDelta:l,maxDelta:c,snapBefore:d,snapAfter:u}=this.sashDragState;this.sashDragState.current=e;const g=e-r,f=this.resize(t,g,s,void 0,void 0,l,c,d,u);if(a){const m=t===this.sashItems.length-1,_=this.viewItems.map(w=>w.size),v=m?t:t+1,b=this.viewItems[v],C=b.size-b.maximumSize,y=b.size-b.minimumSize,S=m?t-1:t+1;this.resize(S,-f,_,void 0,void 0,C,y)}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 r=this.viewItems.indexOf(e);r<0||r>=this.viewItems.length||(t=typeof t=="number"?t:e.size,t=clamp(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&r>0?(this.resize(r-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([r],void 0)))}resizeView(e,t){if(!(e<0||e>=this.viewItems.length)){if(this.state!==State.Idle)throw new Error("Cant modify splitview");this.state=State.Busy;try{const r=range(this.viewItems.length).filter(c=>c!==e),s=[...r.filter(c=>this.viewItems[c].priority===1),e],a=r.filter(c=>this.viewItems[c].priority===2),l=this.viewItems[e];t=Math.round(t),t=clamp(t,l.minimumSize,Math.min(l.maximumSize,this.size)),l.size=t,this.relayout(s,a)}finally{this.state=State.Idle}}}distributeViewSizes(){const e=[];let t=0;for(const c of this.viewItems)c.maximumSize-c.minimumSize>0&&(e.push(c),t+=c.size);const r=Math.floor(t/e.length);for(const c of e)c.size=clamp(r,c.minimumSize,c.maximumSize);const s=range(this.viewItems.length),a=s.filter(c=>this.viewItems[c].priority===1),l=s.filter(c=>this.viewItems[c].priority===2);this.relayout(a,l)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,r=this.viewItems.length,s){if(this.state!==State.Idle)throw new Error("Cant modify splitview");this.state=State.Busy;try{const a=$$m(".split-view-view");r===this.viewItems.length?this.viewContainer.appendChild(a):this.viewContainer.insertBefore(a,this.viewContainer.children.item(r));const l=e.onDidChange(m=>this.onViewChange(g,m)),c=toDisposable(()=>a.remove()),d=combinedDisposable(l,c);let u;typeof t=="number"?u=t:(t.type==="auto"&&(this.areViewsDistributed()?t={type:"distribute"}:t={type:"split",index:t.index}),t.type==="split"?u=this.getViewSize(t.index)/2:t.type==="invisible"?u={cachedVisibleSize:t.cachedVisibleSize}:u=e.minimumSize);const g=this.orientation===0?new VerticalViewItem(a,e,u,d):new HorizontalViewItem(a,e,u,d);if(this.viewItems.splice(r,0,g),this.viewItems.length>1){const m={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},_=this.orientation===0?new Sash(this.sashContainer,{getHorizontalSashTop:D=>this.getSashPosition(D),getHorizontalSashWidth:this.getSashOrthogonalSize},{...m,orientation:1}):new Sash(this.sashContainer,{getVerticalSashLeft:D=>this.getSashPosition(D),getVerticalSashHeight:this.getSashOrthogonalSize},{...m,orientation:0}),v=this.orientation===0?D=>({sash:_,start:D.startY,current:D.currentY,alt:D.altKey}):D=>({sash:_,start:D.startX,current:D.currentX,alt:D.altKey}),C=Event$1.map(_.onDidStart,v)(this.onSashStart,this),S=Event$1.map(_.onDidChange,v)(this.onSashChange,this),E=Event$1.map(_.onDidEnd,()=>this.sashItems.findIndex(D=>D.sash===_))(this.onSashEnd,this),x=_.onDidReset(()=>{const D=this.sashItems.findIndex(N=>N.sash===_),I=range(D,-1),T=range(D+1,this.viewItems.length),M=this.findFirstSnapIndex(I),R=this.findFirstSnapIndex(T);typeof M=="number"&&!this.viewItems[M].visible||typeof R=="number"&&!this.viewItems[R].visible||this._onDidSashReset.fire(D)}),L=combinedDisposable(C,S,E,x,_),k={sash:_,disposable:L};this.sashItems.splice(r-1,0,k)}a.appendChild(e.element);let f;typeof t!="number"&&t.type==="split"&&(f=[t.index]),s||this.relayout([r],f),!s&&typeof t!="number"&&t.type==="distribute"&&this.distributeViewSizes()}finally{this.state=State.Idle}}relayout(e,t){const r=this.viewItems.reduce((s,a)=>s+a.size,0);this.resize(this.viewItems.length-1,this.size-r,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(e,t,r=this.viewItems.map(g=>g.size),s,a,l=Number.NEGATIVE_INFINITY,c=Number.POSITIVE_INFINITY,d,u){if(e<0||e>=this.viewItems.length)return 0;const g=range(e,-1),f=range(e+1,this.viewItems.length);if(a)for(const k of a)pushToStart(g,k),pushToStart(f,k);if(s)for(const k of s)pushToEnd(g,k),pushToEnd(f,k);const m=g.map(k=>this.viewItems[k]),_=g.map(k=>r[k]),v=f.map(k=>this.viewItems[k]),b=f.map(k=>r[k]),C=g.reduce((k,D)=>k+(this.viewItems[D].minimumSize-r[D]),0),y=g.reduce((k,D)=>k+(this.viewItems[D].maximumSize-r[D]),0),S=f.length===0?Number.POSITIVE_INFINITY:f.reduce((k,D)=>k+(r[D]-this.viewItems[D].minimumSize),0),w=f.length===0?Number.NEGATIVE_INFINITY:f.reduce((k,D)=>k+(r[D]-this.viewItems[D].maximumSize),0),E=Math.max(C,w,l),x=Math.min(S,y,c);let L=!1;if(d){const k=this.viewItems[d.index],D=t>=d.limitDelta;L=D!==k.visible,k.setVisible(D,d.size)}if(!L&&u){const k=this.viewItems[u.index],D=t<u.limitDelta;L=D!==k.visible,k.setVisible(D,u.size)}if(L)return this.resize(e,t,r,s,a,l,c);t=clamp(t,E,x);for(let k=0,D=t;k<m.length;k++){const I=m[k],T=clamp(_[k]+D,I.minimumSize,I.maximumSize),M=T-_[k];D-=M,I.size=T}for(let k=0,D=t;k<v.length;k++){const I=v[k],T=clamp(b[k]-D,I.minimumSize,I.maximumSize),M=T-b[k];D+=M,I.size=T}return t}distributeEmptySpace(e){const t=this.viewItems.reduce((c,d)=>c+d.size,0);let r=this.size-t;const s=range(this.viewItems.length-1,-1),a=s.filter(c=>this.viewItems[c].priority===1),l=s.filter(c=>this.viewItems[c].priority===2);for(const c of l)pushToStart(s,c);for(const c of a)pushToEnd(s,c);typeof e=="number"&&pushToEnd(s,e);for(let c=0;r!==0&&c<s.length;c++){const d=this.viewItems[s[c]],u=clamp(d.size+r,d.minimumSize,d.maximumSize),g=u-d.size;r-=g,d.size=u}}layoutViews(){this._contentSize=this.viewItems.reduce((t,r)=>t+r.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(d=>e=d.size-d.minimumSize>0||e);e=!1;const r=this.viewItems.map(d=>e=d.maximumSize-d.size>0||e),s=[...this.viewItems].reverse();e=!1;const a=s.map(d=>e=d.size-d.minimumSize>0||e).reverse();e=!1;const l=s.map(d=>e=d.maximumSize-d.size>0||e).reverse();let c=0;for(let d=0;d<this.sashItems.length;d++){const{sash:u}=this.sashItems[d],g=this.viewItems[d];c+=g.size;const f=!(t[d]&&l[d+1]),m=!(r[d]&&a[d+1]);if(f&&m){const _=range(d,-1),v=range(d+1,this.viewItems.length),b=this.findFirstSnapIndex(_),C=this.findFirstSnapIndex(v),y=typeof b=="number"&&!this.viewItems[b].visible,S=typeof C=="number"&&!this.viewItems[C].visible;y&&a[d]&&(c>0||this.startSnappingEnabled)?u.state=1:S&&t[d]&&(c<this._contentSize||this.endSnappingEnabled)?u.state=2:u.state=0}else f&&!m?u.state=1:!f&&m?u.state=2:u.state=3}}getSashPosition(e){let t=0;for(let r=0;r<this.sashItems.length;r++)if(t+=this.viewItems[r].size,this.sashItems[r].sash===e)return t;return 0}findFirstSnapIndex(e){for(const t of e){const r=this.viewItems[t];if(r.visible&&r.snap)return t}for(const t of e){const r=this.viewItems[t];if(r.visible&&r.maximumSize-r.minimumSize>0)return;if(!r.visible&&r.snap)return t}}areViewsDistributed(){let e,t;for(const r of this.viewItems)if(e=e===void 0?r.size:Math.min(e,r.size),t=t===void 0?r.size:Math.max(t,r.size),t-e>2)return!1;return!0}dispose(){var e;(e=this.sashDragState)==null||e.disposable.dispose(),dispose(this.viewItems),this.viewItems=[],this.sashItems.forEach(t=>t.disposable.dispose()),this.sashItems=[],super.dispose()}}const Vo=class Vo{constructor(e,t,r){this.columns=e,this.getColumnSize=r,this.templateId=Vo.TemplateId,this.renderedTemplates=new Set;const s=new Map(t.map(a=>[a.templateId,a]));this.renderers=[];for(const a of e){const l=s.get(a.templateId);if(!l)throw new Error("Table cell renderer for template id ".concat(a.templateId," not found."));this.renderers.push(l)}}renderTemplate(e){const t=append$2(e,$$m(".monaco-table-tr")),r=[],s=[];for(let l=0;l<this.columns.length;l++){const c=this.renderers[l],d=append$2(t,$$m(".monaco-table-td",{"data-col-index":l}));d.style.width="".concat(this.getColumnSize(l),"px"),r.push(d),s.push(c.renderTemplate(d))}const a={container:e,cellContainers:r,cellTemplateData:s};return this.renderedTemplates.add(a),a}renderElement(e,t,r,s){for(let a=0;a<this.columns.length;a++){const c=this.columns[a].project(e);this.renderers[a].renderElement(c,t,r.cellTemplateData[a],s)}}disposeElement(e,t,r,s){for(let a=0;a<this.columns.length;a++){const l=this.renderers[a];if(l.disposeElement){const d=this.columns[a].project(e);l.disposeElement(d,t,r.cellTemplateData[a],s)}}}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:r}of this.renderedTemplates)r[e].style.width="".concat(t,"px")}};Vo.TemplateId="row";let TableListRenderer=Vo;function asListVirtualDelegate(o){return{getHeight(e){return o.getHeight(e)},getTemplateId(){return TableListRenderer.TemplateId}}}class ColumnHeader extends Disposable$1{get minimumSize(){var e;return(e=this.column.minimumWidth)!=null?e:120}get maximumSize(){var e;return(e=this.column.maximumWidth)!=null?e:Number.POSITIVE_INFINITY}get onDidChange(){var e;return(e=this.column.onDidChangeWidthConstraints)!=null?e:Event$1.None}constructor(e,t){super(),this.column=e,this.index=t,this._onDidLayout=new Emitter$1,this.onDidLayout=this._onDidLayout.event,this.element=$$m(".monaco-table-th",{"data-col-index":t},e.label),e.tooltip&&this._register(getBaseLayerHoverDelegate().setupManagedHover(getDefaultHoverDelegate("mouse"),this.element,e.tooltip))}layout(e){this._onDidLayout.fire([this.index,e])}}const Wo=class Wo{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,r,s,a,l){this.virtualDelegate=r,this.columns=s,this.domId="table_id_".concat(++Wo.InstanceCount),this.disposables=new DisposableStore$1,this.cachedWidth=0,this.cachedHeight=0,this.domNode=append$2(t,$$m(".monaco-table.".concat(this.domId)));const c=s.map((g,f)=>this.disposables.add(new ColumnHeader(g,f))),d={size:c.reduce((g,f)=>g+f.column.weight,0),views:c.map(g=>({size:g.column.weight,view:g}))};this.splitview=this.disposables.add(new SplitView(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:d})),this.splitview.el.style.height="".concat(r.headerRowHeight,"px"),this.splitview.el.style.lineHeight="".concat(r.headerRowHeight,"px");const u=new TableListRenderer(s,a,g=>this.splitview.getViewSize(g));this.list=this.disposables.add(new List(e,this.domNode,asListVirtualDelegate(r),[u],l)),Event$1.any(...c.map(g=>g.onDidLayout))(([g,f])=>u.layoutColumn(g,f),null,this.disposables),this.splitview.onDidSashReset(g=>{const f=s.reduce((_,v)=>_+v.weight,0),m=s[g].weight/f*this.cachedWidth;this.splitview.resizeView(g,m)},null,this.disposables),this.styleElement=createStyleSheet(this.domNode),this.style(unthemedListStyles)}updateOptions(e){this.list.updateOptions(e)}splice(e,t,r=[]){this.list.splice(e,t,r)}getHTMLElement(){return this.domNode}style(e){const t=[];t.push(".monaco-table.".concat(this.domId," > .monaco-split-view2 .monaco-sash.vertical::before {\n top: ").concat(this.virtualDelegate.headerRowHeight+1,"px;\n height: calc(100% - ").concat(this.virtualDelegate.headerRowHeight,"px);\n }")),this.styleElement.textContent=t.join("\n"),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}};Wo.InstanceCount=0;let Table=Wo;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 [".concat(e,"] ").concat(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}}class DiffChange{constructor(e,t,r,s){this.originalStart=e,this.originalLength=t,this.modifiedStart=r,this.modifiedLength=s}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}class StringDiffSequence{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let r=0,s=e.length;r<s;r++)t[r]=e.charCodeAt(r);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,r,s,a){for(let l=0;l<a;l++)r[s+l]=e[t+l]}static Copy2(e,t,r,s,a){for(let l=0;l<a;l++)r[s+l]=e[t+l]}}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,r=null){this.ContinueProcessingPredicate=r,this._originalSequence=e,this._modifiedSequence=t;const[s,a,l]=LcsDiff._getElements(e),[c,d,u]=LcsDiff._getElements(t);this._hasStrings=l&&u,this._originalStringElements=s,this._originalElementsOrHash=a,this._modifiedStringElements=c,this._modifiedElementsOrHash=d,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 r=new Int32Array(t.length);for(let s=0,a=t.length;s<a;s++)r[s]=stringHash$1(t[s],0);return[t,r,!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 r=LcsDiff._getStrictElement(this._originalSequence,e),s=LcsDiff._getStrictElement(this._modifiedSequence,t);return r===s}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,r,s,a){const l=[!1];let c=this.ComputeDiffRecursive(e,t,r,s,l);return a&&(c=this.PrettifyChanges(c)),{quitEarly:l[0],changes:c}}ComputeDiffRecursive(e,t,r,s,a){for(a[0]=!1;e<=t&&r<=s&&this.ElementsAreEqual(e,r);)e++,r++;for(;t>=e&&s>=r&&this.ElementsAreEqual(t,s);)t--,s--;if(e>t||r>s){let f;return r<=s?(Debug.Assert(e===t+1,"originalStart should only be one more than originalEnd"),f=[new DiffChange(e,0,r,s-r+1)]):e<=t?(Debug.Assert(r===s+1,"modifiedStart should only be one more than modifiedEnd"),f=[new DiffChange(e,t-e+1,r,0)]):(Debug.Assert(e===t+1,"originalStart should only be one more than originalEnd"),Debug.Assert(r===s+1,"modifiedStart should only be one more than modifiedEnd"),f=[]),f}const l=[0],c=[0],d=this.ComputeRecursionPoint(e,t,r,s,l,c,a),u=l[0],g=c[0];if(d!==null)return d;if(!a[0]){const f=this.ComputeDiffRecursive(e,u,r,g,a);let m=[];return a[0]?m=[new DiffChange(u+1,t-(u+1)+1,g+1,s-(g+1)+1)]:m=this.ComputeDiffRecursive(u+1,t,g+1,s,a),this.ConcatenateChanges(f,m)}return[new DiffChange(e,t-e+1,r,s-r+1)]}WALKTRACE(e,t,r,s,a,l,c,d,u,g,f,m,_,v,b,C,y,S){let w=null,E=null,x=new DiffChangeHelper,L=t,k=r,D=_[0]-C[0]-s,I=-1073741824,T=this.m_forwardHistory.length-1;do{const M=D+e;M===L||M<k&&u[M-1]<u[M+1]?(f=u[M+1],v=f-D-s,f<I&&x.MarkNextChange(),I=f,x.AddModifiedElement(f+1,v),D=M+1-e):(f=u[M-1]+1,v=f-D-s,f<I&&x.MarkNextChange(),I=f-1,x.AddOriginalElement(f,v+1),D=M-1-e),T>=0&&(u=this.m_forwardHistory[T],e=u[0],L=1,k=u.length-1)}while(--T>=-1);if(w=x.getReverseChanges(),S[0]){let M=_[0]+1,R=C[0]+1;if(w!==null&&w.length>0){const N=w[w.length-1];M=Math.max(M,N.getOriginalEnd()),R=Math.max(R,N.getModifiedEnd())}E=[new DiffChange(M,m-M+1,R,b-R+1)]}else{x=new DiffChangeHelper,L=l,k=c,D=_[0]-C[0]-d,I=1073741824,T=y?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const M=D+a;M===L||M<k&&g[M-1]>=g[M+1]?(f=g[M+1]-1,v=f-D-d,f>I&&x.MarkNextChange(),I=f+1,x.AddOriginalElement(f+1,v+1),D=M+1-a):(f=g[M-1],v=f-D-d,f>I&&x.MarkNextChange(),I=f,x.AddModifiedElement(f+1,v+1),D=M-1-a),T>=0&&(g=this.m_reverseHistory[T],a=g[0],L=1,k=g.length-1)}while(--T>=-1);E=x.getChanges()}return this.ConcatenateChanges(w,E)}ComputeRecursionPoint(e,t,r,s,a,l,c){let d=0,u=0,g=0,f=0,m=0,_=0;e--,r--,a[0]=0,l[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const v=t-e+(s-r),b=v+1,C=new Int32Array(b),y=new Int32Array(b),S=s-r,w=t-e,E=e-r,x=t-s,k=(w-S)%2===0;C[S]=e,y[w]=t,c[0]=!1;for(let D=1;D<=v/2+1;D++){let I=0,T=0;g=this.ClipDiagonalBound(S-D,D,S,b),f=this.ClipDiagonalBound(S+D,D,S,b);for(let R=g;R<=f;R+=2){R===g||R<f&&C[R-1]<C[R+1]?d=C[R+1]:d=C[R-1]+1,u=d-(R-S)-E;const N=d;for(;d<t&&u<s&&this.ElementsAreEqual(d+1,u+1);)d++,u++;if(C[R]=d,d+u>I+T&&(I=d,T=u),!k&&Math.abs(R-w)<=D-1&&d>=y[R])return a[0]=d,l[0]=u,N<=y[R]&&D<=1448?this.WALKTRACE(S,g,f,E,w,m,_,x,C,y,d,t,a,u,s,l,k,c):null}const M=(I-e+(T-r)-D)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(I,M))return c[0]=!0,a[0]=I,l[0]=T,M>0&&D<=1448?this.WALKTRACE(S,g,f,E,w,m,_,x,C,y,d,t,a,u,s,l,k,c):(e++,r++,[new DiffChange(e,t-e+1,r,s-r+1)]);m=this.ClipDiagonalBound(w-D,D,w,b),_=this.ClipDiagonalBound(w+D,D,w,b);for(let R=m;R<=_;R+=2){R===m||R<_&&y[R-1]>=y[R+1]?d=y[R+1]-1:d=y[R-1],u=d-(R-w)-x;const N=d;for(;d>e&&u>r&&this.ElementsAreEqual(d,u);)d--,u--;if(y[R]=d,k&&Math.abs(R-S)<=D&&d<=C[R])return a[0]=d,l[0]=u,N>=C[R]&&D<=1448?this.WALKTRACE(S,g,f,E,w,m,_,x,C,y,d,t,a,u,s,l,k,c):null}if(D<=1447){let R=new Int32Array(f-g+2);R[0]=S-g+1,MyArray.Copy2(C,g,R,1,f-g+1),this.m_forwardHistory.push(R),R=new Int32Array(_-m+2),R[0]=w-m+1,MyArray.Copy2(y,m,R,1,_-m+1),this.m_reverseHistory.push(R)}}return this.WALKTRACE(S,g,f,E,w,m,_,x,C,y,d,t,a,u,s,l,k,c)}PrettifyChanges(e){for(let t=0;t<e.length;t++){const r=e[t],s=t<e.length-1?e[t+1].originalStart:this._originalElementsOrHash.length,a=t<e.length-1?e[t+1].modifiedStart:this._modifiedElementsOrHash.length,l=r.originalLength>0,c=r.modifiedLength>0;for(;r.originalStart+r.originalLength<s&&r.modifiedStart+r.modifiedLength<a&&(!l||this.OriginalElementsAreEqual(r.originalStart,r.originalStart+r.originalLength))&&(!c||this.ModifiedElementsAreEqual(r.modifiedStart,r.modifiedStart+r.modifiedLength));){const u=this.ElementsAreStrictEqual(r.originalStart,r.modifiedStart);if(this.ElementsAreStrictEqual(r.originalStart+r.originalLength,r.modifiedStart+r.modifiedLength)&&!u)break;r.originalStart++,r.modifiedStart++}const d=[null];if(t<e.length-1&&this.ChangesOverlap(e[t],e[t+1],d)){e[t]=d[0],e.splice(t+1,1),t--;continue}}for(let t=e.length-1;t>=0;t--){const r=e[t];let s=0,a=0;if(t>0){const f=e[t-1];s=f.originalStart+f.originalLength,a=f.modifiedStart+f.modifiedLength}const l=r.originalLength>0,c=r.modifiedLength>0;let d=0,u=this._boundaryScore(r.originalStart,r.originalLength,r.modifiedStart,r.modifiedLength);for(let f=1;;f++){const m=r.originalStart-f,_=r.modifiedStart-f;if(m<s||_<a||l&&!this.OriginalElementsAreEqual(m,m+r.originalLength)||c&&!this.ModifiedElementsAreEqual(_,_+r.modifiedLength))break;const b=(m===s&&_===a?5:0)+this._boundaryScore(m,r.originalLength,_,r.modifiedLength);b>u&&(u=b,d=f)}r.originalStart-=d,r.modifiedStart-=d;const g=[null];if(t>0&&this.ChangesOverlap(e[t-1],e[t],g)){e[t-1]=g[0],e.splice(t,1),t++;continue}}if(this._hasStrings)for(let t=1,r=e.length;t<r;t++){const s=e[t-1],a=e[t],l=a.originalStart-s.originalStart-s.originalLength,c=s.originalStart,d=a.originalStart+a.originalLength,u=d-c,g=s.modifiedStart,f=a.modifiedStart+a.modifiedLength,m=f-g;if(l<5&&u<20&&m<20){const _=this._findBetterContiguousSequence(c,u,g,m,l);if(_){const[v,b]=_;(v!==s.originalStart+s.originalLength||b!==s.modifiedStart+s.modifiedLength)&&(s.originalLength=v-s.originalStart,s.modifiedLength=b-s.modifiedStart,a.originalStart=v+l,a.modifiedStart=b+l,a.originalLength=d-a.originalStart,a.modifiedLength=f-a.modifiedStart)}}}return e}_findBetterContiguousSequence(e,t,r,s,a){if(t<a||s<a)return null;const l=e+t-a+1,c=r+s-a+1;let d=0,u=0,g=0;for(let f=e;f<l;f++)for(let m=r;m<c;m++){const _=this._contiguousSequenceScore(f,m,a);_>0&&_>d&&(d=_,u=f,g=m)}return d>0?[u,g]:null}_contiguousSequenceScore(e,t,r){let s=0;for(let a=0;a<r;a++){if(!this.ElementsAreEqual(e+a,t+a))return 0;s+=this._originalStringElements[e+a].length}return s}_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 r=e+t;if(this._OriginalIsBoundary(r-1)||this._OriginalIsBoundary(r))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const r=e+t;if(this._ModifiedIsBoundary(r-1)||this._ModifiedIsBoundary(r))return!0}return!1}_boundaryScore(e,t,r,s){const a=this._OriginalRegionIsBoundary(e,t)?1:0,l=this._ModifiedRegionIsBoundary(r,s)?1:0;return a+l}ConcatenateChanges(e,t){const r=[];if(e.length===0||t.length===0)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],r)){const s=new Array(e.length+t.length-1);return MyArray.Copy(e,0,s,0,e.length-1),s[e.length-1]=r[0],MyArray.Copy(t,1,s,e.length,t.length-1),s}else{const s=new Array(e.length+t.length);return MyArray.Copy(e,0,s,0,e.length),MyArray.Copy(t,0,s,e.length,t.length),s}}ChangesOverlap(e,t,r){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 s=e.originalStart;let a=e.originalLength;const l=e.modifiedStart;let c=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(a=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(c=t.modifiedStart+t.modifiedLength-e.modifiedStart),r[0]=new DiffChange(s,a,l,c),!0}else return r[0]=null,!1}ClipDiagonalBound(e,t,r,s){if(e>=0&&e<s)return e;const a=r,l=s-r-1,c=t%2===0;if(e<0){const d=a%2===0;return c===d?0:1}else{const d=l%2===0;return c===d?s-1:s-2}}}function isFilterResult(o){return!!o&&o.visibility!==void 0}function getVisibleState(o){switch(o){case!0:return 1;case!1:return 0;default:return o}}function isCollapsibleStateUpdate(o){return"collapsible"in o}class IndexTreeModel{constructor(e,t,r={}){var s;this.user=e,this.rootRef=[],this.eventBufferer=new EventBufferer,this._onDidSpliceModel=new Emitter$1,this.onDidSpliceModel=this._onDidSpliceModel.event,this._onDidSpliceRenderedNodes=new Emitter$1,this.onDidSpliceRenderedNodes=this._onDidSpliceRenderedNodes.event,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.refilterDelayer=new Delayer(MicrotaskDelay),this.collapseByDefault=typeof r.collapseByDefault>"u"?!1:r.collapseByDefault,this.allowNonCollapsibleParents=(s=r.allowNonCollapsibleParents)!=null?s:!1,this.filter=r.filter,this.autoExpandSingleChildren=typeof r.autoExpandSingleChildren>"u"?!1:r.autoExpandSingleChildren,this.root={parent:void 0,element:t,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(e,t,r=Iterable.empty(),s={}){if(e.length===0)throw new TreeError(this.user,"Invalid tree location");s.diffIdentityProvider?this.spliceSmart(s.diffIdentityProvider,e,t,r,s):this.spliceSimple(e,t,r,s)}spliceSmart(e,t,r,s=Iterable.empty(),a,l=(c=>(c=a.diffDepth)!=null?c:0)()){const{parentNode:d}=this.getParentNodeWithListIndex(t);if(!d.lastDiffIds)return this.spliceSimple(t,r,s,a);const u=[...s],g=t[t.length-1],f=new LcsDiff({getElements:()=>d.lastDiffIds},{getElements:()=>[...d.children.slice(0,g),...u,...d.children.slice(g+r)].map(C=>e.getId(C.element).toString())}).ComputeDiff(!1);if(f.quitEarly)return d.lastDiffIds=void 0,this.spliceSimple(t,r,u,a);const m=t.slice(0,-1),_=(C,y,S)=>{if(l>0)for(let w=0;w<S;w++)C--,y--,this.spliceSmart(e,[...m,C,0],Number.MAX_SAFE_INTEGER,u[y].children,a,l-1)};let v=Math.min(d.children.length,g+r),b=u.length;for(const C of f.changes.sort((y,S)=>S.originalStart-y.originalStart))_(v,b,v-(C.originalStart+C.originalLength)),v=C.originalStart,b=C.modifiedStart-g,this.spliceSimple([...m,v],C.originalLength,Iterable.slice(u,b,b+C.modifiedLength),a);_(v,b,v)}spliceSimple(e,t,r=Iterable.empty(),{onDidCreateNode:s,onDidDeleteNode:a,diffIdentityProvider:l}){const{parentNode:c,listIndex:d,revealed:u,visible:g}=this.getParentNodeWithListIndex(e),f=[],m=Iterable.map(r,x=>this.createTreeNode(x,c,c.visible?1:0,u,f,s)),_=e[e.length-1];let v=0;for(let x=_;x>=0&&x<c.children.length;x--){const L=c.children[x];if(L.visible){v=L.visibleChildIndex;break}}const b=[];let C=0,y=0;for(const x of m)b.push(x),y+=x.renderNodeCount,x.visible&&(x.visibleChildIndex=v+C++);const S=splice$1(c.children,_,t,b);l?c.lastDiffIds?splice$1(c.lastDiffIds,_,t,b.map(x=>l.getId(x.element).toString())):c.lastDiffIds=c.children.map(x=>l.getId(x.element).toString()):c.lastDiffIds=void 0;let w=0;for(const x of S)x.visible&&w++;if(w!==0)for(let x=_+b.length;x<c.children.length;x++){const L=c.children[x];L.visible&&(L.visibleChildIndex-=w)}if(c.visibleChildrenCount+=C-w,S.length>0&&a){const x=L=>{a(L),L.children.forEach(x)};S.forEach(x)}if(u&&g){const x=S.reduce((L,k)=>L+(k.visible?k.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(c,y-x),this._onDidSpliceRenderedNodes.fire({start:d,deleteCount:x,elements:f})}this._onDidSpliceModel.fire({insertedNodes:b,deletedNodes:S});let E=c;for(;E;){if(E.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}E=E.parent}}rerender(e){if(e.length===0)throw new TreeError(this.user,"Invalid tree location");const{node:t,listIndex:r,revealed:s}=this.getTreeNodeWithListIndex(e);t.visible&&s&&this._onDidSpliceRenderedNodes.fire({start:r,deleteCount:1,elements:[t]})}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:r,revealed:s}=this.getTreeNodeWithListIndex(e);return r&&s?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const r=this.getTreeNode(e);typeof t>"u"&&(t=!r.collapsible);const s={collapsible:t};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,s))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,r){const s=this.getTreeNode(e);typeof t>"u"&&(t=!s.collapsed);const a={collapsed:t,recursive:r||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,a))}_setCollapseState(e,t){const{node:r,listIndex:s,revealed:a}=this.getTreeNodeWithListIndex(e),l=this._setListNodeCollapseState(r,s,a,t);if(r!==this.root&&this.autoExpandSingleChildren&&l&&!isCollapsibleStateUpdate(t)&&r.collapsible&&!r.collapsed&&!t.recursive){let c=-1;for(let d=0;d<r.children.length;d++)if(r.children[d].visible)if(c>-1){c=-1;break}else c=d;c>-1&&this._setCollapseState([...e,c],t)}return l}_setListNodeCollapseState(e,t,r,s){const a=this._setNodeCollapseState(e,s,!1);if(!r||!e.visible||!a)return a;const l=e.renderNodeCount,c=this.updateNodeAfterCollapseChange(e),d=l-(t===-1?0:1);return this._onDidSpliceRenderedNodes.fire({start:t+1,deleteCount:d,elements:c.slice(1)}),a}_setNodeCollapseState(e,t,r){let s;if(e===this.root?s=!1:(isCollapsibleStateUpdate(t)?(s=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(s=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):s=!1,s&&this._onDidChangeCollapseState.fire({node:e,deep:r})),!isCollapsibleStateUpdate(t)&&t.recursive)for(const a of e.children)s=this._setNodeCollapseState(a,t,!0)||s;return s}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._onDidSpliceRenderedNodes.fire({start:0,deleteCount:e,elements:t}),this.refilterDelayer.cancel()}createTreeNode(e,t,r,s,a,l){const c={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},d=this._filterNode(c,r);c.visibility=d,s&&a.push(c);const u=e.children||Iterable.empty(),g=s&&d!==0&&!c.collapsed;let f=0,m=1;for(const _ of u){const v=this.createTreeNode(_,c,d,g,a,l);c.children.push(v),m+=v.renderNodeCount,v.visible&&(v.visibleChildIndex=f++)}return this.allowNonCollapsibleParents||(c.collapsible=c.collapsible||c.children.length>0),c.visibleChildrenCount=f,c.visible=d===2?f>0:d===1,c.visible?c.collapsed||(c.renderNodeCount=m):(c.renderNodeCount=0,s&&a.pop()),l==null||l(c),c}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,r=[];return this._updateNodeAfterCollapseChange(e,r),this._updateAncestorsRenderNodeCount(e.parent,r.length-t),r}_updateNodeAfterCollapseChange(e,t){if(e.visible===!1)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const r of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(r,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,r=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,r),this._updateAncestorsRenderNodeCount(e.parent,r.length-t),r}_updateNodeAfterFilterChange(e,t,r,s=!0){let a;if(e!==this.root){if(a=this._filterNode(e,t),a===0)return e.visible=!1,e.renderNodeCount=0,!1;s&&r.push(e)}const l=r.length;e.renderNodeCount=e===this.root?0:1;let c=!1;if(!e.collapsed||a!==0){let d=0;for(const u of e.children)c=this._updateNodeAfterFilterChange(u,a,r,s&&!e.collapsed)||c,u.visible&&(u.visibleChildIndex=d++);e.visibleChildrenCount=d}else e.visibleChildrenCount=0;return e!==this.root&&(e.visible=a===2?c:a===1,e.visibility=a),e.visible?e.collapsed||(e.renderNodeCount+=r.length-l):(e.renderNodeCount=0,s&&r.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 r=this.filter?this.filter.filter(e.element,t):1;return typeof r=="boolean"?(e.filterData=void 0,r?1:0):isFilterResult(r)?(e.filterData=r.data,getVisibleState(r.visibility)):(e.filterData=void 0,getVisibleState(r))}hasTreeNode(e,t=this.root){if(!e||e.length===0)return!0;const[r,...s]=e;return r<0||r>t.children.length?!1:this.hasTreeNode(s,t.children[r])}getTreeNode(e,t=this.root){if(!e||e.length===0)return t;const[r,...s]=e;if(r<0||r>t.children.length)throw new TreeError(this.user,"Invalid tree location");return this.getTreeNode(s,t.children[r])}getTreeNodeWithListIndex(e){if(e.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:r,revealed:s,visible:a}=this.getParentNodeWithListIndex(e),l=e[e.length-1];if(l<0||l>t.children.length)throw new TreeError(this.user,"Invalid tree location");const c=t.children[l];return{node:c,listIndex:r,revealed:s,visible:a&&c.visible}}getParentNodeWithListIndex(e,t=this.root,r=0,s=!0,a=!0){const[l,...c]=e;if(l<0||l>t.children.length)throw new TreeError(this.user,"Invalid tree location");for(let d=0;d<l;d++)r+=t.children[d].renderNodeCount;return s=s&&!t.collapsed,a=a&&t.visible,c.length===0?{parentNode:t,listIndex:r,revealed:s,visible:a}:this.getParentNodeWithListIndex(c,t.children[l],r+1,s,a)}getNode(e=[]){return this.getTreeNode(e)}getNodeLocation(e){const t=[];let r=e;for(;r.parent;)t.push(r.parent.children.indexOf(r)),r=r.parent;return t.reverse()}getParentNodeLocation(e){if(e.length!==0)return e.length===1?[]:tail(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$1.None,this.disposables=new DisposableStore$1}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(r=>r.element),t)}onDragStart(e,t){var r,s;(s=(r=this.dnd).onDragStart)==null||s.call(r,asTreeDragAndDropData(e),t)}onDragOver(e,t,r,s,a,l=!0){const c=this.dnd.onDragOver(asTreeDragAndDropData(e),t&&t.element,r,s,a),d=this.autoExpandNode!==t;if(d&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),typeof t>"u")return c;if(d&&typeof c!="boolean"&&c.autoExpand&&(this.autoExpandDisposable=disposableTimeout(()=>{const _=this.modelProvider(),v=_.getNodeLocation(t);_.isCollapsed(v)&&_.setCollapsed(v,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof c=="boolean"||!c.accept||typeof c.bubble>"u"||c.feedback){if(!l){const _=typeof c=="boolean"?c:c.accept,v=typeof c=="boolean"?void 0:c.effect;return{accept:_,effect:v,feedback:[r]}}return c}if(c.bubble===1){const _=this.modelProvider(),v=_.getNodeLocation(t),b=_.getParentNodeLocation(v),C=_.getNode(b),y=b&&_.getListIndex(b);return this.onDragOver(e,C,y,s,a,!1)}const u=this.modelProvider(),g=u.getNodeLocation(t),f=u.getListIndex(g),m=u.getListRenderCount(g);return{...c,feedback:range(f,f+m)}}drop(e,t,r,s,a){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(asTreeDragAndDropData(e),t&&t.element,r,s,a)}onDragEnd(e){var t,r;(r=(t=this.dnd).onDragEnd)==null||r.call(t,e)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function asListOptions(o,e,t){return t&&{...t,identityProvider:t.identityProvider&&{getId(r){return t.identityProvider.getId(r.element)}},dnd:t.dnd&&e.add(new TreeNodeListDragAndDrop(o,t.dnd)),multipleSelectionController:t.multipleSelectionController&&{isSelectionSingleChangeEvent(r){return t.multipleSelectionController.isSelectionSingleChangeEvent({...r,element:r.element})},isSelectionRangeChangeEvent(r){return t.multipleSelectionController.isSelectionRangeChangeEvent({...r,element:r.element})}},accessibilityProvider:t.accessibilityProvider&&{...t.accessibilityProvider,getSetSize(r){const s=o(),a=s.getNodeLocation(r),l=s.getParentNodeLocation(a);return s.getNode(l).visibleChildrenCount},getPosInSet(r){return r.visibleChildIndex+1},isChecked:t.accessibilityProvider&&t.accessibilityProvider.isChecked?r=>t.accessibilityProvider.isChecked(r.element):void 0,getRole:t.accessibilityProvider&&t.accessibilityProvider.getRole?r=>t.accessibilityProvider.getRole(r.element):()=>"treeitem",getAriaLabel(r){return t.accessibilityProvider.getAriaLabel(r.element)},getWidgetAriaLabel(){return t.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:t.accessibilityProvider&&t.accessibilityProvider.getWidgetRole?()=>t.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:t.accessibilityProvider&&t.accessibilityProvider.getAriaLevel?r=>t.accessibilityProvider.getAriaLevel(r.element):r=>r.depth,getActiveDescendantId:t.accessibilityProvider.getActiveDescendantId&&(r=>t.accessibilityProvider.getActiveDescendantId(r.element))},keyboardNavigationLabelProvider:t.keyboardNavigationLabelProvider&&{...t.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(r){return t.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(r.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 r,s;(s=(r=this.delegate).setDynamicHeight)==null||s.call(r,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$1,this.onDidChange=Event$1.forEach(e,r=>this._elements=r,this.disposables)}dispose(){this.disposables.dispose()}}const lr=class lr{constructor(e,t,r,s,a,l={}){var c;this.renderer=e,this.model=t,this.activeNodes=s,this.renderedIndentGuides=a,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=lr.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=Disposable$1.None,this.disposables=new DisposableStore$1,this.templateId=e.templateId,this.updateOptions(l),Event$1.map(r,d=>d.node)(this.onDidChangeNodeTwistieState,this,this.disposables),(c=e.onDidChangeTwistieState)==null||c.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[r,s]of this.renderedNodes)s.indentSize=lr.DefaultIndent+(r.depth-1)*this.indent,this.renderTreeElement(r,s)}}if(typeof e.renderIndentGuides<"u"){const t=e.renderIndentGuides!==RenderIndentGuides.None;if(t!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=t;for(const[r,s]of this.renderedNodes)this._renderIndentGuides(r,s);if(this.indentGuidesDisposable.dispose(),t){const r=new DisposableStore$1;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,r),this.indentGuidesDisposable=r,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof e.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=append$2(e,$$m(".monaco-tl-row")),r=append$2(t,$$m(".monaco-tl-indent")),s=append$2(t,$$m(".monaco-tl-twistie")),a=append$2(t,$$m(".monaco-tl-contents")),l=this.renderer.renderTemplate(a);return{container:e,indent:r,twistie:s,indentGuidesDisposable:Disposable$1.None,indentSize:0,templateData:l}}renderElement(e,t,r,s){r.indentSize=lr.DefaultIndent+(e.depth-1)*this.indent,this.renderedNodes.set(e,r),this.renderedElements.set(e.element,e),this.renderTreeElement(e,r),this.renderer.renderElement(e,t,r.templateData,{...s,indent:r.indentSize})}disposeElement(e,t,r,s){var a,l;r.indentGuidesDisposable.dispose(),(l=(a=this.renderer).disposeElement)==null||l.call(a,e,t,r.templateData,{...s,indent:r.indentSize}),typeof(s==null?void 0:s.height)=="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){t.twistie.style.paddingLeft="".concat(t.indentSize,"px"),t.indent.style.width="".concat(t.indentSize+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 r=!1;this.renderer.renderTwistie&&(r=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(r||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 r=new DisposableStore$1;for(;;){const s=this.model.getNodeLocation(e),a=this.model.getParentNodeLocation(s);if(!a)break;const l=this.model.getNode(a),c=$$m(".indent-guide",{style:"width: ".concat(this.indent,"px")});this.activeIndentNodes.has(l)&&c.classList.add("active"),t.indent.childElementCount===0?t.indent.appendChild(c):t.indent.insertBefore(c,t.indent.firstElementChild),this.renderedIndentGuides.add(l,c),r.add(toDisposable(()=>this.renderedIndentGuides.delete(l,c))),e=l}t.indentGuidesDisposable=r}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set;e.forEach(r=>{const s=this.model.getNodeLocation(r);try{const a=this.model.getParentNodeLocation(s);r.collapsible&&r.children.length>0&&!r.collapsed?t.add(r):a&&t.add(this.model.getNode(a))}catch(a){}}),this.activeIndentNodes.forEach(r=>{t.has(r)||this.renderedIndentGuides.forEach(r,s=>s.classList.remove("active"))}),t.forEach(r=>{this.activeIndentNodes.has(r)||this.renderedIndentGuides.forEach(r,s=>s.classList.add("active"))}),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),dispose(this.disposables)}};lr.DefaultIndent=8;let TreeRenderer=lr;function contiguousFuzzyScore(o,e){const t=e.toLowerCase().indexOf(o);let r;if(t>-1){r=[Number.MAX_SAFE_INTEGER,0];for(let s=o.length;s>0;s--)r.push(t+s-1)}return r}class FindFilter{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}set findMatchType(e){this._findMatchType=e}get findMatchType(){return this._findMatchType}set findMode(e){this._findMode=e}get findMode(){return this._findMode}constructor(e,t,r){this._keyboardNavigationLabelProvider=e,this._filter=t,this._defaultFindVisibility=r,this._totalCount=0,this._matchCount=0,this._findMatchType=TreeFindMatchType.Fuzzy,this._findMode=TreeFindMode.Highlight,this._pattern="",this._lowercasePattern="",this.disposables=new DisposableStore$1}filter(e,t){let r=1;if(this._filter){const l=this._filter.filter(e,t);if(typeof l=="boolean"?r=l?1:0:isFilterResult(l)?r=getVisibleState(l.visibility):r=l,r===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:FuzzyScore.Default,visibility:r};const s=this._keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),a=Array.isArray(s)?s:[s];for(const l of a){const c=l&&l.toString();if(typeof c>"u")return{data:FuzzyScore.Default,visibility:r};let d;if(this._findMatchType===TreeFindMatchType.Contiguous?d=contiguousFuzzyScore(this._lowercasePattern,c.toLowerCase()):d=fuzzyScore(this._pattern,this._lowercasePattern,0,c,c.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0}),d)return this._matchCount++,a.length===1?{data:d,visibility:r}:{data:{label:c,score:d},visibility:r}}return this._findMode===TreeFindMode.Filter?typeof this._defaultFindVisibility=="number"?this._defaultFindVisibility:this._defaultFindVisibility?this._defaultFindVisibility(e):2:{data:FuzzyScore.Default,visibility:r}}reset(){this._totalCount=0,this._matchCount=0}dispose(){dispose(this.disposables)}}class FindToggles{constructor(e){this.stateMap=new Map(e.map(t=>[t.id,{...t}]))}get(e){const t=this.stateMap.get(e);if(t===void 0)throw new Error("No state found for toggle id ".concat(e));return t.isChecked}set(e,t){const r=this.stateMap.get(e);if(r===void 0)throw new Error("No state found for toggle id ".concat(e));return r.isChecked===t?!1:(r.isChecked=t,!0)}}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={}));var DefaultTreeToggles;(function(o){o.Mode="mode",o.MatchType="matchType"})(DefaultTreeToggles||(DefaultTreeToggles={}));class AbstractFindController{get pattern(){return this._pattern}get placeholder(){return this._placeholder}set placeholder(e){var t;this._placeholder=e,(t=this.widget)==null||t.setPlaceHolder(e)}constructor(e,t,r,s={}){var a,l;this.tree=e,this.filter=t,this.contextViewProvider=r,this.options=s,this._pattern="",this._onDidChangePattern=new Emitter$1,this._onDidChangeOpenState=new Emitter$1,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new DisposableStore$1,this.disposables=new DisposableStore$1,this.toggles=new FindToggles((a=s.toggles)!=null?a:[]),this._placeholder=(l=s.placeholder)!=null?l:localize(20,"Type to search")}isOpened(){return!!this.widget}updateToggleState(e,t){var r;this.toggles.set(e,t),(r=this.widget)==null||r.setToggleState(e,t)}renderMessage(e,t){var r,s,a,l;e?(r=this.tree.options.showNotFoundMessage)==null||r?(s=this.widget)==null||s.showMessage({type:2,content:t!=null?t:localize(21,"No results found.")}):(a=this.widget)==null||a.showMessage({type:2}):(l=this.widget)==null||l.clearMessage()}alertResults(e){alert(e?localize(23,"{0} results",e):localize(22,"No results"))}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}}let FindController$1=class extends AbstractFindController{get mode(){return this.toggles.get(DefaultTreeToggles.Mode)?TreeFindMode.Filter:TreeFindMode.Highlight}set mode(e){if(e===this.mode)return;const t=e===TreeFindMode.Filter;this.updateToggleState(DefaultTreeToggles.Mode,t),this.placeholder=t?localize(24,"Type to filter"):localize(25,"Type to search"),this.filter.findMode=e,this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e)}get matchType(){return this.toggles.get(DefaultTreeToggles.MatchType)?TreeFindMatchType.Fuzzy:TreeFindMatchType.Contiguous}set matchType(e){e!==this.matchType&&(this.updateToggleState(DefaultTreeToggles.MatchType,e===TreeFindMatchType.Fuzzy),this.filter.findMatchType=e,this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(e))}constructor(e,t,r,s={}){var d,u;const a=(d=s.defaultFindMode)!=null?d:TreeFindMode.Highlight,l=(u=s.defaultFindMatchType)!=null?u:TreeFindMatchType.Fuzzy,c=[{id:DefaultTreeToggles.Mode,icon:Codicon.listFilter,title:localize(26,"Filter"),isChecked:a===TreeFindMode.Filter},{id:DefaultTreeToggles.MatchType,icon:Codicon.searchFuzzy,title:localize(27,"Fuzzy Match"),isChecked:l===TreeFindMatchType.Fuzzy}];t.findMatchType=l,t.findMode=a,super(e,t,r,{...s,toggles:c}),this.filter=t,this._onDidChangeMode=new Emitter$1,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new Emitter$1,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this.disposables.add(this.tree.onDidChangeModel(()=>{this.isOpened()&&(this.pattern.length!==0&&this.tree.refilter(),this.render())})),this.disposables.add(this.tree.onWillRefilter(()=>this.filter.reset()))}updateOptions(e={}){e.defaultFindMode!==void 0&&(this.mode=e.defaultFindMode),e.defaultFindMatchType!==void 0&&(this.matchType=e.defaultFindMatchType)}shouldAllowFocus(e){return!this.isOpened()||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!FuzzyScore.isDefault(e.filterData)}render(){const t=this.filter.matchCount===0&&this.filter.totalCount>0&&this.pattern.length>0;this.renderMessage(t),this.pattern.length&&this.alertResults(this.filter.matchCount)}};function stickyScrollNodeStateEquals(o,e){return o.position===e.position&&stickyScrollNodeEquals(o,e)}function stickyScrollNodeEquals(o,e){return o.node.element===e.node.element&&o.startIndex===e.startIndex&&o.height===e.height&&o.endIndex===e.endIndex}class StickyScrollState{constructor(e=[]){this.stickyNodes=e}get count(){return this.stickyNodes.length}equal(e){return equals$2(this.stickyNodes,e.stickyNodes,stickyScrollNodeStateEquals)}contains(e){return this.stickyNodes.some(t=>t.node.element===e.element)}lastNodePartiallyVisible(){if(this.count===0)return!1;const e=this.stickyNodes[this.count-1];if(this.count===1)return e.position!==0;const t=this.stickyNodes[this.count-2];return t.position+t.height!==e.position}animationStateChanged(e){if(!equals$2(this.stickyNodes,e.stickyNodes,stickyScrollNodeEquals)||this.count===0)return!1;const t=this.stickyNodes[this.count-1],r=e.stickyNodes[e.count-1];return t.position!==r.position}}class DefaultStickyScrollDelegate{constrainStickyScrollNodes(e,t,r){for(let s=0;s<e.length;s++){const a=e[s];if(a.position+a.height>r||s>=t)return e.slice(0,s)}return e}}let StickyScrollController$1=class extends Disposable$1{constructor(e,t,r,s,a,l={}){var d,u;super(),this.tree=e,this.model=t,this.view=r,this.treeDelegate=a,this.maxWidgetViewRatio=.4;const c=this.validateStickySettings(l);this.stickyScrollMaxItemCount=c.stickyScrollMaxItemCount,this.stickyScrollDelegate=(d=l.stickyScrollDelegate)!=null?d:new DefaultStickyScrollDelegate,this.paddingTop=(u=l.paddingTop)!=null?u:0,this._widget=this._register(new StickyScrollWidget$1(r.getScrollableElement(),r,e,s,a,l.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(r.onDidScroll(()=>this.update())),this._register(r.onDidChangeContentHeight(()=>this.update())),this._register(e.onDidChangeCollapseState(()=>this.update())),this._register(t.onDidSpliceRenderedNodes(g=>{const f=this._widget.state;if(!f)return;if(g.deleteCount>0&&f.stickyNodes.some(v=>!this.model.has(this.model.getNodeLocation(v.node)))){this.update();return}f.stickyNodes.some(v=>{const b=this.model.getListIndex(this.model.getNodeLocation(v.node));return b>=g.start&&b<g.start+g.deleteCount&&f.contains(v.node)})&&this._widget.rerender()})),this.update()}get height(){return this._widget.height}getNodeAtHeight(e){let t;if(e===0?t=this.view.firstVisibleIndex:t=this.view.indexAt(e+this.view.scrollTop),!(t<0||t>=this.view.length))return this.view.element(t)}update(){const e=this.getNodeAtHeight(this.paddingTop);if(!e||this.tree.scrollTop<=this.paddingTop){this._widget.setState(void 0);return}const t=this.findStickyState(e);this._widget.setState(t)}findStickyState(e){const t=[];let r=e,s=0,a=this.getNextStickyNode(r,void 0,s);for(;a&&(t.push(a),s+=a.height,!(t.length<=this.stickyScrollMaxItemCount&&(r=this.getNextVisibleNode(a),!r)));)a=this.getNextStickyNode(r,a.node,s);const l=this.constrainStickyNodes(t);return l.length?new StickyScrollState(l):void 0}getNextVisibleNode(e){return this.getNodeAtHeight(e.position+e.height)}getNextStickyNode(e,t,r){const s=this.getAncestorUnderPrevious(e,t);if(s&&!(s===e&&(!this.nodeIsUncollapsedParent(e)||this.nodeTopAlignsWithStickyNodesBottom(e,r))))return this.createStickyScrollNode(s,r)}nodeTopAlignsWithStickyNodesBottom(e,t){const r=this.getNodeIndex(e),s=this.view.getElementTop(r),a=t;return this.view.scrollTop===s-a}createStickyScrollNode(e,t){const r=this.treeDelegate.getHeight(e),{startIndex:s,endIndex:a}=this.getNodeRange(e),l=this.calculateStickyNodePosition(a,t,r);return{node:e,position:l,height:r,startIndex:s,endIndex:a}}getAncestorUnderPrevious(e,t=void 0){let r=e,s=this.getParentNode(r);for(;s;){if(s===t)return r;r=s,s=this.getParentNode(r)}if(t===void 0)return r}calculateStickyNodePosition(e,t,r){let s=this.view.getRelativeTop(e);if(s===null&&this.view.firstVisibleIndex===e&&e+1<this.view.length){const u=this.treeDelegate.getHeight(this.view.element(e)),g=this.view.getRelativeTop(e+1);s=g?g-u/this.view.renderHeight:null}if(s===null)return t;const a=this.view.element(e),l=this.treeDelegate.getHeight(a),d=s*this.view.renderHeight+l;return t+r>d&&t<=d?d-r:t}constrainStickyNodes(e){if(e.length===0)return[];const t=this.view.renderHeight*this.maxWidgetViewRatio,r=e[e.length-1];if(e.length<=this.stickyScrollMaxItemCount&&r.position+r.height<=t)return e;const s=this.stickyScrollDelegate.constrainStickyScrollNodes(e,this.stickyScrollMaxItemCount,t);if(!s.length)return[];const a=s[s.length-1];if(s.length>this.stickyScrollMaxItemCount||a.position+a.height>t)throw new Error("stickyScrollDelegate violates constraints");return s}getParentNode(e){const t=this.model.getNodeLocation(e),r=this.model.getParentNodeLocation(t);return r?this.model.getNode(r):void 0}nodeIsUncollapsedParent(e){const t=this.model.getNodeLocation(e);return this.model.getListRenderCount(t)>1}getNodeIndex(e){const t=this.model.getNodeLocation(e);return this.model.getListIndex(t)}getNodeRange(e){const t=this.model.getNodeLocation(e),r=this.model.getListIndex(t);if(r<0)throw new Error("Node not found in tree");const s=this.model.getListRenderCount(t),a=r+s-1;return{startIndex:r,endIndex:a}}nodePositionTopBelowWidget(e){const t=[];let r=this.getParentNode(e);for(;r;)t.push(r),r=this.getParentNode(r);let s=0;for(let a=0;a<t.length&&a<this.stickyScrollMaxItemCount;a++)s+=this.treeDelegate.getHeight(t[a]);return s}domFocus(){this._widget.domFocus()}focusedLast(){return this._widget.focusedLast()}updateOptions(e={}){if(e.paddingTop!==void 0&&(this.paddingTop=e.paddingTop),e.stickyScrollMaxItemCount!==void 0){const t=this.validateStickySettings(e);this.stickyScrollMaxItemCount!==t.stickyScrollMaxItemCount&&(this.stickyScrollMaxItemCount=t.stickyScrollMaxItemCount,this.update())}}validateStickySettings(e){let t=7;return typeof e.stickyScrollMaxItemCount=="number"&&(t=Math.max(e.stickyScrollMaxItemCount,1)),{stickyScrollMaxItemCount:t}}},StickyScrollWidget$1=class{get state(){return this._previousState}constructor(e,t,r,s,a,l){this.view=t,this.tree=r,this.treeRenderers=s,this.treeDelegate=a,this.accessibilityProvider=l,this._previousElements=[],this._previousStateDisposables=new DisposableStore$1,this._rootDomNode=$$m(".monaco-tree-sticky-container.empty"),e.appendChild(this._rootDomNode);const c=$$m(".monaco-tree-sticky-container-shadow");this._rootDomNode.appendChild(c),this.stickyScrollFocus=new StickyScrollFocus(this._rootDomNode,t),this.onDidChangeHasFocus=this.stickyScrollFocus.onDidChangeHasFocus,this.onContextMenu=this.stickyScrollFocus.onContextMenu}get height(){if(!this._previousState)return 0;const e=this._previousState.stickyNodes[this._previousState.count-1];return e.position+e.height}setState(e){const t=!!this._previousState&&this._previousState.count>0,r=!!e&&e.count>0;if(!t&&!r||t&&r&&this._previousState.equal(e))return;if(t!==r&&this.setVisible(r),!r){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const s=e.stickyNodes[e.count-1];this._previousState&&e.animationStateChanged(this._previousState)?this._previousElements[this._previousState.count-1].style.top="".concat(s.position,"px"):this.renderState(e),this._previousState=e,this._rootDomNode.style.height="".concat(s.position+s.height,"px")}renderState(e){this._previousStateDisposables.clear();const t=Array(e.count);for(let r=e.count-1;r>=0;r--){const s=e.stickyNodes[r],{element:a,disposable:l}=this.createElement(s,r,e.count);t[r]=a,this._rootDomNode.appendChild(a),this._previousStateDisposables.add(l)}this.stickyScrollFocus.updateElements(t,e),this._previousElements=t}rerender(){this._previousState&&this.renderState(this._previousState)}createElement(e,t,r){const s=e.startIndex,a=document.createElement("div");a.style.top="".concat(e.position,"px"),this.tree.options.setRowHeight!==!1&&(a.style.height="".concat(e.height,"px")),this.tree.options.setRowLineHeight!==!1&&(a.style.lineHeight="".concat(e.height,"px")),a.classList.add("monaco-tree-sticky-row"),a.classList.add("monaco-list-row"),a.setAttribute("data-index","".concat(s)),a.setAttribute("data-parity",s%2===0?"even":"odd"),a.setAttribute("id",this.view.getElementID(s));const l=this.setAccessibilityAttributes(a,e.node.element,t,r),c=this.treeDelegate.getTemplateId(e.node),d=this.treeRenderers.find(m=>m.templateId===c);if(!d)throw new Error("No renderer found for template id ".concat(c));let u=e.node;u===this.tree.getNode(this.tree.getNodeLocation(e.node))&&(u=new Proxy(e.node,{}));const g=d.renderTemplate(a);d.renderElement(u,e.startIndex,g,{height:e.height});const f=toDisposable(()=>{l.dispose(),d.disposeElement(u,e.startIndex,g,{height:e.height}),d.disposeTemplate(g),a.remove()});return{element:a,disposable:f}}setAccessibilityAttributes(e,t,r,s){var u;if(!this.accessibilityProvider)return Disposable$1.None;this.accessibilityProvider.getSetSize&&e.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(t,r,s))),this.accessibilityProvider.getPosInSet&&e.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(t,r))),this.accessibilityProvider.getRole&&e.setAttribute("role",(u=this.accessibilityProvider.getRole(t))!=null?u:"treeitem");const a=this.accessibilityProvider.getAriaLabel(t),l=a&&typeof a!="string"?a:constObservable(a),c=autorun(g=>{const f=g.readObservable(l);f?e.setAttribute("aria-label",f):e.removeAttribute("aria-label")});typeof a=="string"||a&&e.setAttribute("aria-label",a.get());const d=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(t);return typeof d=="number"&&e.setAttribute("aria-level","".concat(d)),e.setAttribute("aria-selected",String(!1)),c}setVisible(e){this._rootDomNode.classList.toggle("empty",!e),e||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}};class StickyScrollFocus extends Disposable$1{get domHasFocus(){return this._domHasFocus}set domHasFocus(e){e!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(e),this._domHasFocus=e)}constructor(e,t){super(),this.container=e,this.view=t,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new Emitter$1,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new Emitter$1,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this._register(addDisposableListener(this.container,"focus",()=>this.onFocus())),this._register(addDisposableListener(this.container,"blur",()=>this.onBlur())),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(r=>this.onKeyDown(r))),this._register(this.view.onMouseDown(r=>this.onMouseDown(r))),this._register(this.view.onContextMenu(r=>this.handleContextMenu(r)))}handleContextMenu(e){const t=e.browserEvent.target;if(!isStickyScrollContainer(t)&&!isStickyScrollElement(t)){this.focusedLast()&&this.view.domFocus();return}if(!isKeyboardEvent(e.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const l=this.state.stickyNodes.findIndex(c=>{var d;return c.node.element===((d=e.element)==null?void 0:d.element)});if(l===-1)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");this.container.focus(),this.setFocus(l);return}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const s=this.state.stickyNodes[this.focusedIndex].node.element,a=this.elements[this.focusedIndex];this._onContextMenu.fire({element:s,anchor:a,browserEvent:e.browserEvent,isStickyScroll:!0})}onKeyDown(e){if(this.domHasFocus&&this.state){if(e.key==="ArrowUp")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),e.preventDefault(),e.stopPropagation();else if(e.key==="ArrowDown"||e.key==="ArrowRight"){if(this.focusedIndex>=this.state.count-1){const t=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([t]),this.scrollNodeUnderWidget(t,this.state)}else this.setFocusedElement(this.focusedIndex+1);e.preventDefault(),e.stopPropagation()}}}onMouseDown(e){const t=e.browserEvent.target;!isStickyScrollContainer(t)&&!isStickyScrollElement(t)||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation())}updateElements(e,t){if(t&&t.count===0)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if(t&&t.count!==e.length)throw new Error("Sticky scroll focus received illigel state");const r=this.focusedIndex;if(this.removeFocus(),this.elements=e,this.state=t,t){const s=clamp(r,0,t.count-1);this.setFocus(s)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=t?0:-1}setFocusedElement(e){const t=this.state;if(!t)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(e),!(e<t.count-1)&&t.lastNodePartiallyVisible()){const r=t.stickyNodes[e];this.scrollNodeUnderWidget(r.endIndex+1,t)}}scrollNodeUnderWidget(e,t){const r=t.stickyNodes[t.count-1],s=t.count>1?t.stickyNodes[t.count-2]:void 0,a=this.view.getElementTop(e),l=s?s.position+s.height+r.height:r.height;this.view.scrollTop=a-l}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains("sticky-scroll-focused"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(e){if(0>e)throw new Error("addFocus() can not remove focus");if(!this.state&&e>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&e>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const t=this.focusedIndex;t>=0&&this.toggleElementFocus(this.elements[t],!1),e>=0&&this.toggleElementFocus(this.elements[e],!0),this.focusedIndex=e}toggleElementFocus(e,t){this.toggleElementActiveFocus(e,t&&this.domHasFocus),this.toggleElementPassiveFocus(e,t)}toggleCurrentElementActiveFocus(e){this.focusedIndex!==-1&&this.toggleElementActiveFocus(this.elements[this.focusedIndex],e)}toggleElementActiveFocus(e,t){e.classList.toggle("focused",t)}toggleElementPassiveFocus(e,t){e.classList.toggle("passive-focused",t)}toggleStickyScrollFocused(e){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",e)}onFocus(){if(!this.state||this.elements.length===0)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.toggleCurrentElementActiveFocus(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1,this.toggleCurrentElementActiveFocus(!1)}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function 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 asTreeContextMenuEvent(o){const e=isStickyScrollContainer(o.browserEvent.target);return{element:o.element?o.element.element:null,browserEvent:o.browserEvent,anchor:o.anchor,isStickyScroll: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){const r=t;!(r!=null&&r.__forceEvent)&&equals$2(this.nodes,e)||this._set(e,!1,t)}_set(e,t,r){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const s=this;this._onDidChange.fire({get elements(){return s.get()},browserEvent:r})}}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 d=this.createNodeSet(),u=g=>d.delete(g);t.forEach(g=>dfs$1(g,u)),this.set([...d.values()]);return}const r=new Set,s=d=>r.add(this.identityProvider.getId(d.element).toString());t.forEach(d=>dfs$1(d,s));const a=new Map,l=d=>a.set(this.identityProvider.getId(d.element).toString(),d);e.forEach(d=>dfs$1(d,l));const c=[];for(const d of this.nodes){const u=this.identityProvider.getId(d.element).toString();if(!r.has(u))c.push(d);else{const f=a.get(u);f&&f.visible&&c.push(f)}}if(this.nodes.length>0&&c.length===0){const d=this.getFirstViewElementWithTrait();d&&c.push(d)}this._set(c,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class TreeNodeListMouseController extends MouseController{constructor(e,t,r){super(e),this.tree=t,this.stickyScrollProvider=r}onViewPointer(e){if(isButton(e.browserEvent.target)||isEditableElement(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 r=e.browserEvent.target,s=r.classList.contains("monaco-tl-twistie")||r.classList.contains("monaco-icon-label")&&r.classList.contains("folder-icon")&&e.browserEvent.offsetX<16,a=isStickyScrollElement(e.browserEvent.target);let l=!1;if(a?l=!0:typeof this.tree.expandOnlyOnTwistieClick=="function"?l=this.tree.expandOnlyOnTwistieClick(t.element):l=!!this.tree.expandOnlyOnTwistieClick,a)this.handleStickyScrollMouseEvent(e,t);else{if(l&&!s&&e.browserEvent.detail!==2)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&e.browserEvent.detail===2)return super.onViewPointer(e)}if(t.collapsible&&(!a||s)){const c=this.tree.getNodeLocation(t),d=e.browserEvent.altKey;if(this.tree.setFocus([c]),this.tree.toggleCollapsed(c,d),s){e.browserEvent.isHandledByList=!0;return}}a||super.onViewPointer(e)}handleStickyScrollMouseEvent(e,t){if(isMonacoCustomToggle(e.browserEvent.target)||isActionItem(e.browserEvent.target))return;const r=this.stickyScrollProvider();if(!r)throw new Error("Sticky scroll controller not found");const s=this.list.indexOf(t),a=this.list.getElementTop(s),l=r.nodePositionTopBelowWidget(t);this.tree.scrollTop=a-l,this.list.domFocus(),this.list.setFocus([s]),this.list.setSelection([s])}onDoubleClick(e){e.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||e.browserEvent.isHandledByList||super.onDoubleClick(e)}onMouseDown(e){const t=e.browserEvent.target;if(!isStickyScrollContainer(t)&&!isStickyScrollElement(t)){super.onMouseDown(e);return}}onContextMenu(e){const t=e.browserEvent.target;if(!isStickyScrollContainer(t)&&!isStickyScrollElement(t)){super.onContextMenu(e);return}}}class TreeNodeList extends List{constructor(e,t,r,s,a,l,c,d){super(e,t,r,s,d),this.focusTrait=a,this.selectionTrait=l,this.anchorTrait=c}createMouseController(e){return new TreeNodeListMouseController(this,e.tree,e.stickyScrollProvider)}splice(e,t,r=[]){if(super.splice(e,t,r),r.length===0)return;const s=[],a=[];let l;r.forEach((c,d)=>{this.focusTrait.has(c)&&s.push(e+d),this.selectionTrait.has(c)&&a.push(e+d),this.anchorTrait.has(c)&&(l=e+d)}),s.length>0&&super.setFocus(distinct([...super.getFocus(),...s])),a.length>0&&super.setSelection(distinct([...super.getSelection(),...a])),typeof l=="number"&&super.setAnchor(l)}setFocus(e,t,r=!1){super.setFocus(e,t),r||this.focusTrait.set(e.map(s=>this.element(s)),t)}setSelection(e,t,r=!1){super.setSelection(e,t),r||this.selectionTrait.set(e.map(s=>this.element(s)),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$1.filter(Event$1.map(this.view.onMouseDblClick,asTreeMouseEvent$1),e=>e.target!==TreeMouseEventTarget.Filter)}get onMouseOver(){return Event$1.map(this.view.onMouseOver,asTreeMouseEvent$1)}get onMouseOut(){return Event$1.map(this.view.onMouseOut,asTreeMouseEvent$1)}get onContextMenu(){var e,t;return Event$1.any(Event$1.filter(Event$1.map(this.view.onContextMenu,asTreeContextMenuEvent),r=>!r.isStickyScroll),(t=(e=this.stickyScrollController)==null?void 0:e.onContextMenu)!=null?t:Event$1.None)}get onPointer(){return Event$1.map(this.view.onPointer,asTreeMouseEvent$1)}get onKeyDown(){return this.view.onKeyDown}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return Event$1.any(this.onDidChangeModelRelay.event,this.onDidSwapModel.event)}get onDidChangeCollapseState(){return this.onDidChangeCollapseStateRelay.event}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,r,s,a={}){var d,u;this._user=e,this._options=a,this.eventBufferer=new EventBufferer,this.onDidChangeFindOpenState=Event$1.None,this.onDidChangeStickyScrollFocused=Event$1.None,this.disposables=new DisposableStore$1,this.onDidSwapModel=this.disposables.add(new Emitter$1),this.onDidChangeModelRelay=this.disposables.add(new Relay),this.onDidSpliceModelRelay=this.disposables.add(new Relay),this.onDidChangeCollapseStateRelay=this.disposables.add(new Relay),this.onDidChangeRenderNodeCountRelay=this.disposables.add(new Relay),this.onDidChangeActiveNodesRelay=this.disposables.add(new Relay),this._onWillRefilter=new Emitter$1,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new Emitter$1,this.modelDisposables=new DisposableStore$1,a.keyboardNavigationLabelProvider&&((d=a.findWidgetEnabled)==null||d)&&(this.findFilter=new FindFilter(a.keyboardNavigationLabelProvider,a.filter,a.defaultFindVisibility),a={...a,filter:this.findFilter},this.disposables.add(this.findFilter)),this.model=this.createModel(e,a),this.treeDelegate=new ComposedTreeDelegate(r);const l=this.disposables.add(new EventCollection(this.onDidChangeActiveNodesRelay.event)),c=new SetMap;this.renderers=s.map(g=>new TreeRenderer(g,this.model,this.onDidChangeCollapseStateRelay.event,l,c,a));for(const g of this.renderers)this.disposables.add(g);if(this.focus=new Trait(()=>this.view.getFocusedElements()[0],a.identityProvider),this.selection=new Trait(()=>this.view.getSelectedElements()[0],a.identityProvider),this.anchor=new Trait(()=>this.view.getAnchorElement(),a.identityProvider),this.view=new TreeNodeList(e,t,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...asListOptions(()=>this.model,this.disposables,a),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.setupModel(this.model),a.keyboardSupport!==!1){const g=Event$1.chain(this.view.onKeyDown,f=>f.filter(m=>!isEditableElement(m.target)).map(m=>new StandardKeyboardEvent(m)));Event$1.chain(g,f=>f.filter(m=>m.keyCode===15))(this.onLeftArrow,this,this.disposables),Event$1.chain(g,f=>f.filter(m=>m.keyCode===17))(this.onRightArrow,this,this.disposables),Event$1.chain(g,f=>f.filter(m=>m.keyCode===10))(this.onSpace,this,this.disposables)}if(((u=a.findWidgetEnabled)==null||u)&&a.keyboardNavigationLabelProvider&&a.contextViewProvider){const g={styles:a.findWidgetStyles,defaultFindMode:a.defaultFindMode,defaultFindMatchType:a.defaultFindMatchType,showNotFoundMessage:a.showNotFoundMessage};this.findController=this.disposables.add(new FindController$1(this,this.findFilter,a.contextViewProvider,g)),this.focusNavigationFilter=f=>this.findController.shouldAllowFocus(f),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=Event$1.None,this.onDidChangeFindMatchType=Event$1.None;a.enableStickyScroll&&(this.stickyScrollController=new StickyScrollController$1(this,this.model,this.view,this.renderers,this.treeDelegate,a),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=createStyleSheet(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===RenderIndentGuides.Always)}updateOptions(e={}){var t;this._options={...this._options,...e};for(const r of this.renderers)r.updateOptions(e);this.view.updateOptions(this._options),(t=this.findController)==null||t.updateOptions(e),this.updateStickyScroll(e),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===RenderIndentGuides.Always)}get options(){return this._options}updateStickyScroll(e){var t;!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new StickyScrollController$1(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=Event$1.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),(t=this.stickyScrollController)==null||t.updateOptions(e)}getHTMLElement(){return this.view.getHTMLElement()}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}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}get ariaLabel(){return this.view.ariaLabel}set ariaLabel(e){this.view.ariaLabel=e}domFocus(){var e;(e=this.stickyScrollController)!=null&&e.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(e,t){this.view.layout(e,t)}style(e){var l,c;const t=".".concat(this.view.domId),r=[];e.treeIndentGuidesStroke&&(r.push(".monaco-list".concat(t,":hover .monaco-tl-indent > .indent-guide, .monaco-list").concat(t,".always .monaco-tl-indent > .indent-guide { opacity: 1; border-color: ").concat(e.treeInactiveIndentGuidesStroke,"; }")),r.push(".monaco-list".concat(t," .monaco-tl-indent > .indent-guide.active { opacity: 1; border-color: ").concat(e.treeIndentGuidesStroke,"; }")));const s=(l=e.treeStickyScrollBackground)!=null?l:e.listBackground;s&&(r.push(".monaco-list".concat(t," .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ").concat(s,"; }")),r.push(".monaco-list".concat(t," .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ").concat(s,"; }"))),e.treeStickyScrollBorder&&r.push(".monaco-list".concat(t," .monaco-scrollable-element .monaco-tree-sticky-container { border-bottom: 1px solid ").concat(e.treeStickyScrollBorder,"; }")),e.treeStickyScrollShadow&&r.push(".monaco-list".concat(t," .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow { box-shadow: ").concat(e.treeStickyScrollShadow," 0 6px 6px -6px inset; height: 3px; }")),e.listFocusForeground&&(r.push(".monaco-list".concat(t,".sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ").concat(e.listFocusForeground,"; }")),r.push(".monaco-list".concat(t,":not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }")));const a=asCssValueWithDefault(e.listFocusAndSelectionOutline,asCssValueWithDefault(e.listSelectionOutline,(c=e.listFocusOutline)!=null?c:""));a&&(r.push(".monaco-list".concat(t,".sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ").concat(a,"; outline-offset: -1px;}")),r.push(".monaco-list".concat(t,":not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}"))),e.listFocusOutline&&(r.push(".monaco-list".concat(t,".sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }")),r.push(".monaco-list".concat(t,":not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }")),r.push(".context-menu-visible .monaco-list".concat(t,".last-focused.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.passive-focused { outline: 1px solid ").concat(e.listFocusOutline,"; outline-offset: -1px; }")),r.push(".context-menu-visible .monaco-list".concat(t,".last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }")),r.push(".context-menu-visible .monaco-list".concat(t,".last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }"))),this.styleElement.textContent=r.join("\n"),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){this.eventBufferer.bufferEvents(()=>{const r=e.map(a=>this.model.getNode(a));this.selection.set(r,t);const s=e.map(a=>this.model.getListIndex(a)).filter(a=>a>-1);this.view.setSelection(s,t,!0)})}getSelection(){return this.selection.get()}setFocus(e,t){this.eventBufferer.bufferEvents(()=>{const r=e.map(a=>this.model.getNode(a));this.focus.set(r,t);const s=e.map(a=>this.model.getListIndex(a)).filter(a=>a>-1);this.view.setFocus(s,t,!0)})}focusNext(e=1,t=!1,r,s=isKeyboardEvent(r)&&r.altKey?void 0:this.focusNavigationFilter){this.view.focusNext(e,t,r,s)}focusPrevious(e=1,t=!1,r,s=isKeyboardEvent(r)&&r.altKey?void 0:this.focusNavigationFilter){this.view.focusPrevious(e,t,r,s)}focusNextPage(e,t=isKeyboardEvent(e)&&e.altKey?void 0:this.focusNavigationFilter){return this.view.focusNextPage(e,t)}focusPreviousPage(e,t=isKeyboardEvent(e)&&e.altKey?void 0:this.focusNavigationFilter){return this.view.focusPreviousPage(e,t,()=>{var r,s;return(s=(r=this.stickyScrollController)==null?void 0:r.height)!=null?s:0})}focusLast(e,t=isKeyboardEvent(e)&&e.altKey?void 0:this.focusNavigationFilter){this.view.focusLast(e,t)}focusFirst(e,t=isKeyboardEvent(e)&&e.altKey?void 0:this.focusNavigationFilter){this.view.focusFirst(e,t)}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const r=this.model.getListIndex(e);if(r!==-1)if(!this.stickyScrollController)this.view.reveal(r,t);else{const s=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(e));this.view.reveal(r,t,s)}}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const r=t[0],s=this.model.getNodeLocation(r);if(!this.model.setCollapsed(s,!0)){const l=this.model.getParentNodeLocation(s);if(!l)return;const c=this.model.getListIndex(l);this.view.reveal(c),this.view.setFocus([c])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const r=t[0],s=this.model.getNodeLocation(r);if(!this.model.setCollapsed(s,!1)){if(!r.children.some(d=>d.visible))return;const[l]=this.view.getFocus(),c=l+1;this.view.reveal(c),this.view.setFocus([c])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const r=t[0],s=this.model.getNodeLocation(r),a=e.browserEvent.altKey;this.model.setCollapsed(s,void 0,a)}setupModel(e){this.modelDisposables.clear(),this.modelDisposables.add(e.onDidSpliceRenderedNodes(({start:a,deleteCount:l,elements:c})=>this.view.splice(a,l,c)));const t=Event$1.forEach(e.onDidSpliceModel,a=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(a),this.selection.onDidModelSplice(a)})},this.modelDisposables);t(()=>null,null,this.modelDisposables);const r=this.modelDisposables.add(new Emitter$1),s=this.modelDisposables.add(new Delayer(0));this.modelDisposables.add(Event$1.any(t,this.focus.onDidChange,this.selection.onDidChange)(()=>{s.trigger(()=>{const a=new Set;for(const l of this.focus.getNodes())a.add(l);for(const l of this.selection.getNodes())a.add(l);r.fire([...a.values()])})})),this.onDidChangeActiveNodesRelay.input=r.event,this.onDidChangeModelRelay.input=Event$1.signal(e.onDidSpliceModel),this.onDidChangeCollapseStateRelay.input=e.onDidChangeCollapseState,this.onDidChangeRenderNodeCountRelay.input=e.onDidChangeRenderNodeCount,this.onDidSpliceModelRelay.input=e.onDidSpliceModel}dispose(){var e;dispose(this.disposables),(e=this.stickyScrollController)==null||e.dispose(),this.view.dispose(),this.modelDisposables.dispose()}}class ObjectTreeModel{constructor(e,t={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new IndexTreeModel(e,null,t),this.onDidSpliceModel=this.model.onDidSpliceModel,this.onDidSpliceRenderedNodes=this.model.onDidSpliceRenderedNodes,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,t.sorter&&(this.sorter={compare(r,s){return t.sorter.compare(r.element,s.element)}}),this.identityProvider=t.identityProvider}setChildren(e,t=Iterable.empty(),r={}){const s=this.getElementLocation(e);this._setChildren(s,this.preserveCollapseState(t),r)}_setChildren(e,t=Iterable.empty(),r){const s=new Set,a=new Set,l=d=>{var g;if(d.element===null)return;const u=d;if(s.add(u.element),this.nodes.set(u.element,u),this.identityProvider){const f=this.identityProvider.getId(u.element).toString();a.add(f),this.nodesByIdentity.set(f,u)}(g=r.onDidCreateNode)==null||g.call(r,u)},c=d=>{var g;if(d.element===null)return;const u=d;if(s.has(u.element)||this.nodes.delete(u.element),this.identityProvider){const f=this.identityProvider.getId(u.element).toString();a.has(f)||this.nodesByIdentity.delete(f)}(g=r.onDidDeleteNode)==null||g.call(r,u)};this.model.splice([...e,0],Number.MAX_VALUE,t,{...r,onDidCreateNode:l,onDidDeleteNode:c})}preserveCollapseState(e=Iterable.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),Iterable.map(e,t=>{let r=this.nodes.get(t.element);if(!r&&this.identityProvider){const l=this.identityProvider.getId(t.element).toString();r=this.nodesByIdentity.get(l)}if(!r){let l;return typeof t.collapsed>"u"?l=void 0:t.collapsed===ObjectTreeElementCollapseState.Collapsed||t.collapsed===ObjectTreeElementCollapseState.PreserveOrCollapsed?l=!0:t.collapsed===ObjectTreeElementCollapseState.Expanded||t.collapsed===ObjectTreeElementCollapseState.PreserveOrExpanded?l=!1:l=!!t.collapsed,{...t,children:this.preserveCollapseState(t.children),collapsed:l}}const s=typeof t.collapsible=="boolean"?t.collapsible:r.collapsible;let a;return typeof t.collapsed>"u"||t.collapsed===ObjectTreeElementCollapseState.PreserveOrCollapsed||t.collapsed===ObjectTreeElementCollapseState.PreserveOrExpanded?a=r.collapsed:t.collapsed===ObjectTreeElementCollapseState.Collapsed?a=!0:t.collapsed===ObjectTreeElementCollapseState.Expanded?a=!1:a=!!t.collapsed,{...t,collapsible:s,collapsed:a,children:this.preserveCollapseState(t.children)}})}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}resort(e=null,t=!0){if(!this.sorter)return;const r=this.getElementLocation(e),s=this.model.getNode(r);this._setChildren(r,this.resortChildren(s,t),{})}resortChildren(e,t,r=!0){let s=[...e.children];return(t||r)&&(s=s.sort(this.sorter.compare.bind(this.sorter))),Iterable.map(s,a=>({element:a.element,collapsible:a.collapsible,collapsed:a.collapsed,children:this.resortChildren(a,t,!1)}))}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 r=this.getElementLocation(e);return this.model.setCollapsible(r,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,r){const s=this.getElementLocation(e);return this.model.setCollapsed(s,t,r)}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: ".concat(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: ".concat(e));const r=this.model.getNodeLocation(t),s=this.model.getParentNodeLocation(r);return this.model.getNode(s).element}getElementLocation(e){if(e===null)return[];const t=this.nodes.get(e);if(!t)throw new TreeError(this.user,"Tree element not found: ".concat(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 r,s;for(;[s,r]=Iterable.consume(Iterable.from(o.children),2),!(s.length!==1||s[0].incompressible);)o=s[0],e.push(o.element);return{element:{elements:e,incompressible:t},children:Iterable.map(Iterable.concat(s,r),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),r=>_decompress(r,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?{...o,children:t}:{...o,children:Iterable.map(Iterable.from(o.children),r=>splice(r,e,t))}}const wrapIdentityProvider=o=>({getId(e){return e.elements.map(t=>o.getId(t).toString()).join("\0")}});class CompressedObjectTreeModel{get onDidSpliceRenderedNodes(){return this.model.onDidSpliceRenderedNodes}get onDidSpliceModel(){return this.model.onDidSpliceModel}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(e,t={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new ObjectTreeModel(e,t),this.enabled=typeof t.compressionEnabled>"u"?!0:t.compressionEnabled,this.identityProvider=t.identityProvider}setChildren(e,t=Iterable.empty(),r){const s=r.diffIdentityProvider&&wrapIdentityProvider(r.diffIdentityProvider);if(e===null){const v=Iterable.map(t,this.enabled?compress:noCompress);this._setChildren(null,v,{diffIdentityProvider:s,diffDepth:1/0});return}const a=this.nodes.get(e);if(!a)throw new TreeError(this.user,"Unknown compressed tree node");const l=this.model.getNode(a),c=this.model.getParentNodeLocation(a),d=this.model.getNode(c),u=decompress(l),g=splice(u,e,t),f=(this.enabled?compress:noCompress)(g),m=r.diffIdentityProvider?((v,b)=>r.diffIdentityProvider.getId(v)===r.diffIdentityProvider.getId(b)):void 0;if(equals$2(f.element.elements,l.element.elements,m)){this._setChildren(a,f.children||Iterable.empty(),{diffIdentityProvider:s,diffDepth:1});return}const _=d.children.map(v=>v===l?f:v);this._setChildren(d.element,_,{diffIdentityProvider:s,diffDepth:l.depth-d.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const r=this.model.getNode().children,s=Iterable.map(r,decompress),a=Iterable.map(s,e?compress:noCompress);this._setChildren(null,a,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,r){const s=new Set,a=c=>{for(const d of c.element.elements)s.add(d),this.nodes.set(d,c.element)},l=c=>{for(const d of c.element.elements)s.has(d)||this.nodes.delete(d)};this.model.setChildren(e,t,{...r,onDidCreateNode:a,onDidDeleteNode:l})}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),r=this.model.getParentNodeLocation(t);return r===null?null:r.elements[r.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 r=this.getCompressedNode(e);return this.model.setCollapsible(r,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,r){const s=this.getCompressedNode(e);return this.model.setCollapsed(s,t,r)}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()}resort(e=null,t=!0){const r=this.getCompressedNode(e);this.model.resort(r,t)}getCompressedNode(e){if(e===null)return null;const t=this.nodes.get(e);if(!t)throw new TreeError(this.user,"Tree element not found: ".concat(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 mapOptions(o,e){return{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(o(t))}},sorter:e.sorter&&{compare(t,r){return e.sorter.compare(t.elements[0],r.elements[0])}},filter:e.filter&&{filter(t,r){const s=t.elements;for(let a=0;a<s.length-1;a++){const l=e.filter.filter(s[a],r);r=getVisibleState(isFilterResult(l)?l.visibility:l)}return e.filter.filter(s[s.length-1],r)}}}}class CompressibleObjectTreeModel{get onDidSpliceModel(){return Event$1.map(this.model.onDidSpliceModel,({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map(r=>this.nodeMapper.map(r)),deletedNodes:t.map(r=>this.nodeMapper.map(r))}))}get onDidSpliceRenderedNodes(){return Event$1.map(this.model.onDidSpliceRenderedNodes,({start:e,deleteCount:t,elements:r})=>({start:e,deleteCount:t,elements:r.map(s=>this.nodeMapper.map(s))}))}get onDidChangeCollapseState(){return Event$1.map(this.model.onDidChangeCollapseState,({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t}))}get onDidChangeRenderNodeCount(){return Event$1.map(this.model.onDidChangeRenderNodeCount,e=>this.nodeMapper.map(e))}constructor(e,t={}){this.rootRef=null,this.elementMapper=t.elementMapper||DefaultElementMapper;const r=s=>this.elementMapper(s.elements);this.nodeMapper=new WeakMapper(s=>new CompressedTreeNodeWrapper(r,s)),this.model=new CompressedObjectTreeModel(e,mapOptions(r,t))}setChildren(e,t=Iterable.empty(),r={}){this.model.setChildren(e,t,r)}isCompressionEnabled(){return this.model.isCompressionEnabled()}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,r){return this.model.setCollapsed(e,t,r)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}resort(e=null,t=!0){return this.model.resort(e,t)}getCompressedTreeNode(e=null){return this.model.getNode(e)}}var __decorate$26=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a};class ObjectTree extends AbstractTree{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(e,t,r,s,a={}){super(e,t,r,s,a),this.user=e}setChildren(e,t=Iterable.empty(),r){this.model.setChildren(e,t,r)}rerender(e){if(e===void 0){this.view.rerender();return}this.model.rerender(e)}resort(e,t=!0){this.model.resort(e,t)}hasElement(e){return this.model.has(e)}createModel(e,t){return new ObjectTreeModel(e,t)}}class CompressibleRenderer{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(e,t,r){this._compressedTreeNodeProvider=e,this.stickyScrollDelegate=t,this.renderer=r,this.templateId=r.templateId,r.onDidChangeTwistieState&&(this.onDidChangeTwistieState=r.onDidChangeTwistieState)}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,r,s){let a=this.stickyScrollDelegate.getCompressedNode(e);a||(a=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element)),a.element.elements.length===1?(r.compressedTreeNode=void 0,this.renderer.renderElement(e,t,r.data,s)):(r.compressedTreeNode=a,this.renderer.renderCompressedElements(a,t,r.data,s))}disposeElement(e,t,r,s){var a,l,c,d;r.compressedTreeNode?(l=(a=this.renderer).disposeCompressedElements)==null||l.call(a,r.compressedTreeNode,t,r.data,s):(d=(c=this.renderer).disposeElement)==null||d.call(c,e,t,r.data,s)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){var r,s,a;return(a=(s=(r=this.renderer).renderTwistie)==null?void 0:s.call(r,e,t))!=null?a:!1}}__decorate$26([memoize],CompressibleRenderer.prototype,"compressedTreeNodeProvider",null);class CompressibleStickyScrollDelegate{constructor(e){this.modelProvider=e,this.compressedStickyNodes=new Map}getCompressedNode(e){return this.compressedStickyNodes.get(e)}constrainStickyScrollNodes(e,t,r){if(this.compressedStickyNodes.clear(),e.length===0)return[];for(let s=0;s<e.length;s++){const a=e[s],l=a.position+a.height;if(s+1<e.length&&l+e[s+1].height>r||s>=t-1&&t<e.length){const d=e.slice(0,s),u=e.slice(s),g=this.compressStickyNodes(u);return[...d,g]}}return e}compressStickyNodes(e){if(e.length===0)throw new Error("Can't compress empty sticky nodes");const t=this.modelProvider();if(!t.isCompressionEnabled())return e[0];const r=[];for(let u=0;u<e.length;u++){const g=e[u],f=t.getCompressedTreeNode(g.node.element);if(f.element){if(u!==0&&f.element.incompressible)break;r.push(...f.element.elements)}}if(r.length<2)return e[0];const s=e[e.length-1],a={elements:r,incompressible:!1},l={...s.node,children:[],element:a},c=new Proxy(e[0].node,{}),d={node:c,startIndex:e[0].startIndex,endIndex:s.endIndex,position:e[0].position,height:e[0].height};return this.compressedStickyNodes.set(c,l),d}}function asObjectTreeOptions$1(o,e){return e&&{...e,keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{getKeyboardNavigationLabel(t){let r;try{r=o().getCompressedTreeNode(t)}catch(s){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t)}return r.element.elements.length===1?e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t):e.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(r.element.elements)}}}}class CompressibleObjectTree extends ObjectTree{constructor(e,t,r,s,a={}){const l=()=>this,c=new CompressibleStickyScrollDelegate(()=>this.model),d=s.map(u=>new CompressibleRenderer(l,c,u));super(e,t,r,d,{...asObjectTreeOptions$1(l,a),stickyScrollDelegate:c})}setChildren(e,t=Iterable.empty(),r){this.model.setChildren(e,t,r)}createModel(e,t){return new CompressibleObjectTreeModel(e,t)}updateOptions(e={}){super.updateOptions(e),typeof e.compressionEnabled<"u"&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}function createAsyncDataTreeNode(o){return{...o,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}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,r){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=r,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,r,s){this.renderer.renderElement(this.nodeMapper.map(e),t,r.templateData,s)}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,r,s){var a,l;(l=(a=this.renderer).disposeElement)==null||l.call(a,this.nodeMapper.map(e),t,r.templateData,s)}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(r=>r.element),t)}onDragStart(e,t){var r,s;(s=(r=this.dnd).onDragStart)==null||s.call(r,asAsyncDataTreeDragAndDropData(e),t)}onDragOver(e,t,r,s,a,l=!0){return this.dnd.onDragOver(asAsyncDataTreeDragAndDropData(e),t&&t.element,r,s,a)}drop(e,t,r,s,a){this.dnd.drop(asAsyncDataTreeDragAndDropData(e),t&&t.element,r,s,a)}onDragEnd(e){var t,r;(r=(t=this.dnd).onDragEnd)==null||r.call(t,e)}dispose(){this.dnd.dispose()}}class AsyncFindFilter extends FindFilter{constructor(e,t,r){super(t,r),this.findProvider=e,this.isFindSessionActive=!1}filter(e,t){const r=super.filter(e,t);if(!this.isFindSessionActive||this.findMode===TreeFindMode.Highlight||!this.findProvider.isVisible)return r;const s=isFilterResult(r)?r.visibility:r;return getVisibleState(s)===0?0:this.findProvider.isVisible(e)?r:0}}class AsyncFindController extends FindController$1{constructor(e,t,r,s,a){super(e,r,s,a),this.findProvider=t,this.filter=r,this.activeSession=!1,this.asyncWorkInProgress=!1,this.disposables.add(toDisposable(async()=>{var l,c;this.activeSession&&await((c=(l=this.findProvider).endSession)==null?void 0:c.call(l))}))}render(){if(this.asyncWorkInProgress||!this.activeFindMetadata)return;const e=this.activeFindMetadata.matchCount===0&&this.pattern.length>0;this.renderMessage(e),this.pattern.length&&this.alertResults(this.activeFindMetadata.matchCount)}shouldAllowFocus(e){return this.shouldFocusWhenNavigating(e)}shouldFocusWhenNavigating(e){var r;if(!this.activeSession||!this.activeFindMetadata)return!0;const t=(r=e.element)==null?void 0:r.element;return t&&this.activeFindMetadata.isMatch(t)?!0:!FuzzyScore.isDefault(e.filterData)}}function asObjectTreeOptions(o){return o&&{...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({...e,element:e.element})},isSelectionRangeChangeEvent(e){return o.multipleSelectionController.isSelectionRangeChangeEvent({...e,element:e.element})}},accessibilityProvider:o.accessibilityProvider&&{...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.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&&{...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),stickyScrollDelegate:o.stickyScrollDelegate}}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$1.map(this.tree.onDidChangeFocus,asTreeEvent)}get onDidChangeSelection(){return Event$1.map(this.tree.onDidChangeSelection,asTreeEvent)}get onMouseDblClick(){return Event$1.map(this.tree.onMouseDblClick,asTreeMouseEvent)}get onPointer(){return Event$1.map(this.tree.onPointer,asTreeMouseEvent)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(e,t,r,s,a,l={}){var u;this.user=e,this.dataSource=a,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(g=>new AsyncDataTreeNodeWrapper(g)),this.disposables=new DisposableStore$1,this.identityProvider=l.identityProvider,this.autoExpandSingleChildren=typeof l.autoExpandSingleChildren>"u"?!1:l.autoExpandSingleChildren,this.sorter=l.sorter,this.getDefaultCollapseState=g=>l.collapseByDefault?l.collapseByDefault(g)?ObjectTreeElementCollapseState.PreserveOrCollapsed:ObjectTreeElementCollapseState.PreserveOrExpanded:void 0;let c=!1,d;if(l.findProvider&&((u=l.findWidgetEnabled)==null||u)&&l.keyboardNavigationLabelProvider&&l.contextViewProvider&&(c=!0,d=new AsyncFindFilter(l.findProvider,l.keyboardNavigationLabelProvider,l.filter)),this.tree=this.createTree(e,t,r,s,{...l,findWidgetEnabled:!c,filter:d!=null?d:l.filter}),this.root=createAsyncDataTreeNode({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables),c){const g={styles:l.findWidgetStyles,showNotFoundMessage:l.showNotFoundMessage,defaultFindMatchType:l.defaultFindMatchType,defaultFindMode:l.defaultFindMode};this.findController=this.disposables.add(new AsyncFindController(this.tree,l.findProvider,d,this.tree.options.contextViewProvider,g)),this.focusNavigationFilter=f=>this.findController.shouldFocusWhenNavigating(f),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindOpenState=this.tree.onDidChangeFindOpenState,this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType}createTree(e,t,r,s,a){const l=new ComposedTreeDelegate(r),c=s.map(u=>new AsyncDataTreeRenderer(u,this.nodeMapper,this._onDidChangeNodeSlowState.event)),d=asObjectTreeOptions(a)||{};return new ObjectTree(e,t,l,c,d)}updateOptions(e={}){this.findController&&(e.defaultFindMode!==void 0&&(this.findController.mode=e.defaultFindMode),e.defaultFindMatchType!==void 0&&(this.findController.matchType=e.defaultFindMatchType)),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}async setInput(e,t){this.cancelAllRefreshPromises(),this.root.element=e;const r=t&&{viewState:t,focus:[],selection:[]};await this._updateChildren(e,!0,!1,r),r&&(this.tree.setFocus(r.focus),this.tree.setSelection(r.selection)),t&&typeof t.scrollTop=="number"&&(this.scrollTop=t.scrollTop)}cancelAllRefreshPromises(e=!1){this.refreshPromises.forEach(t=>t.cancel()),this.refreshPromises.clear(),e&&(this.subTreeRefreshPromises.forEach(t=>t.cancel()),this.subTreeRefreshPromises.clear())}async _updateChildren(e=this.root.element,t=!0,r=!1,s,a){if(typeof this.root.element>"u")throw new TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await Event$1.toPromise(this._onDidRender.event));const l=this.getDataNode(e);if(await this.refreshAndRenderNode(l,t,s,a),r)try{this.tree.rerender(l)}catch(c){}}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),r=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(r)}collapse(e,t=!1){const r=this.getDataNode(e);return this.tree.collapse(r===this.root?null:r,t)}async expand(e,t=!1){if(typeof this.root.element>"u")throw new TreeError(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await Event$1.toPromise(this._onDidRender.event));const r=this.getDataNode(e);if(this.tree.hasElement(r)&&!this.tree.isCollapsible(r)||(r.refreshPromise&&(await r.refreshPromise,await Event$1.toPromise(this._onDidRender.event)),r!==this.root&&!r.refreshPromise&&!this.tree.isCollapsed(r)))return!1;const s=this.tree.expand(r===this.root?null:r,t);return r.refreshPromise&&(await r.refreshPromise,await Event$1.toPromise(this._onDidRender.event)),s}setSelection(e,t){const r=e.map(s=>this.getDataNode(s));this.tree.setSelection(r,t)}getSelection(){return this.tree.getSelection().map(t=>t.element)}setFocus(e,t){const r=e.map(s=>this.getDataNode(s));this.tree.setFocus(r,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),r=this.tree.getFirstElementChild(t===this.root?null:t);return r&&r.element}getDataNode(e){var r;const t=this.nodes.get(e===this.root.element?null:e);if(!t){const s=(r=this.identityProvider)==null?void 0:r.getId(e).toString();throw new TreeError(this.user,"Data tree node not found".concat(s?": ".concat(s):""))}return t}async refreshAndRenderNode(e,t,r,s){this.disposables.isDisposed||(await this.refreshNode(e,t,r),!this.disposables.isDisposed&&this.render(e,r,s))}async refreshNode(e,t,r){let s;if(this.subTreeRefreshPromises.forEach((a,l)=>{!s&&intersects(l,e)&&(s=a.then(()=>this.refreshNode(e,t,r)))}),s)return s;if(e!==this.root&&this.tree.getNode(e).collapsed){e.hasChildren=!!this.dataSource.hasChildren(e.element),e.stale=!0,this.setChildren(e,[],t,r);return}return this.doRefreshSubTree(e,t,r)}async doRefreshSubTree(e,t,r){const s=createCancelablePromise(async()=>{const a=await this.doRefreshNode(e,t,r);e.stale=!1,await Promises.settled(a.map(l=>this.doRefreshSubTree(l,t,r)))});return e.refreshPromise=s,this.subTreeRefreshPromises.set(e,s),s.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)}),s}async doRefreshNode(e,t,r){e.hasChildren=!!this.dataSource.hasChildren(e.element);let s;if(!e.hasChildren)s=Promise.resolve(Iterable.empty());else{const a=this.doGetChildren(e);if(isIterable(a))s=Promise.resolve(a);else{const l=timeout(800);l.then(()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)},c=>null),s=a.finally(()=>l.cancel())}}try{const a=await s;return this.setChildren(e,a,t,r)}catch(a){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),isCancellationError(a))return[];throw a}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const r=this.dataSource.getChildren(e.element);return isIterable(r)?this.processChildren(r):(t=createCancelablePromise(async()=>this.processChildren(await r)),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,r,s){const a=[...t];if(e.children.length===0&&a.length===0)return[];const l=new Map,c=new Map;for(const g of e.children)l.set(g.element,g),this.identityProvider&&c.set(g.id,{node:g,collapsed:this.tree.hasElement(g)&&this.tree.isCollapsed(g)});const d=[],u=a.map(g=>{const f=!!this.dataSource.hasChildren(g);if(!this.identityProvider){const b=createAsyncDataTreeNode({element:g,parent:e,hasChildren:f,defaultCollapseState:this.getDefaultCollapseState(g)});return f&&b.defaultCollapseState===ObjectTreeElementCollapseState.PreserveOrExpanded&&d.push(b),b}const m=this.identityProvider.getId(g).toString(),_=c.get(m);if(_){const b=_.node;return l.delete(b.element),this.nodes.delete(b.element),this.nodes.set(g,b),b.element=g,b.hasChildren=f,r?_.collapsed?(b.children.forEach(C=>dfs(C,y=>this.nodes.delete(y.element))),b.children.splice(0,b.children.length),b.stale=!0):d.push(b):f&&!_.collapsed&&d.push(b),b}const v=createAsyncDataTreeNode({element:g,parent:e,id:m,hasChildren:f,defaultCollapseState:this.getDefaultCollapseState(g)});return s&&s.viewState.focus&&s.viewState.focus.indexOf(m)>-1&&s.focus.push(v),s&&s.viewState.selection&&s.viewState.selection.indexOf(m)>-1&&s.selection.push(v),(s&&s.viewState.expanded&&s.viewState.expanded.indexOf(m)>-1||f&&v.defaultCollapseState===ObjectTreeElementCollapseState.PreserveOrExpanded)&&d.push(v),v});for(const g of l.values())dfs(g,f=>this.nodes.delete(f.element));for(const g of u)this.nodes.set(g.element,g);return splice$1(e.children,0,e.children.length,u),e!==this.root&&this.autoExpandSingleChildren&&u.length===1&&d.length===0&&(u[0].forceExpanded=!0,d.push(u[0])),d}render(e,t,r){const s=e.children.map(l=>this.asTreeElement(l,t)),a=r&&{...r,diffIdentityProvider:r.diffIdentityProvider&&{getId(l){return r.diffIdentityProvider.getId(l.element)}}};this.tree.setChildren(e===this.root?null:e,s,a),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 r;return t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1?r=!1:e.forceExpanded?(r=!1,e.forceExpanded=!1):r=e.defaultCollapseState,{element:e,children:e.hasChildren?Iterable.map(e.children,s=>this.asTreeElement(s,t)):[],collapsible:e.hasChildren,collapsed:r}}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,r,s){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=r,this.onDidChangeTwistieState=s,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,r,s){this.renderer.renderElement(this.nodeMapper.map(e),t,r.templateData,s)}renderCompressedElements(e,t,r,s){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,r.templateData,s)}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,r,s){var a,l;(l=(a=this.renderer).disposeElement)==null||l.call(a,this.nodeMapper.map(e),t,r.templateData,s)}disposeCompressedElements(e,t,r,s){var a,l;(l=(a=this.renderer).disposeCompressedElements)==null||l.call(a,this.compressibleNodeMapperProvider().map(e),t,r.templateData,s)}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&&{...e,keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(t){return o.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(r=>r.element))}},stickyScrollDelegate:e.stickyScrollDelegate}}class CompressibleAsyncDataTree extends AsyncDataTree{constructor(e,t,r,s,a,l,c={}){super(e,t,r,a,l,c),this.compressionDelegate=s,this.compressibleNodeMapper=new WeakMapper(d=>new CompressibleAsyncDataTreeNodeWrapper(d)),this.filter=c.filter}createTree(e,t,r,s,a){const l=new ComposedTreeDelegate(r),c=s.map(u=>new CompressibleAsyncDataTreeRenderer(u,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),d=asCompressibleObjectTreeOptions(a)||{};return new CompressibleObjectTree(e,t,l,c,d)}asTreeElement(e,t){return{incompressible:this.compressionDelegate.isIncompressible(e.element),...super.asTreeElement(e,t)}}render(e,t,r){if(!this.identityProvider)return super.render(e,t);const s=_=>this.identityProvider.getId(_).toString(),a=_=>{const v=new Set;for(const b of _){const C=this.tree.getCompressedTreeNode(b===this.root?null:b);if(C.element)for(const y of C.element.elements)v.add(s(y.element))}return v},l=a(this.tree.getSelection()),c=a(this.tree.getFocus());super.render(e,t,r);const d=this.getSelection();let u=!1;const g=this.getFocus();let f=!1;const m=_=>{const v=_.element;if(v)for(let b=0;b<v.elements.length;b++){const C=s(v.elements[b].element),y=v.elements[v.elements.length-1].element;l.has(C)&&d.indexOf(y)===-1&&(d.push(y),u=!0),c.has(C)&&g.indexOf(y)===-1&&(g.push(y),f=!0)}_.children.forEach(m)};m(this.tree.getCompressedTreeNode(e===this.root?null:e)),u&&this.setSelection(d),f&&this.setFocus(g)}processChildren(e){return this.filter&&(e=Iterable.filter(e,t=>{const r=this.filter.filter(t,1),s=getVisibility(r);if(s===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return s===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,r,s,a,l={}){super(e,t,r,s,l),this.user=e,this.dataSource=a,this.identityProvider=l.identityProvider}createModel(e,t){return new ObjectTreeModel(e,t)}}new RawContextKey("isMac",isMacintosh,localize(1684,"Whether the operating system is macOS"));new RawContextKey("isLinux",isLinux,localize(1685,"Whether the operating system is Linux"));const IsWindowsContext=new RawContextKey("isWindows",isWindows,localize(1686,"Whether the operating system is Windows")),IsWebContext=new RawContextKey("isWeb",isWeb,localize(1687,"Whether the platform is a web browser"));new RawContextKey("isMacNative",isMacintosh&&!isWeb,localize(1688,"Whether the operating system is macOS on a non-browser platform"));new RawContextKey("isIOS",isIOS,localize(1689,"Whether the operating system is iOS"));new RawContextKey("isMobile",isMobile,localize(1690,"Whether the platform is a mobile web browser"));new RawContextKey("isDevelopment",!1,!0);new RawContextKey("productQualityType","",localize(1691,"Quality type of VS Code"));const InputFocusedContextKey="inputFocus",InputFocusedContext=new RawContextKey(InputFocusedContextKey,!1,localize(1692,"Whether keyboard focus is inside an input box"));var __decorate$25=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$20=function(o,e){return function(t,r){e(t,r,o)}};const IListService=createDecorator("listService");class ListService{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new DisposableStore$1,this.lists=[],this._lastFocusedWidget=void 0}setLastFocusedList(e){var t,r;e!==this._lastFocusedWidget&&((t=this._lastFocusedWidget)==null||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,(r=this._lastFocusedWidget)==null||r.getHTMLElement().classList.add("last-focused"))}register(e,t){if(this.lists.some(s=>s.widget===e))throw new Error("Cannot register the same widget multiple times");const r={widget:e,extraContextKeys:t};return this.lists.push(r),isActiveElement(e.getHTMLElement())&&this.setLastFocusedList(e),combinedDisposable(e.onDidFocus(()=>this.setLastFocusedList(e)),toDisposable(()=>this.lists.splice(this.lists.indexOf(r),1)),e.onDidDispose(()=>{this.lists=this.lists.filter(s=>s!==r),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),WorkbenchTreeStickyScrollFocused=new RawContextKey("treestickyScrollFocused",!1),WorkbenchListSupportsMultiSelectContextKey=new RawContextKey("listSupportsMultiselect",!0),WorkbenchListFocusContextKey=ContextKeyExpr.and(RawWorkbenchListFocusContextKey,ContextKeyExpr.not(InputFocusedContextKey),WorkbenchTreeStickyScrollFocused.negate()),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),r=()=>{const s=e.scrollTop===0,a=e.scrollHeight-e.renderHeight-e.scrollTop<1;s&&a?t.set("both"):s?t.set("top"):a?t.set("bottom"):t.set("none")};return r(),e.onDidScroll(r)}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",treeStickyScroll="workbench.tree.enableStickyScroll",treeStickyScrollMaxElements="workbench.tree.stickyScrollMaxItemCount";function useAltAsMultipleSelectionModifier(o){return o.getValue(multiSelectModifierSettingKey)==="alt"}class MultipleSelectionController extends Disposable$1{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 l;const t=o.get(IConfigurationService),r=o.get(IKeybindingService),s=new DisposableStore$1;return[{...e,keyboardNavigationDelegate:{mightProducePrintableCharacter(c){return r.mightProducePrintableCharacter(c)}},smoothScrolling:!!t.getValue(listSmoothScrolling),mouseWheelScrollSensitivity:t.getValue(mouseWheelScrollSensitivityKey),fastScrollSensitivity:t.getValue(fastScrollSensitivityKey),multipleSelectionController:(l=e.multipleSelectionController)!=null?l:s.add(new MultipleSelectionController(t)),keyboardNavigationEventFilter:createKeyboardNavigationEventFilter(r),scrollByPage:!!t.getValue(scrollByPageKey)},s]}let WorkbenchList=class extends List{constructor(e,t,r,s,a,l,c,d,u){const g=typeof a.horizontalScrolling<"u"?a.horizontalScrolling:!!d.getValue(horizontalScrollingKey),[f,m]=u.invokeFunction(toWorkbenchListOptions,a);super(e,t,r,s,{keyboardSupport:!1,...f,horizontalScrolling:g}),this.disposables.add(m),this.contextKeyService=createScopedContextKeyService(l,this),this.disposables.add(createScrollObserver(this.contextKeyService,this)),this.listSupportsMultiSelect=WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(a.multipleSelectionSupport!==!1),WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!a.selectionNavigation),this.listHasSelectionOrFocus=WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=a.horizontalScrolling,this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(d),this.disposables.add(this.contextKeyService),this.disposables.add(c.register(this)),this.updateStyles(a.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const v=this.getSelection(),b=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(v.length>0||b.length>0),this.listMultiSelection.set(v.length>1),this.listDoubleSelection.set(v.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const v=this.getSelection(),b=this.getFocus();this.listHasSelectionOrFocus.set(v.length>0||b.length>0)})),this.disposables.add(d.onDidChangeConfiguration(v=>{v.affectsConfiguration(multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(d));let b={};if(v.affectsConfiguration(horizontalScrollingKey)&&this.horizontalScrolling===void 0){const C=!!d.getValue(horizontalScrollingKey);b={...b,horizontalScrolling:C}}if(v.affectsConfiguration(scrollByPageKey)){const C=!!d.getValue(scrollByPageKey);b={...b,scrollByPage:C}}if(v.affectsConfiguration(listSmoothScrolling)){const C=!!d.getValue(listSmoothScrolling);b={...b,smoothScrolling:C}}if(v.affectsConfiguration(mouseWheelScrollSensitivityKey)){const C=d.getValue(mouseWheelScrollSensitivityKey);b={...b,mouseWheelScrollSensitivity:C}}if(v.affectsConfiguration(fastScrollSensitivityKey)){const C=d.getValue(fastScrollSensitivityKey);b={...b,fastScrollSensitivity:C}}Object.keys(b).length>0&&this.updateOptions(b)})),this.navigator=new ListResourceNavigator(this,{configurationService:d,...a}),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$25([__param$20(5,IContextKeyService),__param$20(6,IListService),__param$20(7,IConfigurationService),__param$20(8,IInstantiationService)],WorkbenchList);let WorkbenchPagedList=class extends PagedList{constructor(e,t,r,s,a,l,c,d,u){const g=typeof a.horizontalScrolling<"u"?a.horizontalScrolling:!!d.getValue(horizontalScrollingKey),[f,m]=u.invokeFunction(toWorkbenchListOptions,a);super(e,t,r,s,{keyboardSupport:!1,...f,horizontalScrolling:g}),this.disposables=new DisposableStore$1,this.disposables.add(m),this.contextKeyService=createScopedContextKeyService(l,this),this.disposables.add(createScrollObserver(this.contextKeyService,this.widget)),this.horizontalScrolling=a.horizontalScrolling,this.listSupportsMultiSelect=WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(a.multipleSelectionSupport!==!1),WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!a.selectionNavigation),this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(d),this.disposables.add(this.contextKeyService),this.disposables.add(c.register(this)),this.updateStyles(a.overrideStyles),this.disposables.add(d.onDidChangeConfiguration(v=>{v.affectsConfiguration(multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(d));let b={};if(v.affectsConfiguration(horizontalScrollingKey)&&this.horizontalScrolling===void 0){const C=!!d.getValue(horizontalScrollingKey);b={...b,horizontalScrolling:C}}if(v.affectsConfiguration(scrollByPageKey)){const C=!!d.getValue(scrollByPageKey);b={...b,scrollByPage:C}}if(v.affectsConfiguration(listSmoothScrolling)){const C=!!d.getValue(listSmoothScrolling);b={...b,smoothScrolling:C}}if(v.affectsConfiguration(mouseWheelScrollSensitivityKey)){const C=d.getValue(mouseWheelScrollSensitivityKey);b={...b,mouseWheelScrollSensitivity:C}}if(v.affectsConfiguration(fastScrollSensitivityKey)){const C=d.getValue(fastScrollSensitivityKey);b={...b,fastScrollSensitivity:C}}Object.keys(b).length>0&&this.updateOptions(b)})),this.navigator=new ListResourceNavigator(this,{configurationService:d,...a}),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$25([__param$20(5,IContextKeyService),__param$20(6,IListService),__param$20(7,IConfigurationService),__param$20(8,IInstantiationService)],WorkbenchPagedList);let WorkbenchTable=class extends Table{constructor(e,t,r,s,a,l,c,d,u,g){const f=typeof l.horizontalScrolling<"u"?l.horizontalScrolling:!!u.getValue(horizontalScrollingKey),[m,_]=g.invokeFunction(toWorkbenchListOptions,l);super(e,t,r,s,a,{keyboardSupport:!1,...m,horizontalScrolling:f}),this.disposables.add(_),this.contextKeyService=createScopedContextKeyService(c,this),this.disposables.add(createScrollObserver(this.contextKeyService,this)),this.listSupportsMultiSelect=WorkbenchListSupportsMultiSelectContextKey.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(l.multipleSelectionSupport!==!1),WorkbenchListSelectionNavigation.bindTo(this.contextKeyService).set(!!l.selectionNavigation),this.listHasSelectionOrFocus=WorkbenchListHasSelectionOrFocus.bindTo(this.contextKeyService),this.listDoubleSelection=WorkbenchListDoubleSelection.bindTo(this.contextKeyService),this.listMultiSelection=WorkbenchListMultiSelection.bindTo(this.contextKeyService),this.horizontalScrolling=l.horizontalScrolling,this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(u),this.disposables.add(this.contextKeyService),this.disposables.add(d.register(this)),this.updateStyles(l.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const b=this.getSelection(),C=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(b.length>0||C.length>0),this.listMultiSelection.set(b.length>1),this.listDoubleSelection.set(b.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const b=this.getSelection(),C=this.getFocus();this.listHasSelectionOrFocus.set(b.length>0||C.length>0)})),this.disposables.add(u.onDidChangeConfiguration(b=>{b.affectsConfiguration(multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(u));let C={};if(b.affectsConfiguration(horizontalScrollingKey)&&this.horizontalScrolling===void 0){const y=!!u.getValue(horizontalScrollingKey);C={...C,horizontalScrolling:y}}if(b.affectsConfiguration(scrollByPageKey)){const y=!!u.getValue(scrollByPageKey);C={...C,scrollByPage:y}}if(b.affectsConfiguration(listSmoothScrolling)){const y=!!u.getValue(listSmoothScrolling);C={...C,smoothScrolling:y}}if(b.affectsConfiguration(mouseWheelScrollSensitivityKey)){const y=u.getValue(mouseWheelScrollSensitivityKey);C={...C,mouseWheelScrollSensitivity:y}}if(b.affectsConfiguration(fastScrollSensitivityKey)){const y=u.getValue(fastScrollSensitivityKey);C={...C,fastScrollSensitivity:y}}Object.keys(C).length>0&&this.updateOptions(C)})),this.navigator=new TableResourceNavigator(this,{configurationService:u,...l}),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$25([__param$20(6,IContextKeyService),__param$20(7,IListService),__param$20(8,IConfigurationService),__param$20(9,IInstantiationService)],WorkbenchTable);class ResourceNavigator extends Disposable$1{constructor(e,t){var r;super(),this.widget=e,this._onDidOpen=this._register(new Emitter$1),this.onDidOpen=this._onDidOpen.event,this._register(Event$1.filter(this.widget.onDidChangeSelection,s=>isKeyboardEvent(s.browserEvent))(s=>this.onSelectionFromKeyboard(s))),this._register(this.widget.onPointer(s=>this.onPointer(s.element,s.browserEvent))),this._register(this.widget.onMouseDblClick(s=>this.onMouseDblClick(s.element,s.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(s=>{s.affectsConfiguration(openModeSettingKey)&&(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(openModeSettingKey))!=="doubleClick")}))):this.openOnSingleClick=(r=t==null?void 0:t.openOnSingleClick)!=null?r:!0}onSelectionFromKeyboard(e){if(e.elements.length!==1)return;const t=e.browserEvent,r=typeof t.preserveFocus=="boolean"?t.preserveFocus:!0,s=typeof t.pinned=="boolean"?t.pinned:!r;this._open(this.getSelectedElement(),r,s,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick||t.detail===2)return;const s=t.button===1,a=!0,l=s,c=t.ctrlKey||t.metaKey||t.altKey;this._open(e,a,l,c,t)}onMouseDblClick(e,t){if(!t)return;const r=t.target;if(r.classList.contains("monaco-tl-twistie")||r.classList.contains("monaco-icon-label")&&r.classList.contains("folder-icon")&&t.offsetX<16)return;const a=!1,l=!0,c=t.ctrlKey||t.metaKey||t.altKey;this._open(e,a,l,c,t)}_open(e,t,r,s,a){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:r,revealIfVisible:!0},sideBySide:s,element:e,browserEvent:a})}}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}}function createKeyboardNavigationEventFilter(o){let e=!1;return t=>{if(t.toKeyCodeChord().isModifierKey())return!1;if(e)return e=!1,!1;const r=o.softDispatch(t,t.target);return r.kind===1?(e=!0,!1):(e=!1,r.kind===0)}}let WorkbenchObjectTree=class extends ObjectTree{get onDidOpen(){return this.internals.onDidOpen}constructor(e,t,r,s,a,l,c,d,u){const{options:g,getTypeNavigationMode:f,disposable:m}=l.invokeFunction(workbenchTreeDataPreamble,a);super(e,t,r,s,g),this.disposables.add(m),this.internals=new WorkbenchTreeInternals(this,a,f,a.overrideStyles,c,d,u),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};WorkbenchObjectTree=__decorate$25([__param$20(5,IInstantiationService),__param$20(6,IContextKeyService),__param$20(7,IListService),__param$20(8,IConfigurationService)],WorkbenchObjectTree);let WorkbenchCompressibleObjectTree=class extends CompressibleObjectTree{constructor(e,t,r,s,a,l,c,d,u){const{options:g,getTypeNavigationMode:f,disposable:m}=l.invokeFunction(workbenchTreeDataPreamble,a);super(e,t,r,s,g),this.disposables.add(m),this.internals=new WorkbenchTreeInternals(this,a,f,a.overrideStyles,c,d,u),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};WorkbenchCompressibleObjectTree=__decorate$25([__param$20(5,IInstantiationService),__param$20(6,IContextKeyService),__param$20(7,IListService),__param$20(8,IConfigurationService)],WorkbenchCompressibleObjectTree);let WorkbenchDataTree=class extends DataTree{constructor(e,t,r,s,a,l,c,d,u,g){const{options:f,getTypeNavigationMode:m,disposable:_}=c.invokeFunction(workbenchTreeDataPreamble,l);super(e,t,r,s,a,f),this.disposables.add(_),this.internals=new WorkbenchTreeInternals(this,l,m,l.overrideStyles,d,u,g),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$25([__param$20(6,IInstantiationService),__param$20(7,IContextKeyService),__param$20(8,IListService),__param$20(9,IConfigurationService)],WorkbenchDataTree);let WorkbenchAsyncDataTree=class extends AsyncDataTree{get onDidOpen(){return this.internals.onDidOpen}constructor(e,t,r,s,a,l,c,d,u,g){const{options:f,getTypeNavigationMode:m,disposable:_}=c.invokeFunction(workbenchTreeDataPreamble,l);super(e,t,r,s,a,f),this.disposables.add(_),this.internals=new WorkbenchTreeInternals(this,l,m,l.overrideStyles,d,u,g),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};WorkbenchAsyncDataTree=__decorate$25([__param$20(6,IInstantiationService),__param$20(7,IContextKeyService),__param$20(8,IListService),__param$20(9,IConfigurationService)],WorkbenchAsyncDataTree);let WorkbenchCompressibleAsyncDataTree=class extends CompressibleAsyncDataTree{constructor(e,t,r,s,a,l,c,d,u,g,f){const{options:m,getTypeNavigationMode:_,disposable:v}=d.invokeFunction(workbenchTreeDataPreamble,c);super(e,t,r,s,a,l,m),this.disposables.add(v),this.internals=new WorkbenchTreeInternals(this,c,_,c.overrideStyles,u,g,f),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};WorkbenchCompressibleAsyncDataTree=__decorate$25([__param$20(7,IInstantiationService),__param$20(8,IContextKeyService),__param$20(9,IListService),__param$20(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 m,_,v;const t=o.get(IConfigurationService),r=o.get(IContextViewService),s=o.get(IContextKeyService),a=o.get(IInstantiationService),l=()=>{const b=s.getContextKeyValue(WorkbenchListTypeNavigationModeKey);if(b==="automatic")return TypeNavigationMode.Automatic;if(b==="trigger"||s.getContextKeyValue(WorkbenchListAutomaticKeyboardNavigationLegacyKey)===!1)return TypeNavigationMode.Trigger;const y=t.getValue(typeNavigationModeSettingKey);if(y==="automatic")return TypeNavigationMode.Automatic;if(y==="trigger")return TypeNavigationMode.Trigger},c=e.horizontalScrolling!==void 0?e.horizontalScrolling:!!t.getValue(horizontalScrollingKey),[d,u]=a.invokeFunction(toWorkbenchListOptions,e),g=e.paddingBottom,f=e.renderIndentGuides!==void 0?e.renderIndentGuides:t.getValue(treeRenderIndentGuidesKey);return{getTypeNavigationMode:l,disposable:u,options:{keyboardSupport:!1,...d,indent:typeof t.getValue(treeIndentKey)=="number"?t.getValue(treeIndentKey):void 0,renderIndentGuides:f,smoothScrolling:!!t.getValue(listSmoothScrolling),defaultFindMode:(m=e.defaultFindMode)!=null?m:getDefaultTreeFindMode(t),defaultFindMatchType:(_=e.defaultFindMatchType)!=null?_:getDefaultTreeFindMatchType(t),horizontalScrolling:c,scrollByPage:!!t.getValue(scrollByPageKey),paddingBottom:g,hideTwistiesOfChildlessElements:e.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:(v=e.expandOnlyOnTwistieClick)!=null?v:t.getValue(treeExpandMode)==="doubleClick",contextViewProvider:r,findWidgetStyles:defaultFindWidgetStyles,enableStickyScroll:!!t.getValue(treeStickyScroll),stickyScrollMaxItemCount:Number(t.getValue(treeStickyScrollMaxElements))}}}let WorkbenchTreeInternals=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(e,t,r,s,a,l,c){var f;this.tree=e,this.disposables=[],this.contextKeyService=createScopedContextKeyService(a,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((f=t.findWidgetEnabled)!=null?f:!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.treeStickyScrollFocused=WorkbenchTreeStickyScrollFocused.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(c),this.updateStyleOverrides(s);const u=()=>{const m=e.getFocus()[0];if(!m)return;const _=e.getNode(m);this.treeElementCanCollapse.set(_.collapsible&&!_.collapsed),this.treeElementHasParent.set(!!e.getParentElement(m)),this.treeElementCanExpand.set(_.collapsible&&_.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(m))},g=new Set;g.add(WorkbenchListTypeNavigationModeKey),g.add(WorkbenchListAutomaticKeyboardNavigationLegacyKey),this.disposables.push(this.contextKeyService,l.register(e),e.onDidChangeSelection(()=>{const m=e.getSelection(),_=e.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(m.length>0||_.length>0),this.hasMultiSelection.set(m.length>1),this.hasDoubleSelection.set(m.length===2)})}),e.onDidChangeFocus(()=>{const m=e.getSelection(),_=e.getFocus();this.hasSelectionOrFocus.set(m.length>0||_.length>0),u()}),e.onDidChangeCollapseState(u),e.onDidChangeModel(u),e.onDidChangeFindOpenState(m=>this.treeFindOpen.set(m)),e.onDidChangeStickyScrollFocused(m=>this.treeStickyScrollFocused.set(m)),c.onDidChangeConfiguration(m=>{let _={};if(m.affectsConfiguration(multiSelectModifierSettingKey)&&(this._useAltAsMultipleSelectionModifier=useAltAsMultipleSelectionModifier(c)),m.affectsConfiguration(treeIndentKey)){const v=c.getValue(treeIndentKey);_={..._,indent:v}}if(m.affectsConfiguration(treeRenderIndentGuidesKey)&&t.renderIndentGuides===void 0){const v=c.getValue(treeRenderIndentGuidesKey);_={..._,renderIndentGuides:v}}if(m.affectsConfiguration(listSmoothScrolling)){const v=!!c.getValue(listSmoothScrolling);_={..._,smoothScrolling:v}}if(m.affectsConfiguration(defaultFindModeSettingKey)||m.affectsConfiguration(keyboardNavigationSettingKey)){const v=getDefaultTreeFindMode(c);_={..._,defaultFindMode:v}}if(m.affectsConfiguration(typeNavigationModeSettingKey)||m.affectsConfiguration(keyboardNavigationSettingKey)){const v=r();_={..._,typeNavigationMode:v}}if(m.affectsConfiguration(defaultFindMatchTypeSettingKey)){const v=getDefaultTreeFindMatchType(c);_={..._,defaultFindMatchType:v}}if(m.affectsConfiguration(horizontalScrollingKey)&&t.horizontalScrolling===void 0){const v=!!c.getValue(horizontalScrollingKey);_={..._,horizontalScrolling:v}}if(m.affectsConfiguration(scrollByPageKey)){const v=!!c.getValue(scrollByPageKey);_={..._,scrollByPage:v}}if(m.affectsConfiguration(treeExpandMode)&&t.expandOnlyOnTwistieClick===void 0&&(_={..._,expandOnlyOnTwistieClick:c.getValue(treeExpandMode)==="doubleClick"}),m.affectsConfiguration(treeStickyScroll)){const v=c.getValue(treeStickyScroll);_={..._,enableStickyScroll:v}}if(m.affectsConfiguration(treeStickyScrollMaxElements)){const v=Math.max(1,c.getValue(treeStickyScrollMaxElements));_={..._,stickyScrollMaxItemCount:v}}if(m.affectsConfiguration(mouseWheelScrollSensitivityKey)){const v=c.getValue(mouseWheelScrollSensitivityKey);_={..._,mouseWheelScrollSensitivity:v}}if(m.affectsConfiguration(fastScrollSensitivityKey)){const v=c.getValue(fastScrollSensitivityKey);_={..._,fastScrollSensitivity:v}}Object.keys(_).length>0&&e.updateOptions(_)}),this.contextKeyService.onDidChangeContext(m=>{m.affectsSome(g)&&e.updateOptions({typeNavigationMode:r()})})),this.navigator=new TreeResourceNavigator(e,{configurationService:c,...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$25([__param$20(4,IContextKeyService),__param$20(5,IListService),__param$20(6,IConfigurationService)],WorkbenchTreeInternals);const configurationRegistry=Registry.as(Extensions$6.Configuration);configurationRegistry.registerConfiguration({id:"workbench",order:7,title:localize(1705,"Workbench"),type:"object",properties:{[multiSelectModifierSettingKey]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[localize(1706,"Maps to `Control` on Windows and Linux and to `Command` on macOS."),localize(1707,"Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:localize(1708,"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(1709,"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(1710,"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(1711,"Controls whether clicks in the scrollbar scroll page by page.")},[treeIndentKey]:{type:"number",default:8,minimum:4,maximum:40,description:localize(1712,"Controls tree indentation in pixels.")},[treeRenderIndentGuidesKey]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:localize(1713,"Controls whether the tree should render indent guides.")},[listSmoothScrolling]:{type:"boolean",default:!1,description:localize(1714,"Controls whether lists and trees have smooth scrolling.")},[mouseWheelScrollSensitivityKey]:{type:"number",default:1,markdownDescription:localize(1715,"A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[fastScrollSensitivityKey]:{type:"number",default:5,markdownDescription:localize(1716,"Scrolling speed multiplier when pressing `Alt`.")},[defaultFindModeSettingKey]:{type:"string",enum:["highlight","filter"],enumDescriptions:[localize(1717,"Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),localize(1718,"Filter elements when searching.")],default:"highlight",description:localize(1719,"Controls the default find mode for lists and trees in the workbench.")},[keyboardNavigationSettingKey]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[localize(1720,"Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),localize(1721,"Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),localize(1722,"Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:localize(1723,"Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:localize(1724,"Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.")},[defaultFindMatchTypeSettingKey]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[localize(1725,"Use fuzzy matching when searching."),localize(1726,"Use contiguous matching when searching.")],default:"fuzzy",description:localize(1727,"Controls the type of matching used when searching lists and trees in the workbench.")},[treeExpandMode]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:localize(1728,"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.")},[treeStickyScroll]:{type:"boolean",default:!0,description:localize(1729,"Controls whether sticky scrolling is enabled in trees.")},[treeStickyScrollMaxElements]:{type:"number",minimum:1,default:7,markdownDescription:localize(1730,"Controls the number of sticky elements displayed in the tree when {0} is enabled.","`#workbench.tree.enableStickyScroll#`")},[typeNavigationModeSettingKey]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:localize(1731,"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.")}}});class OneReference{constructor(e,t,r,s){this.isProviderFirst=e,this.parent=t,this.link=r,this._rangeCallback=s,this.id=defaultGenerator.nextId()}get uri(){return this.link.uri}get range(){var e,t;return(t=(e=this._range)!=null?e:this.link.targetSelectionRange)!=null?t:this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){var t;const e=(t=this.parent.getPreview(this))==null?void 0:t.preview(this.range);return e?localize(1088,"{0} in {1} on line {2} at column {3}",e.value,basename(this.uri),this.range.startLineNumber,this.range.startColumn):localize(1087,"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 r=this._modelReference.object.textEditorModel;if(!r)return;const{startLineNumber:s,startColumn:a,endLineNumber:l,endColumn:c}=e,d=r.getWordUntilPosition({lineNumber:s,column:a-t}),u=new Range$2(s,d.startColumn,s,a),g=new Range$2(l,c,l,1073741824),f=r.getValueInRange(u).replace(/^\s+/,""),m=r.getValueInRange(e),_=r.getValueInRange(g).replace(/\s+$/,"");return{value:f+m+_,highlight:{start:f.length,end:f.length+m.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(1089,"1 symbol in {0}, full path {1}",basename(this.uri),this.uri.fsPath):localize(1090,"{0} symbols in {1}, full path {2}",e,basename(this.uri),this.uri.fsPath)}async resolve(e){if(this._previews.size!==0)return this;for(const t of this.children)if(!this._previews.has(t.uri))try{const r=await e.createModelReference(t.uri);this._previews.set(t.uri,new FilePreview(r))}catch(r){onUnexpectedError(r)}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[r]=e;e.sort(ReferencesModel._compareReferences);let s;for(const a of e)if((!s||!extUri.isEqual(s.uri,a.uri,!0))&&(s=new FileReferences(this,a.uri),this.groups.push(s)),s.children.length===0||ReferencesModel._compareReferences(a,s.children[s.children.length-1])!==0){const l=new OneReference(r===a,s,a,c=>this._onDidChangeReferenceRange.fire(c));this.references.push(l),s.children.push(l)}}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(1091,"No results found"):this.references.length===1?localize(1092,"Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?localize(1093,"Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):localize(1094,"Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:r}=e;let s=r.children.indexOf(e);const a=r.children.length,l=r.parent.groups.length;return l===1||t&&s+1<a||!t&&s>0?(t?s=(s+1)%a:s=(s+a-1)%a,r.children[s]):(s=r.parent.groups.indexOf(r),t?(s=(s+1)%l,r.parent.groups[s].children[0]):(s=(s+l-1)%l,r.parent.groups[s].children[r.parent.groups[s].children.length-1]))}nearestReference(e,t){const r=this.references.map((s,a)=>({idx:a,prefixLen:commonPrefixLength(s.uri.toString(),e.toString()),offsetDist:Math.abs(s.range.startLineNumber-t.lineNumber)*100+Math.abs(s.range.startColumn-t.column)})).sort((s,a)=>s.prefixLen>a.prefixLen?-1:s.prefixLen<a.prefixLen?1:s.offsetDist<a.offsetDist?-1:s.offsetDist>a.offsetDist?1:0)[0];if(r)return this.references[r.idx]}referenceAt(e,t){for(const r of this.references)if(r.uri.toString()===e.toString()&&Range$2.containsPosition(r.range,t))return r}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)}}class CountBadge extends Disposable$1{constructor(e,t,r){super(),this.options=t,this.styles=r,this.count=0,this.hover=this._register(new MutableDisposable),this.element=append$2(e,$$m(".monaco-count-badge")),this._register(toDisposable(()=>e.removeChild(this.element))),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0),this.updateHover()}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.updateHover(),this.render()}updateHover(){this.titleFormat!==""&&!this.hover.value?this.hover.value=getBaseLayerHoverDelegate().setupDelayedHoverAtMouse(this.element,()=>({content:format(this.titleFormat,this.count),appearance:{compact:!0}})):this.titleFormat===""&&this.hover.value&&(this.hover.value=void 0)}render(){var e,t;this.element.textContent=format(this.countFormat,this.count),this.element.style.backgroundColor=(e=this.styles.badgeBackground)!=null?e:"",this.element.style.color=(t=this.styles.badgeForeground)!=null?t:"",this.styles.badgeBorder&&(this.element.style.border="1px solid ".concat(this.styles.badgeBorder))}}class HighlightedLabel extends Disposable$1{constructor(e,t){super(),this.options=t,this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.domNode=append$2(e,$$m("span.monaco-highlighted-label"))}get element(){return this.domNode}set(e,t=[],r="",s,a){e||(e=""),s&&(e=HighlightedLabel.escapeNewLines(e,t)),!(this.didEverRender&&this.text===e&&this.title===r&&equals$1(this.highlights,t))&&(this.text=e,this.title=r,this.highlights=t,this.render(a))}render(e){var s,a;const t=[];let r=0;for(const l of this.highlights){if(l.end===l.start)continue;if(r<l.start){const u=this.text.substring(r,l.start);e?t.push(...renderLabelWithIcons(u)):t.push(u),r=l.start}const c=this.text.substring(r,l.end),d=$$m("span.highlight",void 0,...e?renderLabelWithIcons(c):[c]);l.extraClasses&&d.classList.add(...l.extraClasses),t.push(d),r=l.end}if(r<this.text.length){const l=this.text.substring(r);e?t.push(...renderLabelWithIcons(l)):t.push(l)}if(reset(this.domNode,...t),!this.customHover&&this.title!==""){const l=(a=(s=this.options)==null?void 0:s.hoverDelegate)!=null?a:getDefaultHoverDelegate("mouse");this.customHover=this._register(getBaseLayerHoverDelegate().setupManagedHover(l,this.domNode,this.title))}else this.customHover&&this.customHover.update(this.title);this.didEverRender=!0}static escapeNewLines(e,t){let r=0,s=0;return e.replace(/\r\n|\r|\n/g,(a,l)=>{s=a==="\r\n"?-1:0,l+=r;for(const c of t)c.end<=l||(c.start>=l&&(c.start+=s),c.end>=l&&(c.end+=s));return r+=s,"⏎"})}}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 classNames(e){this.disposed||equals$1(e,this._classNames)||(this._classNames=e,this._element.classList.value="",this._element.classList.add(...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$1{constructor(e,t){var r;super(),this.customHovers=new Map,this.creationOptions=t,this.domNode=this._register(new FastLabelNode(append$2(e,$$m(".monaco-icon-label")))),this.labelContainer=append$2(this.domNode.element,$$m(".monaco-icon-label-container")),this.nameContainer=append$2(this.labelContainer,$$m("span.monaco-icon-name-container")),t!=null&&t.supportHighlights||t!=null&&t.supportIcons?this.nameNode=this._register(new LabelWithHighlights(this.nameContainer,!!t.supportIcons)):this.nameNode=new Label(this.nameContainer),this.hoverDelegate=(r=t==null?void 0:t.hoverDelegate)!=null?r:getDefaultHoverDelegate("mouse")}get element(){return this.domNode.element}setLabel(e,t,r){var d,u,g;const s=["monaco-icon-label"],a=["monaco-icon-label-container"];let l="";r&&(r.extraClasses&&s.push(...r.extraClasses),r.bold&&s.push("bold"),r.italic&&s.push("italic"),r.strikethrough&&s.push("strikethrough"),r.disabledCommand&&a.push("disabled"),r.title&&(typeof r.title=="string"?l+=r.title:l+=e));const c=this.domNode.element.querySelector(".monaco-icon-label-iconpath");if(r!=null&&r.iconPath){let f;if(!c||!isHTMLElement(c)?(f=$$m(".monaco-icon-label-iconpath"),this.domNode.element.prepend(f)):f=c,ThemeIcon.isThemeIcon(r.iconPath)){const m=ThemeIcon.asClassName(r.iconPath);f.className="monaco-icon-label-iconpath ".concat(m),f.style.backgroundImage=""}else f.style.backgroundImage=asCSSUrl(r==null?void 0:r.iconPath);f.style.backgroundRepeat="no-repeat",f.style.backgroundPosition="center",f.style.backgroundSize="contain"}else c&&c.remove();if(this.domNode.classNames=s,this.domNode.element.setAttribute("aria-label",l),this.labelContainer.classList.value="",this.labelContainer.classList.add(...a),this.setupHover(r!=null&&r.descriptionTitle?this.labelContainer:this.element,r==null?void 0:r.title),this.nameNode.setLabel(e,r),t||this.descriptionNode){const f=this.getOrCreateDescriptionNode();if(f instanceof HighlightedLabel){const m=(u=r==null?void 0:r.supportIcons)!=null?u:(d=this.creationOptions)==null?void 0:d.supportIcons;f.set(t||"",r?r.descriptionMatches:void 0,void 0,r==null?void 0:r.labelEscapeNewLines,m),this.setupHover(f.element,r==null?void 0:r.descriptionTitle)}else f.textContent=t&&(r!=null&&r.labelEscapeNewLines)?HighlightedLabel.escapeNewLines(t,[]):t||"",this.setupHover(f.element,(r==null?void 0:r.descriptionTitle)||""),f.empty=!t}if(r!=null&&r.suffix||this.suffixNode){const f=this.getOrCreateSuffixNode();f.textContent=(g=r==null?void 0:r.suffix)!=null?g:""}}setupHover(e,t){var l;const r=this.customHovers.get(e);if(r&&(r.dispose(),this.customHovers.delete(e)),!t){e.removeAttribute("title");return}let s=e;if((l=this.creationOptions)!=null&&l.hoverTargetOverride){if(!isAncestor$1(e,this.creationOptions.hoverTargetOverride))throw new Error("hoverTargetOverrride must be an ancestor of the htmlElement");s=this.creationOptions.hoverTargetOverride}const a=getBaseLayerHoverDelegate().setupManagedHover(this.hoverDelegate,s,t);a&&this.customHovers.set(e,a)}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const e=this._register(new FastLabelNode(after(this.nameContainer,$$m("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new FastLabelNode(append$2(e.element,$$m("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){var e;if(!this.descriptionNode){const t=this._register(new FastLabelNode(append$2(this.labelContainer,$$m("span.monaco-icon-description-container"))));(e=this.creationOptions)!=null&&e.supportDescriptionHighlights?this.descriptionNode=this._register(new HighlightedLabel(append$2(t.element,$$m("span.label-description")))):this.descriptionNode=this._register(new FastLabelNode(append$2(t.element,$$m("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.textContent="",this.container.classList.remove("multiple"),this.singleLabel=append$2(this.container,$$m("a.label-name",{id:t==null?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.textContent="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let r=0;r<e.length;r++){const s=e[r],a=(t==null?void 0:t.domId)&&"".concat(t==null?void 0:t.domId,"_").concat(r);append$2(this.container,$$m("a.label-name",{id:a,"data-icon-label-count":e.length,"data-icon-label-index":r,role:"treeitem"},s)),r<e.length-1&&append$2(this.container,$$m("span.label-separator",void 0,(t==null?void 0:t.separator)||"/"))}}}}function splitMatches(o,e,t){if(!t)return;let r=0;return o.map(s=>{const a={start:r,end:r+s.length},l=t.map(c=>Range$1.intersect(a,c)).filter(c=>!Range$1.isEmpty(c)).map(({start:c,end:d})=>({start:c-r,end:d-r}));return r=a.end+e.length,l})}class LabelWithHighlights extends Disposable$1{constructor(e,t){super(),this.container=e,this.supportIcons=t,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){var s;if(this.label===e&&equals$1(this.options,t))return;this.label=e,this.options=t;const r=(s=t==null?void 0:t.supportIcons)!=null?s:this.supportIcons;if(typeof e=="string")this.singleLabel||(this.container.textContent="",this.container.classList.remove("multiple"),this.singleLabel=this._register(new HighlightedLabel(append$2(this.container,$$m("a.label-name",{id:t==null?void 0:t.domId}))))),this.singleLabel.set(e,t==null?void 0:t.matches,void 0,t==null?void 0:t.labelEscapeNewLines,r);else{this.container.textContent="",this.container.classList.add("multiple"),this.singleLabel=void 0;const a=(t==null?void 0:t.separator)||"/",l=splitMatches(e,a,t==null?void 0:t.matches);for(let c=0;c<e.length;c++){const d=e[c],u=l?l[c]:void 0,g=(t==null?void 0:t.domId)&&"".concat(t==null?void 0:t.domId,"_").concat(c),f=$$m("a.label-name",{id:g,"data-icon-label-count":e.length,"data-icon-label-index":c,role:"treeitem"});this._register(new HighlightedLabel(append$2(this.container,f))).set(d,u,void 0,t==null?void 0:t.labelEscapeNewLines,r),c<e.length-1&&append$2(f,$$m("span.label-separator",void 0,a))}}}}const ILabelService=createDecorator("labelService");var __decorate$24=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1$=function(o,e){return function(t,r){e(t,r,o)}},FileReferencesRenderer_1;let DataSource$2=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$2=__decorate$24([__param$1$(0,ITextModelService)],DataSource$2);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 r=(t=e.parent.getPreview(e))==null?void 0:t.preview(e.range);if(r)return r.value}return basename(e.uri)}};StringRepresentationProvider=__decorate$24([__param$1$(0,IKeybindingService)],StringRepresentationProvider);class IdentityProvider{getId(e){return e instanceof OneReference?e.id:e.uri}}let FileReferencesTemplate=class extends Disposable$1{constructor(e,t){super(),this._labelService=t;const r=document.createElement("div");r.classList.add("reference-file"),this.file=this._register(new IconLabel(r,{supportHighlights:!0})),this.badge=this._register(new CountBadge(append$2(r,$$m(".count")),{},defaultCountBadgeStyles)),e.appendChild(r)}set(e,t){const r=dirname(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(r,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const s=e.children.length;this.badge.setCount(s),s>1?this.badge.setTitleFormat(localize(1081,"{0} references",s)):this.badge.setTitleFormat(localize(1082,"{0} reference",s))}};FileReferencesTemplate=__decorate$24([__param$1$(1,ILabelService)],FileReferencesTemplate);var an;let FileReferencesRenderer=(an=class{constructor(e){this._instantiationService=e,this.templateId=FileReferencesRenderer_1.id}renderTemplate(e){return this._instantiationService.createInstance(FileReferencesTemplate,e)}renderElement(e,t,r){r.set(e.element,createMatches(e.filterData))}disposeTemplate(e){e.dispose()}},FileReferencesRenderer_1=an,an.id="FileReferencesRenderer",an);FileReferencesRenderer=FileReferencesRenderer_1=__decorate$24([__param$1$(0,IInstantiationService)],FileReferencesRenderer);class OneReferenceTemplate extends Disposable$1{constructor(e){super(),this.label=this._register(new HighlightedLabel(e))}set(e,t){var s;const r=(s=e.parent.getPreview(e))==null?void 0:s.preview(e.range);if(!r||!r.value)this.label.set("".concat(basename(e.uri),":").concat(e.range.startLineNumber+1,":").concat(e.range.startColumn+1));else{const{value:a,highlight:l}=r;t&&!FuzzyScore.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(a,createMatches(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(a,[l]))}}}const Uo=class Uo{constructor(){this.templateId=Uo.id}renderTemplate(e){return new OneReferenceTemplate(e)}renderElement(e,t,r){r.set(e.element,e.filterData)}disposeTemplate(e){e.dispose()}};Uo.id="OneReferenceRenderer";let OneReferenceRenderer=Uo;class AccessibilityProvider{getWidgetAriaLabel(){return localize(1083,"References")}getAriaLabel(e){return e.ariaMessage}}var __decorate$23=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1_=function(o,e){return function(t,r){e(t,r,o)}};const Ko=class Ko{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new DisposableStore$1,this._callOnModelChange=new DisposableStore$1,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=[],r=[];for(let s=0,a=e.children.length;s<a;s++){const l=e.children[s];this._decorationIgnoreSet.has(l.id)||l.uri.toString()===this._editor.getModel().uri.toString()&&(t.push({range:l.range,options:Ko.DecorationOptions}),r.push(s))}this._editor.changeDecorations(s=>{const a=s.deltaDecorations([],t);for(let l=0;l<a.length;l++)this._decorations.set(a[l],e.children[r[l]])})}_onDecorationChanged(){const e=[],t=this._editor.getModel();if(t){for(const[r,s]of this._decorations){const a=t.getDecorationRange(r);if(!a)continue;let l=!1;if(!Range$2.equalsRange(a,s.range)){if(Range$2.spansMultipleLines(a))l=!0;else{const c=s.range.endColumn-s.range.startColumn,d=a.endColumn-a.startColumn;c!==d&&(l=!0)}l?(this._decorationIgnoreSet.add(s.id),e.push(r)):s.range=a}}for(let r=0,s=e.length;r<s;r++)this._decorations.delete(e[r]);this._editor.removeDecorations(e)}}removeDecorations(){this._editor.removeDecorations([...this._decorations.keys()]),this._decorations.clear()}};Ko.DecorationOptions=ModelDecorationOptions.register({description:"reference-decoration",stickiness:1,className:"reference-decoration"});let DecorationsManager=Ko;class LayoutData{constructor(){this.ratio=.7,this.heightInLines=18}static fromJSON(e){let t,r;try{const s=JSON.parse(e);t=s.ratio,r=s.heightInLines}catch(s){}return{ratio:t||.7,heightInLines:r||18}}}class ReferencesTree extends WorkbenchAsyncDataTree{}let ReferencesDragAndDrop=class{constructor(e){this.labelService=e,this.disposables=new DisposableStore$1}getDragURI(e){return e instanceof FileReferences?e.uri.toString():e instanceof OneReference?withSelection(e.uri,e.range).toString():null}getDragLabel(e){return e.length===0?void 0:e.map(r=>this.labelService.getUriBasenameLabel(r.uri)).join(", ")}onDragStart(e,t){if(!t.dataTransfer)return;const s=e.elements.map(a=>this.getDragURI(a)).filter(Boolean);s.length&&(t.dataTransfer.setData(DataTransfers.RESOURCES,JSON.stringify(s)),t.dataTransfer.setData(DataTransfers.TEXT,s.join("\n")))}onDragOver(){return!1}drop(){}dispose(){this.disposables.dispose()}};ReferencesDragAndDrop=__decorate$23([__param$1_(0,ILabelService)],ReferencesDragAndDrop);let ReferenceWidget=class extends PeekViewWidget{constructor(e,t,r,s,a,l,c,d,u){super(e,{showFrame:!1,showArrow:!0,isResizeable:!0,isAccessible:!0,supportOnTitleClick:!0},l),this._defaultTreeKeyboardSupport=t,this.layoutData=r,this._textModelResolverService=a,this._instantiationService=l,this._peekViewService=c,this._uriLabel=d,this._keybindingService=u,this._disposeOnNewModel=new DisposableStore$1,this._callOnDispose=new DisposableStore$1,this._onDidSelectReference=new Emitter$1,this.onDidSelectReference=this._onDidSelectReference.event,this._dim=new Dimension(0,0),this._isClosing=!1,this._applyTheme(s.getColorTheme()),this._callOnDispose.add(s.onDidColorThemeChange(this._applyTheme.bind(this))),this._peekViewService.addExclusiveWidget(e,this),this.create()}get isClosing(){return this._isClosing}dispose(){this._isClosing=!0,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$2(e,$$m("div.messages")),hide(this._messageContainer),this._splitView=new SplitView(e,{orientation:1}),this._previewContainer=append$2(e,$$m("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=this._instantiationService.createInstance(TextModel,localize(1084,"no preview available"),PLAINTEXT_LANGUAGE_ID,TextModel.DEFAULT_CREATION_OPTIONS,null),this._treeContainer=append$2(e,$$m("div.ref-tree.inline"));const r={keyboardSupport:this._defaultTreeKeyboardSupport,accessibilityProvider:new AccessibilityProvider,keyboardNavigationLabelProvider:this._instantiationService.createInstance(StringRepresentationProvider),identityProvider:new IdentityProvider,openOnSingleClick:!0,selectionNavigation:!0,overrideStyles:{listBackground:peekViewResultsBackground},dnd:this._instantiationService.createInstance(ReferencesDragAndDrop)};this._defaultTreeKeyboardSupport&&this._callOnDispose.add(addStandardDisposableListener(this._treeContainer,"keydown",a=>{a.equals(9)&&(this._keybindingService.dispatchEvent(a,a.target),a.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$2),r),this._splitView.addView({onDidChange:Event$1.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:a=>{this._preview.layout({height:this._dim.height,width:a})}},Sizing.Distribute),this._splitView.addView({onDidChange:Event$1.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:a=>{this._treeContainer.style.height="".concat(this._dim.height,"px"),this._treeContainer.style.width="".concat(a,"px"),this._tree.layout(this._dim.height,a)}},Sizing.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const s=(a,l)=>{a instanceof OneReference&&(l==="show"&&this._revealReference(a,!1),this._onDidSelectReference.fire({element:a,kind:l,source:"tree"}))};this._disposables.add(this._tree.onDidOpen(a=>{a.sideBySide?s(a.element,"side"):a.editorOptions.pinned?s(a.element,"goto"):s(a.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(1085,"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:r}=e;if(t.detail!==2)return;const s=this._getFocusedReference();s&&this._onDidSelectReference.fire({element:{uri:s.uri,range:r.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]}async revealReference(e){await this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})}async _revealReference(e,t){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(1086,"References"));const r=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent?this._tree.reveal(e):(t&&this._tree.reveal(e.parent),await this._tree.expand(e.parent),this._tree.reveal(e));const s=await r;if(!this._model){s.dispose();return}dispose(this._previewModelReference);const a=s.object;if(a){const l=this._preview.getModel()===a.textEditorModel?0:1,c=Range$2.lift(e.range).collapseToStart();this._previewModelReference=s,this._preview.setModel(a.textEditorModel),this._preview.setSelection(c),this._preview.revealRangeInCenter(c,l)}else this._preview.setModel(this._previewNotAvailableMessage),s.dispose()}};ReferenceWidget=__decorate$23([__param$1_(3,IThemeService),__param$1_(4,ITextModelService),__param$1_(5,IInstantiationService),__param$1_(6,IPeekViewService),__param$1_(7,ILabelService),__param$1_(8,IKeybindingService)],ReferenceWidget);var __decorate$22=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1Z=function(o,e){return function(t,r){e(t,r,o)}},ReferencesController_1;const ctxReferenceSearchVisible=new RawContextKey("referenceSearchVisible",!1,localize(1078,"Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));var ln;let ReferencesController=(ln=class{static get(e){return e.getContribution(ReferencesController_1.ID)}constructor(e,t,r,s,a,l,c,d){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=s,this._notificationService=a,this._instantiationService=l,this._storageService=c,this._configurationService=d,this._disposables=new DisposableStore$1,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=ctxReferenceSearchVisible.bindTo(r)}dispose(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),(e=this._widget)==null||e.dispose(),(t=this._model)==null||t.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(e,t,r){let s;if(this._widget&&(s=this._widget.position),this.closeWidget(),s&&e.containsPosition(s))return;this._peekMode=r,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const a="peekViewLayout",l=LayoutData.fromJSON(this._storageService.get(a,0,"{}"));this._widget=this._instantiationService.createInstance(ReferenceWidget,this._editor,this._defaultTreeKeyboardSupport,l),this._widget.setTitle(localize(1079,"Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose(()=>{t.cancel(),this._widget?(this._storageService.store(a,JSON.stringify(this._widget.layoutData),0,1),this._widget.isClosing||this.closeWidget(),this._widget=void 0):this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(d=>{const{element:u,kind:g}=d;if(u)switch(g){case"open":(d.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(u,!1,!1);break;case"side":this.openReference(u,!0,!1);break;case"goto":r?this._gotoReference(u,!0):this.openReference(u,!1,!0);break}}));const c=++this._requestIdPool;t.then(d=>{var u;if(c!==this._requestIdPool||!this._widget){d.dispose();return}return(u=this._model)==null||u.dispose(),this._model=d,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(localize(1080,"{0} ({1})",this._model.title,this._model.references.length));const g=this._editor.getModel().uri,f=new Position$1(e.startLineNumber,e.startColumn),m=this._model.nearestReference(g,f);if(m)return this._widget.setSelection(m).then(()=>{this._widget&&this._editor.getOption(99)==="editor"&&this._widget.focusOnPreviewEditor()})}})},d=>{this._notificationService.error(d)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(e){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const r=this._model.nearestReference(this._editor.getModel().uri,t);if(!r)return;const s=this._model.nextOrPreviousReference(r,e),a=this._editor.hasTextFocus(),l=this._widget.isPreviewEditorFocused();await this._widget.setSelection(s),await this._gotoReference(s,!1),a?this._editor.focus():this._widget&&l&&this._widget.focusOnPreviewEditor()}async revealReference(e){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(e)}closeWidget(e=!0){var t,r;(t=this._widget)==null||t.dispose(),(r=this._model)==null||r.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 s;(s=this._widget)==null||s.hide(),this._ignoreModelChangeEvent=!0;const r=Range$2.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:r,selectionSource:"code.jump",pinned:t}},this._editor).then(a=>{var l;if(this._ignoreModelChangeEvent=!1,!a||!this._widget){this.closeWidget();return}if(this._editor===a)this._widget.show(r),this._widget.focusOnReferenceTree();else{const c=ReferencesController_1.get(a),d=this._model.clone();this.closeWidget(),a.focus(),c==null||c.toggleWidget(r,createCancelablePromise(u=>Promise.resolve(d)),(l=this._peekMode)!=null?l:!1)}},a=>{this._ignoreModelChangeEvent=!1,onUnexpectedError(a)})}openReference(e,t,r){t||this.closeWidget();const{uri:s,range:a}=e;this._editorService.openCodeEditor({resource:s,options:{selection:a,selectionSource:"code.jump",pinned:r}},this._editor,t)}},ReferencesController_1=ln,ln.ID="editor.contrib.referencesController",ln);ReferencesController=ReferencesController_1=__decorate$22([__param$1Z(2,IContextKeyService),__param$1Z(3,ICodeEditorService),__param$1Z(4,INotificationService),__param$1Z(5,IInstantiationService),__param$1Z(6,IStorageService),__param$1Z(7,IConfigurationService)],ReferencesController);function withController(o,e){const t=getOuterEditor(o);if(!t)return;const r=ReferencesController.get(t);r&&e(r)}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"),ContextKeyExpr.or(EditorContextKeys.editorTextFocus,InputFocusedContext.negate()))});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 r;const t=(r=o.get(IListService).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(t)&&t[0]instanceof OneReference&&withController(o,s=>s.revealReference(t[0]))}});KeybindingsRegistry.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:ContextKeyExpr.and(ctxReferenceSearchVisible,WorkbenchListFocusContextKey,WorkbenchTreeElementCanCollapse.negate(),WorkbenchTreeElementCanExpand.negate()),handler(o){var r;const t=(r=o.get(IListService).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(t)&&t[0]instanceof OneReference&&withController(o,s=>s.openReference(t[0],!0,!0))}});CommandsRegistry.registerCommand("openReference",o=>{var r;const t=(r=o.get(IListService).lastFocusedList)==null?void 0:r.getFocus();Array.isArray(t)&&t[0]instanceof OneReference&&withController(o,s=>s.openReference(t[0],!1,!0))});var __decorate$21=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1Y=function(o,e){return function(t,r){e(t,r,o)}};const ctxHasSymbols=new RawContextKey("hasSymbols",!1,localize(1095,"Whether there are symbol locations that can be navigated via keyboard-only.")),ISymbolNavigationService=createDecorator("ISymbolNavigationService");let SymbolNavigationService=class{constructor(e,t,r,s){this._editorService=t,this._notificationService=r,this._keybindingService=s,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.dispose(),(t=this._currentMessage)==null||t.close(),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 r=new EditorState(this._editorService),s=r.onDidChange(a=>{if(this._ignoreEditorChange)return;const l=this._editorService.getActiveCodeEditor();if(!l)return;const c=l.getModel(),d=l.getPosition();if(!c||!d)return;let u=!1,g=!1;for(const f of t.references)if(isEqual(f.uri,c.uri))u=!0,g=g||Range$2.containsPosition(f.range,d);else if(u)break;(!u||!g)&&this.reset()});this._currentState=combinedDisposable(r,s)}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 r;(r=this._currentMessage)==null||r.close();const e=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),t=e?localize(1096,"Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,e.getLabel()):localize(1097,"Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(t)}};SymbolNavigationService=__decorate$21([__param$1Y(0,IContextKeyService),__param$1Y(1,ICodeEditorService),__param$1Y(2,INotificationService),__param$1Y(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$1,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.dispose(),this._listener.delete(e)}};EditorState=__decorate$21([__param$1Y(0,ICodeEditorService)],EditorState);function shouldIncludeLocationLink(o,e){return e.uri.scheme===o.uri.scheme?!0:!matchesSomeScheme(e.uri,Schemas.walkThroughSnippet,Schemas.vscodeChatCodeBlock,Schemas.vscodeChatCodeCompareBlock)}async function getLocationLinks(o,e,t,r,s){const l=t.ordered(o,r).map(d=>Promise.resolve(s(d,o,e)).then(void 0,u=>{onUnexpectedExternalError(u)})),c=await Promise.all(l);return coalesce(c.flat()).filter(d=>shouldIncludeLocationLink(o,d))}function getDefinitionsAtPosition(o,e,t,r,s){return getLocationLinks(e,t,o,r,(a,l,c)=>a.provideDefinition(l,c,s))}function getDeclarationsAtPosition(o,e,t,r,s){return getLocationLinks(e,t,o,r,(a,l,c)=>a.provideDeclaration(l,c,s))}function getImplementationsAtPosition(o,e,t,r,s){return getLocationLinks(e,t,o,r,(a,l,c)=>a.provideImplementation(l,c,s))}function getTypeDefinitionsAtPosition(o,e,t,r,s){return getLocationLinks(e,t,o,r,(a,l,c)=>a.provideTypeDefinition(l,c,s))}function getReferencesAtPosition(o,e,t,r,s,a){return getLocationLinks(e,t,o,s,async(l,c,d)=>{var f,m;const u=(f=await l.provideReferences(c,d,{includeDeclaration:!0},a))==null?void 0:f.filter(_=>shouldIncludeLocationLink(c,_));if(!r||!u||u.length!==2)return u;const g=(m=await l.provideReferences(c,d,{includeDeclaration:!1},a))==null?void 0:m.filter(_=>shouldIncludeLocationLink(c,_));return g&&g.length===1?g:u})}async function _sortedAndDeduped(o){const e=await o(),t=new ReferencesModel(e,""),r=t.references.map(s=>s.link);return t.dispose(),r}registerModelAndPositionCommand("_executeDefinitionProvider",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getDefinitionsAtPosition(r.definitionProvider,e,t,!1,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeDefinitionProvider_recursive",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getDefinitionsAtPosition(r.definitionProvider,e,t,!0,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeTypeDefinitionProvider",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getTypeDefinitionsAtPosition(r.typeDefinitionProvider,e,t,!1,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeTypeDefinitionProvider_recursive",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getTypeDefinitionsAtPosition(r.typeDefinitionProvider,e,t,!0,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeDeclarationProvider",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getDeclarationsAtPosition(r.declarationProvider,e,t,!1,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeDeclarationProvider_recursive",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getDeclarationsAtPosition(r.declarationProvider,e,t,!0,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeReferenceProvider",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getReferencesAtPosition(r.referenceProvider,e,t,!1,!1,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeReferenceProvider_recursive",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getReferencesAtPosition(r.referenceProvider,e,t,!1,!0,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeImplementationProvider",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getImplementationsAtPosition(r.implementationProvider,e,t,!1,CancellationToken.None);return _sortedAndDeduped(()=>s)});registerModelAndPositionCommand("_executeImplementationProvider_recursive",(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=getImplementationsAtPosition(r.implementationProvider,e,t,!0,CancellationToken.None);return _sortedAndDeduped(()=>s)});MenuRegistry.appendMenuItem(MenuId.EditorContext,{submenu:MenuId.EditorContextPeek,title:localize(1038,"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}}const bt=class bt extends EditorAction2{static all(){return bt._allSymbolNavigationCommands.values()}static _patchConfig(e){const t={...e,f1:!0};if(t.menu)for(const r of Iterable.wrap(t.menu))(r.id===MenuId.EditorContext||r.id===MenuId.EditorContextPeek)&&(r.when=ContextKeyExpr.and(e.precondition,r.when));return t}constructor(e,t){super(bt._patchConfig(t)),this.configuration=e,bt._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,r,s){if(!t.hasModel())return Promise.resolve(void 0);const a=e.get(INotificationService),l=e.get(ICodeEditorService),c=e.get(IEditorProgressService),d=e.get(ISymbolNavigationService),u=e.get(ILanguageFeaturesService),g=e.get(IInstantiationService),f=t.getModel(),m=t.getPosition(),_=SymbolNavigationAnchor.is(r)?r:new SymbolNavigationAnchor(f,m),v=new EditorStateCancellationTokenSource(t,5),b=raceCancellation(this._getLocationModel(u,_.model,_.position,v.token),v.token).then(async C=>{var w;if(!C||v.token.isCancellationRequested)return;alert(C.ariaMessage);let y;if(C.referenceAt(f.uri,m)){const E=this._getAlternativeCommand(t);E!==void 0&&!bt._activeAlternativeCommands.has(E)&&bt._allSymbolNavigationCommands.has(E)&&(y=bt._allSymbolNavigationCommands.get(E))}const S=C.references.length;if(S===0){if(!this.configuration.muteMessage){const E=f.getWordAtPosition(m);(w=MessageController.get(t))==null||w.showMessage(this._getNoResultFoundMessage(E),m)}}else if(S===1&&y)bt._activeAlternativeCommands.add(this.desc.id),g.invokeFunction(E=>y.runEditorCommand(E,t,r,s).finally(()=>{bt._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(l,d,t,C,s)},C=>{a.error(C)}).finally(()=>{v.dispose()});return c.showWhile(b,250),b}async _onResult(e,t,r,s,a){const l=this._getGoToPreference(r);if(!(r instanceof EmbeddedCodeEditorWidget)&&(this.configuration.openInPeek||l==="peek"&&s.references.length>1))this._openInPeek(r,s,a);else{const c=s.firstReference(),d=s.references.length>1&&l==="gotoAndPeek",u=await this._openReference(r,e,c,this.configuration.openToSide,!d);d&&u?this._openInPeek(u,s,a):s.dispose(),l==="goto"&&t.put(c)}}async _openReference(e,t,r,s,a){let l;if(isLocationLink(r)&&(l=r.targetSelectionRange),l||(l=r.range),!l)return;const c=await t.openCodeEditor({resource:r.uri,options:{selection:Range$2.collapseToStart(l),selectionRevealType:3,selectionSource:"code.jump"}},e,s);if(c){if(a){const d=c.getModel(),u=c.createDecorationsCollection([{range:l,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{c.getModel()===d&&u.clear()},350)}return c}}_openInPeek(e,t,r){const s=ReferencesController.get(e);s&&e.hasModel()?s.toggleWidget(r!=null?r:e.getSelection(),createCancelablePromise(a=>Promise.resolve(t)),this.configuration.openInPeek):t.dispose()}};bt._allSymbolNavigationCommands=new Map,bt._activeAlternativeCommands=new Set;let SymbolNavigationAction=bt;class DefinitionAction extends SymbolNavigationAction{async _getLocationModel(e,t,r,s){return new ReferencesModel(await getDefinitionsAtPosition(e.definitionProvider,t,r,!1,s),localize(1039,"Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?localize(1040,"No definition found for '{0}'",e.word):localize(1041,"No definition found")}_getAlternativeCommand(e){return e.getOption(67).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(67).multipleDefinitions}}var Ci;registerAction2((Ci=class extends DefinitionAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:Ci.id,title:{...localize2(1065,"Go to Definition"),mnemonicTitle:localize(1042,"Go to &&Definition")},precondition:EditorContextKeys.hasDefinitionProvider,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",Ci.id)}},Ci.id="editor.action.revealDefinition",Ci));var yi;registerAction2((yi=class extends DefinitionAction{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:yi.id,title:localize2(1066,"Open Definition to the Side"),precondition:ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider,EditorContextKeys.isInEmbeddedEditor.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",yi.id)}},yi.id="editor.action.revealDefinitionAside",yi));var Si;registerAction2((Si=class extends DefinitionAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:Si.id,title:localize2(1067,"Peek Definition"),precondition:ContextKeyExpr.and(EditorContextKeys.hasDefinitionProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInEmbeddedEditor.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",Si.id)}},Si.id="editor.action.peekDefinition",Si));class DeclarationAction extends SymbolNavigationAction{async _getLocationModel(e,t,r,s){return new ReferencesModel(await getDeclarationsAtPosition(e.declarationProvider,t,r,!1,s),localize(1043,"Declarations"))}_getNoResultFoundMessage(e){return e&&e.word?localize(1044,"No declaration found for '{0}'",e.word):localize(1045,"No declaration found")}_getAlternativeCommand(e){return e.getOption(67).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(67).multipleDeclarations}}var cn;registerAction2((cn=class extends DeclarationAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:cn.id,title:{...localize2(1068,"Go to Declaration"),mnemonicTitle:localize(1046,"Go to &&Declaration")},precondition:ContextKeyExpr.and(EditorContextKeys.hasDeclarationProvider,EditorContextKeys.isInEmbeddedEditor.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(1047,"No declaration found for '{0}'",e.word):localize(1048,"No declaration found")}},cn.id="editor.action.revealDeclaration",cn));registerAction2(class extends DeclarationAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:localize2(1069,"Peek Declaration"),precondition:ContextKeyExpr.and(EditorContextKeys.hasDeclarationProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:MenuId.EditorContextPeek,group:"peek",order:3}})}});class TypeDefinitionAction extends SymbolNavigationAction{async _getLocationModel(e,t,r,s){return new ReferencesModel(await getTypeDefinitionsAtPosition(e.typeDefinitionProvider,t,r,!1,s),localize(1049,"Type Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?localize(1050,"No type definition found for '{0}'",e.word):localize(1051,"No type definition found")}_getAlternativeCommand(e){return e.getOption(67).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(67).multipleTypeDefinitions}}var dn;registerAction2((dn=class extends TypeDefinitionAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:dn.ID,title:{...localize2(1070,"Go to Type Definition"),mnemonicTitle:localize(1052,"Go to &&Type Definition")},precondition:EditorContextKeys.hasTypeDefinitionProvider,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}]})}},dn.ID="editor.action.goToTypeDefinition",dn));var un;registerAction2((un=class extends TypeDefinitionAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:un.ID,title:localize2(1071,"Peek Type Definition"),precondition:ContextKeyExpr.and(EditorContextKeys.hasTypeDefinitionProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:MenuId.EditorContextPeek,group:"peek",order:4}})}},un.ID="editor.action.peekTypeDefinition",un));class ImplementationAction extends SymbolNavigationAction{async _getLocationModel(e,t,r,s){return new ReferencesModel(await getImplementationsAtPosition(e.implementationProvider,t,r,!1,s),localize(1053,"Implementations"))}_getNoResultFoundMessage(e){return e&&e.word?localize(1054,"No implementation found for '{0}'",e.word):localize(1055,"No implementation found")}_getAlternativeCommand(e){return e.getOption(67).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(67).multipleImplementations}}var hn;registerAction2((hn=class extends ImplementationAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:hn.ID,title:{...localize2(1072,"Go to Implementations"),mnemonicTitle:localize(1056,"Go to &&Implementations")},precondition:EditorContextKeys.hasImplementationProvider,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}]})}},hn.ID="editor.action.goToImplementation",hn));var gn;registerAction2((gn=class extends ImplementationAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:gn.ID,title:localize2(1073,"Peek Implementations"),precondition:ContextKeyExpr.and(EditorContextKeys.hasImplementationProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInEmbeddedEditor.toNegated()),keybinding:{when:EditorContextKeys.editorTextFocus,primary:3142,weight:100},menu:{id:MenuId.EditorContextPeek,group:"peek",order:5}})}},gn.ID="editor.action.peekImplementation",gn));class ReferencesAction extends SymbolNavigationAction{_getNoResultFoundMessage(e){return e?localize(1057,"No references found for '{0}'",e.word):localize(1058,"No references found")}_getAlternativeCommand(e){return e.getOption(67).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(67).multipleReferences}}registerAction2(class extends ReferencesAction{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...localize2(1074,"Go to References"),mnemonicTitle:localize(1059,"Go to &&References")},precondition:ContextKeyExpr.and(EditorContextKeys.hasReferenceProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInEmbeddedEditor.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}]})}async _getLocationModel(e,t,r,s){return new ReferencesModel(await getReferencesAtPosition(e.referenceProvider,t,r,!0,!1,s),localize(1060,"References"))}});registerAction2(class extends ReferencesAction{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:localize2(1075,"Peek References"),precondition:ContextKeyExpr.and(EditorContextKeys.hasReferenceProvider,PeekContext.notInPeekEditor,EditorContextKeys.isInEmbeddedEditor.toNegated()),menu:{id:MenuId.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(e,t,r,s){return new ReferencesModel(await getReferencesAtPosition(e.referenceProvider,t,r,!1,!1,s),localize(1061,"References"))}});class GenericGoToLocationAction extends SymbolNavigationAction{constructor(e,t,r){super(e,{id:"editor.action.goToLocation",title:localize2(1076,"Go to Any Symbol"),precondition:ContextKeyExpr.and(PeekContext.notInPeekEditor,EditorContextKeys.isInEmbeddedEditor.toNegated())}),this._references=t,this._gotoMultipleBehaviour=r}async _getLocationModel(e,t,r,s){return new ReferencesModel(this._references,localize(1062,"Locations"))}_getNoResultFoundMessage(e){return e&&localize(1063,"No results for '{0}'",e.word)||""}_getGoToPreference(e){var t;return(t=this._gotoMultipleBehaviour)!=null?t:e.getOption(67).multipleReferences}_getAlternativeCommand(){}}CommandsRegistry.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint: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:async(o,e,t,r,s,a,l)=>{assertType(URI.isUri(e)),assertType(Position$1.isIPosition(t)),assertType(Array.isArray(r)),assertType(typeof s>"u"||typeof s=="string"),assertType(typeof l>"u"||typeof l=="boolean");const c=o.get(ICodeEditorService),d=await c.openCodeEditor({resource:e},c.getFocusedCodeEditor());if(isCodeEditor(d))return d.setPosition(t),d.revealPositionInCenterIfOutsideViewport(t,0),d.invokeWithinContext(u=>{const g=new class extends GenericGoToLocationAction{_getNoResultFoundMessage(f){return a||super._getNoResultFoundMessage(f)}}({muteMessage:!a,openInPeek:!!l,openToSide:!1},r,s);u.get(IInstantiationService).invokeFunction(g.run.bind(g),d)})}});CommandsRegistry.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint: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:async(o,e,t,r,s)=>{o.get(ICommandService).executeCommand("editor.action.goToLocations",e,t,r,s,void 0,!0)}});CommandsRegistry.registerCommand({id:"editor.action.findReferences",handler:(o,e,t)=>{assertType(URI.isUri(e)),assertType(Position$1.isIPosition(t));const r=o.get(ILanguageFeaturesService),s=o.get(ICodeEditorService);return s.openCodeEditor({resource:e},s.getFocusedCodeEditor()).then(a=>{if(!isCodeEditor(a)||!a.hasModel())return;const l=ReferencesController.get(a);if(!l)return;const c=createCancelablePromise(u=>getReferencesAtPosition(r.referenceProvider,a.getModel(),Position$1.lift(t),!1,!1,u).then(g=>new ReferencesModel(g,localize(1064,"References")))),d=new Range$2(t.lineNumber,t.column,t.lineNumber,t.column);return Promise.resolve(l.toggleWidget(d,c,!1))})}});CommandsRegistry.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");async function showGoToContextMenu(o,e,t,r){var _;const s=o.get(ITextModelService),a=o.get(IContextMenuService),l=o.get(ICommandService),c=o.get(IInstantiationService),d=o.get(INotificationService);if(await r.item.resolve(CancellationToken.None),!r.part.location)return;const u=r.part.location,g=[],f=new Set(MenuRegistry.getMenuItems(MenuId.EditorContext).map(v=>isIMenuItem(v)?v.command.id:generateUuid()));for(const v of SymbolNavigationAction.all())f.has(v.desc.id)&&g.push(new Action(v.desc.id,MenuItemAction.label(v.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const b=await s.createModelReference(u.uri);try{const C=new SymbolNavigationAnchor(b.object.textEditorModel,Range$2.getStartPosition(u.range)),y=r.item.anchor.range;await c.invokeFunction(v.runEditorCommand.bind(v),e,C,y)}finally{b.dispose()}}));if(r.part.command){const{command:v}=r.part;g.push(new Separator),g.push(new Action(v.id,v.title,void 0,!0,async()=>{var b;try{await l.executeCommand(v.id,...(b=v.arguments)!=null?b:[])}catch(C){d.notify({severity:Severity.Error,source:r.item.provider.displayName,message:C})}}))}const m=e.getOption(144);a.showContextMenu({domForShadowRoot:m&&(_=e.getDomNode())!=null?_:void 0,getAnchor:()=>{const v=getDomNodePagePosition(t);return{x:v.left,y:v.top+v.height+8}},getActions:()=>g,onHide:()=>{e.focus()},autoSelectFirstItem:!0})}async function goToDefinitionWithLocation(o,e,t,r){const a=await o.get(ITextModelService).createModelReference(r.uri);await t.invokeWithinContext(async l=>{const c=e.hasSideBySideModifier,d=l.get(IContextKeyService),u=PeekContext.inPeekEditor.getValue(d),g=!c&&t.getOption(101)&&!u;return new DefinitionAction({openToSide:c,openInPeek:g,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(l,new SymbolNavigationAnchor(a.object.textEditorModel,Range$2.getStartPosition(r.range)),Range$2.lift(r.range))}),a.dispose()}var __decorate$20=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1X=function(o,e){return function(t,r){e(t,r,o)}},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 r=InlayHintsCache._key(e);this._entries.set(r,t)}static _key(e){return"".concat(e.uri.toString(),"/").concat(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}}class CancellationStore{constructor(){this._store=new MutableDisposable,this._tokenSource=new CancellationTokenSource$1}dispose(){this._store.dispose(),this._tokenSource.dispose(!0)}reset(){return this._tokenSource.dispose(!0),this._tokenSource=new CancellationTokenSource$1,this._store.value=new DisposableStore$1,{store:this._store.value,token:this._tokenSource.token}}}var ni;let InlayHintsController=(ni=class{static get(e){var t;return(t=e.getContribution(InlayHintsController_1.ID))!=null?t:void 0}constructor(e,t,r,s,a,l,c){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=s,this._commandService=a,this._notificationService=l,this._instaService=c,this._disposables=new DisposableStore$1,this._sessionDisposables=new DisposableStore$1,this._decorationsMetadata=new Map,this._activeRenderMode=0,this._ruleFactory=this._disposables.add(new DynamicCssRules(this._editor)),this._debounceInfo=r.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(d=>{d.hasChanged(159)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(159);if(e.enabled==="off")return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;if(e.enabled==="on")this._activeRenderMode=0;else{let u,g;e.enabled==="onUnlessPressed"?(u=0,g=1):(u=1,g=0),this._activeRenderMode=u,this._sessionDisposables.add(ModifierKeyEmitter.getInstance().event(f=>{if(!this._editor.hasModel())return;const m=f.altKey&&f.ctrlKey&&!(f.shiftKey||f.metaKey)?g:u;if(m!==this._activeRenderMode){this._activeRenderMode=m;const _=this._editor.getModel(),v=this._copyInlayHintsWithCurrentAnchor(_);this._updateHintsDecorators([_.getFullModelRange()],v),c.schedule(0)}}))}const r=this._inlayHintsCache.get(t);r&&this._updateHintsDecorators([t.getFullModelRange()],r),this._sessionDisposables.add(toDisposable(()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)}));let s;const a=new Set;this._sessionDisposables.add(t.onWillDispose(()=>s==null?void 0:s.cancel()));const l=this._sessionDisposables.add(new CancellationStore),c=new RunOnceScheduler(async()=>{const u=Date.now(),{store:g,token:f}=l.reset();try{const m=await InlayHintsFragments.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),f);if(c.delay=this._debounceInfo.update(t,Date.now()-u),f.isCancellationRequested){m.dispose();return}for(const _ of m.provider)typeof _.onDidChangeInlayHints=="function"&&!a.has(_)&&(a.add(_),g.add(_.onDidChangeInlayHints(()=>{c.isScheduled()||c.schedule()})));g.add(m),this._updateHintsDecorators(m.ranges,m.items),this._cacheHintsForFastRestore(t)}catch(m){onUnexpectedError(m)}},this._debounceInfo.get(t));this._sessionDisposables.add(c),c.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(u=>{(u.scrollTopChanged||!c.isScheduled())&&c.schedule()}));const d=this._sessionDisposables.add(new MutableDisposable);this._sessionDisposables.add(this._editor.onDidChangeModelContent(u=>{const g=Math.max(c.delay,800);this._cursorInfo={position:this._editor.getPosition(),notEarlierThan:Date.now()+g},d.value=disposableTimeout(()=>c.schedule(0),g),c.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeConfiguration(u=>{u.hasChanged(159)&&c.schedule()})),this._sessionDisposables.add(this._installDblClickGesture(()=>c.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new DisposableStore$1,t=e.add(new ClickLinkGesture(this._editor)),r=new DisposableStore$1;return e.add(r),e.add(t.onMouseMoveOrRelevantKeyDown(s=>{const[a]=s,l=this._getInlayHintLabelPart(a),c=this._editor.getModel();if(!l||!c){r.clear();return}const d=new CancellationTokenSource$1;r.add(toDisposable(()=>d.dispose(!0))),l.item.resolve(d.token),this._activeInlayHintPart=l.part.command||l.part.location?new ActiveInlayHintInfo(l,a.hasTriggerModifier):void 0;const u=c.validatePosition(l.item.hint.position).lineNumber,g=new Range$2(u,1,u,c.getLineMaxColumn(u)),f=this._getInlineHintsForRange(g);this._updateHintsDecorators([g],f),r.add(toDisposable(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([g],f)}))})),e.add(t.onCancel(()=>r.clear())),e.add(t.onExecute(async s=>{const a=this._getInlayHintLabelPart(s);if(a){const l=a.part;l.location?this._instaService.invokeFunction(goToDefinitionWithLocation,s,this._editor,l.location):Command.is(l.command)&&await this._invokeCommand(l.command,a.item)}})),e}_getInlineHintsForRange(e){const t=new Set;for(const r of this._decorationsMetadata.values())e.containsRange(r.item.anchor.range)&&t.add(r.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp(async t=>{if(t.event.detail!==2)return;const r=this._getInlayHintLabelPart(t);if(r&&(t.event.preventDefault(),await r.item.resolve(CancellationToken.None),isNonEmptyArray(r.item.hint.textEdits))){const s=r.item.hint.textEdits.map(a=>EditOperation.replace(Range$2.lift(a.range),a.text));this._editor.executeEdits("inlayHint.default",s),e()}})}_installContextMenu(){return this._editor.onContextMenu(async e=>{if(!isHTMLElement(e.event.target))return;const t=this._getInlayHintLabelPart(e);t&&await this._instaService.invokeFunction(showGoToContextMenu,this._editor,e.event.target,t)})}_getInlayHintLabelPart(e){var r;if(e.target.type!==6)return;const t=(r=e.target.detail.injectedText)==null?void 0:r.options;if(t instanceof ModelDecorationInjectedTextOptions&&(t==null?void 0:t.attachedData)instanceof RenderedInlayHintLabelPart)return t.attachedData}async _invokeCommand(e,t){var r;try{await this._commandService.executeCommand(e.id,...(r=e.arguments)!=null?r:[])}catch(s){this._notificationService.notify({severity:Severity.Error,source:t.provider.displayName,message:s})}}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[r,s]of this._decorationsMetadata){if(t.has(s.item))continue;const a=e.getDecorationRange(r);if(a){const l=new InlayHintAnchor(a,s.item.anchor.direction),c=s.item.with({anchor:l});t.set(s.item,c)}}return Array.from(t.values())}_getHintsRanges(){const t=this._editor.getModel(),r=this._editor.getVisibleRangesPlusViewportAboveBelow(),s=[];for(const a of r.sort(Range$2.compareRangesUsingStarts)){const l=t.validateRange(new Range$2(a.startLineNumber-30,a.startColumn,a.endLineNumber+30,a.endColumn));s.length===0||!Range$2.areIntersectingOrTouching(s[s.length-1],l)?s.push(l):s[s.length-1]=Range$2.plusRange(s[s.length-1],l)}return s}_updateHintsDecorators(e,t){var C,y,S,w;const r=new Map;if(this._cursorInfo&&this._cursorInfo.notEarlierThan>Date.now()&&e.some(E=>E.containsPosition(this._cursorInfo.position))){const{position:E}=this._cursorInfo;this._cursorInfo=void 0;const x=new Map;for(const I of(C=this._editor.getLineDecorations(E.lineNumber))!=null?C:[]){const T=this._decorationsMetadata.get(I.id);if(I.range.startColumn>E.column)continue;const M=T==null?void 0:T.decoration.options[T.item.anchor.direction];if(M&&M.attachedData!==InlayHintsController_1._whitespaceData){const R=(y=x.get(T.item))!=null?y:0;x.set(T.item,R+M.content.length)}}const L=t.filter(I=>I.anchor.range.startLineNumber===E.lineNumber&&I.anchor.range.endColumn<=E.column),k=Array.from(x.values());let D;for(;;){const I=L.shift(),T=k.shift();if(!T&&!I)break;if(I)r.set(I,T!=null?T:0),D=I;else if(D&&T){let M=r.get(D);M+=T,M+=k.reduce((R,N)=>R+N,0),k.length=0;break}}}const s=[],a=(E,x,L,k,D)=>{const I={content:L,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:x.className,cursorStops:k,attachedData:D};s.push({item:E,classNameRef:x,decoration:{range:E.anchor.range,options:{description:"InlayHint",showIfCollapsed:E.anchor.range.isEmpty(),collapseOnReplaceEdit:!E.anchor.range.isEmpty(),stickiness:0,[E.anchor.direction]:this._activeRenderMode===0?I:void 0}}})},l=(E,x)=>{const L=this._ruleFactory.createClassNameRef({width:"".concat(c/3|0,"px"),display:"inline-block"});a(E,L,"",x?InjectedTextCursorStops$1.Right:InjectedTextCursorStops$1.None,InlayHintsController_1._whitespaceData)},{fontSize:c,fontFamily:d,padding:u,isUniform:g}=this._getLayoutInfo(),f=this._editor.getOption(159).maximumLength,m="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(m,d);let _={line:0,totalLen:0};for(let E=0;E<t.length;E++){const x=t[E];if(_.line!==x.anchor.range.startLineNumber&&(_={line:x.anchor.range.startLineNumber,totalLen:0}),f&&_.totalLen>f)continue;x.hint.paddingLeft&&l(x,!1);const L=typeof x.hint.label=="string"?[{label:x.hint.label}]:x.hint.label,k=r.get(x);let D=0;for(let I=0;I<L.length;I++){const T=L[I],M=I===0,R=I===L.length-1,N={fontSize:"".concat(c,"px"),fontFamily:"var(".concat(m,"), ").concat(EDITOR_FONT_DEFAULTS.fontFamily),verticalAlign:g?"baseline":"middle",unicodeBidi:"isolate"};isNonEmptyArray(x.hint.textEdits)&&(N.cursor="default"),this._fillInColors(N,x.hint),(T.command||T.location)&&((S=this._activeInlayHintPart)==null?void 0:S.part.item)===x&&this._activeInlayHintPart.part.index===I&&(N.textDecoration="underline",this._activeInlayHintPart.hasTriggerModifier&&(N.color=themeColorFromId(editorActiveLinkForeground),N.cursor="pointer"));let A=T.label;_.totalLen+=A.length;let O=!1;const P=f!==0?_.totalLen-f:0;if(P>0&&(A=A.slice(0,-P)+"…",O=!0),D+=A.length,k!==void 0){const F=D-k;F>=0&&(D-=F,A=A.slice(0,-(1+F))+"…",O=!0)}if(u&&(M&&(R||O)?(N.padding="1px ".concat(Math.max(1,c/4)|0,"px"),N.borderRadius="".concat(c/4|0,"px")):M?(N.padding="1px 0 1px ".concat(Math.max(1,c/4)|0,"px"),N.borderRadius="".concat(c/4|0,"px 0 0 ").concat(c/4|0,"px")):R||O?(N.padding="1px ".concat(Math.max(1,c/4)|0,"px 1px 0"),N.borderRadius="0 ".concat(c/4|0,"px ").concat(c/4|0,"px 0")):N.padding="1px 0 1px 0"),a(x,this._ruleFactory.createClassNameRef(N),fixSpace(A),R&&!x.hint.paddingRight?InjectedTextCursorStops$1.Right:InjectedTextCursorStops$1.None,new RenderedInlayHintLabelPart(x,I)),O)break}if(k!==void 0&&D<k){const I=k-D;a(x,this._ruleFactory.createClassNameRef({}),"".repeat(I),InjectedTextCursorStops$1.None)}if(x.hint.paddingRight&&l(x,!0),s.length>InlayHintsController_1._MAX_DECORATORS)break}const v=[];for(const[E,x]of this._decorationsMetadata){const L=(w=this._editor.getModel())==null?void 0:w.getDecorationRange(E);L&&e.some(k=>k.containsRange(L))&&(v.push(E),x.classNameRef.dispose(),this._decorationsMetadata.delete(E))}const b=StableEditorScrollState.capture(this._editor);this._editor.changeDecorations(E=>{const x=E.deltaDecorations(v,s.map(L=>L.decoration));for(let L=0;L<x.length;L++){const k=s[L];this._decorationsMetadata.set(x[L],k)}}),b.restore(this._editor)}_fillInColors(e,t){t.kind===InlayHintKind$2.Parameter?(e.backgroundColor=themeColorFromId(editorInlayHintParameterBackground),e.color=themeColorFromId(editorInlayHintParameterForeground)):t.kind===InlayHintKind$2.Type?(e.backgroundColor=themeColorFromId(editorInlayHintTypeBackground),e.color=themeColorFromId(editorInlayHintTypeForeground)):(e.backgroundColor=themeColorFromId(editorInlayHintBackground),e.color=themeColorFromId(editorInlayHintForeground))}_getLayoutInfo(){const e=this._editor.getOption(159),t=e.padding,r=this._editor.getOption(61),s=this._editor.getOption(58);let a=e.fontSize;(!a||a<5||a>r)&&(a=r);const l=e.fontFamily||s;return{fontSize:a,fontFamily:l,padding:t,isUniform:!t&&l===s&&a===r}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}},InlayHintsController_1=ni,ni.ID="editor.contrib.InlayHints",ni._MAX_DECORATORS=1500,ni._whitespaceData={},ni);InlayHintsController=InlayHintsController_1=__decorate$20([__param$1X(1,ILanguageFeaturesService),__param$1X(2,ILanguageFeatureDebounceService),__param$1X(3,IInlayHintsCache),__param$1X(4,ICommandService),__param$1X(5,INotificationService),__param$1X(6,IInstantiationService)],InlayHintsController);function fixSpace(o){return o.replace(/[ \t]/g," ")}CommandsRegistry.registerCommand("_executeInlayHintProvider",async(o,...e)=>{const[t,r]=e;assertType(URI.isUri(t)),assertType(Range$2.isIRange(r));const{inlayHintsProvider:s}=o.get(ILanguageFeaturesService),a=await o.get(ITextModelService).createModelReference(t);try{const l=await InlayHintsFragments.create(s,a.object.textEditorModel,[Range$2.lift(r)],CancellationToken.None),c=l.items.map(d=>d.hint);return setTimeout(()=>l.dispose(),0),c}finally{a.dispose()}});var __decorate$1$=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1W=function(o,e){return function(t,r){e(t,r,o)}};class InlayHintsHoverAnchor extends HoverForeignElementAnchor{constructor(e,t,r,s){super(10,t,e.item.anchor.range,r,s,!0),this.part=e}}let InlayHintsHover=class extends MarkdownHoverParticipant{constructor(e,t,r,s,a,l,c,d){super(e,t,a,c,r,s,d),this._resolverService=l,this.hoverOrdinal=6}suggestHoverAnchor(e){var s;if(!InlayHintsController.get(this._editor)||e.target.type!==6)return null;const r=(s=e.target.detail.injectedText)==null?void 0:s.options;return r instanceof ModelDecorationInjectedTextOptions&&r.attachedData instanceof RenderedInlayHintLabelPart?new InlayHintsHoverAnchor(r.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,r,s){return e instanceof InlayHintsHoverAnchor?new AsyncIterableProducer(async a=>{const{part:l}=e;if(await l.item.resolve(s),s.isCancellationRequested)return;let c;typeof l.item.hint.tooltip=="string"?c=new MarkdownString().appendText(l.item.hint.tooltip):l.item.hint.tooltip&&(c=l.item.hint.tooltip),c&&a.emitOne(new MarkdownHover(this,e.range,[c],!1,0)),isNonEmptyArray(l.item.hint.textEdits)&&a.emitOne(new MarkdownHover(this,e.range,[new MarkdownString().appendText(localize(1164,"Double-click to insert"))],!1,10001));let d;if(typeof l.part.tooltip=="string"?d=new MarkdownString().appendText(l.part.tooltip):l.part.tooltip&&(d=l.part.tooltip),d&&a.emitOne(new MarkdownHover(this,e.range,[d],!1,1)),l.part.location||l.part.command){let g;const m=this._editor.getOption(86)==="altKey"?isMacintosh?localize(1165,"cmd + click"):localize(1166,"ctrl + click"):isMacintosh?localize(1167,"option + click"):localize(1168,"alt + click");l.part.location&&l.part.command?g=new MarkdownString().appendText(localize(1169,"Go to Definition ({0}), right click for more",m)):l.part.location?g=new MarkdownString().appendText(localize(1170,"Go to Definition ({0})",m)):l.part.command&&(g=new MarkdownString("[".concat(localize(1171,"Execute Command"),"](").concat(asCommandLink(l.part.command),' "').concat(l.part.command.title,'") (').concat(m,")"),{isTrusted:!0})),g&&a.emitOne(new MarkdownHover(this,e.range,[g],!1,1e4))}const u=this._resolveInlayHintLabelPartHover(l,s);for await(const g of u)a.emitOne(g)}):AsyncIterableProducer.EMPTY}async*_resolveInlayHintLabelPartHover(e,t){if(!e.part.location)return;const{uri:r,range:s}=e.part.location,a=await this._resolverService.createModelReference(r);try{const l=a.object.textEditorModel;if(!this._languageFeaturesService.hoverProvider.has(l))return;for await(const c of getHoverProviderResultsAsAsyncIterable(this._languageFeaturesService.hoverProvider,l,new Position$1(s.startLineNumber,s.startColumn),t))isEmptyMarkdownString(c.hover.contents)||(yield new MarkdownHover(this,e.item.anchor.range,c.hover.contents,!1,2+c.ordinal))}finally{a.dispose()}}};InlayHintsHover=__decorate$1$([__param$1W(1,IMarkdownRendererService),__param$1W(2,IKeybindingService),__param$1W(3,IHoverService),__param$1W(4,IConfigurationService),__param$1W(5,ITextModelService),__param$1W(6,ILanguageFeaturesService),__param$1W(7,ICommandService)],InlayHintsHover);var __decorate$1_=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1V=function(o,e){return function(t,r){e(t,r,o)}};class MarkerCoordinate{constructor(e,t,r){this.marker=e,this.index=t,this.total=r}}let MarkerList=class{constructor(e,t,r){this._markerService=t,this._configService=r,this._onDidChange=new Emitter$1,this.onDidChange=this._onDidChange.event,this._dispoables=new DisposableStore$1,this._markers=[],this._nextIdx=-1,URI.isUri(e)?this._resourceFilter=c=>c.toString()===e.toString():e&&(this._resourceFilter=e);const s=this._configService.getValue("problems.sortOrder"),a=(c,d)=>{let u=compare(c.resource.toString(),d.resource.toString());return u===0&&(s==="position"?u=Range$2.compareRangesUsingStarts(c,d)||MarkerSeverity$2.compare(c.severity,d.severity):u=MarkerSeverity$2.compare(c.severity,d.severity)||Range$2.compareRangesUsingStarts(c,d)),u},l=()=>{let c=this._markerService.read({resource:URI.isUri(e)?e:void 0,severities:MarkerSeverity$2.Error|MarkerSeverity$2.Warning|MarkerSeverity$2.Info});return typeof e=="function"&&(c=c.filter(d=>this._resourceFilter(d.resource))),c.sort(a),equals$2(c,this._markers,(d,u)=>d.resource.toString()===u.resource.toString()&&d.startLineNumber===u.startLineNumber&&d.startColumn===u.startColumn&&d.endLineNumber===u.endLineNumber&&d.endColumn===u.endColumn&&d.severity===u.severity&&d.message===u.message)?!1:(this._markers=c,!0)};l(),this._dispoables.add(t.onMarkerChanged(c=>{(!this._resourceFilter||c.some(d=>this._resourceFilter(d)))&&l()&&(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,r){let s=this._markers.findIndex(a=>isEqual(a.resource,e.uri));if(s<0)s=binarySearch2(this._markers.length,a=>compare(this._markers[a].resource.toString(),e.uri.toString())),s<0&&(s=~s),r?this._nextIdx=s:this._nextIdx=(this._markers.length+s-1)%this._markers.length;else{let a=!1,l=!1;for(let c=s;c<this._markers.length;c++){let d=Range$2.lift(this._markers[c]);if(d.isEmpty()){const u=e.getWordAtPosition(d.getStartPosition());u&&(d=new Range$2(d.startLineNumber,u.startColumn,d.startLineNumber,u.endColumn))}if(t&&(d.containsPosition(t)||t.isBeforeOrEqual(d.getStartPosition()))){this._nextIdx=c,a=!0,l=!d.containsPosition(t);break}if(this._markers[c].resource.toString()!==e.uri.toString())break}a?l&&!r&&(this._nextIdx-=1):this._nextIdx=r?0:this._markers.length-1}this._nextIdx<0&&(this._nextIdx=this._markers.length-1)}resetIndex(){this._nextIdx=-1}move(e,t,r){if(this._markers.length===0)return!1;const s=this._nextIdx;return this._nextIdx===-1?this._initIdx(t,r,e):e?this._nextIdx=(this._nextIdx+1)%this._markers.length:e||(this._nextIdx=(this._nextIdx-1+this._markers.length)%this._markers.length),s!==this._nextIdx}find(e,t){let r=this._markers.findIndex(s=>s.resource.toString()===e.toString());if(!(r<0)){for(;r<this._markers.length;r++)if(Range$2.containsPosition(this._markers[r],t))return new MarkerCoordinate(this._markers[r],r+1,this._markers.length)}}};MarkerList=__decorate$1_([__param$1V(1,IMarkerService),__param$1V(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 r=t.getMarkerList(e);if(r)return r}return new MarkerList(e,this._markerService,this._configService)}};MarkerNavigationService=__decorate$1_([__param$1V(0,IMarkerService),__param$1V(1,IConfigurationService)],MarkerNavigationService);registerSingleton(IMarkerNavigationService,MarkerNavigationService,1);var SeverityIcon;(function(o){function e(t){switch(t){case Severity$1$1.Ignore:return"severity-ignore "+ThemeIcon.asClassName(Codicon.info);case Severity$1$1.Info:return ThemeIcon.asClassName(Codicon.info);case Severity$1$1.Warning:return ThemeIcon.asClassName(Codicon.warning);case Severity$1$1.Error:return ThemeIcon.asClassName(Codicon.error);default:return""}}o.className=e})(SeverityIcon||(SeverityIcon={}));var __decorate$1Z=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1U=function(o,e){return function(t,r){e(t,r,o)}},MarkerNavigationWidget_1;class MessageWidget{constructor(e,t,r,s,a){this._openerService=s,this._labelService=a,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new DisposableStore$1,this._editor=t;const l=document.createElement("div");l.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),l.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),l.appendChild(this._relatedBlock),this._disposables.add(addStandardDisposableListener(this._relatedBlock,"click",c=>{c.preventDefault();const d=this._relatedDiagnostics.get(c.target);d&&r(d)})),this._scrollable=new ScrollableElement(l,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(c=>{l.style.left="-".concat(c.scrollLeft,"px"),l.style.top="-".concat(c.scrollTop,"px")})),this._disposables.add(this._scrollable)}dispose(){dispose(this._disposables)}update(e){const{source:t,message:r,relatedInformation:s,code:a}=e;let l=((t==null?void 0:t.length)||0)+2;a&&(typeof a=="string"?l+=a.length:l+=a.value.length);const c=splitLines(r);this._lines=c.length,this._longestLineLength=0;for(const m of c)this._longestLineLength=Math.max(m.length+l,this._longestLineLength);clearNode(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let d=this._messageBlock;for(const m of c)d=document.createElement("div"),d.innerText=m,m===""&&(d.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(d);if(t||a){const m=document.createElement("span");if(m.classList.add("details"),d.appendChild(m),t){const _=document.createElement("span");_.innerText=t,_.classList.add("source"),m.appendChild(_)}if(a)if(typeof a=="string"){const _=document.createElement("span");_.innerText="(".concat(a,")"),_.classList.add("code"),m.appendChild(_)}else{this._codeLink=$$m("a.code-link"),this._codeLink.setAttribute("href","".concat(a.target.toString())),this._codeLink.onclick=v=>{this._openerService.open(a.target,{allowCommands:!0}),v.preventDefault(),v.stopPropagation()};const _=append$2(this._codeLink,$$m("span"));_.innerText=a.value,m.appendChild(this._codeLink)}}if(clearNode(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),isNonEmptyArray(s)){const m=this._relatedBlock.appendChild(document.createElement("div"));m.style.paddingTop="".concat(Math.floor(this._editor.getOption(75)*.66),"px"),this._lines+=1;for(const _ of s){const v=document.createElement("div"),b=document.createElement("a");b.classList.add("filename"),b.innerText="".concat(this._labelService.getUriBasenameLabel(_.resource),"(").concat(_.startLineNumber,", ").concat(_.startColumn,"): "),b.title=this._labelService.getUriLabel(_.resource),this._relatedDiagnostics.set(b,_);const C=document.createElement("span");C.innerText=_.message,v.appendChild(b),v.appendChild(C),this._lines+=1,m.appendChild(v)}}const u=this._editor.getOption(59),g=Math.ceil(u.typicalFullwidthCharacterWidth*this._longestLineLength*.75),f=u.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:g,scrollHeight:f})}layout(e,t){this._scrollable.getDomNode().style.height="".concat(e,"px"),this._scrollable.getDomNode().style.width="".concat(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$2.Error:t=localize(1024,"Error");break;case MarkerSeverity$2.Warning:t=localize(1025,"Warning");break;case MarkerSeverity$2.Info:t=localize(1026,"Info");break;case MarkerSeverity$2.Hint:t=localize(1027,"Hint");break}let r=localize(1028,"{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn);const s=this._editor.getModel();if(s&&e.startLineNumber<=s.getLineCount()&&e.startLineNumber>=1){const a=s.getLineContent(e.startLineNumber);r="".concat(a,", ").concat(r)}return r}}var fn;let MarkerNavigationWidget=(fn=class extends PeekViewWidget{constructor(e,t,r,s,a,l,c){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},a),this._themeService=t,this._openerService=r,this._menuService=s,this._contextKeyService=l,this._labelService=c,this._callOnDispose=new DisposableStore$1,this._onDidSelectRelatedInformation=new Emitter$1,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=MarkerSeverity$2.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,r=editorMarkerNavigationErrorHeader;this._severity===MarkerSeverity$2.Warning?(t=editorMarkerNavigationWarning,r=editorMarkerNavigationWarningHeader):this._severity===MarkerSeverity$2.Info&&(t=editorMarkerNavigationInfo,r=editorMarkerNavigationInfoHeader);const s=e.getColor(t),a=e.getColor(r);this.style({arrowColor:s,frameColor:s,headerBackgroundColor:a,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(s=>this.editor.focus()));const t=this._menuService.getMenuActions(MarkerNavigationWidget_1.TitleMenu,this._contextKeyService),r=getFlatActionBarActions(t);this._actionbarWidget.push(r,{label:!1,icon:!0,index:0})}_fillTitleIcon(e){this._icon=append$2(e,$$m(""))}_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,r){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const s=Range$2.lift(e),a=this.editor.getPosition(),l=a&&s.containsPosition(a)?a:s.getStartPosition();super.show(l,this.computeRequiredHeight());const c=this.editor.getModel();if(c){const d=r>1?localize(1029,"{0} of {1} problems",t,r):localize(1030,"{0} of {1} problem",t,r);this.setTitle(basename(c.uri),d)}this._icon.className="codicon ".concat(SeverityIcon.className(MarkerSeverity$2.toSeverity(this._severity))),this.editor.revealPositionNearTop(l,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="".concat(e,"px")}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}},MarkerNavigationWidget_1=fn,fn.TitleMenu=new MenuId("gotoErrorTitleMenu"),fn);MarkerNavigationWidget=MarkerNavigationWidget_1=__decorate$1Z([__param$1U(1,IThemeService),__param$1U(2,IOpenerService),__param$1U(3,IMenuService),__param$1U(4,IInstantiationService),__param$1U(5,IContextKeyService),__param$1U(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(1031,"Editor marker navigation widget error color.")),editorMarkerNavigationErrorHeader=registerColor("editorMarkerNavigationError.headerBackground",{dark:transparent(editorMarkerNavigationError,.1),light:transparent(editorMarkerNavigationError,.1),hcDark:null,hcLight:null},localize(1032,"Editor marker navigation widget error heading background.")),editorMarkerNavigationWarning=registerColor("editorMarkerNavigationWarning.background",{dark:warningDefault,light:warningDefault,hcDark:contrastBorder,hcLight:contrastBorder},localize(1033,"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(1034,"Editor marker navigation widget warning heading background.")),editorMarkerNavigationInfo=registerColor("editorMarkerNavigationInfo.background",{dark:infoDefault,light:infoDefault,hcDark:contrastBorder,hcLight:contrastBorder},localize(1035,"Editor marker navigation widget info color.")),editorMarkerNavigationInfoHeader=registerColor("editorMarkerNavigationInfo.headerBackground",{dark:transparent(editorMarkerNavigationInfo,.1),light:transparent(editorMarkerNavigationInfo,.1),hcDark:null,hcLight:null},localize(1036,"Editor marker navigation widget info heading background.")),editorMarkerNavigationBackground=registerColor("editorMarkerNavigation.background",editorBackground,localize(1037,"Editor marker navigation widget background."));var __decorate$1Y=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1T=function(o,e){return function(t,r){e(t,r,o)}},MarkerController_1,pn;let MarkerController=(pn=class{static get(e){return e.getContribution(MarkerController_1.ID)}constructor(e,t,r,s,a){this._markerNavigationService=t,this._contextKeyService=r,this._editorService=s,this._instantiationService=a,this._sessionDispoables=new DisposableStore$1,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(r=>{var s,a,l;(!((s=this._model)!=null&&s.selected)||!Range$2.containsPosition((a=this._model)==null?void 0:a.selected.marker,r.position))&&((l=this._model)==null||l.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const r=this._model.find(this._editor.getModel().uri,this._widget.position);r?this._widget.updateMarker(r.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(r=>{this._editorService.openCodeEditor({resource:r.resource,options:{pinned:!0,revealIfOpened:!0,selection:Range$2.lift(r).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())return;const t=this._editor.getModel(),r=this._getOrCreateModel(t.uri);r.resetIndex(),r.move(!0,t,new Position$1(e.startLineNumber,e.startColumn)),r.selected&&this._widget.showAtMarker(r.selected.marker,r.selected.index,r.selected.total)}async navigate(e,t){var a,l;if(!this._editor.hasModel())return;const r=this._editor.getModel(),s=this._getOrCreateModel(t?void 0:r.uri);if(s.move(e,r,this._editor.getPosition()),!!s.selected)if(s.selected.marker.resource.toString()!==r.uri.toString()){this._cleanUp();const c=await this._editorService.openCodeEditor({resource:s.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:s.selected.marker}},this._editor);c&&((a=MarkerController_1.get(c))==null||a.close(),(l=MarkerController_1.get(c))==null||l.navigate(e,t))}else this._widget.showAtMarker(s.selected.marker,s.selected.index,s.selected.total)}},MarkerController_1=pn,pn.ID="editor.contrib.markerController",pn);MarkerController=MarkerController_1=__decorate$1Y([__param$1T(1,IMarkerNavigationService),__param$1T(2,IContextKeyService),__param$1T(3,ICodeEditorService),__param$1T(4,IInstantiationService)],MarkerController);class MarkerNavigationAction extends EditorAction{constructor(e,t,r){super(r),this._next=e,this._multiFile=t}async run(e,t){var r;t.hasModel()&&await((r=MarkerController.get(t))==null?void 0:r.navigate(this._next,this._multiFile))}}const Vi=class Vi extends MarkerNavigationAction{constructor(){super(!0,!1,{id:Vi.ID,label:Vi.LABEL,precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:578,weight:100},menuOpts:{menuId:MarkerNavigationWidget.TitleMenu,title:Vi.LABEL.value,icon:registerIcon("marker-navigation-next",Codicon.arrowDown,localize(1016,"Icon for goto next marker.")),group:"navigation",order:1}})}};Vi.ID="editor.action.marker.next",Vi.LABEL=localize2(1020,"Go to Next Problem (Error, Warning, Info)");let NextMarkerAction=Vi;const Wi=class Wi extends MarkerNavigationAction{constructor(){super(!1,!1,{id:Wi.ID,label:Wi.LABEL,precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.focus,primary:1602,weight:100},menuOpts:{menuId:MarkerNavigationWidget.TitleMenu,title:Wi.LABEL.value,icon:registerIcon("marker-navigation-previous",Codicon.arrowUp,localize(1017,"Icon for goto previous marker.")),group:"navigation",order:2}})}};Wi.ID="editor.action.marker.prev",Wi.LABEL=localize2(1021,"Go to Previous Problem (Error, Warning, Info)");let PrevMarkerAction=Wi;class NextMarkerInFilesAction extends MarkerNavigationAction{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:localize2(1022,"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(1018,"Next &&Problem"),group:"6_problem_nav",order:1}})}}class PrevMarkerInFilesAction extends MarkerNavigationAction{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:localize2(1023,"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(1019,"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$1X=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1S=function(o,e){return function(t,r){e(t,r,o)}};const $$9=$$m;class MarkerHover{constructor(e,t,r){this.owner=e,this.range=t,this.marker=r}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$1.QuickFix},triggerAction:CodeActionTriggerSource.QuickFixHover};let MarkerHoverParticipant=class{constructor(e,t,r,s){this._editor=e,this._markerDecorationsService=t,this._openerService=r,this._languageFeaturesService=s,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1&&!e.supportsMarkerHover)return[];const r=this._editor.getModel(),s=e.range;if(!r.isValidRange(e.range))return[];const a=s.startLineNumber,l=r.getLineMaxColumn(a),c=[];for(const d of t){const u=d.range.startLineNumber===a?d.range.startColumn:1,g=d.range.endLineNumber===a?d.range.endColumn:l,f=this._markerDecorationsService.getMarker(r.uri,d);if(!f)continue;const m=new Range$2(e.range.startLineNumber,u,e.range.startLineNumber,g);c.push(new MarkerHover(this,m,f))}return c}renderHoverParts(e,t){if(!t.length)return new RenderedHoverParts([]);const r=[];t.forEach(l=>{const c=this._renderMarkerHover(l);e.fragment.appendChild(c.hoverElement),r.push(c)});const s=t.length===1?t[0]:t.sort((l,c)=>MarkerSeverity$2.compare(l.marker.severity,c.marker.severity))[0],a=this._renderMarkerStatusbar(e,s);return new RenderedHoverParts(r,a)}getAccessibleContent(e){return e.marker.message}_renderMarkerHover(e){const t=new DisposableStore$1,r=$$9("div.hover-row"),s=append$2(r,$$9("div.marker.hover-contents")),{source:a,message:l,code:c,relatedInformation:d}=e.marker;this._editor.applyFontInfo(s);const u=append$2(s,$$9("span"));if(u.style.whiteSpace="pre-wrap",u.innerText=l,a||c)if(c&&typeof c!="string"){const f=$$9("span");if(a){const b=append$2(f,$$9("span"));b.innerText=a}const m=append$2(f,$$9("a.code-link"));m.setAttribute("href",c.target.toString(!0)),t.add(addDisposableListener(m,"click",b=>{this._openerService.open(c.target,{allowCommands:!0}),b.preventDefault(),b.stopPropagation()}));const _=append$2(m,$$9("span"));_.innerText=c.value;const v=append$2(s,f);v.style.opacity="0.6",v.style.paddingLeft="6px"}else{const f=append$2(s,$$9("span"));f.style.opacity="0.6",f.style.paddingLeft="6px",f.innerText=a&&c?"".concat(a,"(").concat(c,")"):a||"(".concat(c,")")}if(isNonEmptyArray(d))for(const{message:f,resource:m,startLineNumber:_,startColumn:v}of d){const b=append$2(s,$$9("div"));b.style.marginTop="8px";const C=append$2(b,$$9("a"));C.innerText="".concat(basename(m),"(").concat(_,", ").concat(v,"): "),C.style.cursor="pointer",t.add(addDisposableListener(C,"click",S=>{if(S.stopPropagation(),S.preventDefault(),this._openerService){const w={selection:{startLineNumber:_,startColumn:v}};this._openerService.open(m,{fromUserGesture:!0,editorOptions:w}).catch(onUnexpectedError)}}));const y=append$2(b,$$9("span"));y.innerText=f,this._editor.applyFontInfo(y)}return{hoverPart:e,hoverElement:r,dispose:()=>t.dispose()}}_renderMarkerStatusbar(e,t){const r=new DisposableStore$1;if(t.marker.severity===MarkerSeverity$2.Error||t.marker.severity===MarkerSeverity$2.Warning||t.marker.severity===MarkerSeverity$2.Info){const s=MarkerController.get(this._editor);s&&e.statusBar.addAction({label:localize(1139,"View Problem"),commandId:NextMarkerAction.ID,run:()=>{e.hide(),s.showAtMarker(t.marker),this._editor.focus()}})}if(!this._editor.getOption(104)){const s=e.statusBar.append($$9("div"));this.recentMarkerCodeActionsInfo&&(IMarkerData.makeKey(this.recentMarkerCodeActionsInfo.marker)===IMarkerData.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(s.textContent=localize(1140,"No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const a=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?Disposable$1.None:disposableTimeout(()=>s.textContent=localize(1141,"Checking for quick fixes..."),200,r);s.textContent||(s.textContent=" ");const l=this.getCodeActions(t.marker);r.add(toDisposable(()=>l.cancel())),l.then(c=>{var g,f;if(a.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:c.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){c.dispose(),s.textContent=localize(1142,"No quick fixes available");return}s.style.display="none";let d=!1;r.add(toDisposable(()=>{d||c.dispose()})),e.statusBar.addAction({label:localize(1143,"Quick Fix..."),commandId:quickFixCommandId,run:m=>{d=!0;const _=CodeActionController.get(this._editor),v=getDomNodePagePosition(m);e.hide(),_==null||_.showCodeActions(markerCodeActionTrigger,c,{x:v.left,y:v.top,width:v.width,height:v.height})}});const u=c.validActions.find(m=>m.action.isAI);u&&e.statusBar.addAction({label:u.action.title,commandId:(f=(g=u.action.command)==null?void 0:g.id)!=null?f:"",iconClass:ThemeIcon.asClassName(Codicon.sparkle),run:()=>{const m=CodeActionController.get(this._editor);m==null||m.applyCodeAction(u,!1,!1,ApplyCodeActionReason.FromProblemsHover)}}),e.onContentsChanged()},onUnexpectedError)}return r}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$1X([__param$1S(1,IMarkerDecorationsService),__param$1S(2,IOpenerService),__param$1S(3,ILanguageFeaturesService)],MarkerHoverParticipant);var __decorate$1W=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1R=function(o,e){return function(t,r){e(t,r,o)}},RenderedContentHover_1,RenderedContentHoverParts_1;let RenderedContentHover=RenderedContentHover_1=class extends Disposable$1{constructor(e,t,r,s,a,l,c){super();const d=t.hoverParts;this._renderedHoverParts=this._register(new RenderedContentHoverParts(e,r,d,s,a,l,c));const u=t.options,g=u.anchor,{showAtPosition:f,showAtSecondaryPosition:m}=RenderedContentHover_1.computeHoverPositions(e,g.range,d);this.shouldAppearBeforeContent=d.some(_=>_.isBeforeContent),this.showAtPosition=f,this.showAtSecondaryPosition=m,this.initialMousePosX=g.initialMousePosX,this.initialMousePosY=g.initialMousePosY,this.shouldFocus=u.shouldFocus,this.source=u.source}get domNode(){return this._renderedHoverParts.domNode}get domNodeHasChildren(){return this._renderedHoverParts.domNodeHasChildren}get focusedHoverPartIndex(){return this._renderedHoverParts.focusedHoverPartIndex}get hoverPartsCount(){return this._renderedHoverParts.hoverPartsCount}focusHoverPartWithIndex(e){this._renderedHoverParts.focusHoverPartWithIndex(e)}async updateHoverVerbosityLevel(e,t,r){this._renderedHoverParts.updateHoverVerbosityLevel(e,t,r)}isColorPickerVisible(){return this._renderedHoverParts.isColorPickerVisible()}static computeHoverPositions(e,t,r){let s=1;if(e.hasModel()){const g=e._getViewModel(),f=g.coordinatesConverter,m=f.convertModelRangeToViewRange(t),_=g.getLineMinColumn(m.startLineNumber),v=new Position$1(m.startLineNumber,_);s=f.convertViewPositionToModelPosition(v).column}const a=t.startLineNumber;let l=t.startColumn,c;for(const g of r){const f=g.range,m=f.startLineNumber===a,_=f.endLineNumber===a;if(m&&_){const b=f.startColumn,C=Math.min(l,b);l=Math.max(C,s)}g.forceShowAtRange&&(c=f)}let d,u;if(c){const g=c.getStartPosition();d=g,u=g}else d=t.getStartPosition(),u=new Position$1(a,l);return{showAtPosition:d,showAtSecondaryPosition:u}}};RenderedContentHover=RenderedContentHover_1=__decorate$1W([__param$1R(4,IKeybindingService),__param$1R(5,IHoverService),__param$1R(6,IClipboardService)],RenderedContentHover);class RenderedStatusBar{constructor(e,t){this._statusBar=t,e.appendChild(this._statusBar.hoverElement)}get hoverElement(){return this._statusBar.hoverElement}get actions(){return this._statusBar.actions}dispose(){this._statusBar.dispose()}}var mn;let RenderedContentHoverParts=(mn=class extends Disposable$1{constructor(e,t,r,s,a,l,c){super(),this._hoverService=l,this._clipboardService=c,this._renderedParts=[],this._focusedHoverPartIndex=-1,this._context=s,this._fragment=document.createDocumentFragment(),this._register(this._renderParts(t,r,s,a,this._hoverService)),this._register(this._registerListenersOnRenderedParts()),this._register(this._createEditorDecorations(e,r)),this._updateMarkdownAndColorParticipantInfo(t)}_createEditorDecorations(e,t){if(t.length===0)return Disposable$1.None;let r=t[0].range;for(const a of t){const l=a.range;r=Range$2.plusRange(r,l)}const s=e.createDecorationsCollection();return s.set([{range:r,options:RenderedContentHoverParts_1._DECORATION_OPTIONS}]),toDisposable(()=>{s.clear()})}_renderParts(e,t,r,s,a){const l=new EditorHoverStatusBar(s,a),c={fragment:this._fragment,statusBar:l,...r},d=new DisposableStore$1;d.add(l);for(const g of e){const f=this._renderHoverPartsForParticipant(t,g,c);d.add(f);for(const m of f.renderedHoverParts)this._renderedParts.push({type:"hoverPart",participant:g,hoverPart:m.hoverPart,hoverElement:m.hoverElement})}const u=this._renderStatusBar(this._fragment,l);return u&&(d.add(u),this._renderedParts.push({type:"statusBar",hoverElement:u.hoverElement,actions:u.actions})),d}_renderHoverPartsForParticipant(e,t,r){const s=e.filter(l=>l.owner===t);return s.length>0?t.renderHoverParts(r,s):new RenderedHoverParts([])}_renderStatusBar(e,t){if(t.hasContent)return new RenderedStatusBar(e,t)}_registerListenersOnRenderedParts(){const e=new DisposableStore$1;return this._renderedParts.forEach((t,r)=>{const s=t.hoverElement;s.tabIndex=0,e.add(addDisposableListener(s,EventType$1.FOCUS_IN,a=>{a.stopPropagation(),this._focusedHoverPartIndex=r})),e.add(addDisposableListener(s,EventType$1.FOCUS_OUT,a=>{a.stopPropagation(),this._focusedHoverPartIndex=-1})),t.type==="hoverPart"&&t.hoverPart instanceof MarkerHover&&e.add(new HoverCopyButton(s,()=>t.participant.getAccessibleContent(t.hoverPart),this._clipboardService,this._hoverService))}),e}_updateMarkdownAndColorParticipantInfo(e){const t=e.find(r=>r instanceof MarkdownHoverParticipant&&!(r instanceof InlayHintsHover));t&&(this._markdownHoverParticipant=t),this._colorHoverParticipant=e.find(r=>r instanceof HoverColorPickerParticipant)}focusHoverPartWithIndex(e){e<0||e>=this._renderedParts.length||this._renderedParts[e].hoverElement.focus()}async updateHoverVerbosityLevel(e,t,r){if(!this._markdownHoverParticipant)return;let s;t>=0?s={start:t,endExclusive:t+1}:s=this._findRangeOfMarkdownHoverParts(this._markdownHoverParticipant);for(let a=s.start;a<s.endExclusive;a++){const l=this._normalizedIndexToMarkdownHoverIndexRange(this._markdownHoverParticipant,a);if(l===void 0)continue;const c=await this._markdownHoverParticipant.updateMarkdownHoverVerbosityLevel(e,l);c&&(this._renderedParts[a]={type:"hoverPart",participant:this._markdownHoverParticipant,hoverPart:c.hoverPart,hoverElement:c.hoverElement})}r&&(t>=0?this.focusHoverPartWithIndex(t):this._context.focus()),this._context.onContentsChanged()}isColorPickerVisible(){var e,t;return(t=(e=this._colorHoverParticipant)==null?void 0:e.isColorPickerVisible())!=null?t:!1}_normalizedIndexToMarkdownHoverIndexRange(e,t){const r=this._renderedParts[t];if(!r||r.type!=="hoverPart"||!(r.participant===e))return;const a=this._renderedParts.findIndex(l=>l.type==="hoverPart"&&l.participant===e);if(a===-1)throw new BugIndicatingError;return t-a}_findRangeOfMarkdownHoverParts(e){const t=this._renderedParts.slice(),r=t.findIndex(l=>l.type==="hoverPart"&&l.participant===e),s=t.reverse().findIndex(l=>l.type==="hoverPart"&&l.participant===e),a=s>=0?t.length-s:s;return{start:r,endExclusive:a+1}}get domNode(){return this._fragment}get domNodeHasChildren(){return this._fragment.hasChildNodes()}get focusedHoverPartIndex(){return this._focusedHoverPartIndex}get hoverPartsCount(){return this._renderedParts.length}},RenderedContentHoverParts_1=mn,mn._DECORATION_OPTIONS=ModelDecorationOptions.register({description:"content-hover-highlight",className:"hoverHighlight"}),mn);RenderedContentHoverParts=RenderedContentHoverParts_1=__decorate$1W([__param$1R(4,IKeybindingService),__param$1R(5,IHoverService),__param$1R(6,IClipboardService)],RenderedContentHoverParts);var __decorate$1V=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1Q=function(o,e){return function(t,r){e(t,r,o)}};let ContentHoverWidgetWrapper=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._editor=e,this._instantiationService=t,this._keybindingService=r,this._hoverService=s,this._clipboardService=a,this._currentResult=null,this._renderedContentHover=this._register(new MutableDisposable),this._onContentsChanged=this._register(new Emitter$1),this.onContentsChanged=this._onContentsChanged.event,this._contentHoverWidget=this._register(this._instantiationService.createInstance(ContentHoverWidget,this._editor)),this._participants=this._initializeHoverParticipants(),this._hoverOperation=this._register(new HoverOperation(this._editor,new ContentHoverComputer(this._editor,this._participants))),this._registerListeners()}_initializeHoverParticipants(){const e=[];for(const t of HoverParticipantRegistry.getAll()){const r=this._instantiationService.createInstance(t,this._editor);e.push(r)}return e.sort((t,r)=>t.hoverOrdinal-r.hoverOrdinal),this._register(this._contentHoverWidget.onDidResize(()=>{this._participants.forEach(t=>{var r;return(r=t.handleResize)==null?void 0:r.call(t)})})),this._register(this._contentHoverWidget.onDidScroll(t=>{this._participants.forEach(r=>{var s;return(s=r.handleScroll)==null?void 0:s.call(r,t)})})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._participants.forEach(t=>{var r;return(r=t.handleContentsChanged)==null?void 0:r.call(t)})})),e}_registerListeners(){this._register(this._hoverOperation.onResult(t=>{const r=t.hasLoadingMessage?this._addLoadingMessage(t):t.value;this._withResult(new ContentHoverResult(r,t.isComplete,t.options))}));const e=this._contentHoverWidget.getDomNode();this._register(addStandardDisposableListener(e,"keydown",t=>{t.equals(9)&&this.hide()})),this._register(addStandardDisposableListener(e,"mouseleave",t=>{this._onMouseLeave(t)})),this._register(TokenizationRegistry.onDidChange(()=>{this._contentHoverWidget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)})),this._register(this._contentHoverWidget.onContentsChanged(()=>{this._onContentsChanged.fire()}))}_startShowingOrUpdateHover(e,t,r,s,a){if(!(this._contentHoverWidget.position&&this._currentResult))return e?(this._startHoverOperationIfNecessary(e,t,r,s,!1),!0):!1;const c=this._editor.getOption(69).sticky,d=a&&this._contentHoverWidget.isMouseGettingCloser(a.event.posx,a.event.posy);return c&&d?(e&&this._startHoverOperationIfNecessary(e,t,r,s,!0),!0):e?this._currentResult&&this._currentResult.options.anchor.equals(e)?!0:this._currentResult&&e.canAdoptVisibleHover(this._currentResult.options.anchor,this._contentHoverWidget.position)?(this._currentResult&&this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,r,s,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,r,s,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,r,s,a){if(this._hoverOperation.options&&this._hoverOperation.options.anchor.equals(e))return;this._hoverOperation.cancel();const c={anchor:e,source:r,shouldFocus:s,insistOnKeepingHoverVisible:a};this._hoverOperation.start(t,c)}_setCurrentResult(e){let t=e;if(this._currentResult===t)return;t&&t.hoverParts.length===0&&(t=null),this._currentResult=t,this._currentResult?this._showHover(this._currentResult):this._hideHover()}_addLoadingMessage(e){for(const t of this._participants){if(!t.createLoadingMessage)continue;const r=t.createLoadingMessage(e.options.anchor);if(r)return e.value.slice(0).concat([r])}return e.value}_withResult(e){if(this._contentHoverWidget.position&&this._currentResult&&this._currentResult.isComplete||this._setCurrentResult(e),!e.isComplete)return;const s=e.hoverParts.length===0,a=e.options.insistOnKeepingHoverVisible;s&&a||this._setCurrentResult(e)}_showHover(e){const t=this._getHoverContext();this._renderedContentHover.value=new RenderedContentHover(this._editor,e,this._participants,t,this._keybindingService,this._hoverService,this._clipboardService),this._renderedContentHover.value.domNodeHasChildren?this._contentHoverWidget.show(this._renderedContentHover.value):this._renderedContentHover.clear()}_hideHover(){this._contentHoverWidget.hide(),this._participants.forEach(e=>{var t;return(t=e.handleHide)==null?void 0:t.call(e)})}_getHoverContext(){return{hide:()=>{this.hide()},onContentsChanged:()=>{this._contentHoverWidget.handleContentsChanged()},setMinimumDimensions:a=>{this._contentHoverWidget.setMinimumDimensions(a)},focus:()=>this.focus()}}showsOrWillShow(e){if(this._contentHoverWidget.isResizing)return!0;const r=this._findHoverAnchorCandidates(e);if(!(r.length>0))return this._startShowingOrUpdateHover(null,0,0,!1,e);const a=r[0];return this._startShowingOrUpdateHover(a,0,0,!1,e)}_findHoverAnchorCandidates(e){const t=[];for(const s of this._participants){if(!s.suggestHoverAnchor)continue;const a=s.suggestHoverAnchor(e);a&&t.push(a)}const r=e.target;switch(r.type){case 6:{t.push(new HoverRangeAnchor(0,r.range,e.event.posx,e.event.posy));break}case 7:{const s=this._editor.getOption(59).typicalHalfwidthCharacterWidth/2;if(!(!r.detail.isAfterLines&&typeof r.detail.horizontalDistanceToText=="number"&&r.detail.horizontalDistanceToText<s))break;t.push(new HoverRangeAnchor(0,r.range,e.event.posx,e.event.posy));break}}return t.sort((s,a)=>a.priority-s.priority),t}_onMouseLeave(e){const t=this._editor.getDomNode();(!t||!isMousePositionWithinElement(t,e.x,e.y))&&this.hide()}startShowingAtRange(e,t,r,s){this._startShowingOrUpdateHover(new HoverRangeAnchor(0,e,void 0,void 0),t,r,s,null)}async updateHoverVerbosityLevel(e,t,r){var s;(s=this._renderedContentHover.value)==null||s.updateHoverVerbosityLevel(e,t,r)}focusedHoverPartIndex(){var e,t;return(t=(e=this._renderedContentHover.value)==null?void 0:e.focusedHoverPartIndex)!=null?t:-1}containsNode(e){return e?this._contentHoverWidget.getDomNode().contains(e):!1}focus(){var t;if(((t=this._renderedContentHover.value)==null?void 0:t.hoverPartsCount)===1){this.focusHoverPartWithIndex(0);return}this._contentHoverWidget.focus()}focusHoverPartWithIndex(e){var t;(t=this._renderedContentHover.value)==null||t.focusHoverPartWithIndex(e)}scrollUp(){this._contentHoverWidget.scrollUp()}scrollDown(){this._contentHoverWidget.scrollDown()}scrollLeft(){this._contentHoverWidget.scrollLeft()}scrollRight(){this._contentHoverWidget.scrollRight()}pageUp(){this._contentHoverWidget.pageUp()}pageDown(){this._contentHoverWidget.pageDown()}goToTop(){this._contentHoverWidget.goToTop()}goToBottom(){this._contentHoverWidget.goToBottom()}hide(){this._hoverOperation.cancel(),this._setCurrentResult(null)}getDomNode(){return this._contentHoverWidget.getDomNode()}get isColorPickerVisible(){var e,t;return(t=(e=this._renderedContentHover.value)==null?void 0:e.isColorPickerVisible())!=null?t:!1}get isVisibleFromKeyboard(){return this._contentHoverWidget.isVisibleFromKeyboard}get isVisible(){return this._contentHoverWidget.isVisible}get isFocused(){return this._contentHoverWidget.isFocused}get isResizing(){return this._contentHoverWidget.isResizing}get widget(){return this._contentHoverWidget}};ContentHoverWidgetWrapper=__decorate$1V([__param$1Q(1,IInstantiationService),__param$1Q(2,IKeybindingService),__param$1Q(3,IHoverService),__param$1Q(4,IClipboardService)],ContentHoverWidgetWrapper);function isOnColorDecorator(o){var t;const e=o.target;return!!e&&e.type===6&&((t=e.detail.injectedText)==null?void 0:t.options.attachedData)===ColorDecorationInjectedTextMarker}var __decorate$1U=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1P=function(o,e){return function(t,r){e(t,r,o)}},ContentHoverController_1,_n;let ContentHoverController=(_n=class extends Disposable$1{constructor(e,t,r,s){super(),this._editor=e,this._instantiationService=r,this._keybindingService=s,this._onHoverContentsChanged=this._register(new Emitter$1),this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new DisposableStore$1,this._isMouseDown=!1,this._ignoreMouseEvents=!1,this._reactToEditorMouseMoveRunner=this._register(new RunOnceScheduler(()=>{this._mouseMoveEvent&&this._reactToEditorMouseMove(this._mouseMoveEvent)},0)),this._register(t.onDidShowContextMenu(()=>{this.hideContentHover(),this._ignoreMouseEvents=!0})),this._register(t.onDidHideContextMenu(()=>{this._ignoreMouseEvents=!1})),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}static get(e){return e.getContribution(ContentHoverController_1.ID)}_hookListeners(){const e=this._editor.getOption(69);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.hidingDelay},e.enabled||this._cancelSchedulerAndHide(),this._listenersStore.add(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t))),this._listenersStore.add(this._editor.onMouseLeave(t=>this._onEditorMouseLeave(t))),this._listenersStore.add(this._editor.onDidChangeModel(()=>this._cancelSchedulerAndHide())),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(t=>this._onEditorScrollChanged(t)))}_unhookListeners(){this._listenersStore.clear()}_cancelSchedulerAndHide(){this._cancelScheduler(),this.hideContentHover()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){this._ignoreMouseEvents||(e.scrollTopChanged||e.scrollLeftChanged)&&this.hideContentHover()}_onEditorMouseDown(e){this._ignoreMouseEvents||(this._isMouseDown=!0,this._shouldKeepHoverWidgetVisible(e))||this.hideContentHover()}_shouldKeepHoverWidgetVisible(e){return this._isMouseOnContentHoverWidget(e)||this._isContentWidgetResizing()||isOnColorDecorator(e)}_isMouseOnContentHoverWidget(e){return this._contentWidget?isMousePositionWithinElement(this._contentWidget.getDomNode(),e.event.posx,e.event.posy):!1}_onEditorMouseUp(){this._ignoreMouseEvents||(this._isMouseDown=!1)}_onEditorMouseLeave(e){this._ignoreMouseEvents||this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._shouldKeepHoverWidgetVisible(e))||this.hideContentHover()}_shouldKeepCurrentHover(e){const t=this._contentWidget;if(!t)return!1;const r=this._hoverSettings.sticky,s=(g,f)=>{const m=this._isMouseOnContentHoverWidget(g);return f&&m},a=g=>{const f=t.isColorPickerVisible,m=this._isMouseOnContentHoverWidget(g),_=f&&m,v=f&&this._isMouseDown;return _||v},l=(g,f)=>{var _;const m=g.event.browserEvent.view;return m?f&&t.containsNode(m.document.activeElement)&&!((_=m.getSelection())!=null&&_.isCollapsed):!1},c=t.isFocused,d=t.isResizing,u=this._hoverSettings.sticky&&t.isVisibleFromKeyboard;return this.shouldKeepOpenOnEditorMouseMoveOrLeave||c||d||u||s(e,r)||a(e)||l(e,r)}_onEditorMouseMove(e){if(this._ignoreMouseEvents)return;if(this._mouseMoveEvent=e,this._shouldKeepCurrentHover(e)){this._reactToEditorMouseMoveRunner.cancel();return}if(this._shouldRescheduleHoverComputation()){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(this._hoverSettings.hidingDelay);return}this._reactToEditorMouseMove(e)}_shouldRescheduleHoverComputation(){var r,s;const e=this._hoverSettings.hidingDelay;return((s=(r=this._contentWidget)==null?void 0:r.isVisible)!=null?s:!1)&&this._hoverSettings.sticky&&e>0}_reactToEditorMouseMove(e){this._hoverSettings.enabled&&this._getOrCreateContentWidget().showsOrWillShow(e)||this.hideContentHover()}_onKeyDown(e){if(this._ignoreMouseEvents||!this._contentWidget)return;const t=this._isPotentialKeyboardShortcut(e),r=this._isModifierKeyPressed(e);t||r||this._contentWidget.isFocused&&e.keyCode===2||this.hideContentHover()}_isPotentialKeyboardShortcut(e){if(!this._editor.hasModel()||!this._contentWidget)return!1;const t=this._keybindingService.softDispatch(e,this._editor.getDomNode()),r=t.kind===1,s=t.kind===2&&(t.commandId===SHOW_OR_FOCUS_HOVER_ACTION_ID||t.commandId===INCREASE_HOVER_VERBOSITY_ACTION_ID||t.commandId===DECREASE_HOVER_VERBOSITY_ACTION_ID)&&this._contentWidget.isVisible;return r||s}_isModifierKeyPressed(e){return e.keyCode===5||e.keyCode===6||e.keyCode===57||e.keyCode===4}hideContentHover(){var e;InlineSuggestionHintsContentWidget.dropDownVisible||(e=this._contentWidget)==null||e.hide()}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(ContentHoverWidgetWrapper,this._editor),this._listenersStore.add(this._contentWidget.onContentsChanged(()=>this._onHoverContentsChanged.fire()))),this._contentWidget}showContentHover(e,t,r,s){this._getOrCreateContentWidget().startShowingAtRange(e,t,r,s)}_isContentWidgetResizing(){var e;return((e=this._contentWidget)==null?void 0:e.widget.isResizing)||!1}focusedHoverPartIndex(){return this._getOrCreateContentWidget().focusedHoverPartIndex()}updateHoverVerbosityLevel(e,t,r){this._getOrCreateContentWidget().updateHoverVerbosityLevel(e,t,r)}focus(){var e;(e=this._contentWidget)==null||e.focus()}scrollUp(){var e;(e=this._contentWidget)==null||e.scrollUp()}scrollDown(){var e;(e=this._contentWidget)==null||e.scrollDown()}scrollLeft(){var e;(e=this._contentWidget)==null||e.scrollLeft()}scrollRight(){var e;(e=this._contentWidget)==null||e.scrollRight()}pageUp(){var e;(e=this._contentWidget)==null||e.pageUp()}pageDown(){var e;(e=this._contentWidget)==null||e.pageDown()}goToTop(){var e;(e=this._contentWidget)==null||e.goToTop()}goToBottom(){var e;(e=this._contentWidget)==null||e.goToBottom()}get isColorPickerVisible(){var e;return(e=this._contentWidget)==null?void 0:e.isColorPickerVisible}get isHoverVisible(){var e;return(e=this._contentWidget)==null?void 0:e.isVisible}dispose(){var e;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(e=this._contentWidget)==null||e.dispose()}},ContentHoverController_1=_n,_n.ID="editor.contrib.contentHover",_n);ContentHoverController=ContentHoverController_1=__decorate$1U([__param$1P(1,IContextMenuService),__param$1P(2,IInstantiationService),__param$1P(3,IKeybindingService)],ContentHoverController);const ra=class ra extends Disposable$1{constructor(e){super(),this._editor=e,this._register(e.onMouseDown(t=>this.onMouseDown(t)))}dispose(){super.dispose()}onMouseDown(e){const t=this._editor.getOption(168);if(t!=="click"&&t!=="clickAndHover"||!isOnColorDecorator(e))return;const r=this._editor.getContribution(ContentHoverController.ID);if(!r||r.isColorPickerVisible)return;const s=e.target.range;if(!s)return;const a=new Range$2(s.startLineNumber,s.startColumn+1,s.endLineNumber,s.endColumn+1);r.showContentHover(a,1,1,!1)}};ra.ID="editor.contrib.colorContribution";let HoverColorPickerContribution=ra;var __decorate$1T=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1O=function(o,e){return function(t,r){e(t,r,o)}};class StandaloneColorPickerHover{constructor(e,t,r,s){this.owner=e,this.range=t,this.model=r,this.provider=s}static fromBaseColor(e,t){return new StandaloneColorPickerHover(e,t.range,t.model,t.provider)}}class StandaloneColorPickerRenderedParts extends Disposable$1{constructor(e,t,r,s){super();const a=e.getModel(),l=r.model;this.color=r.model.color,this.colorPicker=this._register(new ColorPickerWidget(t.fragment,l,e.getOption(163),s,"standalone")),this._register(l.onColorFlushed(c=>{this.color=c})),this._register(l.onDidChangeColor(c=>{updateColorPresentations(a,l,c,r.range,r)})),this._register(e.onDidChangeModelContent(c=>{t.hide(),e.focus()})),updateColorPresentations(a,l,this.color,r.range,r)}}let StandaloneColorPickerParticipant=class{constructor(e,t){this._editor=e,this._themeService=t}async createColorHover(e,t,r){if(!this._editor.hasModel()||!ColorDetector.get(this._editor))return null;const a=await getColors(r,this._editor.getModel(),CancellationToken.None);let l=null,c=null;for(const m of a){const _=m.colorInfo;Range$2.containsRange(_.range,e.range)&&(l=_,c=m.provider)}const d=l!=null?l:e,u=c!=null?c:t,g=!!l;return{colorHover:StandaloneColorPickerHover.fromBaseColor(this,await createColorHover(this._editor.getModel(),d,u)),foundInEditor:g}}async updateEditorModel(e){if(!this._editor.hasModel())return;const t=e.model;let r=new Range$2(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(await updateColorPresentations(this._editor.getModel(),t,this._color,r,e),r=updateEditorModel(this._editor,r,t))}renderHoverParts(e,t){if(!(t.length===0||!this._editor.hasModel()))return this._setMinimumDimensions(e),this._renderedParts=new StandaloneColorPickerRenderedParts(this._editor,e,t[0],this._themeService),this._renderedParts}_setMinimumDimensions(e){const t=this._editor.getOption(75)+8;e.setMinimumDimensions(new Dimension(302,t))}get _color(){var e;return(e=this._renderedParts)==null?void 0:e.color}};StandaloneColorPickerParticipant=__decorate$1T([__param$1O(1,IThemeService)],StandaloneColorPickerParticipant);var __decorate$1S=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1N=function(o,e){return function(t,r){e(t,r,o)}},StandaloneColorPickerWidget_1;class StandaloneColorPickerResult{constructor(e,t){this.value=e,this.foundInEditor=t}}const PADDING=8,CLOSE_BUTTON_WIDTH=22;var vn;let StandaloneColorPickerWidget=(vn=class extends Disposable$1{constructor(e,t,r,s,a,l,c,d){var m;super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=r,this._keybindingService=a,this._languageFeaturesService=l,this._editorWorkerService=c,this._hoverService=d,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._renderedHoverParts=this._register(new MutableDisposable),this._renderedStatusBar=this._register(new MutableDisposable),this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=s.createInstance(StandaloneColorPickerParticipant,this._editor),this._position=(m=this._editor._getViewModel())==null?void 0:m.getPrimaryCursorState().modelState.position;const u=this._editor.getSelection(),g=u?{startLineNumber:u.startLineNumber,startColumn:u.startColumn,endLineNumber:u.endLineNumber,endColumn:u.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},f=this._register(trackFocus(this._body));this._register(f.onDidBlur(_=>{this.hide()})),this._register(f.onDidFocus(_=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(_=>{var b;const v=(b=_.target.element)==null?void 0:b.classList;v&&v.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(_=>{this._render(_.value,_.foundInEditor)})),this._start(g),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(69).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()}async _start(e){const t=await this._computeAsync(e);t&&this._onResult.fire(new StandaloneColorPickerResult(t.result,t.foundInEditor))}async _computeAsync(e){if(!this._editor.hasModel())return null;const t={range:e,color:{red:0,green:0,blue:0,alpha:1}},r=await this._standaloneColorPickerParticipant.createColorHover(t,new DefaultDocumentColorProvider(this._editorWorkerService),this._languageFeaturesService.colorProvider);return r?{result:r.colorHover,foundInEditor:r.foundInEditor}:null}_render(e,t){const r=document.createDocumentFragment();this._renderedStatusBar.value=this._register(new EditorHoverStatusBar(this._keybindingService,this._hoverService));const s={fragment:r,statusBar:this._renderedStatusBar.value,onContentsChanged:()=>{},setMinimumDimensions:()=>{},hide:()=>this.hide(),focus:()=>this.focus()};if(this._colorHover=e,this._renderedHoverParts.value=this._standaloneColorPickerParticipant.renderHoverParts(s,[e]),!this._renderedHoverParts.value){this._renderedStatusBar.clear(),this._renderedHoverParts.clear();return}const a=this._renderedHoverParts.value.colorPicker;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(r),a.layout();const l=a.body,c=l.saturationBox.domNode.clientWidth,d=l.domNode.clientWidth-c-CLOSE_BUTTON_WIDTH-PADDING,u=a.body.enterButton;u==null||u.onClicked(()=>{this.updateEditor(),this.hide()});const g=a.header,f=g.pickedColorNode;f.style.width=c+PADDING+"px";const m=g.originalColorNode;m.style.width=d+"px";const _=a.header.closeButton;_==null||_.onClicked(()=>{this.hide()}),t&&(u&&(u.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}},StandaloneColorPickerWidget_1=vn,vn.ID="editor.contrib.standaloneColorPickerWidget",vn);StandaloneColorPickerWidget=StandaloneColorPickerWidget_1=__decorate$1S([__param$1N(3,IInstantiationService),__param$1N(4,IKeybindingService),__param$1N(5,ILanguageFeaturesService),__param$1N(6,IEditorWorkerService),__param$1N(7,IHoverService)],StandaloneColorPickerWidget);var __decorate$1R=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1M=function(o,e){return function(t,r){e(t,r,o)}},StandaloneColorPickerController_1,bn;let StandaloneColorPickerController=(bn=class extends Disposable$1{constructor(e,t,r){super(),this._editor=e,this._instantiationService=r,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.focus():this._standaloneColorPickerWidget=this._instantiationService.createInstance(StandaloneColorPickerWidget,this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused))}hide(){var e;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(e=this._standaloneColorPickerWidget)==null||e.hide(),this._editor.focus()}insertColor(){var e;(e=this._standaloneColorPickerWidget)==null||e.updateEditor(),this.hide()}static get(e){return e.getContribution(StandaloneColorPickerController_1.ID)}},StandaloneColorPickerController_1=bn,bn.ID="editor.contrib.standaloneColorPickerController",bn);StandaloneColorPickerController=StandaloneColorPickerController_1=__decorate$1R([__param$1M(1,IContextKeyService),__param$1M(2,IInstantiationService)],StandaloneColorPickerController);class ShowOrFocusStandaloneColorPicker extends EditorAction2{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...localize2(889,"Show or Focus Standalone Color Picker"),mnemonicTitle:localize(888,"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:MenuId.CommandPalette}],metadata:{description:localize2(890,"Show or focus a standalone color picker which uses the default color provider. It displays hex/rgb/hsl colors.")}})}runEditorCommand(e,t){var r;(r=StandaloneColorPickerController.get(t))==null||r.showOrFocus()}}class HideStandaloneColorPicker extends EditorAction{constructor(){super({id:"editor.action.hideColorPicker",label:localize2(891,"Hide the Color Picker"),precondition:EditorContextKeys.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100},metadata:{description:localize2(892,"Hide the standalone color picker.")}})}run(e,t){var r;(r=StandaloneColorPickerController.get(t))==null||r.hide()}}class InsertColorWithStandaloneColorPicker extends EditorAction{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:localize2(893,"Insert Color with Standalone Color Picker"),precondition:EditorContextKeys.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100},metadata:{description:localize2(894,"Insert hex/rgb/hsl colors with the focused standalone color picker.")}})}run(e,t){var r;(r=StandaloneColorPickerController.get(t))==null||r.insertColor()}}registerEditorAction(HideStandaloneColorPicker);registerEditorAction(InsertColorWithStandaloneColorPicker);registerAction2(ShowOrFocusStandaloneColorPicker);registerEditorContribution(HoverColorPickerContribution.ID,HoverColorPickerContribution,2);registerEditorContribution(StandaloneColorPickerController.ID,StandaloneColorPickerController,1);registerEditorContribution(ColorDetector.ID,ColorDetector,1);registerEditorFeature(DefaultDocumentColorProviderFeature);HoverParticipantRegistry.register(HoverColorPickerParticipant);CommandsRegistry.registerCommand("_executeDocumentColorProvider",function(o,...e){const[t]=e;if(!(t instanceof URI))throw illegalArgument();const{model:r,colorProviderRegistry:s,defaultColorDecoratorsEnablement:a}=_setupColorCommand(o,t);return _findColorData(new ExtColorDataCollector,s,r,CancellationToken.None,a)});CommandsRegistry.registerCommand("_executeColorPresentationProvider",function(o,...e){const[t,r]=e;if(!r)return;const{uri:s,range:a}=r;if(!(s instanceof URI)||!Array.isArray(t)||t.length!==4||!Range$2.isIRange(a))throw illegalArgument();const{model:l,colorProviderRegistry:c,defaultColorDecoratorsEnablement:d}=_setupColorCommand(o,s),[u,g,f,m]=t;return _findColorData(new ColorPresentationsCollector({range:a,color:{red:u,green:g,blue:f,alpha:m}}),c,l,CancellationToken.None,d)});class BlockCommentCommand{constructor(e,t,r){this.languageConfigurationService=r,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,r){if(r<0)return!1;const s=t.length,a=e.length;if(r+s>a)return!1;for(let l=0;l<s;l++){const c=e.charCodeAt(r+l),d=t.charCodeAt(l);if(c!==d&&!(c>=65&&c<=90&&c+32===d)&&!(d>=65&&d<=90&&d+32===c))return!1}return!0}_createOperationsForBlockComment(e,t,r,s,a,l){const c=e.startLineNumber,d=e.startColumn,u=e.endLineNumber,g=e.endColumn,f=a.getLineContent(c),m=a.getLineContent(u);let _=f.lastIndexOf(t,d-1+t.length),v=m.indexOf(r,g-1-r.length);if(_!==-1&&v!==-1)if(c===u)f.substring(_+t.length,v).indexOf(r)>=0&&(_=-1,v=-1);else{const C=f.substring(_+t.length),y=m.substring(0,v);(C.indexOf(r)>=0||y.indexOf(r)>=0)&&(_=-1,v=-1)}let b;_!==-1&&v!==-1?(s&&_+t.length<f.length&&f.charCodeAt(_+t.length)===32&&(t=t+" "),s&&v>0&&m.charCodeAt(v-1)===32&&(r=" "+r,v-=1),b=BlockCommentCommand._createRemoveBlockCommentOperations(new Range$2(c,_+t.length+1,u,v+1),t,r)):(b=BlockCommentCommand._createAddBlockCommentOperations(e,t,r,this._insertSpace),this._usedEndToken=b.length===1?r:null);for(const C of b)l.addTrackedEditOperation(C.range,C.text)}static _createRemoveBlockCommentOperations(e,t,r){const s=[];return Range$2.isEmpty(e)?s.push(EditOperation.delete(new Range$2(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+r.length))):(s.push(EditOperation.delete(new Range$2(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),s.push(EditOperation.delete(new Range$2(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+r.length)))),s}static _createAddBlockCommentOperations(e,t,r,s){const a=[];return Range$2.isEmpty(e)?a.push(EditOperation.replace(new Range$2(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+r)):(a.push(EditOperation.insert(new Position$1(e.startLineNumber,e.startColumn),t+(s?" ":""))),a.push(EditOperation.insert(new Position$1(e.endLineNumber,e.endColumn),(s?" ":"")+r))),a}getEditOperations(e,t){const r=this._selection.startLineNumber,s=this._selection.startColumn;e.tokenization.tokenizeIfCheap(r);const a=e.getLanguageIdAtPosition(r,s),l=this.languageConfigurationService.getLanguageConfiguration(a).comments;!l||!l.blockCommentStartToken||!l.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,l.blockCommentStartToken,l.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const r=t.getInverseEditOperations();if(r.length===2){const s=r[0],a=r[1];return new Selection$1(s.range.endLineNumber,s.range.endColumn,a.range.startLineNumber,a.range.startColumn)}else{const s=r[0].range,a=this._usedEndToken?-this._usedEndToken.length-1:0;return new Selection$1(s.endLineNumber,s.endColumn+a,s.endLineNumber,s.endColumn+a)}}}class LineCommentCommand{constructor(e,t,r,s,a,l,c){this.languageConfigurationService=e,this._selection=t,this._indentSize=r,this._type=s,this._insertSpace=a,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=l,this._ignoreFirstLine=c||!1}static _gatherPreflightCommentStrings(e,t,r,s){e.tokenization.tokenizeIfCheap(t);const a=e.getLanguageIdAtPosition(t,1),l=s.getLanguageConfiguration(a).comments,c=l?l.lineCommentToken:null;if(!c)return null;const d=[];for(let u=0,g=r-t+1;u<g;u++)d[u]={ignore:!1,commentStr:c,commentStrOffset:0,commentStrLength:c.length};return d}static _analyzeLines(e,t,r,s,a,l,c,d,u){var v;let g=!0;const f=d.getLanguageConfiguration(u).comments,m=(v=f==null?void 0:f.lineCommentNoIndent)!=null?v:!1;let _;e===0?_=!0:e===1?_=!1:_=!0;for(let b=0,C=s.length;b<C;b++){const y=s[b],S=a+b;if(S===a&&c){y.ignore=!0;continue}const w=r.getLineContent(S),E=firstNonWhitespaceIndex(w);if(E===-1){y.ignore=l,y.commentStrOffset=m?0:w.length;continue}g=!1;const x=m?0:E;if(y.ignore=!1,y.commentStrOffset=x,_&&!BlockCommentCommand._haystackHasNeedleAtOffset(w,y.commentStr,x)&&(e===0?_=!1:e===1||(y.ignore=!0)),_&&t){const L=E+y.commentStrLength;L<w.length&&w.charCodeAt(L)===32&&(y.commentStrLength+=1)}}if(e===0&&g){_=!1;for(let b=0,C=s.length;b<C;b++)s[b].ignore=!1}return{supported:!0,shouldRemoveComments:_,lines:s}}static _gatherPreflightData(e,t,r,s,a,l,c,d){const u=LineCommentCommand._gatherPreflightCommentStrings(r,s,a,d),g=r.getLanguageIdAtPosition(s,1);return u===null?{supported:!1}:LineCommentCommand._analyzeLines(e,t,r,u,s,l,c,d,g)}_executeLineComments(e,t,r,s){let a;r.shouldRemoveComments?a=LineCommentCommand._createRemoveLineCommentsOperations(r.lines,s.startLineNumber):(LineCommentCommand._normalizeInsertionPoint(e,r.lines,s.startLineNumber,this._indentSize),a=this._createAddLineCommentsOperations(r.lines,s.startLineNumber));const l=new Position$1(s.positionLineNumber,s.positionColumn);for(let c=0,d=a.length;c<d;c++)t.addEditOperation(a[c].range,a[c].text),Range$2.isEmpty(a[c].range)&&Range$2.getStartPosition(a[c].range).equals(l)&&e.getLineContent(l.lineNumber).length+1===l.column&&(this._deltaColumn=(a[c].text||"").length);this._selectionId=t.trackSelection(s)}_attemptRemoveBlockComment(e,t,r,s){let a=t.startLineNumber,l=t.endLineNumber;const c=s.length+Math.max(e.getLineFirstNonWhitespaceColumn(t.startLineNumber),t.startColumn);let d=e.getLineContent(a).lastIndexOf(r,c-1),u=e.getLineContent(l).indexOf(s,t.endColumn-1-r.length);return d!==-1&&u===-1&&(u=e.getLineContent(a).indexOf(s,d+r.length),l=a),d===-1&&u!==-1&&(d=e.getLineContent(l).lastIndexOf(r,u),a=l),t.isEmpty()&&(d===-1||u===-1)&&(d=e.getLineContent(a).indexOf(r),d!==-1&&(u=e.getLineContent(a).indexOf(s,d+r.length))),d!==-1&&e.getLineContent(a).charCodeAt(d+r.length)===32&&(r+=" "),u!==-1&&e.getLineContent(l).charCodeAt(u-1)===32&&(s=" "+s,u-=1),d!==-1&&u!==-1?BlockCommentCommand._createRemoveBlockCommentOperations(new Range$2(a,d+r.length+1,l,u+1),r,s):null}_executeBlockComment(e,t,r){e.tokenization.tokenizeIfCheap(r.startLineNumber);const s=e.getLanguageIdAtPosition(r.startLineNumber,1),a=this.languageConfigurationService.getLanguageConfiguration(s).comments;if(!a||!a.blockCommentStartToken||!a.blockCommentEndToken)return;const l=a.blockCommentStartToken,c=a.blockCommentEndToken;let d=this._attemptRemoveBlockComment(e,r,l,c);if(!d){if(r.isEmpty()){const u=e.getLineContent(r.startLineNumber);let g=firstNonWhitespaceIndex(u);g===-1&&(g=u.length),d=BlockCommentCommand._createAddBlockCommentOperations(new Range$2(r.startLineNumber,g+1,r.startLineNumber,u.length+1),l,c,this._insertSpace)}else d=BlockCommentCommand._createAddBlockCommentOperations(new Range$2(r.startLineNumber,e.getLineFirstNonWhitespaceColumn(r.startLineNumber),r.endLineNumber,e.getLineMaxColumn(r.endLineNumber)),l,c,this._insertSpace);d.length===1&&(this._deltaColumn=l.length+1)}this._selectionId=t.trackSelection(r);for(const u of d)t.addEditOperation(u.range,u.text)}getEditOperations(e,t){let r=this._selection;if(this._moveEndPositionDown=!1,r.startLineNumber===r.endLineNumber&&this._ignoreFirstLine){t.addEditOperation(new Range$2(r.startLineNumber,e.getLineMaxColumn(r.startLineNumber),r.startLineNumber+1,1),r.startLineNumber===e.getLineCount()?"":"\n"),this._selectionId=t.trackSelection(r);return}r.startLineNumber<r.endLineNumber&&r.endColumn===1&&(this._moveEndPositionDown=!0,r=r.setEndPosition(r.endLineNumber-1,e.getLineMaxColumn(r.endLineNumber-1)));const s=LineCommentCommand._gatherPreflightData(this._type,this._insertSpace,e,r.startLineNumber,r.endLineNumber,this._ignoreEmptyLines,this._ignoreFirstLine,this.languageConfigurationService);return s.supported?this._executeLineComments(e,t,s,r):this._executeBlockComment(e,t,r)}computeCursorState(e,t){let r=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(r=r.setEndPosition(r.endLineNumber+1,1)),new Selection$1(r.selectionStartLineNumber,r.selectionStartColumn+this._deltaColumn,r.positionLineNumber,r.positionColumn+this._deltaColumn)}static _createRemoveLineCommentsOperations(e,t){const r=[];for(let s=0,a=e.length;s<a;s++){const l=e[s];l.ignore||r.push(EditOperation.delete(new Range$2(t+s,l.commentStrOffset+1,t+s,l.commentStrOffset+l.commentStrLength+1)))}return r}_createAddLineCommentsOperations(e,t){const r=[],s=this._insertSpace?" ":"";for(let a=0,l=e.length;a<l;a++){const c=e[a];c.ignore||r.push(EditOperation.insert(new Position$1(t+a,c.commentStrOffset+1),c.commentStr+s))}return r}static nextVisibleColumn(e,t,r,s){return r?e+(t-e%t):e+s}static _normalizeInsertionPoint(e,t,r,s){let a=1073741824,l,c;for(let d=0,u=t.length;d<u;d++){if(t[d].ignore)continue;const g=e.getLineContent(r+d);let f=0;for(let m=0,_=t[d].commentStrOffset;f<a&&m<_;m++)f=LineCommentCommand.nextVisibleColumn(f,s,g.charCodeAt(m)===9,1);f<a&&(a=f)}a=Math.floor(a/s)*s;for(let d=0,u=t.length;d<u;d++){if(t[d].ignore)continue;const g=e.getLineContent(r+d);let f=0;for(l=0,c=t[d].commentStrOffset;f<a&&l<c;l++)f=LineCommentCommand.nextVisibleColumn(f,s,g.charCodeAt(l)===9,1);f>a?t[d].commentStrOffset=l-1:t[d].commentStrOffset=l}}}class CommentLineAction extends EditorAction{constructor(e,t){super(t),this._type=e}run(e,t){const r=e.get(ILanguageConfigurationService);if(!t.hasModel())return;const s=t.getModel(),a=[],l=s.getOptions(),c=t.getOption(29),d=t.getSelections().map((g,f)=>({selection:g,index:f,ignoreFirstLine:!1}));d.sort((g,f)=>Range$2.compareRangesUsingStarts(g.selection,f.selection));let u=d[0];for(let g=1;g<d.length;g++){const f=d[g];u.selection.endLineNumber===f.selection.startLineNumber&&(u.index<f.index?f.ignoreFirstLine=!0:(u.ignoreFirstLine=!0,u=f))}for(const g of d)a.push(new LineCommentCommand(r,g.selection,l.indentSize,this._type,c.insertSpace,c.ignoreEmptyLines,g.ignoreFirstLine));t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}class ToggleCommentLineAction extends CommentLineAction{constructor(){super(0,{id:"editor.action.commentLine",label:localize2(897,"Toggle Line Comment"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2138,weight:100},menuOpts:{menuId:MenuId.MenubarEditMenu,group:"5_insert",title:localize(895,"&&Toggle Line Comment"),order:1},canTriggerInlineEdits:!0})}}class AddLineCommentAction extends CommentLineAction{constructor(){super(1,{id:"editor.action.addCommentLine",label:localize2(898,"Add Line Comment"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2081),weight:100},canTriggerInlineEdits:!0})}}class RemoveLineCommentAction extends CommentLineAction{constructor(){super(2,{id:"editor.action.removeCommentLine",label:localize2(899,"Remove Line Comment"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2099),weight:100},canTriggerInlineEdits:!0})}}class BlockCommentAction extends EditorAction{constructor(){super({id:"editor.action.blockComment",label:localize2(900,"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(896,"Toggle &&Block Comment"),order:2},canTriggerInlineEdits:!0})}run(e,t){const r=e.get(ILanguageConfigurationService);if(!t.hasModel())return;const s=t.getOption(29),a=[],l=t.getSelections();for(const c of l)a.push(new BlockCommentCommand(c,s.insertSpace,r));t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}registerEditorAction(ToggleCommentLineAction);registerEditorAction(AddLineCommentAction);registerEditorAction(RemoveLineCommentAction);registerEditorAction(BlockCommentAction);var __decorate$1Q=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1L=function(o,e){return function(t,r){e(t,r,o)}},ContextMenuController_1,Cn;let ContextMenuController=(Cn=class{static get(e){return e.getContribution(ContextMenuController_1.ID)}constructor(e,t,r,s,a,l,c,d){this._contextMenuService=t,this._contextViewService=r,this._contextKeyService=s,this._keybindingService=a,this._menuService=l,this._configurationService=c,this._workspaceContextService=d,this._toDispose=new DisposableStore$1,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(u=>this._onContextMenu(u))),this._toDispose.add(this._editor.onMouseWheel(u=>{if(this._contextMenuIsBeingShownCount>0){const g=this._contextViewService.getContextViewElement(),f=u.srcElement;f.shadowRoot&&getShadowRoot$2(g)===f.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(u=>{this._editor.getOption(30)&&u.keyCode===58&&(u.preventDefault(),u.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(30)){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 r=!1;for(const s of this._editor.getSelections())if(s.containsPosition(e.target.position)){r=!0;break}r||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(30)||!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.contextMenuId);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const r=[],s=this._menuService.getMenuActions(t,this._contextKeyService,{arg:e.uri});for(const a of s){const[,l]=a;let c=0;for(const d of l)if(d instanceof SubmenuItemAction){const u=this._getMenuActions(e,d.item.submenu);u.length>0&&(r.push(new SubmenuAction(d.id,d.label,u)),c++)}else r.push(d),c++;c&&r.push(new Separator)}return r.length&&r.pop(),r}_doShowContextMenu(e,t=null){var a;if(!this._editor.hasModel())return;let r=t;if(!r){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const l=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),c=getDomNodePagePosition(this._editor.getDomNode()),d=c.left+l.left,u=c.top+l.top+l.height;r={x:d,y:u}}const s=this._editor.getOption(144)&&!isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:s?(a=this._editor.getOverflowWidgetsDomNode())!=null?a:this._editor.getDomNode():void 0,getAnchor:()=>r,getActions:()=>e,getActionViewItem:l=>{const c=this._keybindingFor(l);if(c)return new ActionViewItem(l,l,{label:!0,keybinding:c.getLabel(),isMenu:!0});const d=l;return typeof d.getActionViewItem=="function"?d.getActionViewItem():new ActionViewItem(l,l,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:l=>this._keybindingFor(l),onHide:l=>{this._contextMenuIsBeingShownCount--}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||isStandaloneEditorWorkspace(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(81);let r=0;const s=u=>({id:"menu-action-".concat(++r),label:u.label,tooltip:"",class:void 0,enabled:typeof u.enabled>"u"?!0:u.enabled,checked:u.checked,run:u.run}),a=(u,g)=>new SubmenuAction("menu-action-".concat(++r),u,g,void 0),l=(u,g,f,m,_)=>{if(!g)return s({label:u,enabled:g,run:()=>{}});const v=C=>()=>{this._configurationService.updateValue(f,C)},b=[];for(const C of _)b.push(s({label:C.label,checked:m===C.value,run:v(C.value)}));return a(u,b)},c=[];c.push(s({label:localize(901,"Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),c.push(new Separator),c.push(s({label:localize(902,"Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),c.push(l(localize(903,"Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:localize(904,"Proportional"),value:"proportional"},{label:localize(905,"Fill"),value:"fill"},{label:localize(906,"Fit"),value:"fit"}])),c.push(l(localize(907,"Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:localize(908,"Mouse Over"),value:"mouseover"},{label:localize(909,"Always"),value:"always"}]));const d=this._editor.getOption(144)&&!isIOS;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:d?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>c,onHide:u=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}},ContextMenuController_1=Cn,Cn.ID="editor.contrib.contextmenu",Cn);ContextMenuController=ContextMenuController_1=__decorate$1Q([__param$1L(1,IContextMenuService),__param$1L(2,IContextViewService),__param$1L(3,IContextKeyService),__param$1L(4,IKeybindingService),__param$1L(5,IMenuService),__param$1L(6,IConfigurationService),__param$1L(7,IWorkspaceContextService)],ContextMenuController);class ShowContextMenu extends EditorAction{constructor(){super({id:"editor.action.showContextMenu",label:localize2(910,"Show Editor Context Menu"),precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:1092,weight:100}})}run(e,t){var r;(r=ContextMenuController.get(t))==null||r.showContextMenu()}}registerEditorContribution(ContextMenuController.ID,ContextMenuController,2);registerEditorAction(ShowContextMenu);class CursorState{constructor(e){this.selections=e}equals(e){const t=this.selections.length,r=e.selections.length;if(t!==r)return!1;for(let s=0;s<t;s++)if(!this.selections[s].equalsSelection(e.selections[s]))return!1;return!0}}class StackElement{constructor(e,t,r){this.cursorState=e,this.scrollTop=t,this.scrollLeft=r}}const Go=class Go extends Disposable$1{static get(e){return e.getContribution(Go.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 r=new CursorState(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(r)||(this._undoStack.push(new StackElement(r,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}};Go.ID="editor.contrib.cursorUndoRedoController";let CursorUndoRedoController=Go;class CursorUndo extends EditorAction{constructor(){super({id:"cursorUndo",label:localize2(911,"Cursor Undo"),precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2099,weight:100}})}run(e,t,r){var s;(s=CursorUndoRedoController.get(t))==null||s.cursorUndo()}}class CursorRedo extends EditorAction{constructor(){super({id:"cursorRedo",label:localize2(912,"Cursor Redo"),precondition:void 0})}run(e,t,r){var s;(s=CursorUndoRedoController.get(t))==null||s.cursorRedo()}}registerEditorContribution(CursorUndoRedoController.ID,CursorUndoRedoController,0);registerEditorAction(CursorUndo);registerEditorAction(CursorRedo);class DragAndDropCommand{constructor(e,t,r){this.selection=e,this.targetPosition=t,this.copy=r,this.targetSelection=null}getEditOperations(e,t){const r=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),r),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}const li=class li extends Disposable$1{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(42)||this._editor.getOption(28)||(hasTriggerModifier(e)&&(this._modifierPressed=!0),this._mouseDown&&hasTriggerModifier(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){!this._editor.getOption(42)||this._editor.getOption(28)||(hasTriggerModifier(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===li.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 s=(this._editor.getSelections()||[]).filter(a=>t.position&&a.containsPosition(t.position));if(s.length===1)this._dragSelection=s[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 r=null;if(e.event.shiftKey){const s=this._editor.getSelection();if(s){const{selectionStartLineNumber:a,selectionStartColumn:l}=s;r=[new Selection$1(a,l,t.lineNumber,t.column)]}}else r=(this._editor.getSelections()||[]).map(s=>s.containsPosition(t)?new Selection$1(t.lineNumber,t.column,t.lineNumber,t.column):s);this._editor.setSelections(r||[],"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(li.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:li._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()}};li.ID="editor.contrib.dragAndDrop",li.TRIGGER_KEY_VALUE=isMacintosh?6:5,li._DECORATION_OPTIONS=ModelDecorationOptions.register({description:"dnd-target",className:"dnd-target"});let DragAndDropController=li;registerEditorContribution(DragAndDropController.ID,DragAndDropController,2);const pasteAsCommandId="editor.action.pasteAs";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){var t;return(t=CopyPasteController.get(e))==null?void 0:t.changePasteType()}});registerEditorCommand(new class extends EditorCommand{constructor(){super({id:"editor.hidePasteWidget",precondition:pasteWidgetVisibleCtx,kbOpts:{weight:100,primary:9}})}runEditorCommand(o,e){var t;(t=CopyPasteController.get(e))==null||t.clearWidgets()}});var yn;registerEditorAction((yn=class extends EditorAction{constructor(){super({id:pasteAsCommandId,label:localize2(915,"Paste As..."),precondition:EditorContextKeys.writable,metadata:{description:"Paste as",args:[{name:"args",schema:yn.argsSchema}]},canTriggerInlineEdits:!0})}run(e,t,r){var a;let s;return r&&("kind"in r?s={only:new HierarchicalKind(r.kind)}:"preferences"in r&&(s={preferences:r.preferences.map(l=>new HierarchicalKind(l))})),(a=CopyPasteController.get(t))==null?void 0:a.pasteAs(s)}},yn.argsSchema={oneOf:[{type:"object",required:["kind"],properties:{kind:{type:"string",description:localize(913,"The kind of the paste edit to try pasting with.\nIf there are multiple edits for this kind, the editor will show a picker. If there are no edits of this kind, the editor will show an error message.")}}},{type:"object",required:["preferences"],properties:{preferences:{type:"array",description:localize(914,"List of preferred paste edit kind to try applying.\nThe first edit matching the preferences will be applied."),items:{type:"string"}}}}]},yn));registerEditorAction(class extends EditorAction{constructor(){super({id:"editor.action.pasteAsText",label:localize2(916,"Paste as Text"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}run(o,e){var t;return(t=CopyPasteController.get(e))==null?void 0:t.pasteAs({providerId:DefaultTextPasteOrDropEditProvider.id})}});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$1P=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1K=function(o,e){return function(t,r){e(t,r,o)}},DropIntoEditorController_1;const dropAsPreferenceConfig="editor.dropIntoEditor.preferences",changeDropTypeCommandId="editor.changeDropType",dropWidgetVisibleCtx=new RawContextKey("dropWidgetVisible",!1,localize(934,"Whether the drop widget is showing"));var Sn;let DropIntoEditorController=(Sn=class extends Disposable$1{static get(e){return e.getContribution(DropIntoEditorController_1.ID)}constructor(e,t,r,s,a){super(),this._configService=r,this._languageFeaturesService=s,this._treeViewsDragAndDropService=a,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(935,"Show drop options...")},()=>DropIntoEditorController_1._configureDefaultAction?[DropIntoEditorController_1._configureDefaultAction]:[])),this._register(e.onDropIntoEditor(l=>this.onDropIntoEditor(e,l.position,l.event)))}clearWidgets(){this._postDropWidgetManager.clear()}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(e,t,r){var a;if(!r.dataTransfer||!e.hasModel())return;(a=DropIntoEditorController_1._currentDropOperation)==null||a.cancel(),e.focus(),e.setPosition(t);const s=createCancelablePromise(async l=>{const c=new DisposableStore$1,d=c.add(new EditorStateCancellationTokenSource(e,1,void 0,l));try{const u=await this.extractDataTransferData(r);if(u.size===0||d.token.isCancellationRequested)return;const g=e.getModel();if(!g)return;const f=this._languageFeaturesService.documentDropEditProvider.ordered(g).filter(_=>_.dropMimeTypes?_.dropMimeTypes.some(v=>u.matches(v)):!0),m=c.add(await this.getDropEdits(f,g,t,u,d.token));if(d.token.isCancellationRequested)return;if(m.edits.length){const _=this.getInitialActiveEditIndex(g,m.edits),v=e.getOption(43).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([Range$2.fromPositions(t)],{activeEditIndex:_,allEdits:m.edits},v,async b=>b,l)}}finally{c.dispose(),DropIntoEditorController_1._currentDropOperation===s&&(DropIntoEditorController_1._currentDropOperation=void 0)}});this._dropProgressManager.showWhile(t,localize(936,"Running drop handlers. Click to cancel"),s,{cancel:()=>s.cancel()}),DropIntoEditorController_1._currentDropOperation=s}async getDropEdits(e,t,r,s,a){const l=new DisposableStore$1,c=await raceCancellation(Promise.all(e.map(async u=>{try{const g=await u.provideDocumentDropEdits(t,r,s,a);return g&&l.add(g),g==null?void 0:g.edits.map(f=>({...f,providerId:u.id}))}catch(g){isCancellationError(g)||console.error(g),console.error(g)}})),a),d=coalesce(c!=null?c:[]).flat();return{edits:sortEditsByYieldTo(d),dispose:()=>l.dispose()}}getInitialActiveEditIndex(e,t){const r=this._configService.getValue(dropAsPreferenceConfig,{resource:e.uri});for(const s of Array.isArray(r)?r:[]){const a=new HierarchicalKind(s),l=t.findIndex(c=>c.kind&&a.contains(c.kind));if(l>=0)return l}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new VSDataTransfer;const t=toExternalVSDataTransfer(e.dataTransfer);if(this.treeItemsTransfer.hasData(DraggedTreeItemsIdentifier.prototype)){const r=this.treeItemsTransfer.getData(DraggedTreeItemsIdentifier.prototype);if(Array.isArray(r))for(const s of r){const a=await this._treeViewsDragAndDropService.removeDragOperationTransfer(s.identifier);if(a)for(const[l,c]of a)t.replace(l,c)}}return t}},DropIntoEditorController_1=Sn,Sn.ID="editor.contrib.dropIntoEditorController",Sn);DropIntoEditorController=DropIntoEditorController_1=__decorate$1P([__param$1K(1,IInstantiationService),__param$1K(2,IConfigurationService),__param$1K(3,ILanguageFeaturesService),__param$1K(4,ITreeViewsDnDService)],DropIntoEditorController);registerEditorContribution(DropIntoEditorController.ID,DropIntoEditorController,2);registerEditorFeature(DefaultDropProvidersFeature);registerEditorCommand(new class extends EditorCommand{constructor(){super({id:changeDropTypeCommandId,precondition:dropWidgetVisibleCtx,kbOpts:{weight:100,primary:2137}})}runEditorCommand(o,e,t){var r;(r=DropIntoEditorController.get(e))==null||r.changeDropType()}});registerEditorCommand(new class extends EditorCommand{constructor(){super({id:"editor.hideDropWidget",precondition:dropWidgetVisibleCtx,kbOpts:{weight:100,primary:9}})}runEditorCommand(o,e,t){var r;(r=DropIntoEditorController.get(e))==null||r.clearWidgets()}});const jo=class jo extends Widget$1{constructor(e,t,r){super(),this._hideSoon=this._register(new RunOnceScheduler(()=>this._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=r,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 s={inputActiveOptionBorder:asCssVariable(inputActiveOptionBorder),inputActiveOptionForeground:asCssVariable(inputActiveOptionForeground),inputActiveOptionBackground:asCssVariable(inputActiveOptionBackground)},a={groupId:"find-options-widget"};this.caseSensitive=this._register(new CaseSensitiveToggle({appendTitle:this._keybindingLabelFor(FIND_IDS.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,hoverLifecycleOptions:a,...s})),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({appendTitle:this._keybindingLabelFor(FIND_IDS.ToggleWholeWordCommand),isChecked:this._state.wholeWord,hoverLifecycleOptions:a,...s})),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({appendTitle:this._keybindingLabelFor(FIND_IDS.ToggleRegexCommand),isChecked:this._state.isRegex,hoverLifecycleOptions:a,...s})),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(l=>{let c=!1;l.isRegex&&(this.regex.checked=this._state.isRegex,c=!0),l.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,c=!0),l.matchCase&&(this.caseSensitive.checked=this._state.matchCase,c=!0),!this._state.isRevealed&&c&&this._revealTemporarily()})),this._register(addDisposableListener(this._domNode,EventType$1.MOUSE_LEAVE,l=>this._onMouseLeave())),this._register(addDisposableListener(this._domNode,"mouseover",l=>this._onMouseOver()))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?" (".concat(t.getLabel(),")"):""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return jo.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")}};jo.ID="editor.contrib.findOptionsWidget";let FindOptionsWidget=jo;function effectiveOptionValue(o,e){return o===1?!0:o===2?!1:e}class FindReplaceState extends Disposable$1{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,r){const s={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 a=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,s.matchesPosition=!0,a=!0),this._matchesCount!==t&&(this._matchesCount=t,s.matchesCount=!0,a=!0),typeof r<"u"&&(Range$2.equalsRange(this._currentMatch,r)||(this._currentMatch=r,s.currentMatch=!0,a=!0)),a&&this._onFindReplaceStateChange.fire(s)}change(e,t,r=!0){var g;const s={moveCursor:t,updateHistory:r,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 a=!1;const l=this.isRegex,c=this.wholeWord,d=this.matchCase,u=this.preserveCase;typeof e.searchString<"u"&&this._searchString!==e.searchString&&(this._searchString=e.searchString,s.searchString=!0,a=!0),typeof e.replaceString<"u"&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,s.replaceString=!0,a=!0),typeof e.isRevealed<"u"&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,s.isRevealed=!0,a=!0),typeof e.isReplaceRevealed<"u"&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,s.isReplaceRevealed=!0,a=!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"&&((g=e.searchScope)!=null&&g.every(f=>{var m;return(m=this._searchScope)==null?void 0:m.some(_=>!Range$2.equalsRange(_,f))})||(this._searchScope=e.searchScope,s.searchScope=!0,a=!0)),typeof e.loop<"u"&&this._loop!==e.loop&&(this._loop=e.loop,s.loop=!0,a=!0),typeof e.isSearching<"u"&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,s.isSearching=!0,a=!0),typeof e.filters<"u"&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,s.filters=!0,a=!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,l!==this.isRegex&&(a=!0,s.isRegex=!0),c!==this.wholeWord&&(a=!0,s.wholeWord=!0),d!==this.matchCase&&(a=!0,s.matchCase=!0),u!==this.preserveCase&&(a=!0,s.preserveCase=!0),a&&this._onFindReplaceStateChange.fire(s)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition<this.matchesCount}canNavigateInLoop(){return this._loop||this.matchesCount>=MATCHES_LIMIT}}var __decorate$1O=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1J=function(o,e){return function(t,r){e(t,r,o)}},FindWidgetSearchHistory_1,wi;let FindWidgetSearchHistory=(wi=class{static getOrCreate(e){return FindWidgetSearchHistory_1._instance||(FindWidgetSearchHistory_1._instance=new FindWidgetSearchHistory_1(e)),FindWidgetSearchHistory_1._instance}constructor(e){this.storageService=e,this.inMemoryValues=new Set,this._onDidChangeEmitter=new Emitter$1,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(e){const t=this.inMemoryValues.delete(e);return this.save(),t}add(e){return this.inMemoryValues.add(e),this.save(),this}has(e){return this.inMemoryValues.has(e)}forEach(e,t){return this.load(),this.inMemoryValues.forEach(e)}replace(e){this.inMemoryValues=new Set(e),this.save()}load(){let e;const t=this.storageService.get(FindWidgetSearchHistory_1.FIND_HISTORY_KEY,1);if(t)try{e=JSON.parse(t)}catch(r){}this.inMemoryValues=new Set(e||[])}save(){const e=[];return this.inMemoryValues.forEach(t=>e.push(t)),new Promise(t=>{this.storageService.store(FindWidgetSearchHistory_1.FIND_HISTORY_KEY,JSON.stringify(e),1,0),this._onDidChangeEmitter.fire(e),t()})}},FindWidgetSearchHistory_1=wi,wi.FIND_HISTORY_KEY="workbench.find.history",wi._instance=null,wi);FindWidgetSearchHistory=FindWidgetSearchHistory_1=__decorate$1O([__param$1J(0,IStorageService)],FindWidgetSearchHistory);var __decorate$1N=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1I=function(o,e){return function(t,r){e(t,r,o)}},ReplaceWidgetHistory_1,xi;let ReplaceWidgetHistory=(xi=class{static getOrCreate(e){return ReplaceWidgetHistory_1._instance||(ReplaceWidgetHistory_1._instance=new ReplaceWidgetHistory_1(e)),ReplaceWidgetHistory_1._instance}constructor(e){this.storageService=e,this.inMemoryValues=new Set,this._onDidChangeEmitter=new Emitter$1,this.onDidChange=this._onDidChangeEmitter.event,this.load()}delete(e){const t=this.inMemoryValues.delete(e);return this.save(),t}add(e){return this.inMemoryValues.add(e),this.save(),this}has(e){return this.inMemoryValues.has(e)}forEach(e,t){return this.load(),this.inMemoryValues.forEach(e)}replace(e){this.inMemoryValues=new Set(e),this.save()}load(){let e;const t=this.storageService.get(ReplaceWidgetHistory_1.FIND_HISTORY_KEY,1);if(t)try{e=JSON.parse(t)}catch(r){}this.inMemoryValues=new Set(e||[])}save(){const e=[];return this.inMemoryValues.forEach(t=>e.push(t)),new Promise(t=>{this.storageService.store(ReplaceWidgetHistory_1.FIND_HISTORY_KEY,JSON.stringify(e),1,0),this._onDidChangeEmitter.fire(e),t()})}},ReplaceWidgetHistory_1=xi,xi.FIND_HISTORY_KEY="workbench.replace.history",xi._instance=null,xi);ReplaceWidgetHistory=ReplaceWidgetHistory_1=__decorate$1N([__param$1I(0,IStorageService)],ReplaceWidgetHistory);var __decorate$1M=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1H=function(o,e){return function(t,r){e(t,r,o)}},CommonFindController_1;const SEARCH_STRING_MAX_LENGTH=524288;function getSelectionSearchString(o,e="single",t=!1){if(!o.hasModel())return null;const r=o.getSelection();if(e==="single"&&r.startLineNumber===r.endLineNumber||e==="multiple"){if(r.isEmpty()){const s=o.getConfiguredWordAtPosition(r.getStartPosition());if(s&&t===!1)return s.word}else if(o.getModel().getValueLengthInRange(r)<SEARCH_STRING_MAX_LENGTH)return o.getModel().getValueInRange(r)}return null}var wn;let CommonFindController=(wn=class extends Disposable$1{get editor(){return this._editor}static get(e){return e.getContribution(CommonFindController_1.ID)}constructor(e,t,r,s,a,l){super(),this._editor=e,this._findWidgetVisible=CONTEXT_FIND_WIDGET_VISIBLE.bindTo(t),this._contextKeyService=t,this._storageService=r,this._clipboardService=s,this._notificationService=a,this._hoverService=l,this._updateHistoryDelayer=new Delayer(500),this._state=this._register(new FindReplaceState),this.loadQueryState(),this._register(this._state.onFindReplaceStateChange(c=>this._onStateChanged(c))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const c=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),c&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(50).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()){let e=this._editor.getSelections();e=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){}async _start(e,t){if(this.disposeModel(),!this._editor.hasModel())return;const r={...t,isRevealed:!0};if(e.seedSearchStringFromSelection==="single"){const s=getSelectionSearchString(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);s&&(this._state.isRegex?r.searchString=escapeRegExpCharacters(s):r.searchString=s)}else if(e.seedSearchStringFromSelection==="multiple"&&!e.updateSearchScope){const s=getSelectionSearchString(this._editor,e.seedSearchStringFromSelection);s&&(r.searchString=s)}if(!r.searchString&&e.seedSearchStringFromGlobalClipboard){const s=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;s&&(r.searchString=s)}if(e.forceRevealReplace||r.isReplaceRevealed?r.isReplaceRevealed=!0:this._findWidgetVisible.get()||(r.isReplaceRevealed=!1),e.updateSearchScope){const s=this._editor.getSelections();s.some(a=>!a.isEmpty())&&(r.searchScope=s)}r.loop=e.loop,this._state.change(r,!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.isTooLargeForHeapOperation()?(this._notificationService.warn(localize(940,"The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(e){this._editor.getOption(50).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}},CommonFindController_1=wn,wn.ID="editor.contrib.findController",wn);CommonFindController=CommonFindController_1=__decorate$1M([__param$1H(1,IContextKeyService),__param$1H(2,IStorageService),__param$1H(3,IClipboardService),__param$1H(4,INotificationService),__param$1H(5,IHoverService)],CommonFindController);let FindController=class extends CommonFindController{constructor(e,t,r,s,a,l,c,d){super(e,r,l,c,a,d),this._contextViewService=t,this._keybindingService=s,this._widget=null,this._findOptionsWidget=null,this._findWidgetSearchHistory=FindWidgetSearchHistory.getOrCreate(l),this._replaceWidgetHistory=ReplaceWidgetHistory.getOrCreate(l)}async _start(e,t){this._widget||this._createFindWidget();const r=this._editor.getSelection();let s=!1;switch(this._editor.getOption(50).autoFindInSelection){case"always":s=!0;break;case"never":s=!1;break;case"multiline":{s=!!r&&r.startLineNumber!==r.endLineNumber;break}}e.updateSearchScope=e.updateSearchScope||s,await super._start(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._hoverService,this._findWidgetSearchHistory,this._replaceWidgetHistory)),this._findOptionsWidget=this._register(new FindOptionsWidget(this._editor,this._state,this._keybindingService))}saveViewState(){var e;return(e=this._widget)==null?void 0:e.getViewState()}restoreViewState(e){var t;(t=this._widget)==null||t.setViewState(e)}};FindController=__decorate$1M([__param$1H(1,IContextViewService),__param$1H(2,IContextKeyService),__param$1H(3,IKeybindingService),__param$1H(4,INotificationService),__param$1H(5,IStorageService),__param$1H(6,IClipboardService),__param$1H(7,IHoverService)],FindController);const StartFindAction=registerMultiEditorAction(new MultiEditorAction({id:FIND_IDS.StartFindAction,label:localize2(947,"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(941,"&&Find"),order:1}}));StartFindAction.addImplementation(0,(o,e,t)=>{const r=CommonFindController.get(e);return r?r.start({forceRevealReplace:!1,seedSearchStringFromSelection:e.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(50).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(50).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"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class StartFindWithArgsAction extends EditorAction{constructor(){super({id:FIND_IDS.StartFindWithArgs,label:localize2(948,"Find with Arguments"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:findArgDescription})}async run(e,t,r){const s=CommonFindController.get(t);if(s){const a=r?{searchString:r.searchString,replaceString:r.replaceString,isReplaceRevealed:r.replaceString!==void 0,isRegex:r.isRegex,wholeWord:r.matchWholeWord,matchCase:r.isCaseSensitive,preserveCase:r.preserveCase}:{};await s.start({forceRevealReplace:!1,seedSearchStringFromSelection:s.getState().searchString.length===0&&t.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(r==null?void 0:r.findInSelection)||!1,loop:t.getOption(50).loop},a),s.setGlobalBufferTerm(s.getState().searchString)}}}class StartFindWithSelectionAction extends EditorAction{constructor(){super({id:FIND_IDS.StartFindWithSelection,label:localize2(949,"Find with Selection"),precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){const r=CommonFindController.get(t);r&&(await r.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop}),r.setGlobalBufferTerm(r.getState().searchString))}}async function matchFindAction(o,e){const t=CommonFindController.get(o);if(!t)return;const r=()=>(e?t.moveToNextMatch():t.moveToPrevMatch())?(t.editor.pushUndoStop(),!0):!1;r()||(await t.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getState().searchString.length===0&&o.getOption(50).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:o.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:o.getOption(50).loop}),r())}const NextMatchFindAction=registerMultiEditorAction(new MultiEditorAction({id:FIND_IDS.NextMatchFindAction,label:localize2(950,"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}]}));NextMatchFindAction.addImplementation(0,async(o,e,t)=>matchFindAction(e,!0));const PreviousMatchFindAction=registerMultiEditorAction(new MultiEditorAction({id:FIND_IDS.PreviousMatchFindAction,label:localize2(951,"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}]}));PreviousMatchFindAction.addImplementation(0,async(o,e,t)=>matchFindAction(e,!1));class MoveToMatchFindAction extends EditorAction{constructor(){super({id:FIND_IDS.GoToMatchFindAction,label:localize2(952,"Go to Match..."),precondition:CONTEXT_FIND_WIDGET_VISIBLE}),this._highlightDecorations=[]}run(e,t,r){const s=CommonFindController.get(t);if(!s)return;const a=s.getState().matchesCount;if(a<1){e.get(INotificationService).notify({severity:Severity.Warning,message:localize(942,"No matches. Try searching for something else.")});return}const l=e.get(IQuickInputService),c=new DisposableStore$1,d=c.add(l.createInputBox());d.placeholder=localize(943,"Type a number to go to a specific match (between 1 and {0})",a);const u=f=>{const m=parseInt(f);if(isNaN(m))return;const _=s.getState().matchesCount;if(m>0&&m<=_)return m-1;if(m<0&&m>=-_)return _+m},g=f=>{const m=u(f);if(typeof m=="number"){d.validationMessage=void 0,s.goToMatch(m);const _=s.getState().currentMatch;_&&this.addDecorations(t,_)}else d.validationMessage=localize(944,"Please type a number between 1 and {0}",s.getState().matchesCount),this.clearDecorations(t)};c.add(d.onDidChangeValue(f=>{g(f)})),c.add(d.onDidAccept(()=>{const f=u(d.value);typeof f=="number"?(s.goToMatch(f),d.hide()):d.validationMessage=localize(945,"Please type a number between 1 and {0}",s.getState().matchesCount)})),c.add(d.onDidHide(()=>{this.clearDecorations(t),c.dispose()})),d.show()}clearDecorations(e){e.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])})}addDecorations(e,t){e.changeDecorations(r=>{this._highlightDecorations=r.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$1.Full}}}])})}}class SelectionMatchFindAction extends EditorAction{async run(e,t){const r=CommonFindController.get(t);if(!r)return;const s=getSelectionSearchString(t,"single",!1);s&&r.setSearchString(s),this._run(r)||(await r.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(50).loop}),this._run(r))}}class NextSelectionMatchFindAction extends SelectionMatchFindAction{constructor(){super({id:FIND_IDS.NextSelectionMatchFindAction,label:localize2(953,"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:localize2(954,"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:localize2(955,"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(946,"&&Replace"),order:2}}));StartFindReplaceAction.addImplementation(0,(o,e,t)=>{if(!e.hasModel()||e.getOption(104))return!1;const r=CommonFindController.get(e);if(!r)return!1;const s=e.getSelection(),a=r.isFindInputFocused(),l=!s.isEmpty()&&s.startLineNumber===s.endLineNumber&&e.getOption(50).seedSearchStringFromSelection!=="never"&&!a,c=a||l?2:1;return r.start({forceRevealReplace:!0,seedSearchStringFromSelection:l?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(50).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(50).seedSearchStringFromSelection!=="never",shouldFocus:c,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(50).loop})});registerEditorContribution(CommonFindController.ID,FindController,0);registerEditorAction(StartFindWithArgsAction);registerEditorAction(StartFindWithSelectionAction);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,r=e%32;return(this._states[t]&1<<r)!==0}set(e,t){const r=e/32|0,s=e%32,a=this._states[r];t?this._states[r]=a|1<<s:this._states[r]=a&~(1<<s)}}class FoldingRegions{constructor(e,t,r){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=r,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(r,s)=>{const a=e[e.length-1];return this.getStartLineNumber(a)<=r&&this.getEndLineNumber(a)>=s};for(let r=0,s=this._startIndexes.length;r<s;r++){const a=this._startIndexes[r],l=this._endIndexes[r];if(a>MAX_LINE_NUMBER||l>MAX_LINE_NUMBER)throw new Error("startLineNumber or endLineNumber must not exceed "+MAX_LINE_NUMBER);for(;e.length>0&&!t(a,l);)e.pop();const c=e.length>0?e[e.length-1]:-1;e.push(r),this._startIndexes[r]=a+((c&255)<<24),this._endIndexes[r]=l+((c&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 r=!1;if(this._types)for(let s=0;s<this._types.length;s++)this._types[s]===e&&(this.setCollapsed(s,t),r=!0);return r}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,r=this._startIndexes.length;if(r===0)return-1;for(;t<r;){const s=Math.floor((t+r)/2);e<this.getStartLineNumber(s)?r=s:t=s+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]="[".concat(foldSourceAbbr[this.getSource(t)]).concat(this.isCollapsed(t)?"+":"-","] ").concat(this.getStartLineNumber(t),"/").concat(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,r=new Uint32Array(t),s=new Uint32Array(t);let a=[],l=!1;for(let d=0;d<t;d++){const u=e[d];r[d]=u.startLineNumber,s[d]=u.endLineNumber,a.push(u.type),u.type&&(l=!0)}l||(a=void 0);const c=new FoldingRegions(r,s,a);for(let d=0;d<t;d++)e[d].isCollapsed&&c.setCollapsed(d,!0),c.setSource(d,e[d].source);return c}static sanitizeAndMerge(e,t,r,s){r=r!=null?r:Number.MAX_VALUE;const a=(C,y)=>Array.isArray(C)?(S=>S<y?C[S]:void 0):(S=>S<y?C.toFoldRange(S):void 0),l=a(e,e.length),c=a(t,t.length);let d=0,u=0,g=l(0),f=c(0);const m=[];let _,v=0;const b=[];for(;g||f;){let C;if(f&&(!g||g.startLineNumber>=f.startLineNumber))g&&g.startLineNumber===f.startLineNumber?(f.source===1?C=f:(C=g,C.isCollapsed=f.isCollapsed&&(g.endLineNumber===f.endLineNumber||!(s!=null&&s.startsInside(g.startLineNumber+1,g.endLineNumber+1))),C.source=0),g=l(++d)):(C=f,f.isCollapsed&&f.source===0&&(C.source=2)),f=c(++u);else{let y=u,S=f;for(;;){if(!S||S.startLineNumber>g.endLineNumber){C=g;break}if(S.source===1&&S.endLineNumber>g.endLineNumber)break;S=c(++y)}g=l(++d)}if(C){for(;_&&_.endLineNumber<C.startLineNumber;)_=m.pop();C.endLineNumber>C.startLineNumber&&C.startLineNumber>v&&C.endLineNumber<=r&&(!_||_.endLineNumber>=C.endLineNumber)&&(b.push(C),v=C.startLineNumber,_&&m.push(_),_=C)}}return b}}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((r,s)=>r.regionIndex-s.regionIndex);const t={};this._decorationProvider.changeDecorations(r=>{let s=0,a=-1,l=-1;const c=d=>{for(;s<d;){const u=this._regions.getEndLineNumber(s),g=this._regions.isCollapsed(s);if(u<=a){const f=this.regions.getSource(s)!==0;r.changeDecorationOptions(this._editorDecorationIds[s],this._decorationProvider.getDecorationOption(g,u<=l,f))}g&&u>l&&(l=u),s++}};for(const d of e){const u=d.regionIndex,g=this._editorDecorationIds[u];if(g&&!t[g]){t[g]=!0,c(u);const f=!this._regions.isCollapsed(u);this._regions.setCollapsed(u,f),a=Math.max(a,this._regions.getEndLineNumber(u))}}c(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,r=s=>{for(const a of e)if(!(a.startLineNumber>s.endLineNumber||s.startLineNumber>a.endLineNumber))return!0;return!1};for(let s=0;s<this._regions.length;s++){const a=this._regions.toFoldRange(s);(a.source===0||!r(a))&&t.push(a)}this.updatePost(FoldingRegions.fromFoldRanges(t))}update(e,t){const r=this._currentFoldedOrManualRanges(t),s=FoldingRegions.sanitizeAndMerge(e,r,this._textModel.getLineCount(),t);this.updatePost(FoldingRegions.fromFoldRanges(s))}updatePost(e){const t=[];let r=-1;for(let s=0,a=e.length;s<a;s++){const l=e.getStartLineNumber(s),c=e.getEndLineNumber(s),d=e.isCollapsed(s),u=e.getSource(s)!==0,g={startLineNumber:l,startColumn:this._textModel.getLineMaxColumn(l),endLineNumber:c,endColumn:this._textModel.getLineMaxColumn(c)+1};t.push({range:g,options:this._decorationProvider.getDecorationOption(d,c<=r,u)}),d&&c>r&&(r=c)}this._decorationProvider.changeDecorations(s=>this._editorDecorationIds=s.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e){const t=[];for(let r=0,s=this._regions.length;r<s;r++){let a=this.regions.isCollapsed(r);const l=this.regions.getSource(r);if(a||l!==0){const c=this._regions.toFoldRange(r),d=this._textModel.getDecorationRange(this._editorDecorationIds[r]);d&&(a&&(e!=null&&e.startsInside(d.startLineNumber+1,d.endLineNumber))&&(a=!1),t.push({startLineNumber:d.startLineNumber,endLineNumber:d.endLineNumber,type:c.type,isCollapsed:a,source:l}))}}return t}getMemento(){const e=this._currentFoldedOrManualRanges(),t=[],r=this._textModel.getLineCount();for(let s=0,a=e.length;s<a;s++){const l=e[s];if(l.startLineNumber>=l.endLineNumber||l.startLineNumber<1||l.endLineNumber>r)continue;const c=this._getLinesChecksum(l.startLineNumber+1,l.endLineNumber);t.push({startLineNumber:l.startLineNumber,endLineNumber:l.endLineNumber,isCollapsed:l.isCollapsed,source:l.source,checksum:c})}return t.length>0?t:void 0}applyMemento(e){var a,l;if(!Array.isArray(e))return;const t=[],r=this._textModel.getLineCount();for(const c of e){if(c.startLineNumber>=c.endLineNumber||c.startLineNumber<1||c.endLineNumber>r)continue;const d=this._getLinesChecksum(c.startLineNumber+1,c.endLineNumber);(!c.checksum||d===c.checksum)&&t.push({startLineNumber:c.startLineNumber,endLineNumber:c.endLineNumber,type:void 0,isCollapsed:(a=c.isCollapsed)!=null?a:!0,source:(l=c.source)!=null?l:0})}const s=FoldingRegions.sanitizeAndMerge(this._regions,t,r);this.updatePost(FoldingRegions.fromFoldRanges(s))}_getLinesChecksum(e,t){return hash$1(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const r=[];if(this._regions){let s=this._regions.findRange(e),a=1;for(;s>=0;){const l=this._regions.toRegion(s);(!t||t(l,a))&&r.push(l),a++,s=l.parentIndex}}return r}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 r=[],s=e?e.regionIndex+1:0,a=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){const l=[];for(let c=s,d=this._regions.length;c<d;c++){const u=this._regions.toRegion(c);if(this._regions.getStartLineNumber(c)<a){for(;l.length>0&&!u.containedBy(l[l.length-1]);)l.pop();l.push(u),t(u,l.length)&&r.push(u)}else break}}else for(let l=s,c=this._regions.length;l<c;l++){const d=this._regions.toRegion(l);if(this._regions.getStartLineNumber(l)<a)(!t||t(d))&&r.push(d);else break}return r}}function toggleCollapseState(o,e,t){const r=[];for(const s of t){const a=o.getRegionAtLine(s);if(a){const l=!a.isCollapsed;if(r.push(a),e>1){const c=o.getRegionsInside(a,(d,u)=>d.isCollapsed!==l&&u<e);r.push(...c)}}}o.toggleCollapseState(r)}function setCollapseStateLevelsDown(o,e,t=Number.MAX_VALUE,r){const s=[];if(r&&r.length>0)for(const a of r){const l=o.getRegionAtLine(a);if(l&&(l.isCollapsed!==e&&s.push(l),t>1)){const c=o.getRegionsInside(l,(d,u)=>d.isCollapsed!==e&&u<t);s.push(...c)}}else{const a=o.getRegionsInside(null,(l,c)=>l.isCollapsed!==e&&c<t);s.push(...a)}o.toggleCollapseState(s)}function setCollapseStateLevelsUp(o,e,t,r){const s=[];for(const a of r){const l=o.getAllRegionsAtLine(a,(c,d)=>c.isCollapsed!==e&&d<=t);s.push(...l)}o.toggleCollapseState(s)}function setCollapseStateUp(o,e,t){const r=[];for(const s of t){const a=o.getAllRegionsAtLine(s,l=>l.isCollapsed!==e);a.length>0&&r.push(a[0])}o.toggleCollapseState(r)}function setCollapseStateAtLevel(o,e,t,r){const s=(l,c)=>c===e&&l.isCollapsed!==t&&!r.some(d=>l.containsLine(d)),a=o.getRegionsInside(null,s);o.toggleCollapseState(a)}function setCollapseStateForRest(o,e,t){const r=[];for(const l of t){const c=o.getAllRegionsAtLine(l,void 0);c.length>0&&r.push(c[0])}const s=l=>r.every(c=>!c.containedBy(l)&&!l.containedBy(c))&&l.isCollapsed!==e,a=o.getRegionsInside(null,s);o.toggleCollapseState(a)}function setCollapseStateForMatchingLines(o,e,t){const r=o.textModel,s=o.regions,a=[];for(let l=s.length-1;l>=0;l--)if(t!==s.isCollapsed(l)){const c=s.getStartLineNumber(l);e.test(r.getLineContent(c))&&a.push(s.toRegion(l))}o.toggleCollapseState(a)}function setCollapseStateForType(o,e,t){const r=o.regions,s=[];for(let a=r.length-1;a>=0;a--)t!==r.isCollapsed(a)&&e===r.getType(a)&&s.push(r.toRegion(a));o.toggleCollapseState(s)}function getParentFoldLine(o,e){let t=null;const r=e.getRegionAtLine(o);if(r!==null&&(t=r.startLineNumber,o===t)){const s=r.parentIndex;s!==-1?t=e.regions.getStartLineNumber(s):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 r=t.parentIndex;let s=0;for(r!==-1&&(s=e.regions.getStartLineNumber(t.parentIndex));t!==null;)if(t.regionIndex>0){if(t=e.regions.toRegion(t.regionIndex-1),t.startLineNumber<=s)return null;if(t.parentIndex===r)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 r=t.parentIndex;let s=0;if(r!==-1)s=e.regions.getEndLineNumber(t.parentIndex);else{if(e.regions.length===0)return null;s=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>=s)return null;if(t.parentIndex===r)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 r=0,s=0,a=Number.MAX_VALUE,l=-1;const c=this._foldingModel.regions;for(;r<c.length;r++){if(!c.isCollapsed(r))continue;const d=c.getStartLineNumber(r)+1,u=c.getEndLineNumber(r);a<=d&&u<=l||(!e&&s<this._hiddenRanges.length&&this._hiddenRanges[s].startLineNumber===d&&this._hiddenRanges[s].endLineNumber===u?(t.push(this._hiddenRanges[s]),s++):(e=!0,t.push(new Range$2(d,1,u,1))),a=d,l=u)}(this._hasLineChanges||e||s<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 r=this._foldingModel.textModel;let s=null;const a=l=>((!s||!isInside$1(l,s))&&(s=findRange(this._hiddenRanges,l)),s?s.startLineNumber-1:null);for(let l=0,c=e.length;l<c;l++){let d=e[l];const u=a(d.startLineNumber);u&&(d=d.setStartPosition(u,r.getLineMaxColumn(u)),t=!0);const g=a(d.endLineNumber);g&&(d=d.setEndPosition(g,r.getLineMaxColumn(g)),t=!0),e[l]=d}return t}dispose(){this.hiddenRanges.length>0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function isInside$1(o,e){return o>=e.startLineNumber&&o<=e.endLineNumber}function findRange(o,e){const t=findFirstIdxMonotonousOrArrLen(o,r=>e<r.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,r){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=r,this.id=ID_INDENT_PROVIDER}dispose(){}compute(e){const t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,r=t&&!!t.offSide,s=t&&t.markers;return Promise.resolve(computeRanges(this.editorModel,r,s,this.foldingRangesLimit))}}let RangesCollector$1=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,r){if(e>MAX_LINE_NUMBER||t>MAX_LINE_NUMBER)return;const s=this._length;this._startIndexes[s]=e,this._endIndexes[s]=t,this._length++,r<1e3&&(this._indentOccurrences[r]=(this._indentOccurrences[r]||0)+1)}toIndentRanges(e){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const r=new Uint32Array(this._length),s=new Uint32Array(this._length);for(let a=this._length-1,l=0;a>=0;a--,l++)r[l]=this._startIndexes[a],s[l]=this._endIndexes[a];return new FoldingRegions(r,s)}else{this._foldingRangesLimit.update(this._length,t);let r=0,s=this._indentOccurrences.length;for(let d=0;d<this._indentOccurrences.length;d++){const u=this._indentOccurrences[d];if(u){if(u+r>t){s=d;break}r+=u}}const a=e.getOptions().tabSize,l=new Uint32Array(t),c=new Uint32Array(t);for(let d=this._length-1,u=0;d>=0;d--){const g=this._startIndexes[d],f=e.getLineContent(g),m=computeIndentLevel(f,a);(m<s||m===s&&r++<t)&&(l[u]=g,c[u]=this._endIndexes[d],u++)}return new FoldingRegions(l,c)}}};const foldingRangesLimitDefault={limit:MAX_FOLDING_REGIONS_FOR_INDENT_DEFAULT,update:()=>{}};function computeRanges(o,e,t,r=foldingRangesLimitDefault){const s=o.getOptions().tabSize,a=new RangesCollector$1(r);let l;t&&(l=new RegExp("(".concat(t.start.source,")|(?:").concat(t.end.source,")")));const c=[],d=o.getLineCount()+1;c.push({indent:-1,endAbove:d,line:d});for(let u=o.getLineCount();u>0;u--){const g=o.getLineContent(u),f=computeIndentLevel(g,s);let m=c[c.length-1];if(f===-1){e&&(m.endAbove=u);continue}let _;if(l&&(_=g.match(l)))if(_[1]){let v=c.length-1;for(;v>0&&c[v].indent!==-2;)v--;if(v>0){c.length=v+1,m=c[v],a.insertFirst(u,m.line,f),m.line=u,m.indent=f,m.endAbove=u;continue}}else{c.push({indent:-2,endAbove:u,line:u});continue}if(m.indent>f){do c.pop(),m=c[c.length-1];while(m.indent>f);const v=m.endAbove-1;v-u>=1&&a.insertFirst(u,v,f)}m.indent===f?m.endAbove=u:c.push({indent:f,endAbove:u,line:u})}return a.toIndentRanges(o)}const foldBackground=registerColor("editor.foldBackground",{light:transparent(editorSelectionBackground,.3),dark:transparent(editorSelectionBackground,.3),hcDark:null,hcLight:null},localize(1002,"Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);registerColor("editor.foldPlaceholderForeground",{light:"#808080",dark:"#808080",hcDark:null,hcLight:null},localize(1003,"Color of the collapsed text after the first line of a folded range."));registerColor("editorGutter.foldingControlForeground",iconForeground,localize(1004,"Color of the folding control in the editor gutter."));const foldingExpandedIcon=registerIcon("folding-expanded",Codicon.chevronDown,localize(1005,"Icon for expanded ranges in the editor glyph margin.")),foldingCollapsedIcon=registerIcon("folding-collapsed",Codicon.chevronRight,localize(1006,"Icon for collapsed ranges in the editor glyph margin.")),foldingManualCollapsedIcon=registerIcon("folding-manual-collapsed",foldingCollapsedIcon,localize(1007,"Icon for manually collapsed ranges in the editor glyph margin.")),foldingManualExpandedIcon=registerIcon("folding-manual-expanded",foldingExpandedIcon,localize(1008,"Icon for manually expanded ranges in the editor glyph margin.")),foldedBackgroundMinimap={color:themeColorFromId(foldBackground),position:1},collapsed=localize(1009,"Click to expand the range."),expanded=localize(1010,"Click to collapse the range."),De=class De{constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,r){return t?De.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?e?this.showFoldingHighlights?De.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:De.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:De.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?r?this.showFoldingHighlights?De.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:De.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?De.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:De.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?r?De.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:De.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:r?De.MANUALLY_EXPANDED_VISUAL_DECORATION:De.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}};De.COLLAPSED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:collapsed,firstLineDecorationClassName:ThemeIcon.asClassName(foldingCollapsedIcon)}),De.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:foldedBackgroundMinimap,isWholeLine:!0,linesDecorationsTooltip:collapsed,firstLineDecorationClassName:ThemeIcon.asClassName(foldingCollapsedIcon)}),De.MANUALLY_COLLAPSED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:collapsed,firstLineDecorationClassName:ThemeIcon.asClassName(foldingManualCollapsedIcon)}),De.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,linesDecorationsTooltip:collapsed,firstLineDecorationClassName:ThemeIcon.asClassName(foldingManualCollapsedIcon)}),De.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:collapsed}),De.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,linesDecorationsTooltip:collapsed}),De.EXPANDED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+ThemeIcon.asClassName(foldingExpandedIcon),linesDecorationsTooltip:expanded}),De.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:ThemeIcon.asClassName(foldingExpandedIcon),linesDecorationsTooltip:expanded}),De.MANUALLY_EXPANDED_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+ThemeIcon.asClassName(foldingManualExpandedIcon),linesDecorationsTooltip:expanded}),De.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=ModelDecorationOptions.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:ThemeIcon.asClassName(foldingManualExpandedIcon),linesDecorationsTooltip:expanded}),De.NO_CONTROLS_EXPANDED_RANGE_DECORATION=ModelDecorationOptions.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),De.HIDDEN_RANGE_DECORATION=ModelDecorationOptions.register({description:"folding-hidden-range-decoration",stickiness:1});let FoldingDecorationProvider=De;const foldingContext={},ID_SYNTAX_PROVIDER="syntax";class SyntaxRangeProvider{constructor(e,t,r,s,a){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=r,this.foldingRangesLimit=s,this.fallbackRangeProvider=a,this.id=ID_SYNTAX_PROVIDER,this.disposables=new DisposableStore$1,a&&this.disposables.add(a);for(const l of t)typeof l.onDidChange=="function"&&this.disposables.add(l.onDidChange(r))}compute(e){return collectSyntaxRanges(this.providers,this.editorModel,e).then(t=>{var r,s;return this.editorModel.isDisposed()?null:t?sanitizeRanges(t,this.foldingRangesLimit):(s=(r=this.fallbackRangeProvider)==null?void 0:r.compute(e))!=null?s:null})}dispose(){this.disposables.dispose()}}function collectSyntaxRanges(o,e,t){let r=null;const s=o.map((a,l)=>Promise.resolve(a.provideFoldingRanges(e,foldingContext,t)).then(c=>{if(!t.isCancellationRequested&&Array.isArray(c)){Array.isArray(r)||(r=[]);const d=e.getLineCount();for(const u of c)u.start>0&&u.end>u.start&&u.end<=d&&r.push({start:u.start,end:u.end,rank:l,kind:u.kind})}},onUnexpectedExternalError));return Promise.all(s).then(a=>r)}class RangesCollector{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,r,s){if(e>MAX_LINE_NUMBER||t>MAX_LINE_NUMBER)return;const a=this._length;this._startIndexes[a]=e,this._endIndexes[a]=t,this._nestingLevels[a]=s,this._types[a]=r,this._length++,s<30&&(this._nestingLevelCounts[s]=(this._nestingLevelCounts[s]||0)+1)}toIndentRanges(){const e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),r=new Uint32Array(this._length);for(let s=0;s<this._length;s++)t[s]=this._startIndexes[s],r[s]=this._endIndexes[s];return new FoldingRegions(t,r,this._types)}else{this._foldingRangesLimit.update(this._length,e);let t=0,r=this._nestingLevelCounts.length;for(let c=0;c<this._nestingLevelCounts.length;c++){const d=this._nestingLevelCounts[c];if(d){if(d+t>e){r=c;break}t+=d}}const s=new Uint32Array(e),a=new Uint32Array(e),l=[];for(let c=0,d=0;c<this._length;c++){const u=this._nestingLevels[c];(u<r||u===r&&t++<e)&&(s[d]=this._startIndexes[c],a[d]=this._endIndexes[c],l[d]=this._types[c],d++)}return new FoldingRegions(s,a,l)}}}function sanitizeRanges(o,e){const t=o.sort((l,c)=>{let d=l.start-c.start;return d===0&&(d=l.rank-c.rank),d}),r=new RangesCollector(e);let s;const a=[];for(const l of t)if(!s)s=l,r.add(l.start,l.end,l.kind&&l.kind.value,a.length);else if(l.start>s.start)if(l.end<=s.end)a.push(s),s=l,r.add(l.start,l.end,l.kind&&l.kind.value,a.length);else{if(l.start>s.end){do s=a.pop();while(s&&l.start>s.end);s&&a.push(s),s=l}r.add(l.start,l.end,l.kind&&l.kind.value,a.length)}return r.toIndentRanges()}var __decorate$1L=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1G=function(o,e){return function(t,r){e(t,r,o)}},FoldingController_1;const CONTEXT_FOLDING_ENABLED=new RawContextKey("foldingEnabled",!1);var xn;let FoldingController=(xn=class extends Disposable$1{static get(e){return e.getContribution(FoldingController_1.ID)}static getFoldingRangeProviders(e,t){var s,a;const r=e.foldingRangeProvider.ordered(t);return(a=(s=FoldingController_1._foldingRangeSelector)==null?void 0:s.call(FoldingController_1,r,t))!=null?a:r}constructor(e,t,r,s,a,l){super(),this.contextKeyService=t,this.languageConfigurationService=r,this.languageFeaturesService=l,this.localToDispose=this._register(new DisposableStore$1),this.editor=e,this._foldingLimitReporter=this._register(new RangesLimitReporter(e));const c=this.editor.getOptions();this._isEnabled=c.get(52),this._useFoldingProviders=c.get(53)!=="indentation",this._unfoldOnClickAfterEndOfLine=c.get(57),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=c.get(55),this.updateDebounceInfo=a.for(l.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=c.get(126),this.foldingDecorationProvider.showFoldingHighlights=c.get(54),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(d=>{if(d.hasChanged(52)&&(this._isEnabled=this.editor.getOptions().get(52),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),d.hasChanged(56)&&this.onModelChanged(),d.hasChanged(126)||d.hasChanged(54)){const u=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=u.get(126),this.foldingDecorationProvider.showFoldingHighlights=u.get(54),this.triggerFoldingModelChanged()}d.hasChanged(53)&&(this._useFoldingProviders=this.editor.getOptions().get(53)!=="indentation",this.onFoldingStrategyChanged()),d.hasChanged(57)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(57)),d.hasChanged(55)&&(this._foldingImportsByDefault=this.editor.getOptions().get(55))})),this.onModelChanged()}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),r=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:r,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.localToDispose.add(this.updateScheduler),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,r;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),(t=this.updateScheduler)==null||t.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,(r=this.rangeProvider)==null||r.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var e;(e=this.rangeProvider)==null||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 r=FoldingController_1.getFoldingRangeProviders(this.languageFeaturesService,e);r.length>0&&(this.rangeProvider=new SyntaxRangeProvider(e,r,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;(t=this.hiddenRangeModel)==null||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,r=this.getRangeProvider(e.textModel),s=this.foldingRegionPromise=createCancelablePromise(a=>r.compute(a));return s.then(a=>{if(a&&s===this.foldingRegionPromise){let l;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const u=a.setCollapsedAllOfType(FoldingRangeKind$1.Imports.value,!0);u&&(l=StableEditorScrollState.capture(this.editor),this._currentModelHasFoldedImports=u)}const c=this.editor.getSelections();e.update(a,toSelectedLines(c)),l==null||l.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 r=this.editor.getSelections();if(r&&r.length>0){const s=[];for(const a of r){const l=a.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(l)&&s.push(...t.getAllRegionsAtLine(l,c=>c.isCollapsed&&l>c.startLineNumber))}s.length&&(t.toggleCollapseState(s),this.reveal(r[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 r=!1;switch(e.target.type){case 4:{const s=e.target.detail,a=e.target.element.offsetLeft;if(s.offsetX-a<4)return;r=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const s=this.editor.getModel();if(s&&t.startColumn===s.getLineMaxColumn(t.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:r}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const r=this.mouseDownInfo.lineNumber,s=this.mouseDownInfo.iconClicked,a=e.target.range;if(!a||a.startLineNumber!==r)return;if(s){if(e.target.type!==4)return}else{const c=this.editor.getModel();if(!c||a.startColumn!==c.getLineMaxColumn(r))return}const l=t.getRegionAtLine(r);if(l&&l.startLineNumber===r){const c=l.isCollapsed;if(s||c){const d=e.event.altKey;let u=[];if(d){const g=m=>!m.containedBy(l)&&!l.containedBy(m),f=t.getRegionsInside(null,g);for(const m of f)m.isCollapsed&&u.push(m);u.length===0&&(u=f)}else{const g=e.event.middleButton||e.event.shiftKey;if(g)for(const f of t.getRegionsInside(l))f.isCollapsed===c&&u.push(f);(c||!g||u.length===0)&&u.push(l)}t.toggleCollapseState(u),this.reveal({lineNumber:r,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}},FoldingController_1=xn,xn.ID="editor.contrib.folding",xn);FoldingController=FoldingController_1=__decorate$1L([__param$1G(1,IContextKeyService),__param$1G(2,ILanguageConfigurationService),__param$1G(3,INotificationService),__param$1G(4,ILanguageFeatureDebounceService),__param$1G(5,ILanguageFeaturesService)],FoldingController);class RangesLimitReporter extends Disposable$1{constructor(e){super(),this.editor=e,this._onDidChange=this._register(new Emitter$1),this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(56)}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,r){const s=e.get(ILanguageConfigurationService),a=FoldingController.get(t);if(!a)return;const l=a.getFoldingModel();if(l)return this.reportTelemetry(e,t),l.then(c=>{if(c){this.invoke(a,c,t,r,s);const d=t.getSelection();d&&a.reveal(d.getStartPosition())}})}getSelectedLines(e){const t=e.getSelections();return t?t.map(r=>r.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(r=>r+1):this.getSelectedLines(t)}run(e,t){}}function toSelectedLines(o){return!o||o.length===0?{startsInside:()=>!1}:{startsInside(e,t){for(const r of o){const s=r.startLineNumber;if(s>=e&&s<=t)return!0}return!1}}}function foldingArgumentsConstraint(o){if(!isUndefined$2(o)){if(!isObject$3(o))return!1;const e=o;if(!isUndefined$2(e.levels)&&!isNumber$2(e.levels)||!isUndefined$2(e.direction)&&!isString$2(e.direction)||!isUndefined$2(e.selectionLines)&&(!Array.isArray(e.selectionLines)||!e.selectionLines.every(isNumber$2)))return!1}return!0}class UnfoldAction extends FoldingAction{constructor(){super({id:"editor.unfold",label:localize2(982,"Unfold"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:"Property-value pairs that can be passed through this argument:\n * 'levels': Number of levels to unfold. If not set, defaults to 1.\n * 'direction': If 'up', unfold given number of levels up otherwise unfolds down.\n * '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.\n ",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,r,s){const a=s&&s.levels||1,l=this.getLineNumbers(s,r);s&&s.direction==="up"?setCollapseStateLevelsUp(t,!1,a,l):setCollapseStateLevelsDown(t,!1,a,l)}}class UnFoldRecursivelyAction extends FoldingAction{constructor(){super({id:"editor.unfoldRecursively",label:localize2(983,"Unfold Recursively"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2142),weight:100}})}invoke(e,t,r,s){setCollapseStateLevelsDown(t,!1,Number.MAX_VALUE,this.getSelectedLines(r))}}class FoldAction extends FoldingAction{constructor(){super({id:"editor.fold",label:localize2(984,"Fold"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:"Property-value pairs that can be passed through this argument:\n * 'levels': Number of levels to fold.\n * 'direction': If 'up', folds given number of levels up otherwise folds down.\n * '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.\n If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead.\n ",constraint:foldingArgumentsConstraint,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,r,s){const a=this.getLineNumbers(s,r),l=s&&s.levels,c=s&&s.direction;typeof l!="number"&&typeof c!="string"?setCollapseStateUp(t,!0,a):c==="up"?setCollapseStateLevelsUp(t,!0,l||1,a):setCollapseStateLevelsDown(t,!0,l||1,a)}}class ToggleFoldAction extends FoldingAction{constructor(){super({id:"editor.toggleFold",label:localize2(985,"Toggle Fold"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2090),weight:100}})}invoke(e,t,r){const s=this.getSelectedLines(r);toggleCollapseState(t,1,s)}}class FoldRecursivelyAction extends FoldingAction{constructor(){super({id:"editor.foldRecursively",label:localize2(986,"Fold Recursively"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2140),weight:100}})}invoke(e,t,r){const s=this.getSelectedLines(r);setCollapseStateLevelsDown(t,!0,Number.MAX_VALUE,s)}}class ToggleFoldRecursivelyAction extends FoldingAction{constructor(){super({id:"editor.toggleFoldRecursively",label:localize2(987,"Toggle Fold Recursively"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,3114),weight:100}})}invoke(e,t,r){const s=this.getSelectedLines(r);toggleCollapseState(t,Number.MAX_VALUE,s)}}class FoldAllBlockCommentsAction extends FoldingAction{constructor(){super({id:"editor.foldAllBlockComments",label:localize2(988,"Fold All Block Comments"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2138),weight:100}})}invoke(e,t,r,s,a){if(t.regions.hasTypes())setCollapseStateForType(t,FoldingRangeKind$1.Comment.value,!0);else{const l=r.getModel();if(!l)return;const c=a.getLanguageConfiguration(l.getLanguageId()).comments;if(c&&c.blockCommentStartToken){const d=new RegExp("^\\s*"+escapeRegExpCharacters(c.blockCommentStartToken));setCollapseStateForMatchingLines(t,d,!0)}}}}class FoldAllRegionsAction extends FoldingAction{constructor(){super({id:"editor.foldAllMarkerRegions",label:localize2(989,"Fold All Regions"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2077),weight:100}})}invoke(e,t,r,s,a){if(t.regions.hasTypes())setCollapseStateForType(t,FoldingRangeKind$1.Region.value,!0);else{const l=r.getModel();if(!l)return;const c=a.getLanguageConfiguration(l.getLanguageId()).foldingRules;if(c&&c.markers&&c.markers.start){const d=new RegExp(c.markers.start);setCollapseStateForMatchingLines(t,d,!0)}}}}class UnfoldAllRegionsAction extends FoldingAction{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:localize2(990,"Unfold All Regions"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2078),weight:100}})}invoke(e,t,r,s,a){if(t.regions.hasTypes())setCollapseStateForType(t,FoldingRangeKind$1.Region.value,!1);else{const l=r.getModel();if(!l)return;const c=a.getLanguageConfiguration(l.getLanguageId()).foldingRules;if(c&&c.markers&&c.markers.start){const d=new RegExp(c.markers.start);setCollapseStateForMatchingLines(t,d,!1)}}}}class FoldAllExceptAction extends FoldingAction{constructor(){super({id:"editor.foldAllExcept",label:localize2(991,"Fold All Except Selected"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2136),weight:100}})}invoke(e,t,r){const s=this.getSelectedLines(r);setCollapseStateForRest(t,!0,s)}}class UnfoldAllExceptAction extends FoldingAction{constructor(){super({id:"editor.unfoldAllExcept",label:localize2(992,"Unfold All Except Selected"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2134),weight:100}})}invoke(e,t,r){const s=this.getSelectedLines(r);setCollapseStateForRest(t,!1,s)}}class FoldAllAction extends FoldingAction{constructor(){super({id:"editor.foldAll",label:localize2(993,"Fold All"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2069),weight:100}})}invoke(e,t,r){setCollapseStateLevelsDown(t,!0)}}class UnfoldAllAction extends FoldingAction{constructor(){super({id:"editor.unfoldAll",label:localize2(994,"Unfold All"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2088),weight:100}})}invoke(e,t,r){setCollapseStateLevelsDown(t,!1)}}const cr=class cr extends FoldingAction{getFoldingLevel(){return parseInt(this.id.substr(cr.ID_PREFIX.length))}invoke(e,t,r){setCollapseStateAtLevel(t,this.getFoldingLevel(),!0,this.getSelectedLines(r))}};cr.ID_PREFIX="editor.foldLevel",cr.ID=e=>cr.ID_PREFIX+e;let FoldLevelAction=cr;class GotoParentFoldAction extends FoldingAction{constructor(){super({id:"editor.gotoParentFold",label:localize2(995,"Go to Parent Fold"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,r){const s=this.getSelectedLines(r);if(s.length>0){const a=getParentFoldLine(s[0],t);a!==null&&r.setSelection({startLineNumber:a,startColumn:1,endLineNumber:a,endColumn:1})}}}class GotoPreviousFoldAction extends FoldingAction{constructor(){super({id:"editor.gotoPreviousFold",label:localize2(996,"Go to Previous Folding Range"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,r){const s=this.getSelectedLines(r);if(s.length>0){const a=getPreviousFoldLine(s[0],t);a!==null&&r.setSelection({startLineNumber:a,startColumn:1,endLineNumber:a,endColumn:1})}}}class GotoNextFoldAction extends FoldingAction{constructor(){super({id:"editor.gotoNextFold",label:localize2(997,"Go to Next Folding Range"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,weight:100}})}invoke(e,t,r){const s=this.getSelectedLines(r);if(s.length>0){const a=getNextFoldLine(s[0],t);a!==null&&r.setSelection({startLineNumber:a,startColumn:1,endLineNumber:a,endColumn:1})}}}class FoldRangeFromSelectionAction extends FoldingAction{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:localize2(998,"Create Folding Range from Selection"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2135),weight:100}})}invoke(e,t,r){var l;const s=[],a=r.getSelections();if(a){for(const c of a){let d=c.endLineNumber;c.endColumn===1&&--d,d>c.startLineNumber&&(s.push({startLineNumber:c.startLineNumber,endLineNumber:d,type:void 0,isCollapsed:!0,source:1}),r.setSelection({startLineNumber:c.startLineNumber,startColumn:1,endLineNumber:c.startLineNumber,endColumn:1}))}if(s.length>0){s.sort((d,u)=>d.startLineNumber-u.startLineNumber);const c=FoldingRegions.sanitizeAndMerge(t.regions,s,(l=r.getModel())==null?void 0:l.getLineCount());t.updatePost(FoldingRegions.fromFoldRanges(c))}}}}class RemoveFoldRangeFromSelectionAction extends FoldingAction{constructor(){super({id:"editor.removeManualFoldingRanges",label:localize2(999,"Remove Manual Folding Ranges"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2137),weight:100}})}invoke(e,t,r){const s=r.getSelections();if(s){const a=[];for(const l of s){const{startLineNumber:c,endLineNumber:d}=l;a.push(d>=c?{startLineNumber:c,endLineNumber:d}:{endLineNumber:d,startLineNumber:c})}t.removeManualRanges(a),e.triggerFoldingModelChanged()}}}class ToggleImportFoldAction extends FoldingAction{constructor(){super({id:"editor.toggleImportFold",label:localize2(1e3,"Toggle Import Fold"),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,weight:100}})}async invoke(e,t){const r=[],s=t.regions;for(let a=s.length-1;a>=0;a--)s.getType(a)===FoldingRangeKind$1.Imports.value&&r.push(s.toRegion(a));t.toggleCollapseState(r),e.triggerFoldingModelChanged()}}registerEditorContribution(FoldingController.ID,FoldingController,0);registerEditorAction(UnfoldAction);registerEditorAction(UnFoldRecursivelyAction);registerEditorAction(FoldAction);registerEditorAction(FoldRecursivelyAction);registerEditorAction(ToggleFoldRecursivelyAction);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);registerEditorAction(ToggleImportFoldAction);for(let o=1;o<=7;o++)registerInstantiatedEditorAction(new FoldLevelAction({id:FoldLevelAction.ID(o),label:localize2(1001,"Fold Level {0}",o),precondition:CONTEXT_FOLDING_ENABLED,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2048|21+o),weight:100}}));CommandsRegistry.registerCommand("_executeFoldingRangeProvider",async function(o,...e){const[t]=e;if(!(t instanceof URI))throw illegalArgument();const r=o.get(ILanguageFeaturesService),s=o.get(IModelService).getModel(t);if(!s)throw illegalArgument();const a=o.get(IConfigurationService);if(!a.getValue("editor.folding",{resource:t}))return[];const l=o.get(ILanguageConfigurationService),c=a.getValue("editor.foldingStrategy",{resource:t}),d={get limit(){return a.getValue("editor.foldingMaximumRegions",{resource:t})},update:(_,v)=>{}},u=new IndentRangeProvider(s,l,d);let g=u;if(c!=="indentation"){const _=FoldingController.getFoldingRangeProviders(r,s);_.length&&(g=new SyntaxRangeProvider(s,_,()=>{},d,u))}const f=await g.compute(CancellationToken.None),m=[];try{if(f)for(let _=0;_<f.length;_++){const v=f.getType(_);m.push({start:f.getStartLineNumber(_),end:f.getEndLineNumber(_),kind:v?FoldingRangeKind$1.fromValue(v):void 0})}return m}finally{g.dispose()}});class EditorFontZoomIn extends EditorAction{constructor(){super({id:"editor.action.fontZoomIn",label:localize2(1011,"Increase Editor Font Size"),precondition:void 0})}run(e,t){EditorZoom.setZoomLevel(EditorZoom.getZoomLevel()+1)}}class EditorFontZoomOut extends EditorAction{constructor(){super({id:"editor.action.fontZoomOut",label:localize2(1012,"Decrease Editor Font Size"),precondition:void 0})}run(e,t){EditorZoom.setZoomLevel(EditorZoom.getZoomLevel()-1)}}class EditorFontZoomReset extends EditorAction{constructor(){super({id:"editor.action.fontZoomReset",label:localize2(1013,"Reset Editor Font Size"),precondition:void 0})}run(e,t){EditorZoom.setZoomLevel(0)}}registerEditorAction(EditorFontZoomIn);registerEditorAction(EditorFontZoomOut);registerEditorAction(EditorFontZoomReset);class FormattingEdit{static _handleEolEdits(e,t){let r;const s=[];for(const a of t)typeof a.eol=="number"&&(r=a.eol),a.range&&typeof a.text=="string"&&s.push(a);return typeof r=="number"&&e.hasModel()&&e.getModel().pushEOL(r),s}static _isFullModelReplaceEdit(e,t){if(!e.hasModel())return!1;const r=e.getModel(),s=r.validateRange(t.range);return r.getFullModelRange().equalsRange(s)}static execute(e,t,r){r&&e.pushUndoStop();const s=StableEditorScrollState.capture(e),a=FormattingEdit._handleEolEdits(e,t);a.length===1&&FormattingEdit._isFullModelReplaceEdit(e,a[0])?e.executeEdits("formatEditsCommand",a.map(l=>EditOperation.replace(Range$2.lift(l.range),l.text))):e.executeEdits("formatEditsCommand",a.map(l=>EditOperation.replaceMove(Range$2.lift(l.range),l.text))),r&&e.pushUndoStop(),s.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))}}function getRealAndSyntheticDocumentFormattersOrdered(o,e,t){const r=[],s=new ExtensionIdentifierSet,a=o.ordered(t);for(const c of a)r.push(c),c.extensionId&&s.add(c.extensionId);const l=e.ordered(t);for(const c of l){if(c.extensionId){if(s.has(c.extensionId))continue;s.add(c.extensionId)}r.push({displayName:c.displayName,extensionId:c.extensionId,provideDocumentFormattingEdits(d,u,g){return c.provideDocumentRangeFormattingEdits(d,d.getFullModelRange(),u,g)}})}return r}const Wr=class Wr{static setFormatterSelector(e){return{dispose:Wr._selectors.unshift(e)}}static async select(e,t,r,s){if(e.length===0)return;const a=Iterable.first(Wr._selectors);if(a)return await a(e,t,r,s)}};Wr._selectors=new LinkedList;let FormattingConflicts=Wr;async function formatDocumentRangesWithSelectedProvider(o,e,t,r,s,a,l){const c=o.get(IInstantiationService),{documentRangeFormattingEditProvider:d}=o.get(ILanguageFeaturesService),u=isCodeEditor(e)?e.getModel():e,g=d.ordered(u),f=await FormattingConflicts.select(g,u,r,2);f&&(s.report(f),await c.invokeFunction(formatDocumentRangesWithProvider,f,e,t,a,l))}async function formatDocumentRangesWithProvider(o,e,t,r,s,a){var y,S;const l=o.get(IEditorWorkerService),c=o.get(ILogService),d=o.get(IAccessibilitySignalService);let u,g;isCodeEditor(t)?(u=t.getModel(),g=new EditorStateCancellationTokenSource(t,5,void 0,s)):(u=t,g=new TextModelCancellationTokenSource(t,s));const f=[];let m=0;for(const w of asArray(r).sort(Range$2.compareRangesUsingStarts))m>0&&Range$2.areIntersectingOrTouching(f[m-1],w)?f[m-1]=Range$2.fromPositions(f[m-1].getStartPosition(),w.getEndPosition()):m=f.push(w);const _=async w=>{var x,L;c.trace("[format][provideDocumentRangeFormattingEdits] (request)",(x=e.extensionId)==null?void 0:x.value,w);const E=await e.provideDocumentRangeFormattingEdits(u,w,u.getFormattingOptions(),g.token)||[];return c.trace("[format][provideDocumentRangeFormattingEdits] (response)",(L=e.extensionId)==null?void 0:L.value,E),E},v=(w,E)=>{if(!w.length||!E.length)return!1;const x=w.reduce((L,k)=>Range$2.plusRange(L,k.range),w[0].range);if(!E.some(L=>Range$2.intersectRanges(x,L.range)))return!1;for(const L of w)for(const k of E)if(Range$2.intersectRanges(L.range,k.range))return!0;return!1},b=[],C=[];try{if(typeof e.provideDocumentRangesFormattingEdits=="function"){c.trace("[format][provideDocumentRangeFormattingEdits] (request)",(y=e.extensionId)==null?void 0:y.value,f);const w=await e.provideDocumentRangesFormattingEdits(u,f,u.getFormattingOptions(),g.token)||[];c.trace("[format][provideDocumentRangeFormattingEdits] (response)",(S=e.extensionId)==null?void 0:S.value,w),C.push(w)}else{for(const w of f){if(g.token.isCancellationRequested)return!0;C.push(await _(w))}for(let w=0;w<f.length;++w)for(let E=w+1;E<f.length;++E){if(g.token.isCancellationRequested)return!0;if(v(C[w],C[E])){const x=Range$2.plusRange(f[w],f[E]),L=await _(x);f.splice(E,1),f.splice(w,1),f.push(x),C.splice(E,1),C.splice(w,1),C.push(L),w=0,E=0}}}for(const w of C){if(g.token.isCancellationRequested)return!0;const E=await l.computeMoreMinimalEdits(u.uri,w);E&&b.push(...E)}if(g.token.isCancellationRequested)return!0}finally{g.dispose()}if(b.length===0)return!1;if(isCodeEditor(t))FormattingEdit.execute(t,b,!0),t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:w}]=b,E=new Selection$1(w.startLineNumber,w.startColumn,w.endLineNumber,w.endColumn);u.pushEditOperations([E],b.map(x=>({text:x.text,range:Range$2.lift(x.range),forceMoveMarkers:!0})),x=>{for(const{range:L}of x)if(Range$2.areIntersectingOrTouching(L,E))return[new Selection$1(L.startLineNumber,L.startColumn,L.endLineNumber,L.endColumn)];return null})}return d.playSignal(AccessibilitySignal.format,{userGesture:a}),!0}async function formatDocumentWithSelectedProvider(o,e,t,r,s,a){const l=o.get(IInstantiationService),c=o.get(ILanguageFeaturesService),d=isCodeEditor(e)?e.getModel():e,u=getRealAndSyntheticDocumentFormattersOrdered(c.documentFormattingEditProvider,c.documentRangeFormattingEditProvider,d),g=await FormattingConflicts.select(u,d,t,1);g&&(r.report(g),await l.invokeFunction(formatDocumentWithProvider,g,e,t,s,a))}async function formatDocumentWithProvider(o,e,t,r,s,a){const l=o.get(IEditorWorkerService),c=o.get(IAccessibilitySignalService);let d,u;isCodeEditor(t)?(d=t.getModel(),u=new EditorStateCancellationTokenSource(t,5,void 0,s)):(d=t,u=new TextModelCancellationTokenSource(t,s));let g;try{const f=await e.provideDocumentFormattingEdits(d,d.getFormattingOptions(),u.token);if(g=await l.computeMoreMinimalEdits(d.uri,f),u.token.isCancellationRequested)return!0}finally{u.dispose()}if(!g||g.length===0)return!1;if(isCodeEditor(t))FormattingEdit.execute(t,g,r!==2),r!==2&&t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:f}]=g,m=new Selection$1(f.startLineNumber,f.startColumn,f.endLineNumber,f.endColumn);d.pushEditOperations([m],g.map(_=>({text:_.text,range:Range$2.lift(_.range),forceMoveMarkers:!0})),_=>{for(const{range:v}of _)if(Range$2.areIntersectingOrTouching(v,m))return[new Selection$1(v.startLineNumber,v.startColumn,v.endLineNumber,v.endColumn)];return null})}return c.playSignal(AccessibilitySignal.format,{userGesture:a}),!0}async function getDocumentRangeFormattingEditsUntilResult(o,e,t,r,s,a){const l=e.documentRangeFormattingEditProvider.ordered(t);for(const c of l){const d=await Promise.resolve(c.provideDocumentRangeFormattingEdits(t,r,s,a)).catch(onUnexpectedExternalError);if(isNonEmptyArray(d))return await o.computeMoreMinimalEdits(t.uri,d)}}async function getDocumentFormattingEditsUntilResult(o,e,t,r,s){const a=getRealAndSyntheticDocumentFormattersOrdered(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const l of a){const c=await Promise.resolve(l.provideDocumentFormattingEdits(t,r,s)).catch(onUnexpectedExternalError);if(isNonEmptyArray(c))return await o.computeMoreMinimalEdits(t.uri,c)}}function getOnTypeFormattingEdits(o,e,t,r,s,a,l){const c=e.onTypeFormattingEditProvider.ordered(t);return c.length===0||c[0].autoFormatTriggerCharacters.indexOf(s)<0?Promise.resolve(void 0):Promise.resolve(c[0].provideOnTypeFormattingEdits(t,r,s,a,l)).catch(onUnexpectedExternalError).then(d=>o.computeMoreMinimalEdits(t.uri,d))}CommandsRegistry.registerCommand("_executeFormatRangeProvider",async function(o,...e){const[t,r,s]=e;assertType(URI.isUri(t)),assertType(Range$2.isIRange(r));const a=o.get(ITextModelService),l=o.get(IEditorWorkerService),c=o.get(ILanguageFeaturesService),d=await a.createModelReference(t);try{return getDocumentRangeFormattingEditsUntilResult(l,c,d.object.textEditorModel,Range$2.lift(r),s,CancellationToken.None)}finally{d.dispose()}});CommandsRegistry.registerCommand("_executeFormatDocumentProvider",async function(o,...e){const[t,r]=e;assertType(URI.isUri(t));const s=o.get(ITextModelService),a=o.get(IEditorWorkerService),l=o.get(ILanguageFeaturesService),c=await s.createModelReference(t);try{return getDocumentFormattingEditsUntilResult(a,l,c.object.textEditorModel,r,CancellationToken.None)}finally{c.dispose()}});CommandsRegistry.registerCommand("_executeFormatOnTypeProvider",async function(o,...e){const[t,r,s,a]=e;assertType(URI.isUri(t)),assertType(Position$1.isIPosition(r)),assertType(typeof s=="string");const l=o.get(ITextModelService),c=o.get(IEditorWorkerService),d=o.get(ILanguageFeaturesService),u=await l.createModelReference(t);try{return getOnTypeFormattingEdits(c,d,u.object.textEditorModel,Position$1.lift(r),s,a,CancellationToken.None)}finally{u.dispose()}});var __decorate$1K=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1F=function(o,e){return function(t,r){e(t,r,o)}},vr;let FormatOnType=(vr=class{constructor(e,t,r,s){this._editor=e,this._languageFeaturesService=t,this._workerService=r,this._accessibilitySignalService=s,this._disposables=new DisposableStore$1,this._sessionDisposables=new DisposableStore$1,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(a=>{a.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(65)||!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const r=new CharacterSet;for(const s of t.autoFormatTriggerCharacters)r.add(s.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(s=>{const a=s.charCodeAt(s.length-1);r.has(a)&&this._trigger(String.fromCharCode(a))}))}_trigger(e){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),r=this._editor.getPosition(),s=new CancellationTokenSource$1,a=this._editor.onDidChangeModelContent(l=>{if(l.isFlush){s.cancel(),a.dispose();return}for(let c=0,d=l.changes.length;c<d;c++)if(l.changes[c].range.endLineNumber<=r.lineNumber){s.cancel(),a.dispose();return}});getOnTypeFormattingEdits(this._workerService,this._languageFeaturesService,t,r,e,t.getFormattingOptions(),s.token).then(l=>{s.token.isCancellationRequested||isNonEmptyArray(l)&&(this._accessibilitySignalService.playSignal(AccessibilitySignal.format,{userGesture:!1}),FormattingEdit.execute(this._editor,l,!0))}).finally(()=>{a.dispose()})}},vr.ID="editor.contrib.autoFormat",vr);FormatOnType=__decorate$1K([__param$1F(1,ILanguageFeaturesService),__param$1F(2,IEditorWorkerService),__param$1F(3,IAccessibilitySignalService)],FormatOnType);var Cr;let FormatOnPaste=(Cr=class{constructor(e,t,r){this.editor=e,this._languageFeaturesService=t,this._instantiationService=r,this._callOnDispose=new DisposableStore$1,this._callOnModel=new DisposableStore$1,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(64)&&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,!1).catch(onUnexpectedError))}},Cr.ID="editor.contrib.formatOnPaste",Cr);FormatOnPaste=__decorate$1K([__param$1F(1,ILanguageFeaturesService),__param$1F(2,IInstantiationService)],FormatOnPaste);class FormatDocumentAction extends EditorAction{constructor(){super({id:"editor.action.formatDocument",label:localize2(1014,"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}})}async run(e,t){if(t.hasModel()){const r=e.get(IInstantiationService);await e.get(IEditorProgressService).showWhile(r.invokeFunction(formatDocumentWithSelectedProvider,t,1,Progress.None,CancellationToken.None,!0),250)}}}class FormatSelectionAction extends EditorAction{constructor(){super({id:"editor.action.formatSelection",label:localize2(1015,"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}})}async run(e,t){if(!t.hasModel())return;const r=e.get(IInstantiationService),s=t.getModel(),a=t.getSelections().map(c=>c.isEmpty()?new Range$2(c.startLineNumber,1,c.startLineNumber,s.getLineMaxColumn(c.startLineNumber)):c);await e.get(IEditorProgressService).showWhile(r.invokeFunction(formatDocumentRangesWithSelectedProvider,t,a,1,Progress.None,CancellationToken.None,!0),250)}}registerEditorContribution(FormatOnType.ID,FormatOnType,2);registerEditorContribution(FormatOnPaste.ID,FormatOnPaste,2);registerEditorAction(FormatDocumentAction);registerEditorAction(FormatSelectionAction);CommandsRegistry.registerCommand("editor.action.format",async o=>{const e=o.get(ICodeEditorService).getFocusedCodeEditor();if(!e||!e.hasModel())return;const t=o.get(ICommandService);e.getSelection().isEmpty()?await t.executeCommand("editor.action.formatDocument"):await t.executeCommand("editor.action.formatSelection")});var __decorate$1J=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1E=function(o,e){return function(t,r){e(t,r,o)}};class TreeElement{remove(){var e;(e=this.parent)==null||e.children.delete(this.id)}static findId(e,t){let r;typeof e=="string"?r="".concat(t.id,"/").concat(e):(r="".concat(t.id,"/").concat(e.name),t.children.get(r)!==void 0&&(r="".concat(t.id,"/").concat(e.name,"_").concat(e.range.startLineNumber,"_").concat(e.range.startColumn)));let s=r;for(let a=0;t.children.get(s)!==void 0;a++)s="".concat(r,"_").concat(a);return s}static empty(e){return e.children.size===0}}class OutlineElement extends TreeElement{constructor(e,t,r){super(),this.id=e,this.parent=t,this.symbol=r,this.children=new Map}}class OutlineGroup extends TreeElement{constructor(e,t,r,s){super(),this.id=e,this.parent=t,this.label=r,this.order=s,this.children=new Map}}class OutlineModel extends TreeElement{static create(e,t,r){const s=new CancellationTokenSource$1(r),a=new OutlineModel(t.uri),l=e.ordered(t),c=l.map((u,g)=>{var _;const f=TreeElement.findId("provider_".concat(g),a),m=new OutlineGroup(f,a,(_=u.displayName)!=null?_:"Unknown Outline Provider",g);return Promise.resolve(u.provideDocumentSymbols(t,s.token)).then(v=>{for(const b of v||[])OutlineModel._makeOutlineElement(b,m);return m},v=>(onUnexpectedExternalError(v),m)).then(v=>{TreeElement.empty(v)?v.remove():a._groups.set(f,v)})}),d=e.onDidChange(()=>{const u=e.ordered(t);equals$2(u,l)||s.cancel()});return Promise.all(c).then(()=>s.token.isCancellationRequested&&!r.isCancellationRequested?OutlineModel.create(e,t,r):a._compact()).finally(()=>{s.dispose(),d.dispose(),s.dispose()})}static _makeOutlineElement(e,t){const r=TreeElement.findId(e,t),s=new OutlineElement(r,t,e);if(e.children)for(const a of e.children)OutlineModel._makeOutlineElement(a,s);t.children.set(s.id,s)}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,r]of this._groups)r.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[,r]of t.children)r.parent=this,this.children.set(r.id,r)}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(),r=>r.symbol));return e.sort((t,r)=>Range$2.compareRangesUsingStarts(t.range,r.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return OutlineModel._flattenDocumentSymbols(t,e,""),t.sort((r,s)=>Position$1.compare(Range$2.getStartPosition(r.range),Range$2.getStartPosition(s.range))||Position$1.compare(Range$2.getEndPosition(s.range),Range$2.getEndPosition(r.range)))}static _flattenDocumentSymbols(e,t,r){for(const s of t)e.push({kind:s.kind,tags:s.tags,name:s.name,detail:s.detail,containerName:s.containerName||r,range:s.range,selectionRange:s.selectionRange,children:void 0}),s.children&&OutlineModel._flattenDocumentSymbols(e,s.children,s.name)}}const IOutlineModelService=createDecorator("IOutlineModelService");let OutlineModelService=class{constructor(e,t,r){this._languageFeaturesService=e,this._disposables=new DisposableStore$1,this._cache=new LRUCache(15,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(r.onModelRemoved(s=>{this._cache.delete(s.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(e,t){const r=this._languageFeaturesService.documentSymbolProvider,s=r.ordered(e);let a=this._cache.get(e.id);if(!a||a.versionId!==e.getVersionId()||!equals$2(a.provider,s)){const c=new CancellationTokenSource$1;a={versionId:e.getVersionId(),provider:s,promiseCnt:0,source:c,promise:OutlineModel.create(r,e,c.token),model:void 0},this._cache.set(e.id,a);const d=Date.now();a.promise.then(u=>{a.model=u,this._debounceInformation.update(e,Date.now()-d)}).catch(u=>{this._cache.delete(e.id)})}if(a.model)return a.model;a.promiseCnt+=1;const l=t.onCancellationRequested(()=>{--a.promiseCnt===0&&(a.source.cancel(),this._cache.delete(e.id))});try{return await a.promise}finally{l.dispose()}}};OutlineModelService=__decorate$1J([__param$1E(0,ILanguageFeaturesService),__param$1E(1,ILanguageFeatureDebounceService),__param$1E(2,IModelService)],OutlineModelService);registerSingleton(IOutlineModelService,OutlineModelService,1);CommandsRegistry.registerCommand("_executeDocumentSymbolProvider",async function(o,...e){const[t]=e;assertType(URI.isUri(t));const r=o.get(IOutlineModelService),a=await o.get(ITextModelService).createModelReference(t);try{return(await r.getOrCreate(a.object.textEditorModel,CancellationToken.None)).getTopLevelSymbols()}finally{a.dispose()}});const AccessibleViewRegistry=new class{constructor(){this._implementations=[]}register(e){return this._implementations.push(e),{dispose:()=>{const t=this._implementations.indexOf(e);t!==-1&&this._implementations.splice(t,1)}}}getImplementations(){return this._implementations}};var __decorate$1I=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1D=function(o,e){return function(t,r){e(t,r,o)}};function hotClassGetOriginalInstance(o){return o instanceof BaseClass$1?o._instance:o}let BaseClass$1=class{constructor(e){this.instantiationService=e}init(...e){}};function wrapInHotClass1(o){return o.get()}let BaseClass1$1=class extends BaseClass$1{constructor(e,t){super(t),this.init(e)}};BaseClass1$1=__decorate$1I([__param$1D(1,IInstantiationService)],BaseClass1$1);class ValidatorBase{validateOrThrow(e){const t=this.validate(e);if(t.error)throw new Error(t.error.message);return t.content}}class TypeofValidator extends ValidatorBase{constructor(e){super(),this.type=e}validate(e){return typeof e!==this.type?{content:void 0,error:{message:"Expected ".concat(this.type,", but got ").concat(typeof e)}}:{content:e,error:void 0}}getJSONSchema(){return{type:this.type}}}const vStringValidator=new TypeofValidator("string");function vString(){return vStringValidator}new TypeofValidator("number");const vBooleanValidator=new TypeofValidator("boolean");function vBoolean(){return vBooleanValidator}new TypeofValidator("object");class UndefinedValidator extends ValidatorBase{validate(e){return e!==void 0?{content:void 0,error:{message:"Expected undefined, but got ".concat(typeof e)}}:{content:void 0,error:void 0}}getJSONSchema(){return{}}}function vUndefined(){return new UndefinedValidator}class Optional{constructor(e){this.validator=e}}function vOptionalProp(o){return new Optional(o)}class ObjValidator extends ValidatorBase{constructor(e){super(),this.properties=e}validate(e){if(typeof e!="object"||e===null)return{content:void 0,error:{message:"Expected object"}};const t={};for(const r in this.properties){const s=this.properties[r],a=e[r],l=s instanceof Optional,c=l?s.validator:s;if(l&&a===void 0)continue;const{content:d,error:u}=c.validate(a);if(u)return{content:void 0,error:{message:"Error in property '".concat(r,"': ").concat(u.message)}};t[r]=d}return{content:t,error:void 0}}getJSONSchema(){const e=[],t={};for(const[s,a]of Object.entries(this.properties)){const l=a instanceof Optional,c=l?a.validator:a;t[s]=c.getJSONSchema(),l||e.push(s)}return{type:"object",properties:t,...e.length>0?{required:e}:{}}}}function vObj(o){return new ObjValidator(o)}class UnionValidator extends ValidatorBase{constructor(e){super(),this.validators=e}validate(e){let t;for(const r of this.validators){const{content:s,error:a}=r.validate(e);if(!a)return{content:s,error:void 0};t=a}return{content:void 0,error:t}}getJSONSchema(){return{oneOf:mapFilter(this.validators,e=>{if(!(e instanceof UndefinedValidator))return e.getJSONSchema()})}}}function vUnion(...o){return new UnionValidator(o)}class UseRefSchemaValidator extends ValidatorBase{constructor(e,t){super(),this._ref=e,this._validator=t}validate(e){return this._validator.validate(e)}getJSONSchema(){return{$ref:this._ref}}}function vWithJsonSchemaRef(o,e){return new UseRefSchemaValidator(o,e)}const Context$2={Visible:historyNavigationVisible,HasFocusedSuggestion:new RawContextKey("suggestWidgetHasFocusedSuggestion",!1,localize(1455,"Whether any suggestion is focused")),DetailsVisible:new RawContextKey("suggestWidgetDetailsVisible",!1,localize(1456,"Whether suggestion details are visible")),MultipleSuggestions:new RawContextKey("suggestWidgetMultipleSuggestions",!1,localize(1457,"Whether there are multiple suggestions to pick from")),MakesTextEdit:new RawContextKey("suggestionMakesTextEdit",!0,localize(1458,"Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new RawContextKey("acceptSuggestionOnEnter",!0,localize(1459,"Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new RawContextKey("suggestionHasInsertAndReplaceRange",!1,localize(1460,"Whether the current suggestion has insert and replace behaviour")),InsertMode:new RawContextKey("suggestionInsertMode",void 0,{type:"string",description:localize(1461,"Whether the default behaviour is to insert or replace")}),CanResolve:new RawContextKey("suggestionCanResolve",!1,localize(1462,"Whether the current suggestion supports to resolve further details"))},suggestWidgetStatusbarMenu=new MenuId("suggestWidgetStatusBar");class CompletionItem{constructor(e,t,r,s){var a;this.position=e,this.completion=t,this.container=r,this.provider=s,this.isInvalid=!1,this.score=FuzzyScore.Default,this.distance=0,this.textLabel=typeof t.label=="string"?t.label:(a=t.label)==null?void 0:a.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 s.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(e){if(!this._resolveCache){const t=e.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),r=new StopWatch(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(s=>{Object.assign(this.completion,s),this._resolveDuration=r.elapsed()},s=>{isCancellationError(s)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{t.dispose()})}return this._resolveCache}}const qo=class qo{constructor(e=2,t=new Set,r=new Set,s=new Map,a=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=r,this.providerItemsToReuse=s,this.showDeprecated=a}};qo.default=new qo;let CompletionOptions=qo;class CompletionItemModel{constructor(e,t,r,s){this.items=e,this.needsClipboard=t,this.durations=r,this.disposable=s}}async function provideSuggestionItems(o,e,t,r=CompletionOptions.default,s={triggerKind:0},a=CancellationToken.None){const l=new StopWatch;t=t.clone();const c=e.getWordAtPosition(t),d=c?new Range$2(t.lineNumber,c.startColumn,t.lineNumber,c.endColumn):Range$2.fromPositions(t),u={replace:d,insert:d.setEndPosition(t.lineNumber,t.column)},g=[],f=new DisposableStore$1,m=[];let _=!1;const v=(C,y,S)=>{var E,x,L;let w=!1;if(!y)return w;for(const k of y.suggestions)if(!r.kindFilter.has(k.kind)){if(!r.showDeprecated&&((E=k==null?void 0:k.tags)!=null&&E.includes(1)))continue;k.range||(k.range=u),k.sortText||(k.sortText=typeof k.label=="string"?k.label:k.label.label),!_&&k.insertTextRules&&k.insertTextRules&4&&(_=SnippetParser.guessNeedsClipboard(k.insertText)),g.push(new CompletionItem(t,k,y,C)),w=!0}return isDisposable(y)&&f.add(y),m.push({providerName:(x=C._debugDisplayName)!=null?x:"unknown_provider",elapsedProvider:(L=y.duration)!=null?L:-1,elapsedOverall:S.elapsed()}),w},b=(async()=>{})();for(const C of o.orderedGroups(e)){let y=!1;if(await Promise.all(C.map(async S=>{if(r.providerItemsToReuse.has(S)){const w=r.providerItemsToReuse.get(S);w.forEach(E=>g.push(E)),y=y||w.length>0;return}if(!(r.providerFilter.size>0&&!r.providerFilter.has(S)))try{const w=new StopWatch,E=await S.provideCompletionItems(e,t,s,a);y=v(S,E,w)||y}catch(w){onUnexpectedExternalError(w)}})),y||a.isCancellationRequested)break}return await b,a.isCancellationRequested?(f.dispose(),Promise.reject(new CancellationError)):new CompletionItemModel(g.sort(getSuggestionComparator(r.snippetSortOrder)),_,{entries:m,elapsed:l.elapsed()},f)}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===28)return-1;if(e.completion.kind===28)return 1}return defaultComparator(o,e)}function snippetDownComparator(o,e){if(o.completion.kind!==e.completion.kind){if(o.completion.kind===28)return 1;if(e.completion.kind===28)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",async(o,...e)=>{const[t,r,s,a]=e;assertType(URI.isUri(t)),assertType(Position$1.isIPosition(r)),assertType(typeof s=="string"||!s),assertType(typeof a=="number"||!a);const{completionProvider:l}=o.get(ILanguageFeaturesService),c=await o.get(ITextModelService).createModelReference(t);try{const d={incomplete:!1,suggestions:[]},u=[],g=c.object.textEditorModel.validatePosition(r),f=await provideSuggestionItems(l,c.object.textEditorModel,g,void 0,{triggerCharacter:s!=null?s:void 0,triggerKind:s?1:0});for(const m of f.items)u.length<(a!=null?a:0)&&u.push(m.resolve(CancellationToken.None)),d.incomplete=d.incomplete||m.container.incomplete,d.suggestions.push(m.completion);try{return await Promise.all(u),d}finally{setTimeout(()=>f.disposable.dispose(),100)}}finally{c.dispose()}});function showSimpleSuggestions(o,e){var t;(t=o.getContribution("editor.contrib.suggestController"))==null||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}}}const st=class st{};st.inlineSuggestionVisible=new RawContextKey("inlineSuggestionVisible",!1,localize(1192,"Whether an inline suggestion is visible")),st.inlineSuggestionHasIndentation=new RawContextKey("inlineSuggestionHasIndentation",!1,localize(1193,"Whether the inline suggestion starts with whitespace")),st.inlineSuggestionHasIndentationLessThanTabSize=new RawContextKey("inlineSuggestionHasIndentationLessThanTabSize",!0,localize(1194,"Whether the inline suggestion starts with whitespace that is less than what would be inserted by tab")),st.suppressSuggestions=new RawContextKey("inlineSuggestionSuppressSuggestions",void 0,localize(1195,"Whether suggestions should be suppressed for the current suggestion")),st.cursorBeforeGhostText=new RawContextKey("cursorBeforeGhostText",!1,localize(1196,"Whether the cursor is at ghost text")),st.cursorInIndentation=new RawContextKey("cursorInIndentation",!1,localize(1197,"Whether the cursor is in indentation")),st.hasSelection=new RawContextKey("editor.hasSelection",!1,localize(1198,"Whether the editor has a selection")),st.cursorAtInlineEdit=new RawContextKey("cursorAtInlineEdit",!1,localize(1199,"Whether the cursor is at an inline edit")),st.inlineEditVisible=new RawContextKey("inlineEditIsVisible",!1,localize(1200,"Whether an inline edit is visible")),st.tabShouldJumpToInlineEdit=new RawContextKey("tabShouldJumpToInlineEdit",!1,localize(1201,"Whether tab should jump to an inline edit.")),st.tabShouldAcceptInlineEdit=new RawContextKey("tabShouldAcceptInlineEdit",!1,localize(1202,"Whether tab should accept the inline edit.")),st.inInlineEditsPreviewEditor=new RawContextKey("inInlineEditsPreviewEditor",!0,localize(1203,"Whether the current code editor is showing an inline edits preview"));let InlineCompletionContextKeys=st;class TrimTrailingWhitespaceCommand{constructor(e,t,r){this._selection=e,this._cursors=t,this._selectionId=null,this._trimInRegexesAndStrings=r}getEditOperations(e,t){const r=trimTrailingWhitespace(e,this._cursors,this._trimInRegexesAndStrings);for(let s=0,a=r.length;s<a;s++){const l=r[s];t.addEditOperation(l.range,l.text)}this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}function trimTrailingWhitespace(o,e,t){e.sort((c,d)=>c.lineNumber===d.lineNumber?c.column-d.column:c.lineNumber-d.lineNumber);for(let c=e.length-2;c>=0;c--)e[c].lineNumber===e[c+1].lineNumber&&e.splice(c,1);const r=[];let s=0,a=0;const l=e.length;for(let c=1,d=o.getLineCount();c<=d;c++){const u=o.getLineContent(c),g=u.length+1;let f=0;if(a<l&&e[a].lineNumber===c&&(f=e[a].column,a++,f===g)||u.length===0)continue;const m=lastNonWhitespaceIndex(u);let _=0;if(m===-1)_=1;else if(m!==u.length-1)_=m+2;else continue;if(!t){if(!o.tokenization.hasAccurateTokensForLine(c))continue;const v=o.tokenization.getLineTokens(c),b=v.getStandardTokenType(v.findTokenIndexAtOffset(_));if(b===2||b===3)continue}_=Math.max(f,_),r[s++]=EditOperation.delete(new Range$2(c,_,c,g))}return r}class CopyLinesCommand{constructor(e,t,r){this._selection=e,this._isCopyingDown=t,this._noop=r||!1,this._selectionDirection=0,this._selectionId=null,this._startLineNumberDelta=0,this._endLineNumberDelta=0}getEditOperations(e,t){let r=this._selection;this._startLineNumberDelta=0,this._endLineNumberDelta=0,r.startLineNumber<r.endLineNumber&&r.endColumn===1&&(this._endLineNumberDelta=1,r=r.setEndPosition(r.endLineNumber-1,e.getLineMaxColumn(r.endLineNumber-1)));const s=[];for(let l=r.startLineNumber;l<=r.endLineNumber;l++)s.push(e.getLineContent(l));const a=s.join("\n");a===""&&this._isCopyingDown&&(this._startLineNumberDelta++,this._endLineNumberDelta++),this._noop?t.addEditOperation(new Range$2(r.endLineNumber,e.getLineMaxColumn(r.endLineNumber),r.endLineNumber+1,1),r.endLineNumber===e.getLineCount()?"":"\n"):this._isCopyingDown?t.addEditOperation(new Range$2(r.startLineNumber,1,r.startLineNumber,1),a+"\n"):t.addEditOperation(new Range$2(r.endLineNumber,e.getLineMaxColumn(r.endLineNumber),r.endLineNumber,e.getLineMaxColumn(r.endLineNumber)),"\n"+a),this._selectionId=t.trackSelection(r),this._selectionDirection=this._selection.getDirection()}computeCursorState(e,t){let r=t.getTrackedSelection(this._selectionId);if(this._startLineNumberDelta!==0||this._endLineNumberDelta!==0){let s=r.startLineNumber,a=r.startColumn,l=r.endLineNumber,c=r.endColumn;this._startLineNumberDelta!==0&&(s=s+this._startLineNumberDelta,a=1),this._endLineNumberDelta!==0&&(l=l+this._endLineNumberDelta,c=1),r=Selection$1.createWithDirection(s,a,l,c,this._selectionDirection)}return r}}function getSpaceCnt(o,e){let t=0;for(let r=0;r<o.length;r++)o.charAt(r)===" "?t+=e:t++;return t}function generateIndent(o,e,t){o=o<0?0:o;let r="";if(!t){const s=Math.floor(o/e);o=o%e;for(let a=0;a<s;a++)r+=" "}for(let s=0;s<o;s++)r+=" ";return r}var __decorate$1H=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1C=function(o,e){return function(t,r){e(t,r,o)}};let MoveLinesCommand=class{constructor(e,t,r,s){this._languageConfigurationService=s,this._selection=e,this._isMovingDown=t,this._autoIndent=r,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const r=()=>e.getLanguageId(),s=(f,m)=>e.getLanguageIdAtPosition(f,m),a=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===a){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 l=this._selection;l.startLineNumber<l.endLineNumber&&l.endColumn===1&&(this._moveEndPositionDown=!0,l=l.setEndPosition(l.endLineNumber-1,e.getLineMaxColumn(l.endLineNumber-1)));const{tabSize:c,indentSize:d,insertSpaces:u}=e.getOptions(),g=this.buildIndentConverter(c,d,u);if(l.startLineNumber===l.endLineNumber&&e.getLineMaxColumn(l.startLineNumber)===1){const f=l.startLineNumber,m=this._isMovingDown?f+1:f-1;e.getLineMaxColumn(m)===1?t.addEditOperation(new Range$2(1,1,1,1),null):(t.addEditOperation(new Range$2(f,1,f,1),e.getLineContent(m)),t.addEditOperation(new Range$2(m,1,m,e.getLineMaxColumn(m)),null)),l=new Selection$1(m,1,m,1)}else{let f,m;if(this._isMovingDown){f=l.endLineNumber+1,m=e.getLineContent(f),t.addEditOperation(new Range$2(f-1,e.getLineMaxColumn(f-1),f,e.getLineMaxColumn(f)),null);let _=m;if(this.shouldAutoIndent(e,l)){const v=this.matchEnterRule(e,g,c,f,l.startLineNumber-1);if(v!==null){const C=getLeadingWhitespace(e.getLineContent(f)),y=v+getSpaceCnt(C,c);_=generateIndent(y,c,u)+this.trimStart(m)}else{const C={tokenization:{getLineTokens:S=>S===l.startLineNumber?e.tokenization.getLineTokens(f):e.tokenization.getLineTokens(S),getLanguageId:r,getLanguageIdAtPosition:s},getLineContent:S=>S===l.startLineNumber?e.getLineContent(f):e.getLineContent(S)},y=getGoodIndentForLine(this._autoIndent,C,e.getLanguageIdAtPosition(f,1),l.startLineNumber,g,this._languageConfigurationService);if(y!==null){const S=getLeadingWhitespace(e.getLineContent(f)),w=getSpaceCnt(y,c),E=getSpaceCnt(S,c);w!==E&&(_=generateIndent(w,c,u)+this.trimStart(m))}}t.addEditOperation(new Range$2(l.startLineNumber,1,l.startLineNumber,1),_+"\n");const b=this.matchEnterRuleMovingDown(e,g,c,l.startLineNumber,f,_);if(b!==null)b!==0&&this.getIndentEditsOfMovingBlock(e,t,l,c,u,b);else{const C={tokenization:{getLineTokens:S=>S===l.startLineNumber?e.tokenization.getLineTokens(f):S>=l.startLineNumber+1&&S<=l.endLineNumber+1?e.tokenization.getLineTokens(S-1):e.tokenization.getLineTokens(S),getLanguageId:r,getLanguageIdAtPosition:s},getLineContent:S=>S===l.startLineNumber?_:S>=l.startLineNumber+1&&S<=l.endLineNumber+1?e.getLineContent(S-1):e.getLineContent(S)},y=getGoodIndentForLine(this._autoIndent,C,e.getLanguageIdAtPosition(f,1),l.startLineNumber+1,g,this._languageConfigurationService);if(y!==null){const S=getLeadingWhitespace(e.getLineContent(l.startLineNumber)),w=getSpaceCnt(y,c),E=getSpaceCnt(S,c);if(w!==E){const x=w-E;this.getIndentEditsOfMovingBlock(e,t,l,c,u,x)}}}}else t.addEditOperation(new Range$2(l.startLineNumber,1,l.startLineNumber,1),_+"\n")}else if(f=l.startLineNumber-1,m=e.getLineContent(f),t.addEditOperation(new Range$2(f,1,f+1,1),null),t.addEditOperation(new Range$2(l.endLineNumber,e.getLineMaxColumn(l.endLineNumber),l.endLineNumber,e.getLineMaxColumn(l.endLineNumber)),"\n"+m),this.shouldAutoIndent(e,l)){const _={tokenization:{getLineTokens:b=>b===f?e.tokenization.getLineTokens(l.startLineNumber):e.tokenization.getLineTokens(b),getLanguageId:r,getLanguageIdAtPosition:s},getLineContent:b=>b===f?e.getLineContent(l.startLineNumber):e.getLineContent(b)},v=this.matchEnterRule(e,g,c,l.startLineNumber,l.startLineNumber-2);if(v!==null)v!==0&&this.getIndentEditsOfMovingBlock(e,t,l,c,u,v);else{const b=getGoodIndentForLine(this._autoIndent,_,e.getLanguageIdAtPosition(l.startLineNumber,1),f,g,this._languageConfigurationService);if(b!==null){const C=getLeadingWhitespace(e.getLineContent(l.startLineNumber)),y=getSpaceCnt(b,c),S=getSpaceCnt(C,c);if(y!==S){const w=y-S;this.getIndentEditsOfMovingBlock(e,t,l,c,u,w)}}}}}this._selectionId=t.trackSelection(l)}buildIndentConverter(e,t,r){return{shiftIndent:s=>ShiftCommand.shiftIndent(s,s.length+1,e,t,r),unshiftIndent:s=>ShiftCommand.unshiftIndent(s,s.length+1,e,t,r)}}parseEnterResult(e,t,r,s,a){if(a){let l=a.indentation;a.indentAction===IndentAction$1.None||a.indentAction===IndentAction$1.Indent?l=a.indentation+a.appendText:a.indentAction===IndentAction$1.IndentOutdent?l=a.indentation:a.indentAction===IndentAction$1.Outdent&&(l=t.unshiftIndent(a.indentation)+a.appendText);const c=e.getLineContent(s);if(this.trimStart(c).indexOf(this.trimStart(l))>=0){const d=getLeadingWhitespace(e.getLineContent(s));let u=getLeadingWhitespace(l);const g=getIndentMetadata(e,s,this._languageConfigurationService);g!==null&&g&2&&(u=t.unshiftIndent(u));const f=getSpaceCnt(u,r),m=getSpaceCnt(d,r);return f-m}}return null}matchEnterRuleMovingDown(e,t,r,s,a,l){if(lastNonWhitespaceIndex(l)>=0){const c=e.getLineMaxColumn(a),d=getEnterAction(this._autoIndent,e,new Range$2(a,c,a,c),this._languageConfigurationService);return this.parseEnterResult(e,t,r,s,d)}else{let c=s-1;for(;c>=1;){const g=e.getLineContent(c);if(lastNonWhitespaceIndex(g)>=0)break;c--}if(c<1||s>e.getLineCount())return null;const d=e.getLineMaxColumn(c),u=getEnterAction(this._autoIndent,e,new Range$2(c,d,c,d),this._languageConfigurationService);return this.parseEnterResult(e,t,r,s,u)}}matchEnterRule(e,t,r,s,a,l){let c=a;for(;c>=1;){let g;if(c===a&&l!==void 0?g=l:g=e.getLineContent(c),lastNonWhitespaceIndex(g)>=0)break;c--}if(c<1||s>e.getLineCount())return null;const d=e.getLineMaxColumn(c),u=getEnterAction(this._autoIndent,e,new Range$2(c,d,c,d),this._languageConfigurationService);return this.parseEnterResult(e,t,r,s,u)}trimStart(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const r=e.getLanguageIdAtPosition(t.startLineNumber,1),s=e.getLanguageIdAtPosition(t.endLineNumber,1);return!(r!==s||this._languageConfigurationService.getLanguageConfiguration(r).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,r,s,a,l){for(let c=r.startLineNumber;c<=r.endLineNumber;c++){const d=e.getLineContent(c),u=getLeadingWhitespace(d),f=getSpaceCnt(u,s)+l,m=generateIndent(f,s,a);m!==u&&(t.addEditOperation(new Range$2(c,1,c,u.length+1),m),c===r.endLineNumber&&r.endColumn<=u.length+1&&m===""&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let r=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(r=r.setEndPosition(r.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&r.startLineNumber<r.endLineNumber&&(r=r.setEndPosition(r.endLineNumber,2)),r}};MoveLinesCommand=__decorate$1H([__param$1C(3,ILanguageConfigurationService)],MoveLinesCommand);const oa=class oa{constructor(e,t){this.selection=e,this.descending=t,this.selectionId=null}getEditOperations(e,t){const r=sortLines(e,this.selection,this.descending);r&&t.addEditOperation(r.range,r.text),this.selectionId=t.trackSelection(this.selection)}computeCursorState(e,t){return t.getTrackedSelection(this.selectionId)}static canRun(e,t,r){if(e===null)return!1;const s=getSortData(e,t,r);if(!s)return!1;for(let a=0,l=s.before.length;a<l;a++)if(s.before[a]!==s.after[a])return!0;return!1}};oa._COLLATOR=safeIntl.Collator();let SortLinesCommand=oa;function getSortData(o,e,t){const r=e.startLineNumber;let s=e.endLineNumber;if(e.endColumn===1&&s--,r>=s)return null;const a=[];for(let c=r;c<=s;c++)a.push(o.getLineContent(c));let l=a.slice(0);return l.sort(SortLinesCommand._COLLATOR.value.compare),t===!0&&(l=l.reverse()),{startLineNumber:r,endLineNumber:s,before:a,after:l}}function sortLines(o,e,t){const r=getSortData(o,e,t);return r?EditOperation.replace(new Range$2(r.startLineNumber,1,r.endLineNumber,o.getLineMaxColumn(r.endLineNumber)),r.after.join("\n")):null}class AbstractCopyLinesAction extends EditorAction{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const r=t.getSelections().map((l,c)=>({selection:l,index:c,ignore:!1}));r.sort((l,c)=>Range$2.compareRangesUsingStarts(l.selection,c.selection));let s=r[0];for(let l=1;l<r.length;l++){const c=r[l];s.selection.endLineNumber===c.selection.startLineNumber&&(s.index<c.index?c.ignore=!0:(s.ignore=!0,s=c))}const a=[];for(const l of r)a.push(new CopyLinesCommand(l.selection,this.down,l.ignore));t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}class CopyLinesUpAction extends AbstractCopyLinesAction{constructor(){super(!1,{id:"editor.action.copyLinesUpAction",label:localize2(1249,"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(1244,"&&Copy Line Up"),order:1},canTriggerInlineEdits:!0})}}class CopyLinesDownAction extends AbstractCopyLinesAction{constructor(){super(!0,{id:"editor.action.copyLinesDownAction",label:localize2(1250,"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(1245,"Co&&py Line Down"),order:2},canTriggerInlineEdits:!0})}}class DuplicateSelectionAction extends EditorAction{constructor(){super({id:"editor.action.duplicateSelection",label:localize2(1251,"Duplicate Selection"),precondition:EditorContextKeys.writable,menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"2_line",title:localize(1246,"&&Duplicate Selection"),order:5},canTriggerInlineEdits:!0})}run(e,t,r){if(!t.hasModel())return;const s=[],a=t.getSelections(),l=t.getModel();for(const c of a)if(c.isEmpty())s.push(new CopyLinesCommand(c,!0));else{const d=new Selection$1(c.endLineNumber,c.endColumn,c.endLineNumber,c.endColumn);s.push(new ReplaceCommandThatSelectsText(d,l.getValueInRange(c)))}t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class AbstractMoveLinesAction extends EditorAction{constructor(e,t){super(t),this.down=e}run(e,t){const r=e.get(ILanguageConfigurationService),s=[],a=t.getSelections()||[],l=t.getOption(16);for(const c of a)s.push(new MoveLinesCommand(c,this.down,l,r));t.pushUndoStop(),t.executeCommands(this.id,s),t.pushUndoStop()}}class MoveLinesUpAction extends AbstractMoveLinesAction{constructor(){super(!1,{id:"editor.action.moveLinesUpAction",label:localize2(1252,"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(1247,"Mo&&ve Line Up"),order:3},canTriggerInlineEdits:!0})}}class MoveLinesDownAction extends AbstractMoveLinesAction{constructor(){super(!0,{id:"editor.action.moveLinesDownAction",label:localize2(1253,"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(1248,"Move &&Line Down"),order:4},canTriggerInlineEdits:!0})}}class AbstractSortLinesAction extends EditorAction{constructor(e,t){super(t),this.descending=e}run(e,t){if(!t.hasModel())return;const r=t.getModel();let s=t.getSelections();s.length===1&&s[0].isEmpty()&&(s=[new Selection$1(1,1,r.getLineCount(),r.getLineMaxColumn(r.getLineCount()))]);for(const l of s)if(!SortLinesCommand.canRun(t.getModel(),l,this.descending))return;const a=[];for(let l=0,c=s.length;l<c;l++)a[l]=new SortLinesCommand(s[l],this.descending);t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}class SortLinesAscendingAction extends AbstractSortLinesAction{constructor(){super(!1,{id:"editor.action.sortLinesAscending",label:localize2(1254,"Sort Lines Ascending"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}}class SortLinesDescendingAction extends AbstractSortLinesAction{constructor(){super(!0,{id:"editor.action.sortLinesDescending",label:localize2(1255,"Sort Lines Descending"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}}class DeleteDuplicateLinesAction extends EditorAction{constructor(){super({id:"editor.action.removeDuplicateLines",label:localize2(1256,"Delete Duplicate Lines"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;const r=t.getModel();if(r.getLineCount()===1&&r.getLineMaxColumn(1)===1)return;const s=[],a=[];let l=0,c=!0,d=t.getSelections();d.length===1&&d[0].isEmpty()&&(d=[new Selection$1(1,1,r.getLineCount(),r.getLineMaxColumn(r.getLineCount()))],c=!1);for(const u of d){const g=new Set,f=[];for(let b=u.startLineNumber;b<=u.endLineNumber;b++){const C=r.getLineContent(b);g.has(C)||(f.push(C),g.add(C))}const m=new Selection$1(u.startLineNumber,1,u.endLineNumber,r.getLineMaxColumn(u.endLineNumber)),_=u.startLineNumber-l,v=new Selection$1(_,1,_+f.length-1,f[f.length-1].length);s.push(EditOperation.replace(m,f.join("\n"))),a.push(v),l+=u.endLineNumber-u.startLineNumber+1-f.length}t.pushUndoStop(),t.executeEdits(this.id,s,c?a:void 0),t.pushUndoStop()}}class ReverseLinesAction extends EditorAction{constructor(){super({id:"editor.action.reverseLines",label:localize2(1257,"Reverse lines"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;const r=t.getModel(),s=t.getSelections();let a=s;a.length===1&&a[0].isEmpty()&&(a=[new Selection$1(1,1,r.getLineCount(),r.getLineMaxColumn(r.getLineCount()))]);const l=[],c=[];for(let d=0;d<a.length;d++){const u=a[d],g=s[d];let f=u.endLineNumber;u.startLineNumber<u.endLineNumber&&u.endColumn===1&&f--;let m=new Range$2(u.startLineNumber,1,f,r.getLineMaxColumn(f));f===r.getLineCount()&&r.getLineContent(m.endLineNumber)===""&&(m=m.setEndPosition(m.endLineNumber-1,r.getLineMaxColumn(m.endLineNumber-1)));const _=[];for(let y=m.endLineNumber;y>=m.startLineNumber;y--)_.push(r.getLineContent(y));const v=EditOperation.replace(m,_.join("\n"));l.push(v);const b=function(y){return y<=m.endLineNumber?m.endLineNumber-y+m.startLineNumber:y},C=function(y){if(y.isEmpty())return new Selection$1(b(y.positionLineNumber),y.positionColumn,b(y.positionLineNumber),y.positionColumn);{const S=b(y.selectionStartLineNumber),w=b(y.positionLineNumber),E=y.selectionStartColumn,x=y.positionColumn;return new Selection$1(S,E,w,x)}};c.push(C(g))}t.pushUndoStop(),t.executeEdits(this.id,l,c),t.pushUndoStop()}}const Yo=class Yo extends EditorAction{constructor(){super({id:Yo.ID,label:localize2(1258,"Trim Trailing Whitespace"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2102),weight:100}})}run(e,t,r){let s=[];r.reason==="auto-save"&&(s=(t.getSelections()||[]).map(g=>new Position$1(g.positionLineNumber,g.positionColumn)));const a=t.getSelection();if(a===null)return;const l=e.get(IConfigurationService),c=t.getModel(),d=l.getValue("files.trimTrailingWhitespaceInRegexAndStrings",{overrideIdentifier:c==null?void 0:c.getLanguageId(),resource:c==null?void 0:c.uri}),u=new TrimTrailingWhitespaceCommand(a,s,d);t.pushUndoStop(),t.executeCommands(this.id,[u]),t.pushUndoStop()}};Yo.ID="editor.action.trimTrailingWhitespace";let TrimTrailingWhitespaceAction=Yo;class DeleteLinesAction extends EditorAction{constructor(){super({id:"editor.action.deleteLines",label:localize2(1259,"Delete Line"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:3113,weight:100},canTriggerInlineEdits:!0})}run(e,t){if(!t.hasModel())return;const r=this._getLinesToRemove(t),s=t.getModel();if(s.getLineCount()===1&&s.getLineMaxColumn(1)===1)return;let a=0;const l=[],c=[];for(let d=0,u=r.length;d<u;d++){const g=r[d];let f=g.startLineNumber,m=g.endLineNumber,_=1,v=s.getLineMaxColumn(m);m<s.getLineCount()?(m+=1,v=1):f>1&&(f-=1,_=s.getLineMaxColumn(f)),l.push(EditOperation.replace(new Selection$1(f,_,m,v),"")),c.push(new Selection$1(f-a,g.positionColumn,f-a,g.positionColumn)),a+=g.endLineNumber-g.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,l,c),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map(a=>{let l=a.endLineNumber;return a.startLineNumber<a.endLineNumber&&a.endColumn===1&&(l-=1),{startLineNumber:a.startLineNumber,selectionStartColumn:a.selectionStartColumn,endLineNumber:l,positionColumn:a.positionColumn}});t.sort((a,l)=>a.startLineNumber===l.startLineNumber?a.endLineNumber-l.endLineNumber:a.startLineNumber-l.startLineNumber);const r=[];let s=t[0];for(let a=1;a<t.length;a++)s.endLineNumber+1>=t[a].startLineNumber?s.endLineNumber=t[a].endLineNumber:(r.push(s),s=t[a]);return r.push(s),r}}class IndentLinesAction extends EditorAction{constructor(){super({id:"editor.action.indentLines",label:localize2(1260,"Indent Line"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2142,weight:100},canTriggerInlineEdits:!0})}run(e,t){const r=t._getViewModel();r&&(t.pushUndoStop(),t.executeCommands(this.id,TypeOperations.indent(r.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class OutdentLinesAction extends EditorAction{constructor(){super({id:"editor.action.outdentLines",label:localize2(1261,"Outdent Line"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2140,weight:100},canTriggerInlineEdits:!0})}run(e,t){CoreEditingCommands.Outdent.runEditorCommand(e,t,null)}}const Xo=class Xo extends EditorAction{constructor(){super({id:Xo.ID,label:localize2(1262,"Insert Line Above"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3075,weight:100},canTriggerInlineEdits:!0})}run(e,t){const r=t._getViewModel();r&&(t.pushUndoStop(),t.executeCommands(this.id,EnterOperation.lineInsertBefore(r.cursorConfig,t.getModel(),t.getSelections())))}};Xo.ID="editor.action.insertLineBefore";let InsertLineBeforeAction=Xo;const Zo=class Zo extends EditorAction{constructor(){super({id:Zo.ID,label:localize2(1263,"Insert Line Below"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:2051,weight:100},canTriggerInlineEdits:!0})}run(e,t){const r=t._getViewModel();r&&(t.pushUndoStop(),t.executeCommands(this.id,EnterOperation.lineInsertAfter(r.cursorConfig,t.getModel(),t.getSelections())))}};Zo.ID="editor.action.insertLineAfter";let InsertLineAfterAction=Zo;class AbstractDeleteAllToBoundaryAction extends EditorAction{run(e,t){if(!t.hasModel())return;const r=t.getSelection(),s=this._getRangesToDelete(t),a=[];for(let d=0,u=s.length-1;d<u;d++){const g=s[d],f=s[d+1];Range$2.intersectRanges(g,f)===null?a.push(g):s[d+1]=Range$2.plusRange(g,f)}a.push(s[s.length-1]);const l=this._getEndCursorState(r,a),c=a.map(d=>EditOperation.replace(d,""));t.pushUndoStop(),t.executeEdits(this.id,c,l),t.pushUndoStop()}}class DeleteAllLeftAction extends AbstractDeleteAllToBoundaryAction{constructor(){super({id:"deleteAllLeft",label:localize2(1264,"Delete All Left"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:2049},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(e,t){let r=null;const s=[];let a=0;return t.forEach(l=>{let c;if(l.endColumn===1&&a>0){const d=l.startLineNumber-a;c=new Selection$1(d,l.startColumn,d,l.startColumn)}else c=new Selection$1(l.startLineNumber,l.startColumn,l.startLineNumber,l.startColumn);a+=l.endLineNumber-l.startLineNumber,l.intersectRanges(e)?r=c:s.push(c)}),r&&s.unshift(r),s}_getRangesToDelete(e){const t=e.getSelections();if(t===null)return[];let r=t;const s=e.getModel();return s===null?[]:(r.sort(Range$2.compareRangesUsingStarts),r=r.map(a=>{if(a.isEmpty())if(a.startColumn===1){const l=Math.max(1,a.startLineNumber-1),c=a.startLineNumber===1?1:s.getLineLength(l)+1;return new Range$2(l,c,a.startLineNumber,1)}else return new Range$2(a.startLineNumber,1,a.startLineNumber,a.startColumn);else return new Range$2(a.startLineNumber,1,a.endLineNumber,a.endColumn)}),r)}}class DeleteAllRightAction extends AbstractDeleteAllToBoundaryAction{constructor(){super({id:"deleteAllRight",label:localize2(1265,"Delete All Right"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100},canTriggerInlineEdits:!0})}_getEndCursorState(e,t){let r=null;const s=[];for(let a=0,l=t.length,c=0;a<l;a++){const d=t[a],u=new Selection$1(d.startLineNumber-c,d.startColumn,d.startLineNumber-c,d.startColumn);d.intersectRanges(e)?r=u:s.push(u)}return r&&s.unshift(r),s}_getRangesToDelete(e){const t=e.getModel();if(t===null)return[];const r=e.getSelections();if(r===null)return[];const s=r.map(a=>{if(a.isEmpty()){const l=t.getLineMaxColumn(a.startLineNumber);return a.startColumn===l?new Range$2(a.startLineNumber,a.startColumn,a.startLineNumber+1,1):new Range$2(a.startLineNumber,a.startColumn,a.startLineNumber,l)}return a});return s.sort(Range$2.compareRangesUsingStarts),s}}class JoinLinesAction extends EditorAction{constructor(){super({id:"editor.action.joinLines",label:localize2(1266,"Join Lines"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:0,mac:{primary:296},weight:100},canTriggerInlineEdits:!0})}run(e,t){const r=t.getSelections();if(r===null)return;let s=t.getSelection();if(s===null)return;r.sort(Range$2.compareRangesUsingStarts);const a=[],l=r.reduce((m,_)=>m.isEmpty()?m.endLineNumber===_.startLineNumber?(s.equalsSelection(m)&&(s=_),_):_.startLineNumber>m.endLineNumber+1?(a.push(m),_):new Selection$1(m.startLineNumber,m.startColumn,_.endLineNumber,_.endColumn):_.startLineNumber>m.endLineNumber?(a.push(m),_):new Selection$1(m.startLineNumber,m.startColumn,_.endLineNumber,_.endColumn));a.push(l);const c=t.getModel();if(c===null)return;const d=[],u=[];let g=s,f=0;for(let m=0,_=a.length;m<_;m++){const v=a[m],b=v.startLineNumber,C=1;let y=0,S,w;const E=c.getLineLength(v.endLineNumber)-v.endColumn;if(v.isEmpty()||v.startLineNumber===v.endLineNumber){const k=v.getStartPosition();k.lineNumber<c.getLineCount()?(S=b+1,w=c.getLineMaxColumn(S)):(S=k.lineNumber,w=c.getLineMaxColumn(k.lineNumber))}else S=v.endLineNumber,w=c.getLineMaxColumn(S);let x=c.getLineContent(b);for(let k=b+1;k<=S;k++){const D=c.getLineContent(k),I=c.getLineFirstNonWhitespaceColumn(k);if(I>=1){let T=!0;x===""&&(T=!1),T&&(x.charAt(x.length-1)===" "||x.charAt(x.length-1)===" ")&&(T=!1,x=x.replace(/[\s\uFEFF\xA0]+$/g," "));const M=D.substr(I-1);x+=(T?" ":"")+M,T?y=M.length+1:y=M.length}else y=0}const L=new Range$2(b,C,S,w);if(!L.isEmpty()){let k;v.isEmpty()?(d.push(EditOperation.replace(L,x)),k=new Selection$1(L.startLineNumber-f,x.length-y+1,b-f,x.length-y+1)):v.startLineNumber===v.endLineNumber?(d.push(EditOperation.replace(L,x)),k=new Selection$1(v.startLineNumber-f,v.startColumn,v.endLineNumber-f,v.endColumn)):(d.push(EditOperation.replace(L,x)),k=new Selection$1(v.startLineNumber-f,v.startColumn,v.startLineNumber-f,x.length-E)),Range$2.intersectRanges(L,s)!==null?g=k:u.push(k)}f+=L.endLineNumber-L.startLineNumber}u.unshift(g),t.pushUndoStop(),t.executeEdits(this.id,d,u),t.pushUndoStop()}}class TransposeAction extends EditorAction{constructor(){super({id:"editor.action.transpose",label:localize2(1267,"Transpose Characters around the Cursor"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}run(e,t){const r=t.getSelections();if(r===null)return;const s=t.getModel();if(s===null)return;const a=[];for(let l=0,c=r.length;l<c;l++){const d=r[l];if(!d.isEmpty())continue;const u=d.getStartPosition(),g=s.getLineMaxColumn(u.lineNumber);if(u.column>=g){if(u.lineNumber===s.getLineCount())continue;const f=new Range$2(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),m=s.getValueInRange(f).split("").reverse().join("");a.push(new ReplaceCommand(new Selection$1(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),m))}else{const f=new Range$2(u.lineNumber,Math.max(1,u.column-1),u.lineNumber,u.column+1),m=s.getValueInRange(f).split("").reverse().join("");a.push(new ReplaceCommandThatPreservesSelection(f,m,new Selection$1(u.lineNumber,u.column+1,u.lineNumber,u.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}class AbstractCaseAction extends EditorAction{run(e,t){const r=t.getSelections();if(r===null)return;const s=t.getModel();if(s===null)return;const a=t.getOption(148),l=[];for(const c of r)if(c.isEmpty()){const d=c.getStartPosition(),u=t.getConfiguredWordAtPosition(d);if(!u)continue;const g=new Range$2(d.lineNumber,u.startColumn,d.lineNumber,u.endColumn),f=s.getValueInRange(g);l.push(EditOperation.replace(g,this._modifyText(f,a)))}else{const d=s.getValueInRange(c);l.push(EditOperation.replace(c,this._modifyText(d,a)))}t.pushUndoStop(),t.executeEdits(this.id,l),t.pushUndoStop()}}class UpperCaseAction extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToUppercase",label:localize2(1268,"Transform to Uppercase"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){return e.toLocaleUpperCase()}}class LowerCaseAction extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToLowercase",label:localize2(1269,"Transform to Lowercase"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}_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(e){}}return this._actual}isSupported(){return this.get()!==null}}const Qo=class Qo extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToTitlecase",label:localize2(1270,"Transform to Title Case"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const r=Qo.titleBoundary.get();return r?e.toLocaleLowerCase().replace(r,s=>s.toLocaleUpperCase()):e}};Qo.titleBoundary=new BackwardsCompatibleRegExp("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");let TitleCaseAction=Qo;const dr=class dr extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToSnakecase",label:localize2(1271,"Transform to Snake Case"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const r=dr.caseBoundary.get(),s=dr.singleLetters.get();return!r||!s?e:e.replace(r,"$1_$2").replace(s,"$1_$2$3").toLocaleLowerCase()}};dr.caseBoundary=new BackwardsCompatibleRegExp("(\\p{Ll})(\\p{Lu})","gmu"),dr.singleLetters=new BackwardsCompatibleRegExp("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");let SnakeCaseAction=dr;const ci=class ci extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToCamelcase",label:localize2(1272,"Transform to Camel Case"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){var c;const r=/\r\n|\r|\n/.test(e)?ci.multiLineWordBoundary.get():ci.singleLineWordBoundary.get(),s=ci.validWordStart.get();if(!r||!s)return e;const a=e.split(r);return((c=a.shift())==null?void 0:c.replace(s,d=>d.toLocaleLowerCase()))+a.map(d=>d.substring(0,1).toLocaleUpperCase()+d.substring(1)).join("")}};ci.singleLineWordBoundary=new BackwardsCompatibleRegExp("[_\\s-]+","gm"),ci.multiLineWordBoundary=new BackwardsCompatibleRegExp("[_-]+","gm"),ci.validWordStart=new BackwardsCompatibleRegExp("^(\\p{Lu}[^\\p{Lu}])","gmu");let CamelCaseAction=ci;const di=class di extends AbstractCaseAction{constructor(){super({id:"editor.action.transformToPascalcase",label:localize2(1273,"Transform to Pascal Case"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const r=di.wordBoundary.get(),s=di.wordBoundaryToMaintain.get(),a=di.upperCaseWordMatcher.get();return!r||!s||!a?e:e.split(s).map(d=>d.split(r)).flat().map(d=>{const u=d.charAt(0).toLocaleUpperCase()+d.slice(1);return u.length>1&&a.test(u)?u.charAt(0)+u.slice(1).toLocaleLowerCase():u}).join("")}};di.wordBoundary=new BackwardsCompatibleRegExp("[_ \\t-]","gm"),di.wordBoundaryToMaintain=new BackwardsCompatibleRegExp("(?<=\\.)","gm"),di.upperCaseWordMatcher=new BackwardsCompatibleRegExp("^\\p{Lu}+$","mu");let PascalCaseAction=di;const ui=class ui extends AbstractCaseAction{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(t=>t.isSupported())}constructor(){super({id:"editor.action.transformToKebabcase",label:localize2(1274,"Transform to Kebab Case"),precondition:EditorContextKeys.writable,canTriggerInlineEdits:!0})}_modifyText(e,t){const r=ui.caseBoundary.get(),s=ui.singleLetters.get(),a=ui.underscoreBoundary.get();return!r||!s||!a?e:e.replace(a,"$1-$3").replace(r,"$1-$2").replace(s,"$1-$2").toLocaleLowerCase()}};ui.caseBoundary=new BackwardsCompatibleRegExp("(\\p{Ll})(\\p{Lu})","gmu"),ui.singleLetters=new BackwardsCompatibleRegExp("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),ui.underscoreBoundary=new BackwardsCompatibleRegExp("(\\S)(_)(\\S)","gm");let KebabCaseAction=ui;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);registerEditorAction(ReverseLinesAction);SnakeCaseAction.caseBoundary.isSupported()&&SnakeCaseAction.singleLetters.isSupported()&&registerEditorAction(SnakeCaseAction);CamelCaseAction.singleLineWordBoundary.isSupported()&&CamelCaseAction.multiLineWordBoundary.isSupported()&&registerEditorAction(CamelCaseAction);PascalCaseAction.wordBoundary.isSupported()&&registerEditorAction(PascalCaseAction);TitleCaseAction.titleBoundary.isSupported()&&registerEditorAction(TitleCaseAction);KebabCaseAction.isSupported()&&registerEditorAction(KebabCaseAction);const IDataChannelService=createDecorator("dataChannelService");class NullDataChannelService{getDataChannel(e){return{sendData:()=>{}}}}var __decorate$1G=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1B=function(o,e){return function(t,r){e(t,r,o)}};function formatRecordableLogEntry(o){var e;return o.sourceId+" @@ "+JSON.stringify({...o,modelUri:(e=o.modelUri)==null?void 0:e.toString(),sourceId:void 0})}let StructuredLogger=class extends Disposable$1{static cast(){return this}constructor(e,t,r){super(),this._key=e,this._contextKeyService=t,this._dataChannelService=r,this._isEnabledContextKeyValue=observableContextKey("structuredLogger.enabled:"+this._key,this._contextKeyService).recomputeInitiallyAndOnChange(this._store),this.isEnabled=this._isEnabledContextKeyValue.map(s=>s!==void 0)}log(e){return this._isEnabledContextKeyValue.get()?(this._dataChannelService.getDataChannel("structuredLogger:"+this._key).sendData(e),!0):!1}};StructuredLogger=__decorate$1G([__param$1B(1,IContextKeyService),__param$1B(2,IDataChannelService)],StructuredLogger);function observableContextKey(o,e){return observableFromEvent(e.onDidChangeContext,()=>e.getContextKeyValue(o))}var __decorate$1F=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1A=function(o,e){return function(t,r){e(t,r,o)}};let TextModelChangeRecorder=class extends Disposable$1{constructor(e,t,r){var l;super(),this._editor=e,this._instantiationService=t,this._loggerService=r,this._structuredLogger=this._register(this._instantiationService.createInstance(StructuredLogger.cast(),"editor.inlineSuggest.logChangeReason.commandId"));const s=(l=this._loggerService)==null?void 0:l.createLogger("textModelChanges",{hidden:!1,name:"Text Model Changes Reason"}),a=observableFromEvent(this,s.onDidChangeLogLevel,()=>s.getLevel());this._register(autorun(c=>{canLog(a.read(c),LogLevel.Trace)&&c.store.add(this._editor.onDidChangeModelContent(d=>{var u;((u=this._editor.getModel())==null?void 0:u.uri.scheme)!=="output"&&s.trace("onDidChangeModelContent: "+d.detailedReasons.map(g=>g.toKey(Number.MAX_VALUE)).join(", "))}))})),this._register(autorun(c=>{this._editor instanceof CodeEditorWidget&&this._structuredLogger.isEnabled.read(c)&&c.store.add(this._editor.onDidChangeModelContent(d=>{const u=this._editor.getModel();if(!u)return;const g=d.detailedReasons[0],f={...g.metadata,sourceId:"TextModel.setChangeReason",source:g.metadata.source,time:Date.now(),modelUri:u.uri,modelVersion:u.getVersionId()};setTimeout(()=>{this._structuredLogger.log(f)},0)}))}))}};TextModelChangeRecorder=__decorate$1F([__param$1A(1,IInstantiationService),__param$1A(2,ILoggerService)],TextModelChangeRecorder);function normalizeDriveLetter(o,e=isWindows){return hasDriveLetter(o,e)?o.charAt(0).toUpperCase()+o.slice(1):o}var __decorate$1E=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1z=function(o,e){return function(t,r){e(t,r,o)}};class CompositeSnippetVariableResolver{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const r=t.resolve(e);if(r!==void 0)return r}}}class SelectionBasedVariableResolver{constructor(e,t,r,s){this._model=e,this._selection=t,this._selectionIdx=r,this._overtypingCapturer=s}resolve(e){const{name:t}=e;if(t==="SELECTION"||t==="TM_SELECTED_TEXT"){let r=this._model.getValueInRange(this._selection)||void 0,s=this._selection.startLineNumber!==this._selection.endLineNumber;if(!r&&this._overtypingCapturer){const a=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);a&&(r=a.value,s=a.multiline)}if(r&&s&&e.snippet){const a=this._model.getLineContent(this._selection.startLineNumber),l=getLeadingWhitespace(a,0,this._selection.startColumn-1);let c=l;e.snippet.walk(u=>u===e?!1:(u instanceof Text&&(c=getLeadingWhitespace(splitLines(u.value).pop())),!0));const d=commonPrefixLength(c,l);r=r.replace(/(\r\n|\r|\n)(.*)/g,(u,g,f)=>"".concat(g).concat(c.substr(d)).concat(f))}return r}else{if(t==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(t==="TM_CURRENT_WORD"){const r=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return r&&r.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 r=basename$1(this._model.uri.fsPath),s=r.lastIndexOf(".");return s<=0?r:r.slice(0,s)}else{if(t==="TM_DIRECTORY")return dirname$1(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel(dirname(this._model.uri));if(t==="TM_DIRECTORY_BASE")return dirname$1(this._model.uri.fsPath)==="."?"":basename$1(dirname$1(this._model.uri.fsPath));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,r,s){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=r,this._spread=s}resolve(e){if(e.name!=="CLIPBOARD")return;const t=this._readClipboardText();if(t){if(this._spread){const r=t.split(/\r\n|\n|\r/).filter(s=>!isFalsyOrWhitespace(s));if(r.length===this._selectionCount)return r[this._selectionIdx]}return t}}}let CommentBasedVariableResolver=class{constructor(e,t,r){this._model=e,this._selection=t,this._languageConfigurationService=r}resolve(e){const{name:t}=e,r=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),s=this._languageConfigurationService.getLanguageConfiguration(r).comments;if(s){if(t==="LINE_COMMENT")return s.lineCommentToken||void 0;if(t==="BLOCK_COMMENT_START")return s.blockCommentStartToken||void 0;if(t==="BLOCK_COMMENT_END")return s.blockCommentEndToken||void 0}}};CommentBasedVariableResolver=__decorate$1E([__param$1z(2,ILanguageConfigurationService)],CommentBasedVariableResolver);const $t=class $t{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 $t.dayNames[this._date.getDay()];if(t==="CURRENT_DAY_NAME_SHORT")return $t.dayNamesShort[this._date.getDay()];if(t==="CURRENT_MONTH_NAME")return $t.monthNames[this._date.getMonth()];if(t==="CURRENT_MONTH_NAME_SHORT")return $t.monthNamesShort[this._date.getMonth()];if(t==="CURRENT_SECONDS_UNIX")return String(Math.floor(this._date.getTime()/1e3));if(t==="CURRENT_TIMEZONE_OFFSET"){const r=this._date.getTimezoneOffset(),s=r>0?"-":"+",a=Math.trunc(Math.abs(r/60)),l=a<10?"0"+a:a,c=Math.abs(r)-a*60,d=c<10?"0"+c:c;return s+l+":"+d}}};$t.dayNames=[localize(1406,"Sunday"),localize(1407,"Monday"),localize(1408,"Tuesday"),localize(1409,"Wednesday"),localize(1410,"Thursday"),localize(1411,"Friday"),localize(1412,"Saturday")],$t.dayNamesShort=[localize(1413,"Sun"),localize(1414,"Mon"),localize(1415,"Tue"),localize(1416,"Wed"),localize(1417,"Thu"),localize(1418,"Fri"),localize(1419,"Sat")],$t.monthNames=[localize(1420,"January"),localize(1421,"February"),localize(1422,"March"),localize(1423,"April"),localize(1424,"May"),localize(1425,"June"),localize(1426,"July"),localize(1427,"August"),localize(1428,"September"),localize(1429,"October"),localize(1430,"November"),localize(1431,"December")],$t.monthNamesShort=[localize(1432,"Jan"),localize(1433,"Feb"),localize(1434,"Mar"),localize(1435,"Apr"),localize(1436,"May"),localize(1437,"Jun"),localize(1438,"Jul"),localize(1439,"Aug"),localize(1440,"Sep"),localize(1441,"Oct"),localize(1442,"Nov"),localize(1443,"Dec")];let TimeBasedVariableResolver=$t;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 r=e.configPath.fsPath;return r.endsWith(t)&&(r=r.substr(0,r.length-t.length-1)),r?normalizeDriveLetter(r):"/"}}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$1D=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1y=function(o,e){return function(t,r){e(t,r,o)}},SnippetSession_1;const Ct=class Ct{constructor(e,t,r){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=r,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=groupBy$1(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 r of this._snippet.placeholders){const s=this._snippet.offset(r),a=this._snippet.fullLen(r),l=Range$2.fromPositions(e.getPositionAt(this._offset+s),e.getPositionAt(this._offset+s+a)),c=r.isFinalTabstop?Ct._decor.inactiveFinal:Ct._decor.inactive,d=t.addDecoration(l,c);this._placeholderDecorations.set(r,d)}})}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const s=[];for(const a of this._placeholderGroups[this._placeholderGroupsIdx])if(a.transform){const l=this._placeholderDecorations.get(a),c=this._editor.getModel().getDecorationRange(l),d=this._editor.getModel().getValueInRange(c),u=a.transform.resolve(d).split(/\r\n|\r|\n/);for(let g=1;g<u.length;g++)u[g]=this._editor.getModel().normalizeIndentation(this._snippetLineLeadingWhitespace+u[g]);s.push(EditOperation.replace(c,u.join(this._editor.getModel().getEOL())))}s.length>0&&this._editor.executeEdits("snippet.placeholderTransform",s)}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 r=this._editor.getModel().changeDecorations(s=>{const a=new Set,l=[];for(const c of this._placeholderGroups[this._placeholderGroupsIdx]){const d=this._placeholderDecorations.get(c),u=this._editor.getModel().getDecorationRange(d);l.push(new Selection$1(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(c),s.changeDecorationOptions(d,c.isFinalTabstop?Ct._decor.activeFinal:Ct._decor.active),a.add(c);for(const g of this._snippet.enclosingPlaceholders(c)){const f=this._placeholderDecorations.get(g);s.changeDecorationOptions(f,g.isFinalTabstop?Ct._decor.activeFinal:Ct._decor.active),a.add(g)}}for(const[c,d]of this._placeholderDecorations)a.has(c)||s.changeDecorationOptions(d,c.isFinalTabstop?Ct._decor.inactiveFinal:Ct._decor.inactive);return l});return t?this.move(e):r!=null?r:[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof Placeholder){const r=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(r).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 r;for(const s of t){if(s.isFinalTabstop)break;r||(r=[],e.set(s.index,r));const a=this._placeholderDecorations.get(s),l=this._editor.getModel().getDecorationRange(a);if(!l){e.delete(s.index);break}r.push(l)}}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 r=this._editor.getModel().getDecorationRange(t);if(r)return{range:r,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(r=>{for(const s of this._placeholderGroups[this._placeholderGroupsIdx]){const a=e.shift();console.assert(a._offset!==-1),console.assert(!a._placeholderDecorations);const l=a._snippet.placeholderInfo.last.index;for(const d of a._snippet.placeholderInfo.all)d.isFinalTabstop?d.index=s.index+(l+1)/this._nestingLevel:d.index=s.index+d.index/this._nestingLevel;this._snippet.replace(s,a._snippet.children);const c=this._placeholderDecorations.get(s);r.removeDecoration(c),this._placeholderDecorations.delete(s);for(const d of a._snippet.placeholders){const u=a._snippet.offset(d),g=a._snippet.fullLen(d),f=Range$2.fromPositions(t.getPositionAt(a._offset+u),t.getPositionAt(a._offset+u+g)),m=r.addDecoration(f,Ct._decor.inactive);this._placeholderDecorations.set(d,m)}}this._placeholderGroups=groupBy$1(this._snippet.placeholders,Placeholder.compareByIndex)})}};Ct._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"})};let OneSnippet=Ct;const _defaultOptions$1={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let SnippetSession=SnippetSession_1=class{static adjustWhitespace(e,t,r,s,a){const l=e.getLineContent(t.lineNumber),c=getLeadingWhitespace(l,0,t.column-1);let d;return s.walk(u=>{if(!(u instanceof Text)||u.parent instanceof Choice||a&&!a.has(u))return!0;const g=u.value.split(/\r\n|\r|\n/);if(r){const m=s.offset(u);if(m===0)g[0]=e.normalizeIndentation(g[0]);else{d=d!=null?d:s.toString();const _=d.charCodeAt(m-1);(_===10||_===13)&&(g[0]=e.normalizeIndentation(c+g[0]))}for(let _=1;_<g.length;_++)g[_]=e.normalizeIndentation(c+g[_])}const f=g.join(e.getEOL());return f!==u.value&&(u.parent.replace(u,[new Text(f)]),d=void 0),!0}),c}static adjustSelection(e,t,r,s){if(r!==0||s!==0){const{positionLineNumber:a,positionColumn:l}=t,c=l-r,d=l+s,u=e.validateRange({startLineNumber:a,startColumn:c,endLineNumber:a,endColumn:d});t=Selection$1.createWithDirection(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn,t.getDirection())}return t}static createEditsAndSnippetsFromSelections(e,t,r,s,a,l,c,d,u){const g=[],f=[];if(!e.hasModel())return{edits:g,snippets:f};const m=e.getModel(),_=e.invokeWithinContext(E=>E.get(IWorkspaceContextService)),v=e.invokeWithinContext(E=>new ModelBasedVariableResolver(E.get(ILabelService),m)),b=()=>c,C=m.getValueInRange(SnippetSession_1.adjustSelection(m,e.getSelection(),r,0)),y=m.getValueInRange(SnippetSession_1.adjustSelection(m,e.getSelection(),0,s)),S=m.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),w=e.getSelections().map((E,x)=>({selection:E,idx:x})).sort((E,x)=>Range$2.compareRangesUsingStarts(E.selection,x.selection));for(const{selection:E,idx:x}of w){let L=SnippetSession_1.adjustSelection(m,E,r,0),k=SnippetSession_1.adjustSelection(m,E,0,s);C!==m.getValueInRange(L)&&(L=E),y!==m.getValueInRange(k)&&(k=E);const D=E.setStartPosition(L.startLineNumber,L.startColumn).setEndPosition(k.endLineNumber,k.endColumn),I=new SnippetParser().parse(t,!0,a),T=D.getStartPosition(),M=SnippetSession_1.adjustWhitespace(m,T,l||x>0&&S!==m.getLineFirstNonWhitespaceColumn(E.positionLineNumber),I);I.resolveVariables(new CompositeSnippetVariableResolver([v,new ClipboardBasedVariableResolver(b,x,w.length,e.getOption(88)==="spread"),new SelectionBasedVariableResolver(m,E,x,d),new CommentBasedVariableResolver(m,E,u),new TimeBasedVariableResolver,new WorkspaceBasedVariableResolver(_),new RandomBasedVariableResolver])),g[x]=EditOperation.replace(D,I.toString()),g[x].identifier={major:x,minor:0},g[x]._isTracked=!0,f[x]=new OneSnippet(e,I,M)}return{edits:g,snippets:f}}static createEditsAndSnippetsFromEdits(e,t,r,s,a,l,c){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};const d=[],u=e.getModel(),g=new SnippetParser,f=new TextmateSnippet,m=new CompositeSnippetVariableResolver([e.invokeWithinContext(v=>new ModelBasedVariableResolver(v.get(ILabelService),u)),new ClipboardBasedVariableResolver(()=>a,0,e.getSelections().length,e.getOption(88)==="spread"),new SelectionBasedVariableResolver(u,e.getSelection(),0,l),new CommentBasedVariableResolver(u,e.getSelection(),c),new TimeBasedVariableResolver,new WorkspaceBasedVariableResolver(e.invokeWithinContext(v=>v.get(IWorkspaceContextService))),new RandomBasedVariableResolver]);t=t.sort((v,b)=>Range$2.compareRangesUsingStarts(v.range,b.range));let _=0;for(let v=0;v<t.length;v++){const{range:b,template:C,keepWhitespace:y}=t[v];if(v>0){const L=t[v-1].range,k=Range$2.fromPositions(L.getEndPosition(),b.getStartPosition()),D=new Text(u.getValueInRange(k));f.appendChild(D),_+=D.value.length}const S=g.parseFragment(C,f);SnippetSession_1.adjustWhitespace(u,b.getStartPosition(),y!==void 0?!y:s,f,new Set(S)),f.resolveVariables(m);const w=f.toString(),E=w.slice(_);_=w.length;const x=EditOperation.replace(b,E);x.identifier={major:v,minor:0},x._isTracked=!0,d.push(x)}return g.ensureFinalTabstop(f,r,!0),{edits:d,snippets:[new OneSnippet(e,f,"")]}}constructor(e,t,r=_defaultOptions$1,s){this._editor=e,this._template=t,this._options=r,this._languageConfigurationService=s,this._templateMerges=[],this._snippets=[]}dispose(){dispose(this._snippets)}_logInfo(){return'template="'.concat(this._template,'", merged_templates="').concat(this._templateMerges.join(" -> "),'"')}insert(e){if(!this._editor.hasModel())return;const{edits:t,snippets:r}=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=r,this._editor.executeEdits(e!=null?e:EditSources.snippet(),t,s=>{const a=s.filter(l=>!!l.identifier);for(let l=0;l<r.length;l++)r[l].initialize(a[l].textChange);return this._snippets[0].hasPlaceholder?this._move(!0):a.map(l=>Selection$1.fromPositions(l.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:r,snippets:s}=SnippetSession_1.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",r,a=>{const l=a.filter(d=>!!d.identifier);for(let d=0;d<s.length;d++)s[d].initialize(l[d].textChange);const c=s[0].isTrivialSnippet;if(!c){for(const d of this._snippets)d.merge(s);console.assert(s.length===0)}return this._snippets[0].hasPlaceholder&&!c?this._move(void 0):l.map(d=>Selection$1.fromPositions(d.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 r of this._snippets){const s=r.move(e);t.push(...s)}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 r of this._snippets){const s=r.computePossibleSelections();if(t.size===0)for(const[a,l]of s){l.sort(Range$2.compareRangesUsingStarts);for(const c of e)if(l[0].containsRange(c)){t.set(a,[]);break}}if(t.size===0)return!1;t.forEach((a,l)=>{a.push(...s.get(l))})}e.sort(Range$2.compareRangesUsingStarts);for(const[r,s]of t){if(s.length!==e.length){t.delete(r);continue}s.sort(Range$2.compareRangesUsingStarts);for(let a=0;a<s.length;a++)if(!s[a].containsRange(e[a])){t.delete(r);continue}}return t.size>0}};SnippetSession=SnippetSession_1=__decorate$1D([__param$1y(3,ILanguageConfigurationService)],SnippetSession);var __decorate$1C=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1x=function(o,e){return function(t,r){e(t,r,o)}},SnippetController2_1;const _defaultOptions={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};var Vt;let SnippetController2=(Vt=class{static get(e){return e.getContribution(SnippetController2_1.ID)}constructor(e,t,r,s,a){this._editor=e,this._logService=t,this._languageFeaturesService=r,this._languageConfigurationService=a,this._inSnippetObservable=observableValue(this,!1),this._snippetListener=new DisposableStore$1,this._modelVersionId=-1,this._inSnippet=SnippetController2_1.InSnippetMode.bindTo(s),this._hasNextTabstop=SnippetController2_1.HasNextTabstop.bindTo(s),this._hasPrevTabstop=SnippetController2_1.HasPrevTabstop.bindTo(s)}dispose(){var e;this._inSnippet.reset(),this._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),(e=this._session)==null||e.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,typeof t>"u"?_defaultOptions:{..._defaultOptions,...t})}catch(r){this.cancel(),this._logService.error(r),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 r;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.reason)),t.undoStopAfter&&this._editor.getModel().pushStackElement(),(r=this._session)!=null&&r.hasChoice){const s={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(g,f)=>{if(!this._session||g!==this._editor.getModel()||!Position$1.equals(this._editor.getPosition(),f))return;const{activeChoice:m}=this._session;if(!m||m.choice.options.length===0)return;const _=g.getValueInRange(m.range),v=!!m.choice.options.find(C=>C.value===_),b=[];for(let C=0;C<m.choice.options.length;C++){const y=m.choice.options[C];b.push({kind:13,label:y.value,insertText:y.value,sortText:"a".repeat(C+1),range:m.range,filterText:v?"".concat(_,"_").concat(y.value):void 0,command:{id:"jumpToNextSnippetPlaceholder",title:localize(1405,"Go to next placeholder...")}})}return{suggestions:b}}},a=this._editor.getModel();let l,c=!1;const d=()=>{l==null||l.dispose(),c=!1},u=()=>{c||(l=this._languageFeaturesService.completionProvider.register({language:a.getLanguageId(),pattern:a.uri.fsPath,scheme:a.uri.scheme,exclusive:!0},s),this._snippetListener.add(l),c=!0)};this._choiceCompletions={provider:s,enable:u,disable:d}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(s=>s.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._inSnippetObservable.set(!0,void 0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var t;if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:e}=this._session;if(!e||!this._choiceCompletions){(t=this._choiceCompletions)==null||t.disable(),this._currentChoice=void 0;return}this._currentChoice!==e.choice&&(this._currentChoice=e.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._inSnippetObservable.set(!1,void 0),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,(t=this._session)==null||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){var e;(e=this._session)==null||e.prev(),this._updateState()}next(){var e;(e=this._session)==null||e.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}get isInSnippetObservable(){return this._inSnippetObservable}},SnippetController2_1=Vt,Vt.ID="snippetController2",Vt.InSnippetMode=new RawContextKey("inSnippetMode",!1,localize(1402,"Whether the editor in current in snippet mode")),Vt.HasNextTabstop=new RawContextKey("hasNextTabstop",!1,localize(1403,"Whether there is a next tab stop when in snippet mode")),Vt.HasPrevTabstop=new RawContextKey("hasPrevTabstop",!1,localize(1404,"Whether there is a previous tab stop when in snippet mode")),Vt);SnippetController2=SnippetController2_1=__decorate$1C([__param$1x(1,ILogService),__param$1x(2,ILanguageFeaturesService),__param$1x(3,IContextKeyService),__param$1x(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.textInputFocus,primary:2}}));registerEditorCommand(new CommandCtor({id:"jumpToPrevSnippetPlaceholder",precondition:ContextKeyExpr.and(SnippetController2.InSnippetMode,SnippetController2.HasPrevTabstop),handler:o=>o.prev(),kbOpts:{weight:130,kbExpr:EditorContextKeys.textInputFocus,primary:1026}}));registerEditorCommand(new CommandCtor({id:"leaveSnippet",precondition:SnippetController2.InSnippetMode,handler:o=>o.cancel(!0),kbOpts:{weight:130,kbExpr:EditorContextKeys.textInputFocus,primary:9,secondary:[1033]}}));registerEditorCommand(new CommandCtor({id:"acceptSnippet",precondition:SnippetController2.InSnippetMode,handler:o=>o.finish()}));function getPositionOffsetTransformerFromTextModel(o){return new PositionOffsetTransformerWithTextModel(o)}class PositionOffsetTransformerWithTextModel extends PositionOffsetTransformerBase{constructor(e){super(),this._textModel=e}getOffset(e){return this._textModel.getOffsetAt(e)}getPosition(e){return this._textModel.getPositionAt(e)}}const array=[];function getReadonlyEmptyArray(){return array}function getEndPositionsAfterApplying(o){return getModifiedRangesAfterApplying(o).map(t=>t.getEndPosition())}function getModifiedRangesAfterApplying(o){const e=Permutation.createSortPermutation(o,compareBy(s=>s.range,Range$2.compareRangesUsingStarts)),r=new TextEdit(e.apply(o)).getNewRanges();return e.inverse().apply(r)}function removeTextReplacementCommonSuffixPrefix(o,e){const t=getPositionOffsetTransformerFromTextModel(e),r=e.getValue();return o.map(l=>t.getStringReplacement(l)).map(l=>l.removeCommonSuffixPrefix(r)).map(l=>t.getTextReplacement(l))}function convertItemsToStableObservables(o,e){const t=observableValue("result",[]),r=[];return e.add(autorun(s=>{const a=o.read(s);transaction(l=>{if(a.length!==r.length){r.length=a.length;for(let c=0;c<r.length;c++)r[c]||(r[c]=observableValue("item",a[c]));t.set([...r],l)}r.forEach((c,d)=>c.set(a[d],l))})})),t}class ObservableContextKeyService{constructor(e){this._contextKeyService=e}bind(e,t){return bindContextKey(e,this._contextKeyService,t instanceof Function?t:r=>t.read(r))}}function wait(o,e){return new Promise(t=>{let r;const s=setTimeout(()=>{r&&r.dispose(),t()},o);e&&(r=e.onCancellationRequested(()=>{clearTimeout(s),r&&r.dispose(),t()}))})}class AnimatedValue{constructor(e,t,r,s=easeOutExpo){this.startValue=e,this.endValue=t,this.durationMs=r,this._interpolationFunction=s,this.startTimeMs=Date.now(),e===t&&(this.durationMs=0)}isFinished(){return Date.now()>=this.startTimeMs+this.durationMs}getValue(){const e=Date.now()-this.startTimeMs;return e>=this.durationMs?this.endValue:this._interpolationFunction(e,this.startValue,this.endValue-this.startValue,this.durationMs)}}function easeOutExpo(o,e,t,r){return o===r?e+t:t*(-Math.pow(2,-10*o/r)+1)+e}function easeOutCubic(o,e,t,r){return t*((o=o/r-1)*o*o+1)+e}class ObservableAnimatedValue{constructor(e){this._value=observableValue(this,e)}getValue(e){const t=this._value.read(e);return t.isFinished()||AnimationFrameScheduler.instance.invalidateOnNextAnimationFrame(e),t.getValue()}}const Jo=class Jo{constructor(){this._counter=observableSignal(this),this._isScheduled=!1}invalidateOnNextAnimationFrame(e){this._counter.read(e),this._isScheduled||(this._isScheduled=!0,getActiveWindow().requestAnimationFrame(()=>{this._isScheduled=!1,this._update()}))}_update(){this._counter.trigger(void 0)}};Jo.instance=new Jo;let AnimationFrameScheduler=Jo;class GhostText{constructor(e,t){this.lineNumber=e,this.parts=t,assertFn(()=>checkAdjacentItems(t,(r,s)=>r.column<=s.column))}equals(e){return this.lineNumber===e.lineNumber&&this.parts.length===e.parts.length&&this.parts.every((t,r)=>t.equals(e.parts[r]))}renderForScreenReader(e){if(this.parts.length===0)return"";const t=this.parts[this.parts.length-1],r=e.substr(0,t.column-1);return new TextEdit([...this.parts.map(a=>new TextReplacement(Range$2.fromPositions(new Position$1(1,a.column)),a.lines.map(l=>l.line).join("\n")))]).applyToString(r).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,r,s=[]){this.column=e,this.text=t,this.preview=r,this._inlineDecorations=s,this.lines=splitLines(this.text).map((a,l)=>({line:a,lineDecorations:LineDecoration.filter(this._inlineDecorations,l+1,1,a.length+1)}))}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every((t,r)=>t.line===e.lines[r].line&&LineDecoration.equalsArr(t.lineDecorations,e.lines[r].lineDecorations))}}class GhostTextReplacement{constructor(e,t,r,s=0){this.lineNumber=e,this.columnRange=t,this.text=r,this.additionalReservedLineCount=s,this.parts=[new GhostTextPart(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=splitLines(this.text)}renderForScreenReader(e){return this.newLines.join("\n")}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,r)=>t===e.newLines[r])&&this.additionalReservedLineCount===e.additionalReservedLineCount}}function ghostTextsOrReplacementsEqual(o,e){return equals$2(o,e,ghostTextOrReplacementEquals)}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}function singleTextRemoveCommonPrefix(o,e,t){const r=t?o.range.intersectRanges(t):o.range;if(!r)return o;const s=o.text.replaceAll("\r\n","\n"),a=e.getValueInRange(r,1),l=commonPrefixLength(a,s),c=TextLength.ofText(a.substring(0,l)).addToPosition(o.range.getStartPosition()),d=s.substring(l),u=Range$2.fromPositions(c,o.range.getEndPosition());return new TextReplacement(u,d)}function singleTextEditAugments(o,e){return o.text.startsWith(e.text)&&rangeExtends(o.range,e.range)}function rangeExtends(o,e){return e.getStartPosition().equals(o.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(o.getEndPosition())}function computeGhostText(o,e,t,r,s=0){let a=singleTextRemoveCommonPrefix(o,e);if(a.range.endLineNumber!==a.range.startLineNumber)return;const l=e.getLineContent(a.range.startLineNumber),c=getLeadingWhitespace(l).length;if(a.range.startColumn-1<=c){const v=getLeadingWhitespace(a.text).length,b=l.substring(a.range.startColumn-1,c),[C,y]=[a.range.getStartPosition(),a.range.getEndPosition()],S=C.column+b.length<=y.column?C.delta(0,b.length):y,w=Range$2.fromPositions(S,y),E=a.text.startsWith(b)?a.text.substring(b.length):a.text.substring(v);a=new TextReplacement(w,E)}const u=e.getValueInRange(a.range),g=cachingDiff(u,a.text);if(!g)return;const f=a.range.startLineNumber,m=new Array;if(t==="prefix"){const v=g.filter(b=>b.originalLength===0);if(v.length>1||v.length===1&&v[0].originalStart!==u.length)return}const _=a.text.length-s;for(const v of g){const b=a.range.startColumn+v.originalStart+v.originalLength;if(t==="subwordSmart"&&r&&r.lineNumber===a.range.startLineNumber&&b<r.column||v.originalLength>0)return;if(v.modifiedLength===0)continue;const C=v.modifiedStart+v.modifiedLength,y=Math.max(v.modifiedStart,Math.min(C,_)),S=a.text.substring(v.modifiedStart,y),w=a.text.substring(y,Math.max(v.modifiedStart,C));S.length>0&&m.push(new GhostTextPart(b,S,!1)),w.length>0&&m.push(new GhostTextPart(b,w,!0))}return new GhostText(f,m)}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 r=deletedCharacters(t);if(r>0){const s=smartDiff(o,e,!1);s&&deletedCharacters(s)<r&&(t=s)}}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 r(u){let g=0;for(let f=0,m=u.length;f<m;f++){const _=u.charCodeAt(f);_>g&&(g=_)}return g}const s=Math.max(r(o),r(e));function a(u){if(u<0)throw new Error("unexpected");return s+u+1}function l(u){let g=0,f=0;const m=new Int32Array(u.length);for(let _=0,v=u.length;_<v;_++)if(t&&u[_]==="("){const b=f*100+g;m[_]=a(2*b),g++}else if(t&&u[_]===")"){g=Math.max(g-1,0);const b=f*100+g;m[_]=a(2*b+1),g===0&&f++}else m[_]=u.charCodeAt(_);return m}const c=l(o),d=l(e);return new LcsDiff({getElements:()=>c},{getElements:()=>d}).ComputeDiff(!1).changes}function observableReducerSettable(o,e){var a;let t,r=!1;const s=new DerivedWithSetter(new DebugNameData(o,void 0,e.update),(l,c)=>{r||(t=e.initial instanceof Function?e.initial():e.initial,r=!0);const d=e.update(l,t,c);return t=d,d},e.changeTracker,()=>{var l;r&&((l=e.disposeFinal)==null||l.call(e,t),r=!1)},(a=e.equalityComparer)!=null?a:strictEquals,(l,c,d)=>{if(!r)throw new BugIndicatingError("Can only set when there is a listener! This is to prevent leaks.");subtransaction(c,u=>{t=l,s.setValue(l,u,d)})},DebugLocation.ofCaller());return s}var __decorate$1B=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1w=function(o,e){return function(t,r){e(t,r,o)}};class InterceptingTelemetryService{constructor(e,t){this._baseService=e,this._intercept=t}publicLog2(e,t){this._intercept(e,t),this._baseService.publicLog2(e,t)}}let DataChannelForwardingTelemetryService=class extends InterceptingTelemetryService{constructor(e,t){super(e,(r,s)=>{let a=!0;s&&shouldForwardToChannel in s&&(a=!!s[shouldForwardToChannel]),a&&t.getDataChannel("editTelemetry").sendData({eventName:r,data:s!=null?s:{}})})}};DataChannelForwardingTelemetryService=__decorate$1B([__param$1w(0,ITelemetryService),__param$1w(1,IDataChannelService)],DataChannelForwardingTelemetryService);const shouldForwardToChannel=Symbol("shouldForwardToChannel");function forwardToChannelIf(o){return{[shouldForwardToChannel]:o}}function isCopilotLikeExtension(o){if(!o)return!1;const e=o.toLowerCase();return e==="github.copilot"||e==="github.copilot-chat"}function offsetEditFromContentChanges(o){const e=o.map(r=>new StringReplacement(OffsetRange.ofStartAndLength(r.rangeOffset,r.rangeLength),r.text));return e.reverse(),new StringEdit(e)}function sendInlineCompletionsEndOfLifeTelemetry(o,e){o.publicLog2("inlineCompletion.endOfLife",e)}class LinesDiff{constructor(e,t,r){this.changes=e,this.moves=t,this.hitTimeout=r}}class MovedText{constructor(e,t){this.lineRangeMapping=e,this.changes=t}}const MINIMUM_MATCHING_CHARACTER_LENGTH=3;class LegacyLinesDiffComputer{computeDiff(e,t,r){var d;const a=new DiffComputer(e,t,{maxComputationTime:r.maxComputationTimeMs,shouldIgnoreTrimWhitespace:r.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),l=[];let c=null;for(const u of a.changes){let g;u.originalEndLineNumber===0?g=new LineRange(u.originalStartLineNumber+1,u.originalStartLineNumber+1):g=new LineRange(u.originalStartLineNumber,u.originalEndLineNumber+1);let f;u.modifiedEndLineNumber===0?f=new LineRange(u.modifiedStartLineNumber+1,u.modifiedStartLineNumber+1):f=new LineRange(u.modifiedStartLineNumber,u.modifiedEndLineNumber+1);let m=new DetailedLineRangeMapping(g,f,(d=u.charChanges)==null?void 0:d.map(_=>new RangeMapping(new Range$2(_.originalStartLineNumber,_.originalStartColumn,_.originalEndLineNumber,_.originalEndColumn),new Range$2(_.modifiedStartLineNumber,_.modifiedStartColumn,_.modifiedEndLineNumber,_.modifiedEndColumn))));c&&(c.modified.endLineNumberExclusive===m.modified.startLineNumber||c.original.endLineNumberExclusive===m.original.startLineNumber)&&(m=new DetailedLineRangeMapping(c.original.join(m.original),c.modified.join(m.modified),c.innerChanges&&m.innerChanges?c.innerChanges.concat(m.innerChanges):void 0),l.pop()),l.push(m),c=m}return assertFn(()=>checkAdjacentItems(l,(u,g)=>g.original.startLineNumber-u.original.endLineNumberExclusive===g.modified.startLineNumber-u.modified.endLineNumberExclusive&&u.original.endLineNumberExclusive<g.original.startLineNumber&&u.modified.endLineNumberExclusive<g.modified.startLineNumber)),new LinesDiff(l,[],a.quitEarly)}}function computeDiff(o,e,t,r){return new LcsDiff(o,e,t).ComputeDiff(r)}let LineSequence$1=class{constructor(e){const t=[],r=[];for(let s=0,a=e.length;s<a;s++)t[s]=getFirstNonBlankColumn(e[s],1),r[s]=getLastNonBlankColumn(e[s],1);this.lines=e,this._startColumns=t,this._endColumns=r}getElements(){const e=[];for(let t=0,r=this.lines.length;t<r;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,r){const s=[],a=[],l=[];let c=0;for(let d=t;d<=r;d++){const u=this.lines[d],g=e?this._startColumns[d]:1,f=e?this._endColumns[d]:u.length+1;for(let m=g;m<f;m++)s[c]=u.charCodeAt(m-1),a[c]=d+1,l[c]=m,c++;!e&&d<r&&(s[c]=10,a[c]=d+1,l[c]=u.length+1,c++)}return new CharSequence(s,a,l)}};class CharSequence{constructor(e,t,r){this._charCodes=e,this._lineNumbers=t,this._columns=r}toString(){return"["+this._charCodes.map((e,t)=>(e===10?"\\n":String.fromCharCode(e))+"-(".concat(this._lineNumbers[t],",").concat(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,r,s,a,l,c,d){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=r,this.originalEndColumn=s,this.modifiedStartLineNumber=a,this.modifiedStartColumn=l,this.modifiedEndLineNumber=c,this.modifiedEndColumn=d}static createFromDiffChange(e,t,r){const s=t.getStartLineNumber(e.originalStart),a=t.getStartColumn(e.originalStart),l=t.getEndLineNumber(e.originalStart+e.originalLength-1),c=t.getEndColumn(e.originalStart+e.originalLength-1),d=r.getStartLineNumber(e.modifiedStart),u=r.getStartColumn(e.modifiedStart),g=r.getEndLineNumber(e.modifiedStart+e.modifiedLength-1),f=r.getEndColumn(e.modifiedStart+e.modifiedLength-1);return new CharChange(s,a,l,c,d,u,g,f)}}function postProcessCharChanges(o){if(o.length<=1)return o;const e=[o[0]];let t=e[0];for(let r=1,s=o.length;r<s;r++){const a=o[r],l=a.originalStart-(t.originalStart+t.originalLength),c=a.modifiedStart-(t.modifiedStart+t.modifiedLength);Math.min(l,c)<MINIMUM_MATCHING_CHARACTER_LENGTH?(t.originalLength=a.originalStart+a.originalLength-t.originalStart,t.modifiedLength=a.modifiedStart+a.modifiedLength-t.modifiedStart):(e.push(a),t=a)}return e}class LineChange{constructor(e,t,r,s,a){this.originalStartLineNumber=e,this.originalEndLineNumber=t,this.modifiedStartLineNumber=r,this.modifiedEndLineNumber=s,this.charChanges=a}static createFromDiffResult(e,t,r,s,a,l,c){let d,u,g,f,m;if(t.originalLength===0?(d=r.getStartLineNumber(t.originalStart)-1,u=0):(d=r.getStartLineNumber(t.originalStart),u=r.getEndLineNumber(t.originalStart+t.originalLength-1)),t.modifiedLength===0?(g=s.getStartLineNumber(t.modifiedStart)-1,f=0):(g=s.getStartLineNumber(t.modifiedStart),f=s.getEndLineNumber(t.modifiedStart+t.modifiedLength-1)),l&&t.originalLength>0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&a()){const _=r.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),v=s.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);if(_.getElements().length>0&&v.getElements().length>0){let b=computeDiff(_,v,a,!0).changes;c&&(b=postProcessCharChanges(b)),m=[];for(let C=0,y=b.length;C<y;C++)m.push(CharChange.createFromDiffChange(b[C],_,v))}}return new LineChange(d,u,g,f,m)}}class DiffComputer{constructor(e,t,r){this.shouldComputeCharChanges=r.shouldComputeCharChanges,this.shouldPostProcessCharChanges=r.shouldPostProcessCharChanges,this.shouldIgnoreTrimWhitespace=r.shouldIgnoreTrimWhitespace,this.shouldMakePrettyDiff=r.shouldMakePrettyDiff,this.originalLines=e,this.modifiedLines=t,this.original=new LineSequence$1(e),this.modified=new LineSequence$1(t),this.continueLineDiff=createContinueProcessingPredicate(r.maxComputationTime),this.continueCharDiff=createContinueProcessingPredicate(r.maxComputationTime===0?0:Math.min(r.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,r=e.quitEarly;if(this.shouldIgnoreTrimWhitespace){const c=[];for(let d=0,u=t.length;d<u;d++)c.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace,t[d],this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges));return{quitEarly:r,changes:c}}const s=[];let a=0,l=0;for(let c=-1,d=t.length;c<d;c++){const u=c+1<d?t[c+1]:null,g=u?u.originalStart:this.originalLines.length,f=u?u.modifiedStart:this.modifiedLines.length;for(;a<g&&l<f;){const m=this.originalLines[a],_=this.modifiedLines[l];if(m!==_){{let v=getFirstNonBlankColumn(m,1),b=getFirstNonBlankColumn(_,1);for(;v>1&&b>1;){const C=m.charCodeAt(v-2),y=_.charCodeAt(b-2);if(C!==y)break;v--,b--}(v>1||b>1)&&this._pushTrimWhitespaceCharChange(s,a+1,1,v,l+1,1,b)}{let v=getLastNonBlankColumn(m,1),b=getLastNonBlankColumn(_,1);const C=m.length+1,y=_.length+1;for(;v<C&&b<y;){const S=m.charCodeAt(v-1),w=m.charCodeAt(b-1);if(S!==w)break;v++,b++}(v<C||b<y)&&this._pushTrimWhitespaceCharChange(s,a+1,v,C,l+1,b,y)}}a++,l++}u&&(s.push(LineChange.createFromDiffResult(this.shouldIgnoreTrimWhitespace,u,this.original,this.modified,this.continueCharDiff,this.shouldComputeCharChanges,this.shouldPostProcessCharChanges)),a+=u.originalLength,l+=u.modifiedLength)}return{quitEarly:r,changes:s}}_pushTrimWhitespaceCharChange(e,t,r,s,a,l,c){if(this._mergeTrimWhitespaceCharChange(e,t,r,s,a,l,c))return;let d;this.shouldComputeCharChanges&&(d=[new CharChange(t,r,t,s,a,l,a,c)]),e.push(new LineChange(t,t,a,a,d))}_mergeTrimWhitespaceCharChange(e,t,r,s,a,l,c){const d=e.length;if(d===0)return!1;const u=e[d-1];return u.originalEndLineNumber===0||u.modifiedEndLineNumber===0?!1:u.originalEndLineNumber===t&&u.modifiedEndLineNumber===a?(this.shouldComputeCharChanges&&u.charChanges&&u.charChanges.push(new CharChange(t,r,t,s,a,l,a,c)),!0):u.originalEndLineNumber+1===t&&u.modifiedEndLineNumber+1===a?(u.originalEndLineNumber=t,u.modifiedEndLineNumber=a,this.shouldComputeCharChanges&&u.charChanges&&u.charChanges.push(new CharChange(t,r,t,s,a,l,a,c)),!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 DynamicProgrammingDiffing{compute(e,t,r=InfiniteTimeout.instance,s){if(e.length===0||t.length===0)return DiffAlgorithmResult.trivial(e,t);const a=new Array2D(e.length,t.length),l=new Array2D(e.length,t.length),c=new Array2D(e.length,t.length);for(let v=0;v<e.length;v++)for(let b=0;b<t.length;b++){if(!r.isValid())return DiffAlgorithmResult.trivialTimedOut(e,t);const C=v===0?0:a.get(v-1,b),y=b===0?0:a.get(v,b-1);let S;e.getElement(v)===t.getElement(b)?(v===0||b===0?S=0:S=a.get(v-1,b-1),v>0&&b>0&&l.get(v-1,b-1)===3&&(S+=c.get(v-1,b-1)),S+=s?s(v,b):1):S=-1;const w=Math.max(C,y,S);if(w===S){const E=v>0&&b>0?c.get(v-1,b-1):0;c.set(v,b,E+1),l.set(v,b,3)}else w===C?(c.set(v,b,0),l.set(v,b,1)):w===y&&(c.set(v,b,0),l.set(v,b,2));a.set(v,b,w)}const d=[];let u=e.length,g=t.length;function f(v,b){(v+1!==u||b+1!==g)&&d.push(new SequenceDiff(new OffsetRange(v+1,u),new OffsetRange(b+1,g))),u=v,g=b}let m=e.length-1,_=t.length-1;for(;m>=0&&_>=0;)l.get(m,_)===3?(f(m,_),m--,_--):l.get(m,_)===1?m--:_--;return f(-1,-1),d.reverse(),new DiffAlgorithmResult(d,!1)}}class MyersDiffAlgorithm{compute(e,t,r=InfiniteTimeout.instance){if(e.length===0||t.length===0)return DiffAlgorithmResult.trivial(e,t);const s=e,a=t;function l(b,C){for(;b<s.length&&C<a.length&&s.getElement(b)===a.getElement(C);)b++,C++;return b}let c=0;const d=new FastInt32Array;d.set(0,l(0,0));const u=new FastArrayNegativeIndices;u.set(0,d.get(0)===0?null:new SnakePath(null,0,0,d.get(0)));let g=0;e:for(;;){if(c++,!r.isValid())return DiffAlgorithmResult.trivialTimedOut(s,a);const b=-Math.min(c,a.length+c%2),C=Math.min(c,s.length+c%2);for(g=b;g<=C;g+=2){const y=g===C?-1:d.get(g+1),S=g===b?-1:d.get(g-1)+1,w=Math.min(Math.max(y,S),s.length),E=w-g;if(w>s.length||E>a.length)continue;const x=l(w,E);d.set(g,x);const L=w===y?u.get(g+1):u.get(g-1);if(u.set(g,x!==w?new SnakePath(L,w,E,x-w):L),d.get(g)===s.length&&d.get(g)-g===a.length)break e}}let f=u.get(g);const m=[];let _=s.length,v=a.length;for(;;){const b=f?f.x+f.length:0,C=f?f.y+f.length:0;if((b!==_||C!==v)&&m.push(new SequenceDiff(new OffsetRange(b,_),new OffsetRange(C,v))),!f)break;_=f.x,v=f.y,f=f.prev}return m.reverse(),new DiffAlgorithmResult(m,!1)}}class SnakePath{constructor(e,t,r,s){this.prev=e,this.x=t,this.y=r,this.length=s}}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 r=this.negativeArr;this.negativeArr=new Int32Array(r.length*2),this.negativeArr.set(r)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){const r=this.positiveArr;this.positiveArr=new Int32Array(r.length*2),this.positiveArr.set(r)}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}}class LinesSliceCharSequence{constructor(e,t,r){this.lines=e,this.range=t,this.considerWhitespaceChanges=r,this.elements=[],this.firstElementOffsetByLineIdx=[],this.lineStartOffsets=[],this.trimmedWsLengthsByLineIdx=[],this.firstElementOffsetByLineIdx.push(0);for(let s=this.range.startLineNumber;s<=this.range.endLineNumber;s++){let a=e[s-1],l=0;s===this.range.startLineNumber&&this.range.startColumn>1&&(l=this.range.startColumn-1,a=a.substring(l)),this.lineStartOffsets.push(l);let c=0;if(!r){const u=a.trimStart();c=a.length-u.length,a=u.trimEnd()}this.trimmedWsLengthsByLineIdx.push(c);const d=s===this.range.endLineNumber?Math.min(this.range.endColumn-1-l-c,a.length):a.length;for(let u=0;u<d;u++)this.elements.push(a.charCodeAt(u));s<this.range.endLineNumber&&(this.elements.push(10),this.firstElementOffsetByLineIdx.push(this.elements.length))}}toString(){return'Slice: "'.concat(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),r=getCategory(e<this.elements.length?this.elements[e]:-1);if(t===7&&r===8)return 0;if(t===8)return 150;let s=0;return t!==r&&(s+=10,t===0&&r===1&&(s+=1)),s+=getCategoryBoundaryScore(t),s+=getCategoryBoundaryScore(r),s}translateOffset(e,t="right"){const r=findLastIdxMonotonous(this.firstElementOffsetByLineIdx,a=>a<=e),s=e-this.firstElementOffsetByLineIdx[r];return new Position$1(this.range.startLineNumber+r,1+this.lineStartOffsets[r]+s+(s===0&&t==="left"?0:this.trimmedWsLengthsByLineIdx[r]))}translateRange(e){const t=this.translateOffset(e.start,"right"),r=this.translateOffset(e.endExclusive,"left");return r.isBefore(t)?Range$2.fromPositions(r,r):Range$2.fromPositions(t,r)}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 r=e;for(;r<this.elements.length&&isWordChar(this.elements[r]);)r++;return new OffsetRange(t,r)}findSubWordContaining(e){if(e<0||e>=this.elements.length||!isWordChar(this.elements[e]))return;let t=e;for(;t>0&&isWordChar(this.elements[t-1])&&!isUpperCase(this.elements[t]);)t--;let r=e;for(;r<this.elements.length&&isWordChar(this.elements[r])&&!isUpperCase(this.elements[r]);)r++;return new OffsetRange(t,r)}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 s,a;const t=(s=findLastMonotonous(this.firstElementOffsetByLineIdx,l=>l<=e.start))!=null?s:0,r=(a=findFirstMonotonous(this.firstElementOffsetByLineIdx,l=>e.endExclusive<=l))!=null?a:this.elements.length;return new OffsetRange(t,r)}}function isWordChar(o){return o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57}function isUpperCase(o){return o>=65&&o<=90}const score$1={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function getCategoryBoundaryScore(o){return score$1[o]}function getCategory(o){return o===10?8:o===13?7:isSpace(o)?6:o>=97&&o<=122?0:o>=65&&o<=90?1:o>=48&&o<=57?2:o===-1?3:o===44||o===59?5:4}function computeMovedLines(o,e,t,r,s,a){let{moves:l,excludedChanges:c}=computeMovesFromSimpleDeletionsToSimpleInsertions(o,e,t,a);if(!a.isValid())return[];const d=o.filter(g=>!c.has(g)),u=computeUnchangedMoves(d,r,s,e,t,a);return pushMany(l,u),l=joinCloseConsecutiveMoves(l),l=l.filter(g=>{const f=g.original.toOffsetRange().slice(e).map(_=>_.trim());return f.join("\n").length>=15&&countWhere(f,_=>_.length>=2)>=2}),l=removeMovesInSameDiff(o,l),l}function countWhere(o,e){let t=0;for(const r of o)e(r)&&t++;return t}function computeMovesFromSimpleDeletionsToSimpleInsertions(o,e,t,r){const s=[],a=o.filter(d=>d.modified.isEmpty&&d.original.length>=3).map(d=>new LineRangeFragment(d.original,e,d)),l=new Set(o.filter(d=>d.original.isEmpty&&d.modified.length>=3).map(d=>new LineRangeFragment(d.modified,t,d))),c=new Set;for(const d of a){let u=-1,g;for(const f of l){const m=d.computeSimilarity(f);m>u&&(u=m,g=f)}if(u>.9&&g&&(l.delete(g),s.push(new LineRangeMapping(d.range,g.range)),c.add(d.source),c.add(g.source)),!r.isValid())return{moves:s,excludedChanges:c}}return{moves:s,excludedChanges:c}}function computeUnchangedMoves(o,e,t,r,s,a){const l=[],c=new SetMap;for(const m of o)for(let _=m.original.startLineNumber;_<m.original.endLineNumberExclusive-2;_++){const v="".concat(e[_-1],":").concat(e[_+1-1],":").concat(e[_+2-1]);c.add(v,{range:new LineRange(_,_+3)})}const d=[];o.sort(compareBy(m=>m.modified.startLineNumber,numberComparator));for(const m of o){let _=[];for(let v=m.modified.startLineNumber;v<m.modified.endLineNumberExclusive-2;v++){const b="".concat(t[v-1],":").concat(t[v+1-1],":").concat(t[v+2-1]),C=new LineRange(v,v+3),y=[];c.forEach(b,({range:S})=>{for(const E of _)if(E.originalLineRange.endLineNumberExclusive+1===S.endLineNumberExclusive&&E.modifiedLineRange.endLineNumberExclusive+1===C.endLineNumberExclusive){E.originalLineRange=new LineRange(E.originalLineRange.startLineNumber,S.endLineNumberExclusive),E.modifiedLineRange=new LineRange(E.modifiedLineRange.startLineNumber,C.endLineNumberExclusive),y.push(E);return}const w={modifiedLineRange:C,originalLineRange:S};d.push(w),y.push(w)}),_=y}if(!a.isValid())return[]}d.sort(reverseOrder(compareBy(m=>m.modifiedLineRange.length,numberComparator)));const u=new LineRangeSet,g=new LineRangeSet;for(const m of d){const _=m.modifiedLineRange.startLineNumber-m.originalLineRange.startLineNumber,v=u.subtractFrom(m.modifiedLineRange),b=g.subtractFrom(m.originalLineRange).getWithDelta(_),C=v.getIntersection(b);for(const y of C.ranges){if(y.length<3)continue;const S=y,w=y.delta(-_);l.push(new LineRangeMapping(w,S)),u.addRange(S),g.addRange(w)}}l.sort(compareBy(m=>m.original.startLineNumber,numberComparator));const f=new MonotonousArray(o);for(let m=0;m<l.length;m++){const _=l[m],v=f.findLastMonotonous(L=>L.original.startLineNumber<=_.original.startLineNumber),b=findLastMonotonous(o,L=>L.modified.startLineNumber<=_.modified.startLineNumber),C=Math.max(_.original.startLineNumber-v.original.startLineNumber,_.modified.startLineNumber-b.modified.startLineNumber),y=f.findLastMonotonous(L=>L.original.startLineNumber<_.original.endLineNumberExclusive),S=findLastMonotonous(o,L=>L.modified.startLineNumber<_.modified.endLineNumberExclusive),w=Math.max(y.original.endLineNumberExclusive-_.original.endLineNumberExclusive,S.modified.endLineNumberExclusive-_.modified.endLineNumberExclusive);let E;for(E=0;E<C;E++){const L=_.original.startLineNumber-E-1,k=_.modified.startLineNumber-E-1;if(L>r.length||k>s.length||u.contains(k)||g.contains(L)||!areLinesSimilar(r[L-1],s[k-1],a))break}E>0&&(g.addRange(new LineRange(_.original.startLineNumber-E,_.original.startLineNumber)),u.addRange(new LineRange(_.modified.startLineNumber-E,_.modified.startLineNumber)));let x;for(x=0;x<w;x++){const L=_.original.endLineNumberExclusive+x,k=_.modified.endLineNumberExclusive+x;if(L>r.length||k>s.length||u.contains(k)||g.contains(L)||!areLinesSimilar(r[L-1],s[k-1],a))break}x>0&&(g.addRange(new LineRange(_.original.endLineNumberExclusive,_.original.endLineNumberExclusive+x)),u.addRange(new LineRange(_.modified.endLineNumberExclusive,_.modified.endLineNumberExclusive+x))),(E>0||x>0)&&(l[m]=new LineRangeMapping(new LineRange(_.original.startLineNumber-E,_.original.endLineNumberExclusive+x),new LineRange(_.modified.startLineNumber-E,_.modified.endLineNumberExclusive+x)))}return l}function areLinesSimilar(o,e,t){if(o.trim()===e.trim())return!0;if(o.length>300&&e.length>300)return!1;const s=new MyersDiffAlgorithm().compute(new LinesSliceCharSequence([o],new Range$2(1,1,1,o.length),!1),new LinesSliceCharSequence([e],new Range$2(1,1,1,e.length),!1),t);let a=0;const l=SequenceDiff.invert(s.diffs,o.length);for(const g of l)g.seq1Range.forEach(f=>{isSpace(o.charCodeAt(f))||a++});function c(g){let f=0;for(let m=0;m<o.length;m++)isSpace(g.charCodeAt(m))||f++;return f}const d=c(o.length>e.length?o:e);return a/d>.6&&d>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 r=e[e.length-1],s=o[t],a=s.original.startLineNumber-r.original.endLineNumberExclusive,l=s.modified.startLineNumber-r.modified.endLineNumberExclusive;if(a>=0&&l>=0&&a+l<=2){e[e.length-1]=r.join(s);continue}e.push(s)}return e}function removeMovesInSameDiff(o,e){const t=new MonotonousArray(o);return e=e.filter(r=>{const s=t.findLastMonotonous(c=>c.original.startLineNumber<r.original.endLineNumberExclusive)||new LineRangeMapping(new LineRange(1,1),new LineRange(1,1)),a=findLastMonotonous(o,c=>c.modified.startLineNumber<r.modified.endLineNumberExclusive);return s!==a}),e}function optimizeSequenceDiffs(o,e,t){let r=t;return r=joinSequenceDiffsByShifting(o,e,r),r=joinSequenceDiffsByShifting(o,e,r),r=shiftSequenceDiffs(o,e,r),r}function joinSequenceDiffsByShifting(o,e,t){if(t.length===0)return t;const r=[];r.push(t[0]);for(let a=1;a<t.length;a++){const l=r[r.length-1];let c=t[a];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){const d=c.seq1Range.start-l.seq1Range.endExclusive;let u;for(u=1;u<=d&&!(o.getElement(c.seq1Range.start-u)!==o.getElement(c.seq1Range.endExclusive-u)||e.getElement(c.seq2Range.start-u)!==e.getElement(c.seq2Range.endExclusive-u));u++);if(u--,u===d){r[r.length-1]=new SequenceDiff(new OffsetRange(l.seq1Range.start,c.seq1Range.endExclusive-d),new OffsetRange(l.seq2Range.start,c.seq2Range.endExclusive-d));continue}c=c.delta(-u)}r.push(c)}const s=[];for(let a=0;a<r.length-1;a++){const l=r[a+1];let c=r[a];if(c.seq1Range.isEmpty||c.seq2Range.isEmpty){const d=l.seq1Range.start-c.seq1Range.endExclusive;let u;for(u=0;u<d&&!(!o.isStronglyEqual(c.seq1Range.start+u,c.seq1Range.endExclusive+u)||!e.isStronglyEqual(c.seq2Range.start+u,c.seq2Range.endExclusive+u));u++);if(u===d){r[a+1]=new SequenceDiff(new OffsetRange(c.seq1Range.start+d,l.seq1Range.endExclusive),new OffsetRange(c.seq2Range.start+d,l.seq2Range.endExclusive));continue}u>0&&(c=c.delta(u))}s.push(c)}return r.length>0&&s.push(r[r.length-1]),s}function shiftSequenceDiffs(o,e,t){if(!o.getBoundaryScore||!e.getBoundaryScore)return t;for(let r=0;r<t.length;r++){const s=r>0?t[r-1]:void 0,a=t[r],l=r+1<t.length?t[r+1]:void 0,c=new OffsetRange(s?s.seq1Range.endExclusive+1:0,l?l.seq1Range.start-1:o.length),d=new OffsetRange(s?s.seq2Range.endExclusive+1:0,l?l.seq2Range.start-1:e.length);a.seq1Range.isEmpty?t[r]=shiftDiffToBetterPosition(a,o,e,c,d):a.seq2Range.isEmpty&&(t[r]=shiftDiffToBetterPosition(a.swap(),e,o,d,c).swap())}return t}function shiftDiffToBetterPosition(o,e,t,r,s){let l=1;for(;o.seq1Range.start-l>=r.start&&o.seq2Range.start-l>=s.start&&t.isStronglyEqual(o.seq2Range.start-l,o.seq2Range.endExclusive-l)&&l<100;)l++;l--;let c=0;for(;o.seq1Range.start+c<r.endExclusive&&o.seq2Range.endExclusive+c<s.endExclusive&&t.isStronglyEqual(o.seq2Range.start+c,o.seq2Range.endExclusive+c)&&c<100;)c++;if(l===0&&c===0)return o;let d=0,u=-1;for(let g=-l;g<=c;g++){const f=o.seq2Range.start+g,m=o.seq2Range.endExclusive+g,_=o.seq1Range.start+g,v=e.getBoundaryScore(_)+t.getBoundaryScore(f)+t.getBoundaryScore(m);v>u&&(u=v,d=g)}return o.delta(d)}function removeShortMatches(o,e,t){const r=[];for(const s of t){const a=r[r.length-1];if(!a){r.push(s);continue}s.seq1Range.start-a.seq1Range.endExclusive<=2||s.seq2Range.start-a.seq2Range.endExclusive<=2?r[r.length-1]=new SequenceDiff(a.seq1Range.join(s.seq1Range),a.seq2Range.join(s.seq2Range)):r.push(s)}return r}function extendDiffsToEntireWordIfAppropriate(o,e,t,r,s=!1){const a=SequenceDiff.invert(t,o.length),l=[];let c=new OffsetPair(0,0);function d(g,f){if(g.offset1<c.offset1||g.offset2<c.offset2)return;const m=r(o,g.offset1),_=r(e,g.offset2);if(!m||!_)return;let v=new SequenceDiff(m,_);const b=v.intersect(f);let C=b.seq1Range.length,y=b.seq2Range.length;for(;a.length>0;){const S=a[0];if(!(S.seq1Range.intersects(v.seq1Range)||S.seq2Range.intersects(v.seq2Range)))break;const E=r(o,S.seq1Range.start),x=r(e,S.seq2Range.start),L=new SequenceDiff(E,x),k=L.intersect(S);if(C+=k.seq1Range.length,y+=k.seq2Range.length,v=v.join(L),v.seq1Range.endExclusive>=S.seq1Range.endExclusive)a.shift();else break}(s&&C+y<v.seq1Range.length+v.seq2Range.length||C+y<(v.seq1Range.length+v.seq2Range.length)*2/3)&&l.push(v),c=v.getEndExclusives()}for(;a.length>0;){const g=a.shift();g.seq1Range.isEmpty||(d(g.getStarts(),g),d(g.getEndExclusives().delta(-1),g))}return mergeSequenceDiffs(t,l)}function mergeSequenceDiffs(o,e){const t=[];for(;o.length>0||e.length>0;){const r=o[0],s=e[0];let a;r&&(!s||r.seq1Range.start<s.seq1Range.start)?a=o.shift():a=e.shift(),t.length>0&&t[t.length-1].seq1Range.endExclusive>=a.seq1Range.start?t[t.length-1]=t[t.length-1].join(a):t.push(a)}return t}function removeVeryShortMatchingLinesBetweenDiffs(o,e,t){let r=t;if(r.length===0)return r;let s=0,a;do{a=!1;const l=[r[0]];for(let c=1;c<r.length;c++){let g=function(m,_){const v=new OffsetRange(u.seq1Range.endExclusive,d.seq1Range.start);return o.getText(v).replace(/\s/g,"").length<=4&&(m.seq1Range.length+m.seq2Range.length>5||_.seq1Range.length+_.seq2Range.length>5)};const d=r[c],u=l[l.length-1];g(u,d)?(a=!0,l[l.length-1]=l[l.length-1].join(d)):l.push(d)}r=l}while(s++<10&&a);return r}function removeVeryShortMatchingTextBetweenLongDiffs(o,e,t){let r=t;if(r.length===0)return r;let s=0,a;do{a=!1;const c=[r[0]];for(let d=1;d<r.length;d++){let f=function(_,v){const b=new OffsetRange(g.seq1Range.endExclusive,u.seq1Range.start);if(o.countLinesIn(b)>5||b.length>500)return!1;const y=o.getText(b).trim();if(y.length>20||y.split(/\r\n|\r|\n/).length>1)return!1;const S=o.countLinesIn(_.seq1Range),w=_.seq1Range.length,E=e.countLinesIn(_.seq2Range),x=_.seq2Range.length,L=o.countLinesIn(v.seq1Range),k=v.seq1Range.length,D=e.countLinesIn(v.seq2Range),I=v.seq2Range.length,T=130;function M(R){return Math.min(R,T)}return Math.pow(Math.pow(M(S*40+w),1.5)+Math.pow(M(E*40+x),1.5),1.5)+Math.pow(Math.pow(M(L*40+k),1.5)+Math.pow(M(D*40+I),1.5),1.5)>(T**1.5)**1.5*1.3};const u=r[d],g=c[c.length-1];f(g,u)?(a=!0,c[c.length-1]=c[c.length-1].join(u)):c.push(u)}r=c}while(s++<10&&a);const l=[];return forEachWithNeighbors(r,(c,d,u)=>{let g=d;function f(y){return y.length>0&&y.trim().length<=3&&d.seq1Range.length+d.seq2Range.length>100}const m=o.extendToFullLines(d.seq1Range),_=o.getText(new OffsetRange(m.start,d.seq1Range.start));f(_)&&(g=g.deltaStart(-_.length));const v=o.getText(new OffsetRange(d.seq1Range.endExclusive,m.endExclusive));f(v)&&(g=g.deltaEnd(v.length));const b=SequenceDiff.fromOffsetPairs(c?c.getEndExclusives():OffsetPair.zero,u?u.getStarts():OffsetPair.max),C=g.intersect(b);l.length>0&&C.getStarts().equals(l[l.length-1].getEndExclusives())?l[l.length-1]=l[l.length-1].join(C):l.push(C)}),l}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]),r=e===this.lines.length?0:getIndentation(this.lines[e]);return 1e3-(t+r)}getText(e){return this.lines.slice(e.start,e.endExclusive).join("\n")}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,r){if(e.length<=1&&equals$2(e,t,(k,D)=>k===D))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,e.length+1),new LineRange(1,t.length+1),[new RangeMapping(new Range$2(1,1,e.length,e[e.length-1].length+1),new Range$2(1,1,t.length,t[t.length-1].length+1))])],[],!1);const s=r.maxComputationTimeMs===0?InfiniteTimeout.instance:new DateTimeout(r.maxComputationTimeMs),a=!r.ignoreTrimWhitespace,l=new Map;function c(k){let D=l.get(k);return D===void 0&&(D=l.size,l.set(k,D)),D}const d=e.map(k=>c(k.trim())),u=t.map(k=>c(k.trim())),g=new LineSequence(d,e),f=new LineSequence(u,t),m=g.length+f.length<1700?this.dynamicProgrammingDiffing.compute(g,f,s,(k,D)=>e[k]===t[D]?t[D].length===0?.1:1+Math.log(1+t[D].length):.99):this.myersDiffingAlgorithm.compute(g,f,s);let _=m.diffs,v=m.hitTimeout;_=optimizeSequenceDiffs(g,f,_),_=removeVeryShortMatchingLinesBetweenDiffs(g,f,_);const b=[],C=k=>{if(a)for(let D=0;D<k;D++){const I=y+D,T=S+D;if(e[I]!==t[T]){const M=this.refineDiff(e,t,new SequenceDiff(new OffsetRange(I,I+1),new OffsetRange(T,T+1)),s,a,r);for(const R of M.mappings)b.push(R);M.hitTimeout&&(v=!0)}}};let y=0,S=0;for(const k of _){assertFn(()=>k.seq1Range.start-y===k.seq2Range.start-S);const D=k.seq1Range.start-y;C(D),y=k.seq1Range.endExclusive,S=k.seq2Range.endExclusive;const I=this.refineDiff(e,t,k,s,a,r);I.hitTimeout&&(v=!0);for(const T of I.mappings)b.push(T)}C(e.length-y);const w=new ArrayText(e),E=new ArrayText(t),x=lineRangeMappingFromRangeMappings(b,w,E);let L=[];return r.computeMoves&&(L=this.computeMoves(x,e,t,d,u,s,a,r)),assertFn(()=>{function k(I,T){if(I.lineNumber<1||I.lineNumber>T.length)return!1;const M=T[I.lineNumber-1];return!(I.column<1||I.column>M.length+1)}function D(I,T){return!(I.startLineNumber<1||I.startLineNumber>T.length+1||I.endLineNumberExclusive<1||I.endLineNumberExclusive>T.length+1)}for(const I of x){if(!I.innerChanges)return!1;for(const T of I.innerChanges)if(!(k(T.modifiedRange.getStartPosition(),t)&&k(T.modifiedRange.getEndPosition(),t)&&k(T.originalRange.getStartPosition(),e)&&k(T.originalRange.getEndPosition(),e)))return!1;if(!D(I.modified,t)||!D(I.original,e))return!1}return!0}),new LinesDiff(x,L,v)}computeMoves(e,t,r,s,a,l,c,d){return computeMovedLines(e,t,r,s,a,l).map(f=>{const m=this.refineDiff(t,r,new SequenceDiff(f.original.toOffsetRange(),f.modified.toOffsetRange()),l,c,d),_=lineRangeMappingFromRangeMappings(m.mappings,new ArrayText(t),new ArrayText(r),!0);return new MovedText(f,_)})}refineDiff(e,t,r,s,a,l){const d=toLineRangeMapping(r).toRangeMapping2(e,t),u=new LinesSliceCharSequence(e,d.originalRange,a),g=new LinesSliceCharSequence(t,d.modifiedRange,a),f=u.length+g.length<500?this.dynamicProgrammingDiffing.compute(u,g,s):this.myersDiffingAlgorithm.compute(u,g,s);let m=f.diffs;return m=optimizeSequenceDiffs(u,g,m),m=extendDiffsToEntireWordIfAppropriate(u,g,m,(v,b)=>v.findWordContaining(b)),l.extendToSubwords&&(m=extendDiffsToEntireWordIfAppropriate(u,g,m,(v,b)=>v.findSubWordContaining(b),!0)),m=removeShortMatches(u,g,m),m=removeVeryShortMatchingTextBetweenLongDiffs(u,g,m),{mappings:m.map(v=>new RangeMapping(u.translateRange(v.seq1Range),g.translateRange(v.seq2Range))),hitTimeout:f.hitTimeout}}}function toLineRangeMapping(o){return new LineRangeMapping(new LineRange(o.seq1Range.start+1,o.seq1Range.endExclusive+1),new LineRange(o.seq2Range.start+1,o.seq2Range.endExclusive+1))}const linesDiffComputers={getLegacy:()=>new LegacyLinesDiffComputer,getDefault:()=>new DefaultLinesDiffComputer};var InlineSuggestionItem;(function(o){function e(t,r){return!t.isInlineEdit&&!t.uri?InlineCompletionItem.create(t,r):InlineEditItem.create(t,r)}o.create=e})(InlineSuggestionItem||(InlineSuggestionItem={}));class InlineSuggestionItemBase{constructor(e,t,r){this._data=e,this.identity=t,this.hint=r}get source(){return this._data.source}get isFromExplicitRequest(){return this._data.context.triggerKind===InlineCompletionTriggerKind$1.Explicit}get forwardStable(){var e;return(e=this.source.inlineSuggestions.enableForwardStability)!=null?e:!1}get editRange(){return this.getSingleTextEdit().range}get targetRange(){var e,t;return(e=this.hint)!=null&&e.range&&!this.hint.jumpToEdit?(t=this.hint)==null?void 0:t.range:this.editRange}get insertText(){return this.getSingleTextEdit().text}get semanticId(){return this.hash}get action(){return this._sourceInlineCompletion.gutterMenuLinkAction}get command(){return this._sourceInlineCompletion.command}get warning(){return this._sourceInlineCompletion.warning}get showInlineEditMenu(){return!!this._sourceInlineCompletion.showInlineEditMenu}get hash(){return JSON.stringify([this.getSingleTextEdit().text,this.getSingleTextEdit().range.getStartPosition().toString()])}get requestUuid(){return this._data.context.requestUuid}get partialAccepts(){return this._data.partialAccepts}get _sourceInlineCompletion(){return this._data.sourceInlineCompletion}addRef(){this.identity.addRef(),this.source.addRef()}removeRef(){this.identity.removeRef(),this.source.removeRef()}reportInlineEditShown(e,t,r){this._data.reportInlineEditShown(e,this.insertText,t,r)}reportPartialAccept(e,t,r){this._data.reportPartialAccept(e,t,r)}reportEndOfLife(e){this._data.reportEndOfLife(e)}setEndOfLifeReason(e){this._data.setEndOfLifeReason(e)}setIsPreceeded(e){this._data.setIsPreceeded(e.partialAccepts)}setNotShownReasonIfNotSet(e){this._data.setNotShownReason(e)}getSourceCompletion(){return this._sourceInlineCompletion}}const es=class es{constructor(){this._onDispose=observableSignal(this),this._jumpedTo=observableValue(this,!1),this._refCount=1,this.id="InlineCompletionIdentity"+es.idCounter++}get jumpedTo(){return this._jumpedTo}addRef(){this._refCount++}removeRef(){this._refCount--,this._refCount===0&&this._onDispose.trigger(void 0)}setJumpTo(e){this._jumpedTo.set(!0,e)}};es.idCounter=0;let InlineSuggestionIdentity=es;class InlineSuggestHint{static create(e){return new InlineSuggestHint(Range$2.lift(e.range),e.content,e.style,e.jumpToEdit)}constructor(e,t,r,s){this.range=e,this.content=t,this.style=r,this.jumpToEdit=s}withEdit(e,t){const r=new OffsetRange(t.getOffset(this.range.getStartPosition()),t.getOffset(this.range.getEndPosition())),s=applyEditsToRanges([r],e)[0];if(!s)return;const a=t.getRange(s);return new InlineSuggestHint(a,this.content,this.style,this.jumpToEdit)}}class InlineCompletionItem extends InlineSuggestionItemBase{static create(e,t){const r=new InlineSuggestionIdentity,s=getPositionOffsetTransformerFromTextModel(t),a=e.insertText.replace(/\r\n|\r|\n/g,t.getEOL()),l=reshapeInlineCompletion(new StringReplacement(s.getOffsetRange(e.range),a),t),c=l.removeCommonSuffixAndPrefix(t.getValue()),d=s.getTextReplacement(l),u=e.hint?InlineSuggestHint.create(e.hint):void 0;return new InlineCompletionItem(l,c,d,d.range,e.snippetInfo,e.additionalTextEdits,e,r,u)}constructor(e,t,r,s,a,l,c,d,u){super(c,d,u),this._edit=e,this._trimmedEdit=t,this._textEdit=r,this._originalRange=s,this.snippetInfo=a,this.additionalTextEdits=l,this.isInlineEdit=!1}get hash(){return JSON.stringify(this._trimmedEdit.toJson())}getSingleTextEdit(){return this._textEdit}withIdentity(e){return new InlineCompletionItem(this._edit,this._trimmedEdit,this._textEdit,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,e,this.hint)}withEdit(e,t){const r=applyEditsToRanges([this._edit.replaceRange],e);if(r.length===0)return;const s=new StringReplacement(r[0],this._textEdit.text),a=getPositionOffsetTransformerFromTextModel(t),l=a.getTextReplacement(s);let c=this.hint;if(c&&(c=c.withEdit(e,a),!c))return;const d=s.removeCommonSuffixAndPrefix(t.getValue());return new InlineCompletionItem(s,d,l,this._originalRange,this.snippetInfo,this.additionalTextEdits,this._data,this.identity,c)}canBeReused(e,t){const r=this._textEdit.range;return!!r&&r.containsPosition(t)&&this.isVisible(e,t)&&TextLength.ofRange(r).isGreaterThanOrEqualTo(TextLength.ofRange(this._originalRange))}isVisible(e,t){const r=this.getSingleTextEdit();return inlineCompletionIsVisible(r,this._originalRange,e,t)}}function inlineCompletionIsVisible(o,e,t,r){const s=singleTextRemoveCommonPrefix(o,t),a=o.range;if(!a||e&&!e.getStartPosition().equals(a.getStartPosition())||r.lineNumber!==s.range.startLineNumber||s.isEmpty)return!1;const l=t.getValueInRange(s.range,1),c=s.text,d=Math.max(0,r.column-s.range.startColumn);let u=c.substring(0,d),g=c.substring(d),f=l.substring(0,d),m=l.substring(d);const _=t.getLineIndentColumn(s.range.startLineNumber);return s.range.startColumn<=_&&(f=f.trimStart(),f.length===0&&(m=m.trimStart()),u=u.trimStart(),u.length===0&&(g=g.trimStart())),u.startsWith(f)&&!!matchesSubString(m,g)}class InlineEditItem extends InlineSuggestionItemBase{static create(e,t){const r=getStringEdit(t,e.range,e.insertText),s=new TextModelText(t),a=TextEdit.fromStringEdit(r,s),l=r.isEmpty()?new TextReplacement(new Range$2(1,1,1,1),""):a.toReplacement(s),c=new InlineSuggestionIdentity,d=r.replacements.map(g=>{const f=Range$2.fromPositions(t.getPositionAt(g.replaceRange.start),t.getPositionAt(g.replaceRange.endExclusive)),m=t.getValueInRange(f);return SingleUpdatedNextEdit.create(g,m)}),u=e.hint?InlineSuggestHint.create(e.hint):void 0;return new InlineEditItem(r,l,e.uri,e,c,d,u,!1,t.getVersionId())}constructor(e,t,r,s,a,l,c,d=!1,u){super(s,a,c),this._edit=e,this._textEdit=t,this.uri=r,this._edits=l,this._lastChangePartOfInlineEdit=d,this._inlineEditModelVersion=u,this.snippetInfo=void 0,this.additionalTextEdits=[],this.isInlineEdit=!0}get updatedEditModelVersion(){return this._inlineEditModelVersion}get updatedEdit(){return this._edit}getSingleTextEdit(){return this._textEdit}withIdentity(e){return new InlineEditItem(this._edit,this._textEdit,this.uri,this._data,e,this._edits,this.hint,this._lastChangePartOfInlineEdit,this._inlineEditModelVersion)}canBeReused(e,t){return this._lastChangePartOfInlineEdit&&this.updatedEditModelVersion===e.getVersionId()}withEdit(e,t){return this._applyTextModelChanges(e,this._edits,t)}_applyTextModelChanges(e,t,r){if(t=t.map(f=>f.applyTextModelChanges(e)),t.some(f=>f.edit===void 0))return;const s=r.getVersionId();let a=this._inlineEditModelVersion;const l=t.some(f=>f.lastChangeUpdatedEdit);if(l&&(a=s!=null?s:-1),s===null||a+20<s||(t=t.filter(f=>!f.edit.isEmpty),t.length===0))return;const c=new StringEdit(t.map(f=>f.edit)),d=getPositionOffsetTransformerFromTextModel(r),u=d.getTextEdit(c).toReplacement(new TextModelText(r));let g=this.hint;if(!(g&&(g=g.withEdit(e,d),!g)))return new InlineEditItem(c,u,this.uri,this._data,this.identity,t,g,l,a)}}function getStringEdit(o,e,t){const r=o.getEOL(),s=o.getValueInRange(e),a=t.replace(/\r\n|\r|\n/g,r),d=linesDiffComputers.getDefault().computeDiff(splitLines(s),splitLines(a),{ignoreTrimWhitespace:!1,computeMoves:!1,extendToSubwords:!0,maxComputationTimeMs:500}).changes.flatMap(m=>{var _;return(_=m.innerChanges)!=null?_:[]});function u(m,_){const v=TextLength.fromPosition(_.getStartPosition());return TextLength.ofRange(_).createRange(v.addToPosition(m))}const g=new StringText(a);return new StringEdit(d.map(m=>{const _=u(e.getStartPosition(),m.originalRange),v=getPositionOffsetTransformerFromTextModel(o).getOffsetRange(_),b=g.getValueOfRange(m.modifiedRange),C=new StringReplacement(v,b),y=o.getValueInRange(_);return reshapeInlineEdit(C,y,d.length,o)}))}class SingleUpdatedNextEdit{static create(e,t){const r=commonPrefixLength(e.newText,t),s=commonSuffixLength(e.newText,t),a=e.newText.substring(r,e.newText.length-s);return new SingleUpdatedNextEdit(e,a,r,s)}get edit(){return this._edit}get lastChangeUpdatedEdit(){return this._lastChangeUpdatedEdit}constructor(e,t,r,s,a=!1){this._edit=e,this._trimmedNewText=t,this._prefixLength=r,this._suffixLength=s,this._lastChangeUpdatedEdit=a}applyTextModelChanges(e){const t=this._clone();return t._applyTextModelChanges(e),t}_clone(){return new SingleUpdatedNextEdit(this._edit,this._trimmedNewText,this._prefixLength,this._suffixLength,this._lastChangeUpdatedEdit)}_applyTextModelChanges(e){if(this._lastChangeUpdatedEdit=!1,!this._edit)throw new BugIndicatingError("UpdatedInnerEdits: No edit to apply changes to");const t=this._applyChanges(this._edit,e);if(!t){this._edit=void 0;return}this._edit=t.edit,this._lastChangeUpdatedEdit=t.editHasChanged}_applyChanges(e,t){let r=e.replaceRange.start,s=e.replaceRange.endExclusive,a=e.newText,l=!1;const c=this._prefixLength>0||this._suffixLength>0;for(let d=t.replacements.length-1;d>=0;d--){const u=t.replacements[d],g=u.newText.length>0&&u.replaceRange.isEmpty;if(g&&!c&&u.replaceRange.start===r&&a.startsWith(u.newText)){r+=u.newText.length,a=a.substring(u.newText.length),s=Math.max(r,s),l=!0;continue}if(g&&c&&u.replaceRange.start===r+this._prefixLength&&this._trimmedNewText.startsWith(u.newText)){s+=u.newText.length,l=!0,this._prefixLength+=u.newText.length,this._trimmedNewText=this._trimmedNewText.substring(u.newText.length);continue}if(u.newText.length===0&&u.replaceRange.length>0&&u.replaceRange.start>=r+this._prefixLength&&u.replaceRange.endExclusive<=s-this._suffixLength){s-=u.replaceRange.length,l=!0;continue}if(u.equals(e)){l=!0,r=u.replaceRange.endExclusive,a="";continue}if(!(u.replaceRange.start>s)){if(u.replaceRange.endExclusive<r){r+=u.newText.length-u.replaceRange.length,s+=u.newText.length-u.replaceRange.length;continue}return}}return this._trimmedNewText.length===0&&r+this._prefixLength===s-this._suffixLength?{edit:new StringReplacement(new OffsetRange(r+this._prefixLength,r+this._prefixLength),""),editHasChanged:!0}:{edit:new StringReplacement(new OffsetRange(r,s),a),editHasChanged:l}}}function reshapeInlineCompletion(o,e){const t=e.getEOL();return o.replaceRange.isEmpty&&o.newText.includes(t)&&(o=reshapeMultiLineInsertion(o,e)),o}function reshapeInlineEdit(o,e,t,r){const s=r.getEOL();if(o.newText.endsWith(s)&&e.endsWith(s)&&(o=new StringReplacement(o.replaceRange.deltaEnd(-s.length),o.newText.slice(0,-s.length))),t===1&&o.replaceRange.isEmpty&&o.newText.includes(s)){const a=r.getPositionAt(o.replaceRange.start);r.getLineLength(a.lineNumber)!==0&&(o=reshapeMultiLineInsertion(o,r))}if(t===1){const a=commonPrefixLength(e,o.newText),l=commonSuffixLength(e.slice(a),o.newText.slice(a));if(a+l===e.length)return new StringReplacement(o.replaceRange.deltaStart(a).deltaEnd(-l),o.newText.substring(a,o.newText.length-l));if(a+l===o.newText.length)return new StringReplacement(o.replaceRange.deltaStart(a).deltaEnd(-l),"")}return o}function reshapeMultiLineInsertion(o,e){if(!o.replaceRange.isEmpty)throw new BugIndicatingError("Unexpected original range");if(o.replaceRange.start===0)return o;const t=e.getEOL(),r=e.getPositionAt(o.replaceRange.start),s=r.column,a=r.lineNumber;return s===1&&a>1&&o.newText.endsWith(t)&&!o.newText.startsWith(t)?new StringReplacement(o.replaceRange.delta(-1),t+o.newText.slice(0,-t.length)):o}function fixBracketsInLine(o,e){const t=new DenseKeyProvider,r=new LanguageAgnosticBracketTokens(t,u=>e.getLanguageConfiguration(u)),s=new TextBufferTokenizer(new StaticTokenizerSource([o]),r),a=parseDocument(s,[],void 0,!0);let l="";const c=o.getLineContent();function d(u,g){if(u.kind===2)if(d(u.openingBracket,g),g=lengthAdd(g,u.openingBracket.length),u.child&&(d(u.child,g),g=lengthAdd(g,u.child.length)),u.closingBracket)d(u.closingBracket,g),g=lengthAdd(g,u.closingBracket.length);else{const m=r.getSingleLanguageBracketTokens(u.openingBracket.languageId).findClosingTokenText(u.openingBracket.bracketIds);l+=m}else if(u.kind!==3){if(u.kind===0||u.kind===1)l+=c.substring(g,lengthAdd(g,u.length));else if(u.kind===4)for(const f of u.children)d(f,g),g=lengthAdd(g,f.length)}}return d(a,lengthZero),l}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 DirectedGraph{constructor(){this._nodes=new Set,this._outgoingEdges=new Map}static from(e,t){const r=new DirectedGraph;for(const s of e)r._nodes.add(s);for(const s of e){const a=t(s);if(a.length>0){const l=new Set;for(const c of a)l.add(c);r._outgoingEdges.set(s,l)}}return r}removeCycles(){const e=[],t=new Set,r=new Set,s=[],a=l=>{t.add(l),r.add(l);const c=this._outgoingEdges.get(l);if(c)for(const d of c)t.has(d)?r.has(d)&&(e.push(d),s.push({from:l,to:d})):a(d);r.delete(l)};for(const l of this._nodes)t.has(l)||a(l);for(const{from:l,to:c}of s){const d=this._outgoingEdges.get(l);d&&d.delete(c)}return{foundCycles:e}}getOutgoing(e){const t=this._outgoingEdges.get(e);return t?Array.from(t):[]}}var InlineEditTabAction;(function(o){o.Jump="jump",o.Accept="accept",o.Inactive="inactive"})(InlineEditTabAction||(InlineEditTabAction={}));var InlineCompletionViewKind;(function(o){o.GhostText="ghostText",o.Custom="custom",o.SideBySide="sideBySide",o.Deletion="deletion",o.InsertionInline="insertionInline",o.InsertionMultiLine="insertionMultiLine",o.WordReplacements="wordReplacements",o.LineReplacement="lineReplacement",o.Collapsed="collapsed"})(InlineCompletionViewKind||(InlineCompletionViewKind={}));function provideInlineCompletions(o,e,t,r,s,a){const l=prefixedUuid("icr"),c=new CancellationTokenSource$1;let d;const u={...r,requestUuid:l},g=getDefaultRange(e,t),f=groupByMap$1(o,y=>y.groupId),m=DirectedGraph.from(o,y=>{var S,w;return(w=(S=y.yieldsToGroupIds)==null?void 0:S.flatMap(E=>{var x;return(x=f.get(E))!=null?x:[]}))!=null?w:[]}),{foundCycles:_}=m.removeCycles();_.length>0&&onUnexpectedExternalError(new Error("Inline completions: cyclic yield-to dependency detected."+" Path: ".concat(_.map(y=>y.toString?y.toString():""+y).join(" -> "))));let v=0;const b=new CachedFunction(async y=>{var S;try{if(v++,c.token.isCancellationRequested)return;const w=m.getOutgoing(y);for(const I of w){const T=await b.get(I);if(T)for(const M of T.inlineSuggestions.items){if(M.isInlineEdit||typeof M.insertText!="string"&&M.insertText!==void 0)return;if(M.insertText!==void 0){const R=new TextReplacement((S=Range$2.lift(M.range))!=null?S:g,M.insertText);if(inlineCompletionIsVisible(R,void 0,t,e))return}}}let E;const x=Date.now();try{E=await y.provideInlineCompletions(t,e,u,c.token)}catch(I){onUnexpectedExternalError(I);return}const L=Date.now();if(!E)return;const k=[],D=new InlineSuggestionList(E,k,y);if(D.addRef(),runWhenCancelled(c.token,()=>D.removeRef(d)),c.token.isCancellationRequested)return;for(const I of E.items)k.push(toInlineSuggestData(I,D,g,t,a,u,s,{startTime:x,endTime:L}));return D}finally{v--}}),C=AsyncIterableProducer.fromPromisesResolveOrder(o.map(y=>b.get(y))).filter(isDefined);return{contextWithUuid:u,get didAllProvidersReturn(){return v===0},lists:C,cancelAndDispose:y=>{d===void 0&&(d=y,c.dispose(!0))}}}function runWhenCancelled(o,e){if(o.isCancellationRequested)return e(),Disposable$1.None;{const t=o.onCancellationRequested(()=>{t.dispose(),e()});return{dispose:()=>t.dispose()}}}function toInlineSuggestData(o,e,t,r,s,a,l,c){var f;let d,u,g=o.range?Range$2.lift(o.range):t;if(typeof o.insertText=="string"){if(d=o.insertText,s&&o.completeBracketPairs){d=closeBrackets(d,g.getStartPosition(),r,s);const m=d.length-o.insertText.length;m!==0&&(g=new Range$2(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn+m))}u=void 0}else if(o.insertText===void 0)d="",u=void 0,g=new Range$2(1,1,1,1);else if("snippet"in o.insertText){const m=o.insertText.snippet.length;if(s&&o.completeBracketPairs){o.insertText.snippet=closeBrackets(o.insertText.snippet,g.getStartPosition(),r,s);const v=o.insertText.snippet.length-m;v!==0&&(g=new Range$2(g.startLineNumber,g.startColumn,g.endLineNumber,g.endColumn+v))}const _=new SnippetParser().parse(o.insertText.snippet);_.children.length===1&&_.children[0]instanceof Text?(d=_.children[0].value,u=void 0):(d=_.toString(),u={snippet:o.insertText.snippet,range:g})}else assertNever(o.insertText);return new InlineSuggestData(g,d,u,URI.revive(o.uri),o.hint,o.additionalTextEdits||getReadonlyEmptyArray(),o,e,a,(f=o.isInlineEdit)!=null?f:!1,l,c,o.correlationId)}class InlineSuggestData{constructor(e,t,r,s,a,l,c,d,u,g,f,m,_){this.range=e,this.insertText=t,this.snippetInfo=r,this.uri=s,this.hint=a,this.additionalTextEdits=l,this.sourceInlineCompletion=c,this.source=d,this.context=u,this.isInlineEdit=g,this._requestInfo=f,this._providerRequestInfo=m,this._correlationId=_,this._didShow=!1,this._timeUntilShown=void 0,this._showStartTime=void 0,this._shownDuration=0,this._showUncollapsedStartTime=void 0,this._showUncollapsedDuration=0,this._notShownReason=void 0,this._didReportEndOfLife=!1,this._lastSetEndOfLifeReason=void 0,this._isPreceeded=!1,this._partiallyAcceptedCount=0,this._partiallyAcceptedSinceOriginal={characters:0,ratio:0,count:0},this._viewData={editorType:f.editorType}}get showInlineEditMenu(){var e;return(e=this.sourceInlineCompletion.showInlineEditMenu)!=null?e:!1}get partialAccepts(){return this._partiallyAcceptedSinceOriginal}async reportInlineEditShown(e,t,r,s){var l,c;if(this.updateShownDuration(r),this._didShow)return;this._didShow=!0,this._viewData.viewKind=r,this._viewData.renderData=s,this._timeUntilShown=Date.now()-this._requestInfo.startTime;const a=new EditDeltaInfo(s.lineCountModified,s.lineCountOriginal,s.characterCountModified,s.characterCountOriginal);(c=(l=this.source.provider).handleItemDidShow)==null||c.call(l,this.source.inlineSuggestions,this.sourceInlineCompletion,t,a),this.sourceInlineCompletion.shownCommand&&await e.executeCommand(this.sourceInlineCompletion.shownCommand.id,...this.sourceInlineCompletion.shownCommand.arguments||[])}reportPartialAccept(e,t,r){var s,a;this._partiallyAcceptedCount++,this._partiallyAcceptedSinceOriginal.characters+=r.characters,this._partiallyAcceptedSinceOriginal.ratio=Math.min(this._partiallyAcceptedSinceOriginal.ratio+(1-this._partiallyAcceptedSinceOriginal.ratio)*r.ratio,1),this._partiallyAcceptedSinceOriginal.count+=r.count,(a=(s=this.source.provider).handlePartialAccept)==null||a.call(s,this.source.inlineSuggestions,this.sourceInlineCompletion,e,t)}reportEndOfLife(e){var t;if(!this._didReportEndOfLife&&(this._didReportEndOfLife=!0,this.reportInlineEditHidden(),e||(e=(t=this._lastSetEndOfLifeReason)!=null?t:{kind:InlineCompletionEndOfLifeReasonKind$1.Ignored,userTypingDisagreed:!1,supersededBy:void 0}),e.kind===InlineCompletionEndOfLifeReasonKind$1.Rejected&&this.source.provider.handleRejection&&this.source.provider.handleRejection(this.source.inlineSuggestions,this.sourceInlineCompletion),this.source.provider.handleEndOfLifetime)){const r={requestUuid:this.context.requestUuid,correlationId:this._correlationId,selectedSuggestionInfo:!!this.context.selectedSuggestionInfo,partiallyAccepted:this._partiallyAcceptedCount,partiallyAcceptedCountSinceOriginal:this._partiallyAcceptedSinceOriginal.count,partiallyAcceptedRatioSinceOriginal:this._partiallyAcceptedSinceOriginal.ratio,partiallyAcceptedCharactersSinceOriginal:this._partiallyAcceptedSinceOriginal.characters,shown:this._didShow,shownDuration:this._shownDuration,shownDurationUncollapsed:this._showUncollapsedDuration,preceeded:this._isPreceeded,timeUntilShown:this._timeUntilShown,timeUntilProviderRequest:this._providerRequestInfo.startTime-this._requestInfo.startTime,timeUntilProviderResponse:this._providerRequestInfo.endTime-this._requestInfo.startTime,editorType:this._viewData.editorType,languageId:this._requestInfo.languageId,requestReason:this._requestInfo.reason,viewKind:this._viewData.viewKind,notShownReason:this._notShownReason,typingInterval:this._requestInfo.typingInterval,typingIntervalCharacterCount:this._requestInfo.typingIntervalCharacterCount,availableProviders:this._requestInfo.availableProviders.map(s=>s.toString()).join(","),...this._viewData.renderData};this.source.provider.handleEndOfLifetime(this.source.inlineSuggestions,this.sourceInlineCompletion,e,r)}}setIsPreceeded(e){this._isPreceeded=!0,(this._partiallyAcceptedSinceOriginal.characters!==0||this._partiallyAcceptedSinceOriginal.ratio!==0||this._partiallyAcceptedSinceOriginal.count!==0)&&console.warn("Expected partiallyAcceptedCountSinceOriginal to be { characters: 0, rate: 0, partialAcceptances: 0 } before setIsPreceeded."),this._partiallyAcceptedSinceOriginal=e}setNotShownReason(e){var t;(t=this._notShownReason)!=null||(this._notShownReason=e)}setEndOfLifeReason(e){this.reportInlineEditHidden(),this._lastSetEndOfLifeReason=e}updateShownDuration(e){const t=Date.now();this._showStartTime||(this._showStartTime=t);const r=e===InlineCompletionViewKind.Collapsed;!r&&this._showUncollapsedStartTime===void 0&&(this._showUncollapsedStartTime=t),r&&this._showUncollapsedStartTime!==void 0&&(this._showUncollapsedDuration+=t-this._showUncollapsedStartTime)}reportInlineEditHidden(){if(this._showStartTime===void 0)return;const e=Date.now();this._shownDuration+=e-this._showStartTime,this._showStartTime=void 0,this._showUncollapsedStartTime!==void 0&&(this._showUncollapsedDuration+=e-this._showUncollapsedStartTime,this._showUncollapsedStartTime=void 0)}}var InlineCompletionEditorType;(function(o){o.TextEditor="textEditor",o.DiffEditor="diffEditor",o.Notebook="notebook"})(InlineCompletionEditorType||(InlineCompletionEditorType={}));class InlineSuggestionList{constructor(e,t,r){this.inlineSuggestions=e,this.inlineSuggestionsData=t,this.provider=r,this.refCount=0}addRef(){this.refCount++}removeRef(e={kind:"other"}){if(this.refCount--,this.refCount===0){for(const t of this.inlineSuggestionsData)t.reportEndOfLife();this.provider.disposeInlineCompletions(this.inlineSuggestions,e)}}}function getDefaultRange(o,e){const t=e.getWordAtPosition(o),r=e.getLineMaxColumn(o.lineNumber);return t?new Range$2(o.lineNumber,t.startColumn,o.lineNumber,r):Range$2.fromPositions(o,o.with(void 0,r))}function closeBrackets(o,e,t,r){const s=t.getLineContent(e.lineNumber),a=StringReplacement.replace(new OffsetRange(e.column-1,s.length),o),l=t.tokenization.tokenizeLinesAt(e.lineNumber,[a.replace(s)]),c=l==null?void 0:l[0].sliceZeroCopy(a.getRangeAfterReplace());return c?fixBracketsInLine(c,r):o}var __decorate$1A=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1v=function(o,e){return function(t,r){e(t,r,o)}},InlineCompletionsSource_1,En;let InlineCompletionsSource=(En=class extends Disposable$1{constructor(e,t,r,s,a,l,c,d,u){var f,m;super(),this._textModel=e,this._versionId=t,this._debounceValue=r,this._cursorPosition=s,this._languageConfigurationService=a,this._logService=l,this._configurationService=c,this._instantiationService=d,this._contextKeyService=u,this._updateOperation=this._register(new MutableDisposable),this._state=observableReducerSettable(this,{initial:()=>({inlineCompletions:InlineCompletionsState.createEmpty(),suggestWidgetInlineCompletions:InlineCompletionsState.createEmpty()}),disposeFinal:_=>{_.inlineCompletions.dispose(),_.suggestWidgetInlineCompletions.dispose()},changeTracker:recordChangesLazy(()=>({versionId:this._versionId})),update:(_,v,b)=>{const C=StringEdit.compose(b.changes.map(y=>y.change?offsetEditFromContentChanges(y.change.changes):StringEdit.empty).filter(isDefined));if(C.isEmpty())return v;try{return{inlineCompletions:v.inlineCompletions.createStateWithAppliedEdit(C,this._textModel),suggestWidgetInlineCompletions:v.suggestWidgetInlineCompletions.createStateWithAppliedEdit(C,this._textModel)}}finally{v.inlineCompletions.dispose(),v.suggestWidgetInlineCompletions.dispose()}}}),this.inlineCompletions=this._state.map(this,_=>_.inlineCompletions),this.suggestWidgetInlineCompletions=this._state.map(this,_=>_.suggestWidgetInlineCompletions),this._completionsEnabled=void 0,this.clearOperationOnTextModelChange=derived(this,_=>{this._versionId.read(_),this._updateOperation.clear()}),this._loadingCount=observableValue(this,0),this._loggingEnabled=observableConfigValue("editor.inlineSuggest.logFetch",!1,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._sendRequestData=observableConfigValue("editor.inlineSuggest.emptyResponseInformation",!0,this._configurationService).recomputeInitiallyAndOnChange(this._store),this._structuredFetchLogger=this._register(this._instantiationService.createInstance(StructuredLogger.cast(),"editor.inlineSuggest.logFetch.commandId")),this.clearOperationOnTextModelChange.recomputeInitiallyAndOnChange(this._store);const g=(m=(f=product$1.defaultChatAgent)==null?void 0:f.completionsEnablementSetting)!=null?m:void 0;g&&(this._updateCompletionsEnablement(g),this._register(this._configurationService.onDidChangeConfiguration(_=>{_.affectsConfiguration(g)&&this._updateCompletionsEnablement(g)}))),this._state.recomputeInitiallyAndOnChange(this._store)}_updateCompletionsEnablement(e){const t=this._configurationService.getValue(e);isObject$3(t)?this._completionsEnabled=t:this._completionsEnabled=void 0}_log(e){this._loggingEnabled.get()&&this._logService.info(formatRecordableLogEntry(e)),this._structuredFetchLogger.log(e)}fetch(e,t,r,s,a,l,c){var b,C;const d=this._cursorPosition.get(),u=new UpdateRequest(d,r,this._textModel.getVersionId(),new Set(e)),g=r.selectedSuggestionInfo?this.suggestWidgetInlineCompletions.get():this.inlineCompletions.get();if((b=this._updateOperation.value)!=null&&b.request.satisfies(u))return this._updateOperation.value.promise;if((C=g==null?void 0:g.request)!=null&&C.satisfies(u))return Promise.resolve(!0);const f=!!this._updateOperation.value;this._updateOperation.clear();const m=new CancellationTokenSource$1,_=(async()=>{var k;const y=new DisposableStore$1;this._loadingCount.set(this._loadingCount.get()+1,void 0);let S=!1;const w=()=>{S||(S=!0,this._loadingCount.set(this._loadingCount.get()-1,void 0))};y.add(new RunOnceScheduler(()=>w(),10*1e3)).schedule();const x=e.filter(D=>D.providerId),L=new RequestResponseData(r,c,x);try{const D=this._debounceValue.get(this._textModel),I=(k=findLastMax(e.map(V=>V.debounceDelayMs),compareUndefinedSmallest(numberComparator)))!=null?k:D;if((f||a&&r.triggerKind===InlineCompletionTriggerKind$1.Automatic)&&await wait(I,m.token),m.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==u.versionId)return L.setNoSuggestionReasonIfNotSet("canceled:beforeFetch"),!1;const M=InlineCompletionsSource_1._requestId++;(this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get())&&this._log({sourceId:"InlineCompletions.fetch",kind:"start",requestId:M,modelUri:this._textModel.uri,modelVersion:this._textModel.getVersionId(),context:{triggerKind:r.triggerKind,suggestInfo:r.selectedSuggestionInfo?!0:void 0},time:Date.now(),provider:t});const R=new Date,N=provideInlineCompletions(e,this._cursorPosition.get(),this._textModel,r,c,this._languageConfigurationService);runWhenCancelled(m.token,()=>N.cancelAndDispose({kind:"tokenCancellation"}));let A=!1,O=!1;const P=[];for await(const V of N.lists)if(V){V.addRef(),y.add(toDisposable(()=>V.removeRef(V.inlineSuggestionsData.length===0?{kind:"empty"}:{kind:"notTaken"})));for(const U of V.inlineSuggestionsData){if(O=!0,!r.includeInlineEdits&&(U.isInlineEdit||U.showInlineEditMenu)){U.setNotShownReason("notInlineEditRequested");continue}if(!r.includeInlineCompletions&&!(U.isInlineEdit||U.showInlineEditMenu)){U.setNotShownReason("notInlineCompletionRequested");continue}const j=InlineSuggestionItem.create(U,this._textModel);P.push(j),!j.isInlineEdit&&!j.showInlineEditMenu&&r.triggerKind===InlineCompletionTriggerKind$1.Automatic&&j.isVisible(this._textModel,this._cursorPosition.get())&&(A=!0)}if(A)break}if(N.cancelAndDispose({kind:"lostRace"}),this._loggingEnabled.get()||this._structuredFetchLogger.isEnabled.get()){const V=N.didAllProvidersReturn;let U;(m.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==u.versionId)&&(U="canceled");const j=P.map(X=>{var ee;return{range:X.editRange.toString(),text:X.insertText,hint:X.hint,isInlineEdit:X.isInlineEdit,showInlineEditMenu:X.showInlineEditMenu,providerId:(ee=X.source.provider.providerId)==null?void 0:ee.toString()}});this._log({sourceId:"InlineCompletions.fetch",kind:"end",requestId:M,durationMs:Date.now()-R.getTime(),error:U,result:j,time:Date.now(),didAllProvidersReturn:V})}if(L.setRequestUuid(N.contextWithUuid.requestUuid),O)L.setHasProducedSuggestion(),P.length>0&&m.token.isCancellationRequested&&P.forEach(V=>V.setNotShownReasonIfNotSet("canceled:whileAwaitingOtherProviders"));else if(m.token.isCancellationRequested)L.setNoSuggestionReasonIfNotSet("canceled:whileFetching");else{const V=this._contextKeyService.getContextKeyValue("completionsQuotaExceeded");L.setNoSuggestionReasonIfNotSet(V?"completionsQuotaExceeded":"noSuggestion")}const F=r.earliestShownDateTime-Date.now();if(F>0&&await wait(F,m.token),m.token.isCancellationRequested||this._store.isDisposed||this._textModel.getVersionId()!==u.versionId||l.get()){const V=m.token.isCancellationRequested?"canceled:afterMinShowDelay":this._store.isDisposed?"canceled:disposed":this._textModel.getVersionId()!==u.versionId?"canceled:documentChanged":l.get()?"canceled:userJumped":"unknown";return P.forEach(U=>U.setNotShownReasonIfNotSet(V)),!1}const B=new Date;this._debounceValue.update(this._textModel,B.getTime()-R.getTime());const H=this._cursorPosition.get();this._updateOperation.clear(),transaction(V=>{const U=this._state.get();r.selectedSuggestionInfo?this._state.set({inlineCompletions:InlineCompletionsState.createEmpty(),suggestWidgetInlineCompletions:U.suggestWidgetInlineCompletions.createStateWithAppliedResults(P,u,this._textModel,H,s)},V):this._state.set({inlineCompletions:U.inlineCompletions.createStateWithAppliedResults(P,u,this._textModel,H,s),suggestWidgetInlineCompletions:InlineCompletionsState.createEmpty()},V),U.inlineCompletions.dispose(),U.suggestWidgetInlineCompletions.dispose()})}finally{y.dispose(),w(),this.sendInlineCompletionsRequestTelemetry(L)}return!0})(),v=new UpdateOperation(u,m,_);return this._updateOperation.value=v,_}clear(e){this._updateOperation.clear();const t=this._state.get();this._state.set({inlineCompletions:InlineCompletionsState.createEmpty(),suggestWidgetInlineCompletions:InlineCompletionsState.createEmpty()},e),t.inlineCompletions.dispose(),t.suggestWidgetInlineCompletions.dispose()}seedInlineCompletionsWithSuggestWidget(){const e=this.inlineCompletions.get(),t=this.suggestWidgetInlineCompletions.get();t&&transaction(r=>{var s,a,l,c;if(!e||((a=(s=t.request)==null?void 0:s.versionId)!=null?a:-1)>((c=(l=e.request)==null?void 0:l.versionId)!=null?c:-1)){e==null||e.dispose();const d=this._state.get();this._state.set({inlineCompletions:t.clone(),suggestWidgetInlineCompletions:InlineCompletionsState.createEmpty()},r),d.inlineCompletions.dispose(),d.suggestWidgetInlineCompletions.dispose()}this.clearSuggestWidgetInlineCompletions(r)})}sendInlineCompletionsRequestTelemetry(e){var s;if(!this._sendRequestData.get()&&!this._contextKeyService.getContextKeyValue("isRunningUnificationExperiment")||e.requestUuid===void 0||e.hasProducedSuggestion||!isCompletionsEnabled(this._completionsEnabled,this._textModel.getLanguageId())||!e.providers.some(a=>{var l;return isCopilotLikeExtension((l=a.providerId)==null?void 0:l.extensionId)}))return;const t={opportunityId:e.requestUuid,noSuggestionReason:(s=e.noSuggestionReason)!=null?s:"unknown",extensionId:"vscode-core",extensionVersion:"0.0.0",groupId:"empty",shown:!1,editorType:e.requestInfo.editorType,requestReason:e.requestInfo.reason,typingInterval:e.requestInfo.typingInterval,typingIntervalCharacterCount:e.requestInfo.typingIntervalCharacterCount,languageId:e.requestInfo.languageId,selectedSuggestionInfo:!!e.context.selectedSuggestionInfo,availableProviders:e.providers.map(a=>{var l;return(l=a.providerId)==null?void 0:l.toString()}).filter(isDefined).join(","),...forwardToChannelIf(e.providers.some(a=>{var l;return isCopilotLikeExtension((l=a.providerId)==null?void 0:l.extensionId)})),timeUntilProviderRequest:void 0,timeUntilProviderResponse:void 0,viewKind:void 0,preceeded:void 0,superseded:void 0,reason:void 0,correlationId:void 0,shownDuration:void 0,shownDurationUncollapsed:void 0,timeUntilShown:void 0,partiallyAccepted:void 0,partiallyAcceptedCountSinceOriginal:void 0,partiallyAcceptedRatioSinceOriginal:void 0,partiallyAcceptedCharactersSinceOriginal:void 0,cursorColumnDistance:void 0,cursorLineDistance:void 0,lineCountOriginal:void 0,lineCountModified:void 0,characterCountOriginal:void 0,characterCountModified:void 0,disjointReplacements:void 0,sameShapeReplacements:void 0,notShownReason:void 0},r=this._instantiationService.createInstance(DataChannelForwardingTelemetryService);sendInlineCompletionsEndOfLifeTelemetry(r,t)}clearSuggestWidgetInlineCompletions(e){var t;(t=this._updateOperation.value)!=null&&t.request.context.selectedSuggestionInfo&&this._updateOperation.clear()}cancelUpdate(){this._updateOperation.clear()}},InlineCompletionsSource_1=En,En._requestId=0,En);InlineCompletionsSource=InlineCompletionsSource_1=__decorate$1A([__param$1v(4,ILanguageConfigurationService),__param$1v(5,ILogService),__param$1v(6,IConfigurationService),__param$1v(7,IInstantiationService),__param$1v(8,IContextKeyService)],InlineCompletionsSource);class UpdateRequest{constructor(e,t,r,s){this.position=e,this.context=t,this.versionId=r,this.providers=s}satisfies(e){return this.position.equals(e.position)&&equalsIfDefined(this.context.selectedSuggestionInfo,e.context.selectedSuggestionInfo,itemEquals())&&(e.context.triggerKind===InlineCompletionTriggerKind$1.Automatic||this.context.triggerKind===InlineCompletionTriggerKind$1.Explicit)&&this.versionId===e.versionId&&isSubset(e.providers,this.providers)}}class RequestResponseData{constructor(e,t,r){this.context=e,this.requestInfo=t,this.providers=r,this.hasProducedSuggestion=!1}setRequestUuid(e){this.requestUuid=e}setNoSuggestionReasonIfNotSet(e){var t;(t=this.noSuggestionReason)!=null||(this.noSuggestionReason=e)}setHasProducedSuggestion(){this.hasProducedSuggestion=!0}}function isSubset(o,e){return[...o].every(t=>e.has(t))}function isCompletionsEnabled(o,e="*"){return o===void 0?!1:typeof o[e]<"u"?!!o[e]:!!o["*"]}class UpdateOperation{constructor(e,t,r){this.request=e,this.cancellationTokenSource=t,this.promise=r}dispose(){this.cancellationTokenSource.cancel()}}class InlineCompletionsState extends Disposable$1{static createEmpty(){return new InlineCompletionsState([],void 0)}constructor(e,t){for(const r of e)r.addRef();super(),this.inlineCompletions=e,this.request=t,this._register({dispose:()=>{for(const r of this.inlineCompletions)r.removeRef()}})}_findById(e){return this.inlineCompletions.find(t=>t.identity===e)}_findByHash(e){return this.inlineCompletions.find(t=>t.hash===e)}createStateWithAppliedEdit(e,t){const r=this.inlineCompletions.map(s=>s.withEdit(e,t)).filter(isDefined);return new InlineCompletionsState(r,this.request)}createStateWithAppliedResults(e,t,r,s,a){let l;if(a){const u=this._findById(a);if(u&&u.canBeReused(r,t.position)){l=u;const g=e.find(f=>f.hash===u.hash);g?e=moveToFront(g,e):e=[u,...e]}}const c=l?!l.isInlineEdit:e.some(u=>!u.isInlineEdit&&u.isVisible(r,s));let d=[];for(const u of e){const g=this._findByHash(u.hash);let f;g&&g!==u?(f=u.withIdentity(g.identity),u.setIsPreceeded(g),g.setEndOfLifeReason({kind:InlineCompletionEndOfLifeReasonKind$1.Ignored,userTypingDisagreed:!1,supersededBy:u.getSourceCompletion()})):f=u,c!==f.isInlineEdit&&d.push(f)}return d.sort(compareBy(u=>u.showInlineEditMenu,booleanComparator)),d=distinctByKey(d,u=>u.semanticId),new InlineCompletionsState(d,t)}clone(){return new InlineCompletionsState(this.inlineCompletions,this.request)}}function distinctByKey(o,e){const t=new Set;return o.filter(r=>{const s=e(r);return t.has(s)?!1:(t.add(s),!0)})}function moveToFront(o,e){const t=e.indexOf(o);return t>-1?[o,...e.slice(0,t),...e.slice(t+1)]:e}class InlineEdit{constructor(e,t,r){this.edit=e,this.commands=t,this.inlineCompletion=r}equals(e){return this.edit.equals(e.edit)&&this.inlineCompletion===e.inlineCompletion}}var __decorate$1z=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1u=function(o,e){return function(t,r){e(t,r,o)}};const IInlineCompletionsService=createDecorator("IInlineCompletionsService"),InlineCompletionsSnoozing=new RawContextKey("inlineCompletions.snoozed",!1,localize(79,"Whether inline completions are currently snoozed"));let InlineCompletionsService=class extends Disposable$1{get snoozeTimeLeft(){return this._snoozeTimeEnd===void 0?0:Math.max(0,this._snoozeTimeEnd-Date.now())}constructor(e,t){super(),this._contextKeyService=e,this._telemetryService=t,this._onDidChangeIsSnoozing=this._register(new Emitter$1),this.onDidChangeIsSnoozing=this._onDidChangeIsSnoozing.event,this._snoozeTimeEnd=void 0,this._recentCompletionIds=[],this._timer=this._register(new TimeoutTimer);const r=InlineCompletionsSnoozing.bindTo(this._contextKeyService);this._register(this.onDidChangeIsSnoozing(()=>r.set(this.isSnoozing())))}setSnoozeDuration(e){if(e<0)throw new BugIndicatingError("Invalid snooze duration: ".concat(e,". Duration must be non-negative."));if(e===0){this.cancelSnooze();return}const t=this.isSnoozing(),r=this.snoozeTimeLeft;this._snoozeTimeEnd=Date.now()+e,t||this._onDidChangeIsSnoozing.fire(!0),this._timer.cancelAndSet(()=>{if(!this.isSnoozing())this._onDidChangeIsSnoozing.fire(!1);else throw new BugIndicatingError("Snooze timer did not fire as expected")},this.snoozeTimeLeft+1),this._reportSnooze(e-r,e)}isSnoozing(){return this.snoozeTimeLeft>0}cancelSnooze(){this.isSnoozing()&&(this._reportSnooze(-this.snoozeTimeLeft,0),this._snoozeTimeEnd=void 0,this._timer.cancel(),this._onDidChangeIsSnoozing.fire(!1))}reportNewCompletion(e){this._lastCompletionId=e,this._recentCompletionIds.unshift(e),this._recentCompletionIds.length>5&&this._recentCompletionIds.pop()}_reportSnooze(e,t){const r=Math.round(e/1e3),s=Math.round(t/1e3);this._telemetryService.publicLog2("inlineCompletions.snooze",{deltaSeconds:r,totalSeconds:s,lastCompletionId:this._lastCompletionId,recentCompletionIds:this._recentCompletionIds})}};InlineCompletionsService=__decorate$1z([__param$1u(0,IContextKeyService),__param$1u(1,ITelemetryService)],InlineCompletionsService);registerSingleton(IInlineCompletionsService,InlineCompletionsService,1);const snoozeInlineSuggestId="editor.action.inlineSuggest.snooze",cancelSnoozeInlineSuggestId="editor.action.inlineSuggest.cancelSnooze",LAST_SNOOZE_DURATION_KEY="inlineCompletions.lastSnoozeDuration",ts=class ts extends Action2{constructor(){super({id:ts.ID,title:localize2(81,"Snooze Inline Suggestions"),precondition:ContextKeyExpr.true(),f1:!0})}async run(e,...t){const r=e.get(IQuickInputService),s=e.get(IInlineCompletionsService),a=e.get(IStorageService);let l;t.length>0&&typeof t[0]=="number"&&(l=t[0]*6e4),l||(l=await this.getDurationFromUser(r,a)),l&&s.setSnoozeDuration(l)}async getDurationFromUser(e,t){const r=t.getNumber(LAST_SNOOZE_DURATION_KEY,0,3e5),s=[{label:"1 minute",id:"1",value:6e4},{label:"5 minutes",id:"5",value:3e5},{label:"10 minutes",id:"10",value:6e5},{label:"15 minutes",id:"15",value:9e5},{label:"30 minutes",id:"30",value:18e5},{label:"60 minutes",id:"60",value:36e5}],a=await e.pick(s,{placeHolder:localize(80,"Select snooze duration for Inline Suggestions"),activeItem:s.find(l=>l.value===r)});if(a)return t.store(LAST_SNOOZE_DURATION_KEY,a.value,0,0),a.value}};ts.ID=snoozeInlineSuggestId;let SnoozeInlineCompletion=ts;const is=class is extends Action2{constructor(){super({id:is.ID,title:localize2(82,"Cancel Snooze Inline Suggestions"),precondition:InlineCompletionsSnoozing,f1:!0})}async run(e){e.get(IInlineCompletionsService).cancelSnooze()}};is.ID=cancelSnoozeInlineSuggestId;let CancelSnoozeInlineCompletion=is;const ht=class ht extends Disposable$1{getTypingInterval(){return(this._cacheInvalidated||this._cachedTypingIntervalResult===null)&&(this._cachedTypingIntervalResult=this._calculateTypingInterval(),this._cacheInvalidated=!1),this._cachedTypingIntervalResult}constructor(e){super(),this._textModel=e,this._typingSessions=[],this._currentSession=null,this._lastChangeTime=0,this._cachedTypingIntervalResult=null,this._cacheInvalidated=!0,this._register(this._textModel.onDidChangeContent(t=>this._updateTypingSpeed(t)))}_updateTypingSpeed(e){const t=Date.now();if(!this._isUserTyping(e)){this._finalizeCurrentSession();return}this._currentSession&&t-this._lastChangeTime>ht.MAX_SESSION_GAP_MS&&this._finalizeCurrentSession(),this._currentSession||(this._currentSession={startTime:t,endTime:t,characterCount:0}),this._currentSession.endTime=t,this._currentSession.characterCount+=this._getActualCharacterCount(e),this._lastChangeTime=t,this._cacheInvalidated=!0}_getActualCharacterCount(e){let t=0;for(const r of e.changes)t+=Math.max(r.text.length,r.rangeLength);return t}_isUserTyping(e){if(!e.detailedReasons||e.detailedReasons.length===0)return!1;for(const t of e.detailedReasons)if(this._isUserTypingReason(t))return!0;return!1}_isUserTypingReason(e){if(e.metadata.isUndoing||e.metadata.isRedoing)return!1;switch(e.metadata.source){case"cursor":{const t=e.metadata.kind;return t==="type"||t==="compositionType"||t==="compositionEnd"}default:return!1}}_finalizeCurrentSession(){if(!this._currentSession)return;this._currentSession.endTime-this._currentSession.startTime>=ht.MIN_SESSION_DURATION_MS&&this._currentSession.characterCount>0&&(this._typingSessions.push(this._currentSession),this._typingSessions.length>ht.SESSION_HISTORY_LIMIT&&this._typingSessions.shift()),this._currentSession=null}_calculateTypingInterval(){if(this._currentSession){const e={...this._currentSession};if(e.endTime-e.startTime>=ht.MIN_SESSION_DURATION_MS&&e.characterCount>0){const r=[...this._typingSessions,e];return this._calculateSpeedFromSessions(r)}}return this._calculateSpeedFromSessions(this._typingSessions)}_calculateSpeedFromSessions(e){if(e.length===0)return{averageInterval:0,characterCount:0};const t=[...e].sort((g,f)=>f.endTime-g.endTime),r=Date.now()-ht.TYPING_SPEED_WINDOW_MS,s=t.filter(g=>g.endTime>r),a=t.splice(s.length);let l=sum$1(s.map(g=>g.characterCount));for(let g=0;g<a.length&&l<ht.MIN_CHARS_FOR_RELIABLE_SPEED;g++)s.push(a[g]),l+=a[g].characterCount;const c=sum$1(s.map(g=>g.endTime-g.startTime));if(c===0||l<=1)return{averageInterval:0,characterCount:l};const d=Math.max(1,l-1),u=c/d;return{averageInterval:Math.round(u),characterCount:l}}dispose(){this._finalizeCurrentSession(),super.dispose()}};ht.MAX_SESSION_GAP_MS=3e3,ht.MIN_SESSION_DURATION_MS=1e3,ht.SESSION_HISTORY_LIMIT=50,ht.TYPING_SPEED_WINDOW_MS=3e5,ht.MIN_CHARS_FOR_RELIABLE_SPEED=20;let TypingInterval=ht;var __decorate$1y=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1t=function(o,e){return function(t,r){e(t,r,o)}};let InlineCompletionsModel=class extends Disposable$1{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(e,t,r,s,a,l,c,d,u,g,f,m,_,v){var E;super(),this.textModel=e,this._selectedSuggestItem=t,this._textModelVersionId=r,this._positions=s,this._debounceValue=a,this._enabled=l,this._editor=c,this._instantiationService=d,this._commandService=u,this._languageConfigurationService=g,this._accessibilityService=f,this._languageFeaturesService=m,this._codeEditorService=_,this._inlineCompletionsService=v,this._isActive=observableValue(this,!1),this._onlyRequestInlineEditsSignal=observableSignal(this),this._forceUpdateExplicitlySignal=observableSignal(this),this._noDelaySignal=observableSignal(this),this._fetchSpecificProviderSignal=observableSignal(this),this._selectedInlineCompletionId=observableValue(this,void 0),this.primaryPosition=derived(this,x=>{var L;return(L=this._positions.read(x)[0])!=null?L:new Position$1(1,1)}),this.allPositions=derived(this,x=>this._positions.read(x)),this._isAcceptingPartially=!1,this._appearedInsideViewport=derived(this,x=>{const L=this.state.read(x);return!L||!L.inlineCompletion?!1:isSuggestionInViewport(this._editor,L.inlineCompletion)}),this._onDidAccept=new Emitter$1,this.onDidAccept=this._onDidAccept.event,this._lastShownInlineCompletionInfo=void 0,this._lastAcceptedInlineCompletionInfo=void 0,this._didUndoInlineEdits=derivedHandleChanges({owner:this,changeTracker:{createChangeSummary:()=>({didUndo:!1}),handleChange:(x,L)=>{var k;return L.didUndo=x.didChange(this._textModelVersionId)&&!!((k=x.change)!=null&&k.isUndoing),!0}}},(x,L)=>{const k=this._textModelVersionId.read(x);return k!==null&&this._lastAcceptedInlineCompletionInfo&&this._lastAcceptedInlineCompletionInfo.textModelVersionIdAfter===k-1&&this._lastAcceptedInlineCompletionInfo.inlineCompletion.isInlineEdit&&L.didUndo?(this._lastAcceptedInlineCompletionInfo=void 0,!0):!1}),this._preserveCurrentCompletionReasons=new Set([VersionIdChangeReason.Redo,VersionIdChangeReason.Undo,VersionIdChangeReason.AcceptWord]),this.dontRefetchSignal=observableSignal(this),this._fetchInlineCompletionsPromise=derivedHandleChanges({owner:this,changeTracker:{createChangeSummary:()=>({dontRefetch:!1,preserveCurrentCompletion:!1,inlineCompletionTriggerKind:InlineCompletionTriggerKind$1.Automatic,onlyRequestInlineEdits:!1,shouldDebounce:!0,provider:void 0,textChange:!1,changeReason:""}),handleChange:(x,L)=>{var k,D;if(x.didChange(this._textModelVersionId)){this._preserveCurrentCompletionReasons.has(this._getReason(x.change))&&(L.preserveCurrentCompletion=!0);const I=(D=(k=x.change)==null?void 0:k.detailedReasons)!=null?D:[];L.changeReason=I.length>0?I[0].getType():"",L.textChange=!0}else x.didChange(this._forceUpdateExplicitlySignal)?(L.preserveCurrentCompletion=!0,L.inlineCompletionTriggerKind=InlineCompletionTriggerKind$1.Explicit):x.didChange(this.dontRefetchSignal)?L.dontRefetch=!0:x.didChange(this._onlyRequestInlineEditsSignal)?L.onlyRequestInlineEdits=!0:x.didChange(this._fetchSpecificProviderSignal)&&(L.provider=x.change);return!0}}},(x,L)=>{var H,V,U,j;if(this._source.clearOperationOnTextModelChange.read(x),this._noDelaySignal.read(x),this.dontRefetchSignal.read(x),this._onlyRequestInlineEditsSignal.read(x),this._forceUpdateExplicitlySignal.read(x),this._fetchSpecificProviderSignal.read(x),!((this._enabled.read(x)&&this._selectedSuggestItem.read(x)||this._isActive.read(x))&&(!this._inlineCompletionsService.isSnoozing()||L.inlineCompletionTriggerKind===InlineCompletionTriggerKind$1.Explicit))){this._source.cancelUpdate();return}this._textModelVersionId.read(x);const D=this._source.suggestWidgetInlineCompletions.read(void 0);let I=this._selectedSuggestItem.read(x);if(this._shouldShowOnSuggestConflict.read(void 0)&&(I=void 0),D&&!I&&this._source.seedInlineCompletionsWithSuggestWidget(),L.dontRefetch)return Promise.resolve(!0);if(this._didUndoInlineEdits.read(x)&&L.inlineCompletionTriggerKind!==InlineCompletionTriggerKind$1.Explicit){transaction(X=>{this._source.clear(X)});return}let T="";L.provider?T+="providerOnDidChange":L.inlineCompletionTriggerKind===InlineCompletionTriggerKind$1.Explicit&&(T+="explicit"),L.changeReason&&(T+=T.length>0?":".concat(L.changeReason):L.changeReason);const M=this._typing.getTypingInterval(),R={editorType:this.editorType,startTime:Date.now(),languageId:this.textModel.getLanguageId(),reason:T,typingInterval:M.averageInterval,typingIntervalCharacterCount:M.characterCount,availableProviders:[]};let N={triggerKind:L.inlineCompletionTriggerKind,selectedSuggestionInfo:I==null?void 0:I.toSelectedSuggestionInfo(),includeInlineCompletions:!L.onlyRequestInlineEdits,includeInlineEdits:this._inlineEditsEnabled.read(x),requestIssuedDateTime:R.startTime,earliestShownDateTime:R.startTime+(L.inlineCompletionTriggerKind===InlineCompletionTriggerKind$1.Explicit||this.inAcceptFlow.read(void 0)?0:this._minShowDelay.read(void 0))};N.triggerKind===InlineCompletionTriggerKind$1.Automatic&&L.textChange&&this.textModel.getAlternativeVersionId()===((H=this._lastShownInlineCompletionInfo)==null?void 0:H.alternateTextModelVersionId)&&(N={...N,includeInlineCompletions:!this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit,includeInlineEdits:this._lastShownInlineCompletionInfo.inlineCompletion.isInlineEdit});const A=(U=this.selectedInlineCompletion.read(void 0))!=null?U:(V=this._inlineCompletionItems.read(void 0))==null?void 0:V.inlineEdit,O=L.preserveCurrentCompletion||A!=null&&A.forwardStable?A:void 0,P=this._jumpedToId.map(X=>{var ee,Z;return!!X&&X===((Z=(ee=this._inlineCompletionItems.read(void 0))==null?void 0:ee.inlineEdit)==null?void 0:Z.semanticId)}),F=L.provider?{providers:[L.provider],label:"single:"+((j=L.provider.providerId)==null?void 0:j.toString())}:{providers:this._languageFeaturesService.inlineCompletionsProvider.all(this.textModel),label:void 0},B=this.getAvailableProviders(F.providers);return R.availableProviders=B.map(X=>X.providerId).filter(isDefined),this._source.fetch(B,F.label,N,O==null?void 0:O.identity,L.shouldDebounce,P,R)}),this._inlineCompletionItems=derivedOpts({owner:this},x=>{const L=this._source.inlineCompletions.read(x);if(!L)return;const k=this.primaryPosition.read(x);let D;const I=[];for(const T of L.inlineCompletions)T.isInlineEdit?D=T:T.isVisible(this.textModel,k)&&I.push(T);return I.length!==0&&(D=void 0),{inlineCompletions:I,inlineEdit:D}}),this._filteredInlineCompletionItems=derivedOpts({owner:this,equalsFn:itemsEquals()},x=>{var k;const L=this._inlineCompletionItems.read(x);return(k=L==null?void 0:L.inlineCompletions)!=null?k:[]}),this.selectedInlineCompletionIndex=derived(this,x=>{const L=this._selectedInlineCompletionId.read(x),k=this._filteredInlineCompletionItems.read(x),D=this._selectedInlineCompletionId===void 0?-1:k.findIndex(I=>I.semanticId===L);return D===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):D}),this.selectedInlineCompletion=derived(this,x=>{const L=this._filteredInlineCompletionItems.read(x),k=this.selectedInlineCompletionIndex.read(x);return L[k]}),this.activeCommands=derivedOpts({owner:this,equalsFn:itemsEquals()},x=>{var L,k;return(k=(L=this.selectedInlineCompletion.read(x))==null?void 0:L.source.inlineSuggestions.commands)!=null?k:[]}),this.inlineCompletionsCount=derived(this,x=>{if(this.lastTriggerKind.read(x)===InlineCompletionTriggerKind$1.Explicit)return this._filteredInlineCompletionItems.read(x).length}),this._hasVisiblePeekWidgets=derived(this,x=>this._editorObs.openedPeekWidgets.read(x)>0),this._shouldShowOnSuggestConflict=derived(this,x=>{const L=this._showOnSuggestConflict.read(x);if(L!=="never"&&!!this.selectedInlineCompletion.read(x)){const D=this._selectedSuggestItem.read(x);return D?L==="whenSuggestListIsIncomplete"?D.listIncomplete:!0:!1}return!1}),this.state=derivedOpts({owner:this,equalsFn:(x,L)=>!x||!L?x===L:x.kind==="ghostText"&&L.kind==="ghostText"?ghostTextsOrReplacementsEqual(x.ghostTexts,L.ghostTexts)&&x.inlineCompletion===L.inlineCompletion&&x.suggestItem===L.suggestItem:x.kind==="inlineEdit"&&L.kind==="inlineEdit"?x.inlineEdit.equals(L.inlineEdit):!1},x=>{var T,M,R,N,A,O,P,F,B;const L=this.textModel;if(this._suppressInSnippetMode.read(x)&&this._isInSnippetMode.read(x))return;const k=this._inlineCompletionItems.read(x),D=k==null?void 0:k.inlineEdit;if(D){if(this._hasVisiblePeekWidgets.read(x))return;let H=D.getSingleTextEdit();H=singleTextRemoveCommonPrefix(H,L);const V=this.primaryPosition.map(J=>LineRange.fromRangeInclusive(D.targetRange).addMargin(1,1).contains(J.lineNumber)),U=D.source.inlineSuggestions.commands,j=new InlineEdit(H,U!=null?U:[],D),X=D.updatedEdit,ee=X?TextEdit.fromStringEdit(X,new TextModelText(this.textModel)).replacements:[H],Z=(((M=(T=k.inlineEdit)==null?void 0:T.command)==null?void 0:M.id)==="vscode.open"||((N=(R=k.inlineEdit)==null?void 0:R.command)==null?void 0:N.id)==="_workbench.open")&&((O=(A=k.inlineEdit)==null?void 0:A.command.arguments)!=null&&O.length)?URI.from((P=k.inlineEdit)==null?void 0:P.command.arguments[0]):void 0;return{kind:"inlineEdit",inlineEdit:j,inlineCompletion:D,edits:ee,cursorAtInlineEdit:V,nextEditUri:Z}}const I=this._selectedSuggestItem.read(x);if(!this._shouldShowOnSuggestConflict.read(x)&&I){const H=singleTextRemoveCommonPrefix(I.getSingleTextEdit(),L),V=this._computeAugmentation(H,x);if(!this._suggestPreviewEnabled.read(x)&&!V)return;const j=(F=V==null?void 0:V.edit)!=null?F:H,X=V?V.edit.text.length-H.text.length:0,ee=this._suggestPreviewMode.read(x),Z=this._positions.read(x),q=[j,...getSecondaryEdits(this.textModel,Z,j)].map((se,W)=>({edit:se,ghostText:se?computeGhostText(se,L,ee,Z[W],X):void 0})).filter(({edit:se,ghostText:W})=>se!==void 0&&W!==void 0),Q=q.map(({edit:se})=>se),re=q.map(({ghostText:se})=>se),de=(B=re[0])!=null?B:new GhostText(j.range.endLineNumber,[]);return{kind:"ghostText",edits:Q,primaryGhostText:de,ghostTexts:re,inlineCompletion:V==null?void 0:V.completion,suggestItem:I}}else{if(!this._isActive.read(x))return;const H=this.selectedInlineCompletion.read(x);if(!H)return;const V=H.getSingleTextEdit(),U=this._inlineSuggestMode.read(x),j=this._positions.read(x),ee=[V,...getSecondaryEdits(this.textModel,j,V)].map((q,Q)=>({edit:q,ghostText:q?computeGhostText(q,L,U,j[Q],0):void 0})).filter(({edit:q,ghostText:Q})=>q!==void 0&&Q!==void 0),Z=ee.map(({edit:q})=>q),J=ee.map(({ghostText:q})=>q);return J[0]?{kind:"ghostText",edits:Z,primaryGhostText:J[0],ghostTexts:J,inlineCompletion:H,suggestItem:void 0}:void 0}}),this.inlineCompletionState=derived(this,x=>{const L=this.state.read(x);if(!(!L||L.kind!=="ghostText")&&!this._editorObs.inComposition.read(x))return L}),this.inlineEditState=derived(this,x=>{const L=this.state.read(x);if(!(!L||L.kind!=="inlineEdit"))return L}),this.inlineEditAvailable=derived(this,x=>!!this.inlineEditState.read(x)),this.warning=derived(this,x=>{var L,k;return(k=(L=this.inlineCompletionState.read(x))==null?void 0:L.inlineCompletion)==null?void 0:k.warning}),this.ghostTexts=derivedOpts({owner:this,equalsFn:ghostTextsOrReplacementsEqual},x=>{const L=this.inlineCompletionState.read(x);if(L)return L.ghostTexts}),this.primaryGhostText=derivedOpts({owner:this,equalsFn:ghostTextOrReplacementEquals},x=>{const L=this.inlineCompletionState.read(x);if(L)return L==null?void 0:L.primaryGhostText}),this.showCollapsed=derived(this,x=>{const L=this.state.read(x);if(!L||L.kind!=="inlineEdit"||L.inlineCompletion.hint)return!1;const k=L.inlineCompletion.updatedEditModelVersion===this._textModelVersionId.read(x);return(this._inlineEditsShowCollapsedEnabled.read(x)||!k)&&this._jumpedToId.read(x)!==L.inlineCompletion.semanticId&&!this._inAcceptFlow.read(x)}),this._tabShouldIndent=derived(this,x=>{if(this._inAcceptFlow.read(x))return!1;function L(I){return I.startLineNumber!==I.endLineNumber}function k(I,T){const M=I.getLineIndentColumn(T),R=I.getLineLastNonWhitespaceColumn(T),N=Math.max(R,M);return new Range$2(T,M,T,N)}const D=this._editorObs.selections.read(x);return D==null?void 0:D.some(I=>I.isEmpty()?this.textModel.getLineLength(I.startLineNumber)===0:L(I)||I.containsRange(k(this.textModel,I.startLineNumber)))}),this.tabShouldJumpToInlineEdit=derived(this,x=>{var k;if(this._tabShouldIndent.read(x))return!1;const L=this.inlineEditState.read(x);return L?this.showCollapsed.read(x)?!0:this._inAcceptFlow.read(x)&&this._appearedInsideViewport.read(x)&&!((k=L.inlineCompletion.hint)!=null&&k.jumpToEdit)?!1:!L.cursorAtInlineEdit.read(x):!1}),this.tabShouldAcceptInlineEdit=derived(this,x=>{var k;const L=this.inlineEditState.read(x);return!L||this.showCollapsed.read(x)||this._tabShouldIndent.read(x)?!1:this._inAcceptFlow.read(x)&&this._appearedInsideViewport.read(x)&&!((k=L.inlineCompletion.hint)!=null&&k.jumpToEdit)||L.inlineCompletion.targetRange.startLineNumber===this._editorObs.cursorLineNumber.read(x)||this._jumpedToId.read(x)===L.inlineCompletion.semanticId?!0:L.cursorAtInlineEdit.read(x)}),this._jumpedToId=observableValue(this,void 0),this._inAcceptFlow=observableValue(this,!1),this.inAcceptFlow=this._inAcceptFlow,this._source=this._register(this._instantiationService.createInstance(InlineCompletionsSource,this.textModel,this._textModelVersionId,this._debounceValue,this.primaryPosition)),this.lastTriggerKind=this._source.inlineCompletions.map(this,x=>{var L;return(L=x==null?void 0:x.request)==null?void 0:L.context.triggerKind}),this._editorObs=observableCodeEditor(this._editor);const b=this._editorObs.getOption(134);this._suggestPreviewEnabled=b.map(x=>x.preview),this._suggestPreviewMode=b.map(x=>x.previewMode);const C=this._editorObs.getOption(71);this._inlineSuggestMode=C.map(x=>x.mode),this._suppressedInlineCompletionGroupIds=C.map(x=>new Set(x.experimental.suppressInlineSuggestions.split(","))),this._inlineEditsEnabled=C.map(x=>!!x.edits.enabled),this._inlineEditsShowCollapsedEnabled=C.map(x=>x.edits.showCollapsed),this._triggerCommandOnProviderChange=C.map(x=>x.triggerCommandOnProviderChange),this._minShowDelay=C.map(x=>x.minShowDelay),this._showOnSuggestConflict=C.map(x=>x.experimental.showOnSuggestConflict),this._suppressInSnippetMode=C.map(x=>x.suppressInSnippetMode);const y=SnippetController2.get(this._editor);this._isInSnippetMode=(E=y==null?void 0:y.isInSnippetObservable)!=null?E:constObservable(!1),this._typing=this._register(new TypingInterval(this.textModel)),this._register(this._inlineCompletionsService.onDidChangeIsSnoozing(x=>{x&&this.stop()}));{const x=this.textModel.uri.scheme==="vscode-notebook-cell",[L]=this._codeEditorService.listDiffEditors().filter(k=>k.getOriginalEditor().getId()===this._editor.getId()||k.getModifiedEditor().getId()===this._editor.getId());this.isInDiffEditor=!!L,this.editorType=x?InlineCompletionEditorType.Notebook:this.isInDiffEditor?InlineCompletionEditorType.DiffEditor:InlineCompletionEditorType.TextEditor}this._register(recomputeInitiallyAndOnChange(this.state,x=>{x&&x.inlineCompletion&&this._inlineCompletionsService.reportNewCompletion(x.inlineCompletion.requestUuid)})),this._register(recomputeInitiallyAndOnChange(this._fetchInlineCompletionsPromise)),this._register(autorun(x=>{this._editorObs.versionId.read(x),this._inAcceptFlow.set(!1,void 0)})),this._register(autorun(x=>{this.state.map((k,D)=>!k||k.kind==="inlineEdit"&&!k.cursorAtInlineEdit.read(D)).read(x)&&this._jumpedToId.set(void 0,void 0)}));const S=this.inlineEditState.map(x=>x==null?void 0:x.inlineCompletion.semanticId);this._register(autorun(x=>{S.read(x)&&(this._editor.pushUndoStop(),this._lastShownInlineCompletionInfo={alternateTextModelVersionId:this.textModel.getAlternativeVersionId(),inlineCompletion:this.state.get().inlineCompletion})}));const w=observableFromEvent(this._languageFeaturesService.inlineCompletionsProvider.onDidChange,()=>this._languageFeaturesService.inlineCompletionsProvider.all(e));mapObservableArrayCached(this,w,(x,L)=>{x.onDidChangeInlineCompletions&&L.add(x.onDidChangeInlineCompletions(()=>{var I;if(!this._enabled.get()||(this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor())!==this._editor)return;if(this._triggerCommandOnProviderChange.get()){this.trigger(void 0,{onlyFetchInlineEdits:!0});return}const D=this.state.get();D&&(D.inlineCompletion||D.edits)&&((I=D.inlineCompletion)==null?void 0:I.source.provider)!==x||transaction(T=>{this._fetchSpecificProviderSignal.trigger(T,x),this.trigger(T)})}))}).recomputeInitiallyAndOnChange(this._store),this._didUndoInlineEdits.recomputeInitiallyAndOnChange(this._store)}getIndentationInfo(e){let t=!1,r=!0;const s=this==null?void 0:this.primaryGhostText.read(e);if(this!=null&&this._selectedSuggestItem&&s&&s.parts.length>0){const{column:a,lines:l}=s.parts[0],c=l[0].line,d=this.textModel.getLineIndentColumn(s.lineNumber);if(a<=d){let g=firstNonWhitespaceIndex(c);g===-1&&(g=c.length-1),t=g>0;const f=this.textModel.getOptions().tabSize;r=CursorColumns.visibleColumnFromColumn(c,g+1,f)<f}}return{startsWithIndentation:t,startsWithIndentationLessThanTabSize:r}}_getReason(e){return e!=null&&e.isUndoing?VersionIdChangeReason.Undo:e!=null&&e.isRedoing?VersionIdChangeReason.Redo:this.isAcceptingPartially?VersionIdChangeReason.AcceptWord:VersionIdChangeReason.Other}getAvailableProviders(e){var l;const t=this._suppressedInlineCompletionGroupIds.get(),r=e.filter(c=>!(c.groupId&&t.has(c.groupId))),s=new Set;for(const c of r)(l=c.excludesGroupIds)==null||l.forEach(d=>s.add(d));const a=[];for(const c of r)c.groupId&&s.has(c.groupId)||a.push(c);return a}async trigger(e,t={}){subtransaction(e,r=>{t.onlyFetchInlineEdits&&this._onlyRequestInlineEditsSignal.trigger(r),t.noDelay&&this._noDelaySignal.trigger(r),this._isActive.set(!0,r),t.explicit&&(this._inAcceptFlow.set(!0,r),this._forceUpdateExplicitlySignal.trigger(r)),t.provider&&this._fetchSpecificProviderSignal.trigger(r,t.provider)}),await this._fetchInlineCompletionsPromise.get()}async triggerExplicitly(e,t=!1){return this.trigger(e,{onlyFetchInlineEdits:t,explicit:!0})}stop(e="automatic",t){subtransaction(t,r=>{var s;if(e==="explicitCancel"){const a=(s=this.state.get())==null?void 0:s.inlineCompletion;a&&a.reportEndOfLife({kind:InlineCompletionEndOfLifeReasonKind$1.Rejected})}this._isActive.set(!1,r),this._source.clear(r)})}_computeAugmentation(e,t){const r=this.textModel,s=this._source.suggestWidgetInlineCompletions.read(t),a=s?s.inlineCompletions.filter(c=>!c.isInlineEdit):[this.selectedInlineCompletion.read(t)].filter(isDefined);return mapFindFirst(a,c=>{let d=c.getSingleTextEdit();return d=singleTextRemoveCommonPrefix(d,r,Range$2.fromPositions(d.range.getStartPosition(),e.range.getEndPosition())),singleTextEditAugments(d,e)?{completion:c,edit:d}:void 0})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();const t=this._filteredInlineCompletionItems.get()||[];if(t.length>0){const r=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[r].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}_getMetadata(e,t,r=void 0){return r?EditSources.inlineCompletionPartialAccept({nes:e.isInlineEdit,requestUuid:e.requestUuid,providerId:e.source.provider.providerId,languageId:t,type:r}):EditSources.inlineCompletionAccept({nes:e.isInlineEdit,requestUuid:e.requestUuid,providerId:e.source.provider.providerId,languageId:t})}async accept(e=this._editor){var a;if(e.getModel()!==this.textModel)throw new BugIndicatingError;let t,r=!1;const s=this.state.get();if((s==null?void 0:s.kind)==="ghostText"){if(!s||s.primaryGhostText.isEmpty()||!s.inlineCompletion)return;t=s.inlineCompletion}else if((s==null?void 0:s.kind)==="inlineEdit")t=s.inlineCompletion,r=!!s.nextEditUri;else return;t.addRef();try{if(e.pushUndoStop(),!r)if(t.snippetInfo){const l=TextReplacement.delete(t.editRange),c=t.additionalTextEdits.map(u=>{var g;return new TextReplacement(Range$2.lift(u.range),(g=u.text)!=null?g:"")}),d=TextEdit.fromParallelReplacementsUnsorted([l,...c]);e.edit(d,this._getMetadata(t,this.textModel.getLanguageId())),e.setPosition(t.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),(a=SnippetController2.get(e))==null||a.insert(t.snippetInfo.snippet,{undoStopBefore:!1})}else{const l=s.edits;let c=l;s.kind==="ghostText"&&(c=removeTextReplacementCommonSuffixPrefix(l,this.textModel));const d=getEndPositionsAfterApplying(c).map(f=>Selection$1.fromPositions(f)),u=t.additionalTextEdits.map(f=>{var m;return new TextReplacement(Range$2.lift(f.range),(m=f.text)!=null?m:"")}),g=TextEdit.fromParallelReplacementsUnsorted([...l,...u]);if(e.edit(g,this._getMetadata(t,this.textModel.getLanguageId())),t.hint===void 0&&e.setSelections(s.kind==="inlineEdit"?d.slice(-1):d,"inlineCompletionAccept"),s.kind==="inlineEdit"&&!this._accessibilityService.isMotionReduced()){const f=g.getNewRanges(),m=this._store.add(new FadeoutDecoration(e,f,()=>{this._store.delete(m)}))}}this._onDidAccept.fire(),this.stop(),t.command&&await this._commandService.executeCommand(t.command.id,...t.command.arguments||[]).then(void 0,onUnexpectedExternalError),t.reportEndOfLife({kind:InlineCompletionEndOfLifeReasonKind$1.Accepted})}finally{t.removeRef(),this._inAcceptFlow.set(!0,void 0),this._lastAcceptedInlineCompletionInfo={textModelVersionIdAfter:this.textModel.getVersionId(),inlineCompletion:t}}}async acceptNextWord(){await this._acceptNext(this._editor,"word",(e,t)=>{const r=this.textModel.getLanguageIdAtPosition(e.lineNumber,e.column),s=this._languageConfigurationService.getLanguageConfiguration(r),a=new RegExp(s.wordDefinition.source,s.wordDefinition.flags.replace("g","")),l=t.match(a);let c=0;l&&l.index!==void 0?l.index===0?c=l[0].length:c=l.index:c=t.length;const u=/\s+/g.exec(t);return u&&u.index!==void 0&&u.index+u[0].length<c&&(c=u.index+u[0].length),c},0)}async acceptNextLine(){await this._acceptNext(this._editor,"line",(e,t)=>{const r=t.match(/\n/);return r&&r.index!==void 0?r.index+1:t.length},1)}async _acceptNext(e,t,r,s){if(e.getModel()!==this.textModel)throw new BugIndicatingError;const a=this.inlineCompletionState.get();if(!a||a.primaryGhostText.isEmpty()||!a.inlineCompletion)return;const l=a.primaryGhostText,c=a.inlineCompletion;if(c.snippetInfo){await this.accept(e);return}const d=l.parts[0],u=new Position$1(l.lineNumber,d.column),g=d.text,f=r(u,g);if(f===g.length&&l.parts.length===1){this.accept(e);return}const m=g.substring(0,f),_=this._positions.get(),v=_[0];c.addRef();try{this._isAcceptingPartially=!0;try{e.pushUndoStop();const S=Range$2.fromPositions(v,u),w=e.getModel().getValueInRange(S)+m,E=new TextReplacement(S,w),x=[E,...getSecondaryEdits(this.textModel,_,E)].filter(isDefined),L=getEndPositionsAfterApplying(x).map(k=>Selection$1.fromPositions(k));e.edit(TextEdit.fromParallelReplacementsUnsorted(x),this._getMetadata(c,t)),e.setSelections(L,"inlineCompletionPartialAccept"),e.revealPositionInCenterIfOutsideViewport(e.getPosition(),1)}finally{this._isAcceptingPartially=!1}const b=Range$2.fromPositions(c.editRange.getStartPosition(),TextLength.ofText(m).addToPosition(u)),y=e.getModel().getValueInRange(b,1).length;c.reportPartialAccept(y,{kind:s,acceptedLength:y},{characters:f,ratio:f/g.length,count:1})}finally{c.removeRef()}}handleSuggestAccepted(e){const t=singleTextRemoveCommonPrefix(e.getSingleTextEdit(),this.textModel),r=this._computeAugmentation(t,void 0);if(!r)return;const a=this.textModel.getValueInRange(r.completion.editRange,1).length+t.text.length;r.completion.reportPartialAccept(t.text.length,{kind:2,acceptedLength:a},{characters:t.text.length,count:1,ratio:1})}extractReproSample(){var r;const e=this.textModel.getValue(),t=(r=this.state.get())==null?void 0:r.inlineCompletion;return{documentValue:e,inlineCompletion:t==null?void 0:t.getSourceCompletion()}}jump(){const e=this.inlineEditState.get();e&&transaction(t=>{this._jumpedToId.set(e.inlineCompletion.semanticId,t),this.dontRefetchSignal.trigger(t);const r=e.inlineCompletion.targetRange,s=r.getStartPosition();if(this._editor.setPosition(s,"inlineCompletions.jump"),r.isSingleLine()&&(e.inlineCompletion.hint||!e.inlineCompletion.insertText.includes("\n")))this._editor.revealPosition(s);else{const l=new Range$2(r.startLineNumber-1,1,r.endLineNumber+1,1);this._editor.revealRange(l,1)}e.inlineCompletion.identity.setJumpTo(t),this._editor.focus()})}async handleInlineSuggestionShown(e,t,r){await e.reportInlineEditShown(this._commandService,t,r)}};InlineCompletionsModel=__decorate$1y([__param$1t(7,IInstantiationService),__param$1t(8,ICommandService),__param$1t(9,ILanguageConfigurationService),__param$1t(10,IAccessibilityService),__param$1t(11,ILanguageFeaturesService),__param$1t(12,ICodeEditorService),__param$1t(13,IInlineCompletionsService)],InlineCompletionsModel);var 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={}));function getSecondaryEdits(o,e,t){if(e.length===1)return[];const r=new TextModelText(o),s=r.getTransformer(),a=s.getOffset(e[0]),l=e.slice(1).map(m=>s.getOffset(m));t=t.removeCommonPrefixAndSuffix(r);const c=s.getStringReplacement(t),d=c.replaceRange.start-a,u=c.replaceRange.join(OffsetRange.emptyAt(a)),g=r.getValueOfOffsetRange(u);return l.map(m=>{const _=m+d,v=_+c.replaceRange.length,b=new OffsetRange(_,v),C=b.join(OffsetRange.emptyAt(m));if(r.getValueOfOffsetRange(C)!==g)return;const S=new StringReplacement(b,c.newText);return s.getTextReplacement(S)}).filter(isDefined)}class FadeoutDecoration extends Disposable$1{constructor(e,t,r){super(),r&&this._register({dispose:()=>r()}),this._register(observableCodeEditor(e).setDecorations(constObservable(t.map(l=>({range:l,options:{description:"animation",className:"edits-fadeout-decoration",zIndex:1}})))));const s=new AnimatedValue(1,0,1e3,easeOutCubic),a=new ObservableAnimatedValue(s);this._register(autorun(l=>{const c=a.getValue(l);e.getContainerDomNode().style.setProperty("--animation-opacity",c.toString()),s.isFinished()&&this.dispose()}))}}function isSuggestionInViewport(o,e){const t=e.targetRange,r=o.getVisibleRanges();return r.length<1?!1:new Range$2(r[0].startLineNumber,r[0].startColumn,r[r.length-1].endLineNumber,r[r.length-1].endColumn).containsRange(t)}var __decorate$1x=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1s=function(o,e){return function(t,r){e(t,r,o)}},SuggestMemoryService_1;class Memory{constructor(e){this.name=e}select(e,t,r){if(r.length===0)return 0;const s=r[0].score[0];for(let a=0;a<r.length;a++){const{score:l,completion:c}=r[a];if(l[0]!==s)break;if(c.preselect)return a}return 0}}class NoMemory extends Memory{constructor(){super("first")}memorize(e,t,r){}toJSON(){}fromJSON(){}}class LRUMemory extends Memory{constructor(){super("recentlyUsed"),this._cache=new LRUCache(300,.66),this._seq=0}memorize(e,t,r){const s="".concat(e.getLanguageId(),"/").concat(r.textLabel);this._cache.set(s,{touch:this._seq++,type:r.completion.kind,insertText:r.completion.insertText})}select(e,t,r){if(r.length===0)return 0;const s=e.getLineContent(t.lineNumber).substr(t.column-10,t.column-1);if(/\s$/.test(s))return super.select(e,t,r);const a=r[0].score[0];let l=-1,c=-1,d=-1;for(let u=0;u<r.length&&r[u].score[0]===a;u++){const g="".concat(e.getLanguageId(),"/").concat(r[u].textLabel),f=this._cache.peek(g);if(f&&f.touch>d&&f.type===r[u].completion.kind&&f.insertText===r[u].completion.insertText&&(d=f.touch,c=u),r[u].completion.preselect&&l===-1)return l=u}return c!==-1?c:l!==-1?l:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();const t=0;for(const[r,s]of e)s.touch=t,s.type=typeof s.type=="number"?s.type:CompletionItemKinds.fromString(s.type),this._cache.set(r,s);this._seq=this._cache.size}}class PrefixMemory extends Memory{constructor(){super("recentlyUsedByPrefix"),this._trie=TernarySearchTree.forStrings(),this._seq=0}memorize(e,t,r){const{word:s}=e.getWordUntilPosition(t),a="".concat(e.getLanguageId(),"/").concat(s);this._trie.set(a,{type:r.completion.kind,insertText:r.completion.insertText,touch:this._seq++})}select(e,t,r){const{word:s}=e.getWordUntilPosition(t);if(!s)return super.select(e,t,r);const a="".concat(e.getLanguageId(),"/").concat(s);let l=this._trie.get(a);if(l||(l=this._trie.findSubstr(a)),l)for(let c=0;c<r.length;c++){const{kind:d,insertText:u}=r[c].completion;if(d===l.type&&u===l.insertText)return c}return super.select(e,t,r)}toJSON(){const e=[];return this._trie.forEach((t,r)=>e.push([r,t])),e.sort((t,r)=>-(t[1].touch-r[1].touch)).forEach((t,r)=>t[1].touch=r),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,r]of e)r.type=typeof r.type=="number"?r.type:CompletionItemKinds.fromString(r.type),this._trie.set(t,r)}}}var Ei;let SuggestMemoryService=(Ei=class{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new DisposableStore$1,this._persistSoon=new RunOnceScheduler(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(r=>{r.reason===WillSaveStateReason.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,r){this._withStrategy(e,t).memorize(e,t,r),this._persistSoon.schedule()}select(e,t,r){return this._withStrategy(e,t).select(e,t,r)}_withStrategy(e,t){var s;const r=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(((s=this._strategy)==null?void 0:s.name)!==r){this._saveState();const a=SuggestMemoryService_1._strategyCtors.get(r)||NoMemory;this._strategy=new a;try{const c=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,d=this._storageService.get("".concat(SuggestMemoryService_1._storagePrefix,"/").concat(r),c);d&&this._strategy.fromJSON(JSON.parse(d))}catch(l){}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,r=JSON.stringify(this._strategy);this._storageService.store("".concat(SuggestMemoryService_1._storagePrefix,"/").concat(this._strategy.name),r,t,1)}}},SuggestMemoryService_1=Ei,Ei._strategyCtors=new Map([["recentlyUsedByPrefix",PrefixMemory],["recentlyUsed",LRUMemory],["first",NoMemory]]),Ei._storagePrefix="suggest/memories",Ei);SuggestMemoryService=SuggestMemoryService_1=__decorate$1x([__param$1s(0,IStorageService),__param$1s(1,IConfigurationService)],SuggestMemoryService);const ISuggestMemoryService=createDecorator("ISuggestMemories");registerSingleton(ISuggestMemoryService,SuggestMemoryService,1);var __decorate$1w=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1r=function(o,e){return function(t,r){e(t,r,o)}},WordContextKey_1,Ln;let WordContextKey=(Ln=class{constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=WordContextKey_1.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(r=>r.hasChanged(139)&&this._update()),this._update()}dispose(){var e;this._configListener.dispose(),(e=this._selectionListener)==null||e.dispose(),this._ckAtEnd.reset()}_update(){const e=this._editor.getOption(139)==="on";if(this._enabled!==e)if(this._enabled=e,this._enabled){const t=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const r=this._editor.getModel(),s=this._editor.getSelection(),a=r.getWordAtPosition(s.getStartPosition());if(!a){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(a.endColumn===s.getStartPosition().column&&s.getStartPosition().lineNumber===s.getEndPosition().lineNumber)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}},WordContextKey_1=Ln,Ln.AtEnd=new RawContextKey("atEndOfWord",!1,{type:"boolean",description:localize(1494,"A context key that is true when at the end of a word. Note that this is only defined when tab-completions are enabled")}),Ln);WordContextKey=WordContextKey_1=__decorate$1w([__param$1r(1,IContextKeyService)],WordContextKey);var __decorate$1v=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1q=function(o,e){return function(t,r){e(t,r,o)}},SuggestAlternatives_1,kn;let SuggestAlternatives=(kn=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.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},r){if(e.items.length===0){this.reset();return}if(SuggestAlternatives_1._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=r,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,r){let s=r;for(let a=t.items.length;a>0&&(s=(s+t.items.length+(e?1:-1))%t.items.length,!(s===r||!t.items[s].completion.additionalTextEdits));a--);return s}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_1=kn,kn.OtherSuggestions=new RawContextKey("hasOtherSuggestions",!1),kn);SuggestAlternatives=SuggestAlternatives_1=__decorate$1v([__param$1q(1,IContextKeyService)],SuggestAlternatives);class CommitCharacterController{constructor(e,t,r,s){this._disposables=new DisposableStore$1,this._disposables.add(r.onDidSuggest(a=>{a.completionModel.items.length===0&&this.reset()})),this._disposables.add(r.onDidCancel(a=>{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(a=>{if(this._active&&!t.isFrozen()&&r.state!==0){const l=a.charCodeAt(a.length-1);this._active.acceptCharacters.has(l)&&e.getOption(0)&&s(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 r of e.item.completion.commitCharacters)r.length>0&&t.add(r.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}const gt=class gt{async provideSelectionRanges(e,t){const r=[];for(const s of t){const a=[];r.push(a);const l=new Map;await new Promise(c=>gt._bracketsRightYield(c,0,e,s,l)),await new Promise(c=>gt._bracketsLeftYield(c,0,e,s,l,a))}return r}static _bracketsRightYield(e,t,r,s,a){const l=new Map,c=Date.now();for(;;){if(t>=gt._maxRounds){e();break}if(!s){e();break}const d=r.bracketPairs.findNextBracket(s);if(!d){e();break}if(Date.now()-c>gt._maxDuration){setTimeout(()=>gt._bracketsRightYield(e,t+1,r,s,a));break}if(d.bracketInfo.isOpeningBracket){const g=d.bracketInfo.bracketText,f=l.has(g)?l.get(g):0;l.set(g,f+1)}else{const g=d.bracketInfo.getOpeningBrackets()[0].bracketText;let f=l.has(g)?l.get(g):0;if(f-=1,l.set(g,Math.max(0,f)),f<0){let m=a.get(g);m||(m=new LinkedList,a.set(g,m)),m.push(d.range)}}s=d.range.getEndPosition()}}static _bracketsLeftYield(e,t,r,s,a,l){const c=new Map,d=Date.now();for(;;){if(t>=gt._maxRounds&&a.size===0){e();break}if(!s){e();break}const u=r.bracketPairs.findPrevBracket(s);if(!u){e();break}if(Date.now()-d>gt._maxDuration){setTimeout(()=>gt._bracketsLeftYield(e,t+1,r,s,a,l));break}if(u.bracketInfo.isOpeningBracket){const f=u.bracketInfo.bracketText;let m=c.has(f)?c.get(f):0;if(m-=1,c.set(f,Math.max(0,m)),m<0){const _=a.get(f);if(_){const v=_.shift();_.size===0&&a.delete(f);const b=Range$2.fromPositions(u.range.getEndPosition(),v.getStartPosition()),C=Range$2.fromPositions(u.range.getStartPosition(),v.getEndPosition());l.push({range:b}),l.push({range:C}),gt._addBracketLeading(r,C,l)}}}else{const f=u.bracketInfo.getOpeningBrackets()[0].bracketText,m=c.has(f)?c.get(f):0;c.set(f,m+1)}s=u.range.getStartPosition()}}static _addBracketLeading(e,t,r){if(t.startLineNumber===t.endLineNumber)return;const s=t.startLineNumber,a=e.getLineFirstNonWhitespaceColumn(s);a!==0&&a!==t.startColumn&&(r.push({range:Range$2.fromPositions(new Position$1(s,a),t.getEndPosition())}),r.push({range:Range$2.fromPositions(new Position$1(s,1),t.getEndPosition())}));const l=s-1;if(l>0){const c=e.getLineFirstNonWhitespaceColumn(l);c===t.startColumn&&c!==e.getLineLastNonWhitespaceColumn(l)&&(r.push({range:Range$2.fromPositions(new Position$1(l,c),t.getEndPosition())}),r.push({range:Range$2.fromPositions(new Position$1(l,1),t.getEndPosition())}))}}};gt._maxDuration=30,gt._maxRounds=2;let BracketSelectionRangeProvider=gt;const Ft=class Ft{static async create(e,t){if(!t.getOption(134).localityBonus||!t.hasModel())return Ft.None;const r=t.getModel(),s=t.getPosition();if(!e.canComputeWordRanges(r.uri))return Ft.None;const[a]=await new BracketSelectionRangeProvider().provideSelectionRanges(r,[s]);if(a.length===0)return Ft.None;const l=await e.computeWordRanges(r.uri,a[0].range);if(!l)return Ft.None;const c=r.getWordUntilPosition(s);return delete l[c.word],new class extends Ft{distance(d,u){if(!s.equals(t.getPosition()))return 0;if(u.kind===17)return 2<<20;const g=typeof u.label=="string"?u.label:u.label.label,f=l[g];if(isFalsyOrEmpty(f))return 2<<20;const m=binarySearch(f,Range$2.fromPositions(d),Range$2.compareRangesUsingStarts),_=m>=0?f[m]:f[Math.max(0,~m-1)];let v=a.length;for(const b of a){if(!Range$2.containsRange(b.range,_))break;v-=1}return v}}}};Ft.None=new class extends Ft{distance(){return 0}};let WordDistance=Ft,LineContext$1=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}};class CompletionModel{constructor(e,t,r,s,a,l,c=FuzzyScoreOptions.default,d=void 0){this.clipboardText=d,this._snippetCompareFn=CompletionModel._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=s,this._options=a,this._refilterKind=1,this._lineContext=r,this._fuzzyScoreOptions=c,l==="top"?this._snippetCompareFn=CompletionModel._compareCompletionItemsSnippetsUp:l==="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,r]of this.getItemsByProvider())r.length>0&&r[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:r}=this._lineContext;let s="",a="";const l=this._refilterKind===1?this._items:this._filteredItems,c=[],d=!this._options.filterGraceful||l.length>2e3?fuzzyScore:fuzzyScoreGracefulAggressive;for(let u=0;u<l.length;u++){const g=l[u];if(g.isInvalid)continue;const f=this._itemsByProvider.get(g.provider);f?f.push(g):this._itemsByProvider.set(g.provider,[g]);const m=g.position.column-g.editStart.column,_=m+r-(g.position.column-this._column);if(s.length!==_&&(s=_===0?"":t.slice(-_),a=s.toLowerCase()),g.word=s,_===0)g.score=FuzzyScore.Default;else{let v=0;for(;v<m;){const b=s.charCodeAt(v);if(b===32||b===9)v+=1;else break}if(v>=_)g.score=FuzzyScore.Default;else if(typeof g.completion.filterText=="string"){const b=d(s,a,v,g.completion.filterText,g.filterTextLow,0,this._fuzzyScoreOptions);if(!b)continue;compareIgnoreCase(g.completion.filterText,g.textLabel)===0?g.score=b:(g.score=anyScore(s,a,v,g.textLabel,g.labelLow,0),g.score[0]=b[0])}else{const b=d(s,a,v,g.textLabel,g.labelLow,0,this._fuzzyScoreOptions);if(!b)continue;g.score=b}}g.idx=u,g.distance=this._wordDistance.distance(g.position,g.completion),c.push(g),e.push(g.textLabel.length)}this._filteredItems=c.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?quickSelect(e.length-.85,e,(u,g)=>u-g):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===28)return 1;if(t.completion.kind===28)return-1}return CompletionModel._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===28)return-1;if(t.completion.kind===28)return 1}return CompletionModel._compareCompletionItems(e,t)}}var __decorate$1u=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1p=function(o,e){return function(t,r){e(t,r,o)}},SuggestModel_1;class LineContext{static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),r=e.getPosition();t.tokenization.tokenizeIfCheap(r.lineNumber);const s=t.getWordAtPosition(r);return!(!s||s.endColumn!==r.column&&s.startColumn+1!==r.column||!isNaN(Number(s.word)))}constructor(e,t,r){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=r}}function canShowQuickSuggest(o,e,t){if(!e.getContextKeyValue(InlineCompletionContextKeys.inlineSuggestionVisible.key))return!0;const r=e.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);return r!==void 0?!r:!o.getOption(71).suppressSuggestions}function canShowSuggestOnTriggerCharacters(o,e,t){if(!e.getContextKeyValue("inlineSuggestionVisible"))return!0;const r=e.getContextKeyValue(InlineCompletionContextKeys.suppressSuggestions.key);return r!==void 0?!r:!o.getOption(71).suppressSuggestions}let SuggestModel=SuggestModel_1=class{constructor(e,t,r,s,a,l,c,d,u){this._editor=e,this._editorWorkerService=t,this._clipboardService=r,this._telemetryService=s,this._logService=a,this._contextKeyService=l,this._configurationService=c,this._languageFeaturesService=d,this._envService=u,this._toDispose=new DisposableStore$1,this._triggerCharacterListener=new DisposableStore$1,this._triggerQuickSuggest=new TimeoutTimer,this._triggerState=void 0,this._completionDisposables=new DisposableStore$1,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._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 g=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{g=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{g=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(f=>{g||this._onCursorChange(f)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!g&&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(104)||!this._editor.hasModel()||!this._editor.getOption(137))return;const e=new Map;for(const r of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const s of r.triggerCharacters||[]){let a=e.get(s);a||(a=new Set,e.set(s,a)),a.add(r)}const t=r=>{var l;if(!canShowSuggestOnTriggerCharacters(this._editor,this._contextKeyService,this._configurationService)||LineContext.shouldAutoTrigger(this._editor))return;if(!r){const c=this._editor.getPosition();r=this._editor.getModel().getLineContent(c.lineNumber).substr(0,c.column-1)}let s="";isLowSurrogate(r.charCodeAt(r.length-1))?isHighSurrogate(r.charCodeAt(r.length-2))&&(s=r.substr(r.length-2)):s=r.charAt(r.length-1);const a=e.get(s);if(a){const c=new Map;if(this._completionModel)for(const[d,u]of this._completionModel.getItemsByProvider())a.has(d)||c.set(d,u);this.trigger({auto:!0,triggerKind:1,triggerCharacter:s,retrigger:!!this._completionModel,clipboardText:(l=this._completionModel)==null?void 0:l.clipboardText,completionOptions:{providerFilter:a,providerItemsToReuse:c}})}};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.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(102))||this._editor.getOption(134).snippetsPreventQuickSuggestions&&((e=SnippetController2.get(this._editor))!=null&&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(),r=this._editor.getPosition(),s=this._editor.getOption(102);if(!QuickSuggestionsOptions.isAllOff(s)){if(!QuickSuggestionsOptions.isAllOn(s)){t.tokenization.tokenizeIfCheap(r.lineNumber);const a=t.tokenization.getLineTokens(r.lineNumber),l=a.getStandardTokenType(a.findTokenIndexAtOffset(Math.max(r.column-1-1,0)));if(QuickSuggestionsOptions.valueFor(s,l)!=="on")return}canShowQuickSuggest(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(t)&&this.trigger({auto:!0})}},this._editor.getOption(103)))}_refilterCompletionItems(){assertType(this._editor.hasModel()),assertType(this._triggerState!==void 0);const e=this._editor.getModel(),t=this._editor.getPosition(),r=new LineContext(e,t,{...this._triggerState,refilter:!0});this._onNewContext(r)}trigger(e){var m,_,v,b,C,y;if(!this._editor.hasModel())return;const t=this._editor.getModel(),r=new LineContext(t,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:(m=e.shy)!=null?m:!1,position:this._editor.getPosition()}),this._context=r;let s={triggerKind:(_=e.triggerKind)!=null?_:0};e.triggerCharacter&&(s={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new CancellationTokenSource$1;const a=this._editor.getOption(128);let l=1;switch(a){case"top":l=0;break;case"bottom":l=2;break}const{itemKind:c,showDeprecated:d}=SuggestModel_1.createSuggestFilter(this._editor),u=new CompletionOptions(l,(b=(v=e.completionOptions)==null?void 0:v.kindFilter)!=null?b:c,(C=e.completionOptions)==null?void 0:C.providerFilter,(y=e.completionOptions)==null?void 0:y.providerItemsToReuse,d),g=WordDistance.create(this._editorWorkerService,this._editor),f=provideSuggestionItems(this._languageFeaturesService.completionProvider,t,this._editor.getPosition(),u,s,this._requestToken.token);Promise.all([f,g]).then(async([S,w])=>{var D;if((D=this._requestToken)==null||D.dispose(),!this._editor.hasModel()){S.disposable.dispose();return}let E=e==null?void 0:e.clipboardText;if(!E&&S.needsClipboard&&(E=await this._clipboardService.readText()),this._triggerState===void 0){S.disposable.dispose();return}const x=this._editor.getModel(),L=new LineContext(x,this._editor.getPosition(),e),k={...FuzzyScoreOptions.default,firstMatchCanBeWeak:!this._editor.getOption(134).matchOnWordStartOnly};if(this._completionModel=new CompletionModel(S.items,this._context.column,{leadingLineContent:L.leadingLineContent,characterCountDelta:L.column-this._context.column},w,this._editor.getOption(134),this._editor.getOption(128),k,E),this._completionDisposables.add(S.disposable),this._onNewContext(L),this._reportDurationsTelemetry(S.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const I of S.items)I.isInvalid&&this._logService.warn("[suggest] did IGNORE invalid completion item from ".concat(I.provider._debugDisplayName),I.completion)}).catch(onUnexpectedError)}_reportDurationsTelemetry(e){Math.random()>1e-4||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(128)==="none"&&t.add(28);const s=e.getOption(134);return s.showMethods||t.add(0),s.showFunctions||t.add(1),s.showConstructors||t.add(2),s.showFields||t.add(3),s.showVariables||t.add(4),s.showClasses||t.add(5),s.showStructs||t.add(6),s.showInterfaces||t.add(7),s.showModules||t.add(8),s.showProperties||t.add(9),s.showEvents||t.add(10),s.showOperators||t.add(11),s.showUnits||t.add(12),s.showValues||t.add(13),s.showConstants||t.add(14),s.showEnums||t.add(15),s.showEnumMembers||t.add(16),s.showKeywords||t.add(17),s.showWords||t.add(18),s.showColors||t.add(19),s.showFiles||t.add(20),s.showReferences||t.add(21),s.showColors||t.add(22),s.showFolders||t.add(23),s.showTypeParameters||t.add(24),s.showSnippets||t.add(28),s.showUsers||t.add(25),s.showIssues||t.add(26),{itemKind:t,showDeprecated:s.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 r=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:r}})}return}if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&e.leadingWord.word.length!==0){const t=new Map,r=new Set;for(const[s,a]of this._completionModel.getItemsByProvider())a.length>0&&a[0].container.incomplete?r.add(s):t.set(s,a);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:r,providerItemsToReuse:t}})}else{const t=this._completionModel.lineContext;let r=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},this._completionModel.items.length===0){const s=LineContext.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(s&&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,r=this._completionModel.items.length>0,r&&e.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:r})}}}}};SuggestModel=SuggestModel_1=__decorate$1u([__param$1p(1,IEditorWorkerService),__param$1p(2,IClipboardService),__param$1p(3,ITelemetryService),__param$1p(4,ILogService),__param$1p(5,IContextKeyService),__param$1p(6,IConfigurationService),__param$1p(7,ILanguageFeaturesService),__param$1p(8,IEnvironmentService)],SuggestModel);const ns=class ns{constructor(e,t){this._disposables=new DisposableStore$1,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType(()=>{if(this._locked||!e.hasModel())return;const r=e.getSelections(),s=r.length;let a=!1;for(let c=0;c<s;c++)if(!r[c].isEmpty()){a=!0;break}if(!a){this._lastOvertyped.length!==0&&(this._lastOvertyped.length=0);return}this._lastOvertyped=[];const l=e.getModel();for(let c=0;c<s;c++){const d=r[c];if(l.getValueLengthInRange(d)>ns._maxSelectionLength)return;this._lastOvertyped[c]={value:l.getValueInRange(d),multiline:d.startLineNumber!==d.endLineNumber}}})),this._disposables.add(t.onDidTrigger(r=>{this._locked=!0})),this._disposables.add(t.onDidCancel(r=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e<this._lastOvertyped.length)return this._lastOvertyped[e]}dispose(){this._disposables.dispose()}};ns._maxSelectionLength=51200;let OvertypingCapturer=ns;var __decorate$1t=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1o=function(o,e){return function(t,r){e(t,r,o)}};let SuggestWidgetStatus=class{constructor(e,t,r,s,a){this._menuId=t,this._menuService=s,this._contextKeyService=a,this._menuDisposables=new DisposableStore$1,this.element=append$2(e,$$m(".suggest-status-bar"));const l=(c=>c instanceof MenuItemAction?r.createInstance(TextOnlyMenuEntryActionViewItem,c,{useComma:!1}):void 0);this._leftActions=new ActionBar(this.element,{actionViewItemProvider:l}),this._rightActions=new ActionBar(this.element,{actionViewItemProvider:l}),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 r=[],s=[];for(const[a,l]of e.getActions())a==="left"?r.push(...l):s.push(...l);this._leftActions.clear(),this._leftActions.push(r),this._rightActions.clear(),this._rightActions.push(s)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};SuggestWidgetStatus=__decorate$1t([__param$1o(2,IInstantiationService),__param$1o(3,IMenuService),__param$1o(4,IContextKeyService)],SuggestWidgetStatus);var __decorate$1s=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1n=function(o,e){return function(t,r){e(t,r,o)}};function canExpandCompletionItem(o){return!!o&&!!(o.completion.documentation||o.completion.detail&&o.completion.detail!==o.completion.label)}let SuggestDetailsWidget=class{constructor(e,t,r){this._editor=e,this._themeService=t,this._markdownRendererService=r,this._onDidClose=new Emitter$1,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new Emitter$1,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new DisposableStore$1,this._renderDisposeable=new DisposableStore$1,this._size=new Dimension(330,0),this.domNode=$$m(".suggest-details"),this.domNode.classList.add("no-docs"),this._body=$$m(".body"),this._scrollbar=new DomScrollableElement(this._body,{alwaysConsumeMouseWheel:!0}),append$2(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=append$2(this._body,$$m(".header")),this._close=append$2(this._header,$$m("span"+ThemeIcon.asCSSSelector(Codicon.close))),this._close.title=localize(1490,"Close"),this._close.role="button",this._close.tabIndex=-1,this._type=append$2(this._header,$$m("p.type")),this._docs=append$2(this._body,$$m("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(59)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(59),r=t.getMassagedFontFamily(),s=e.get(135)||t.fontSize,a=e.get(136)||t.lineHeight,l=t.fontWeight,c="".concat(s,"px"),d="".concat(a,"px");this.domNode.style.fontSize=c,this.domNode.style.lineHeight="".concat(a/s),this.domNode.style.fontWeight=l,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=r,this._close.style.height=d,this._close.style.width=d}getLayoutInfo(){const e=this._editor.getOption(136)||this._editor.getOption(59).lineHeight,t=isHighContrast(this._themeService.getColorTheme().type)?2:1,r=t*2;return{lineHeight:e,borderWidth:t,borderHeight:r,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=localize(1491,"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 a,l;this._renderDisposeable.clear();let{detail:r,documentation:s}=e.completion;if(t){let c="";c+="score: ".concat(e.score[0],"\n"),c+="prefix: ".concat((a=e.word)!=null?a:"(no prefix)","\n"),c+="word: ".concat(e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel,"\n"),c+="distance: ".concat(e.distance," (localityBonus-setting)\n"),c+="index: ".concat(e.idx,", based on ").concat(e.completion.sortText&&'sortText: "'.concat(e.completion.sortText,'"')||"label","\n"),c+="commit_chars: ".concat((l=e.completion.commitCharacters)==null?void 0:l.join(""),"\n"),s=new MarkdownString().appendCodeblock("empty",c),r="Provider: ".concat(e.provider._debugDisplayName)}if(!t&&!canExpandCompletionItem(e)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),r){const c=r.length>1e5?"".concat(r.substr(0,1e5),"…"):r;this._type.textContent=c,this._type.title=c,show(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(c))}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 c=this._markdownRendererService.render(s,{context:this._editor,asyncRenderCallback:()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}});this._docs.appendChild(c.element),this._renderDisposeable.add(c)}this.domNode.classList.toggle("detail-and-doc",!!r&&!!s),this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=c=>{c.preventDefault(),c.stopPropagation()},this._close.onclick=c=>{c.preventDefault(),c.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(e,t){const r=new Dimension(e,t);Dimension.equals(r,this._size)||(this._size=r,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)}focus(){this.domNode.focus()}};SuggestDetailsWidget=__decorate$1s([__param$1n(1,IThemeService),__param$1n(2,IMarkdownRendererService)],SuggestDetailsWidget);class SuggestDetailsOverlay{constructor(e,t){this.widget=e,this._editor=t,this.allowEditorOverflow=!0,this._disposables=new DisposableStore$1,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 r,s,a=0,l=0;this._disposables.add(this._resizable.onDidWillResize(()=>{r=this._topLeft,s=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(c=>{if(r&&s){this.widget.layout(c.dimension.width,c.dimension.height);let d=!1;c.west&&(l=s.width-c.dimension.width,d=!0),c.north&&(a=s.height-c.dimension.height,d=!0),d&&this._applyTopLeft({top:r.top+a,left:r.left+l})}c.done&&(r=void 0,s=void 0,a=0,l=0,this._userSize=c.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{var c;this._anchorBox&&this._placeAtAnchor(this._anchorBox,(c=this._userSize)!=null?c:this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(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 s;const r=e.getBoundingClientRect();this._anchorBox=r,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,(s=this._userSize)!=null?s:this.widget.size,t)}_placeAtAnchor(e,t,r){var x;const s=getClientArea(this.getDomNode().ownerDocument.body),a=this.widget.getLayoutInfo(),l=new Dimension(220,2*a.lineHeight),c=e.top,d=(function(){const L=s.width-(e.left+e.width+a.borderWidth+a.horizontalPadding),k=-a.borderWidth+e.left+e.width,D=new Dimension(L,s.height-e.top-a.borderHeight-a.verticalPadding),I=D.with(void 0,e.top+e.height-a.borderHeight-a.verticalPadding);return{top:c,left:k,fit:L-t.width,maxSizeTop:D,maxSizeBottom:I,minSize:l.with(Math.min(L,l.width))}})(),u=(function(){const L=e.left-a.borderWidth-a.horizontalPadding,k=Math.max(a.horizontalPadding,e.left-t.width-a.borderWidth),D=new Dimension(L,s.height-e.top-a.borderHeight-a.verticalPadding),I=D.with(void 0,e.top+e.height-a.borderHeight-a.verticalPadding);return{top:c,left:k,fit:L-t.width,maxSizeTop:D,maxSizeBottom:I,minSize:l.with(Math.min(L,l.width))}})(),g=(function(){const L=e.left,k=-a.borderWidth+e.top+e.height,D=new Dimension(e.width-a.borderHeight,s.height-e.top-e.height-a.verticalPadding);return{top:k,left:L,fit:D.height-t.height,maxSizeBottom:D,maxSizeTop:D,minSize:l.with(D.width)}})(),f=[d,u,g],m=(x=f.find(L=>L.fit>=0))!=null?x:f.sort((L,k)=>k.fit-L.fit)[0],_=e.top+e.height-a.borderHeight;let v,b=t.height;const C=Math.max(m.maxSizeTop.height,m.maxSizeBottom.height);b>C&&(b=C);let y;r?b<=m.maxSizeTop.height?(v=!0,y=m.maxSizeTop):(v=!1,y=m.maxSizeBottom):b<=m.maxSizeBottom.height?(v=!1,y=m.maxSizeBottom):(v=!0,y=m.maxSizeTop);let{top:S,left:w}=m;!v&&b>e.height&&(S=_-b);const E=this._editor.getDomNode();if(E){const L=E.getBoundingClientRect();S-=L.top,w-=L.left}this._applyTopLeft({left:w,top:S}),this._resizable.enableSashes(!v,m===d,v,m!==d),this._resizable.minSize=m.minSize,this._resizable.maxSize=y,this._resizable.layout(b,Math.min(y.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}}const IFileService=createDecorator("fileService");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,r,s){if(ThemeIcon.isThemeIcon(s))return["codicon-".concat(s.id),"predefined-file-icon"];if(URI.isUri(s))return[];const a=r===FileKind.ROOT_FOLDER?["rootfolder-icon"]:r===FileKind.FOLDER?["folder-icon"]:["file-icon"];if(t){let l;if(t.scheme===Schemas.data)l=DataUri.parseMetaData(t).get(DataUri.META_DATA_LABEL);else{const c=t.path.match(fileIconDirectoryRegex);c?(l=fileIconSelectorEscape(c[2].toLowerCase()),c[1]&&a.push("".concat(fileIconSelectorEscape(c[1].toLowerCase()),"-name-dir-icon"))):l=fileIconSelectorEscape(t.authority.toLowerCase())}if(r===FileKind.ROOT_FOLDER)a.push("".concat(l,"-root-name-folder-icon"));else if(r===FileKind.FOLDER)a.push("".concat(l,"-name-folder-icon"));else{if(l){if(a.push("".concat(l,"-name-file-icon")),a.push("name-file-icon"),l.length<=255){const d=l.split(".");for(let u=1;u<d.length;u++)a.push("".concat(d.slice(u).join("."),"-ext-file-icon"))}a.push("ext-file-icon")}const c=detectLanguageId(o,e,t);c&&a.push("".concat(fileIconSelectorEscape(c),"-lang-file-icon"))}}return a}function detectLanguageId(o,e,t){if(!t)return null;let r=null;if(t.scheme===Schemas.data){const a=DataUri.parseMetaData(t).get(DataUri.META_DATA_MIME);a&&(r=e.getLanguageIdByMimeType(a))}else{const s=o.getModel(t);s&&(r=s.getLanguageId())}return r&&r!==PLAINTEXT_LANGUAGE_ID?r:e.guessLanguageIdByFilepathOrFirstLine(t)}function fileIconSelectorEscape(o){return o.replace(/[\s]/g,"/")}var __decorate$1r=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1m=function(o,e){return function(t,r){e(t,r,o)}};const suggestMoreInfoIcon=registerIcon("suggest-more-info",Codicon.chevronRight,localize(1492,"Icon for more information in the suggest widget."));var kt;const _completionItemColor=new(kt=class{extract(e,t){if(e.textLabel.match(kt._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(kt._regexStrict))return t[0]=e.completion.detail,!0;if(e.completion.documentation){const r=typeof e.completion.documentation=="string"?e.completion.documentation:e.completion.documentation.value,s=kt._regexRelaxed.exec(r);if(s&&(s.index===0||s.index+s[0].length===r.length))return t[0]=s[0],!0}return!1}},kt._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*\))/,kt._regexStrict=new RegExp("^".concat(kt._regexRelaxed.source,"$"),"i"),kt);let ItemRenderer=class{constructor(e,t,r,s){this._editor=e,this._modelService=t,this._languageService=r,this._themeService=s,this._onDidToggleDetails=new Emitter$1,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new DisposableStore$1,r=e;r.classList.add("show-file-icons");const s=append$2(e,$$m(".icon")),a=append$2(s,$$m("span.colorspan")),l=append$2(e,$$m(".contents")),c=append$2(l,$$m(".main")),d=append$2(c,$$m(".icon-label.codicon")),u=append$2(c,$$m("span.left")),g=append$2(c,$$m("span.right")),f=new IconLabel(u,{supportHighlights:!0,supportIcons:!0});t.add(f);const m=append$2(u,$$m("span.signature-label")),_=append$2(u,$$m("span.qualifier-label")),v=append$2(g,$$m("span.details-label")),b=append$2(g,$$m("span.readMore"+ThemeIcon.asCSSSelector(suggestMoreInfoIcon)));return b.title=localize(1493,"Read More"),{root:r,left:u,right:g,icon:s,colorspan:a,iconLabel:f,iconContainer:d,parametersLabel:m,qualifierLabel:_,detailsLabel:v,readMore:b,disposables:t,configureFont:()=>{const y=this._editor.getOptions(),S=y.get(59),w=S.getMassagedFontFamily(),E=S.fontFeatureSettings,x=S.fontVariationSettings,L=y.get(135)||S.fontSize,k=y.get(136)||S.lineHeight,D=S.fontWeight,I=S.letterSpacing,T="".concat(L,"px"),M="".concat(k,"px"),R="".concat(I,"px");r.style.fontSize=T,r.style.fontWeight=D,r.style.letterSpacing=R,c.style.fontFamily=w,c.style.fontFeatureSettings=E,c.style.fontVariationSettings=x,c.style.lineHeight=M,s.style.height=M,s.style.width=M,b.style.height=M,b.style.width=M}}}renderElement(e,t,r){r.configureFont();const{completion:s}=e;r.colorspan.style.backgroundColor="";const a={labelEscapeNewLines:!0,matches:createMatches(e.score)},l=[];if(s.kind===19&&_completionItemColor.extract(e,l))r.icon.className="icon customcolor",r.iconContainer.className="icon hide",r.colorspan.style.backgroundColor=l[0];else if(s.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){r.icon.className="icon hide",r.iconContainer.className="icon hide";const c=getIconClasses(this._modelService,this._languageService,URI.from({scheme:"fake",path:e.textLabel}),FileKind.FILE),d=getIconClasses(this._modelService,this._languageService,URI.from({scheme:"fake",path:s.detail}),FileKind.FILE);a.extraClasses=c.length>d.length?c:d}else s.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(r.icon.className="icon hide",r.iconContainer.className="icon hide",a.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:s.detail}),FileKind.FOLDER)].flat()):(r.icon.className="icon hide",r.iconContainer.className="",r.iconContainer.classList.add("suggest-icon",...ThemeIcon.asClassNameArray(CompletionItemKinds.toIcon(s.kind))));s.tags&&s.tags.indexOf(1)>=0&&(a.extraClasses=(a.extraClasses||[]).concat(["deprecated"]),a.matches=[]),r.iconLabel.setLabel(e.textLabel,void 0,a),typeof s.label=="string"?(r.parametersLabel.textContent="",r.detailsLabel.textContent=stripNewLines(s.detail||""),r.root.classList.add("string-label")):(r.parametersLabel.textContent=stripNewLines(s.label.detail||""),r.detailsLabel.textContent=stripNewLines(s.label.description||""),r.root.classList.remove("string-label")),this._editor.getOption(134).showInlineDetails?show(r.detailsLabel):hide(r.detailsLabel),canExpandCompletionItem(e)?(r.right.classList.add("can-expand-details"),show(r.readMore),r.readMore.onmousedown=c=>{c.stopPropagation(),c.preventDefault()},r.readMore.onclick=c=>{c.stopPropagation(),c.preventDefault(),this._onDidToggleDetails.fire()}):(r.right.classList.remove("can-expand-details"),hide(r.readMore),r.readMore.onmousedown=null,r.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};ItemRenderer=__decorate$1r([__param$1m(1,IModelService),__param$1m(2,ILanguageService),__param$1m(3,IThemeService)],ItemRenderer);function stripNewLines(o){return o.replace(/\r\n|\r|\n/g,"")}var __decorate$1q=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1l=function(o,e){return function(t,r){e(t,r,o)}},SuggestWidget_1;registerColor("editorSuggestWidget.background",editorWidgetBackground,localize(1473,"Background color of the suggest widget."));registerColor("editorSuggestWidget.border",editorWidgetBorder,localize(1474,"Border color of the suggest widget."));const editorSuggestWidgetForeground=registerColor("editorSuggestWidget.foreground",editorForeground,localize(1475,"Foreground color of the suggest widget."));registerColor("editorSuggestWidget.selectedForeground",quickInputListFocusForeground,localize(1476,"Foreground color of the selected entry in the suggest widget."));registerColor("editorSuggestWidget.selectedIconForeground",quickInputListFocusIconForeground,localize(1477,"Icon foreground color of the selected entry in the suggest widget."));const editorSuggestWidgetSelectedBackground=registerColor("editorSuggestWidget.selectedBackground",quickInputListFocusBackground,localize(1478,"Background color of the selected entry in the suggest widget."));registerColor("editorSuggestWidget.highlightForeground",listHighlightForeground,localize(1479,"Color of the match highlights in the suggest widget."));registerColor("editorSuggestWidget.focusHighlightForeground",listFocusHighlightForeground,localize(1480,"Color of the match highlights in the suggest widget when an item is focused."));registerColor("editorSuggestWidgetStatus.foreground",transparent(editorSuggestWidgetForeground,.5),localize(1481,"Foreground color of the suggest widget status."));class PersistedWidgetSize{constructor(e,t){this._service=e,this._key="suggestWidget.size/".concat(t.getEditorType(),"/").concat(t instanceof EmbeddedCodeEditorWidget)}restore(){var t;const e=(t=this._service.get(this._key,0))!=null?t:"";try{const r=JSON.parse(e);if(Dimension.is(r))return Dimension.lift(r)}catch(r){}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}var Li;let SuggestWidget=(Li=class{constructor(e,t,r,s,a){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$1,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 l{constructor(_,v,b=!1,C=!1){this.persistedSize=_,this.currentSize=v,this.persistHeight=b,this.persistWidth=C}}let c;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),c=new l(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(m=>{var _,v,b,C;if(this._resize(m.dimension.width,m.dimension.height),c&&(c.persistHeight=c.persistHeight||!!m.north||!!m.south,c.persistWidth=c.persistWidth||!!m.east||!!m.west),!!m.done){if(c){const{itemHeight:y,defaultSize:S}=this.getLayoutInfo(),w=Math.round(y/2);let{width:E,height:x}=this.element.size;(!c.persistHeight||Math.abs(c.currentSize.height-x)<=w)&&(x=(v=(_=c.persistedSize)==null?void 0:_.height)!=null?v:S.height),(!c.persistWidth||Math.abs(c.currentSize.width-E)<=w)&&(E=(C=(b=c.persistedSize)==null?void 0:b.width)!=null?C:S.width),this._persistedSize.store(new Dimension(E,x))}this._contentWidget.unlockPreference(),c=void 0}})),this._messageElement=append$2(this.element.domNode,$$m(".message")),this._listElement=append$2(this.element.domNode,$$m(".tree"));const d=this._disposables.add(a.createInstance(SuggestDetailsWidget,this.editor));d.onDidClose(()=>this.toggleDetails(),this,this._disposables),this._details=new SuggestDetailsOverlay(d,this.editor);const u=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(134).showIcons);u();const g=a.createInstance(ItemRenderer,this.editor);this._disposables.add(g),this._disposables.add(g.onDidToggleDetails(()=>this.toggleDetails())),this._list=new List("SuggestWidget",this._listElement,{getHeight:m=>this.getLayoutInfo().itemHeight,getTemplateId:m=>"suggestion"},[g],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>isWindows?"listitem":"option",getWidgetAriaLabel:()=>localize(1484,"Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:m=>{let _=m.textLabel;const v=CompletionItemKinds.toLabel(m.completion.kind);if(typeof m.completion.label!="string"){const{detail:S,description:w}=m.completion.label;S&&w?_=localize(1485,"{0} {1}, {2}, {3}",_,S,w,v):S?_=localize(1486,"{0} {1}, {2}",_,S,v):w&&(_=localize(1487,"{0}, {1}, {2}",_,w,v))}else _=localize(1488,"{0}, {1}",_,v);if(!m.isResolved||!this._isDetailsVisible())return _;const{documentation:b,detail:C}=m.completion,y=format("{0}{1}",C||"",b?typeof b=="string"?b:b.value:"");return localize(1489,"{0}, docs: {1}",_,y)}}}),this._list.style(getListStyles({listInactiveFocusBackground:editorSuggestWidgetSelectedBackground,listInactiveFocusOutline:activeContrastBorder})),this._status=a.createInstance(SuggestWidgetStatus,this.element.domNode,suggestWidgetStatusbarMenu);const f=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(134).showStatusBar);f(),this._disposables.add(this._list.onMouseDown(m=>this._onListMouseDownOrTap(m))),this._disposables.add(this._list.onTap(m=>this._onListMouseDownOrTap(m))),this._disposables.add(this._list.onDidChangeSelection(m=>this._onListSelection(m))),this._disposables.add(this._list.onDidChangeFocus(m=>this._onListFocus(m))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(m=>{m.hasChanged(134)&&(f(),u()),this._completionModel&&(m.hasChanged(59)||m.hasChanged(135)||m.hasChanged(136))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=Context$2.Visible.bindTo(r),this._ctxSuggestWidgetDetailsVisible=Context$2.DetailsVisible.bindTo(r),this._ctxSuggestWidgetMultipleSuggestions=Context$2.MultipleSuggestions.bindTo(r),this._ctxSuggestWidgetHasFocusedSuggestion=Context$2.HasFocusedSuggestion.bindTo(r),this._disposables.add(addStandardDisposableListener(this._details.widget.domNode,"keydown",m=>{this._onDetailsKeydown.fire(m)})),this._disposables.add(this.editor.onMouseDown(m=>this._onEditorMouseDown(m)))}dispose(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(e=this._loadingTimeout)==null||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 r=this._completionModel;r&&(this._onDidSelect.fire({item:e,index:t,model:r}),this.editor.focus())}_onListFocus(e){var s;if(this._ignoreFocusEvents)return;if(this._state===5&&this._setState(3),!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 t=e.elements[0],r=e.indexes[0];t!==this._focusedItem&&((s=this._currentSuggestionDetails)==null||s.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=t,this._list.reveal(r),this._currentSuggestionDetails=createCancelablePromise(async a=>{const l=disposableTimeout(()=>{this._isDetailsVisible()&&this._showDetails(!0,!1)},250),c=a.onCancellationRequested(()=>l.dispose());try{return await t.resolve(a)}finally{l.dispose(),c.dispose()}}),this._currentSuggestionDetails.then(()=>{r>=this._list.length||t!==this._list.element(r)||(this._ignoreFocusEvents=!0,this._list.splice(r,1,[t]),this._list.setFocus([r]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this._showDetails(!1,!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:this._list.getElementID(r)}))}).catch(onUnexpectedError)),this._onDidFocus.fire({item:t,index:r,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(),this._details.widget.focus();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,r,s,a){var d,u;if(this._contentWidget.setPosition(this.editor.getPosition()),(d=this._loadingTimeout)==null||d.dispose(),(u=this._currentSuggestionDetails)==null||u.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),r&&this._state!==2&&this._state!==0){this._setState(4);return}const l=this._completionModel.items.length,c=l===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(l>1),c){this._setState(s?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(r?4:3),this._list.reveal(t,0,t===0?0:this.getLayoutInfo().itemHeight*.33),this._list.setFocus(a?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=runAtThisOrScheduleAtNextAnimationFrame(getWindow$1(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._list.setFocus(this._list.getFocus()),this._setState(3)):this._state===3&&(this._setState(5),this._isDetailsVisible()?this._details.widget.focus():this.toggleDetails(!0))}toggleDetails(e=!1){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,e))}_showDetails(e,t){this._pendingShowDetails.value=runAtThisOrScheduleAtNextAnimationFrame(getWindow$1(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show();let r=!1;e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details"),t&&(this._details.widget.focus(),r=!0)),r||this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this._showDetails(!1,!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var r;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(r=this._loadingTimeout)==null||r.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const e=this._persistedSize.restore(),t=Math.ceil(this.getLayoutInfo().itemHeight*4.3);e&&e.height<t&&this._persistedSize.store(e.with(void 0,t))}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.widget.isEmpty&&this._details.show(),this._positionDetails())}_layout(e){var l,c,d;if(!this.editor.hasModel()||!this.editor.getDomNode())return;const t=getClientArea(this.element.domNode.ownerDocument.body),r=this.getLayoutInfo();e||(e=r.defaultSize);let s=e.height,a=e.width;if(this._status.element.style.height="".concat(r.itemHeight,"px"),this._state===2||this._state===1)s=r.itemHeight+r.borderHeight,a=r.defaultSize.width/2,this.element.enableSashes(!1,!1,!1,!1),this.element.minSize=this.element.maxSize=new Dimension(a,s),this._contentWidget.setPreference(2);else{const u=t.width-r.borderHeight-2*r.horizontalPadding;a>u&&(a=u);const g=this._completionModel?this._completionModel.stats.pLabelLen*r.typicalHalfwidthCharacterWidth:a,f=r.statusBarHeight+this._list.contentHeight+r.borderHeight,m=r.itemHeight+r.statusBarHeight,_=getDomNodePagePosition(this.editor.getDomNode()),v=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),b=_.top+v.top+v.height,C=Math.min(t.height-b-r.verticalPadding,f),y=_.top+v.top-r.verticalPadding,S=Math.min(y,f);let w=Math.min(Math.max(S,C)+r.borderHeight,f);s===((l=this._cappedHeight)==null?void 0:l.capped)&&(s=this._cappedHeight.wanted),s<m&&(s=m),s>w&&(s=w),s>C&&S>C||this._forceRenderingAbove&&y>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),w=S):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),w=C),this.element.preferredSize=new Dimension(g,r.defaultSize.height),this.element.maxSize=new Dimension(u,w),this.element.minSize=new Dimension(220,m),this._cappedHeight=s===f?{wanted:(d=(c=this._cappedHeight)==null?void 0:c.wanted)!=null?d:e.height,capped:s}:void 0}this._resize(a,s)}_resize(e,t){const{width:r,height:s}=this.element.maxSize;e=Math.min(r,e),t=Math.min(s,t);const{statusBarHeight:a}=this.getLayoutInfo();this._list.layout(t-a,e),this._listElement.style.height="".concat(t-a,"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?void 0:e.preference[0])===2)}getLayoutInfo(){const e=this.editor.getOption(59),t=clamp(this.editor.getOption(136)||e.lineHeight,8,1e3),r=!this.editor.getOption(134).showStatusBar||this._state===2||this._state===1?0:t,s=this._details.widget.getLayoutInfo().borderWidth,a=2*s;return{itemHeight:t,statusBarHeight:r,borderWidth:s,borderHeight:a,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new Dimension(430,r+12*t)}}_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_1=Li,Li.LOADING_MESSAGE=localize(1482,"Loading..."),Li.NO_SUGGESTIONS_MESSAGE=localize(1483,"No suggestions."),Li);SuggestWidget=SuggestWidget_1=__decorate$1q([__param$1l(1,IStorageService),__param$1l(2,IContextKeyService),__param$1l(3,IThemeService),__param$1l(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:r,horizontalPadding:s}=this._widget.getLayoutInfo();return new Dimension(t+2*r+s,e+2*r)}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$1p=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1k=function(o,e){return function(t,r){e(t,r,o)}},SuggestController_1;class LineSuffix{constructor(e,t){if(this._model=e,this._position=t,this._decorationOptions=ModelDecorationOptions.register({description:"suggest-line-suffix",stickiness:1}),e.getLineMaxColumn(t.lineNumber)!==t.column){const s=e.getOffsetAt(t),a=e.getPositionAt(s+1);e.changeDecorations(l=>{this._marker&&l.removeDecoration(this._marker),this._marker=l.addDecoration(Range$2.fromPositions(t,a),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(e=>{e.removeDecoration(this._marker),this._marker=void 0})}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}}var In;let SuggestController=(In=class{static get(e){return e.getContribution(SuggestController_1.ID)}get onWillInsertSuggestItem(){return this._onWillInsertSuggestItem.event}constructor(e,t,r,s,a,l,c){this._memoryService=t,this._commandService=r,this._contextKeyService=s,this._instantiationService=a,this._logService=l,this._telemetryService=c,this._lineSuffix=new MutableDisposable,this._toDispose=new DisposableStore$1,this._selectors=new PriorityRegistry(f=>f.priority),this._onWillInsertSuggestItem=new Emitter$1,this._wantsForceRenderingAbove=!1,this.editor=e,this.model=a.createInstance(SuggestModel,this.editor),this._selectors.register({priority:0,select:(f,m,_)=>this._memoryService.select(f,m,_)});const d=Context$2.InsertMode.bindTo(s);d.set(e.getOption(134).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>d.set(e.getOption(134).insertMode))),this.widget=this._toDispose.add(new WindowIdleValue(getWindow$1(e.getDomNode()),()=>{const f=this._instantiationService.createInstance(SuggestWidget,this.editor);this._toDispose.add(f),this._toDispose.add(f.onDidSelect(C=>this._insertSuggestion(C,0),this));const m=new CommitCharacterController(this.editor,f,this.model,C=>this._insertSuggestion(C,2));this._toDispose.add(m);const _=Context$2.MakesTextEdit.bindTo(this._contextKeyService),v=Context$2.HasInsertAndReplaceRange.bindTo(this._contextKeyService),b=Context$2.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(toDisposable(()=>{_.reset(),v.reset(),b.reset()})),this._toDispose.add(f.onDidFocus(({item:C})=>{const y=this.editor.getPosition(),S=C.editStart.column,w=y.column;let E=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!C.completion.additionalTextEdits&&!(C.completion.insertTextRules&4)&&w-S===C.completion.insertText.length&&(E=this.editor.getModel().getValueInRange({startLineNumber:y.lineNumber,startColumn:S,endLineNumber:y.lineNumber,endColumn:w})!==C.completion.insertText),_.set(E),v.set(!Position$1.equals(C.editInsertEnd,C.editReplaceEnd)),b.set(!!C.provider.resolveCompletionItem||!!C.completion.documentation||C.completion.detail!==C.completion.label)})),this._toDispose.add(f.onDetailsKeyDown(C=>{if(C.toKeyCodeChord().equals(new KeyCodeChord(!0,!1,!1,!1,33))||isMacintosh&&C.toKeyCodeChord().equals(new KeyCodeChord(!1,!1,!1,!0,33))){C.stopPropagation();return}C.toKeyCodeChord().isModifierKey()||this.editor.focus()})),this._wantsForceRenderingAbove&&f.forceRenderingAbove(),f})),this._overtypingCapturer=this._toDispose.add(new WindowIdleValue(getWindow$1(e.getDomNode()),()=>this._toDispose.add(new OvertypingCapturer(this.editor,this.model)))),this._alternatives=this._toDispose.add(new WindowIdleValue(getWindow$1(e.getDomNode()),()=>this._toDispose.add(new SuggestAlternatives(this.editor,this._contextKeyService)))),this._toDispose.add(a.createInstance(WordContextKey,e)),this._toDispose.add(this.model.onDidTrigger(f=>{this.widget.value.showTriggered(f.auto,f.shy?250:50),this._lineSuffix.value=new LineSuffix(this.editor.getModel(),f.position)})),this._toDispose.add(this.model.onDidSuggest(f=>{if(f.triggerOptions.shy)return;let m=-1;for(const v of this._selectors.itemsOrderedByPriorityDesc)if(m=v.select(this.editor.getModel(),this.editor.getPosition(),f.completionModel.items),m!==-1)break;if(m===-1&&(m=0),this.model.state===0)return;let _=!1;if(f.triggerOptions.auto){const v=this.editor.getOption(134);v.selectionMode==="never"||v.selectionMode==="always"?_=v.selectionMode==="never":v.selectionMode==="whenTriggerCharacter"?_=f.triggerOptions.triggerKind!==1:v.selectionMode==="whenQuickSuggestion"&&(_=f.triggerOptions.triggerKind===1&&!f.triggerOptions.refilter)}this.widget.value.showSuggestions(f.completionModel,m,f.isFrozen,f.triggerOptions.auto,_)})),this._toDispose.add(this.model.onDidCancel(f=>{f.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const u=Context$2.AcceptSuggestionsOnEnter.bindTo(s),g=()=>{const f=this.editor.getOption(1);u.set(f==="on"||f==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>g())),g()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){var v;if(!e||!e.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const r=SnippetController2.get(this.editor);if(!r)return;this._onWillInsertSuggestItem.fire({item:e.item});const s=this.editor.getModel(),a=s.getAlternativeVersionId(),{item:l}=e,c=[],d=new CancellationTokenSource$1;t&1||this.editor.pushUndoStop();const u=this.getOverwriteInfo(l,!!(t&8));this._memoryService.memorize(s,this.editor.getPosition(),l);const g=l.isResolved;let f=-1,m=-1;if(Array.isArray(l.completion.additionalTextEdits)){this.model.cancel();const b=StableEditorScrollState.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",l.completion.additionalTextEdits.map(C=>{let y=Range$2.lift(C.range);if(y.startLineNumber===l.position.lineNumber&&y.startColumn>l.position.column){const S=this.editor.getPosition().column-l.position.column,w=S,E=Range$2.spansMultipleLines(y)?0:S;y=new Range$2(y.startLineNumber,y.startColumn+w,y.endLineNumber,y.endColumn+E)}return EditOperation.replaceMove(y,C.text)})),b.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!g){const b=new StopWatch;let C;const y=s.onDidChangeContent(x=>{if(x.isFlush){d.cancel(),y.dispose();return}for(const L of x.changes){const k=Range$2.getEndPosition(L.range);(!C||Position$1.isBefore(k,C))&&(C=k)}}),S=t;t|=2;let w=!1;const E=this.editor.onWillType(()=>{E.dispose(),w=!0,S&2||this.editor.pushUndoStop()});c.push(l.resolve(d.token).then(()=>{if(!l.completion.additionalTextEdits||d.token.isCancellationRequested)return;if(C&&l.completion.additionalTextEdits.some(L=>Position$1.isBefore(C,Range$2.getStartPosition(L.range))))return!1;w&&this.editor.pushUndoStop();const x=StableEditorScrollState.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",l.completion.additionalTextEdits.map(L=>EditOperation.replaceMove(Range$2.lift(L.range),L.text))),x.restoreRelativeVerticalPositionOfCursor(this.editor),(w||!(S&2))&&this.editor.pushUndoStop(),!0}).then(x=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",b.elapsed(),x),m=x===!0?1:x===!1?0:-2}).finally(()=>{y.dispose(),E.dispose()}))}let{insertText:_}=l.completion;if(l.completion.insertTextRules&4||(_=SnippetParser.escape(_)),this.model.cancel(),r.insert(_,{overwriteBefore:u.overwriteBefore,overwriteAfter:u.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(l.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value,reason:EditSources.suggest({providerId:ProviderId.fromExtensionId((v=l.extensionId)==null?void 0:v.value)})}),t&2||this.editor.pushUndoStop(),l.completion.command)if(l.completion.command.id===TriggerSuggestAction.id)this.model.trigger({auto:!0,retrigger:!0});else{const b=new StopWatch;c.push(this._commandService.executeCommand(l.completion.command.id,...l.completion.command.arguments?[...l.completion.command.arguments]:[]).catch(C=>{l.completion.extensionId?onUnexpectedExternalError(C):onUnexpectedError(C)}).finally(()=>{f=b.elapsed()}))}t&4&&this._alternatives.value.set(e,b=>{for(d.cancel();s.canUndo();){a!==s.getAlternativeVersionId()&&s.undo(),this._insertSuggestion(b,3|(t&8?8:0));break}}),this._alertCompletionItem(l),Promise.all(c).finally(()=>{this._reportSuggestionAcceptedTelemetry(l,s,g,f,m,e.index,e.model.items),this.model.clear(),d.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,r,s,a,l,c){var m,_,v;if(Math.random()>1e-4)return;const d=new Map;for(let b=0;b<Math.min(30,c.length);b++){const C=c[b].textLabel;d.has(C)?d.get(C).push(b):d.set(C,[b])}const u=d.get(e.textLabel),f=u&&u.length>1?u[0]:-1;this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:(_=(m=e.extensionId)==null?void 0:m.value)!=null?_:"unknown",providerId:(v=e.provider._debugDisplayName)!=null?v:"unknown",kind:e.completion.kind,basenameHash:hash$1(basename(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:extname(t.uri),resolveInfo:e.provider.resolveCompletionItem?r?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:s,additionalEditsAsync:a,index:l,firstIndex:f})}getOverwriteInfo(e,t){assertType(this.editor.hasModel());let r=this.editor.getOption(134).insertMode==="replace";t&&(r=!r);const s=e.position.column-e.editStart.column,a=(r?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column,l=this.editor.getPosition().column-e.position.column,c=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:s+l,overwriteAfter:a+c}}_alertCompletionItem(e){if(isNonEmptyArray(e.completion.additionalTextEdits)){const t=localize(1463,"Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);alert(t)}}triggerSuggest(e,t,r){this.editor.hasModel()&&(this.model.trigger({auto:t!=null?t:!1,completionOptions:{providerFilter:e,kindFilter:r?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(),r=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},s=a=>{if(a.completion.insertTextRules&4||a.completion.additionalTextEdits)return!0;const l=this.editor.getPosition(),c=a.editStart.column,d=l.column;return d-c!==a.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:l.lineNumber,startColumn:c,endLineNumber:l.lineNumber,endColumn:d})!==a.completion.insertText};Event$1.once(this.model.onDidTrigger)(a=>{const l=[];Event$1.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{dispose(l),r()},void 0,l),this.model.onDidSuggest(({completionModel:c})=>{if(dispose(l),c.items.length===0){r();return}const d=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),c.items),u=c.items[d];if(!s(u)){r();return}this.editor.pushUndoStop(),this._insertSuggestion({index:d,item:u,model:c},7)},void 0,l)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const r=this.widget.value.getFocusedItem();let s=0;e&&(s|=4),t&&(s|=8),this._insertSuggestion(r,s)}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.isInitialized?this.widget.value.forceRenderingAbove():this._wantsForceRenderingAbove=!0}stopForceRenderingAbove(){this.widget.isInitialized?this.widget.value.stopForceRenderingAbove():this._wantsForceRenderingAbove=!1}registerSelector(e){return this._selectors.register(e)}},SuggestController_1=In,In.ID="editor.contrib.suggestController",In);SuggestController=SuggestController_1=__decorate$1p([__param$1k(1,ISuggestMemoryService),__param$1k(2,ICommandService),__param$1k(3,IContextKeyService),__param$1k(4,IInstantiationService),__param$1k(5,ILogService),__param$1k(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,r)=>this.prioritySelector(r)-this.prioritySelector(t)),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}const rs=class rs extends EditorAction{constructor(){super({id:rs.id,label:localize2(1471,"Trigger Suggest"),precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasCompletionItemProvider,Context$2.Visible.toNegated()),kbOpts:{kbExpr:EditorContextKeys.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,r){const s=SuggestController.get(t);if(!s)return;let a;r&&typeof r=="object"&&r.auto===!0&&(a=!0),s.triggerSuggest(void 0,a,void 0)}};rs.id="editor.action.triggerSuggest";let TriggerSuggestAction=rs;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$2.Visible,Context$2.HasFocusedSuggestion),handler(o){o.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:ContextKeyExpr.and(Context$2.Visible,EditorContextKeys.textInputFocus),weight:weight$2},{primary:3,kbExpr:ContextKeyExpr.and(Context$2.Visible,EditorContextKeys.textInputFocus,Context$2.AcceptSuggestionsOnEnter,Context$2.MakesTextEdit),weight:weight$2}],menuOpts:[{menuId:suggestWidgetStatusbarMenu,title:localize(1464,"Insert"),group:"left",order:1,when:Context$2.HasInsertAndReplaceRange.toNegated()},{menuId:suggestWidgetStatusbarMenu,title:localize(1465,"Insert"),group:"left",order:1,when:ContextKeyExpr.and(Context$2.HasInsertAndReplaceRange,Context$2.InsertMode.isEqualTo("insert"))},{menuId:suggestWidgetStatusbarMenu,title:localize(1466,"Replace"),group:"left",order:1,when:ContextKeyExpr.and(Context$2.HasInsertAndReplaceRange,Context$2.InsertMode.isEqualTo("replace"))}]}));registerEditorCommand(new SuggestCommand({id:"acceptAlternativeSelectedSuggestion",precondition:ContextKeyExpr.and(Context$2.Visible,EditorContextKeys.textInputFocus,Context$2.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$2.HasInsertAndReplaceRange,Context$2.InsertMode.isEqualTo("insert")),title:localize(1467,"Replace")},{menuId:suggestWidgetStatusbarMenu,group:"left",order:2,when:ContextKeyExpr.and(Context$2.HasInsertAndReplaceRange,Context$2.InsertMode.isEqualTo("replace")),title:localize(1468,"Insert")}]}));CommandsRegistry.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion");registerEditorCommand(new SuggestCommand({id:"hideSuggestWidget",precondition:Context$2.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$2.Visible,ContextKeyExpr.or(Context$2.MultipleSuggestions,Context$2.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$2.Visible,ContextKeyExpr.or(Context$2.MultipleSuggestions,Context$2.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$2.Visible,ContextKeyExpr.or(Context$2.MultipleSuggestions,Context$2.HasFocusedSuggestion.negate())),handler:o=>o.selectLastSuggestion()}));registerEditorCommand(new SuggestCommand({id:"selectPrevSuggestion",precondition:ContextKeyExpr.and(Context$2.Visible,ContextKeyExpr.or(Context$2.MultipleSuggestions,Context$2.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$2.Visible,ContextKeyExpr.or(Context$2.MultipleSuggestions,Context$2.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$2.Visible,ContextKeyExpr.or(Context$2.MultipleSuggestions,Context$2.HasFocusedSuggestion.negate())),handler:o=>o.selectFirstSuggestion()}));registerEditorCommand(new SuggestCommand({id:"focusSuggestion",precondition:ContextKeyExpr.and(Context$2.Visible,Context$2.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$2.Visible,Context$2.HasFocusedSuggestion.negate()),handler:o=>{o.focusSuggestion(),o.acceptSelectedSuggestion(!0,!1)}}));registerEditorCommand(new SuggestCommand({id:"toggleSuggestionDetails",precondition:ContextKeyExpr.and(Context$2.Visible,Context$2.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$2.DetailsVisible,Context$2.CanResolve),title:localize(1469,"Show Less")},{menuId:suggestWidgetStatusbarMenu,group:"right",order:1,when:ContextKeyExpr.and(Context$2.DetailsVisible.toNegated(),Context$2.CanResolve),title:localize(1470,"Show More")}]}));registerEditorCommand(new SuggestCommand({id:"toggleExplainMode",precondition:Context$2.Visible,handler:o=>o.toggleExplainMode(),kbOpts:{weight:100,primary:2138}}));registerEditorCommand(new SuggestCommand({id:"toggleSuggestionFocus",precondition:Context$2.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$2.Visible.toNegated(),SuggestAlternatives.OtherSuggestions.toNegated(),SnippetController2.InSnippetMode.toNegated()),handler:(o,e)=>{o.triggerSuggestAndAcceptBest(isObject$3(e)?{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$2.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$2.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:localize2(1472,"Reset Suggest Widget Size"),precondition:void 0})}run(o,e){var t;(t=SuggestController.get(e))==null||t.resetWidgetSize()}});class SuggestWidgetAdaptor extends Disposable$1{get selectedItem(){return this._currentSuggestItemInfo}constructor(e,t,r){super(),this.editor=e,this.suggestControllerPreselector=t,this.onWillAccept=r,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._onDidSelectedItemChange=this._register(new Emitter$1),this.onDidSelectedItemChange=this._onDidSelectedItemChange.event,this._register(e.onKeyDown(a=>{a.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(e.onKeyUp(a=>{a.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const s=SuggestController.get(this.editor);if(s){this._register(s.registerSelector({priority:100,select:(c,d,u)=>{const g=this.editor.getModel();if(!g)return-1;const f=this.suggestControllerPreselector(),m=f?singleTextRemoveCommonPrefix(f,g):void 0;if(!m)return-1;const _=Position$1.lift(d),v=u.map((C,y)=>{const S=SuggestItemInfo.fromSuggestion(s,g,_,C,this.isShiftKeyPressed),w=singleTextRemoveCommonPrefix(S.getSingleTextEdit(),g),E=singleTextEditAugments(m,w);return{index:y,valid:E,prefixLength:w.text.length,suggestItem:C}}).filter(C=>C&&C.valid&&C.prefixLength>0),b=findFirstMax(v,compareBy(C=>C.prefixLength,numberComparator));return b?b.index:-1}}));let a=!1;const l=()=>{a||(a=!0,this._register(s.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(s.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(s.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(Event$1.once(s.model.onDidTrigger)(c=>{l()})),this._register(s.onWillInsertSuggestItem(c=>{const d=this.editor.getPosition(),u=this.editor.getModel();if(!d||!u)return;const g=SuggestItemInfo.fromSuggestion(s,u,d,c.item,this.isShiftKeyPressed);this.onWillAccept(g)}))}this.update(this._isActive)}update(e){const t=this.getSuggestItemInfo();(this._isActive!==e||!suggestItemInfoEquals(this._currentSuggestItemInfo,t))&&(this._isActive=e,this._currentSuggestItemInfo=t,this._onDidSelectedItemChange.fire())}getSuggestItemInfo(){const e=SuggestController.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem(),r=this.editor.getPosition(),s=this.editor.getModel();if(!(!t||!r||!s))return SuggestItemInfo.fromSuggestion(e,s,r,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,r,s,a){var u;let{insertText:l}=s.completion,c=!1;if(s.completion.insertTextRules&4){const g=new SnippetParser().parse(l);g.children.length<100&&SnippetSession.adjustWhitespace(t,r,!0,g),l=g.toString(),c=!0}const d=e.getOverwriteInfo(s,a);return new SuggestItemInfo(Range$2.fromPositions(r.delta(0,-d.overwriteBefore),r.delta(0,Math.max(d.overwriteAfter,0))),l,s.completion.kind,c,(u=s.container.incomplete)!=null?u:!1)}constructor(e,t,r,s,a){this.range=e,this.insertText=t,this.completionItemKind=r,this.isSnippetText=s,this.listIncomplete=a}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)}getSingleTextEdit(){return new TextReplacement(this.range,this.insertText)}}function suggestItemInfoEquals(o,e){return o===e?!0:!o||!e?!1:o.equals(e)}class ObservableSuggestWidgetAdapter extends Disposable$1{constructor(e,t,r){super(),this._editorObs=e,this._handleSuggestAccepted=t,this._suggestControllerPreselector=r,this._suggestWidgetAdaptor=this._register(new SuggestWidgetAdaptor(this._editorObs.editor,()=>(this._editorObs.forceUpdate(),this._suggestControllerPreselector()),s=>this._editorObs.forceUpdate(a=>{this._handleSuggestAccepted(s)}))),this.selectedItem=observableFromEvent(this,s=>this._suggestWidgetAdaptor.onDidSelectedItemChange(()=>{this._editorObs.forceUpdate(a=>s(void 0))}),()=>this._suggestWidgetAdaptor.selectedItem)}stopForceRenderingAbove(){this._suggestWidgetAdaptor.stopForceRenderingAbove()}forceRenderingAbove(){this._suggestWidgetAdaptor.forceRenderingAbove()}}class RangeSingleLine{constructor(e,t){this.lineNumber=e,this.columnRange=t}}class ColumnRange{constructor(e,t){if(this.startColumn=e,this.endColumnExclusive=t,e>t)throw new BugIndicatingError("startColumn ".concat(e," cannot be after endColumnExclusive ").concat(t))}toRange(e){return new Range$2(e,this.startColumn,e,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}toZeroBasedOffsetRange(){return new OffsetRange(this.startColumn-1,this.endColumnExclusive-1)}}class TokenWithTextArray{static fromLineTokens(e){const t=[];for(let r=0;r<e.getCount();r++)t.push(new TokenWithTextInfo(e.getTokenText(r),e.getMetadata(r)));return TokenWithTextArray.create(t)}static create(e){return new TokenWithTextArray(e)}constructor(e){this._tokenInfo=e}toLineTokens(e){return LineTokens.createFromTextAndMetadata(this.map((t,r)=>({text:r.text,metadata:r.metadata})),e)}map(e){const t=[];let r=0;for(const s of this._tokenInfo){const a=new OffsetRange(r,r+s.text.length);t.push(e(a,s)),r+=s.text.length}return t}slice(e){const t=[];let r=0;for(const s of this._tokenInfo){const a=r,l=a+s.text.length;if(l>e.start){if(a>=e.endExclusive)break;const c=Math.max(0,e.start-a),d=Math.max(0,l-e.endExclusive);t.push(new TokenWithTextInfo(s.text.slice(c,s.text.length-d),s.metadata))}r+=s.text.length}return TokenWithTextArray.create(t)}append(e){const t=this._tokenInfo.concat(e._tokenInfo);return TokenWithTextArray.create(t)}}class TokenWithTextInfo{constructor(e,t){this.text=e,this.metadata=t}}var __decorate$1o=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1j=function(o,e){return function(t,r){e(t,r,o)}};const GHOST_TEXT_CLASS_NAME="ghost-text";var Dn;let GhostTextView=(Dn=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._editor=e,this._model=t,this._options=r,this._shouldKeepCursorStable=s,this._isClickable=a,this._languageService=l,this._isDisposed=observableValue(this,!1),this._editorObs=observableCodeEditor(this._editor),this._warningState=derived(c=>{const d=this._model.ghostText.read(c);if(!d)return;const u=this._model.warning.read(c);if(u)return{lineNumber:d.lineNumber,position:new Position$1(d.lineNumber,d.parts[0].column),icon:u.icon}}),this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._useSyntaxHighlighting=this._options.map(c=>c.syntaxHighlightingEnabled),this._extraClassNames=derived(this,c=>{var g;const d=[...(g=this._options.read(c).extraClasses)!=null?g:[]];return this._useSyntaxHighlighting.read(c)&&d.push("syntax-highlighted"),this._warningState.read(c)&&d.push("warning"),d.map(f=>" ".concat(f)).join("")}),this.uiState=derived(this,c=>{var M,R;if(this._isDisposed.read(c))return;const d=this._editorObs.model.read(c);if(d!==this._model.targetTextModel.read(c))return;const u=this._model.ghostText.read(c);if(!u)return;const g=u instanceof GhostTextReplacement?u.columnRange:void 0,f=this._useSyntaxHighlighting.read(c),m=this._extraClassNames.read(c),{inlineTexts:_,additionalLines:v,hiddenRange:b,additionalLinesOriginalSuffix:C}=computeGhostTextViewData(u,d,GHOST_TEXT_CLASS_NAME+m),y=d.getLineContent(u.lineNumber),S=new StringEdit(_.map(N=>StringReplacement.insert(N.column-1,N.text))),w=f?d.tokenization.tokenizeLinesAt(u.lineNumber,[S.apply(y),...v.map(N=>N.content)]):void 0,E=S.getNewRanges(),x=_.map((N,A)=>{var O;return{...N,tokens:(O=w==null?void 0:w[0])==null?void 0:O.getTokensInRange(E[A])}}),L=v.map((N,A)=>{var P;let O=(P=w==null?void 0:w[A+1])!=null?P:LineTokens.createEmpty(N.content,this._languageService.languageIdCodec);if(A===v.length-1&&C){const B=TokenWithTextArray.fromLineTokens(d.tokenization.getLineTokens(C.lineNumber)).slice(C.columnRange.toZeroBasedOffsetRange());O=TokenWithTextArray.fromLineTokens(O).append(B).toLineTokens(O.languageIdCodec)}return{content:O,decorations:N.decorations}}),k=(M=this._editor.getSelection())==null?void 0:M.getStartPosition().column,D=x.filter(N=>N.text!==""),I=D.length!==0,T={cursorColumnDistance:(I?D[0].column:1)-k,cursorLineDistance:I?0:v.findIndex(N=>N.content!=="")+1,lineCountOriginal:I?1:0,lineCountModified:v.length+(I?1:0),characterCountOriginal:0,characterCountModified:sum$1(D.map(N=>N.text.length))+sum$1(L.map(N=>N.content.getTextLength())),disjointReplacements:D.length+(v.length>0?1:0),sameShapeReplacements:D.length>1&&L.length===0?D.every(N=>N.text===D[0].text):void 0};return(R=this._model.handleInlineCompletionShown.read(c))==null||R(T),{replacedRange:g,inlineTexts:x,additionalLines:L,hiddenRange:b,lineNumber:u.lineNumber,additionalReservedLineCount:this._model.minReservedLineCount.read(c),targetTextModel:d,syntaxHighlightingEnabled:f}}),this.decorations=derived(this,c=>{const d=this.uiState.read(c);if(!d)return[];const u=[],g=this._extraClassNames.read(c);d.replacedRange&&u.push({range:d.replacedRange.toRange(d.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace"+g,description:"GhostTextReplacement"}}),d.hiddenRange&&u.push({range:d.hiddenRange.toRange(d.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const f of d.inlineTexts)u.push({range:Range$2.fromPositions(new Position$1(d.lineNumber,f.column)),options:{description:"ghost-text-decoration",after:{content:f.text,tokens:f.tokens,inlineClassName:(f.preview?"ghost-text-decoration-preview":"ghost-text-decoration")+(this._isClickable?" clickable":"")+g+f.lineDecorations.map(m=>" "+m.className).join(" "),cursorStops:InjectedTextCursorStops$1.Left,attachedData:new GhostTextAttachedData(this)},showIfCollapsed:!0}});return u}),this._additionalLinesWidget=this._register(new AdditionalLinesWidget(this._editor,derived(c=>{const d=this.uiState.read(c);return d?{lineNumber:d.lineNumber,additionalLines:d.additionalLines,minReservedLineCount:d.additionalReservedLineCount,targetTextModel:d.targetTextModel}:void 0}),this._shouldKeepCursorStable,this._isClickable)),this._isInlineTextHovered=this._editorObs.isTargetHovered(c=>{var d;return c.target.type===6&&((d=c.target.detail.injectedText)==null?void 0:d.options.attachedData)instanceof GhostTextAttachedData&&c.target.detail.injectedText.options.attachedData.owner===this},this._store),this.isHovered=derived(this,c=>this._isDisposed.read(c)?!1:this._isInlineTextHovered.read(c)||this._additionalLinesWidget.isHovered.read(c)),this.height=derived(this,c=>{var u;return this._editorObs.getOption(75).read(c)+((u=this._additionalLinesWidget.viewZoneHeight.read(c))!=null?u:0)}),this._register(toDisposable(()=>{this._isDisposed.set(!0,void 0)})),this._register(this._editorObs.setDecorations(this.decorations)),this._isClickable&&(this._register(this._additionalLinesWidget.onDidClick(c=>this._onDidClick.fire(c))),this._register(this._editor.onMouseUp(c=>{var u;if(c.target.type!==6)return;const d=(u=c.target.detail.injectedText)==null?void 0:u.options.attachedData;d instanceof GhostTextAttachedData&&d.owner===this&&this._onDidClick.fire(c.event)}))),this._register(autorunWithStore((c,d)=>{}))}static getWarningWidgetContext(e){const t=e.ghostTextViewWarningWidgetData;if(t)return t;if(e.parentElement)return this.getWarningWidgetContext(e.parentElement)}ownsViewZone(e){return this._additionalLinesWidget.viewZoneId===e}},Dn.hot=createHotClass(Dn),Dn);GhostTextView=__decorate$1o([__param$1j(5,ILanguageService)],GhostTextView);class GhostTextAttachedData{constructor(e){this.owner=e}}function computeGhostTextViewData(o,e,t){const r=[],s=[];function a(f,m){if(s.length>0){const _=s[s.length-1];m&&_.decorations.push(new LineDecoration(_.content.length+1,_.content.length+1+f[0].line.length,m,0)),_.content+=f[0].line,f=f.slice(1)}for(const _ of f)s.push({content:_.line,decorations:m?[new LineDecoration(1,_.line.length+1,m,0),..._.lineDecorations]:[..._.lineDecorations]})}const l=e.getLineContent(o.lineNumber);let c,d=0;for(const f of o.parts){let m=f.lines;c===void 0?(r.push({column:f.column,text:m[0].line,preview:f.preview,lineDecorations:m[0].lineDecorations}),m=m.slice(1)):a([{line:l.substring(d,f.column-1),lineDecorations:[]}],void 0),m.length>0&&(a(m,t),c===void 0&&f.column<=l.length&&(c=f.column)),d=f.column-1}let u;c!==void 0&&(u=new RangeSingleLine(o.lineNumber,new ColumnRange(d+1,l.length+1)));const g=c!==void 0?new ColumnRange(c,l.length+1):void 0;return{inlineTexts:r,additionalLines:s,hiddenRange:g,additionalLinesOriginalSuffix:u}}class AdditionalLinesWidget extends Disposable$1{get viewZoneId(){var e;return(e=this._viewZoneInfo)==null?void 0:e.viewZoneId}get viewZoneHeight(){return this._viewZoneHeight}constructor(e,t,r,s){super(),this._editor=e,this._lines=t,this._shouldKeepCursorStable=r,this._isClickable=s,this._viewZoneHeight=observableValue("viewZoneHeight",void 0),this.editorOptionsChanged=observableSignalFromEvent("editorOptionChanged",Event$1.filter(this._editor.onDidChangeConfiguration,a=>a.hasChanged(40)||a.hasChanged(133)||a.hasChanged(113)||a.hasChanged(108)||a.hasChanged(60)||a.hasChanged(59)||a.hasChanged(75))),this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._viewZoneListener=this._register(new MutableDisposable),this.isHovered=observableCodeEditor(this._editor).isTargetHovered(a=>isTargetGhostText(a.target.element),this._store),this.hasBeenAccepted=!1,this._editor instanceof CodeEditorWidget&&this._shouldKeepCursorStable&&this._register(this._editor.onBeforeExecuteEdit(a=>this.hasBeenAccepted=a.source==="inlineSuggestion.accept")),this._register(autorun(a=>{const l=this._lines.read(a);this.editorOptionsChanged.read(a),l?(this.hasBeenAccepted=!1,this.updateLines(l.lineNumber,l.additionalLines,l.minReservedLineCount)):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this._viewZoneListener.clear(),this._editor.changeViewZones(e=>{this.removeActiveViewZone(e)})}updateLines(e,t,r){const s=this._editor.getModel();if(!s)return;const{tabSize:a}=s.getOptions();this._editor.changeViewZones(l=>{const c=new DisposableStore$1;this.removeActiveViewZone(l);const d=Math.max(t.length,r);if(d>0){const u=document.createElement("div");renderLines(u,a,t,this._editor.getOptions(),this._isClickable),this._isClickable&&(c.add(addDisposableListener(u,"mousedown",g=>{g.preventDefault()})),c.add(addDisposableListener(u,"click",g=>{isTargetGhostText(g.target)&&this._onDidClick.fire(new StandardMouseEvent(getWindow$1(g),g))}))),this.addViewZone(l,e,d,u)}this._viewZoneListener.value=c})}addViewZone(e,t,r,s){const a=e.addZone({afterLineNumber:t,heightInLines:r,domNode:s,afterColumnAffinity:1,onComputedHeight:l=>{this._viewZoneHeight.set(l,void 0)}});this.keepCursorStable(t,r),this._viewZoneInfo={viewZoneId:a,heightInLines:r,lineNumber:t}}removeActiveViewZone(e){this._viewZoneInfo&&(e.removeZone(this._viewZoneInfo.viewZoneId),this.hasBeenAccepted||this.keepCursorStable(this._viewZoneInfo.lineNumber,-this._viewZoneInfo.heightInLines),this._viewZoneInfo=void 0,this._viewZoneHeight.set(void 0,void 0))}keepCursorStable(e,t){var s,a;if(!this._shouldKeepCursorStable)return;const r=(a=(s=this._editor.getSelection())==null?void 0:s.getStartPosition())==null?void 0:a.lineNumber;r!==void 0&&e<r&&this._editor.setScrollTop(this._editor.getScrollTop()+t*this._editor.getOption(75))}}function isTargetGhostText(o){return isHTMLElement(o)&&o.classList.contains(GHOST_TEXT_CLASS_NAME)}function renderLines(o,e,t,r,s){const a=r.get(40),l=r.get(133),c="none",d=r.get(108),u=r.get(60),g=r.get(59),f=r.get(75);let m="suggest-preview-text";s&&(m+=" clickable");const _=new StringBuilder(1e4);_.appendString('<div class="'.concat(m,'">'));for(let C=0,y=t.length;C<y;C++){const S=t[C],w=S.content;_.appendString('<div class="view-line'),_.appendString('" style="top:'),_.appendString(String(C*f)),_.appendString('px;width:1000000px;">');const E=w.getLineContent(),x=isBasicASCII(E),L=containsRTL(E);renderViewLine(new RenderLineInput(g.isMonospace&&!a,g.canUseHalfwidthRightwardsArrow,E,!1,x,L,0,w,S.decorations,e,0,g.spaceWidth,g.middotWidth,g.wsmiddotWidth,l,c,d,u!==EditorFontLigatures.OFF,null,null,0),_),_.appendString("</div>")}_.appendString("</div>"),applyFontInfo(o,g);const v=_.build(),b=ttPolicy$3?ttPolicy$3.createHTML(v):v;o.innerHTML=b}const ttPolicy$3=createTrustedTypesPolicy$1("editorGhostText",{createHTML:o=>o}),os=class os{constructor(e){this.replacements=e,assert(checkAdjacentItems(e,(t,r)=>t.lineRange.endLineNumberExclusive<=r.lineRange.startLineNumber))}toString(){return this.replacements.map(e=>e.toString()).join(",")}getNewLineRanges(){const e=[];let t=0;for(const r of this.replacements)e.push(LineRange.ofLength(r.lineRange.startLineNumber+t,r.newLines.length)),t+=r.newLines.length-r.lineRange.length;return e}};os.empty=new os([]);let LineEdit=os;class LineReplacement{static fromSingleTextEdit(e,t){const r=splitLines(e.text);let s=e.range.startLineNumber;const a=t.getValueOfRange(Range$2.fromPositions(new Position$1(e.range.startLineNumber,1),e.range.getStartPosition()));r[0]=a+r[0];let l=e.range.endLineNumber+1;const c=t.getTransformer().getLineLength(e.range.endLineNumber)+1,d=t.getValueOfRange(Range$2.fromPositions(e.range.getEndPosition(),new Position$1(e.range.endLineNumber,c)));r[r.length-1]=r[r.length-1]+d;const u=e.range.startColumn===t.getTransformer().getLineLength(e.range.startLineNumber)+1,g=e.range.endColumn===1;return u&&r[0].length===a.length&&(s++,r.shift()),r.length>0&&s<l&&g&&r[r.length-1].length===d.length&&(l--,r.pop()),new LineReplacement(new LineRange(s,l),r)}constructor(e,t){this.lineRange=e,this.newLines=t}toString(){return"".concat(this.lineRange,"->").concat(JSON.stringify(this.newLines))}toLineEdit(){return new LineEdit([this])}}class InlineEditWithChanges{get lineEdit(){return this.edit.replacements.length===0?new LineReplacement(new LineRange(1,1),[]):LineReplacement.fromSingleTextEdit(this.edit.toReplacement(this.originalText),this.originalText)}get originalLineRange(){return this.lineEdit.lineRange}get modifiedLineRange(){return this.lineEdit.toLineEdit().getNewLineRanges()[0]}get displayRange(){return this.originalText.lineRange.intersect(this.originalLineRange.join(LineRange.ofLength(this.originalLineRange.startLineNumber,this.lineEdit.newLines.length)))}constructor(e,t,r,s,a,l){this.originalText=e,this.edit=t,this.cursorPosition=r,this.multiCursorPositions=s,this.commands=a,this.inlineCompletion=l}}class InlineEditModel{constructor(e,t,r){var s,a;this._model=e,this.inlineEdit=t,this.tabAction=r,this.action=this.inlineEdit.inlineCompletion.action,this.displayName=(s=this.inlineEdit.inlineCompletion.source.provider.displayName)!=null?s:localize(1219,"Inline Edit"),this.extensionCommands=(a=this.inlineEdit.inlineCompletion.source.inlineSuggestions.commands)!=null?a:[],this.isInDiffEditor=this._model.isInDiffEditor,this.displayLocation=this.inlineEdit.inlineCompletion.hint,this.showCollapsed=this._model.showCollapsed}accept(){this._model.accept()}jump(){this._model.jump()}handleInlineEditShown(e,t){this._model.handleInlineSuggestionShown(this.inlineEdit.inlineCompletion,e,t)}}class InlineEditHost{constructor(e){this._model=e,this.onDidAccept=this._model.onDidAccept,this.inAcceptFlow=this._model.inAcceptFlow}}class GhostTextIndicator{constructor(e,t,r,s){var c;this.lineRange=r;const a=observableCodeEditor(e),l=derived(this,d=>a.isFocused.read(d)&&s.showInlineEditMenu?InlineEditTabAction.Accept:InlineEditTabAction.Inactive);this.model=new InlineEditModel(t,new InlineEditWithChanges(new StringText(""),new TextEdit([s.getSingleTextEdit()]),t.primaryPosition.get(),t.allPositions.get(),(c=s.source.inlineSuggestions.commands)!=null?c:[],s),l)}}class Rect{static fromPoints(e,t){return new Rect(e.x,e.y,t.x,t.y)}static fromPointSize(e,t){return new Rect(e.x,e.y,e.x+t.x,e.y+t.y)}static fromLeftTopRightBottom(e,t,r,s){return new Rect(e,t,r,s)}static fromLeftTopWidthHeight(e,t,r,s){return new Rect(e,t,e+r,t+s)}static fromRanges(e,t){return new Rect(e.start,t.start,e.endExclusive,t.endExclusive)}static hull(e){let t=Number.MAX_SAFE_INTEGER,r=Number.MAX_SAFE_INTEGER,s=Number.MIN_SAFE_INTEGER,a=Number.MIN_SAFE_INTEGER;for(const l of e)t=Math.min(t,l.left),r=Math.min(r,l.top),s=Math.max(s,l.right),a=Math.max(a,l.bottom);return new Rect(t,r,s,a)}get width(){return this.right-this.left}get height(){return this.bottom-this.top}constructor(e,t,r,s){if(this.left=e,this.top=t,this.right=r,this.bottom=s,e>r)throw new BugIndicatingError("Invalid arguments: Horizontally offset by "+(e-r));if(t>s)throw new BugIndicatingError("Invalid arguments: Vertically offset by "+(t-s))}withMargin(e,t,r,s){let a,l,c,d;return t===void 0&&r===void 0&&s===void 0?a=l=c=d=e:r===void 0&&s===void 0?(a=l=t,c=d=e):(a=s,l=t,c=e,d=r),new Rect(this.left-a,this.top-c,this.right+l,this.bottom+d)}intersectVertical(e){const t=Math.max(this.top,e.start),r=Math.min(this.bottom,e.endExclusive);return new Rect(this.left,t,this.right,Math.max(t,r))}intersectHorizontal(e){const t=Math.max(this.left,e.start),r=Math.min(this.right,e.endExclusive);return new Rect(t,this.top,Math.max(t,r),this.bottom)}toString(){return"Rect{(".concat(this.left,",").concat(this.top,"), (").concat(this.right,",").concat(this.bottom,")}")}intersect(e){const t=Math.max(this.left,e.left),r=Math.min(this.right,e.right),s=Math.max(this.top,e.top),a=Math.min(this.bottom,e.bottom);if(!(t>r||s>a))return new Rect(t,s,r,a)}containsRect(e){return this.left<=e.left&&this.top<=e.top&&this.right>=e.right&&this.bottom>=e.bottom}containsPoint(e){return this.left<=e.x&&this.top<=e.y&&this.right>=e.x&&this.bottom>=e.y}moveToBeContainedIn(e){const t=this.width,r=this.height;let s=this.left,a=this.top;return s<e.left?s=e.left:s+t>e.right&&(s=e.right-t),a<e.top?a=e.top:a+r>e.bottom&&(a=e.bottom-r),new Rect(s,a,s+t,a+r)}withWidth(e){return new Rect(this.left,this.top,this.left+e,this.bottom)}withHeight(e){return new Rect(this.left,this.top,this.right,this.top+e)}withTop(e){return new Rect(this.left,e,this.right,this.bottom)}withLeft(e){return new Rect(e,this.top,this.right,this.bottom)}translateX(e){return new Rect(this.left+e,this.top,this.right+e,this.bottom)}translateY(e){return new Rect(this.left,this.top+e,this.right,this.bottom+e)}getLeftBottom(){return new Point(this.left,this.bottom)}getRightBottom(){return new Point(this.right,this.bottom)}getRightTop(){return new Point(this.right,this.top)}toStyles(){return{position:"absolute",left:"".concat(this.left,"px"),top:"".concat(this.top,"px"),width:"".concat(this.width,"px"),height:"".concat(this.height,"px")}}}class StickyScrollWidgetState{constructor(e,t,r,s=null){this.startLineNumbers=e,this.endLineNumbers=t,this.lastLineRelativePosition=r,this.showEndForLine=s}equals(e){return!!e&&this.lastLineRelativePosition===e.lastLineRelativePosition&&this.showEndForLine===e.showEndForLine&&equals$2(this.startLineNumbers,e.startLineNumbers)&&equals$2(this.endLineNumbers,e.endLineNumbers)}static get Empty(){return new StickyScrollWidgetState([],[],0)}}const _ttPolicy=createTrustedTypesPolicy$1("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$1{get height(){return this._height}constructor(e){super(),this._foldingIconStore=this._register(new DisposableStore$1),this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._height=-1,this._onDidChangeStickyScrollHeight=this._register(new Emitter$1),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._editor=e,this._lineHeight=e.getOption(75),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),this._setHeight(0);const t=()=>{this._linesDomNode.style.left=this._editor.getOption(131).scrollWithEditor?"-".concat(this._editor.getScrollLeft(),"px"):"0px"};this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(131)&&t(),r.hasChanged(75)&&(this._lineHeight=this._editor.getOption(75))})),this._register(this._editor.onDidScrollChange(r=>{r.scrollLeftChanged&&t(),r.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{t(),this._updateWidgetWidth()})),t(),this._register(this._editor.onDidLayoutChange(r=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(e){return this._renderedStickyLines.find(t=>t.lineNumber===e)}getCurrentLines(){return this._lineNumbers}setState(e,t,r){const s=!this._state&&!e,a=this._state&&this._state.equals(e);if(r===void 0&&(s||a))return;const l=this._findRenderingData(e),c=this._lineNumbers;this._lineNumbers=l.lineNumbers,this._lastLineRelativePosition=l.lastLineRelativePosition;const d=this._findIndexToRebuildFrom(c,this._lineNumbers,r);this._renderRootNode(this._lineNumbers,this._lastLineRelativePosition,t,d),this._state=e}_findRenderingData(e){if(!e)return{lineNumbers:[],lastLineRelativePosition:0};const t=[...e.startLineNumbers];e.showEndForLine!==null&&(t[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]);let r=0;for(let s=0;s<t.length;s++)r+=this._editor.getLineHeightForPosition(new Position$1(t[s],1));return r===0?{lineNumbers:[],lastLineRelativePosition:0}:{lineNumbers:t,lastLineRelativePosition:e.lastLineRelativePosition}}_findIndexToRebuildFrom(e,t,r){if(t.length===0)return 0;if(r!==void 0)return r;const s=t.findIndex(a=>!e.includes(a));return s===-1?0:s}_updateWidgetWidth(){const e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width="".concat(t,"px"),this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth","".concat(this._editor.getScrollWidth()-e.verticalScrollbarWidth,"px")),this._rootDomNode.style.width="".concat(e.width-e.verticalScrollbarWidth,"px")}_useFoldingOpacityTransition(e){this._lineNumbersDomNode.style.setProperty("--vscode-editorStickyScroll-foldingOpacityTransition","opacity ".concat(e?.5:0,"s"))}_setFoldingIconsVisibility(e){for(const t of this._renderedStickyLines){const r=t.foldingIcon;r&&r.setVisible(e?!0:r.isCollapsed)}}async _renderRootNode(e,t,r,s){const a=this._editor._getViewModel();if(!a){this._clearWidget();return}if(e.length===0){this._clearWidget();return}const l=[],c=e[e.length-1];let d=0;for(let g=0;g<this._renderedStickyLines.length;g++)if(g<s){const f=this._renderedStickyLines[g];l.push(this._updatePosition(f,d,f.lineNumber===c)),d+=f.height}else{const f=this._renderedStickyLines[g];f.lineNumberDomNode.remove(),f.lineDomNode.remove()}const u=this._editor.getLayoutInfo();for(let g=s;g<e.length;g++){const f=this._renderChildNode(a,g,e[g],d,c===e[g],r,u);d+=f.height,this._linesDomNode.appendChild(f.lineDomNode),this._lineNumbersDomNode.appendChild(f.lineNumberDomNode),l.push(f)}r&&(this._setFoldingHoverListeners(),this._useFoldingOpacityTransition(!this._isOnGlyphMargin)),this._minContentWidthInPx=Math.max(...this._renderedStickyLines.map(g=>g.scrollWidth))+u.verticalScrollbarWidth,this._renderedStickyLines=l,this._setHeight(d+t),this._editor.layoutOverlayWidget(this)}_clearWidget(){for(let e=0;e<this._renderedStickyLines.length;e++){const t=this._renderedStickyLines[e];t.lineNumberDomNode.remove(),t.lineDomNode.remove()}this._setHeight(0)}_setHeight(e){this._height!==e&&(this._height=e,this._height===0?this._rootDomNode.style.display="none":(this._rootDomNode.style.display="block",this._lineNumbersDomNode.style.height="".concat(this._height,"px"),this._linesDomNodeScrollable.style.height="".concat(this._height,"px"),this._rootDomNode.style.height="".concat(this._height,"px")),this._onDidChangeStickyScrollHeight.fire({height:this._height}))}_setFoldingHoverListeners(){this._editor.getOption(126)==="mouseover"&&(this._foldingIconStore.clear(),this._foldingIconStore.add(addDisposableListener(this._lineNumbersDomNode,EventType$1.MOUSE_ENTER,()=>{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,r,s,a,l,c){const d=e.coordinatesConverter.convertModelPositionToViewPosition(new Position$1(r,1)).lineNumber,u=e.getViewLineRenderingData(d),g=this._editor.getOption(76),f=this._editor.getOption(117).verticalScrollbarSize;let m;try{m=LineDecoration.filter(u.inlineDecorations,d,u.minColumn,u.maxColumn)}catch(I){m=[]}const _=this._editor.getLineHeightForPosition(new Position$1(r,1)),v=e.getTextDirection(r),b=new RenderLineInput(!0,!0,u.content,u.continuesWithWrappedLine,u.isBasicASCII,u.containsRTL,0,u.tokens,m,u.tabSize,u.startVisibleColumn,1,1,1,500,"none",!0,!0,null,v,f),C=new StringBuilder(2e3),y=renderViewLine(b,C);let S;_ttPolicy?S=_ttPolicy.createHTML(C.build()):S=C.build();const w=document.createElement("span");w.setAttribute(STICKY_INDEX_ATTR,String(t)),w.setAttribute(STICKY_IS_LINE_ATTR,""),w.setAttribute("role","listitem"),w.tabIndex=0,w.className="sticky-line-content",w.classList.add("stickyLine".concat(r)),w.style.lineHeight="".concat(_,"px"),w.innerHTML=S;const E=document.createElement("span");E.setAttribute(STICKY_INDEX_ATTR,String(t)),E.setAttribute(STICKY_IS_LINE_NUMBER_ATTR,""),E.className="sticky-line-number",E.style.lineHeight="".concat(_,"px");const x=c.contentLeft;E.style.width="".concat(x,"px");const L=document.createElement("span");g.renderType===1||g.renderType===3&&r%10===0?L.innerText=r.toString():g.renderType===2&&(L.innerText=Math.abs(r-this._editor.getPosition().lineNumber).toString()),L.className="sticky-line-number-inner",L.style.width="".concat(c.lineNumbersWidth,"px"),L.style.paddingLeft="".concat(c.lineNumbersLeft,"px"),E.appendChild(L);const k=this._renderFoldingIconForLine(l,r);k&&(E.appendChild(k.domNode),k.domNode.style.left="".concat(c.lineNumbersWidth+c.lineNumbersLeft,"px"),k.domNode.style.lineHeight="".concat(_,"px")),this._editor.applyFontInfo(w),this._editor.applyFontInfo(E),E.style.lineHeight="".concat(_,"px"),w.style.lineHeight="".concat(_,"px"),E.style.height="".concat(_,"px"),w.style.height="".concat(_,"px");const D=new RenderedStickyLine(t,r,w,E,k,y.characterMapping,w.scrollWidth,_);return this._updatePosition(D,s,a)}_updatePosition(e,t,r){var l;const s=e.lineDomNode,a=e.lineNumberDomNode;if(r){s.style.zIndex="0",a.style.zIndex="0";const d="".concat(t+this._lastLineRelativePosition+((l=e.foldingIcon)!=null&&l.isCollapsed?1:0),"px");s.style.top=d,a.style.top=d}else s.style.zIndex="1",a.style.zIndex="1",s.style.top="".concat(t,"px"),a.style.top="".concat(t,"px");return e}_renderFoldingIconForLine(e,t){const r=this._editor.getOption(126);if(!e||r==="never")return;const s=e.regions,a=s.findRange(t),l=s.getStartLineNumber(a);if(!(t===l))return;const d=s.isCollapsed(a),u=new StickyFoldingIcon(d,l,s.getEndLineNumber(a),this._lineHeight);return u.setVisible(this._isOnGlyphMargin?!0:d||r==="always"),u.domNode.setAttribute(STICKY_IS_FOLDING_ICON_ATTR,""),u}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:2,stackOridinal:10}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e<this._renderedStickyLines.length&&this._renderedStickyLines[e].lineDomNode.focus()}getEditorPositionFromNode(e){if(!e||e.children.length>0)return null;const t=this._getRenderedStickyLineFromChildDomNode(e);if(!t)return null;const r=getColumnOfNodeOffset(t.characterMapping,e,0);return new Position$1(t.lineNumber,r)}getLineNumberFromChildDomNode(e){var t,r;return(r=(t=this._getRenderedStickyLineFromChildDomNode(e))==null?void 0:t.lineNumber)!=null?r:null}_getRenderedStickyLineFromChildDomNode(e){const t=this.getLineIndexFromChildDomNode(e);return t===null||t<0||t>=this._renderedStickyLines.length?null:this._renderedStickyLines[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 r=e.getAttribute(t);if(r!==null)return r;e=e.parentElement}}}class RenderedStickyLine{constructor(e,t,r,s,a,l,c,d){this.index=e,this.lineNumber=t,this.lineDomNode=r,this.lineNumberDomNode=s,this.foldingIcon=a,this.characterMapping=l,this.scrollWidth=c,this.height=d}}class StickyFoldingIcon{constructor(e,t,r,s){this.isCollapsed=e,this.foldingStartLine=t,this.foldingEndLine=r,this.dimension=s,this.domNode=document.createElement("div"),this.domNode.style.width="26px",this.domNode.style.height="".concat(s,"px"),this.domNode.style.lineHeight="".concat(s,"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,r){this.range=e,this.children=t,this.parent=r}}class StickyModel{constructor(e,t,r,s){this.uri=e,this.version=t,this.element=r,this.outlineProviderId=s}}var __decorate$1n=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1i=function(o,e){return function(t,r){e(t,r,o)}},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$1{constructor(e,t,r,s){switch(super(),this._editor=e,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new Delayer(300)),this._updateOperation=this._register(new DisposableStore$1),this._editor.getOption(131).defaultModel){case ModelProvider.OUTLINE_MODEL:this._modelProviders.push(new StickyModelFromCandidateOutlineProvider(this._editor,s));case ModelProvider.FOLDING_PROVIDER_MODEL:this._modelProviders.push(new StickyModelFromCandidateSyntaxFoldingProvider(this._editor,t,s));case ModelProvider.INDENTATION_MODEL:this._modelProviders.push(new StickyModelFromCandidateIndentationFoldingProvider(this._editor,r));break}}dispose(){this._modelProviders.forEach(e=>e.dispose()),this._updateOperation.clear(),this._cancelModelPromise(),super.dispose()}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(e){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const t of this._modelProviders){const{statusPromise:r,modelPromise:s}=t.computeStickyModel(e);this._modelPromise=s;const a=await r;if(this._modelPromise!==s)return null;switch(a){case Status.CANCELED:return this._updateOperation.clear(),null;case Status.VALID:return t.stickyModel}}return null}).catch(t=>(onUnexpectedError(t),null))}};StickyModelProvider=__decorate$1n([__param$1i(2,IInstantiationService),__param$1i(3,ILanguageFeaturesService)],StickyModelProvider);class StickyModelCandidateProvider extends Disposable$1{constructor(e){super(),this._editor=e,this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,Status.INVALID}computeStickyModel(e){if(e.isCancellationRequested||!this.isProviderValid())return{statusPromise:this._invalid(),modelPromise:null};const t=createCancelablePromise(r=>this.createModelFromProvider(r));return{statusPromise:t.then(r=>this.isModelValid(r)?e.isCancellationRequested?Status.CANCELED:(this._stickyModel=this.createStickyModel(e,r),Status.VALID):this._invalid()).then(void 0,r=>(onUnexpectedError(r),Status.CANCELED)),modelPromise:t}}isModelValid(e){return!0}isProviderValid(){return!0}}let StickyModelFromCandidateOutlineProvider=class extends StickyModelCandidateProvider{constructor(e,t){super(e),this._languageFeaturesService=t}createModelFromProvider(e){return OutlineModel.create(this._languageFeaturesService.documentSymbolProvider,this._editor.getModel(),e)}createStickyModel(e,t){var l;const{stickyOutlineElement:r,providerID:s}=this._stickyModelFromOutlineModel(t,(l=this._stickyModel)==null?void 0:l.outlineProviderId),a=this._editor.getModel();return new StickyModel(a.uri,a.getVersionId(),r,s)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let r;if(Iterable.first(e.children.values())instanceof OutlineGroup){const c=Iterable.find(e.children.values(),d=>d.id===t);if(c)r=c.children;else{let d="",u=-1,g;for(const[f,m]of e.children.entries()){const _=this._findSumOfRangesOfGroup(m);_>u&&(g=m,u=_,d=m.id)}t=d,r=g.children}}else r=e.children;const s=[],a=Array.from(r.values()).sort((c,d)=>{const u=new StickyRange(c.symbol.range.startLineNumber,c.symbol.range.endLineNumber),g=new StickyRange(d.symbol.range.startLineNumber,d.symbol.range.endLineNumber);return this._comparator(u,g)});for(const c of a)s.push(this._stickyModelFromOutlineElement(c,c.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new StickyElement(void 0,s,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const r=[];for(const a of e.children.values())if(a.symbol.selectionRange.startLineNumber!==a.symbol.range.endLineNumber)if(a.symbol.selectionRange.startLineNumber!==t)r.push(this._stickyModelFromOutlineElement(a,a.symbol.selectionRange.startLineNumber));else for(const l of a.children.values())r.push(this._stickyModelFromOutlineElement(l,a.symbol.selectionRange.startLineNumber));r.sort((a,l)=>this._comparator(a.range,l.range));const s=new StickyRange(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new StickyElement(s,r,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 r of e.children.values())t+=this._findSumOfRangesOfGroup(r);return e instanceof OutlineElement?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};StickyModelFromCandidateOutlineProvider=__decorate$1n([__param$1i(1,ILanguageFeaturesService)],StickyModelFromCandidateOutlineProvider);class StickyModelFromCandidateFoldingProvider extends StickyModelCandidateProvider{constructor(e){super(e),this._foldingLimitReporter=this._register(new RangesLimitReporter(e))}createStickyModel(e,t){const r=this._fromFoldingRegions(t),s=this._editor.getModel();return new StickyModel(s.uri,s.getVersionId(),r,void 0)}isModelValid(e){return e!==null}_fromFoldingRegions(e){const t=e.length,r=[],s=new StickyElement(void 0,[],void 0);for(let a=0;a<t;a++){const l=e.getParentIndex(a);let c;l!==-1?c=r[l]:c=s;const d=new StickyElement(new StickyRange(e.getStartLineNumber(a),e.getEndLineNumber(a)+1),[],c);c.children.push(d),r.push(d)}return s}}let StickyModelFromCandidateIndentationFoldingProvider=class extends StickyModelFromCandidateFoldingProvider{constructor(e,t){super(e),this._languageConfigurationService=t,this.provider=this._register(new IndentRangeProvider(e.getModel(),this._languageConfigurationService,this._foldingLimitReporter))}async createModelFromProvider(e){return this.provider.compute(e)}};StickyModelFromCandidateIndentationFoldingProvider=__decorate$1n([__param$1i(1,ILanguageConfigurationService)],StickyModelFromCandidateIndentationFoldingProvider);let StickyModelFromCandidateSyntaxFoldingProvider=class extends StickyModelFromCandidateFoldingProvider{constructor(e,t,r){super(e),this._languageFeaturesService=r,this.provider=this._register(new MutableDisposable),this._register(this._languageFeaturesService.foldingRangeProvider.onDidChange(()=>{this._updateProvider(e,t)})),this._updateProvider(e,t)}_updateProvider(e,t){const r=FoldingController.getFoldingRangeProviders(this._languageFeaturesService,e.getModel());r.length!==0&&(this.provider.value=new SyntaxRangeProvider(e.getModel(),r,t,this._foldingLimitReporter,void 0))}isProviderValid(){return this.provider!==void 0}async createModelFromProvider(e){var t,r;return(r=(t=this.provider.value)==null?void 0:t.compute(e))!=null?r:null}};StickyModelFromCandidateSyntaxFoldingProvider=__decorate$1n([__param$1i(2,ILanguageFeaturesService)],StickyModelFromCandidateSyntaxFoldingProvider);var __decorate$1m=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1h=function(o,e){return function(t,r){e(t,r,o)}};class StickyLineCandidate{constructor(e,t,r,s){this.startLineNumber=e,this.endLineNumber=t,this.top=r,this.height=s}}let StickyLineCandidateProvider=class extends Disposable$1{constructor(e,t,r){super(),this._languageFeaturesService=t,this._languageConfigurationService=r,this._onDidChangeStickyScroll=this._register(new Emitter$1),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new DisposableStore$1),this._updateSoon=this._register(new RunOnceScheduler(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(131)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._sessionStore.clear(),this._editor.getOption(131).enabled&&(this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this.updateStickyModelProvider(),this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this._sessionStore.add(toDisposable(()=>{var t;(t=this._stickyModelProvider)==null||t.dispose(),this._stickyModelProvider=null})),this.updateStickyModelProvider(),this.update())}getVersionId(){var e;return(e=this._model)==null?void 0:e.version}updateStickyModelProvider(){var e;(e=this._stickyModelProvider)==null||e.dispose(),this._stickyModelProvider=null,this._editor.hasModel()&&(this._stickyModelProvider=new StickyModelProvider(this._editor,()=>this._updateSoon.schedule(),this._languageConfigurationService,this._languageFeaturesService))}async update(){var e;(e=this._cts)==null||e.dispose(!0),this._cts=new CancellationTokenSource$1,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(e){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const t=await this._stickyModelProvider.update(e);e.isCancellationRequested||(this._model=t)}getCandidateStickyLinesIntersecting(e){var r;if(!((r=this._model)!=null&&r.element))return[];const t=[];return this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,t,0,0,-1),this.filterHiddenRanges(t)}getCandidateStickyLinesIntersectingFromStickyModel(e,t,r,s,a,l){const c=this._editor.getModel();if(!c||t.children.length===0)return;let d=l;const u=[];for(let m=0;m<t.children.length;m++){const _=t.children[m];_.range&&u.push(_.range.startLineNumber)}const g=this.updateIndex(binarySearch(u,e.startLineNumber,(m,_)=>m-_)),f=this.updateIndex(binarySearch(u,e.endLineNumber,(m,_)=>m-_));for(let m=g;m<=f;m++){const _=t.children[m];if(!_||!_.range)continue;const{startLineNumber:v,endLineNumber:b}=_.range;if(b>v+1&&e.startLineNumber<=b+1&&v-1<=e.endLineNumber&&v!==d&&c.isValidRange(new Range$2(v,1,b,1))){d=v;const C=this._editor.getLineHeightForPosition(new Position$1(v,1));r.push(new StickyLineCandidate(v,b-1,a,C)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,_,r,s+1,a+C,v)}}}filterHiddenRanges(e){var r;const t=(r=this._editor._getViewModel())==null?void 0:r.getHiddenAreas();return t?e.filter(s=>!t.some(a=>s.startLineNumber>=a.startLineNumber&&s.endLineNumber<=a.endLineNumber+1)):e}updateIndex(e){return e===-1?0:e<0?-e-2:e}};StickyLineCandidateProvider=__decorate$1m([__param$1h(1,ILanguageFeaturesService),__param$1h(2,ILanguageConfigurationService)],StickyLineCandidateProvider);var __decorate$1l=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1g=function(o,e){return function(t,r){e(t,r,o)}},StickyScrollController_1,Tn;let StickyScrollController=(Tn=class extends Disposable$1{constructor(e,t,r,s,a,l,c){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=r,this._instaService=s,this._contextKeyService=c,this._sessionStore=new DisposableStore$1,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._mouseTarget=null,this._onDidChangeStickyScrollHeight=this._register(new Emitter$1),this.onDidChangeStickyScrollHeight=this._onDidChangeStickyScrollHeight.event,this._stickyScrollWidget=new StickyScrollWidget(this._editor),this._stickyLineCandidateProvider=new StickyLineCandidateProvider(this._editor,r,a),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=StickyScrollWidgetState.Empty;const d=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeLineHeight(g=>{g.changes.forEach(f=>{const m=f.lineNumber;this._widgetState.startLineNumbers.includes(m)&&this._renderStickyScroll(m)})})),this._register(this._editor.onDidChangeFont(g=>{g.changes.forEach(f=>{const m=f.lineNumber;this._widgetState.startLineNumbers.includes(m)&&this._renderStickyScroll(m)})})),this._register(this._editor.onDidChangeConfiguration(g=>{this._readConfigurationChange(g)})),this._register(addDisposableListener(d,EventType$1.CONTEXT_MENU,async g=>{this._onContextMenu(getWindow$1(d),g)})),this._stickyScrollFocusedContextKey=EditorContextKeys.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=EditorContextKeys.stickyScrollVisible.bindTo(this._contextKeyService);const u=this._register(trackFocus(d));this._register(u.onDidBlur(g=>{this._positionRevealed===!1&&d.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(u.onDidFocus(g=>{this.focus()})),this._registerMouseListeners(),this._register(addDisposableListener(d,EventType$1.MOUSE_DOWN,g=>{this._onMouseDown=!0})),this._register(this._stickyScrollWidget.onDidChangeStickyScrollHeight(g=>{this._onDidChangeStickyScrollHeight.fire(g)})),this._onDidResize(),this._readConfiguration()}get stickyScrollWidgetHeight(){return this._stickyScrollWidget.height}static get(e){return e.getContribution(StickyScrollController_1.ID)}_disposeFocusStickyScrollStore(){var e;this._stickyScrollFocusedContextKey.set(!1),(e=this._focusDisposableStore)==null||e.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}isFocused(){return this._focused}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new DisposableStore$1,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$1),t=this._register(new ClickLinkGesture(this._editor,{extractLineNumberFromMouseEvent:a=>{const l=this._stickyScrollWidget.getEditorPositionFromNode(a.target.element);return l?l.lineNumber:0}})),r=a=>{if(!this._editor.hasModel()||a.target.type!==12||a.target.detail!==this._stickyScrollWidget.getId())return null;const l=a.target.element;if(!l||l.innerText!==l.innerHTML)return null;const c=this._stickyScrollWidget.getEditorPositionFromNode(l);return c?{range:new Range$2(c.lineNumber,c.column,c.lineNumber,c.column+l.innerText.length),textElement:l}:null},s=this._stickyScrollWidget.getDomNode();this._register(addStandardDisposableListener(s,EventType$1.CLICK,a=>{if(a.ctrlKey||a.altKey||a.metaKey||!a.leftButton)return;if(a.shiftKey){const u=this._stickyScrollWidget.getLineIndexFromChildDomNode(a.target);if(u===null)return;const g=new Position$1(this._endLineNumbers[u],1);this._revealLineInCenterIfOutsideViewport(g);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(a.target)){const u=this._stickyScrollWidget.getLineNumberFromChildDomNode(a.target);this._toggleFoldingRegionForLine(u);return}if(!this._stickyScrollWidget.isInStickyLine(a.target))return;let d=this._stickyScrollWidget.getEditorPositionFromNode(a.target);if(!d){const u=this._stickyScrollWidget.getLineNumberFromChildDomNode(a.target);if(u===null)return;d=new Position$1(u,1)}this._revealPosition(d)})),this._register(addDisposableListener(mainWindow,EventType$1.MOUSE_MOVE,a=>{this._mouseTarget=a.target,this._onMouseMoveOrKeyDown(a)})),this._register(addDisposableListener(mainWindow,EventType$1.KEY_DOWN,a=>{this._onMouseMoveOrKeyDown(a)})),this._register(addDisposableListener(mainWindow,EventType$1.KEY_UP,()=>{this._showEndForLine!==void 0&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._register(t.onMouseMoveOrRelevantKeyDown(([a,l])=>{const c=r(a);if(!c||!a.hasTriggerModifier||!this._editor.hasModel()){e.clear();return}const{range:d,textElement:u}=c;if(!d.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=d,e.clear();else if(u.style.textDecoration==="underline")return;const g=new CancellationTokenSource$1;e.add(toDisposable(()=>g.dispose(!0)));let f;getDefinitionsAtPosition(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new Position$1(d.startLineNumber,d.startColumn+1),!1,g.token).then((m=>{if(!g.token.isCancellationRequested)if(m.length!==0){this._candidateDefinitionsLength=m.length;const _=u;f!==_?(e.clear(),f=_,f.style.textDecoration="underline",e.add(toDisposable(()=>{f.style.textDecoration="none"}))):f||(f=_,f.style.textDecoration="underline",e.add(toDisposable(()=>{f.style.textDecoration="none"})))}else e.clear()}))})),this._register(t.onCancel(()=>{e.clear()})),this._register(t.onExecute(async a=>{if(a.target.type!==12||a.target.detail!==this._stickyScrollWidget.getId())return;const l=this._stickyScrollWidget.getEditorPositionFromNode(a.target.element);l&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:l.lineNumber,column:1})),this._instaService.invokeFunction(goToDefinitionWithLocation,a,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(e,t){const r=new StandardMouseEvent(e,t);this._contextMenuService.showContextMenu({menuId:MenuId.StickyScrollContext,getAnchor:()=>r})}_onMouseMoveOrKeyDown(e){if(!e.shiftKey||!this._mouseTarget||!isHTMLElement(this._mouseTarget))return;const t=this._stickyScrollWidget.getLineIndexFromChildDomNode(this._mouseTarget);t===null||this._showEndForLine===t||(this._showEndForLine=t,this._renderStickyScroll())}_toggleFoldingRegionForLine(e){if(!this._foldingModel||e===null)return;const t=this._stickyScrollWidget.getRenderedStickyLine(e),r=t==null?void 0:t.foldingIcon;if(!r)return;toggleCollapseState(this._foldingModel,1,[e]),r.isCollapsed=!r.isCollapsed;const s=(r.isCollapsed?this._editor.getTopForLineNumber(r.foldingEndLine):this._editor.getTopForLineNumber(r.foldingStartLine))-this._editor.getOption(75)*t.index+1;this._editor.setScrollTop(s),this._renderStickyScroll(e)}_readConfiguration(){const e=this._editor.getOption(131);if(e.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._resetState(),this._sessionStore.clear(),this._enabled=!1;return}else e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(r=>{r.scrollTopChanged&&(this._showEndForLine=void 0,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(r=>this._onTokensChange(r))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=void 0,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(76).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=void 0,this._renderStickyScroll(0)}))}_readConfigurationChange(e){(e.hasChanged(131)||e.hasChanged(81)||e.hasChanged(75)||e.hasChanged(126)||e.hasChanged(76))&&this._readConfiguration(),(e.hasChanged(76)||e.hasChanged(52)||e.hasChanged(126))&&this._renderStickyScroll(0)}_needsUpdate(e){const t=this._stickyScrollWidget.getCurrentLines();for(const r of t)for(const s of e.ranges)if(r>=s.fromLineNumber&&r<=s.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(75);this._maxStickyLines=Math.round(t*.25),this._renderStickyScroll(0)}async _renderStickyScroll(e){const t=this._editor.getModel();if(!t||t.isTooLargeForTokenization()){this._resetState();return}const r=this._updateAndGetMinRebuildFromLine(e),s=this._stickyLineCandidateProvider.getVersionId();if(s===void 0||s===t.getVersionId())if(!this._focused)await this._updateState(r);else if(this._focusedStickyElementIndex===-1)await this._updateState(r),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const l=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];await this._updateState(r),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(l)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}_updateAndGetMinRebuildFromLine(e){if(e!==void 0){const t=this._minRebuildFromLine!==void 0?this._minRebuildFromLine:1/0;this._minRebuildFromLine=Math.min(e,t)}return this._minRebuildFromLine}async _updateState(e){var r,s;this._minRebuildFromLine=void 0,this._foldingModel=(s=await((r=FoldingController.get(this._editor))==null?void 0:r.getFoldingModel()))!=null?s:void 0,this._widgetState=this.findScrollWidgetState();const t=this._widgetState.startLineNumbers.length>0;this._stickyScrollVisibleContextKey.set(t),this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e)}async _resetState(){this._minRebuildFromLine=void 0,this._foldingModel=void 0,this._widgetState=StickyScrollWidgetState.Empty,this._stickyScrollVisibleContextKey.set(!1),this._stickyScrollWidget.setState(void 0,void 0)}findScrollWidgetState(){const e=Math.min(this._maxStickyLines,this._editor.getOption(131).maxLineCount),t=this._editor.getScrollTop();let r=0;const s=[],a=[],l=this._editor.getVisibleRanges();if(l.length!==0){const c=new StickyRange(l[0].startLineNumber,l[l.length-1].endLineNumber),d=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(c);for(const u of d){const g=u.startLineNumber,f=u.endLineNumber,m=u.top,_=m+u.height,v=this._editor.getTopForLineNumber(g)-t,b=this._editor.getBottomForLineNumber(f)-t;if(m>v&&m<=b&&(s.push(g),a.push(f+1),_>b&&(r=b-_)),s.length===e)break}}return this._endLineNumbers=a,new StickyScrollWidgetState(s,a,r,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}},StickyScrollController_1=Tn,Tn.ID="store.contrib.stickyScrollController",Tn);StickyScrollController=StickyScrollController_1=__decorate$1l([__param$1g(1,IContextMenuService),__param$1g(2,ILanguageFeaturesService),__param$1g(3,IInstantiationService),__param$1g(4,ILanguageConfigurationService),__param$1g(5,ILanguageFeatureDebounceService),__param$1g(6,IContextKeyService)],StickyScrollController);const originalBackgroundColor=registerColor("inlineEdit.originalBackground",transparent(diffRemoved,.2),localize(1220,"Background color for the original text in inline edits."),!0),modifiedBackgroundColor=registerColor("inlineEdit.modifiedBackground",transparent(diffInserted,.3),localize(1221,"Background color for the modified text in inline edits."),!0);registerColor("inlineEdit.originalChangedLineBackground",transparent(diffRemoved,.8),localize(1222,"Background color for the changed lines in the original text of inline edits."),!0);const originalChangedTextOverlayColor=registerColor("inlineEdit.originalChangedTextBackground",transparent(diffRemoved,.8),localize(1223,"Overlay color for the changed text in the original text of inline edits."),!0),modifiedChangedLineBackgroundColor=registerColor("inlineEdit.modifiedChangedLineBackground",{light:transparent(diffInsertedLine,.7),dark:transparent(diffInsertedLine,.7),hcDark:diffInsertedLine,hcLight:diffInsertedLine},localize(1224,"Background color for the changed lines in the modified text of inline edits."),!0),modifiedChangedTextOverlayColor=registerColor("inlineEdit.modifiedChangedTextBackground",transparent(diffInserted,.7),localize(1225,"Overlay color for the changed text in the modified text of inline edits."),!0),inlineEditIndicatorPrimaryForeground=registerColor("inlineEdit.gutterIndicator.primaryForeground",buttonForeground,localize(1226,"Foreground color for the primary inline edit gutter indicator.")),inlineEditIndicatorPrimaryBorder=registerColor("inlineEdit.gutterIndicator.primaryBorder",buttonBackground,localize(1227,"Border color for the primary inline edit gutter indicator.")),inlineEditIndicatorPrimaryBackground=registerColor("inlineEdit.gutterIndicator.primaryBackground",{light:transparent(inlineEditIndicatorPrimaryBorder,.5),dark:transparent(inlineEditIndicatorPrimaryBorder,.4),hcDark:transparent(inlineEditIndicatorPrimaryBorder,.4),hcLight:transparent(inlineEditIndicatorPrimaryBorder,.5)},localize(1228,"Background color for the primary inline edit gutter indicator.")),inlineEditIndicatorSecondaryForeground=registerColor("inlineEdit.gutterIndicator.secondaryForeground",buttonSecondaryForeground,localize(1229,"Foreground color for the secondary inline edit gutter indicator.")),inlineEditIndicatorSecondaryBorder=registerColor("inlineEdit.gutterIndicator.secondaryBorder",buttonSecondaryBackground,localize(1230,"Border color for the secondary inline edit gutter indicator.")),inlineEditIndicatorSecondaryBackground=registerColor("inlineEdit.gutterIndicator.secondaryBackground",inlineEditIndicatorSecondaryBorder,localize(1231,"Background color for the secondary inline edit gutter indicator.")),inlineEditIndicatorsuccessfulForeground=registerColor("inlineEdit.gutterIndicator.successfulForeground",buttonForeground,localize(1232,"Foreground color for the successful inline edit gutter indicator.")),inlineEditIndicatorsuccessfulBorder=registerColor("inlineEdit.gutterIndicator.successfulBorder",buttonBackground,localize(1233,"Border color for the successful inline edit gutter indicator.")),inlineEditIndicatorsuccessfulBackground=registerColor("inlineEdit.gutterIndicator.successfulBackground",inlineEditIndicatorsuccessfulBorder,localize(1234,"Background color for the successful inline edit gutter indicator.")),inlineEditIndicatorBackground=registerColor("inlineEdit.gutterIndicator.background",{hcDark:transparent("tab.inactiveBackground",.5),hcLight:transparent("tab.inactiveBackground",.5),dark:transparent("tab.inactiveBackground",.5),light:"#5f5f5f18"},localize(1235,"Background color for the inline edit gutter indicator.")),originalBorder=registerColor("inlineEdit.originalBorder",{light:diffRemoved,dark:diffRemoved,hcDark:diffRemoved,hcLight:diffRemoved},localize(1236,"Border color for the original text in inline edits.")),modifiedBorder=registerColor("inlineEdit.modifiedBorder",{light:darken(diffInserted,.6),dark:diffInserted,hcDark:diffInserted,hcLight:diffInserted},localize(1237,"Border color for the modified text in inline edits.")),tabWillAcceptModifiedBorder=registerColor("inlineEdit.tabWillAcceptModifiedBorder",{light:darken(modifiedBorder,0),dark:darken(modifiedBorder,0),hcDark:darken(modifiedBorder,0),hcLight:darken(modifiedBorder,0)},localize(1238,"Modified border color for the inline edits widget when tab will accept it.")),tabWillAcceptOriginalBorder=registerColor("inlineEdit.tabWillAcceptOriginalBorder",{light:darken(originalBorder,0),dark:darken(originalBorder,0),hcDark:darken(originalBorder,0),hcLight:darken(originalBorder,0)},localize(1239,"Original border color for the inline edits widget over the original text when tab will accept it."));function getModifiedBorderColor(o){return o.map(e=>e===InlineEditTabAction.Accept?tabWillAcceptModifiedBorder:modifiedBorder)}function getOriginalBorderColor(o){return o.map(e=>e===InlineEditTabAction.Accept?tabWillAcceptOriginalBorder:originalBorder)}function getEditorBlendedColor(o,e){let t;typeof o=="string"?t=observeColor(o,e):t=o.map((s,a)=>observeColor(s,e).read(a));const r=observeColor(editorBackground,e);return t.map((s,a)=>s.makeOpaque(r.read(a)))}function observeColor(o,e){return observableFromEventOpts({owner:{observeColor:o},equalsFn:(t,r)=>t.equals(r),debugName:()=>"observeColor(".concat(o,")")},e.onDidColorThemeChange,()=>{const t=e.getColorTheme().getColor(o);if(!t)throw new BugIndicatingError("Missing color: ".concat(o));return t})}function maxContentWidthInRange(o,e,t){o.layoutInfo.read(t),o.value.read(t);const r=o.model.read(t);if(!r)return 0;let s=0;o.scrollTop.read(t);for(let l=e.startLineNumber;l<e.endLineNumberExclusive;l++){const c=r.getLineMaxColumn(l);let d=o.editor.getOffsetForColumn(l,c);if(d===-1){const u=o.editor.getOption(59).typicalHalfwidthCharacterWidth;d=c*u}s=Math.max(s,d)}const a=e.mapToLineArray(l=>r.getLineContent(l));return s<5&&a.some(l=>l.length>0)&&r.uri.scheme!=="file"&&console.error("unexpected width"),s}function getOffsetForPos(o,e,t){return o.layoutInfo.read(t),o.value.read(t),o.model.read(t)?(o.scrollTop.read(t),o.editor.getOffsetForColumn(e.lineNumber,e.column)):0}function getPrefixTrim(o,e,t,r,s=void 0){const a=r.getModel();if(!a)return{prefixTrim:0,prefixLeftOffset:0};const l=o.map(m=>m.isSingleLine()?m.startColumn-1:0),c=e.mapToLineArray(m=>indentOfLine(a.getLineContent(m))),d=t.filter(m=>m!=="").map(m=>indentOfLine(m)),u=Math.min(...l,...c,...d);let g;if(a.getLineIndentColumn(e.startLineNumber)>=u+1)observableCodeEditor(r).scrollTop.read(s),g=r.getOffsetForColumn(e.startLineNumber,u+1);else if(t.length>0)g=getContentRenderWidth(t[0].slice(0,u),r,a);else return{prefixTrim:0,prefixLeftOffset:0};return{prefixTrim:u,prefixLeftOffset:g}}function getContentRenderWidth(o,e,t){const r=e.getOption(59).typicalHalfwidthCharacterWidth,s=t.getOptions().tabSize*r,a=o.split(" ").length-1;return(o.length-a)*r+a*s}function getEditorValidOverlayRect(o){const e=o.layoutInfoContentLeft,t=derived({name:"editor.validOverlay.width"},s=>{const a=o.layoutInfoMinimap.read(s).minimapLeft!==0,l=o.layoutInfoWidth.read(s)-e.read(s);if(a){const c=o.layoutInfoMinimap.read(s).minimapWidth+o.layoutInfoVerticalScrollbarWidth.read(s);return l-c}return l}),r=derived({name:"editor.validOverlay.height"},s=>o.layoutInfoHeight.read(s)+o.contentHeight.read(s));return derived({name:"editor.validOverlay"},s=>Rect.fromLeftTopWidthHeight(e.read(s),0,t.read(s),r.read(s)))}function applyEditToModifiedRangeMappings(o,e){const t=[];for(const r of o){const s=e.mapRange(r.modifiedRange);t.push(new RangeMapping(r.originalRange,s))}return t}function classNames(...o){return o.filter(e=>typeof e=="string").join(" ")}function offsetRangeToRange(o,e){return new Range$2(e.lineNumber,e.column+o.start,e.lineNumber,e.column+o.endExclusive)}function getIndentationSize(o,e){let t=0;e:for(let r=0,s=o.length;r<s;r++)switch(o.charCodeAt(r)){case 9:t+=e;break;case 32:t++;break;default:break e}return t-t%e}function indentSizeToIndentLength(o,e,t){let r=e-e%t,s=0;for(;s<o.length&&r!==0;s++)switch(o.charCodeAt(s)){case 9:r-=t;break;case 32:r--;break;default:throw new BugIndicatingError("Unexpected character found while calculating indent length")}return s}function createReindentEdit(o,e,t){const r=splitLines(o),s=[],a=findFirstMin(e.mapToLineArray(l=>getIndentationSize(r[l-1],t)),numberComparator);return e.forEach(l=>{const c=indentSizeToIndentLength(r[l-1],a,t);s.push(new TextReplacement(offsetRangeToRange(new OffsetRange(0,c),new Position$1(l,1)),""))}),new TextEdit(s)}class PathBuilder{constructor(){this._data=""}moveTo(e){return this._data+="M ".concat(e.x," ").concat(e.y," "),this}lineTo(e){return this._data+="L ".concat(e.x," ").concat(e.y," "),this}build(){return this._data}}function mapOutFalsy(o){const e=derivedObservableWithCache(void 0,(t,r)=>o.read(t)||r);return derivedOpts({debugName:()=>"".concat(o.debugName,".mapOutFalsy")},t=>{if(e.read(t),!!o.read(t))return e})}function rectToProps(o,e=DebugLocation.ofCaller()){return{left:derived({name:"editor.validOverlay.left"},t=>o(t).left,e),top:derived({name:"editor.validOverlay.top"},t=>o(t).top,e),width:derived({name:"editor.validOverlay.width"},t=>o(t).right-o(t).left,e),height:derived({name:"editor.validOverlay.height"},t=>o(t).bottom-o(t).top,e)}}var __decorate$1k=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1f=function(o,e){return function(t,r){e(t,r,o)}};let GutterIndicatorMenuContent=class{constructor(e,t,r,s,a,l){this._model=e,this._close=t,this._editorObs=r,this._contextKeyService=s,this._keybindingService=a,this._commandService=l,this._inlineEditsShowCollapsed=this._editorObs.getOption(71).map(c=>c.edits.showCollapsed)}toDisposableLiveElement(){return this._createHoverContent().toDisposableLiveElement()}_createHoverContent(){const e=observableValue("active",void 0),t=m=>({title:m.title,icon:m.icon,keybinding:typeof m.commandId=="string"?this._getKeybinding(m.commandArgs?void 0:m.commandId):derived(this,_=>typeof m.commandId=="string"?void 0:this._getKeybinding(m.commandArgs?void 0:m.commandId.read(_)).read(_)),isActive:e.map(_=>_===m.id),onHoverChange:_=>e.set(_?m.id:void 0,void 0),onAction:()=>{var _;return this._close(!0),this._commandService.executeCommand(typeof m.commandId=="string"?m.commandId:m.commandId.get(),...(_=m.commandArgs)!=null?_:[])}}),r=header(this._model.displayName),s=option(t({id:"gotoAndAccept",title:"".concat(localize(1212,"Go To")," / ").concat(localize(1213,"Accept")),icon:Codicon.check,commandId:inlineSuggestCommitId})),a=option(t({id:"reject",title:localize(1214,"Reject"),icon:Codicon.close,commandId:hideInlineCompletionId})),l=this._model.extensionCommands.map((m,_)=>{var v;return option(t({id:m.command.id+"_"+_,title:m.command.title,icon:(v=m.icon)!=null?v:Codicon.symbolEvent,commandId:m.command.id,commandArgs:m.command.arguments}))}),c=this._inlineEditsShowCollapsed.map(m=>option(t(m?{id:"showExpanded",title:localize(1215,"Show Expanded"),icon:Codicon.expandAll,commandId:toggleShowCollapsedId}:{id:"showCollapsed",title:localize(1216,"Show Collapsed"),icon:Codicon.collapseAll,commandId:toggleShowCollapsedId}))),d=option(t({id:"snooze",title:localize(1217,"Snooze"),icon:Codicon.bellSlash,commandId:"editor.action.inlineSuggest.snooze"})),u=option(t({id:"settings",title:localize(1218,"Settings"),icon:Codicon.gear,commandId:"workbench.action.openSettings",commandArgs:["@tag:nextEditSuggestions"]})),g=this._model.action?[this._model.action]:[],f=g.length>0?actionBar(g.map(m=>{var _;return{id:m.id,label:m.title+"...",enabled:!0,run:()=>{var v;return this._commandService.executeCommand(m.id,...(v=m.arguments)!=null?v:[])},class:void 0,tooltip:(_=m.tooltip)!=null?_:m.title}}),{hoverDelegate:nativeHoverDelegate}):void 0;return hoverContent([r,s,a,c,l.length?separator():void 0,d,u,...l,f?separator():void 0,f])}_getKeybinding(e){return e?observableFromEvent(this._contextKeyService.onDidChangeContext,()=>this._keybindingService.lookupKeybinding(e)):constObservable(void 0)}};GutterIndicatorMenuContent=__decorate$1k([__param$1f(3,IContextKeyService),__param$1f(4,IKeybindingService),__param$1f(5,ICommandService)],GutterIndicatorMenuContent);function hoverContent(o){return n.div({class:"content",style:{margin:4,minWidth:180}},o)}function header(o){return n.div({class:"header",style:{color:asCssVariable(descriptionForeground),fontSize:"13px",fontWeight:"600",padding:"0 4px",lineHeight:28}},[o])}function option(o){return derived({name:"inlineEdits.option"},e=>{var t;return n.div({class:["monaco-menu-option",(t=o.isActive)==null?void 0:t.map(r=>r&&"active")],onmouseenter:()=>{var r;return(r=o.onHoverChange)==null?void 0:r.call(o,!0)},onmouseleave:()=>{var r;return(r=o.onHoverChange)==null?void 0:r.call(o,!1)},onclick:o.onAction,onkeydown:r=>{var s;r.key==="Enter"&&((s=o.onAction)==null||s.call(o))},tabIndex:0,style:{borderRadius:3}},[n.elem("span",{style:{fontSize:16,display:"flex"}},[ThemeIcon.isThemeIcon(o.icon)?renderIcon(o.icon):o.icon.map(r=>renderIcon(r))]),n.elem("span",{},[o.title]),n.div({style:{marginLeft:"auto"},ref:r=>{const s=e.store.add(new KeybindingLabel(r,OS,{disableTitle:!0,...defaultKeybindingLabelStyles,keybindingLabelShadow:void 0,keybindingLabelForeground:asCssVariable(descriptionForeground),keybindingLabelBackground:"transparent",keybindingLabelBorder:"transparent",keybindingLabelBottomBorder:void 0}));e.store.add(autorun(a=>{s.set(o.keybinding.read(a))}))}})])})}function actionBar(o,e){return derived({name:"inlineEdits.actionBar"},t=>n.div({class:["action-widget-action-bar"],style:{padding:"3px 24px"}},[n.div({ref:r=>{t.store.add(new ActionBar(r,e)).push(o,{icon:!1,label:!0})}})]))}function separator(){return n.div({id:"inline-edit-gutter-indicator-menu-separator",class:"menu-separator",style:{color:asCssVariable(editorActionListForeground),padding:"2px 0"}},n.div({style:{borderBottom:"1px solid ".concat(asCssVariable(editorHoverBorder))}}))}var __decorate$1j=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1e=function(o,e){return function(t,r){e(t,r,o)}};let InlineEditsGutterIndicator=class extends Disposable$1{get model(){const e=this._model.get();if(!e)throw new BugIndicatingError("Inline Edit Model not available");return e}constructor(e,t,r,s,a,l,c,d,u,g){super(),this._editorObs=e,this._originalRange=t,this._verticalOffset=r,this._model=s,this._isHoveringOverInlineEdit=a,this._focusIsInMenu=l,this._hoverService=c,this._instantiationService=d,this._accessibilityService=u,this._tabAction=derived(this,f=>{const m=this._model.read(f);return m?m.tabAction.read(f):InlineEditTabAction.Inactive}),this._hoverVisible=observableValue(this,!1),this.isHoverVisible=this._hoverVisible,this._isHoveredOverIcon=observableValue(this,!1),this._isHoveredOverIconDebounced=debouncedObservable(this._isHoveredOverIcon,100),this.isHoveredOverIcon=this._isHoveredOverIconDebounced,this._isHoveredOverInlineEditDebounced=debouncedObservable(this._isHoveringOverInlineEdit,100),this._gutterIndicatorStyles=this._tabAction.map(this,(f,m)=>{switch(f){case InlineEditTabAction.Inactive:return{background:getEditorBlendedColor(inlineEditIndicatorSecondaryBackground,g).read(m).toString(),foreground:getEditorBlendedColor(inlineEditIndicatorSecondaryForeground,g).read(m).toString(),border:getEditorBlendedColor(inlineEditIndicatorSecondaryBorder,g).read(m).toString()};case InlineEditTabAction.Jump:return{background:getEditorBlendedColor(inlineEditIndicatorPrimaryBackground,g).read(m).toString(),foreground:getEditorBlendedColor(inlineEditIndicatorPrimaryForeground,g).read(m).toString(),border:getEditorBlendedColor(inlineEditIndicatorPrimaryBorder,g).read(m).toString()};case InlineEditTabAction.Accept:return{background:getEditorBlendedColor(inlineEditIndicatorsuccessfulBackground,g).read(m).toString(),foreground:getEditorBlendedColor(inlineEditIndicatorsuccessfulForeground,g).read(m).toString(),border:getEditorBlendedColor(inlineEditIndicatorsuccessfulBorder,g).read(m).toString()};default:assertNever()}}),this._originalRangeObs=mapOutFalsy(this._originalRange),this._state=derived(this,f=>{const m=this._originalRangeObs.read(f);if(m)return{range:m,lineOffsetRange:this._editorObs.observeLineOffsetRange(m,f.store)}}),this._stickyScrollController=StickyScrollController.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?observableFromEvent(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):constObservable(0),this._lineNumberToRender=derived(this,f=>{var v;if(this._verticalOffset.read(f)!==0)return"";const m=(v=this._originalRange.read(f))==null?void 0:v.startLineNumber,_=this._editorObs.getOption(76).read(f);if(m===void 0||_.renderType===0)return"";if(_.renderType===3){const b=this._editorObs.cursorPosition.read(f);return m%10===0||b&&b.lineNumber===m?m.toString():""}if(_.renderType===2){const b=this._editorObs.cursorPosition.read(f);if(!b)return"";const C=Math.abs(m-b.lineNumber);return C===0?m.toString():C.toString()}return _.renderType===4?_.renderFn?_.renderFn(m):"":m.toString()}),this._availableWidthForIcon=derived(this,f=>{const m=this._editorObs.editor.getModel(),_=this._editorObs.editor,v=this._editorObs.layoutInfo.read(f),b=v.decorationsLeft+v.decorationsWidth-v.glyphMarginLeft;if(!m||b<=0)return()=>0;if(v.lineNumbersLeft===0)return()=>b;const C=this._editorObs.getOption(76).read(f);if(C.renderType===2||C.renderType===0)return()=>b;const y=_.getOption(59).typicalHalfwidthCharacterWidth,S=v.lineNumbersLeft+v.lineNumbersWidth,E=(m.getLineCount()+1).toString().length,x=[];for(let L=1;L<=E;L++){const k=10**(L-1),D=_.getTopForLineNumber(k),I=L*y,T=Math.min(b,Math.max(0,S-I-v.glyphMarginLeft));x.push({firstLineNumberWithDigitCount:k,topOfLineNumber:D,usableWidthLeftOfLineNumber:T})}return L=>{for(let k=x.length-1;k>=0;k--)if(L>=x[k].topOfLineNumber)return x[k].usableWidthLeftOfLineNumber;throw new BugIndicatingError("Could not find avilable width for icon")}}),this._layout=derived(this,f=>{const m=this._state.read(f);if(!m)return;const _=this._editorObs.layoutInfo.read(f),v=this._editorObs.observeLineHeightForLine(m.range.map(j=>j.startLineNumber)).read(f),b=2,C=_.decorationsLeft+_.decorationsWidth-_.glyphMarginLeft-2*b,y=_.height-2*b,S=Rect.fromLeftTopWidthHeight(b,b,C,y),w=S.withTop(this._stickyScrollHeight.read(f)),E=S.withTop(w.top+b),x=m.lineOffsetRange.read(f),L=Rect.fromRanges(OffsetRange.fromTo(E.left,E.right),x),k=v,D=this._verticalOffset.read(f),I=L.withHeight(k).translateY(D),T=w.containsRect(I),M=this._tabAction.map(j=>j===InlineEditTabAction.Accept?Codicon.keyboardTab:Codicon.arrowRight),R=derived(this,j=>{var Z;if(this._isHoveredOverIconDebounced.read(j)||this._isHoveredOverInlineEditDebounced.read(j))return Codicon.check;if(this._tabAction.read(j)===InlineEditTabAction.Accept)return Codicon.keyboardTab;const X=(Z=this._editorObs.cursorLineNumber.read(j))!=null?Z:0,ee=m.range.read(j).startLineNumber;return X<=ee?Codicon.keyboardTabAbove:Codicon.keyboardTabBelow}),N=22,A=16,O=j=>{const X=this._availableWidthForIcon.read(void 0)(j.bottom+this._editorObs.editor.getScrollTop())-b;return Math.max(Math.min(X,N),A)};if(T){const j=I;let X;_.lineNumbersWidth===0?X=Math.min(Math.max(_.lineNumbersLeft-S.left,0),j.width-N):X=Math.max(_.lineNumbersLeft+_.lineNumbersWidth-S.left,0);const ee=j.withWidth(X),Z=Math.max(Math.min(_.decorationsWidth,N),A),J=j.withWidth(Z).translateX(X);return{gutterEditArea:L,icon:R,iconDirection:"right",iconRect:J,pillRect:j,lineNumberRect:ee}}const P=S.intersect(L);if(P&&P.height>=k){const j=I.moveToBeContainedIn(E).moveToBeContainedIn(P),X=j.withWidth(O(j));return{gutterEditArea:L,icon:R,iconDirection:"right",iconRect:X,pillRect:X}}const B=I.moveToBeContainedIn(S),H=B.withWidth(O(B)),V=H,U=H.top<I.top?"top":"bottom";return{gutterEditArea:L,icon:M,iconDirection:U,iconRect:V,pillRect:H}}),this._iconRef=n.ref(),this.isVisible=this._layout.map(f=>!!f),this._indicator=n.div({class:"inline-edits-view-gutter-indicator",onclick:()=>{const f=this._layout.get(),m=(f==null?void 0:f.icon.get())===Codicon.check;this._editorObs.editor.focus(),m?this.model.accept():this.model.jump()},tabIndex:0,style:{position:"absolute",overflow:"visible"}},mapOutFalsy(this._layout).map(f=>f?[n.div({style:{position:"absolute",background:asCssVariable(inlineEditIndicatorBackground),borderRadius:"4px",...rectToProps(m=>f.read(m).gutterEditArea)}}),n.div({class:"icon",ref:this._iconRef,onmouseenter:()=>{this._showHover()},style:{cursor:"pointer",zIndex:"20",position:"absolute",backgroundColor:this._gutterIndicatorStyles.map(m=>m.background),"--vscodeIconForeground":this._gutterIndicatorStyles.map(m=>m.foreground),border:this._gutterIndicatorStyles.map(m=>"1px solid ".concat(m.border)),boxSizing:"border-box",borderRadius:"4px",display:"flex",justifyContent:"flex-end",transition:"background-color 0.2s ease-in-out, width 0.2s ease-in-out",...rectToProps(m=>f.read(m).pillRect)}},[n.div({className:"line-number",style:{lineHeight:f.map(m=>m.lineNumberRect?m.lineNumberRect.height:0),display:f.map(m=>m.lineNumberRect?"flex":"none"),alignItems:"center",justifyContent:"flex-end",width:f.map(m=>m.lineNumberRect?m.lineNumberRect.width:0),height:"100%",color:this._gutterIndicatorStyles.map(m=>m.foreground)}},this._lineNumberToRender),n.div({style:{rotate:f.map(m=>"".concat(getRotationFromDirection(m.iconDirection),"deg")),transition:"rotate 0.2s ease-in-out",display:"flex",alignItems:"center",justifyContent:"center",height:"100%",marginRight:f.map(m=>{var _,v;return m.pillRect.width-m.iconRect.width-((v=(_=m.lineNumberRect)==null?void 0:_.width)!=null?v:0)}),width:f.map(m=>m.iconRect.width)}},[f.map((m,_)=>renderIcon(m.icon.read(_)))])])]:[])).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._indicator.element,position:constObservable(null),allowEditorOverflow:!1,minContentWidthInPx:constObservable(0)})),this._register(this._editorObs.editor.onMouseMove(f=>{if(this._state.get()===void 0)return;const v=this._iconRef.element.getBoundingClientRect(),b=Rect.fromLeftTopWidthHeight(v.left,v.top,v.width,v.height),C=new Point(f.event.posx,f.event.posy);this._isHoveredOverIcon.set(b.containsPoint(C),void 0)})),this._register(this._editorObs.editor.onDidScrollChange(()=>{this._isHoveredOverIcon.set(!1,void 0)})),this._register(runOnChange(this._isHoveredOverInlineEditDebounced,f=>{f&&this.triggerAnimation()})),this._register(autorun(f=>{this._indicator.readEffect(f),this._indicator.element&&this._editorObs.editor.applyFontInfo(this._indicator.element)}))}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{outline:"2px solid ".concat(this._gutterIndicatorStyles.map(t=>t.border).get()),outlineOffset:"-1px",offset:0},{outline:"2px solid transparent",outlineOffset:"10px",offset:1}],{duration:500}).finished}_showHover(){if(this._hoverVisible.get())return;const e=new DisposableStore$1,t=e.add(this._instantiationService.createInstance(GutterIndicatorMenuContent,this.model,a=>{a&&this._editorObs.editor.focus(),s==null||s.dispose()},this._editorObs).toDisposableLiveElement()),r=e.add(trackFocus(t.element));e.add(r.onDidBlur(()=>this._focusIsInMenu.set(!1,void 0))),e.add(r.onDidFocus(()=>this._focusIsInMenu.set(!0,void 0))),e.add(toDisposable(()=>this._focusIsInMenu.set(!1,void 0)));const s=this._hoverService.showInstantHover({target:this._iconRef.element,content:t.element});s?(this._hoverVisible.set(!0,void 0),e.add(this._editorObs.editor.onDidScrollChange(()=>s.dispose())),e.add(s.onDispose(()=>{this._hoverVisible.set(!1,void 0),e.dispose()}))):e.dispose()}};InlineEditsGutterIndicator=__decorate$1j([__param$1e(6,IHoverService),__param$1e(7,IInstantiationService),__param$1e(8,IAccessibilityService),__param$1e(9,IThemeService)],InlineEditsGutterIndicator);function getRotationFromDirection(o){switch(o){case"top":return 90;case"bottom":return-90;case"right":return 0}}var __decorate$1i=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1d=function(o,e){return function(t,r){e(t,r,o)}},UserKind;(function(o){o.FirstTime="firstTime",o.SecondTime="secondTime",o.Active="active"})(UserKind||(UserKind={}));let InlineEditsOnboardingExperience=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._host=e,this._model=t,this._indicator=r,this._collapsedView=s,this._storageService=a,this._configurationService=l,this._disposables=this._register(new MutableDisposable),this._setupDone=observableValue({name:"setupDone"},!1),this._activeCompletionId=derived(c=>{const d=this._model.read(c);if(!d||!this._setupDone.read(c))return;const u=this._indicator.read(c);if(!(!u||!u.isVisible.read(c)))return d.inlineEdit.inlineCompletion.identity.id}),this._register(this._initializeDebugSetting()),this._disposables.value=this.setupNewUserExperience(),this._setupDone.set(!0,void 0)}setupNewUserExperience(){if(this.getNewUserType()===UserKind.Active)return;const e=new DisposableStore$1;let t=!1,r=!1,s=0,a=0;return e.add(runOnChangeWithCancellationToken(this._activeCompletionId,async(l,c,d,u)=>{var f,m;if(l===void 0)return;let g=this.getNewUserType();switch(g){case UserKind.FirstTime:{(s++>=5||t)&&(g=UserKind.SecondTime,this.setNewUserType(g));break}case UserKind.SecondTime:{a++>=3&&r&&(g=UserKind.Active,this.setNewUserType(g));break}}switch(g){case UserKind.FirstTime:{for(let _=0;_<3&&!u.isCancellationRequested;_++)await((f=this._indicator.get())==null?void 0:f.triggerAnimation()),await timeout(500);break}case UserKind.SecondTime:{(m=this._indicator.get())==null||m.triggerAnimation();break}}})),e.add(autorun(l=>{this._collapsedView.isVisible.read(l)&&this.getNewUserType()!==UserKind.Active&&this._collapsedView.triggerAnimation()})),e.add(autorunWithStore((l,c)=>{const d=this._indicator.read(l);d&&c.add(runOnChange(d.isHoveredOverIcon,async u=>{u&&(t=!0)}))})),e.add(autorunWithStore((l,c)=>{const d=this._host.read(l);d&&c.add(d.onDidAccept(()=>{r=!0}))})),e}getNewUserType(){return this._storageService.get("inlineEditsGutterIndicatorUserKind",-1,UserKind.FirstTime)}setNewUserType(e){switch(e){case UserKind.FirstTime:throw new BugIndicatingError("UserKind should not be set to first time");case UserKind.SecondTime:break;case UserKind.Active:this._disposables.clear();break}this._storageService.store("inlineEditsGutterIndicatorUserKind",e,-1,0)}_initializeDebugSetting(){const e="editor.inlineSuggest.edits.resetNewUserExperience";return this._configurationService.getValue(e)&&this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration(e)&&this._configurationService.getValue(e)&&(this._storageService.remove("inlineEditsGutterIndicatorUserKind",-1),this._disposables.value=this.setupNewUserExperience())})}};InlineEditsOnboardingExperience=__decorate$1i([__param$1d(4,IStorageService),__param$1d(5,IConfigurationService)],InlineEditsOnboardingExperience);var __decorate$1h=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1c=function(o,e){return function(t,r){e(t,r,o)}};let InlineEditsCollapsedView=class extends Disposable$1{constructor(e,t,r){super(),this._editor=e,this._edit=t,this._accessibilityService=r,this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._iconRef=n.ref(),this.isHovered=constObservable(!1),this._editorObs=observableCodeEditor(this._editor);const a=this._edit.map(u=>{var g;return(g=u==null?void 0:u.edit.replacements[0])!=null?g:null}).map(u=>u?singleTextRemoveCommonPrefix(u,this._editor.getModel()).range.getStartPosition():null),l=this._editorObs.observePosition(a,this._store),c=derived(u=>{const g=l.read(u);if(!g)return null;const f=this._editorObs.layoutInfoContentLeft.read(u),m=this._editorObs.scrollLeft.read(u);return new Point(f+g.x-m,g.y)}),d=n.div({class:"inline-edits-collapsed-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[[this.getCollapsedIndicator(c)]]).keepUpdated(this._store).element;this._register(this._editorObs.createOverlayWidget({domNode:d,position:constObservable(null),allowEditorOverflow:!1,minContentWidthInPx:constObservable(0)})),this.isVisible=this._edit.map((u,g)=>!!u&&c.read(g)!==null)}triggerAnimation(){return this._accessibilityService.isMotionReduced()?new Animation(null,null).finished:this._iconRef.element.animate([{offset:0,transform:"translateY(-3px)"},{offset:.2,transform:"translateY(1px)"},{offset:.36,transform:"translateY(-1px)"},{offset:.52,transform:"translateY(1px)"},{offset:.68,transform:"translateY(-1px)"},{offset:.84,transform:"translateY(1px)"},{offset:1,transform:"translateY(0px)"}],{duration:2e3}).finished}getCollapsedIndicator(e){const t=this._editorObs.layoutInfoContentLeft,r=e.map((a,l)=>a?a.deltaX(-t.read(l)):null),s=this.createIconPath(r);return n.svg({class:"collapsedView",ref:this._iconRef,style:{position:"absolute",...rectToProps(a=>getEditorValidOverlayRect(this._editorObs).read(a)),overflow:"hidden",pointerEvents:"none"}},[n.svgElem("path",{class:"collapsedViewPath",d:s,fill:asCssVariable(inlineEditIndicatorPrimaryBorder)})])}createIconPath(e){return e.map(a=>{if(!a)return new PathBuilder().build();const l=a.deltaX(-6/2).deltaY(-1),c=l.deltaX(6),d=l.deltaY(1),u=c.deltaY(1),g=d.deltaX(6/2).deltaY(3);return new PathBuilder().moveTo(l).lineTo(c).lineTo(u).lineTo(g).lineTo(d).lineTo(l).build()})}};InlineEditsCollapsedView=__decorate$1h([__param$1c(2,IAccessibilityService)],InlineEditsCollapsedView);var __decorate$1g=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1b=function(o,e){return function(t,r){e(t,r,o)}};const MIN_END_OF_LINE_PADDING=14,PADDING_VERTICALLY=0,PADDING_HORIZONTALLY=4,HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW=4,VERTICAL_OFFSET_WHEN_ABOVE_BELOW=2;let InlineEditsCustomView=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._editor=e,this._languageService=a,this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._isHovered=observableValue(this,!1),this.isHovered=this._isHovered,this._viewRef=n.ref(),this._editorObs=observableCodeEditor(this._editor);const l=r.map((g,f)=>{let m;switch(g){case InlineEditTabAction.Inactive:m=inlineEditIndicatorSecondaryBackground;break;case InlineEditTabAction.Jump:m=inlineEditIndicatorPrimaryBackground;break;case InlineEditTabAction.Accept:m=inlineEditIndicatorsuccessfulBackground;break}return{border:getEditorBlendedColor(m,s).read(f).toString(),background:asCssVariable(editorBackground)}}),c=t.map(g=>g?this.getState(g):void 0),d=c.map(g=>g?this.getRendering(g,l):void 0);this.minEditorScrollHeight=derived(this,g=>{const f=c.read(g);return f?f.rect.read(g).bottom+this._editor.getScrollTop():0});const u=n.div({class:"inline-edits-custom-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:"block"}},[d]).keepUpdated(this._store);this._register(this._editorObs.createOverlayWidget({domNode:u.element,position:constObservable(null),allowEditorOverflow:!1,minContentWidthInPx:derivedObservableWithCache(this,(g,f)=>{const m=c.read(g);if(!m)return f!=null?f:0;const _=m.rect.map(v=>v.right).read(g)+this._editorObs.layoutInfoVerticalScrollbarWidth.read(g)+PADDING_HORIZONTALLY-this._editorObs.layoutInfoContentLeft.read(g);return Math.max(f!=null?f:0,_)}).recomputeInitiallyAndOnChange(this._store)})),this._register(autorun(g=>{if(!d.read(g)){this._isHovered.set(!1,void 0);return}this._isHovered.set(u.isHovered.read(g),void 0)}))}fitsInsideViewport(e,t,r){const s=this._editorObs.layoutInfoWidth.read(r),a=this._editorObs.layoutInfoContentLeft.read(r),l=this._editor.getLayoutInfo().verticalScrollbarWidth,c=this._editorObs.layoutInfoMinimap.read(r).minimapLeft!==0?this._editorObs.layoutInfoMinimap.read(r).minimapWidth:0,d=maxContentWidthInRange(this._editorObs,e,void 0),u=getContentRenderWidth(t,this._editor,this._editor.getModel()),g=PADDING_HORIZONTALLY+MIN_END_OF_LINE_PADDING;return d+u+g<s-a-l-c}getState(e){const t=derived(this,c=>{var S,w;const d=e.range.startLineNumber,u=e.range.endLineNumber,g=e.range.startColumn,f=e.range.endColumn,m=(w=(S=this._editor.getModel())==null?void 0:S.getLineCount())!=null?w:0,_=maxContentWidthInRange(this._editorObs,new LineRange(d,d+1),c),v=d+1<=m?maxContentWidthInRange(this._editorObs,new LineRange(d+1,d+2),c):void 0,b=d-1>=1?maxContentWidthInRange(this._editorObs,new LineRange(d-1,d),c):void 0,C=this._editor.getOffsetForColumn(d,g),y=this._editor.getOffsetForColumn(u,f);return{lineWidth:_,lineWidthBelow:v,lineWidthAbove:b,startContentLeftOffset:C,endContentLeftOffset:y}}),r=e.range.startLineNumber,s=e.range.endLineNumber,a=this.fitsInsideViewport(new LineRange(r,s+1),e.content,void 0);return{rect:derived(this,c=>{const d=this._editorObs.getOption(59).read(c).typicalHalfwidthCharacterWidth,{lineWidth:u,lineWidthBelow:g,lineWidthAbove:f,startContentLeftOffset:m,endContentLeftOffset:_}=t.read(c),v=this._editorObs.layoutInfoContentLeft.read(c),b=this._editorObs.observeLineHeightForLine(r).recomputeInitiallyAndOnChange(c.store).read(c),C=this._editorObs.scrollTop.read(c),y=this._editorObs.scrollLeft.read(c);let S;r===s&&_+5*d>=u&&a?S="end":g!==void 0&&g+MIN_END_OF_LINE_PADDING-HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW-PADDING_HORIZONTALLY<m?S="below":f!==void 0&&f+MIN_END_OF_LINE_PADDING-HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW-PADDING_HORIZONTALLY<m?S="above":S="end";let w,E,x=0,L=0;switch(S){case"end":{w=this._editorObs.editor.getTopForLineNumber(r),E=u,x=PADDING_HORIZONTALLY+MIN_END_OF_LINE_PADDING;break}case"below":{w=this._editorObs.editor.getTopForLineNumber(r+1),E=m,x=PADDING_HORIZONTALLY+HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW,L=PADDING_VERTICALLY+VERTICAL_OFFSET_WHEN_ABOVE_BELOW;break}case"above":{w=this._editorObs.editor.getTopForLineNumber(r-1),E=m,x=PADDING_HORIZONTALLY+HORIZONTAL_OFFSET_WHEN_ABOVE_BELOW,L=-PADDING_VERTICALLY+VERTICAL_OFFSET_WHEN_ABOVE_BELOW;break}}return Rect.fromLeftTopWidthHeight(v+E-y,w-C,d*e.content.length,b).withMargin(PADDING_VERTICALLY,PADDING_HORIZONTALLY).translateX(x).translateY(L)}),label:e.content,kind:e.style}}getRendering(e,t){var d;const r=document.createElement("div"),s=(d=this._editor.getModel().tokenization.tokenizeLinesAt(1,[e.label]))==null?void 0:d[0];let a;s&&e.kind===InlineCompletionHintStyle$1.Code?a=TokenArray.fromLineTokens(s).toLineTokens(e.label,this._languageService.languageIdCodec):a=LineTokens.createEmpty(e.label,this._languageService.languageIdCodec);const l=renderLines$1(new LineSource([a]),RenderOptions.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],r,!0);r.style.width="".concat(l.minWidthInPx,"px");const c=e.rect.map(u=>u.withMargin(0,PADDING_HORIZONTALLY));return n.div({class:"collapsedView",ref:this._viewRef,style:{position:"absolute",...rectToProps(u=>c.read(u)),overflow:"hidden",boxSizing:"border-box",cursor:"pointer",border:t.map(u=>"1px solid ".concat(u.border)),borderRadius:"4px",backgroundColor:t.map(u=>u.background),display:"flex",alignItems:"center",justifyContent:"center",whiteSpace:"nowrap"},onmousedown:u=>{u.preventDefault()},onclick:u=>{this._onDidClick.fire(new StandardMouseEvent(getWindow$1(u),u))}},[r])}};InlineEditsCustomView=__decorate$1g([__param$1b(3,IThemeService),__param$1b(4,ILanguageService)],InlineEditsCustomView);const HORIZONTAL_PADDING$1=0,VERTICAL_PADDING$1=0,BORDER_WIDTH$3=1,WIDGET_SEPARATOR_WIDTH$2=1,WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH$2=3,BORDER_RADIUS$2=4;class InlineEditsDeletionView extends Disposable$1{constructor(e,t,r,s){super(),this._editor=e,this._edit=t,this._uiState=r,this._tabAction=s,this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._display=derived(this,c=>this._uiState.read(c)?"block":"none"),this._editorMaxContentWidthInRange=derived(this,c=>{const d=this._originalDisplayRange.read(c);return d?(this._editorObs.versionId.read(c),derivedObservableWithCache(this,(u,g)=>{const f=maxContentWidthInRange(this._editorObs,d,u);return Math.max(f,g!=null?g:0)})):constObservable(0)}).map((c,d)=>c.read(d)),this._maxPrefixTrim=derived(this,c=>{const d=this._uiState.read(c);return d?getPrefixTrim(d.deletions,d.originalRange,[],this._editor):{prefixTrim:0,prefixLeftOffset:0}}),this._editorLayoutInfo=derived(this,c=>{var w,E;const d=this._edit.read(c);if(!d||!this._uiState.read(c))return null;const g=this._editorObs.layoutInfo.read(c),f=this._editorObs.scrollLeft.read(c),m=this._editorObs.getOption(59).map(x=>x.typicalHalfwidthCharacterWidth).read(c),_=g.contentLeft+Math.max(this._editorMaxContentWidthInRange.read(c),m)-f,v=d.originalLineRange,b=(w=this._originalVerticalStartPosition.read(c))!=null?w:this._editor.getTopForLineNumber(v.startLineNumber)-this._editorObs.scrollTop.read(c),C=(E=this._originalVerticalEndPosition.read(c))!=null?E:this._editor.getTopForLineNumber(v.endLineNumberExclusive)-this._editorObs.scrollTop.read(c),y=g.contentLeft+this._maxPrefixTrim.read(c).prefixLeftOffset-f;return _<=y?null:{codeRect:Rect.fromLeftTopRightBottom(y,b,_,C).withMargin(VERTICAL_PADDING$1,HORIZONTAL_PADDING$1),contentLeft:g.contentLeft}}).recomputeInitiallyAndOnChange(this._store),this._originalOverlay=n.div({style:{pointerEvents:"none"}},derived(this,c=>{const d=mapOutFalsy(this._editorLayoutInfo).read(c);if(!d)return;const u=d.map(_=>Rect.fromLeftTopRightBottom(_.contentLeft-BORDER_RADIUS$2-BORDER_WIDTH$3,_.codeRect.top,_.contentLeft,_.codeRect.bottom)),g=derived(this,_=>{const v=d.read(_).codeRect,b=u.read(_);return v.intersectHorizontal(new OffsetRange(b.left,Number.MAX_SAFE_INTEGER))}),f=this._uiState.map(_=>_!=null&&_.inDiffEditor?WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH$2:WIDGET_SEPARATOR_WIDTH$2).read(c),m=g.map(_=>_.withMargin(f,f));return[n.div({class:"originalSeparatorDeletion",style:{...m.read(c).toStyles(),borderRadius:"".concat(BORDER_RADIUS$2,"px"),border:"".concat(BORDER_WIDTH$3+f,"px solid ").concat(asCssVariable(editorBackground)),boxSizing:"border-box"}}),n.div({class:"originalOverlayDeletion",style:{...g.read(c).toStyles(),borderRadius:"".concat(BORDER_RADIUS$2,"px"),border:getOriginalBorderColor(this._tabAction).map(_=>"".concat(BORDER_WIDTH$3,"px solid ").concat(asCssVariable(_))),boxSizing:"border-box",backgroundColor:asCssVariable(originalBackgroundColor)}}),n.div({class:"originalOverlayHiderDeletion",style:{...u.read(c).toStyles(),backgroundColor:asCssVariable(editorBackground)}})]})).keepUpdated(this._store),this._nonOverflowView=n.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._originalOverlay]]).keepUpdated(this._store),this.isHovered=constObservable(!1),this._editorObs=observableCodeEditor(this._editor);const a=derived(this,c=>{const d=this._edit.read(c);return d?new Position$1(d.originalLineRange.startLineNumber,1):null}),l=derived(this,c=>{const d=this._edit.read(c);return d?new Position$1(d.originalLineRange.endLineNumberExclusive,1):null});this._originalDisplayRange=this._uiState.map(c=>c==null?void 0:c.originalRange),this._originalVerticalStartPosition=this._editorObs.observePosition(a,this._store).map(c=>c==null?void 0:c.y),this._originalVerticalEndPosition=this._editorObs.observePosition(l,this._store).map(c=>c==null?void 0:c.y),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:constObservable(null),allowEditorOverflow:!1,minContentWidthInPx:derived(this,c=>{const d=this._editorLayoutInfo.read(c);return d===null?0:d.codeRect.width})}))}}var __decorate$1f=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1a=function(o,e){return function(t,r){e(t,r,o)}};const BORDER_WIDTH$2=1,WIDGET_SEPARATOR_WIDTH$1=1,WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH$1=3,BORDER_RADIUS$1=4;let InlineEditsInsertionView=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._editor=e,this._input=t,this._tabAction=r,this._languageService=a,this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._state=derived(this,l=>{const c=this._input.read(l);if(!c)return;const d=this._editor.getModel(),u=d.getEOL();if(c.startColumn===1&&c.lineNumber>1&&d.getLineLength(c.lineNumber)!==0&&c.text.endsWith(u)&&!c.text.startsWith(u)){const g=d.getLineLength(c.lineNumber-1)+1;return{lineNumber:c.lineNumber-1,column:g,text:u+c.text.slice(0,-u.length)}}return{lineNumber:c.lineNumber,column:c.startColumn,text:c.text}}),this._trimVertically=derived(this,l=>{const c=this._state.read(l),d=c==null?void 0:c.text;if(!d||d.trim()==="")return{topOffset:0,bottomOffset:0,linesTop:0,linesBottom:0};const u=this._editor.getLineHeightForPosition(new Position$1(c.lineNumber,1)),g=this._editor.getModel().getEOL();let f=0,m=0,_=0;for(;_<d.length&&d.startsWith(g,_);_+=g.length)f+=1;for(let v=d.length;v>_&&d.endsWith(g,v);v-=g.length)m+=1;return{topOffset:f*u,bottomOffset:m*u,linesTop:f,linesBottom:m}}),this._maxPrefixTrim=derived(this,l=>{const c=this._state.read(l);if(!c)return{prefixLeftOffset:0,prefixTrim:0};const d=this._editor.getModel(),u=d.getEOL(),g=this._trimVertically.read(l),f=c.text.split(u),m=f.slice(g.linesTop,f.length-g.linesBottom);g.linesTop===0&&(m[0]=d.getLineContent(c.lineNumber)+m[0]);const _=new LineRange(c.lineNumber,c.lineNumber+(g.linesTop>0?0:1));return getPrefixTrim([],_,m,this._editor)}),this._ghostText=derived(l=>{const c=this._state.read(l),d=this._maxPrefixTrim.read(l);if(!c)return;const g=this._editor.getModel().getEOL(),m=c.text.split(g).map((_,v)=>new InlineDecoration(new Range$2(v+1,v===0?1:d.prefixTrim+1,v+1,_.length+1),"modified-background",0));return new GhostText(c.lineNumber,[new GhostTextPart(c.column,c.text,!1,m)])}),this._display=derived(this,l=>this._state.read(l)?"block":"none"),this._editorMaxContentWidthInRange=derived(this,l=>{const c=this._state.read(l);if(!c)return 0;this._editorObs.versionId.read(l);const d=this._editor.getModel(),u=d.getEOL(),g=c.text.startsWith(u)?"":d.getValueInRange(new Range$2(c.lineNumber,1,c.lineNumber,c.column)),f=d.getValueInRange(new Range$2(c.lineNumber,c.column,c.lineNumber,d.getLineLength(c.lineNumber)+1)),_=(g+c.text+f).split(u),v=RenderOptions.fromEditor(this._editor).withSetWidth(!1).withScrollBeyondLastColumn(0),b=_.map(C=>{var w;const y=(w=d.tokenization.tokenizeLinesAt(c.lineNumber,[C]))==null?void 0:w[0];let S;return y?S=TokenArray.fromLineTokens(y).toLineTokens(C,this._languageService.languageIdCodec):S=LineTokens.createEmpty(C,this._languageService.languageIdCodec),renderLines$1(new LineSource([S]),v,[],$$m("div"),!0).minWidthInPx});return Math.max(...b)}),this.startLineOffset=this._trimVertically.map(l=>l.topOffset),this.originalLines=this._state.map(l=>l?new LineRange(l.lineNumber,Math.min(l.lineNumber+2,this._editor.getModel().getLineCount()+1)):void 0),this._overlayLayout=derived(this,l=>{var x;this._ghostText.read(l);const c=this._state.read(l);if(!c)return null;this._editorObs.observePosition(observableValue(this,new Position$1(c.lineNumber,c.column)),l.store).read(l);const d=this._editorObs.layoutInfo.read(l),u=this._editorObs.scrollLeft.read(l),g=this._editorObs.layoutInfoVerticalScrollbarWidth.read(l),f=d.contentLeft+this._editorMaxContentWidthInRange.read(l)-u,m=(x=this._maxPrefixTrim.read(l).prefixLeftOffset)!=null?x:0,_=d.contentLeft+m-u;if(f<=_)return null;const{topOffset:v,bottomOffset:b}=this._trimVertically.read(l),C=this._editorObs.scrollTop.read(l),y=this._ghostTextView.height.read(l)-v-b,S=this._editor.getTopForLineNumber(c.lineNumber)-C+v,w=S+y,E=new Rect(_,S,f,w);return{overlay:E,startsAtContentLeft:m===0,contentLeft:d.contentLeft,minContentWidthRequired:m+E.width+g}}).recomputeInitiallyAndOnChange(this._store),this._modifiedOverlay=n.div({style:{pointerEvents:"none"}},derived(this,l=>{const c=mapOutFalsy(this._overlayLayout).read(l);if(!c)return;const d=c.map(m=>Rect.fromLeftTopRightBottom(m.contentLeft-BORDER_RADIUS$1-BORDER_WIDTH$2,m.overlay.top,m.contentLeft,m.overlay.bottom)).read(l),u=this._input.map(m=>m!=null&&m.inDiffEditor?WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH$1:WIDGET_SEPARATOR_WIDTH$1).read(l),g=c.map(m=>m.overlay.withMargin(0,BORDER_WIDTH$2,0,m.startsAtContentLeft?0:BORDER_WIDTH$2).intersectHorizontal(new OffsetRange(d.left,Number.MAX_SAFE_INTEGER))),f=g.map(m=>m.withMargin(u,u));return[n.div({class:"originalUnderlayInsertion",style:{...f.read(l).toStyles(),borderRadius:BORDER_RADIUS$1,border:"".concat(BORDER_WIDTH$2+u,"px solid ").concat(asCssVariable(editorBackground)),boxSizing:"border-box"}}),n.div({class:"originalOverlayInsertion",style:{...g.read(l).toStyles(),borderRadius:BORDER_RADIUS$1,border:getModifiedBorderColor(this._tabAction).map(m=>"".concat(BORDER_WIDTH$2,"px solid ").concat(asCssVariable(m))),boxSizing:"border-box",backgroundColor:asCssVariable(modifiedBackgroundColor)}}),n.div({class:"originalOverlayHiderInsertion",style:{...d.toStyles(),backgroundColor:asCssVariable(editorBackground)}})]})).keepUpdated(this._store),this._view=n.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[[this._modifiedOverlay]]).keepUpdated(this._store),this._editorObs=observableCodeEditor(this._editor),this._ghostTextView=this._register(s.createInstance(GhostTextView,this._editor,{ghostText:this._ghostText,minReservedLineCount:constObservable(0),targetTextModel:this._editorObs.model.map(l=>l!=null?l:void 0),warning:constObservable(void 0),handleInlineCompletionShown:constObservable(()=>{})},observableValue(this,{syntaxHighlightingEnabled:!0,extraClasses:["inline-edit"]}),!0,!0)),this.isHovered=this._ghostTextView.isHovered,this._register(this._ghostTextView.onDidClick(l=>{this._onDidClick.fire(l)})),this._register(this._editorObs.createOverlayWidget({domNode:this._view.element,position:constObservable(null),allowEditorOverflow:!1,minContentWidthInPx:derived(this,l=>{const c=this._overlayLayout.read(l);return c===null?0:c.minContentWidthRequired})}))}};InlineEditsInsertionView=__decorate$1f([__param$1a(3,IInstantiationService),__param$1a(4,ILanguageService)],InlineEditsInsertionView);var __decorate$1e=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$19=function(o,e){return function(t,r){e(t,r,o)}};let InlineEditsLineReplacementView=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._editor=e,this._edit=t,this._isInDiffEditor=r,this._tabAction=s,this._languageService=a,this._themeService=l,this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._maxPrefixTrim=this._edit.map((c,d)=>c?getPrefixTrim(c.replacements.flatMap(u=>[u.originalRange,u.modifiedRange]),c.originalRange,c.modifiedLines,this._editor.editor,d):void 0),this._modifiedLineElements=derived(this,c=>{var C;const d=[];let u=0;const g=this._maxPrefixTrim.read(c),f=this._edit.read(c);if(!f||!g)return;const m=g.prefixTrim,_=rangesToBubbleRanges(f.replacements.map(y=>y.modifiedRange)).map(y=>new Range$2(y.startLineNumber,y.startColumn-m,y.endLineNumber,y.endColumn-m)),v=this._editor.model.get(),b=f.modifiedRange.startLineNumber;for(let y=0;y<f.modifiedRange.length;y++){const S=document.createElement("div"),w=b+y,E=f.modifiedLines[y].slice(m),x=(C=v.tokenization.tokenizeLinesAt(w,[E]))==null?void 0:C[0];let L;x?L=TokenArray.fromLineTokens(x).toLineTokens(E,this._languageService.languageIdCodec):L=LineTokens.createEmpty(E,this._languageService.languageIdCodec);const k=[];for(const I of _.filter(T=>T.startLineNumber===w)){const T=Math.min(I.endColumn,E.length+1);k.push(new InlineDecoration(new Range$2(1,I.startColumn,1,T),"inlineCompletions-modified-bubble",0))}const D=renderLines$1(new LineSource([L]),RenderOptions.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),k,S,!0);this._editor.getOption(59).read(c),u=Math.max(u,D.minWidthInPx),d.push(S)}return{lines:d,requiredWidth:u}}),this._layout=derived(this,c=>{const d=this._modifiedLineElements.read(c),u=this._maxPrefixTrim.read(c),g=this._edit.read(c);if(!d||!u||!g)return;const{prefixLeftOffset:f}=u,{requiredWidth:m}=d,_=this._editor.observeLineHeightsForLineRange(g.originalRange).read(c),v=(()=>{const P=_.slice(0,g.modifiedRange.length);for(;P.length<g.modifiedRange.length;)P.push(_[_.length-1]);return P})(),b=this._editor.layoutInfoContentLeft.read(c),C=this._editor.layoutInfoVerticalScrollbarWidth.read(c),y=this._editor.scrollLeft.read(c),S=this._editor.scrollTop.read(c),w=b-y,E=this._editor.editor.getModel(),x=g.originalRange.mapToLineArray(P=>this._editor.editor.getOffsetForColumn(P,E.getLineMaxColumn(P))-f),L=Math.max(...x,m),k=g.originalRange.startLineNumber,D=g.originalRange.endLineNumberExclusive-1,I=this._editor.editor.getTopForLineNumber(k)-S,T=this._editor.editor.getBottomForLineNumber(D)-S,M=Rect.fromLeftTopWidthHeight(w+f,I,L,T-I),R=Rect.fromLeftTopWidthHeight(M.left,M.bottom,M.width,v.reduce((P,F)=>P+F,0)),N=Rect.hull([M,R]),A=N.intersectVertical(new OffsetRange(M.bottom,Number.MAX_SAFE_INTEGER)),O=new Rect(A.left,A.top,A.right,A.bottom);return{originalLinesOverlay:M,modifiedLinesOverlay:R,background:N,lowerBackground:A,lowerText:O,modifiedLineHeights:v,minContentWidthRequired:f+L+C}}),this._viewZoneInfo=derived(c=>{if(!this._editor.getOption(71).map(_=>_.edits.allowCodeShifting==="always").read(c))return;const u=this._layout.read(c),g=this._edit.read(c);if(!u||!g)return;const f=u.lowerBackground.height,m=g.originalRange.endLineNumberExclusive;return{height:f,lineNumber:m}}),this.minEditorScrollHeight=derived(this,c=>{const d=mapOutFalsy(this._layout).read(c);return!d||this._viewZoneInfo.read(c)!==void 0?0:d.read(c).lowerText.bottom+this._editor.editor.getScrollTop()}),this._div=n.div({class:"line-replacement"},[derived(this,c=>{const d=mapOutFalsy(this._layout).read(c),u=this._modifiedLineElements.read(c);if(!d||!u)return[];const g=d.read(c),f=this._editor.layoutInfoContentLeft.read(c),m=this._isInDiffEditor.read(c)?3:1;u.lines.forEach((b,C)=>{b.style.width="".concat(g.lowerText.width,"px"),b.style.height="".concat(g.modifiedLineHeights[C],"px"),b.style.position="relative"});const _=getModifiedBorderColor(this._tabAction).read(c),v=getOriginalBorderColor(this._tabAction).read(c);return[n.div({style:{position:"absolute",...rectToProps(b=>getEditorValidOverlayRect(this._editor).read(b)),overflow:"hidden",pointerEvents:"none"}},[n.div({class:"borderAroundLineReplacement",style:{position:"absolute",...rectToProps(b=>d.read(b).background.translateX(-f).withMargin(m)),borderRadius:"4px",border:"".concat(m+1,"px solid ").concat(asCssVariable(editorBackground)),boxSizing:"border-box",pointerEvents:"none"}}),n.div({class:"originalOverlayLineReplacement",style:{position:"absolute",...rectToProps(b=>d.read(b).background.translateX(-f)),borderRadius:"4px",border:getEditorBlendedColor(v,this._themeService).map(b=>"1px solid ".concat(b.toString())),pointerEvents:"none",boxSizing:"border-box",background:asCssVariable(originalBackgroundColor)}}),n.div({class:"modifiedOverlayLineReplacement",style:{position:"absolute",...rectToProps(b=>d.read(b).lowerBackground.translateX(-f)),borderRadius:"0 0 4px 4px",background:asCssVariable(editorBackground),boxShadow:"".concat(asCssVariable(scrollbarShadow)," 0 6px 6px -6px"),border:"1px solid ".concat(asCssVariable(_)),boxSizing:"border-box",overflow:"hidden",cursor:"pointer",pointerEvents:"auto"},onmousedown:b=>{b.preventDefault()},onclick:b=>this._onDidClick.fire(new StandardMouseEvent(getWindow$1(b),b))},[n.div({style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",background:asCssVariable(modifiedChangedLineBackgroundColor)}})]),n.div({class:"modifiedLinesLineReplacement",style:{position:"absolute",boxSizing:"border-box",...rectToProps(b=>d.read(b).lowerText.translateX(-f)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",whiteSpace:"nowrap",borderRadius:"0 0 4px 4px",overflow:"hidden"}},[...u.lines])])]})]).keepUpdated(this._store),this.isHovered=this._editor.isTargetHovered(c=>this._isMouseOverWidget(c),this._store),this._previousViewZoneInfo=void 0,this._register(toDisposable(()=>this._editor.editor.changeViewZones(c=>this.removePreviousViewZone(c)))),this._register(autorunDelta(this._viewZoneInfo,({lastValue:c,newValue:d})=>{c===d||(c==null?void 0:c.height)===(d==null?void 0:d.height)&&(c==null?void 0:c.lineNumber)===(d==null?void 0:d.lineNumber)||this._editor.editor.changeViewZones(u=>{this.removePreviousViewZone(u),d&&this.addViewZone(d,u)})})),this._register(this._editor.createOverlayWidget({domNode:this._div.element,minContentWidthInPx:derived(this,c=>{var d,u;return(u=(d=this._layout.read(c))==null?void 0:d.minContentWidthRequired)!=null?u:0}),position:constObservable({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}_isMouseOverWidget(e){const t=this._layout.get();return!t||!(e.event instanceof EditorMouseEvent)?!1:t.lowerBackground.containsPoint(new Point(e.event.relativePos.x,e.event.relativePos.y))}removePreviousViewZone(e){if(!this._previousViewZoneInfo)return;e.removeZone(this._previousViewZoneInfo.id);const t=this._editor.cursorLineNumber.get();t!==null&&t>=this._previousViewZoneInfo.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()-this._previousViewZoneInfo.height),this._previousViewZoneInfo=void 0}addViewZone(e,t){const r=t.addZone({afterLineNumber:e.lineNumber-1,heightInPx:e.height,domNode:$$m("div")});this._previousViewZoneInfo={height:e.height,lineNumber:e.lineNumber,id:r};const s=this._editor.cursorLineNumber.get();s!==null&&s>=e.lineNumber&&this._editor.editor.setScrollTop(this._editor.scrollTop.get()+e.height)}};InlineEditsLineReplacementView=__decorate$1e([__param$19(4,ILanguageService),__param$19(5,IThemeService)],InlineEditsLineReplacementView);function rangesToBubbleRanges(o){const e=[];for(;o.length;){let t=o.shift();t.startLineNumber!==t.endLineNumber&&(o.push(new Range$2(t.startLineNumber+1,1,t.endLineNumber,t.endColumn)),t=new Range$2(t.startLineNumber,t.startColumn,t.startLineNumber,Number.MAX_SAFE_INTEGER)),e.push(t)}return e}var __decorate$1d=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$18=function(o,e){return function(t,r){e(t,r,o)}};const HORIZONTAL_PADDING=0,VERTICAL_PADDING=0,BORDER_WIDTH$1=1,WIDGET_SEPARATOR_WIDTH=1,WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH=3,BORDER_RADIUS=4,ORIGINAL_END_PADDING=20,MODIFIED_END_PADDING=12;let InlineEditsSideBySideView=class extends Disposable$1{static fitsInsideViewport(e,t,r,s){const a=observableCodeEditor(e),l=a.layoutInfoWidth.read(s),c=a.layoutInfoContentLeft.read(s),d=e.getLayoutInfo().verticalScrollbarWidth,u=a.layoutInfoMinimap.read(s).minimapLeft!==0?a.layoutInfoMinimap.read(s).minimapWidth:0,g=maxContentWidthInRange(a,r.displayRange,void 0),f=r.lineEdit.newLines.reduce((v,b)=>Math.max(v,getContentRenderWidth(b,e,t)),0),m=ORIGINAL_END_PADDING,_=MODIFIED_END_PADDING+2*BORDER_WIDTH$1;return g+f+m+_<l-c-d-u}constructor(e,t,r,s,a,l,c){super(),this._editor=e,this._edit=t,this._previewTextModel=r,this._uiState=s,this._tabAction=a,this._instantiationService=l,this._themeService=c,this._editorObs=observableCodeEditor(this._editor),this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._display=derived(this,u=>this._uiState.read(u)?"block":"none"),this.previewRef=n.ref();const d=this._uiState.map(u=>u!=null&&u.isInDiffEditor?WIDGET_SEPARATOR_DIFF_EDITOR_WIDTH:WIDGET_SEPARATOR_WIDTH);this._editorContainer=n.div({class:["editorContainer"],style:{position:"absolute",overflow:"hidden",cursor:"pointer"},onmousedown:u=>{u.preventDefault()},onclick:u=>{this._onDidClick.fire(new StandardMouseEvent(getWindow$1(u),u))}},[n.div({class:"preview",style:{pointerEvents:"none"},ref:this.previewRef})]).keepUpdated(this._store),this.isHovered=this._editorContainer.didMouseMoveDuringHover,this.previewEditor=this._register(this._instantiationService.createInstance(EmbeddedCodeEditorWidget,this.previewRef.element,{glyphMargin:!1,lineNumbers:"off",minimap:{enabled:!1},guides:{indentation:!1,bracketPairs:!1,bracketPairsHorizontal:!1,highlightActiveIndentation:!1},rulers:[],padding:{top:0,bottom:0},folding:!1,selectOnLineNumbers:!1,selectionHighlight:!1,columnSelection:!1,overviewRulerBorder:!1,overviewRulerLanes:0,lineDecorationsWidth:0,lineNumbersMinChars:0,revealHorizontalRightPadding:0,bracketPairColorization:{enabled:!0,independentColorPoolPerBracketType:!1},scrollBeyondLastLine:!1,scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1},readOnly:!0,wordWrap:"off",wordWrapOverride1:"off",wordWrapOverride2:"off"},{contextKeyValues:{[InlineCompletionContextKeys.inInlineEditsPreviewEditor.key]:!0},contributions:[]},this._editor)),this._previewEditorObs=observableCodeEditor(this.previewEditor),this._activeViewZones=[],this._updatePreviewEditor=derived(this,u=>{this._editorContainer.readEffect(u),this._previewEditorObs.model.read(u),this._display.read(u),this._nonOverflowView&&(this._nonOverflowView.element.style.display=this._display.read(u));const g=this._uiState.read(u),f=this._edit.read(u);if(!g||!f)return;const m=f.originalLineRange,_=[];m.startLineNumber>1&&_.push(new Range$2(1,1,m.startLineNumber-1,1)),m.startLineNumber+g.newTextLineCount<this._previewTextModel.getLineCount()+1&&_.push(new Range$2(m.startLineNumber+g.newTextLineCount,1,this._previewTextModel.getLineCount()+1,1)),this.previewEditor.setHiddenAreas(_,void 0,!0);const v=[...this._activeViewZones];this._activeViewZones=[];const b=m.endLineNumberExclusive-m.startLineNumber-g.newTextLineCount;this.previewEditor.changeViewZones(C=>{v.forEach(y=>C.removeZone(y)),b>0&&this._activeViewZones.push(C.addZone({afterLineNumber:m.startLineNumber+g.newTextLineCount-1,heightInLines:b,showInHiddenAreas:!0,domNode:$$m("div.diagonal-fill.inline-edits-view-zone")}))})}),this._previewEditorWidth=derived(this,u=>{const g=this._edit.read(u);return g?(this._updatePreviewEditor.read(u),maxContentWidthInRange(this._previewEditorObs,g.modifiedLineRange,u)):0}),this._cursorPosIfTouchesEdit=derived(this,u=>{const g=this._editorObs.cursorPosition.read(u),f=this._edit.read(u);if(!(!f||!g))return f.modifiedLineRange.contains(g.lineNumber)?g:void 0}),this._originalStartPosition=derived(this,u=>{const g=this._edit.read(u);return g?new Position$1(g.originalLineRange.startLineNumber,1):null}),this._originalEndPosition=derived(this,u=>{const g=this._edit.read(u);return g?new Position$1(g.originalLineRange.endLineNumberExclusive,1):null}),this._originalVerticalStartPosition=this._editorObs.observePosition(this._originalStartPosition,this._store).map(u=>u==null?void 0:u.y),this._originalVerticalEndPosition=this._editorObs.observePosition(this._originalEndPosition,this._store).map(u=>u==null?void 0:u.y),this._originalDisplayRange=this._edit.map(u=>u==null?void 0:u.displayRange),this._editorMaxContentWidthInRange=derived(this,u=>{const g=this._originalDisplayRange.read(u);return g?(this._editorObs.versionId.read(u),derivedObservableWithCache(this,(f,m)=>{const _=maxContentWidthInRange(this._editorObs,g,f);return Math.max(_,m!=null?m:0)})):constObservable(0)}).map((u,g)=>u.read(g)),this._previewEditorLayoutInfo=derived(this,u=>{var re,de;const g=this._edit.read(u);if(!g||!this._uiState.read(u))return null;const m=g.originalLineRange,_=this._editorObs.scrollLeft.read(u),v=this._editorMaxContentWidthInRange.read(u),b=this._editorObs.layoutInfo.read(u),C=this._previewEditorWidth.read(u),y=b.contentWidth-b.verticalScrollbarWidth,S=this._editor.getContainerDomNode().getBoundingClientRect(),w=b.contentLeft+b.contentWidth+S.left,E=getWindow$1(this._editor.getContainerDomNode()).innerWidth-w,x=getWindow$1(this._editor.getContainerDomNode()).innerWidth-S.right,L=Math.min(b.contentWidth*.3,C,100),k=0,D=k+E,I=this._cursorPosIfTouchesEdit.read(u),T=Math.max(y+_-k-Math.max(0,L-D),Math.min(I?getOffsetForPos(this._editorObs,I,u)+50:0,y+_)),M=Math.min(v+ORIGINAL_END_PADDING,T),R=v+ORIGINAL_END_PADDING+C+70,N=T-M;let A,O;M>_?(A=0,O=b.contentLeft+M-_):(A=_-M,O=b.contentLeft);const P=(re=this._originalVerticalStartPosition.read(u))!=null?re:this._editor.getTopForLineNumber(m.startLineNumber)-this._editorObs.scrollTop.read(u),F=(de=this._originalVerticalEndPosition.read(u))!=null?de:this._editor.getBottomForLineNumber(m.endLineNumberExclusive-1)-this._editorObs.scrollTop.read(u),B=b.contentLeft-_;let H=Rect.fromLeftTopRightBottom(B,P,O,F);const V=H.height===0;V||(H=H.withMargin(VERTICAL_PADDING,HORIZONTAL_PADDING));const j=this._previewEditorObs.observeLineHeightsForLineRange(g.modifiedLineRange).read(u).reduce((se,W)=>se+W,0),X=F-P,ee=Math.max(X,j),Z=N===0,J=0,q=Math.min(C+MODIFIED_END_PADDING,x+b.width-b.contentLeft-J);let Q=Rect.fromLeftTopWidthHeight(H.right+J,P,q,ee);return V?Q=Q.withMargin(VERTICAL_PADDING,HORIZONTAL_PADDING).translateY(VERTICAL_PADDING):Q=Q.withMargin(VERTICAL_PADDING,HORIZONTAL_PADDING).translateX(HORIZONTAL_PADDING+BORDER_WIDTH$1),{codeRect:H,editRect:Q,codeScrollLeft:_,contentLeft:b.contentLeft,isInsertion:V,maxContentWidth:R,shouldShowShadow:Z,desiredPreviewEditorScrollLeft:A,previewEditorWidth:q}}),this._stickyScrollController=StickyScrollController.get(this._editorObs.editor),this._stickyScrollHeight=this._stickyScrollController?observableFromEvent(this._stickyScrollController.onDidChangeStickyScrollHeight,()=>this._stickyScrollController.stickyScrollWidgetHeight):constObservable(0),this._shouldOverflow=derived(this,u=>!1),this._originalBackgroundColor=observableFromEvent(this,this._themeService.onDidColorThemeChange,()=>{var u;return(u=this._themeService.getColorTheme().getColor(originalBackgroundColor))!=null?u:Color.transparent}),this._backgroundSvg=n.svg({transform:"translate(-0.5 -0.5)",style:{overflow:"visible",pointerEvents:"none",position:"absolute"}},[n.svgElem("path",{class:"rightOfModifiedBackgroundCoverUp",d:derived(this,u=>{const g=this._previewEditorLayoutInfo.read(u);if(!(!g||this._originalBackgroundColor.read(u).isTransparent()))return new PathBuilder().moveTo(g.codeRect.getRightTop()).lineTo(g.codeRect.getRightTop().deltaX(1e3)).lineTo(g.codeRect.getRightBottom().deltaX(1e3)).lineTo(g.codeRect.getRightBottom()).build()}),style:{fill:asCssVariableWithDefault(editorBackground,"transparent")}})]).keepUpdated(this._store),this._originalOverlay=n.div({style:{pointerEvents:"none",display:this._previewEditorLayoutInfo.map(u=>u!=null&&u.isInsertion?"none":"block")}},derived(this,u=>{const g=mapOutFalsy(this._previewEditorLayoutInfo).read(u);if(!g)return;const f=d.read(u),m=getOriginalBorderColor(this._tabAction).map(L=>"".concat(BORDER_WIDTH$1,"px solid ").concat(asCssVariable(L))),_="".concat(BORDER_WIDTH$1+f,"px solid ").concat(asCssVariable(editorBackground)),v=g.read(u).codeScrollLeft!==0,b=g.map(L=>L.codeRect.bottom<L.editRect.bottom),C=BORDER_RADIUS*2+BORDER_WIDTH$1*2,y=g.map(L=>Rect.fromLeftTopRightBottom(L.contentLeft-BORDER_RADIUS-BORDER_WIDTH$1,L.codeRect.top,L.contentLeft,L.codeRect.bottom+C)).read(u),S=new OffsetRange(y.left,Number.MAX_SAFE_INTEGER),w=g.map(L=>L.codeRect.intersectHorizontal(S)),E=w.map(L=>L.withMargin(f,0,f,f).intersectHorizontal(S)),x=w.map(L=>Rect.fromLeftTopWidthHeight(L.right-C+BORDER_WIDTH$1,L.bottom-BORDER_WIDTH$1,C,C).intersectHorizontal(S));return[n.div({class:"originalSeparatorSideBySide",style:{...E.read(u).toStyles(),boxSizing:"border-box",borderRadius:"".concat(BORDER_RADIUS,"px 0 0 ").concat(BORDER_RADIUS,"px"),borderTop:_,borderBottom:_,borderLeft:v?"none":_}}),n.div({class:"originalOverlaySideBySide",style:{...w.read(u).toStyles(),boxSizing:"border-box",borderRadius:"".concat(BORDER_RADIUS,"px 0 0 ").concat(BORDER_RADIUS,"px"),borderTop:m,borderBottom:m,borderLeft:v?"none":m,backgroundColor:asCssVariable(originalBackgroundColor)}}),n.div({class:"originalCornerCutoutSideBySide",style:{pointerEvents:"none",display:b.map(L=>L?"block":"none"),...x.read(u).toStyles()}},[n.div({class:"originalCornerCutoutBackground",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",backgroundColor:getEditorBlendedColor(originalBackgroundColor,this._themeService).map(L=>L.toString())}}),n.div({class:"originalCornerCutoutBorder",style:{position:"absolute",top:"0px",left:"0px",width:"100%",height:"100%",boxSizing:"border-box",borderTop:m,borderRight:m,borderRadius:"0 100% 0 0",backgroundColor:asCssVariable(editorBackground)}})]),n.div({class:"originalOverlaySideBySideHider",style:{...y.toStyles(),backgroundColor:asCssVariable(editorBackground)}})]})).keepUpdated(this._store),this._modifiedOverlay=n.div({style:{pointerEvents:"none"}},derived(this,u=>{const g=mapOutFalsy(this._previewEditorLayoutInfo).read(u);if(!g)return;const f=g.map(w=>w.codeRect.bottom<w.editRect.bottom),m=d.read(u),_=f.map(w=>"0 ".concat(BORDER_RADIUS,"px ").concat(BORDER_RADIUS,"px ").concat(w?BORDER_RADIUS:0,"px")),v=getEditorBlendedColor(getModifiedBorderColor(this._tabAction),this._themeService).map(w=>"1px solid ".concat(w.toString())),b="".concat(BORDER_WIDTH$1+m,"px solid ").concat(asCssVariable(editorBackground)),C=g.map(w=>w.editRect.withMargin(0,BORDER_WIDTH$1)),y=C.map(w=>w.withMargin(m,m,m,0)),S=derived(this,w=>{const E=C.read(w),x=g.read(w);return!x.isInsertion||x.contentLeft>=E.left?Rect.fromLeftTopWidthHeight(E.left,E.top,0,0):new Rect(x.contentLeft,E.top,E.left,E.top+BORDER_WIDTH$1*2)});return[n.div({class:"modifiedInsertionSideBySide",style:{...S.read(u).toStyles(),backgroundColor:getModifiedBorderColor(this._tabAction).map(w=>asCssVariable(w))}}),n.div({class:"modifiedSeparatorSideBySide",style:{...y.read(u).toStyles(),borderRadius:_,borderTop:b,borderBottom:b,borderRight:b,boxSizing:"border-box"}}),n.div({class:"modifiedOverlaySideBySide",style:{...C.read(u).toStyles(),borderRadius:_,border:v,boxSizing:"border-box",backgroundColor:asCssVariable(modifiedBackgroundColor)}})]})).keepUpdated(this._store),this._nonOverflowView=n.div({class:"inline-edits-view",style:{position:"absolute",overflow:"visible",top:"0px",left:"0px",display:this._display}},[this._backgroundSvg,derived(this,u=>this._shouldOverflow.read(u)?[]:[this._editorContainer,this._originalOverlay,this._modifiedOverlay])]).keepUpdated(this._store),this._register(this._editorObs.createOverlayWidget({domNode:this._nonOverflowView.element,position:constObservable(null),allowEditorOverflow:!1,minContentWidthInPx:derived(this,u=>{var f;const g=(f=this._previewEditorLayoutInfo.read(u))==null?void 0:f.maxContentWidth;return g===void 0?0:g})})),this.previewEditor.setModel(this._previewTextModel),this._register(autorun(u=>{const g=this._previewEditorLayoutInfo.read(u);if(!g)return;const f=g.editRect.withMargin(-VERTICAL_PADDING,-HORIZONTAL_PADDING);this.previewEditor.layout({height:f.height,width:g.previewEditorWidth+15}),this._editorContainer.element.style.top="".concat(f.top,"px"),this._editorContainer.element.style.left="".concat(f.left,"px"),this._editorContainer.element.style.width="".concat(g.previewEditorWidth+HORIZONTAL_PADDING,"px")})),this._register(autorun(u=>{const g=this._previewEditorLayoutInfo.read(u);g&&this._previewEditorObs.editor.setScrollLeft(g.desiredPreviewEditorScrollLeft)})),this._updatePreviewEditor.recomputeInitiallyAndOnChange(this._store)}};InlineEditsSideBySideView=__decorate$1d([__param$18(5,IInstantiationService),__param$18(6,IThemeService)],InlineEditsSideBySideView);var __decorate$1c=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$17=function(o,e){return function(t,r){e(t,r,o)}};const BORDER_WIDTH=1;var yr;let InlineEditsWordReplacementView=(yr=class extends Disposable$1{constructor(e,t,r,s){super(),this._editor=e,this._edit=t,this._tabAction=r,this._languageService=s,this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this._start=this._editor.observePosition(constObservable(this._edit.range.getStartPosition()),this._store),this._end=this._editor.observePosition(constObservable(this._edit.range.getEndPosition()),this._store),this._line=document.createElement("div"),this._hoverableElement=observableValue(this,null),this.isHovered=this._hoverableElement.map((l,c)=>{var d;return(d=l==null?void 0:l.didMouseMoveDuringHover.read(c))!=null?d:!1}),this._renderTextEffect=derived(this,l=>{var v;const c=this._editor.model.get(),d=c.getLineContent(this._edit.range.startLineNumber),u=StringReplacement.replace(new OffsetRange(this._edit.range.startColumn-1,this._edit.range.endColumn-1),this._edit.text),g=u.replace(d),f=(v=c.tokenization.tokenizeLinesAt(this._edit.range.startLineNumber,[g]))==null?void 0:v[0];let m;f?m=TokenArray.fromLineTokens(f).slice(u.getRangeAfterReplace()).toLineTokens(this._edit.text,this._languageService.languageIdCodec):m=LineTokens.createEmpty(this._edit.text,this._languageService.languageIdCodec);const _=renderLines$1(new LineSource([m]),RenderOptions.fromEditor(this._editor.editor).withSetWidth(!1).withScrollBeyondLastColumn(0),[],this._line,!0);this._line.style.width="".concat(_.minWidthInPx,"px")});const a=this._editor.observeLineHeightForPosition(this._edit.range.getStartPosition());this._layout=derived(this,l=>{this._renderTextEffect.read(l);const c=this._start.read(l),d=this._end.read(l);if(!c||!d||c.x>d.x||c.y>d.y)return;const u=a.read(l),g=this._editor.scrollLeft.read(l),f=this._editor.getOption(59).read(l).typicalHalfwidthCharacterWidth,m=3*f,_=4,v=new Point(m,_),b=Rect.fromPoints(c,d).withHeight(u).translateX(-g),C=Rect.fromPointSize(b.getLeftBottom().add(v),new Point(this._edit.text.length*f,b.height)),y=C.withLeft(b.left);return{originalLine:b,modifiedLine:C,lowerBackground:y,lineHeight:u}}),this.minEditorScrollHeight=derived(this,l=>{const c=mapOutFalsy(this._layout).read(l);return c?c.read(l).modifiedLine.bottom+BORDER_WIDTH+this._editor.editor.getScrollTop():0}),this._root=n.div({class:"word-replacement"},[derived(this,l=>{const c=mapOutFalsy(this._layout).read(l);if(!c)return[];const d=getOriginalBorderColor(this._tabAction).map(g=>asCssVariable(g)).read(l),u=getModifiedBorderColor(this._tabAction).map(g=>asCssVariable(g)).read(l);return[n.div({style:{position:"absolute",...rectToProps(g=>getEditorValidOverlayRect(this._editor).read(g)),overflow:"hidden",pointerEvents:"none"}},[n.div({style:{position:"absolute",...rectToProps(g=>c.read(g).lowerBackground.withMargin(BORDER_WIDTH,2*BORDER_WIDTH,BORDER_WIDTH,0)),background:asCssVariable(editorBackground),cursor:"pointer",pointerEvents:"auto"},onmousedown:g=>{g.preventDefault()},onmouseup:g=>this._onDidClick.fire(new StandardMouseEvent(getWindow$1(g),g)),obsRef:g=>{this._hoverableElement.set(g,void 0)}}),n.div({style:{position:"absolute",...rectToProps(g=>c.read(g).modifiedLine.withMargin(BORDER_WIDTH,2*BORDER_WIDTH)),fontFamily:this._editor.getOption(58),fontSize:this._editor.getOption(61),fontWeight:this._editor.getOption(62),pointerEvents:"none",boxSizing:"border-box",borderRadius:"4px",border:"".concat(BORDER_WIDTH,"px solid ").concat(u),background:asCssVariable(modifiedChangedTextOverlayColor),display:"flex",justifyContent:"center",alignItems:"center",outline:"2px solid ".concat(asCssVariable(editorBackground))}},[this._line]),n.div({style:{position:"absolute",...rectToProps(g=>c.read(g).originalLine.withMargin(BORDER_WIDTH)),boxSizing:"border-box",borderRadius:"4px",border:"".concat(BORDER_WIDTH,"px solid ").concat(d),background:asCssVariable(originalChangedTextOverlayColor),pointerEvents:"none"}},[]),n.svg({width:11,height:14,viewBox:"0 0 11 14",fill:"none",style:{position:"absolute",left:c.map(g=>g.modifiedLine.left-16),top:c.map(g=>g.modifiedLine.top+Math.round((g.lineHeight-14-5)/2))}},[n.svgElem("path",{d:"M1 0C1 2.98966 1 5.92087 1 8.49952C1 9.60409 1.89543 10.5 3 10.5H10.5",stroke:asCssVariable(editorHoverForeground)}),n.svgElem("path",{d:"M6 7.5L9.99999 10.49998L6 13.5",stroke:asCssVariable(editorHoverForeground)})])])]})]).keepUpdated(this._store),this._register(this._editor.createOverlayWidget({domNode:this._root.element,minContentWidthInPx:constObservable(0),position:constObservable({preference:{top:0,left:0}}),allowEditorOverflow:!1}))}},yr.MAX_LENGTH=100,yr);InlineEditsWordReplacementView=__decorate$1c([__param$17(3,ILanguageService)],InlineEditsWordReplacementView);class OriginalEditorInlineDiffView extends Disposable$1{constructor(e,t,r){super(),this._originalEditor=e,this._state=t,this._modifiedTextModel=r,this._onDidClick=this._register(new Emitter$1),this.onDidClick=this._onDidClick.event,this.isHovered=observableCodeEditor(this._originalEditor).isTargetHovered(a=>{var l;return a.target.type===6&&((l=a.target.detail.injectedText)==null?void 0:l.options.attachedData)instanceof InlineEditAttachedData&&a.target.detail.injectedText.options.attachedData.owner===this},this._store),this._tokenizationFinished=modelTokenizationFinished(this._modifiedTextModel),this._decorations=derived(this,a=>{var L,k;const l=this._state.read(a);if(!l)return;const c=l.modifiedText,d=l.mode==="insertionInline",u=l.diff.length===1&&((L=l.diff[0].innerChanges)==null?void 0:L.length)===1,g=!0,f=[],m=[],_=ModelDecorationOptions.register({className:"inlineCompletions-line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),v=ModelDecorationOptions.register({className:"inlineCompletions-line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),b=ModelDecorationOptions.register({className:"inlineCompletions-char-delete",description:"char-delete",isWholeLine:!1,zIndex:1}),C=ModelDecorationOptions.register({className:"inlineCompletions-char-insert",description:"char-insert",isWholeLine:!0}),y=ModelDecorationOptions.register({className:"inlineCompletions-char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),S=ModelDecorationOptions.register({className:"inlineCompletions-char-insert diff-range-empty",description:"char-insert diff-range-empty"}),w=ModelDecorationOptions.register({className:"inlineCompletions-original-lines",description:"inlineCompletions-original-lines",isWholeLine:!1,shouldFillLineOnLineBreak:!0}),E=l.mode!=="sideBySide"&&l.mode!=="deletion"&&l.mode!=="insertionInline"&&l.mode!=="lineReplacement",x=l.mode==="lineReplacement";for(const D of l.diff)if(E&&(D.original.isEmpty||f.push({range:D.original.toInclusiveRange(),options:v}),D.modified.isEmpty||m.push({range:D.modified.toInclusiveRange(),options:_})),D.modified.isEmpty||D.original.isEmpty)D.original.isEmpty||f.push({range:D.original.toInclusiveRange(),options:b}),D.modified.isEmpty||m.push({range:D.modified.toInclusiveRange(),options:C});else{const I=d&&allowsTrueInlineDiffRendering(D);for(const T of D.innerChanges||[]){if(D.original.contains(T.originalRange.startLineNumber)&&!(x&&T.originalRange.isEmpty())){const M=(k=this._originalEditor.getModel())==null?void 0:k.getValueInRange(T.originalRange,1);f.push({range:T.originalRange,options:{description:"char-delete",shouldFillLineOnLineBreak:!1,className:classNames("inlineCompletions-char-delete",T.originalRange.isSingleLine()&&l.mode==="insertionInline"&&"single-line-inline",T.originalRange.isEmpty()&&"empty",(T.originalRange.isEmpty()&&u||l.mode==="deletion"&&M==="\n")&&g&&!I&&"diff-range-empty"),inlineClassName:I?classNames("strike-through","inlineCompletions"):null,zIndex:1}})}if(D.modified.contains(T.modifiedRange.startLineNumber)&&m.push({range:T.modifiedRange,options:T.modifiedRange.isEmpty()&&g&&!I&&u?S:y}),I){const M=c.getValueOfRange(T.modifiedRange),R=M.length>3?[{text:M.slice(0,1),extraClasses:["start"],offsetRange:new OffsetRange(T.modifiedRange.startColumn-1,T.modifiedRange.startColumn)},{text:M.slice(1,-1),extraClasses:[],offsetRange:new OffsetRange(T.modifiedRange.startColumn,T.modifiedRange.endColumn-2)},{text:M.slice(-1),extraClasses:["end"],offsetRange:new OffsetRange(T.modifiedRange.endColumn-2,T.modifiedRange.endColumn-1)}]:[{text:M,extraClasses:["start","end"],offsetRange:new OffsetRange(T.modifiedRange.startColumn-1,T.modifiedRange.endColumn)}];this._tokenizationFinished.read(a);const N=this._modifiedTextModel.tokenization.getLineTokens(T.modifiedRange.startLineNumber);for(const{text:A,extraClasses:O,offsetRange:P}of R)f.push({range:Range$2.fromPositions(T.originalRange.getEndPosition()),options:{description:"inserted-text",before:{tokens:N.getTokensInRange(P),content:A,inlineClassName:classNames("inlineCompletions-char-insert",T.modifiedRange.isSingleLine()&&l.mode==="insertionInline"&&"single-line-inline",...O),cursorStops:InjectedTextCursorStops$1.None,attachedData:new InlineEditAttachedData(this)},zIndex:2,showIfCollapsed:!0}})}}}if(l.isInDiffEditor)for(const D of l.diff)D.original.isEmpty||f.push({range:D.original.toExclusiveRange(),options:w});return{originalDecorations:f,modifiedDecorations:m}}),this._register(observableCodeEditor(this._originalEditor).setDecorations(this._decorations.map(a=>{var l;return(l=a==null?void 0:a.originalDecorations)!=null?l:[]})));const s=this._state.map(a=>a==null?void 0:a.modifiedCodeEditor);this._register(autorunWithStore((a,l)=>{const c=s.read(a);c&&l.add(observableCodeEditor(c).setDecorations(this._decorations.map(d=>{var u;return(u=d==null?void 0:d.modifiedDecorations)!=null?u:[]})))})),this._register(this._originalEditor.onMouseUp(a=>{var c;if(a.target.type!==6)return;const l=(c=a.target.detail.injectedText)==null?void 0:c.options.attachedData;l instanceof InlineEditAttachedData&&l.owner===this&&this._onDidClick.fire(a.event)}))}}class InlineEditAttachedData{constructor(e){this.owner=e}}function allowsTrueInlineDiffRendering(o){return o.innerChanges?o.innerChanges.every(e=>rangeIsSingleLine(e.modifiedRange)&&rangeIsSingleLine(e.originalRange)):!1}let i=0;function modelTokenizationFinished(o){return observableFromEvent(o.onDidChangeTokens,()=>i++)}var __decorate$1b=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$16=function(o,e){return function(t,r){e(t,r,o)}};let InlineEditsView=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._editor=e,this._host=t,this._model=r,this._ghostTextIndicator=s,this._focusIsInMenu=a,this._instantiationService=l,this._editorObs=observableCodeEditor(this._editor),this._tabAction=derived(g=>{var f,m;return(m=(f=this._model.read(g))==null?void 0:f.tabAction.read(g))!=null?m:InlineEditTabAction.Inactive}),this._constructorDone=observableValue(this,!1),this._uiState=derived(this,g=>{var S,w;const f=this._model.read(g);if(!f||!this._constructorDone.read(g))return;const m=f.inlineEdit;let _=RangeMapping.fromEdit(m.edit),v=m.edit.apply(m.originalText),b=lineRangeMappingFromRangeMappings(_,m.originalText,new StringText(v)),C=this.determineRenderState(f,g,b,new StringText(v));if(!C){onUnexpectedError(new Error("unable to determine view: tried to render ".concat((S=this._previousView)==null?void 0:S.view)));return}if(C.kind===InlineCompletionViewKind.SideBySide){const E=createReindentEdit(v,m.modifiedLineRange,d.getOptions().tabSize);v=E.applyToString(v),_=applyEditToModifiedRangeMappings(_,E),b=lineRangeMappingFromRangeMappings(_,m.originalText,new StringText(v))}return this._previewTextModel.setLanguage(this._editor.getModel().getLanguageId()),this._previewTextModel.getValue()!==v&&this._previewTextModel.setValue(v),f.showCollapsed.read(g)&&!((w=this._indicator.read(g))!=null&&w.isHoverVisible.read(g))&&(C={kind:InlineCompletionViewKind.Collapsed,viewData:C.viewData}),f.handleInlineEditShown(C.kind,C.viewData),{state:C,diff:b,edit:m,newText:v,newTextLineCount:m.modifiedLineRange.length,isInDiffEditor:f.isInDiffEditor}}),this._previewTextModel=this._register(this._instantiationService.createInstance(TextModel,"",this._editor.getModel().getLanguageId(),{...TextModel.DEFAULT_CREATION_OPTIONS,bracketPairColorizationOptions:{enabled:!0,independentColorPoolPerBracketType:!1}},null)),this._indicatorCyclicDependencyCircuitBreaker=observableValue(this,!1),this._indicator=derived(this,g=>{if(!this._indicatorCyclicDependencyCircuitBreaker.read(g))return;const f=derivedOpts({owner:this,equalsFn:equalsIfDefined(itemEquals())},_=>{var C,y,S;const v=this._ghostTextIndicator.read(_);if(v)return v.lineRange;const b=this._uiState.read(_);if(b){if(((C=b.state)==null?void 0:C.kind)==="custom"){const w=(y=b.state.displayLocation)==null?void 0:y.range;if(!w)throw new BugIndicatingError("custom view should have a range");return new LineRange(w.startLineNumber,w.endLineNumber)}return((S=b.state)==null?void 0:S.kind)==="insertionMultiLine"?this._insertion.originalLines.read(_):b.edit.displayRange}}),m=derived(this,_=>{const v=this._model.read(_);if(v)return v;const b=this._ghostTextIndicator.read(_);return b?b.model:v});return g.store.add(this._instantiationService.createInstance(InlineEditsGutterIndicator,this._editorObs,f,this._gutterIndicatorOffset,m,this._inlineEditsIsHovered,this._focusIsInMenu))}),this._inlineEditsIsHovered=derived(this,g=>this._sideBySide.isHovered.read(g)||this._wordReplacementViews.read(g).some(f=>f.isHovered.read(g))||this._deletion.isHovered.read(g)||this._inlineDiffView.isHovered.read(g)||this._lineReplacementView.isHovered.read(g)||this._insertion.isHovered.read(g)||this._customView.isHovered.read(g)),this._gutterIndicatorOffset=derived(this,g=>{var m,_;if(((_=(m=this._uiState.read(g))==null?void 0:m.state)==null?void 0:_.kind)==="insertionMultiLine")return this._insertion.startLineOffset.read(g);const f=this._ghostTextIndicator.read(g);return f?getGhostTextTopOffset(f,this._editor):0}),this._sideBySide=this._register(this._instantiationService.createInstance(InlineEditsSideBySideView,this._editor,this._model.map(g=>g==null?void 0:g.inlineEdit),this._previewTextModel,this._uiState.map(g=>{var f;return g&&((f=g.state)==null?void 0:f.kind)===InlineCompletionViewKind.SideBySide?{newTextLineCount:g.newTextLineCount,isInDiffEditor:g.isInDiffEditor}:void 0}),this._tabAction)),this._deletion=this._register(this._instantiationService.createInstance(InlineEditsDeletionView,this._editor,this._model.map(g=>g==null?void 0:g.inlineEdit),this._uiState.map(g=>{var f;return g&&((f=g.state)==null?void 0:f.kind)===InlineCompletionViewKind.Deletion?{originalRange:g.state.originalRange,deletions:g.state.deletions,inDiffEditor:g.isInDiffEditor}:void 0}),this._tabAction)),this._insertion=this._register(this._instantiationService.createInstance(InlineEditsInsertionView,this._editor,this._uiState.map(g=>{var f;return g&&((f=g.state)==null?void 0:f.kind)===InlineCompletionViewKind.InsertionMultiLine?{lineNumber:g.state.lineNumber,startColumn:g.state.column,text:g.state.text,inDiffEditor:g.isInDiffEditor}:void 0}),this._tabAction)),this._inlineDiffViewState=derived(this,g=>{const f=this._uiState.read(g);if(!(!f||!f.state)&&!(f.state.kind==="wordReplacements"||f.state.kind==="insertionMultiLine"||f.state.kind==="collapsed"||f.state.kind==="custom"))return{modifiedText:new StringText(f.newText),diff:f.diff,mode:f.state.kind,modifiedCodeEditor:this._sideBySide.previewEditor,isInDiffEditor:f.isInDiffEditor}}),this._inlineCollapsedView=this._register(this._instantiationService.createInstance(InlineEditsCollapsedView,this._editor,this._model.map((g,f)=>{var m,_;return((_=(m=this._uiState.read(f))==null?void 0:m.state)==null?void 0:_.kind)==="collapsed"?g==null?void 0:g.inlineEdit:void 0}))),this._customView=this._register(this._instantiationService.createInstance(InlineEditsCustomView,this._editor,this._model.map((g,f)=>{var m,_;return((_=(m=this._uiState.read(f))==null?void 0:m.state)==null?void 0:_.kind)==="custom"?g==null?void 0:g.displayLocation:void 0}),this._tabAction)),this._inlineDiffView=this._register(new OriginalEditorInlineDiffView(this._editor,this._inlineDiffViewState,this._previewTextModel)),this._wordReplacementViews=mapObservableArrayCached(this,this._uiState.map(g=>{var f;return((f=g==null?void 0:g.state)==null?void 0:f.kind)==="wordReplacements"?g.state.replacements:[]}),(g,f)=>f.add(this._instantiationService.createInstance(InlineEditsWordReplacementView,this._editorObs,g,this._tabAction))),this._lineReplacementView=this._register(this._instantiationService.createInstance(InlineEditsLineReplacementView,this._editorObs,this._uiState.map(g=>{var f;return((f=g==null?void 0:g.state)==null?void 0:f.kind)===InlineCompletionViewKind.LineReplacement?{originalRange:g.state.originalRange,modifiedRange:g.state.modifiedRange,modifiedLines:g.state.modifiedLines,replacements:g.state.replacements}:void 0}),this._uiState.map(g=>{var f;return(f=g==null?void 0:g.isInDiffEditor)!=null?f:!1}),this._tabAction)),this._useCodeShifting=this._editorObs.getOption(71).map(g=>g.edits.allowCodeShifting),this._renderSideBySide=this._editorObs.getOption(71).map(g=>g.edits.renderSideBySide),this._register(autorunWithStore((g,f)=>{const m=this._model.read(g);m&&f.add(Event$1.any(this._sideBySide.onDidClick,this._deletion.onDidClick,this._lineReplacementView.onDidClick,this._insertion.onDidClick,...this._wordReplacementViews.read(g).map(_=>_.onDidClick),this._inlineDiffView.onDidClick,this._customView.onDidClick)(_=>{this._viewHasBeenShownLongerThan(350)&&(_.preventDefault(),m.accept())}))})),this._indicator.recomputeInitiallyAndOnChange(this._store),this._wordReplacementViews.recomputeInitiallyAndOnChange(this._store),this._indicatorCyclicDependencyCircuitBreaker.set(!0,void 0),this._register(this._instantiationService.createInstance(InlineEditsOnboardingExperience,this._host,this._model,this._indicator,this._inlineCollapsedView));const c=derived(this,g=>Math.max(...this._wordReplacementViews.read(g).map(f=>f.minEditorScrollHeight.read(g)),this._lineReplacementView.minEditorScrollHeight.read(g),this._customView.minEditorScrollHeight.read(g))).recomputeInitiallyAndOnChange(this._store),d=this._editor.getModel();let u;this._register(autorun(g=>{const f=c.read(g);this._editor.changeViewZones(m=>{const _=this._editor.getScrollHeight(),v=f-_+1;v!==0&&u&&(m.removeZone(u),u=void 0),!(v<=0)&&(u=m.addZone({afterLineNumber:d.getLineCount(),heightInPx:v,domNode:$$m("div.minScrollHeightViewZone")}))})})),this._constructorDone.set(!0,void 0)}getCacheId(e){return e.inlineEdit.inlineCompletion.identity.id}determineView(e,t,r,s){var m,_,v,b,C;const a=e.inlineEdit,l=((m=this._previousView)==null?void 0:m.id)===this.getCacheId(e)&&!((_=e.displayLocation)!=null&&_.jumpToEdit),c=((v=this._previousView)==null?void 0:v.editorWidth)!==this._editorObs.layoutInfoWidth.read(t)&&(((b=this._previousView)==null?void 0:b.view)===InlineCompletionViewKind.SideBySide||((C=this._previousView)==null?void 0:C.view)===InlineCompletionViewKind.LineReplacement);if(l&&!c)return this._previousView.view;if(e.inlineEdit.inlineCompletion instanceof InlineEditItem&&e.inlineEdit.inlineCompletion.uri||e.displayLocation&&!e.inlineEdit.inlineCompletion.identity.jumpedTo.read(t))return InlineCompletionViewKind.Custom;const d=a.originalLineRange.length,u=a.modifiedLineRange.length,g=r.flatMap(y=>{var S;return(S=y.innerChanges)!=null?S:[]}),f=g.length===1;if(!e.isInDiffEditor){if(f&&this._useCodeShifting.read(t)!=="never"&&isSingleLineInsertion(r))return isSingleLineInsertionAfterPosition(r,a.cursorPosition)?InlineCompletionViewKind.InsertionInline:InlineCompletionViewKind.LineReplacement;if(isDeletion(g,a,s))return InlineCompletionViewKind.Deletion;if(isSingleMultiLineInsertion(r)&&this._useCodeShifting.read(t)==="always")return InlineCompletionViewKind.InsertionMultiLine;if(g.every(S=>TextLength.ofRange(S.originalRange).columnCount<InlineEditsWordReplacementView.MAX_LENGTH&&TextLength.ofRange(S.modifiedRange).columnCount<InlineEditsWordReplacementView.MAX_LENGTH)&&f&&d===1&&u===1){const S=g.map(E=>s.getValueOfRange(E.modifiedRange)),w=g.map(E=>e.inlineEdit.originalText.getValueOfRange(E.originalRange));if(!S.some(E=>E.includes(" "))&&!w.some(E=>E.includes(" "))&&(!g.some(E=>E.originalRange.isEmpty())||!growEditsUntilWhitespace(g.map(E=>new TextReplacement(E.originalRange,"")),a.originalText).some(E=>E.range.isEmpty()&&TextLength.ofRange(E.range).columnCount<InlineEditsWordReplacementView.MAX_LENGTH)))return InlineCompletionViewKind.WordReplacements}}if(d>0&&u>0)return d===1&&u===1&&!e.isInDiffEditor?InlineCompletionViewKind.LineReplacement:this._renderSideBySide.read(t)!=="never"&&InlineEditsSideBySideView.fitsInsideViewport(this._editor,this._previewTextModel,a,t)?InlineCompletionViewKind.SideBySide:InlineCompletionViewKind.LineReplacement;if(e.isInDiffEditor){if(isDeletion(g,a,s))return InlineCompletionViewKind.Deletion;if(isSingleMultiLineInsertion(r)&&this._useCodeShifting.read(t)==="always")return InlineCompletionViewKind.InsertionMultiLine}return InlineCompletionViewKind.SideBySide}determineRenderState(e,t,r,s){const a=e.inlineEdit;let l=this.determineView(e,t,r,s);if(this._willRenderAboveCursor(t,a,l))switch(l){case InlineCompletionViewKind.LineReplacement:case InlineCompletionViewKind.WordReplacements:l=InlineCompletionViewKind.SideBySide;break}this._previousView={id:this.getCacheId(e),view:l,editorWidth:this._editor.getLayoutInfo().width,timestamp:Date.now()};const c=r.flatMap(v=>{var b;return(b=v.innerChanges)!=null?b:[]}),d=this._editor.getModel(),u=c.map(v=>({originalRange:v.originalRange,modifiedRange:v.modifiedRange,original:d.getValueInRange(v.originalRange),modified:s.getValueOfRange(v.modifiedRange)})),g=a.cursorPosition,f=u.length===0?!1:u[0].modified.startsWith(d.getEOL()),m={cursorColumnDistance:a.edit.replacements.length===0?0:a.edit.replacements[0].range.getStartPosition().column-g.column,cursorLineDistance:a.lineEdit.lineRange.startLineNumber-g.lineNumber+(f&&a.lineEdit.lineRange.startLineNumber>=g.lineNumber?1:0),lineCountOriginal:a.lineEdit.lineRange.length,lineCountModified:a.lineEdit.newLines.length,characterCountOriginal:u.reduce((v,b)=>v+b.original.length,0),characterCountModified:u.reduce((v,b)=>v+b.modified.length,0),disjointReplacements:u.length,sameShapeReplacements:u.every(v=>v.original===u[0].original&&v.modified===u[0].modified)};switch(l){case InlineCompletionViewKind.InsertionInline:return{kind:InlineCompletionViewKind.InsertionInline,viewData:m};case InlineCompletionViewKind.SideBySide:return{kind:InlineCompletionViewKind.SideBySide,viewData:m};case InlineCompletionViewKind.Collapsed:return{kind:InlineCompletionViewKind.Collapsed,viewData:m};case InlineCompletionViewKind.Custom:return{kind:InlineCompletionViewKind.Custom,displayLocation:e.displayLocation,viewData:m}}if(l===InlineCompletionViewKind.Deletion)return{kind:InlineCompletionViewKind.Deletion,originalRange:a.originalLineRange,deletions:c.map(v=>v.originalRange),viewData:m};if(l===InlineCompletionViewKind.InsertionMultiLine){const v=c[0];return{kind:InlineCompletionViewKind.InsertionMultiLine,lineNumber:v.originalRange.startLineNumber,column:v.originalRange.startColumn,text:s.getValueOfRange(v.modifiedRange),viewData:m}}const _=u.map(v=>new TextReplacement(v.originalRange,v.modified));if(_.length!==0){if(l===InlineCompletionViewKind.WordReplacements){let v=growEditsToEntireWord(_,a.originalText);return v.some(b=>b.range.isEmpty())&&(v=growEditsUntilWhitespace(_,a.originalText)),{kind:InlineCompletionViewKind.WordReplacements,replacements:v,viewData:m}}if(l===InlineCompletionViewKind.LineReplacement)return{kind:InlineCompletionViewKind.LineReplacement,originalRange:a.originalLineRange,modifiedRange:a.modifiedLineRange,modifiedLines:a.modifiedLineRange.mapToLineArray(v=>s.getLineAt(v)),replacements:c.map(v=>({originalRange:v.originalRange,modifiedRange:v.modifiedRange})),viewData:m}}}_willRenderAboveCursor(e,t,r){if(this._useCodeShifting.read(e)==="always")return!1;for(const a of t.multiCursorPositions)if(r===InlineCompletionViewKind.WordReplacements&&a.lineNumber===t.originalLineRange.startLineNumber+1||r===InlineCompletionViewKind.LineReplacement&&a.lineNumber>=t.originalLineRange.endLineNumberExclusive&&a.lineNumber<t.modifiedLineRange.endLineNumberExclusive+t.modifiedLineRange.length)return!0;return!1}_viewHasBeenShownLongerThan(e){var s;const t=(s=this._previousView)==null?void 0:s.timestamp;if(!t)throw new BugIndicatingError("viewHasBeenShownLongThan called before a view has been shown");return Date.now()-t>=e}};InlineEditsView=__decorate$1b([__param$16(5,IInstantiationService)],InlineEditsView);function isSingleLineInsertion(o){return o.every(t=>t.innerChanges.every(r=>e(r)));function e(t){return!(!t.originalRange.isEmpty()||!(t.modifiedRange.startLineNumber===t.modifiedRange.endLineNumber))}}function isSingleLineInsertionAfterPosition(o,e){if(!e||!isSingleLineInsertion(o))return!1;const t=e;return o.every(s=>s.innerChanges.every(a=>r(a)));function r(s){const a=s.originalRange.getStartPosition();return!!(t.isBeforeOrEqual(a)||a.lineNumber<t.lineNumber)}}function isSingleMultiLineInsertion(o){const e=o.flatMap(r=>{var s;return(s=r.innerChanges)!=null?s:[]});if(e.length!==1)return!1;const t=e[0];return!(!t.originalRange.isEmpty()||t.modifiedRange.startLineNumber===t.modifiedRange.endLineNumber)}function isDeletion(o,e,t){return o.map(s=>({original:e.originalText.getValueOfRange(s.originalRange),modified:t.getValueOfRange(s.modifiedRange)})).every(({original:s,modified:a})=>a.trim()===""&&s.length>0&&(s.length>a.length||s.trim()!==""))}function growEditsToEntireWord(o,e){return _growEdits(o,e,t=>/^[a-zA-Z]$/.test(t))}function growEditsUntilWhitespace(o,e){return _growEdits(o,e,t=>!/^\s$/.test(t))}function _growEdits(o,e,t){const r=[];o.sort((a,l)=>Range$2.compareRangesUsingStarts(a.range,l.range));for(const a of o){let l=a.range.startColumn-1,c=a.range.endColumn-2,d="",u="";const g=e.getLineAt(a.range.startLineNumber),f=e.getLineAt(a.range.endLineNumber);if(s(g[l]))for(;s(g[l-1]);)d=g[l-1]+d,l--;if(s(f[c])||c<l)for(;s(f[c+1]);)u+=f[c+1],c++;let m=new TextReplacement(new Range$2(a.range.startLineNumber,l+1,a.range.endLineNumber,c+2),d+a.text+u);r.length>0&&Range$2.areIntersectingOrTouching(r[r.length-1].range,m.range)&&(m=TextReplacement.joinReplacements([r.pop(),m],e)),r.push(m)}function s(a){return a===void 0?!1:t(a)}return r}function getGhostTextTopOffset(o,e){const t=o.model.inlineEdit.edit.replacements;if(t.length!==1)return 0;const r=e.getModel();if(!r)return 0;const s=r.getEOL(),a=t[0];if(a.range.isEmpty()&&a.text.startsWith(s)){const l=e.getLineHeightForPosition(a.range.getStartPosition());return countPrefixRepeats(a.text,s)*l}return 0}function countPrefixRepeats(o,e){if(!e.length)return 0;let t=0,r=0;for(;o.startsWith(e,r);)t++,r+=e.length;return t}var __decorate$1a=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$15=function(o,e){return function(t,r){e(t,r,o)}},Rn;let InlineEditsViewAndDiffProducer=(Rn=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._editor=e,this._edit=t,this._model=r,this._focusIsInMenu=s,this._inlineEdit=derived(this,l=>{var v;const c=this._model.read(l);if(!c)return;const d=this._edit.read(l);if(!d)return;const u=this._editor.getModel();if(!u)return;const g=(v=c.inlineEditState.read(void 0))==null?void 0:v.inlineCompletion.updatedEdit;if(!g)return;const f=g.replacements.map(b=>{const C=Range$2.fromPositions(u.getPositionAt(b.replaceRange.start),u.getPositionAt(b.replaceRange.endExclusive));return new TextReplacement(C,b.newText)}),m=new TextEdit(f),_=new TextModelText(u);return new InlineEditWithChanges(_,m,c.primaryPosition.read(void 0),c.allPositions.read(void 0),d.commands,d.inlineCompletion)}),this._inlineEditModel=derived(this,l=>{const c=this._model.read(l);if(!c)return;const d=this._inlineEdit.read(l);if(!d)return;const u=derived(this,g=>{if(this._editorObs.isFocused.read(g)){if(c.tabShouldJumpToInlineEdit.read(g))return InlineEditTabAction.Jump;if(c.tabShouldAcceptInlineEdit.read(g))return InlineEditTabAction.Accept}return InlineEditTabAction.Inactive});return new InlineEditModel(c,d,u)}),this._inlineEditHost=derived(this,l=>{const c=this._model.read(l);if(c)return new InlineEditHost(c)}),this._ghostTextIndicator=derived(this,l=>{const c=this._model.read(l);if(!c)return;const d=c.inlineCompletionState.read(l);if(!d)return;const u=d.inlineCompletion;if(!u||!u.showInlineEditMenu)return;const g=LineRange.ofLength(d.primaryGhostText.lineNumber,1);return new GhostTextIndicator(this._editor,c,g,u)}),this._editorObs=observableCodeEditor(this._editor),this._register(a.createInstance(InlineEditsView,this._editor,this._inlineEditHost,this._inlineEditModel,this._ghostTextIndicator,this._focusIsInMenu))}},Rn.hot=createHotClass(Rn),Rn);InlineEditsViewAndDiffProducer=__decorate$1a([__param$15(4,IInstantiationService)],InlineEditsViewAndDiffProducer);var __decorate$19=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$14=function(o,e){return function(t,r){e(t,r,o)}};let InlineCompletionsView=class extends Disposable$1{constructor(e,t,r,s){super(),this._editor=e,this._model=t,this._focusIsInMenu=r,this._instantiationService=s,this._ghostTexts=derived(this,a=>{var c;const l=this._model.read(a);return(c=l==null?void 0:l.ghostTexts.read(a))!=null?c:[]}),this._stablizedGhostTexts=convertItemsToStableObservables(this._ghostTexts,this._store),this._editorObs=observableCodeEditor(this._editor),this._ghostTextWidgets=mapObservableArrayCached(this,this._stablizedGhostTexts,(a,l)=>derivedDisposable(c=>this._instantiationService.createInstance(GhostTextView.hot.read(c),this._editor,{ghostText:a,warning:this._model.map((d,u)=>{var f;const g=(f=d==null?void 0:d.warning)==null?void 0:f.read(u);return g?{icon:g.icon}:void 0}),minReservedLineCount:constObservable(0),targetTextModel:this._model.map(d=>d==null?void 0:d.textModel),handleInlineCompletionShown:this._model.map((d,u)=>{var f;const g=(f=d==null?void 0:d.inlineCompletionState.read(u))==null?void 0:f.inlineCompletion;return g?m=>d.handleInlineSuggestionShown(g,InlineCompletionViewKind.GhostText,m):()=>{}})},this._editorObs.getOption(71).map(d=>({syntaxHighlightingEnabled:d.syntaxHighlightingEnabled})),!1,!1)).recomputeInitiallyAndOnChange(l)).recomputeInitiallyAndOnChange(this._store),this._inlineEdit=derived(this,a=>{var l,c;return(c=(l=this._model.read(a))==null?void 0:l.inlineEditState.read(a))==null?void 0:c.inlineEdit}),this._everHadInlineEdit=derivedObservableWithCache(this,(a,l)=>{var c,d,u;return l||!!this._inlineEdit.read(a)||!!((u=(d=(c=this._model.read(a))==null?void 0:c.inlineCompletionState.read(a))==null?void 0:d.inlineCompletion)!=null&&u.showInlineEditMenu)}),this._inlineEditWidget=derivedDisposable(a=>{if(this._everHadInlineEdit.read(a))return this._instantiationService.createInstance(InlineEditsViewAndDiffProducer.hot.read(a),this._editor,this._inlineEdit,this._model,this._focusIsInMenu)}).recomputeInitiallyAndOnChange(this._store),this._fontFamily=this._editorObs.getOption(71).map(a=>a.fontFamily),this._register(createStyleSheetFromObservable(derived(a=>{const l=this._fontFamily.read(a);return"\n.monaco-editor .ghost-text-decoration,\n.monaco-editor .ghost-text-decoration-preview,\n.monaco-editor .ghost-text {\n font-family: ".concat(l,";\n}")}))),this._register(new InlineCompletionsHintsWidget(this._editor,this._model,this._instantiationService))}shouldShowHoverAtViewZone(e){var t,r;return(r=(t=this._ghostTextWidgets.get()[0])==null?void 0:t.get().ownsViewZone(e))!=null?r:!1}};InlineCompletionsView=__decorate$19([__param$14(3,IInstantiationService)],InlineCompletionsView);var __decorate$18=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$13=function(o,e){return function(t,r){e(t,r,o)}},InlineCompletionsController_1,Wt;let InlineCompletionsController=(Wt=class extends Disposable$1{static getInFocusedEditorOrParent(e){const t=getOuterEditor(e);return t?InlineCompletionsController_1.get(t):null}static get(e){return hotClassGetOriginalInstance(e.getContribution(InlineCompletionsController_1.ID))}constructor(e,t,r,s,a,l,c,d,u,g){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=r,this._configurationService=s,this._commandService=a,this._debounceService=l,this._languageFeaturesService=c,this._accessibilitySignalService=d,this._keybindingService=u,this._accessibilityService=g,this._editorObs=observableCodeEditor(this.editor),this._positions=derived(this,b=>{var C,y;return(y=(C=this._editorObs.selections.read(b))==null?void 0:C.map(S=>S.getEndPosition()))!=null?y:[new Position$1(1,1)]}),this._suggestWidgetAdapter=this._register(new ObservableSuggestWidgetAdapter(this._editorObs,b=>{var C;return(C=this.model.get())==null?void 0:C.handleSuggestAccepted(b)},()=>{var b,C;return(C=(b=this.model.get())==null?void 0:b.selectedInlineCompletion.get())==null?void 0:C.getSingleTextEdit()})),this._enabledInConfig=observableFromEvent(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(71).enabled),this._isScreenReaderEnabled=observableFromEvent(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this._editorDictationInProgress=observableFromEvent(this,this._contextKeyService.onDidChangeContext,()=>this._contextKeyService.getContext(this.editor.getDomNode()).getValue("editorDictation.inProgress")===!0),this._enabled=derived(this,b=>this._enabledInConfig.read(b)&&(!this._isScreenReaderEnabled.read(b)||!this._editorDictationInProgress.read(b))),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._focusIsInMenu=observableValue(this,!1),this._focusIsInEditorOrMenu=derived(this,b=>{const C=this._editorObs.isFocused.read(b),y=this._focusIsInMenu.read(b);return C||y}),this._cursorIsInIndentation=derived(this,b=>{const C=this._editorObs.cursorPosition.read(b);if(C===null)return!1;const y=this._editorObs.model.read(b);if(!y)return!1;this._editorObs.versionId.read(b);const S=y.getLineIndentColumn(C.lineNumber);return C.column<=S}),this.model=derivedDisposable(this,b=>{if(this._editorObs.isReadonly.read(b))return;const C=this._editorObs.model.read(b);return C?this._instantiationService.createInstance(InlineCompletionsModel,C,this._suggestWidgetAdapter.selectedItem,this._editorObs.versionId,this._positions,this._debounceValue,this._enabled,this.editor):void 0}).recomputeInitiallyAndOnChange(this._store),this._playAccessibilitySignal=observableSignal(this),this._hideInlineEditOnSelectionChange=this._editorObs.getOption(71).map(b=>!0),this._view=this._register(this._instantiationService.createInstance(InlineCompletionsView,this.editor,this.model,this._focusIsInMenu)),InlineCompletionsController_1._instances.add(this),this._register(toDisposable(()=>InlineCompletionsController_1._instances.delete(this))),this._register(autorun(b=>{var w,E;const C=this.model.read(b);if(!C)return;const y=C.state.read(b);if(!y||!this._focusIsInEditorOrMenu.read(void 0))return;const S=y.kind==="inlineEdit"?y.nextEditUri:void 0;for(const x of InlineCompletionsController_1._instances)x!==this&&(S&&isEqual(S,(w=x.editor.getModel())==null?void 0:w.uri)?(E=x.model.read(void 0))==null||E.trigger():x.reject())})),this._register(autorun(b=>{var S;const C=this.model.read(b),y=(S=this.editor.getModel())==null?void 0:S.uri;!C||!y||b.store.add(C.onDidAccept(()=>{var w,E;for(const x of InlineCompletionsController_1._instances){if(x===this)continue;const L=(w=x.model.read(void 0))==null?void 0:w.state.read(void 0);(L==null?void 0:L.kind)==="inlineEdit"&&isEqual(L.nextEditUri,y)&&((E=x.model.read(void 0))==null||E.stop("automatic"))}}))})),this._register(runOnChange(this._editorObs.onDidType,(b,C)=>{var y;this._enabled.get()&&((y=this.model.get())==null||y.trigger())})),this._register(runOnChange(this._editorObs.onDidPaste,(b,C)=>{var y;this._enabled.get()&&((y=this.model.get())==null||y.trigger())}));const f=new Set([CoreEditingCommands.Tab.id,CoreEditingCommands.DeleteLeft.id,CoreEditingCommands.DeleteRight.id,inlineSuggestCommitId,"acceptSelectedSuggestion",InsertLineAfterAction.ID,InsertLineBeforeAction.ID,FIND_IDS.NextMatchFindAction,...TriggerInlineEditCommandsRegistry.getRegisteredCommands()]);this._register(this._commandService.onDidExecuteCommand(b=>{if(f.has(b.commandId)&&e.hasTextFocus()&&this._enabled.get()){let C=!1;b.commandId===inlineSuggestCommitId&&(C=!0),this._editorObs.forceUpdate(y=>{var S;(S=this.model.get())==null||S.trigger(y,{noDelay:C})})}})),this._register(runOnChange(this._editorObs.selections,(b,C,y)=>{var S,w,E,x;if(y.some(L=>L.reason===3||L.source==="api")){if(!this._hideInlineEditOnSelectionChange.get()&&((w=(S=this.model.get())==null?void 0:S.state.get())==null?void 0:w.kind)==="inlineEdit")return;const L=this.model.get();if(!L)return;((E=L.state.get())==null?void 0:E.kind)==="ghostText"&&((x=this.model.get())==null||x.stop())}})),this._register(autorun(b=>{var S,w;const C=this._focusIsInEditorOrMenu.read(b),y=this.model.read(void 0);if(C){const E=y==null?void 0:y.state.read(void 0);(!E||E.kind!=="inlineEdit"||!E.nextEditUri)&&transaction(x=>{var L;for(const k of InlineCompletionsController_1._instances)k!==this&&((L=k.model.read(void 0))==null||L.stop("automatic",x))});return}this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||e.getOption(71).keepOnBlur||InlineSuggestionHintsContentWidget.dropDownVisible||y&&((w=(S=y.state.read(void 0))==null?void 0:S.inlineCompletion)!=null&&w.isFromExplicitRequest&&y.inlineEditAvailable.read(void 0)||transaction(E=>{y.stop("automatic",E)}))})),this._register(autorun(b=>{var y;const C=(y=this.model.read(b))==null?void 0:y.inlineCompletionState.read(b);C!=null&&C.suggestItem?C.primaryGhostText.lineCount>=2&&this._suggestWidgetAdapter.forceRenderingAbove():this._suggestWidgetAdapter.stopForceRenderingAbove()})),this._register(toDisposable(()=>{this._suggestWidgetAdapter.stopForceRenderingAbove()}));const m=derivedObservableWithCache(this,(b,C)=>{var w;const y=this.model.read(b),S=y==null?void 0:y.state.read(b);return this._suggestWidgetAdapter.selectedItem.get()?C:(w=S==null?void 0:S.inlineCompletion)==null?void 0:w.semanticId});this._register(runOnChangeWithStore(derived(b=>(this._playAccessibilitySignal.read(b),m.read(b),{})),async(b,C,y,S)=>{let w=this.model.get(),E=w==null?void 0:w.state.get();if(!E||!w||(await timeout(50,cancelOnDispose(S)),await waitForState(this._suggestWidgetAdapter.selectedItem,isUndefined$2,()=>!1,cancelOnDispose(S)),w=this.model.get(),E=w==null?void 0:w.state.get(),!E||!w))return;const x=E.kind==="ghostText"?w.textModel.getLineContent(E.primaryGhostText.lineNumber):"";this._accessibilitySignalService.playSignal(E.kind==="ghostText"?AccessibilitySignal.inlineSuggestion:AccessibilitySignal.nextEditSuggestion),this.editor.getOption(12)&&(E.kind==="ghostText"?this._provideScreenReaderUpdate(E.primaryGhostText.renderForScreenReader(x)):this._provideScreenReaderUpdate(""))})),this._register(this._configurationService.onDidChangeConfiguration(b=>{b.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")});const _=new ObservableContextKeyService(this._contextKeyService);this._register(_.bind(InlineCompletionContextKeys.cursorInIndentation,this._cursorIsInIndentation)),this._register(_.bind(InlineCompletionContextKeys.hasSelection,b=>{var C;return!((C=this._editorObs.cursorSelection.read(b))!=null&&C.isEmpty())})),this._register(_.bind(InlineCompletionContextKeys.cursorAtInlineEdit,this.model.map((b,C)=>{var y,S;return(S=(y=b==null?void 0:b.inlineEditState)==null?void 0:y.read(C))==null?void 0:S.cursorAtInlineEdit.read(C)}))),this._register(_.bind(InlineCompletionContextKeys.tabShouldAcceptInlineEdit,this.model.map((b,C)=>!!(b!=null&&b.tabShouldAcceptInlineEdit.read(C))))),this._register(_.bind(InlineCompletionContextKeys.tabShouldJumpToInlineEdit,this.model.map((b,C)=>!!(b!=null&&b.tabShouldJumpToInlineEdit.read(C))))),this._register(_.bind(InlineCompletionContextKeys.inlineEditVisible,b=>{var C;return((C=this.model.read(b))==null?void 0:C.inlineEditState.read(b))!==void 0})),this._register(_.bind(InlineCompletionContextKeys.inlineSuggestionHasIndentation,b=>{var C,y;return(y=(C=this.model.read(b))==null?void 0:C.getIndentationInfo(b))==null?void 0:y.startsWithIndentation})),this._register(_.bind(InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize,b=>{var C,y;return(y=(C=this.model.read(b))==null?void 0:C.getIndentationInfo(b))==null?void 0:y.startsWithIndentationLessThanTabSize})),this._register(_.bind(InlineCompletionContextKeys.suppressSuggestions,b=>{const C=this.model.read(b),y=C==null?void 0:C.inlineCompletionState.read(b);return y!=null&&y.primaryGhostText&&(y!=null&&y.inlineCompletion)?y.inlineCompletion.source.inlineSuggestions.suppressSuggestions:void 0})),this._register(_.bind(InlineCompletionContextKeys.inlineSuggestionVisible,b=>{const C=this.model.read(b),y=C==null?void 0:C.inlineCompletionState.read(b);return!!(y!=null&&y.inlineCompletion)&&(y==null?void 0:y.primaryGhostText)!==void 0&&!(y!=null&&y.primaryGhostText.isEmpty())}));const v=derived(this,b=>{const C=this.model.read(b),y=C==null?void 0:C.inlineCompletionState.read(b),S=y==null?void 0:y.primaryGhostText;return!S||S.isEmpty()?void 0:new Position$1(S.lineNumber,S.parts[0].column)});this._register(_.bind(InlineCompletionContextKeys.cursorBeforeGhostText,b=>{const C=v.read(b);if(!C)return!1;const y=this._editorObs.cursorPosition.read(b);return y?C.equals(y):!1})),this._register(this._instantiationService.createInstance(TextModelChangeRecorder,this.editor))}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}_provideScreenReaderUpdate(e){const t=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),r=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let s;!t&&r&&this.editor.getOption(169)&&(s=localize(1204,"Inspect this in the accessible view ({0})",r.getAriaLabel())),alert(s?e+", "+s:e)}shouldShowHoverAt(e){var r;const t=(r=this.model.get())==null?void 0:r.primaryGhostText.get();return t?t.parts.some(s=>e.containsPosition(new Position$1(t.lineNumber,s.column))):!1}shouldShowHoverAtViewZone(e){return this._view.shouldShowHoverAtViewZone(e)}reject(){transaction(e=>{var r;const t=this.model.get();if(t&&(t.stop("explicitCancel",e),this._focusIsInEditorOrMenu.get()))for(const s of InlineCompletionsController_1._instances)s!==this&&((r=s.model.get())==null||r.stop("automatic",e))})}jump(){const e=this.model.get();e&&e.jump()}},InlineCompletionsController_1=Wt,Wt._instances=new Set,Wt.hot=createHotClass(Wt),Wt.ID="editor.contrib.inlineCompletionsController",Wt);InlineCompletionsController=InlineCompletionsController_1=__decorate$18([__param$13(1,IInstantiationService),__param$13(2,IContextKeyService),__param$13(3,IConfigurationService),__param$13(4,ICommandService),__param$13(5,ILanguageFeatureDebounceService),__param$13(6,ILanguageFeaturesService),__param$13(7,IAccessibilitySignalService),__param$13(8,IKeybindingService),__param$13(9,IAccessibilityService)],InlineCompletionsController);const ss=class ss extends EditorAction{constructor(){super({id:ss.ID,label:localize2(1183,"Show Next Inline Suggestion"),precondition:ContextKeyExpr.and(EditorContextKeys.writable,InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){var s;const r=InlineCompletionsController.get(t);(s=r==null?void 0:r.model.get())==null||s.next()}};ss.ID=showNextInlineSuggestionActionId;let ShowNextInlineSuggestionAction=ss;const as=class as extends EditorAction{constructor(){super({id:as.ID,label:localize2(1184,"Show Previous Inline Suggestion"),precondition:ContextKeyExpr.and(EditorContextKeys.writable,InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){var s;const r=InlineCompletionsController.get(t);(s=r==null?void 0:r.model.get())==null||s.previous()}};as.ID=showPreviousInlineSuggestionActionId;let ShowPreviousInlineSuggestionAction=as;const providerIdSchemaUri="vscode://schemas/inlineCompletionProviderIdArgs";function inlineCompletionProviderGetMatcher(o){const e=[];return o.providerId&&(e.push(o.providerId.toStringWithoutVersion()),e.push(o.providerId.extensionId+":*")),e}const argsValidator=vUnion(vObj({showNoResultNotification:vOptionalProp(vBoolean()),providerId:vOptionalProp(vWithJsonSchemaRef(providerIdSchemaUri,vString())),explicit:vOptionalProp(vBoolean())}),vUndefined());class TriggerInlineSuggestionAction extends EditorAction{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:localize2(1185,"Trigger Inline Suggestion"),precondition:EditorContextKeys.writable,metadata:{description:localize(1172,"Triggers an inline suggestion in the editor."),args:[{name:"args",description:localize(1173,"Options for triggering inline suggestions."),isOptional:!0,schema:argsValidator.getJSONSchema()}]}})}async run(e,t,r){var u;const s=e.get(INotificationService),a=e.get(ILanguageFeaturesService),l=InlineCompletionsController.get(t),c=argsValidator.validateOrThrow(r),d=c!=null&&c.providerId?a.inlineCompletionsProvider.all(t.getModel()).find(g=>inlineCompletionProviderGetMatcher(g).some(f=>f===c.providerId)):void 0;await asyncTransaction(async g=>{var f,m;await((m=l==null?void 0:l.model.get())==null?void 0:m.trigger(g,{provider:d,explicit:(f=c==null?void 0:c.explicit)!=null?f:!0})),l==null||l.playAccessibilitySignal(g)}),c!=null&&c.showNoResultNotification&&((u=l==null?void 0:l.model.get())!=null&&u.state.get()||s.notify({severity:Severity.Info,message:localize(1174,"No inline suggestion is available.")}))}}class AcceptNextWordOfInlineCompletion extends EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:localize2(1186,"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,InlineCompletionContextKeys.cursorBeforeGhostText,CONTEXT_ACCESSIBILITY_MODE_ENABLED.negate())},menuOpts:[{menuId:MenuId.InlineSuggestionToolbar,title:localize(1175,"Accept Word"),group:"primary",order:2}]})}async run(e,t){var s;const r=InlineCompletionsController.get(t);await((s=r==null?void 0:r.model.get())==null?void 0:s.acceptNextWord())}}class AcceptNextLineOfInlineCompletion extends EditorAction{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:localize2(1187,"Accept Next Line Of Inline Suggestion"),precondition:ContextKeyExpr.and(EditorContextKeys.writable,InlineCompletionContextKeys.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:MenuId.InlineSuggestionToolbar,title:localize(1176,"Accept Line"),group:"secondary",order:2}]})}async run(e,t){var s;const r=InlineCompletionsController.get(t);await((s=r==null?void 0:r.model.get())==null?void 0:s.acceptNextLine())}}class AcceptInlineCompletion extends EditorAction{constructor(){super({id:inlineSuggestCommitId,label:localize2(1188,"Accept Inline Suggestion"),precondition:ContextKeyExpr.or(InlineCompletionContextKeys.inlineSuggestionVisible,InlineCompletionContextKeys.inlineEditVisible),menuOpts:[{menuId:MenuId.InlineSuggestionToolbar,title:localize(1177,"Accept"),group:"primary",order:2},{menuId:MenuId.InlineEditsActions,title:localize(1178,"Accept"),group:"primary",order:2}],kbOpts:[{primary:2,weight:200,kbExpr:ContextKeyExpr.or(ContextKeyExpr.and(InlineCompletionContextKeys.inlineSuggestionVisible,EditorContextKeys.tabMovesFocus.toNegated(),Context$2.Visible.toNegated(),EditorContextKeys.hoverFocused.toNegated(),InlineCompletionContextKeys.hasSelection.toNegated(),InlineCompletionContextKeys.inlineSuggestionHasIndentationLessThanTabSize),ContextKeyExpr.and(InlineCompletionContextKeys.inlineEditVisible,EditorContextKeys.tabMovesFocus.toNegated(),Context$2.Visible.toNegated(),EditorContextKeys.hoverFocused.toNegated(),InlineCompletionContextKeys.tabShouldAcceptInlineEdit))}]})}async run(e,t){var s;const r=InlineCompletionsController.getInFocusedEditorOrParent(e);r&&((s=r.model.get())==null||s.accept(r.editor),r.editor.focus())}}KeybindingsRegistry.registerKeybindingRule({id:inlineSuggestCommitId,weight:202,primary:2,when:ContextKeyExpr.and(InlineCompletionContextKeys.inInlineEditsPreviewEditor)});class JumpToNextInlineEdit extends EditorAction{constructor(){super({id:jumpToNextInlineEditId,label:localize2(1189,"Jump to next inline edit"),precondition:InlineCompletionContextKeys.inlineEditVisible,menuOpts:[{menuId:MenuId.InlineEditsActions,title:localize(1179,"Jump"),group:"primary",order:1,when:InlineCompletionContextKeys.cursorAtInlineEdit.toNegated()}],kbOpts:{primary:2,weight:201,kbExpr:ContextKeyExpr.and(InlineCompletionContextKeys.inlineEditVisible,EditorContextKeys.tabMovesFocus.toNegated(),Context$2.Visible.toNegated(),EditorContextKeys.hoverFocused.toNegated(),InlineCompletionContextKeys.tabShouldJumpToInlineEdit)}})}async run(e,t){const r=InlineCompletionsController.get(t);r&&r.jump()}}const ls=class ls extends EditorAction{constructor(){super({id:ls.ID,label:localize2(1190,"Hide Inline Suggestion"),precondition:ContextKeyExpr.or(InlineCompletionContextKeys.inlineSuggestionVisible,InlineCompletionContextKeys.inlineEditVisible),kbOpts:{weight:190,primary:9},menuOpts:[{menuId:MenuId.InlineEditsActions,title:localize(1180,"Reject"),group:"primary",order:3}]})}async run(e,t){const r=InlineCompletionsController.getInFocusedEditorOrParent(e);transaction(s=>{var a;(a=r==null?void 0:r.model.get())==null||a.stop("explicitCancel",s)}),r==null||r.editor.focus()}};ls.ID=hideInlineCompletionId;let HideInlineCompletion=ls;const cs=class cs extends EditorAction{constructor(){super({id:cs.ID,label:localize2(1191,"Toggle Inline Suggestions Show Collapsed"),precondition:ContextKeyExpr.true()})}async run(e,t){const r=e.get(IConfigurationService),s=r.getValue("editor.inlineSuggest.edits.showCollapsed");r.updateValue("editor.inlineSuggest.edits.showCollapsed",!s)}};cs.ID=toggleShowCollapsedId;let ToggleInlineCompletionShowCollapsed=cs;KeybindingsRegistry.registerKeybindingRule({id:HideInlineCompletion.ID,weight:-1,primary:9,secondary:[1033],when:ContextKeyExpr.and(InlineCompletionContextKeys.inInlineEditsPreviewEditor)});const ds=class ds extends Action2{constructor(){super({id:ds.ID,title:localize(1181,"Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:MenuId.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:ContextKeyExpr.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(e){const t=e.get(IConfigurationService),s=t.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";t.updateValue("editor.inlineSuggest.showToolbar",s)}};ds.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";let ToggleAlwaysShowInlineSuggestionToolbar=ds;class DevExtractReproSample extends EditorAction{constructor(){super({id:"editor.action.inlineSuggest.dev.extractRepro",label:localize(1182,"Developer: Extract Inline Suggest State"),alias:"Developer: Inline Suggest Extract Repro",precondition:ContextKeyExpr.or(InlineCompletionContextKeys.inlineEditVisible,InlineCompletionContextKeys.inlineSuggestionVisible)})}async run(e,t){const r=e.get(IClipboardService),s=InlineCompletionsController.get(t),a=s==null?void 0:s.model.get();if(!a)return;const l=a.extractReproSample(),d=splitLines(JSON.stringify({inlineCompletion:l.inlineCompletion},null,4)).map(g=>"// "+g).join("\n"),u="".concat(l.documentValue,"\n\n// <json>\n").concat(d,"\n// </json>\n");return await r.writeText(u),{reproCase:u}}}var __decorate$17=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$12=function(o,e){return function(t,r){e(t,r,o)}};class InlineCompletionsHover{constructor(e,t,r){this.owner=e,this.range=t,this.controller=r}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let InlineCompletionsHoverParticipant=class{constructor(e,t,r,s,a){this._editor=e,this.accessibilityService=t,this._instantiationService=r,this._telemetryService=s,this._markdownRendererService=a,this.hoverOrdinal=4}suggestHoverAnchor(e){const t=InlineCompletionsController.get(this._editor);if(!t)return null;const r=e.target;if(r.type===8){const s=r.detail;if(t.shouldShowHoverAtViewZone(s.viewZoneId))return new HoverForeignElementAnchor(1e3,this,Range$2.fromPositions(this._editor.getModel().validatePosition(s.positionBefore||s.position)),e.event.posx,e.event.posy,!1)}if(r.type===7&&t.shouldShowHoverAt(r.range))return new HoverForeignElementAnchor(1e3,this,r.range,e.event.posx,e.event.posy,!1);if(r.type===6&&r.detail.mightBeForeignElement&&t.shouldShowHoverAt(r.range))return new HoverForeignElementAnchor(1e3,this,r.range,e.event.posx,e.event.posy,!1);if(r.type===9&&r.element){const s=GhostTextView.getWarningWidgetContext(r.element);if(s&&t.shouldShowHoverAt(s.range))return new HoverForeignElementAnchor(1e3,this,s.range,e.event.posx,e.event.posy,!1)}return null}computeSync(e,t){if(this._editor.getOption(71).showToolbar!=="onHover")return[];const r=InlineCompletionsController.get(this._editor);return r&&r.shouldShowHoverAt(e.range)?[new InlineCompletionsHover(this,e.range,r)]:[]}renderHoverParts(e,t){const r=new DisposableStore$1,s=t[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(12)&&r.add(this.renderScreenReaderText(e,s));const a=s.controller.model.get(),l=document.createElement("div");e.fragment.appendChild(l),r.add(autorunWithStore((d,u)=>{const g=u.add(this._instantiationService.createInstance(InlineSuggestionHintsContentWidget.hot.read(d),this._editor,!1,constObservable(null),a.selectedInlineCompletionIndex,a.inlineCompletionsCount,a.activeCommands,a.warning,()=>{e.onContentsChanged()}));l.replaceChildren(g.getDomNode())})),a.triggerExplicitly();const c={hoverPart:s,hoverElement:l,dispose(){r.dispose()}};return new RenderedHoverParts([c])}getAccessibleContent(e){return localize(1205,"There are inline completions here")}renderScreenReaderText(e,t){const r=new DisposableStore$1,s=$$m,a=s("div.hover-row.markdown-hover"),l=append$2(a,s("div.hover-contents",{"aria-live":"assertive"})),c=d=>{const u=localize(1206,"Suggestion:"),g=r.add(this._markdownRendererService.render(new MarkdownString().appendText(u).appendCodeblock("text",d),{context:this._editor,asyncRenderCallback:()=>{l.className="hover-contents code-hover-contents",e.onContentsChanged()}}));l.replaceChildren(g.element)};return r.add(autorun(d=>{var g;const u=(g=t.controller.model.read(d))==null?void 0:g.primaryGhostText.read(d);if(u){const f=this._editor.getModel().getLineContent(u.lineNumber);c(u.renderForScreenReader(f))}else reset(l)})),e.fragment.appendChild(a),r}};InlineCompletionsHoverParticipant=__decorate$17([__param$12(1,IAccessibilityService),__param$12(2,IInstantiationService),__param$12(3,ITelemetryService),__param$12(4,IMarkdownRendererService)],InlineCompletionsHoverParticipant);class InlineCompletionsAccessibleView{}registerEditorContribution(InlineCompletionsController.ID,wrapInHotClass1(InlineCompletionsController.hot),3);registerEditorAction(TriggerInlineSuggestionAction);registerEditorAction(ShowNextInlineSuggestionAction);registerEditorAction(ShowPreviousInlineSuggestionAction);registerEditorAction(AcceptNextWordOfInlineCompletion);registerEditorAction(AcceptNextLineOfInlineCompletion);registerEditorAction(AcceptInlineCompletion);registerEditorAction(ToggleInlineCompletionShowCollapsed);registerEditorAction(HideInlineCompletion);registerEditorAction(JumpToNextInlineEdit);registerAction2(ToggleAlwaysShowInlineSuggestionToolbar);registerEditorAction(DevExtractReproSample);registerAction2(SnoozeInlineCompletion);registerAction2(CancelSnoozeInlineCompletion);HoverParticipantRegistry.register(InlineCompletionsHoverParticipant);AccessibleViewRegistry.register(new InlineCompletionsAccessibleView);var __decorate$16=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$11=function(o,e){return function(t,r){e(t,r,o)}},GotoDefinitionAtPositionEditorContribution_1,ki;let GotoDefinitionAtPositionEditorContribution=(ki=class{constructor(e,t,r,s){this.textModelResolverService=t,this.languageService=r,this.languageFeaturesService=s,this.toUnhook=new DisposableStore$1,this.toUnhookForKeyboard=new DisposableStore$1,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const a=new ClickLinkGesture(e);this.toUnhook.add(a),this.toUnhook.add(a.onMouseMoveOrRelevantKeyDown(([l,c])=>{this.startFindDefinitionFromMouse(l,c!=null?c:void 0)})),this.toUnhook.add(a.onExecute(l=>{this.isEnabled(l)&&this.gotoDefinition(l.target.position,l.hasSideBySideModifier).catch(c=>{onUnexpectedError(c)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(a.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(GotoDefinitionAtPositionEditorContribution_1.ID)}async startFindDefinitionFromCursor(e){await 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 r=e.target.position;this.startFindDefinition(r)}async startFindDefinition(e){var l;this.toUnhookForKeyboard.clear();const t=e?(l=this.editor.getModel())==null?void 0:l.getWordAtPosition(e):null;if(!t){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===t.startColumn&&this.currentWordAtPosition.endColumn===t.endColumn&&this.currentWordAtPosition.word===t.word)return;this.currentWordAtPosition=t;const r=new EditorState$1(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=createCancelablePromise(c=>this.findDefinition(e,c));let s;try{s=await this.previousPromise}catch(c){onUnexpectedError(c);return}if(!s||!s.length||!r.validate(this.editor)){this.removeLinkDecorations();return}const a=s[0].originSelectionRange?Range$2.lift(s[0].originSelectionRange):new Range$2(e.lineNumber,t.startColumn,e.lineNumber,t.endColumn);if(s.length>1){let c=a;for(const{originSelectionRange:d}of s)d&&(c=Range$2.plusRange(c,d));this.addDecoration(c,new MarkdownString().appendText(localize(1077,"Click to show {0} definitions.",s.length)))}else{const c=s[0];return c.uri?this.textModelResolverService.createModelReference(c.uri).then(d=>{if(!d.object||!d.object.textEditorModel){d.dispose();return}const{object:{textEditorModel:u}}=d,{startLineNumber:g}=c.range;if(g<1||g>u.getLineCount()){d.dispose();return}const f=this.getPreviewValue(u,g,c),m=this.languageService.guessLanguageIdByFilepathOrFirstLine(u.uri);this.addDecoration(a,f?new MarkdownString().appendCodeblock(m||"",f):void 0),d.dispose()}):void 0}}getPreviewValue(e,t,r){let s=r.range;return s.endLineNumber-s.startLineNumber>=GotoDefinitionAtPositionEditorContribution_1.MAX_SOURCE_PREVIEW_LINES&&(s=this.getPreviewRangeBasedOnIndentation(e,t)),s=e.validateRange(s),this.stripIndentationFromPreviewRange(e,t,s)}stripIndentationFromPreviewRange(e,t,r){let a=e.getLineFirstNonWhitespaceColumn(t);for(let c=t+1;c<r.endLineNumber;c++){const d=e.getLineFirstNonWhitespaceColumn(c);a=Math.min(a,d)}return e.getValueInRange(r).replace(new RegExp("^\\s{".concat(a-1,"}"),"gm"),"").trim()}getPreviewRangeBasedOnIndentation(e,t){const r=e.getLineFirstNonWhitespaceColumn(t),s=Math.min(e.getLineCount(),t+GotoDefinitionAtPositionEditorContribution_1.MAX_SOURCE_PREVIEW_LINES);let a=t+1;for(;a<s;a++){const l=e.getLineFirstNonWhitespaceColumn(a);if(r===l)break}return new Range$2(t,1,a+1,1)}addDecoration(e,t){const r={range:e,options:{description:"goto-definition-link",inlineClassName:"goto-definition-link",hoverMessage:t}};this.linkDecorations.set([r])}removeLinkDecorations(){this.linkDecorations.clear()}isEnabled(e,t){var r;return this.editor.hasModel()&&e.isLeftClick&&e.isNoneOrSingleMouseDown&&e.target.type===6&&!(((r=e.target.detail.injectedText)==null?void 0:r.options)instanceof ModelDecorationInjectedTextOptions)&&(e.hasTriggerModifier||(t?t.keyCodeIsTriggerKey:!1))&&this.languageFeaturesService.definitionProvider.has(this.editor.getModel())}findDefinition(e,t){const r=this.editor.getModel();return r?getDefinitionsAtPosition(this.languageFeaturesService.definitionProvider,r,e,!1,t):Promise.resolve(null)}async gotoDefinition(e,t){return this.editor.setPosition(e),this.editor.invokeWithinContext(r=>{const s=!t&&this.editor.getOption(101)&&!this.isInPeekEditor(r);return new DefinitionAction({openToSide:t,openInPeek:s,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(r)})}isInPeekEditor(e){const t=e.get(IContextKeyService);return PeekContext.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}},GotoDefinitionAtPositionEditorContribution_1=ki,ki.ID="editor.contrib.gotodefinitionatposition",ki.MAX_SOURCE_PREVIEW_LINES=8,ki);GotoDefinitionAtPositionEditorContribution=GotoDefinitionAtPositionEditorContribution_1=__decorate$16([__param$11(1,ITextModelService),__param$11(2,ILanguageService),__param$11(3,ILanguageFeaturesService)],GotoDefinitionAtPositionEditorContribution);registerEditorContribution(GotoDefinitionAtPositionEditorContribution.ID,GotoDefinitionAtPositionEditorContribution,2);class DebugEditorGpuRendererAction extends EditorAction{constructor(){super({id:"editor.action.debugEditorGpuRenderer",label:localize2(1101,"Developer: Debug Editor GPU Renderer"),precondition:ContextKeyExpr.true()})}async run(e,t){const r=e.get(IInstantiationService),a=await e.get(IQuickInputService).pick([{label:localize(1098,"Log Texture Atlas Stats"),id:"logTextureAtlasStats"},{label:localize(1099,"Save Texture Atlas"),id:"saveTextureAtlas"},{label:localize(1100,"Draw Glyph"),id:"drawGlyph"}],{canPickMany:!1});if(a)switch(a.id){case"logTextureAtlasStats":r.invokeFunction(l=>{const c=l.get(ILogService),d=ViewGpuContext.atlas;if(!ViewGpuContext.atlas){c.error("No texture atlas found");return}const u=d.getStats();c.info(["Texture atlas stats",...u].join("\n\n"))});break;case"saveTextureAtlas":r.invokeFunction(async l=>{const c=l.get(IWorkspaceContextService),d=l.get(IFileService),u=c.getWorkspace().folders;if(u.length>0){const g=ViewGpuContext.atlas,f=[];for(const[m,_]of g.pages.entries())f.push(d.writeFile(URI.joinPath(u[0].uri,"textureAtlasPage".concat(m,"_actual.png")),VSBuffer.wrap(new Uint8Array(await(await _.source.convertToBlob()).arrayBuffer()))),d.writeFile(URI.joinPath(u[0].uri,"textureAtlasPage".concat(m,"_usage.png")),VSBuffer.wrap(new Uint8Array(await(await _.getUsagePreview()).arrayBuffer()))));await Promise.all(f)}});break;case"drawGlyph":r.invokeFunction(async l=>{var T,M,R;const c=l.get(IConfigurationService),d=l.get(IFileService),u=l.get(IQuickInputService),f=l.get(IWorkspaceContextService).getWorkspace().folders;if(f.length===0)return;const m=ViewGpuContext.atlas,_=c.getValue("editor.fontFamily"),v=c.getValue("editor.fontSize"),b=new GlyphRasterizer(v,_,getActiveWindow().devicePixelRatio,ViewGpuContext.decorationStyleCache);let C=await u.input({prompt:"Enter a character to draw (prefix with 0x for code point))"});if(!C)return;const y=(M=(T=C.match(new RegExp("0x(?<codePoint>[0-9a-f]+)","i")))==null?void 0:T.groups)==null?void 0:M.codePoint;y!==void 0&&(C=String.fromCodePoint(parseInt(y,16)));const S=0,E=m.getGlyph(b,C,S,0,0);if(!E)return;const x=(R=m.pages[E.pageIndex].source.getContext("2d"))==null?void 0:R.getImageData(E.x,E.y,E.w,E.h);if(!x)return;const L=new OffscreenCanvas(x.width,x.height);ensureNonNullable(L.getContext("2d")).putImageData(x,0,0);const D=await L.convertToBlob({type:"image/png"}),I=URI.joinPath(f[0].uri,"glyph_".concat(C,"_").concat(S,"_").concat(v,"px_").concat(_.replaceAll(/[,\\\/\.'\s]/g,"_"),".png"));await d.writeFile(I,VSBuffer.wrap(new Uint8Array(await D.arrayBuffer())))});break}}}registerEditorAction(DebugEditorGpuRendererAction);var HoverFocusBehavior;(function(o){o.NoAutoFocus="noAutoFocus",o.FocusIfVisible="focusIfVisible",o.AutoFocusImmediately="autoFocusImmediately"})(HoverFocusBehavior||(HoverFocusBehavior={}));class ShowOrFocusHoverAction extends EditorAction{constructor(){super({id:SHOW_OR_FOCUS_HOVER_ACTION_ID,label:localize2(1107,"Show or Focus Hover"),metadata:{description:localize2(1108,"Show or focus the editor hover which shows documentation, references, and other content for a symbol at the current cursor position."),args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[HoverFocusBehavior.NoAutoFocus,HoverFocusBehavior.FocusIfVisible,HoverFocusBehavior.AutoFocusImmediately],enumDescriptions:[localize(1104,"The hover will not automatically take focus."),localize(1105,"The hover will take focus only if it is already visible."),localize(1106,"The hover will automatically take focus when it appears.")],default:HoverFocusBehavior.FocusIfVisible}}}}]},precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:KeyChord(2089,2087),weight:100}})}run(e,t,r){if(!t.hasModel())return;const s=ContentHoverController.get(t);if(!s)return;const a=r==null?void 0:r.focus;let l=HoverFocusBehavior.FocusIfVisible;Object.values(HoverFocusBehavior).includes(a)?l=a:typeof a=="boolean"&&a&&(l=HoverFocusBehavior.AutoFocusImmediately);const c=u=>{const g=t.getPosition(),f=new Range$2(g.lineNumber,g.column,g.lineNumber,g.column);s.showContentHover(f,1,2,u)},d=t.getOption(2)===2;s.isHoverVisible?l!==HoverFocusBehavior.NoAutoFocus?s.focus():c(d):c(d||l===HoverFocusBehavior.AutoFocusImmediately)}}class ShowDefinitionPreviewHoverAction extends EditorAction{constructor(){super({id:SHOW_DEFINITION_PREVIEW_HOVER_ACTION_ID,label:localize2(1109,"Show Definition Preview Hover"),precondition:void 0,metadata:{description:localize2(1110,"Show the definition preview hover in the editor.")}})}run(e,t){const r=ContentHoverController.get(t);if(!r)return;const s=t.getPosition();if(!s)return;const a=new Range$2(s.lineNumber,s.column,s.lineNumber,s.column),l=GotoDefinitionAtPositionEditorContribution.get(t);if(!l)return;l.startFindDefinitionFromCursor(s).then(()=>{r.showContentHover(a,1,2,!0)})}}class HideContentHoverAction extends EditorAction{constructor(){super({id:HIDE_HOVER_ACTION_ID,label:localize2(1111,"Hide Hover"),alias:"Hide Content Hover",precondition:void 0})}run(e,t){var r;(r=ContentHoverController.get(t))==null||r.hideContentHover()}}class ScrollUpHoverAction extends EditorAction{constructor(){super({id:SCROLL_UP_HOVER_ACTION_ID,label:localize2(1112,"Scroll Up Hover"),precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:16,weight:100},metadata:{description:localize2(1113,"Scroll up the editor hover.")}})}run(e,t){const r=ContentHoverController.get(t);r&&r.scrollUp()}}class ScrollDownHoverAction extends EditorAction{constructor(){super({id:SCROLL_DOWN_HOVER_ACTION_ID,label:localize2(1114,"Scroll Down Hover"),precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:18,weight:100},metadata:{description:localize2(1115,"Scroll down the editor hover.")}})}run(e,t){const r=ContentHoverController.get(t);r&&r.scrollDown()}}class ScrollLeftHoverAction extends EditorAction{constructor(){super({id:SCROLL_LEFT_HOVER_ACTION_ID,label:localize2(1116,"Scroll Left Hover"),precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:15,weight:100},metadata:{description:localize2(1117,"Scroll left the editor hover.")}})}run(e,t){const r=ContentHoverController.get(t);r&&r.scrollLeft()}}class ScrollRightHoverAction extends EditorAction{constructor(){super({id:SCROLL_RIGHT_HOVER_ACTION_ID,label:localize2(1118,"Scroll Right Hover"),precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:17,weight:100},metadata:{description:localize2(1119,"Scroll right the editor hover.")}})}run(e,t){const r=ContentHoverController.get(t);r&&r.scrollRight()}}class PageUpHoverAction extends EditorAction{constructor(){super({id:PAGE_UP_HOVER_ACTION_ID,label:localize2(1120,"Page Up Hover"),precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:11,secondary:[528],weight:100},metadata:{description:localize2(1121,"Page up the editor hover.")}})}run(e,t){const r=ContentHoverController.get(t);r&&r.pageUp()}}class PageDownHoverAction extends EditorAction{constructor(){super({id:PAGE_DOWN_HOVER_ACTION_ID,label:localize2(1122,"Page Down Hover"),precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:12,secondary:[530],weight:100},metadata:{description:localize2(1123,"Page down the editor hover.")}})}run(e,t){const r=ContentHoverController.get(t);r&&r.pageDown()}}class GoToTopHoverAction extends EditorAction{constructor(){super({id:GO_TO_TOP_HOVER_ACTION_ID,label:localize2(1124,"Go To Top Hover"),precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:14,secondary:[2064],weight:100},metadata:{description:localize2(1125,"Go to the top of the editor hover.")}})}run(e,t){const r=ContentHoverController.get(t);r&&r.goToTop()}}class GoToBottomHoverAction extends EditorAction{constructor(){super({id:GO_TO_BOTTOM_HOVER_ACTION_ID,label:localize2(1126,"Go To Bottom Hover"),precondition:EditorContextKeys.hoverFocused,kbOpts:{kbExpr:EditorContextKeys.hoverFocused,primary:13,secondary:[2066],weight:100},metadata:{description:localize2(1127,"Go to the bottom of the editor hover.")}})}run(e,t){const r=ContentHoverController.get(t);r&&r.goToBottom()}}class IncreaseHoverVerbosityLevel extends EditorAction{constructor(){super({id:INCREASE_HOVER_VERBOSITY_ACTION_ID,label:INCREASE_HOVER_VERBOSITY_ACTION_LABEL,alias:"Increase Hover Verbosity Level",precondition:EditorContextKeys.hoverVisible})}run(e,t,r){const s=ContentHoverController.get(t);if(!s)return;const a=(r==null?void 0:r.index)!==void 0?r.index:s.focusedHoverPartIndex();s.updateHoverVerbosityLevel(HoverVerbosityAction$1.Increase,a,r==null?void 0:r.focus)}}class DecreaseHoverVerbosityLevel extends EditorAction{constructor(){super({id:DECREASE_HOVER_VERBOSITY_ACTION_ID,label:DECREASE_HOVER_VERBOSITY_ACTION_LABEL,alias:"Decrease Hover Verbosity Level",precondition:EditorContextKeys.hoverVisible})}run(e,t,r){var l;const s=ContentHoverController.get(t);if(!s)return;const a=(r==null?void 0:r.index)!==void 0?r.index:s.focusedHoverPartIndex();(l=ContentHoverController.get(t))==null||l.updateHoverVerbosityLevel(HoverVerbosityAction$1.Decrease,a,r==null?void 0:r.focus)}}class GlyphHoverComputer{constructor(e){this._editor=e}computeSync(e){var l,c;const t=d=>({value:d}),r=this._editor.getLineDecorations(e.lineNumber),s=[],a=e.laneOrLine==="lineNo";if(!r)return s;for(const d of r){const u=(c=(l=d.options.glyphMargin)==null?void 0:l.position)!=null?c:GlyphMarginLane$1.Center;if(!a&&u!==e.laneOrLine)continue;const g=a?d.options.lineNumberHoverMessage:d.options.glyphMarginHoverMessage;!g||isEmptyMarkdownString(g)||s.push(...asArray(g).map(t))}return s}}var __decorate$15=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$10=function(o,e){return function(t,r){e(t,r,o)}},GlyphHoverWidget_1;const $$8=$$m;var Nn;let GlyphHoverWidget=(Nn=class extends Disposable$1{constructor(e,t){super(),this._markdownRendererService=t,this.allowEditorOverflow=!0,this._renderDisposeables=this._register(new DisposableStore$1),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new HoverWidget$1(!0)),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._hoverOperation=this._register(new HoverOperation(this._editor,new GlyphHoverComputer(this._editor))),this._register(this._hoverOperation.onResult(r=>this._withResult(r))),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(59)&&this._updateFont()})),this._register(addStandardDisposableListener(this._hover.containerDomNode,"mouseleave",r=>{this._onMouseLeave(r)})),this._editor.addOverlayWidget(this)}dispose(){this._hoverComputerOptions=void 0,this._editor.removeOverlayWidget(this),super.dispose()}getId(){return GlyphHoverWidget_1.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._hoverComputerOptions&&(this._hoverOperation.cancel(),this._hoverOperation.start(0,this._hoverComputerOptions))}showsOrWillShow(e){const t=e.target;return t.type===2&&t.detail.glyphMarginLane?(this._startShowingAt(t.position.lineNumber,t.detail.glyphMarginLane),!0):t.type===3?(this._startShowingAt(t.position.lineNumber,"lineNo"),!0):!1}_startShowingAt(e,t){this._hoverComputerOptions&&this._hoverComputerOptions.lineNumber===e&&this._hoverComputerOptions.laneOrLine===t||(this._hoverOperation.cancel(),this.hide(),this._hoverComputerOptions={lineNumber:e,laneOrLine:t},this._hoverOperation.start(0,this._hoverComputerOptions))}hide(){this._hoverComputerOptions=void 0,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e.value,this._messages.length>0?this._renderMessages(e.options.lineNumber,e.options.laneOrLine,this._messages):this.hide()}_renderMessages(e,t,r){this._renderDisposeables.clear();const s=document.createDocumentFragment();for(const a of r){const l=$$8("div.hover-row.markdown-hover"),c=append$2(l,$$8("div.hover-contents")),d=this._renderDisposeables.add(this._markdownRendererService.render(a.value,{context:this._editor}));c.appendChild(d.element),s.appendChild(l)}this._updateContents(s),this._showAt(e,t)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e,t){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const r=this._editor.getLayoutInfo(),s=this._editor.getTopForLineNumber(e),a=this._editor.getScrollTop(),l=this._editor.getOption(75),c=this._hover.containerDomNode.clientHeight,d=s-a-(c-l)/2,u=r.glyphMarginLeft+r.glyphMarginWidth+(t==="lineNo"?r.lineNumbersWidth:0),f=r.height-c,m=Math.max(0,Math.min(Math.round(d),f));if(this._editor.getOption(51)){const v=this._editor.getDomNode();if(v){const b=getDomNodePagePosition(v);this._hover.containerDomNode.style.position="fixed",this._hover.containerDomNode.style.left="".concat(b.left+u,"px"),this._hover.containerDomNode.style.top="".concat(b.top+m,"px")}}else this._hover.containerDomNode.style.position="absolute",this._hover.containerDomNode.style.left="".concat(u,"px"),this._hover.containerDomNode.style.top="".concat(m,"px");this._hover.containerDomNode.style.zIndex="11"}_onMouseLeave(e){const t=this._editor.getDomNode();(!t||!isMousePositionWithinElement(t,e.x,e.y))&&this.hide()}},GlyphHoverWidget_1=Nn,Nn.ID="editor.contrib.modesGlyphHoverWidget",Nn);GlyphHoverWidget=GlyphHoverWidget_1=__decorate$15([__param$10(1,IMarkdownRendererService)],GlyphHoverWidget);var __decorate$14=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$$=function(o,e){return function(t,r){e(t,r,o)}},Sr;let GlyphHoverController=(Sr=class extends Disposable$1{constructor(e,t){super(),this._editor=e,this._instantiationService=t,this.shouldKeepOpenOnEditorMouseMoveOrLeave=!1,this._listenersStore=new DisposableStore$1,this._hoverState={mouseDown:!1},this._reactToEditorMouseMoveRunner=this._register(new RunOnceScheduler(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(69)&&(this._unhookListeners(),this._hookListeners())}))}_hookListeners(){const e=this._editor.getOption(69);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.hidingDelay},e.enabled?(this._listenersStore.add(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))):(this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))),this._listenersStore.add(this._editor.onMouseLeave(t=>this._onEditorMouseLeave(t))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this.hideGlyphHover()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(t=>this._onEditorScrollChanged(t)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this.hideGlyphHover()}_onEditorMouseDown(e){this._hoverState.mouseDown=!0,!this._isMouseOnGlyphHoverWidget(e)&&this.hideGlyphHover()}_isMouseOnGlyphHoverWidget(e){var r;const t=(r=this._glyphWidget)==null?void 0:r.getDomNode();return t?isMousePositionWithinElement(t,e.event.posx,e.event.posy):!1}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){this.shouldKeepOpenOnEditorMouseMoveOrLeave||(this._cancelScheduler(),this._isMouseOnGlyphHoverWidget(e))||this.hideGlyphHover()}_shouldNotRecomputeCurrentHoverWidget(e){const t=this._hoverSettings.sticky,r=this._isMouseOnGlyphHoverWidget(e);return t&&r}_onEditorMouseMove(e){if(this.shouldKeepOpenOnEditorMouseMoveOrLeave)return;if(this._mouseMoveEvent=e,this._shouldNotRecomputeCurrentHoverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){!e||this._tryShowHoverWidget(e)||this.hideGlyphHover()}_tryShowHoverWidget(e){return this._getOrCreateGlyphWidget().showsOrWillShow(e)}_onKeyDown(e){this._editor.hasModel()&&(e.keyCode===5||e.keyCode===6||e.keyCode===57||e.keyCode===4||this.hideGlyphHover())}hideGlyphHover(){var e;(e=this._glyphWidget)==null||e.hide()}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=this._instantiationService.createInstance(GlyphHoverWidget,this._editor)),this._glyphWidget}dispose(){var e;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(e=this._glyphWidget)==null||e.dispose()}},Sr.ID="editor.contrib.marginHover",Sr);GlyphHoverController=__decorate$14([__param$$(1,IInstantiationService)],GlyphHoverController);class HoverAccessibleView{}class HoverAccessibilityHelp{}class ExtHoverAccessibleView{}registerEditorContribution(ContentHoverController.ID,ContentHoverController,2);registerEditorContribution(GlyphHoverController.ID,GlyphHoverController,2);registerEditorAction(ShowOrFocusHoverAction);registerEditorAction(ShowDefinitionPreviewHoverAction);registerEditorAction(HideContentHoverAction);registerEditorAction(ScrollUpHoverAction);registerEditorAction(ScrollDownHoverAction);registerEditorAction(ScrollLeftHoverAction);registerEditorAction(ScrollRightHoverAction);registerEditorAction(PageUpHoverAction);registerEditorAction(PageDownHoverAction);registerEditorAction(GoToTopHoverAction);registerEditorAction(GoToBottomHoverAction);registerEditorAction(IncreaseHoverVerbosityLevel);registerEditorAction(DecreaseHoverVerbosityLevel);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 ".concat(t.transparent(.5),"; }")),e.addRule(".monaco-editor .monaco-hover hr { border-top: 1px solid ".concat(t.transparent(.5),"; }")),e.addRule(".monaco-editor .monaco-hover hr { border-bottom: 0px solid ".concat(t.transparent(.5),"; }")))});AccessibleViewRegistry.register(new HoverAccessibleView);AccessibleViewRegistry.register(new HoverAccessibilityHelp);AccessibleViewRegistry.register(new ExtHoverAccessibleView);function getReindentEditOperations(o,e,t,r){if(o.getLineCount()===1&&o.getLineMaxColumn(1)===1)return[];const s=e.getLanguageConfiguration(o.getLanguageId()).indentRulesSupport;if(!s)return[];const a=new ProcessedIndentRulesSupport(o,s,e);for(r=Math.min(r,o.getLineCount());t<=r&&a.shouldIgnore(t);)t++;if(t>r-1)return[];const{tabSize:l,indentSize:c,insertSpaces:d}=o.getOptions(),u=(b,C)=>(C=C||1,ShiftCommand.shiftIndent(b,b.length+C,l,c,d)),g=(b,C)=>(C=C||1,ShiftCommand.unshiftIndent(b,b.length+C,l,c,d)),f=[],m=o.getLineContent(t);let _=getLeadingWhitespace(m),v=_;a.shouldIncrease(t)?(v=u(v),_=u(_)):a.shouldIndentNextLine(t)&&(v=u(v)),t++;for(let b=t;b<=r;b++){if(doesLineStartWithString(o,b))continue;const C=o.getLineContent(b),y=getLeadingWhitespace(C),S=v;a.shouldDecrease(b,S)&&(v=g(v),_=g(_)),y!==v&&f.push(EditOperation.replaceMove(new Selection$1(b,1,b,y.length+1),normalizeIndentation(v,c,d))),!a.shouldIgnore(b)&&(a.shouldIncrease(b,S)?(_=u(_),v=_):a.shouldIndentNextLine(b,S)?v=u(v):v=_)}return f}function doesLineStartWithString(o,e){return o.tokenization.isCheapToTokenize(e)?o.tokenization.getLineTokens(e).getStandardTokenType(0)===2:!1}var __decorate$13=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$_=function(o,e){return function(t,r){e(t,r,o)}};const us=class us extends EditorAction{constructor(){super({id:us.ID,label:localize2(1148,"Convert Indentation to Spaces"),precondition:EditorContextKeys.writable,metadata:{description:localize2(1149,"Convert the tab indentation to spaces.")}})}run(e,t){const r=t.getModel();if(!r)return;const s=r.getOptions(),a=t.getSelection();if(!a)return;const l=new IndentationToSpacesCommand(a,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[l]),t.pushUndoStop(),r.updateOptions({insertSpaces:!0})}};us.ID="editor.action.indentationToSpaces";let IndentationToSpacesAction=us;const hs=class hs extends EditorAction{constructor(){super({id:hs.ID,label:localize2(1150,"Convert Indentation to Tabs"),precondition:EditorContextKeys.writable,metadata:{description:localize2(1151,"Convert the spaces indentation to tabs.")}})}run(e,t){const r=t.getModel();if(!r)return;const s=r.getOptions(),a=t.getSelection();if(!a)return;const l=new IndentationToTabsCommand(a,s.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[l]),t.pushUndoStop(),r.updateOptions({insertSpaces:!1})}};hs.ID="editor.action.indentationToTabs";let IndentationToTabsAction=hs;class ChangeIndentationSizeAction extends EditorAction{constructor(e,t,r){super(r),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){const r=e.get(IQuickInputService),s=e.get(IModelService),a=t.getModel();if(!a)return;const l=s.getCreationOptions(a.getLanguageId(),a.uri,a.isForSimpleWidget),c=a.getOptions(),d=[1,2,3,4,5,6,7,8].map(g=>({id:g.toString(),label:g.toString(),description:g===l.tabSize&&g===c.tabSize?localize(1144,"Configured Tab Size"):g===l.tabSize?localize(1145,"Default Tab Size"):g===c.tabSize?localize(1146,"Current Tab Size"):void 0})),u=Math.min(a.getOptions().tabSize-1,7);setTimeout(()=>{r.pick(d,{placeHolder:localize(1147,"Select Tab Size for Current File"),activeItem:d[u]}).then(g=>{if(g&&a&&!a.isDisposed()){const f=parseInt(g.label,10);this.displaySizeOnly?a.updateOptions({tabSize:f}):a.updateOptions({tabSize:f,indentSize:f,insertSpaces:this.insertSpaces})}})},50)}}const gs=class gs extends ChangeIndentationSizeAction{constructor(){super(!1,!1,{id:gs.ID,label:localize2(1152,"Indent Using Tabs"),precondition:void 0,metadata:{description:localize2(1153,"Use indentation with tabs.")}})}};gs.ID="editor.action.indentUsingTabs";let IndentUsingTabs=gs;const fs=class fs extends ChangeIndentationSizeAction{constructor(){super(!0,!1,{id:fs.ID,label:localize2(1154,"Indent Using Spaces"),precondition:void 0,metadata:{description:localize2(1155,"Use indentation with spaces.")}})}};fs.ID="editor.action.indentUsingSpaces";let IndentUsingSpaces=fs;const ps=class ps extends ChangeIndentationSizeAction{constructor(){super(!0,!0,{id:ps.ID,label:localize2(1156,"Change Tab Display Size"),precondition:void 0,metadata:{description:localize2(1157,"Change the space size equivalent of the tab.")}})}};ps.ID="editor.action.changeTabDisplaySize";let ChangeTabDisplaySize=ps;const ms=class ms extends EditorAction{constructor(){super({id:ms.ID,label:localize2(1158,"Detect Indentation from Content"),precondition:void 0,metadata:{description:localize2(1159,"Detect the indentation from content.")}})}run(e,t){const r=e.get(IModelService),s=t.getModel();if(!s)return;const a=r.getCreationOptions(s.getLanguageId(),s.uri,s.isForSimpleWidget);s.detectIndentation(a.insertSpaces,a.tabSize)}};ms.ID="editor.action.detectIndentation";let DetectIndentation=ms;class ReindentLinesAction extends EditorAction{constructor(){super({id:"editor.action.reindentlines",label:localize2(1160,"Reindent Lines"),precondition:EditorContextKeys.writable,metadata:{description:localize2(1161,"Reindent the lines of the editor.")},canTriggerInlineEdits:!0})}run(e,t){const r=e.get(ILanguageConfigurationService),s=t.getModel();if(!s)return;const a=getReindentEditOperations(s,r,1,s.getLineCount());a.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,a),t.pushUndoStop())}}class ReindentSelectedLinesAction extends EditorAction{constructor(){super({id:"editor.action.reindentselectedlines",label:localize2(1162,"Reindent Selected Lines"),precondition:EditorContextKeys.writable,metadata:{description:localize2(1163,"Reindent the selected lines of the editor.")},canTriggerInlineEdits:!0})}run(e,t){const r=e.get(ILanguageConfigurationService),s=t.getModel();if(!s)return;const a=t.getSelections();if(a===null)return;const l=[];for(const c of a){let d=c.startLineNumber,u=c.endLineNumber;if(d!==u&&c.endColumn===1&&u--,d===1){if(d===u)continue}else d--;const g=getReindentEditOperations(s,r,d,u);l.push(...g)}l.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,l),t.pushUndoStop())}}class AutoIndentOnPasteCommand{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const r of e)r.range&&typeof r.text=="string"&&this._edits.push(r)}getEditOperations(e,t){for(const s of this._edits)t.addEditOperation(Range$2.lift(s.range),s.text);let r=!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?(r=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(r=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),r||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}var wr;let AutoIndentOnPaste=(wr=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new DisposableStore$1,this.callOnModel=new DisposableStore$1,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(17)||this.editor.getOption(16)<4)&&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 r=this.editor.getModel();if(!r||this.rangeContainsOnlyWhitespaceCharacters(r,e)||!this.editor.getOption(18)&&isStartOrEndInString(r,e)||!r.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const a=this.editor.getOption(16),{tabSize:l,indentSize:c,insertSpaces:d}=r.getOptions(),u=[],g={shiftIndent:v=>ShiftCommand.shiftIndent(v,v.length+1,l,c,d),unshiftIndent:v=>ShiftCommand.unshiftIndent(v,v.length+1,l,c,d)};let f=e.startLineNumber,m=r.getLineContent(f);if(!/\S/.test(m.substring(0,e.startColumn-1))){const v=getGoodIndentForLine(a,r,r.getLanguageId(),f,g,this._languageConfigurationService);if(v!==null){const b=getLeadingWhitespace(m),C=getSpaceCnt(v,l),y=getSpaceCnt(b,l);if(C!==y){const S=generateIndent(C,l,d);u.push({range:new Range$2(f,1,f,b.length+1),text:S}),m=S+m.substring(b.length)}else{const S=getIndentMetadata(r,f,this._languageConfigurationService);if(S===0||S===8)return}}}const _=f;for(;f<e.endLineNumber;){if(!/\S/.test(r.getLineContent(f+1))){f++;continue}break}if(f!==e.endLineNumber){const b=getGoodIndentForLine(a,{tokenization:{getLineTokens:C=>r.tokenization.getLineTokens(C),getLanguageId:()=>r.getLanguageId(),getLanguageIdAtPosition:(C,y)=>r.getLanguageIdAtPosition(C,y)},getLineContent:C=>C===_?m:r.getLineContent(C)},r.getLanguageId(),f+1,g,this._languageConfigurationService);if(b!==null){const C=getSpaceCnt(b,l),y=getSpaceCnt(getLeadingWhitespace(r.getLineContent(f+1)),l);if(C!==y){const S=C-y;for(let w=f+1;w<=e.endLineNumber;w++){const E=r.getLineContent(w),x=getLeadingWhitespace(E),k=getSpaceCnt(x,l)+S,D=generateIndent(k,l,d);D!==x&&u.push({range:new Range$2(w,1,w,x.length+1),text:D})}}}}if(u.length>0){this.editor.pushUndoStop();const v=new AutoIndentOnPasteCommand(u,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",v),this.editor.pushUndoStop()}}rangeContainsOnlyWhitespaceCharacters(e,t){const r=a=>a.trim().length===0;let s=!0;if(t.startLineNumber===t.endLineNumber){const l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);s=r(l)}else for(let a=t.startLineNumber;a<=t.endLineNumber;a++){const l=e.getLineContent(a);if(a===t.startLineNumber){const c=l.substring(t.startColumn-1);s=r(c)}else if(a===t.endLineNumber){const c=l.substring(0,t.endColumn-1);s=r(c)}else s=e.getLineFirstNonWhitespaceColumn(a)===0;if(!s)break}return s}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}},wr.ID="editor.contrib.autoIndentOnPaste",wr);AutoIndentOnPaste=__decorate$13([__param$_(1,ILanguageConfigurationService)],AutoIndentOnPaste);function isStartOrEndInString(o,e){const t=r=>getStandardTokenTypeAtPosition(o,r)===2;return t(e.getStartPosition())||t(e.getEndPosition())}function getIndentationEditOperations(o,e,t,r){if(o.getLineCount()===1&&o.getLineMaxColumn(1)===1)return;let s="";for(let l=0;l<t;l++)s+=" ";const a=new RegExp(s,"gi");for(let l=1,c=o.getLineCount();l<=c;l++){let d=o.getLineFirstNonWhitespaceColumn(l);if(d===0&&(d=o.getLineMaxColumn(l)),d===1)continue;const u=new Range$2(l,1,l,d),g=o.getValueInRange(u),f=r?g.replace(/\t/ig,s):g.replace(a," ");e.addEditOperation(u,f)}}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);registerEditorContribution(InlayHintsController.ID,InlayHintsController,1);HoverParticipantRegistry.register(InlayHintsHover);class InPlaceReplaceCommand{constructor(e,t,r){this._editRange=e,this._originalSelection=t,this._text=r}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const s=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new Selection$1(s.endLineNumber,Math.min(this._originalSelection.positionColumn,s.endColumn),s.endLineNumber,Math.min(this._originalSelection.positionColumn,s.endColumn)):new Selection$1(s.endLineNumber,s.endColumn-this._text.length,s.endLineNumber,s.endColumn)}}var __decorate$12=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$Z=function(o,e){return function(t,r){e(t,r,o)}},InPlaceReplaceController_1,Ii;let InPlaceReplaceController=(Ii=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 d;(d=this.currentRequest)==null||d.cancel();const r=this.editor.getSelection(),s=this.editor.getModel();if(!s||!r)return;let a=r;if(a.startLineNumber!==a.endLineNumber)return;const l=new EditorState$1(this.editor,5),c=s.uri;return this.editorWorkerService.canNavigateValueSet(c)?(this.currentRequest=createCancelablePromise(u=>this.editorWorkerService.navigateValueSet(c,a,t)),this.currentRequest.then(u=>{var v;if(!u||!u.range||!u.value||!l.validate(this.editor))return;const g=Range$2.lift(u.range);let f=u.range;const m=u.value.length-(a.endColumn-a.startColumn);f={startLineNumber:f.startLineNumber,startColumn:f.startColumn,endLineNumber:f.endLineNumber,endColumn:f.startColumn+u.value.length},m>1&&(a=new Selection$1(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn+m-1));const _=new InPlaceReplaceCommand(g,a,u.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,_),this.editor.pushUndoStop(),this.decorations.set([{range:f,options:InPlaceReplaceController_1.DECORATION}]),(v=this.decorationRemover)==null||v.cancel(),this.decorationRemover=timeout(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(onUnexpectedError)}).catch(onUnexpectedError)):Promise.resolve(void 0)}},InPlaceReplaceController_1=Ii,Ii.ID="editor.contrib.inPlaceReplaceController",Ii.DECORATION=ModelDecorationOptions.register({description:"in-place-replace",className:"valueSetReplacement"}),Ii);InPlaceReplaceController=InPlaceReplaceController_1=__decorate$12([__param$Z(1,IEditorWorkerService)],InPlaceReplaceController);class InPlaceReplaceUp extends EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.up",label:localize2(1240,"Replace with Previous Value"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3159,weight:100}})}run(e,t){const r=InPlaceReplaceController.get(t);return r?r.run(this.id,!1):Promise.resolve(void 0)}}class InPlaceReplaceDown extends EditorAction{constructor(){super({id:"editor.action.inPlaceReplace.down",label:localize2(1241,"Replace with Next Value"),precondition:EditorContextKeys.writable,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3161,weight:100}})}run(e,t){const r=InPlaceReplaceController.get(t);return r?r.run(this.id,!0):Promise.resolve(void 0)}}registerEditorContribution(InPlaceReplaceController.ID,InPlaceReplaceController,4);registerEditorAction(InPlaceReplaceUp);registerEditorAction(InPlaceReplaceDown);class InsertFinalNewLineCommand{constructor(e){this._selection=e,this._selectionId=null}getEditOperations(e,t){const r=insertFinalNewLine(e);r&&t.addEditOperation(r.range,r.text),this._selectionId=t.trackSelection(this._selection)}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}function insertFinalNewLine(o){const e=o.getLineCount(),t=o.getLineContent(e),r=lastNonWhitespaceIndex(t)===-1;if(!(!e||r))return EditOperation.insert(new Position$1(e,o.getLineMaxColumn(e)),o.getEOL())}const _s=class _s extends EditorAction{constructor(){super({id:_s.ID,label:localize2(1242,"Insert Final New Line"),precondition:EditorContextKeys.writable})}run(e,t,r){const s=t.getSelection();if(s===null)return;const a=new InsertFinalNewLineCommand(s);t.pushUndoStop(),t.executeCommands(this.id,[a]),t.pushUndoStop()}};_s.ID="editor.action.insertFinalNewLine";let InsertFinalNewLineAction=_s;registerEditorAction(InsertFinalNewLineAction);class ExpandLineSelectionAction extends EditorAction{constructor(){super({id:"expandLineSelection",label:localize2(1243,"Expand Line Selection"),precondition:void 0,kbOpts:{weight:0,kbExpr:EditorContextKeys.textInputFocus,primary:2090}})}run(e,t,r){if(r=r||{},!t.hasModel())return;const s=t._getViewModel();s.model.pushStackElement(),s.setCursorStates(r.source,3,CursorMoveCommands.expandLineSelection(s,s.getCursorStates())),s.revealAllCursors(r.source,!0)}}registerEditorAction(ExpandLineSelectionAction);var __decorate$11=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$Y=function(o,e){return function(t,r){e(t,r,o)}},LinkedEditingContribution_1;const CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE=new RawContextKey("LinkedEditingInputVisible",!1),DECORATION_CLASS_NAME="linked-editing-decoration";var Di;let LinkedEditingContribution=(Di=class extends Disposable$1{static get(e){return e.getContribution(LinkedEditingContribution_1.ID)}constructor(e,t,r,s,a){super(),this.languageConfigurationService=s,this._syncRangesToken=0,this._localToDispose=this._register(new DisposableStore$1),this._editor=e,this._providers=r.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=CONTEXT_ONTYPE_RENAME_INPUT_VISIBLE.bindTo(t),this._debounceInformation=a.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$1),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(l=>{(l.hasChanged(78)||l.hasChanged(106))&&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(),r=t!==null&&(this._editor.getOption(78)||this._editor.getOption(106))&&this._providers.has(t);if(r===this._enabled&&!e||(this._enabled=r,this.clearRanges(),this._localToDispose.clear(),!r||t===null))return;this._localToDispose.add(Event$1.runAndSubscribe(t.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()}));const s=new Delayer(this._debounceInformation.get(t)),a=()=>{var d;this._rangeUpdateTriggerPromise=s.trigger(()=>this.updateRanges(),(d=this._debounceDuration)!=null?d:this._debounceInformation.get(t))},l=new Delayer(0),c=d=>{this._rangeSyncTriggerPromise=l.trigger(()=>this._syncRanges(d))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{a()})),this._localToDispose.add(this._editor.onDidChangeModelContent(d=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const u=this._currentDecorations.getRange(0);if(u&&d.changes.every(g=>u.intersectRanges(g.range))){c(this._syncRangesToken);return}}a()})),this._localToDispose.add({dispose:()=>{s.dispose(),l.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||this._currentDecorations.length===0)return;const t=this._editor.getModel(),r=this._currentDecorations.getRange(0);if(!r||r.startLineNumber!==r.endLineNumber)return this.clearRanges();const s=t.getValueInRange(r);if(this._currentWordPattern){const l=s.match(this._currentWordPattern);if((l?l[0].length:0)!==s.length)return this.clearRanges()}const a=[];for(let l=1,c=this._currentDecorations.length;l<c;l++){const d=this._currentDecorations.getRange(l);if(d)if(d.startLineNumber!==d.endLineNumber)a.push({range:d,text:s});else{let u=t.getValueInRange(d),g=s,f=d.startColumn,m=d.endColumn;const _=commonPrefixLength(u,g);f+=_,u=u.substr(_),g=g.substr(_);const v=commonSuffixLength(u,g);m-=v,u=u.substr(0,u.length-v),g=g.substr(0,g.length-v),(f!==m||g.length!==0)&&a.push({range:new Range$2(d.startLineNumber,f,d.endLineNumber,m),text:g})}}if(a.length!==0)try{this._editor.popUndoStop(),this._ignoreChangeEvent=!0;const l=this._editor._getViewModel().getPrevEditOperationType();this._editor.executeEdits("linkedEditing",a),this._editor._getViewModel().setPrevEditOperationType(l)}finally{this._ignoreChangeEvent=!1}}dispose(){this.clearRanges(),super.dispose()}clearRanges(){this._visibleContextKey.set(!1),this._currentDecorations.clear(),this._currentRequestCts&&(this._currentRequestCts.cancel(),this._currentRequestCts=null,this._currentRequestPosition=null)}async updateRanges(e=!1){var l;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 r=this._editor.getModel(),s=r.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===s){if(t.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const c=this._currentDecorations.getRange(0);if(c&&c.containsPosition(t))return}}if(!((l=this._currentRequestPosition)!=null&&l.equals(t))){const c=this._currentDecorations.getRange(0);c!=null&&c.containsPosition(t)||this.clearRanges()}this._currentRequestPosition=t,this._currentRequestModelVersion=s;const a=this._currentRequestCts=new CancellationTokenSource$1;try{const c=new StopWatch(!1),d=await getLinkedEditingRanges(this._providers,r,t,a.token);if(this._debounceInformation.update(r,c.elapsed()),a!==this._currentRequestCts||(this._currentRequestCts=null,s!==r.getVersionId()))return;let u=[];d!=null&&d.ranges&&(u=d.ranges),this._currentWordPattern=(d==null?void 0:d.wordPattern)||this._languageWordPattern;let g=!1;for(let m=0,_=u.length;m<_;m++)if(Range$2.containsPosition(u[m],t)){if(g=!0,m!==0){const v=u[m];u.splice(m,1),u.unshift(v)}break}if(!g){this.clearRanges();return}const f=u.map(m=>({range:m,options:LinkedEditingContribution_1.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(f),this._syncRangesToken++}catch(c){isCancellationError(c)||onUnexpectedError(c),(this._currentRequestCts===a||!this._currentRequestCts)&&this.clearRanges()}}},LinkedEditingContribution_1=Di,Di.ID="editor.contrib.linkedEditing",Di.DECORATION=ModelDecorationOptions.register({description:"linked-editing",stickiness:0,className:DECORATION_CLASS_NAME}),Di);LinkedEditingContribution=LinkedEditingContribution_1=__decorate$11([__param$Y(1,IContextKeyService),__param$Y(2,ILanguageFeaturesService),__param$Y(3,ILanguageConfigurationService),__param$Y(4,ILanguageFeatureDebounceService)],LinkedEditingContribution);class LinkedEditingAction extends EditorAction{constructor(){super({id:"editor.action.linkedEditing",label:localize2(1276,"Start Linked Editing"),precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const r=e.get(ICodeEditorService),[s,a]=Array.isArray(t)&&t||[void 0,void 0];return URI.isUri(s)&&Position$1.isIPosition(a)?r.openCodeEditor({resource:s},r.getActiveCodeEditor()).then(l=>{l&&(l.setPosition(a),l.invokeWithinContext(c=>(this.reportTelemetry(c,l),this.run(c,l))))},onUnexpectedError):super.runCommand(e,t)}run(e,t){const r=LinkedEditingContribution.get(t);return r?Promise.resolve(r.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,r){const s=o.ordered(e);return first(s.map(a=>async()=>{try{return await a.provideLinkedEditingRanges(e,t,r)}catch(l){onUnexpectedExternalError(l);return}}),a=>!!a&&isNonEmptyArray(a==null?void 0:a.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(1275,"Background color when the editor auto renames on type."));registerModelAndPositionCommand("_executeLinkedEditingProvider",(o,e,t)=>{const{linkedEditingRangeProvider:r}=o.get(ILanguageFeaturesService);return getLinkedEditingRanges(r,e,t,CancellationToken.None)});registerEditorContribution(LinkedEditingContribution.ID,LinkedEditingContribution,1);registerEditorAction(LinkedEditingAction);let Link$2=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}async resolve(e){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"))}};const Ur=class Ur{constructor(e){var r;this._disposables=new DisposableStore$1;let t=[];for(const[s,a]of e){const l=s.links.map(c=>new Link$2(c,a));t=Ur._union(t,l),isDisposable(s)&&((r=this._disposables)!=null||(this._disposables=new DisposableStore$1),this._disposables.add(s))}this.links=t}dispose(){var e;(e=this._disposables)==null||e.dispose(),this.links.length=0}static _union(e,t){const r=[];let s,a,l,c;for(s=0,l=0,a=e.length,c=t.length;s<a&&l<c;){const d=e[s],u=t[l];if(Range$2.areIntersectingOrTouching(d.range,u.range)){s++;continue}Range$2.compareRangesUsingStarts(d.range,u.range)<0?(r.push(d),s++):(r.push(u),l++)}for(;s<a;s++)r.push(e[s]);for(;l<c;l++)r.push(t[l]);return r}};Ur.Empty=new Ur([]);let LinksList=Ur;async function getLinks(o,e,t){const r=[],s=o.ordered(e).reverse().map(async(l,c)=>{try{const d=await l.provideLinks(e,t);d&&(r[c]=[d,l])}catch(d){onUnexpectedExternalError(d)}});await Promise.all(s);let a=new LinksList(coalesce(r));return t.isCancellationRequested&&(a.dispose(),a=LinksList.Empty),a}CommandsRegistry.registerCommand("_executeLinkProvider",async(o,...e)=>{let[t,r]=e;assertType(t instanceof URI),typeof r!="number"&&(r=0);const{linkProvider:s}=o.get(ILanguageFeaturesService),a=o.get(IModelService).getModel(t);if(!a)return[];const l=await getLinks(s,a,CancellationToken.None);if(!l)return[];for(let d=0;d<Math.min(r,l.links.length);d++)await l.links[d].resolve(CancellationToken.None);const c=l.links.slice(0);return l.dispose(),c});var __decorate$10=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$X=function(o,e){return function(t,r){e(t,r,o)}},LinkDetector_1,An;let LinkDetector=(An=class extends Disposable$1{static get(e){return e.getContribution(LinkDetector_1.ID)}constructor(e,t,r,s,a){super(),this.editor=e,this.openerService=t,this.notificationService=r,this.languageFeaturesService=s,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=a.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 l=this._register(new ClickLinkGesture(e));this._register(l.onMouseMoveOrRelevantKeyDown(([c,d])=>{this._onEditorMouseMove(c,d)})),this._register(l.onExecute(c=>{this.onEditorMouseUp(c)})),this._register(l.onCancel(c=>{this.cleanUpActiveLinkDecoration()})),this._register(e.onDidChangeConfiguration(c=>{c.hasChanged(79)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(e.onDidChangeModelContent(c=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(e.onDidChangeModel(c=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(e.onDidChangeModelLanguage(c=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(c=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(79))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=await 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(86)==="altKey",r=[],s=Object.keys(this.currentOccurrences);for(const l of s){const c=this.currentOccurrences[l];r.push(c.decorationId)}const a=[];if(e)for(const l of e)a.push(LinkOccurrence.decoration(l,t));this.editor.changeDecorations(l=>{const c=l.deltaDecorations(r,a);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let d=0,u=c.length;d<u;d++){const g=new LinkOccurrence(e[d],c[d]);this.currentOccurrences[g.decorationId]=g}})}_onEditorMouseMove(e,t){const r=this.editor.getOption(86)==="altKey";if(this.isEnabled(e,t)){this.cleanUpActiveLinkDecoration();const s=this.getLinkOccurrence(e.target.position);s&&this.editor.changeDecorations(a=>{s.activate(a,r),this.activeLinkDecorationId=s.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e=this.editor.getOption(86)==="altKey";if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations(r=>{t.deactivate(r,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,r=!1){if(!this.openerService)return;const{link:s}=e;s.resolve(CancellationToken.None).then(a=>{if(typeof a=="string"&&this.editor.hasModel()){const l=this.editor.getModel().uri;if(l.scheme===Schemas.file&&a.startsWith("".concat(Schemas.file,":"))){const c=URI.parse(a);if(c.scheme===Schemas.file){const d=originalFSPath(c);let u=null;d.startsWith("/./")||d.startsWith("\\.\\")?u=".".concat(d.substr(1)):(d.startsWith("//./")||d.startsWith("\\\\.\\"))&&(u=".".concat(d.substr(2))),u&&(a=joinPath(l,u))}}}return this.openerService.open(a,{openToSide:t,fromUserGesture:r,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},a=>{const l=a instanceof Error?a.message:a;l==="invalid"?this.notificationService.warn(localize(1277,"Failed to open this link because it is not well-formed: {0}",s.url.toString())):l==="missing"?this.notificationService.warn(localize(1278,"Failed to open this link because its target is missing.")):onUnexpectedError(a)})}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 r of t){const s=this.currentOccurrences[r.id];if(s)return s}return null}isEnabled(e,t){return!!(e.target.type===6&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey||e.isMiddleClick&&e.mouseMiddleClickAction==="openLink"))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&((e=this.activeLinksList)==null||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}},LinkDetector_1=An,An.ID="editor.linkDetector",An);LinkDetector=LinkDetector_1=__decorate$10([__param$X(1,IOpenerService),__param$X(2,INotificationService),__param$X(3,ILanguageFeaturesService),__param$X(4,ILanguageFeatureDebounceService)],LinkDetector);const decoration$1={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,r){const s={...r?decoration$1.active:decoration$1.general};return s.hoverMessage=getHoverMessage(e,t),s}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()),r=o.tooltip?o.tooltip:t?localize(1279,"Execute command"):localize(1280,"Follow link"),s=e?isMacintosh?localize(1281,"cmd + click"):localize(1282,"ctrl + click"):isMacintosh?localize(1283,"option + click"):localize(1284,"alt + click");if(o.url){let a="";if(/^command:/i.test(o.url.toString())){const c=o.url.toString().match(/^command:([^?#]+)/);if(c){const d=c[1];a=localize(1285,"Execute command {0}",d)}}return new MarkdownString("",!0).appendLink(o.url.toString(!0).replace(/ /g,"%20"),r,a).appendMarkdown(" (".concat(s,")"))}else return new MarkdownString().appendText("".concat(r," (").concat(s,")"))}class OpenLinkAction extends EditorAction{constructor(){super({id:"editor.action.openLink",label:localize2(1286,"Open Link"),precondition:void 0})}run(e,t){const r=LinkDetector.get(t);if(!r||!t.hasModel())return;const s=t.getSelections();for(const a of s){const l=r.getLinkOccurrence(a.getEndPosition());l&&r.openLinkOccurrence(l,!1)}}}registerEditorContribution(LinkDetector.ID,LinkDetector,1);registerEditorAction(OpenLinkAction);const sa=class sa extends Disposable$1{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(t=>{const r=this._editor.getOption(133);r>=0&&t.target.type===6&&t.target.position.column>=r&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}};sa.ID="editor.contrib.longLinesHelper";let LongLinesHelper=sa;registerEditorContribution(LongLinesHelper.ID,LongLinesHelper,2);const aa=class aa extends Disposable$1{constructor(e){super(),this._editor=e;const t=observableCodeEditor(this._editor),r=t.getOption(171);this._register(autorun(s=>{if(!r.read(s))return;const a=t.domNode.read(s);if(!a)return;const l=s.store.add(disposableObservableValue("scrollingSession",void 0));s.store.add(this._editor.onMouseDown(d=>{if(l.read(void 0)){l.set(void 0,void 0);return}if(!d.event.middleButton)return;d.event.stopPropagation(),d.event.preventDefault();const g=new DisposableStore$1,f=new Point(d.event.posx,d.event.posy),_=observeWindowMousePos(getWindow$1(a),f,g).map(C=>C.subtract(f).withThreshold(5)),v=a.getBoundingClientRect(),b=new Point(f.x-v.left,f.y-v.top);l.set({mouseDeltaAfterThreshold:_,initialMousePosInEditor:b,didScroll:!1,dispose:()=>g.dispose()},void 0),g.add(this._editor.onMouseUp(C=>{const y=l.read(void 0);y&&y.didScroll&&l.set(void 0,void 0)})),g.add(this._editor.onKeyDown(C=>{l.set(void 0,void 0)}))})),s.store.add(autorun(d=>{const u=l.read(d);if(!u)return;let g=Date.now();d.store.add(autorun(m=>{AnimationFrameScheduler.instance.invalidateOnNextAnimationFrame(m);const _=Date.now(),v=_-g;g=_;const b=u.mouseDeltaAfterThreshold.read(void 0),C=v/32,y=b.scale(C),S=new Point(this._editor.getScrollLeft(),this._editor.getScrollTop());this._editor.setScrollPosition(toScrollPosition(S.add(y))),y.isZero()||(u.didScroll=!0)}));const f=derived(m=>{const _=u.mouseDeltaAfterThreshold.read(m);let v="";return v+=_.y<0?"n":_.y>0?"s":"",v+=_.x<0?"w":_.x>0?"e":"",v});d.store.add(autorun(m=>{a.setAttribute("data-scroll-direction",f.read(m))}))}));const c=s.store.add(n.div({class:["scroll-editor-on-middle-click-dot",l.map(d=>d?"":"hidden")],style:{left:l.map(d=>d?d.initialMousePosInEditor.x:0),top:l.map(d=>d?d.initialMousePosInEditor.y:0)}}).toDisposableLiveElement());s.store.add(appendRemoveOnDispose(a,c.element)),s.store.add(autorun(d=>{const u=l.read(d);a.classList.toggle("scroll-editor-on-middle-click-editor",!!u)}))}))}};aa.ID="editor.contrib.middleScroll";let MiddleScrollController=aa;function observeWindowMousePos(o,e,t){const r=observableValue("pos",e);return t.add(addDisposableListener(o,"mousemove",s=>{r.set(new Point(s.pageX,s.pageY),void 0)})),r}function toScrollPosition(o){return{scrollLeft:o.x,scrollTop:o.y}}registerEditorContribution(MiddleScrollController.ID,MiddleScrollController,2);const wordHighlightBackground=registerColor("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},localize(1563,"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(1564,"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",wordHighlightBackground,localize(1565,"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(1566,"Border color of a symbol during read-access, like reading a variable."));registerColor("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:activeContrastBorder,hcLight:activeContrastBorder},localize(1567,"Border color of a symbol during write-access, like writing to a variable."));registerColor("editor.wordHighlightTextBorder",wordHighlightBorder,localize(1568,"Border color of a textual occurrence for a symbol."));const overviewRulerWordHighlightForeground=registerColor("editorOverviewRuler.wordHighlightForeground","#A0A0A0CC",localize(1569,"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","#C0A0C0CC",localize(1570,"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",overviewRulerSelectionHighlightForeground,localize(1571,"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$1.Center},minimap:{color:themeColorFromId(minimapSelectionOccurrenceHighlight),position:1}}),_TEXT_OPTIONS=ModelDecorationOptions.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:themeColorFromId(overviewRulerWordHighlightTextForeground),position:OverviewRulerLane$1.Center},minimap:{color:themeColorFromId(minimapSelectionOccurrenceHighlight),position:1}}),_SELECTION_HIGHLIGHT_OPTIONS=ModelDecorationOptions.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:themeColorFromId(overviewRulerSelectionHighlightForeground),position:OverviewRulerLane$1.Center},minimap:{color:themeColorFromId(minimapSelectionOccurrenceHighlight),position:1}}),_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$1.Center},minimap:{color:themeColorFromId(minimapSelectionOccurrenceHighlight),position:1}});function getHighlightDecorationOptions(o){return o===DocumentHighlightKind$2.Write?_WRITE_OPTIONS:o===DocumentHighlightKind$2.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: ".concat(t.transparent(.5),"; }"))});var __decorate$$=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$W=function(o,e){return function(t,r){e(t,r,o)}},SelectionHighlighter_1;function announceCursorChange(o,e){const t=e.filter(r=>!o.find(s=>s.equals(r)));if(t.length>=1){const r=t.map(a=>"line ".concat(a.viewState.position.lineNumber," column ").concat(a.viewState.position.column)).join(", "),s=t.length===1?localize(1288,"Cursor added: {0}",r):localize(1289,"Cursors added: {0}",r);status(s)}}class InsertCursorAbove extends EditorAction{constructor(){super({id:"editor.action.insertCursorAbove",label:localize2(1298,"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(1290,"&&Add Cursor Above"),order:2}})}run(e,t,r){if(!t.hasModel())return;let s=!0;r&&r.logicalLine===!1&&(s=!1);const a=t._getViewModel();if(a.cursorConfig.readOnly)return;a.model.pushStackElement();const l=a.getCursorStates();a.setCursorStates(r.source,3,CursorMoveCommands.addCursorUp(a,l,s)),a.revealTopMostCursor(r.source),announceCursorChange(l,a.getCursorStates())}}class InsertCursorBelow extends EditorAction{constructor(){super({id:"editor.action.insertCursorBelow",label:localize2(1299,"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(1291,"A&&dd Cursor Below"),order:3}})}run(e,t,r){if(!t.hasModel())return;let s=!0;r&&r.logicalLine===!1&&(s=!1);const a=t._getViewModel();if(a.cursorConfig.readOnly)return;a.model.pushStackElement();const l=a.getCursorStates();a.setCursorStates(r.source,3,CursorMoveCommands.addCursorDown(a,l,s)),a.revealBottomMostCursor(r.source),announceCursorChange(l,a.getCursorStates())}}class InsertCursorAtEndOfEachLineSelected extends EditorAction{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:localize2(1300,"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(1292,"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,r){if(!e.isEmpty()){for(let s=e.startLineNumber;s<e.endLineNumber;s++){const a=t.getLineMaxColumn(s);r.push(new Selection$1(s,a,s,a))}e.endColumn>1&&r.push(new Selection$1(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const r=t.getModel(),s=t.getSelections(),a=t._getViewModel(),l=a.getCursorStates(),c=[];s.forEach(d=>this.getCursorsForSelection(d,r,c)),c.length>0&&t.setSelections(c),announceCursorChange(l,a.getCursorStates())}}class InsertCursorAtEndOfLineSelected extends EditorAction{constructor(){super({id:"editor.action.addCursorsToBottom",label:localize2(1301,"Add Cursors to Bottom"),precondition:void 0})}run(e,t){if(!t.hasModel())return;const r=t.getSelections(),s=t.getModel().getLineCount(),a=[];for(let d=r[0].startLineNumber;d<=s;d++)a.push(new Selection$1(d,r[0].startColumn,d,r[0].endColumn));const l=t._getViewModel(),c=l.getCursorStates();a.length>0&&t.setSelections(a),announceCursorChange(c,l.getCursorStates())}}class InsertCursorAtTopOfLineSelected extends EditorAction{constructor(){super({id:"editor.action.addCursorsToTop",label:localize2(1302,"Add Cursors to Top"),precondition:void 0})}run(e,t){if(!t.hasModel())return;const r=t.getSelections(),s=[];for(let c=r[0].startLineNumber;c>=1;c--)s.push(new Selection$1(c,r[0].startColumn,c,r[0].endColumn));const a=t._getViewModel(),l=a.getCursorStates();s.length>0&&t.setSelections(s),announceCursorChange(l,a.getCursorStates())}}class MultiCursorSessionResult{constructor(e,t,r){this.selections=e,this.revealRange=t,this.revealScrollType=r}}class MultiCursorSession{static create(e,t){if(!e.hasModel())return null;const r=t.getState();if(!e.hasTextFocus()&&r.isRevealed&&r.searchString.length>0)return new MultiCursorSession(e,t,!1,r.searchString,r.wholeWord,r.matchCase,null);let s=!1,a,l;const c=e.getSelections();c.length===1&&c[0].isEmpty()?(s=!0,a=!0,l=!0):(a=r.wholeWord,l=r.matchCase);const d=e.getSelection();let u,g=null;if(d.isEmpty()){const f=e.getConfiguredWordAtPosition(d.getStartPosition());if(!f)return null;u=f.word,g=new Selection$1(d.startLineNumber,f.startColumn,d.startLineNumber,f.endColumn)}else u=e.getModel().getValueInRange(d).replace(/\r\n/g,"\n");return new MultiCursorSession(e,t,s,u,a,l,g)}constructor(e,t,r,s,a,l,c){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=r,this.searchText=s,this.wholeWord=a,this.matchCase=l,this.currentMatch=c}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 s=this.currentMatch;return this.currentMatch=null,s}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],r=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return r?new Selection$1(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.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 s=this.currentMatch;return this.currentMatch=null,s}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],r=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1);return r?new Selection$1(r.range.startLineNumber,r.range.startColumn,r.range.endLineNumber,r.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(148):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(148):null,!1,1073741824)}}const bs=class bs extends Disposable$1{static get(e){return e.getContribution(bs.ID)}constructor(e){super(),this._sessionDispose=this._register(new DisposableStore$1),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 r={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(r.wholeWordOverride=1,r.matchCaseOverride=1,r.isRegexOverride=2),e.getState().change(r,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(s=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(s=>{(s.matchCase||s.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 r=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return r?new Selection$1(t.startLineNumber,r.startColumn,t.startLineNumber,r.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 s=e.getState().matchCase;if(!modelRangesContainSameText(this._editor.getModel(),t,s)){const l=this._editor.getModel(),c=[];for(let d=0,u=t.length;d<u;d++)c[d]=this._expandEmptyToWord(l,t[d]);this._editor.setSelections(c);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 r=e.getState();if(r.isRevealed&&r.searchString.length>0&&r.isRegex){const s=this._editor.getModel();r.searchScope?t=s.findMatches(r.searchString,r.searchScope,r.isRegex,r.matchCase,r.wholeWord?this._editor.getOption(148):null,!1,1073741824):t=s.findMatches(r.searchString,!0,r.isRegex,r.matchCase,r.wholeWord?this._editor.getOption(148):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(r.searchScope)}if(t.length>0){const s=this._editor.getSelection();for(let a=0,l=t.length;a<l;a++){const c=t[a];if(c.range.intersectRanges(s)){t[a]=t[0],t[0]=c;break}}this._setSelections(t.map(a=>new Selection$1(a.range.startLineNumber,a.range.startColumn,a.range.endLineNumber,a.range.endColumn)))}}};bs.ID="editor.contrib.multiCursorController";let MultiCursorSelectionController=bs;class MultiCursorSelectionControllerAction extends EditorAction{run(e,t){const r=MultiCursorSelectionController.get(t);if(!r)return;const s=t._getViewModel();if(s){const a=s.getCursorStates(),l=CommonFindController.get(t);if(l)this._run(r,l);else{const c=e.get(IInstantiationService).createInstance(CommonFindController,t);this._run(r,c),c.dispose()}announceCursorChange(a,s.getCursorStates())}}}class AddSelectionToNextFindMatchAction extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:localize2(1303,"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(1293,"Add &&Next Occurrence"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}class AddSelectionToPreviousFindMatchAction extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:localize2(1304,"Add Selection to Previous Find Match"),precondition:void 0,menuOpts:{menuId:MenuId.MenubarSelectionMenu,group:"3_multi",title:localize(1294,"Add P&&revious Occurrence"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}class MoveSelectionToNextFindMatchAction extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:localize2(1305,"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:localize2(1306,"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:localize2(1307,"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(1295,"Select All &&Occurrences"),order:7}})}_run(e,t){e.selectAll(t)}}class CompatChangeAll extends MultiCursorSelectionControllerAction{constructor(){super({id:"editor.action.changeAll",label:localize2(1308,"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,r,s,a){this._model=e,this._searchText=t,this._matchCase=r,this._wordSeparators=s,this._cachedFindMatches=null,this._modelVersionId=this._model.getVersionId(),a&&this._model===a._model&&this._searchText===a._searchText&&this._matchCase===a._matchCase&&this._wordSeparators===a._wordSeparators&&this._modelVersionId===a._modelVersionId&&(this._cachedFindMatches=a._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}}var Mn;let SelectionHighlighter=(Mn=class extends Disposable$1{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(122),this._isEnabledMultiline=e.getOption(124),this._maxLength=e.getOption(123),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new RunOnceScheduler(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(s=>{this._isEnabled=e.getOption(122),this._isEnabledMultiline=e.getOption(124),this._maxLength=e.getOption(123)})),this._register(e.onDidChangeCursorSelection(s=>{this._isEnabled&&(s.selection.isEmpty()?s.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(s=>{this._setState(null)})),this._register(e.onDidChangeModelContent(s=>{this._isEnabled&&this.updateSoon.schedule()}));const r=CommonFindController.get(e);r&&this._register(r.getState().onFindReplaceStateChange(s=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(SelectionHighlighter_1._createState(this.state,this._isEnabled,this._isEnabledMultiline,this._maxLength,this.editor))}static _createState(e,t,r,s,a){if(!t||!a.hasModel())return null;if(!r){const f=a.getSelection();if(f.startLineNumber!==f.endLineNumber)return null}const l=MultiCursorSelectionController.get(a);if(!l)return null;const c=CommonFindController.get(a);if(!c)return null;let d=l.getSession(c);if(!d){const f=a.getSelections();if(f.length>1){const _=c.getState().matchCase;if(!modelRangesContainSameText(a.getModel(),f,_))return null}d=MultiCursorSession.create(a,c)}if(!d||d.currentMatch||/^[ \t]+$/.test(d.searchText)||s>0&&d.searchText.length>s)return null;const u=c.getState(),g=u.matchCase;if(u.isRevealed){let f=u.searchString;g||(f=f.toLowerCase());let m=d.searchText;if(g||(m=m.toLowerCase()),f===m&&d.matchCase===u.matchCase&&d.wholeWord===u.wholeWord&&!u.isRegex)return null}return new SelectionHighlighterState(a.getModel(),d.searchText,d.matchCase,d.wholeWord?a.getOption(148):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 r=this.state.findMatches(),s=this.editor.getSelections();s.sort(Range$2.compareRangesUsingStarts);const a=[];for(let u=0,g=0,f=r.length,m=s.length;u<f;){const _=r[u];if(g>=m)a.push(_),u++;else{const v=Range$2.compareRangesUsingStarts(_,s[g]);v<0?((s[g].isEmpty()||!Range$2.areIntersecting(_,s[g]))&&a.push(_),u++):(v>0||u++,g++)}}const l=this.editor.getOption(90)!=="off",c=this._languageFeaturesService.documentHighlightProvider.has(t)&&l,d=a.map(u=>({range:u,options:getSelectionHighlightDecorationOptions(c)}));this._decorations.set(d)}dispose(){this._setState(null),super.dispose()}},SelectionHighlighter_1=Mn,Mn.ID="editor.contrib.selectionHighlighter",Mn);SelectionHighlighter=SelectionHighlighter_1=__decorate$$([__param$W(1,ILanguageFeaturesService)],SelectionHighlighter);function modelRangesContainSameText(o,e,t){const r=getValueInRange(o,e[0],!t);for(let s=1,a=e.length;s<a;s++){const l=e[s];if(l.isEmpty())return!1;const c=getValueInRange(o,l,!t);if(r!==c)return!1}return!0}function getValueInRange(o,e,t){const r=o.getValueInRange(e);return t?r.toLowerCase():r}class FocusNextCursor extends EditorAction{constructor(){super({id:"editor.action.focusNextCursor",label:localize2(1309,"Focus Next Cursor"),metadata:{description:localize(1296,"Focuses the next cursor"),args:[]},precondition:void 0})}run(e,t,r){if(!t.hasModel())return;const s=t._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const a=Array.from(s.getCursorStates()),l=a.shift();l&&(a.push(l),s.setCursorStates(r.source,3,a),s.revealPrimaryCursor(r.source,!0),announceCursorChange(a,s.getCursorStates()))}}class FocusPreviousCursor extends EditorAction{constructor(){super({id:"editor.action.focusPreviousCursor",label:localize2(1310,"Focus Previous Cursor"),metadata:{description:localize(1297,"Focuses the previous cursor"),args:[]},precondition:void 0})}run(e,t,r){if(!t.hasModel())return;const s=t._getViewModel();if(s.cursorConfig.readOnly)return;s.model.pushStackElement();const a=Array.from(s.getCursorStates()),l=a.pop();l&&(a.unshift(l),s.setCursorStates(r.source,3,a),s.revealPrimaryCursor(r.source,!0),announceCursorChange(a,s.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);const Context$1={Visible:new RawContextKey("parameterHintsVisible",!1),MultipleSignatures:new RawContextKey("parameterHintsMultipleSignatures",!1)};async function provideSignatureHelp(o,e,t,r,s){const a=o.ordered(e);for(const l of a)try{const c=await l.provideSignatureHelp(e,t,s,r);if(c)return c}catch(c){onUnexpectedExternalError(c)}}CommandsRegistry.registerCommand("_executeSignatureHelpProvider",async(o,...e)=>{const[t,r,s]=e;assertType(URI.isUri(t)),assertType(Position$1.isIPosition(r)),assertType(typeof s=="string"||!s);const a=o.get(ILanguageFeaturesService),l=await o.get(ITextModelService).createModelReference(t);try{const c=await provideSignatureHelp(a.signatureHelpProvider,l.object.textEditorModel,Position$1.lift(r),{triggerKind:SignatureHelpTriggerKind$2.Invoke,isRetrigger:!1,triggerCharacter:s},CancellationToken.None);return c?(setTimeout(()=>c.dispose(),0),c.value):void 0}finally{l.dispose()}});var ParameterHintState;(function(o){o.Default={type:0};class e{constructor(s,a){this.request=s,this.previouslyActiveHints=a,this.type=2}}o.Pending=e;class t{constructor(s){this.hints=s,this.type=1}}o.Active=t})(ParameterHintState||(ParameterHintState={}));const Cs=class Cs extends Disposable$1{constructor(e,t,r=Cs.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(r),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(s=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(s=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(s=>this.onCursorChange(s))),this._register(this.editor.onDidChangeModelContent(s=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(s=>this.onDidType(s))),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 r=this.editor.getModel();if(!r||!this.providers.has(r))return;const s=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(s),t).catch(onUnexpectedError)}next(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,r=t%e===e-1,s=this.editor.getOption(98).cycle;if((e<2||r)&&!s){this.cancel();return}this.updateActiveSignature(r&&s?0:t+1)}previous(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,r=t===0,s=this.editor.getOption(98).cycle;if((e<2||r)&&!s){this.cancel();return}this.updateActiveSignature(r&&s?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new ParameterHintState.Active({...this.state.hints,activeSignature:e}),this._onChangedHints.fire(this.state.hints))}async doTrigger(e){const t=this.state.type===1||this.state.type===2,r=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const s=this._pendingTriggers.reduce(mergeTriggerContexts);this._pendingTriggers=[];const a={triggerKind:s.triggerKind,triggerCharacter:s.triggerCharacter,isRetrigger:t,activeSignatureHelp:r};if(!this.editor.hasModel())return!1;const l=this.editor.getModel(),c=this.editor.getPosition();this.state=new ParameterHintState.Pending(createCancelablePromise(d=>provideSignatureHelp(this.providers,l,c,a,d)),r);try{const d=await this.state.request;return e!==this.triggerId?(d==null||d.dispose(),!1):!d||!d.value.signatures||d.value.signatures.length===0?(d==null||d.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new ParameterHintState.Active(d.value),this._lastSignatureHelpResult.value=d,this._onChangedHints.fire(this.state.hints),!0)}catch(d){return e===this.triggerId&&(this.state=ParameterHintState.Default),onUnexpectedError(d),!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 r of t.signatureHelpTriggerCharacters||[])if(r.length){const s=r.charCodeAt(0);this.triggerChars.add(s),this.retriggerChars.add(s)}for(const r of t.signatureHelpRetriggerCharacters||[])r.length&&this.retriggerChars.add(r.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,r=e.charCodeAt(t);(this.triggerChars.has(r)||this.isTriggered&&this.retriggerChars.has(r))&&this.trigger({triggerKind:SignatureHelpTriggerKind$2.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){e.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:SignatureHelpTriggerKind$2.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:SignatureHelpTriggerKind$2.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(98).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}};Cs.DEFAULT_DELAY=120;let ParameterHintsModel=Cs;function mergeTriggerContexts(o,e){switch(e.triggerKind){case SignatureHelpTriggerKind$2.Invoke:return e;case SignatureHelpTriggerKind$2.ContentChange:return o;case SignatureHelpTriggerKind$2.TriggerCharacter:default:return e}}var __decorate$_=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$V=function(o,e){return function(t,r){e(t,r,o)}},ParameterHintsWidget_1;const $$7=$$m,parameterHintsNextIcon=registerIcon("parameter-hints-next",Codicon.chevronDown,localize(1312,"Icon for show next parameter hint.")),parameterHintsPreviousIcon=registerIcon("parameter-hints-previous",Codicon.chevronUp,localize(1313,"Icon for show previous parameter hint."));var On;let ParameterHintsWidget=(On=class extends Disposable$1{constructor(e,t,r,s){super(),this.editor=e,this.model=t,this.markdownRendererService=s,this.renderDisposeables=this._register(new DisposableStore$1),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.keyVisible=Context$1.Visible.bindTo(r),this.keyMultipleSignatures=Context$1.MultipleSignatures.bindTo(r)}createParameterHintDOMNodes(){const e=$$7(".editor-widget.parameter-hints-widget"),t=append$2(e,$$7(".phwrapper"));t.tabIndex=-1;const r=append$2(t,$$7(".controls")),s=append$2(r,$$7(".button"+ThemeIcon.asCSSSelector(parameterHintsPreviousIcon))),a=append$2(r,$$7(".overloads")),l=append$2(r,$$7(".button"+ThemeIcon.asCSSSelector(parameterHintsNextIcon)));this._register(addDisposableListener(s,"click",m=>{EventHelper$1.stop(m),this.previous()})),this._register(addDisposableListener(l,"click",m=>{EventHelper$1.stop(m),this.next()}));const c=$$7(".body"),d=new DomScrollableElement(c,{alwaysConsumeMouseWheel:!0});this._register(d),t.appendChild(d.getDomNode());const u=append$2(c,$$7(".signature")),g=append$2(c,$$7(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:u,overloads:a,docs:g,scrollbar:d},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(m=>{this.visible&&this.editor.layoutContentWidget(this)}));const f=()=>{if(!this.domNodes)return;const m=this.editor.getOption(59),_=this.domNodes.element;_.style.fontSize="".concat(m.fontSize,"px"),_.style.lineHeight="".concat(m.lineHeight/m.fontSize),_.style.setProperty("--vscode-parameterHintsWidget-editorFontFamily",m.fontFamily),_.style.setProperty("--vscode-parameterHintsWidget-editorFontFamilyDefault",EDITOR_FONT_DEFAULTS.fontFamily)};f(),this._register(Event$1.chain(this.editor.onDidChangeConfiguration.bind(this.editor),m=>m.filter(_=>_.hasChanged(59)))(f)),this._register(this.editor.onDidLayoutChange(m=>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.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.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){var u;if(this.renderDisposeables.clear(),!this.domNodes)return;const t=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",t),this.keyMultipleSignatures.set(t),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const r=e.signatures[e.activeSignature];if(!r)return;const s=append$2(this.domNodes.signature,$$7(".code")),a=r.parameters.length>0,l=(u=r.activeParameter)!=null?u:e.activeParameter;if(a)this.renderParameters(s,r,l);else{const g=append$2(s,$$7("span"));g.textContent=r.label}const c=r.parameters[l];if(c!=null&&c.documentation){const g=$$7("span.documentation");if(typeof c.documentation=="string")g.textContent=c.documentation;else{const f=this.renderMarkdownDocs(c.documentation);g.appendChild(f.element)}append$2(this.domNodes.docs,$$7("p",{},g))}if(r.documentation!==void 0)if(typeof r.documentation=="string")append$2(this.domNodes.docs,$$7("p",{},r.documentation));else{const g=this.renderMarkdownDocs(r.documentation);append$2(this.domNodes.docs,g.element)}const d=this.hasDocs(r,c);if(this.domNodes.signature.classList.toggle("has-docs",d),this.domNodes.docs.classList.toggle("empty",!d),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,c){let g="";const f=r.parameters[l];Array.isArray(f.label)?g=r.label.substring(f.label[0],f.label[1]):g=f.label,f.documentation&&(g+=typeof f.documentation=="string"?", ".concat(f.documentation):", ".concat(f.documentation.value)),r.documentation&&(g+=typeof r.documentation=="string"?", ".concat(r.documentation):", ".concat(r.documentation.value)),this.announcedLabel!==g&&(alert(localize(1314,"{0}, hint",g)),this.announcedLabel=g)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=this.renderDisposeables.add(this.markdownRendererService.render(e,{context:this.editor,asyncRenderCallback:()=>{var r;(r=this.domNodes)==null||r.scrollbar.scanDomNode()}}));return t.element.classList.add("markdown-docs"),t}hasDocs(e,t){return!!(t&&typeof t.documentation=="string"&&assertReturnsDefined(t.documentation).length>0||t&&typeof t.documentation=="object"&&assertReturnsDefined(t.documentation).value.length>0||e.documentation&&typeof e.documentation=="string"&&assertReturnsDefined(e.documentation).length>0||e.documentation&&typeof e.documentation=="object"&&assertReturnsDefined(e.documentation.value).length>0)}renderParameters(e,t,r){const[s,a]=this.getParameterLabelOffsets(t,r),l=document.createElement("span");l.textContent=t.label.substring(0,s);const c=document.createElement("span");c.textContent=t.label.substring(s,a),c.className="parameter active";const d=document.createElement("span");d.textContent=t.label.substring(a),append$2(e,l,c,d)}getParameterLabelOffsets(e,t){const r=e.parameters[t];if(r){if(Array.isArray(r.label))return r.label;if(r.label.length){const s=new RegExp("(\\W|^)".concat(escapeRegExpCharacters(r.label),"(?=\\W|$)"),"g");s.test(e.label);const a=s.lastIndex-r.label.length;return a>=0?[a,s.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 e=Math.max(this.editor.getLayoutInfo().height/4,250),t="".concat(e,"px");this.domNodes.element.style.maxHeight=t;const r=this.domNodes.element.getElementsByClassName("phwrapper");r.length&&(r[0].style.maxHeight=t)}},ParameterHintsWidget_1=On,On.ID="editor.widget.parameterHintsWidget",On);ParameterHintsWidget=ParameterHintsWidget_1=__decorate$_([__param$V(2,IContextKeyService),__param$V(3,IMarkdownRendererService)],ParameterHintsWidget);registerColor("editorHoverWidget.highlightForeground",listHighlightForeground,localize(1315,"Foreground color of the active item in the parameter hint."));var __decorate$Z=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$U=function(o,e){return function(t,r){e(t,r,o)}},ParameterHintsController_1,Pn;let ParameterHintsController=(Pn=class extends Disposable$1{static get(e){return e.getContribution(ParameterHintsController_1.ID)}constructor(e,t,r){super(),this.editor=e,this.model=this._register(new ParameterHintsModel(e,r.signatureHelpProvider)),this._register(this.model.onChangedHints(s=>{var a;s?(this.widget.value.show(),this.widget.value.render(s)):(a=this.widget.rawValue)==null||a.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.previous()}next(){var e;(e=this.widget.rawValue)==null||e.next()}trigger(e){this.model.trigger(e,0)}},ParameterHintsController_1=Pn,Pn.ID="editor.controller.parameterHints",Pn);ParameterHintsController=ParameterHintsController_1=__decorate$Z([__param$U(1,IInstantiationService),__param$U(2,ILanguageFeaturesService)],ParameterHintsController);class TriggerParameterHintsAction extends EditorAction{constructor(){super({id:"editor.action.triggerParameterHints",label:localize2(1311,"Trigger Parameter Hints"),precondition:EditorContextKeys.hasSignatureHelpProvider,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:3082,weight:100}})}run(e,t){const r=ParameterHintsController.get(t);r==null||r.trigger({triggerKind:SignatureHelpTriggerKind$2.Invoke})}}registerEditorContribution(ParameterHintsController.ID,ParameterHintsController,2);registerEditorAction(TriggerParameterHintsAction);const weight$1=175,ParameterHintsCommand=EditorCommand.bindToContribution(ParameterHintsController.get);registerEditorCommand(new ParameterHintsCommand({id:"closeParameterHints",precondition:Context$1.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$1.Visible,Context$1.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$1.Visible,Context$1.MultipleSignatures),handler:o=>o.next(),kbOpts:{weight:weight$1,kbExpr:EditorContextKeys.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));const la=class la extends Disposable$1{constructor(e){super(),this._editor=e,this._editorObs=observableCodeEditor(this._editor),this._placeholderText=this._editorObs.getOption(100),this._state=derivedOpts({owner:this,equalsFn:structuralEquals},t=>{const r=this._placeholderText.read(t);if(r&&this._editorObs.valueIsEmpty.read(t))return{placeholder:r}}),this._shouldViewBeAlive=isOrWasTrue(this,t=>{var r;return((r=this._state.read(t))==null?void 0:r.placeholder)!==void 0}),this._view=derived(t=>{if(!this._shouldViewBeAlive.read(t))return;const r=h("div.editorPlaceholder");t.store.add(autorun(s=>{var c;const a=this._state.read(s),l=(a==null?void 0:a.placeholder)!==void 0;r.root.style.display=l?"block":"none",r.root.innerText=(c=a==null?void 0:a.placeholder)!=null?c:""})),t.store.add(autorun(s=>{const a=this._editorObs.layoutInfo.read(s);r.root.style.left="".concat(a.contentLeft,"px"),r.root.style.width=a.contentWidth-a.verticalScrollbarWidth+"px",r.root.style.top="".concat(this._editor.getTopForLineNumber(0),"px")})),t.store.add(autorun(s=>{r.root.style.fontFamily=this._editorObs.getOption(58).read(s),r.root.style.fontSize=this._editorObs.getOption(61).read(s)+"px",r.root.style.lineHeight=this._editorObs.getOption(75).read(s)+"px"})),t.store.add(this._editorObs.createOverlayWidget({allowEditorOverflow:!1,minContentWidthInPx:constObservable(0),position:constObservable(null),domNode:r.root}))}),this._view.recomputeInitiallyAndOnChange(this._store)}};la.ID="editor.contrib.placeholderText";let PlaceholderTextContribution=la;function isOrWasTrue(o,e){return derivedObservableWithCache(o,(t,r)=>r===!0?!0:e(t))}var __decorate$Y=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$T=function(o,e){return function(t,r){e(t,r,o)}};class BaseClass{constructor(e){this.instantiationService=e}init(...e){}}function wrapInReloadableClass1(o){return o()}let BaseClass1=class extends BaseClass{constructor(e,t){super(t),this.init(e)}};BaseClass1=__decorate$Y([__param$T(1,IInstantiationService)],BaseClass1);registerEditorContribution(PlaceholderTextContribution.ID,wrapInReloadableClass1(()=>PlaceholderTextContribution),0);registerColor("editor.placeholder.foreground",ghostTextForeground,localize(1334,"Foreground color of the placeholder text in the editor."));const ITextResourceConfigurationService=createDecorator("textResourceConfigurationService"),ITextResourcePropertiesService=createDecorator("textResourcePropertiesService");var __decorate$X=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$S=function(o,e){return function(t,r){e(t,r,o)}};const CONTEXT_RENAME_INPUT_VISIBLE=new RawContextKey("renameInputVisible",!1,localize(1391,"Whether the rename input widget is visible"));new RawContextKey("renameInputFocused",!1,localize(1392,"Whether the rename input widget is focused"));let RenameWidget=class{constructor(e,t,r,s,a,l){this._editor=e,this._acceptKeybindings=t,this._themeService=r,this._keybindingService=s,this._logService=l,this.allowEditorOverflow=!0,this._disposables=new DisposableStore$1,this._visibleContextKey=CONTEXT_RENAME_INPUT_VISIBLE.bindTo(a),this._isEditingRenameCandidate=!1,this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,this._candidates=new Set,this._beforeFirstInputFieldEditSW=new StopWatch,this._inputWithButton=new InputWithButton,this._disposables.add(this._inputWithButton),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(c=>{c.hasChanged(59)&&this._updateFont()})),this._disposables.add(r.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._domNode.appendChild(this._inputWithButton.domNode),this._renameCandidateListView=this._disposables.add(new RenameCandidateListView(this._domNode,{fontInfo:this._editor.getOption(59),onFocusChange:e=>{this._inputWithButton.input.value=e,this._isEditingRenameCandidate=!1},onSelectionChange:()=>{this._isEditingRenameCandidate=!1,this.acceptInput(!1)}})),this._disposables.add(this._inputWithButton.onDidInputChange(()=>{var e,t,r,s;((e=this._renameCandidateListView)==null?void 0:e.focusedCandidate)!==void 0&&(this._isEditingRenameCandidate=!0),(t=this._timeBeforeFirstInputFieldEdit)!=null||(this._timeBeforeFirstInputFieldEdit=this._beforeFirstInputFieldEditSW.elapsed()),((r=this._renameCandidateProvidersCts)==null?void 0:r.token.isCancellationRequested)===!1&&this._renameCandidateProvidersCts.cancel(),(s=this._renameCandidateListView)==null||s.clearFocus()})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(e){var a,l,c,d,u;if(!this._domNode)return;const t=e.getColor(widgetShadow),r=e.getColor(widgetBorder);this._domNode.style.backgroundColor=String((a=e.getColor(editorWidgetBackground))!=null?a:""),this._domNode.style.boxShadow=t?" 0 0 8px 2px ".concat(t):"",this._domNode.style.border=r?"1px solid ".concat(r):"",this._domNode.style.color=String((l=e.getColor(inputForeground))!=null?l:"");const s=e.getColor(inputBorder);this._inputWithButton.domNode.style.backgroundColor=String((c=e.getColor(inputBackground))!=null?c:""),this._inputWithButton.input.style.backgroundColor=String((d=e.getColor(inputBackground))!=null?d:""),this._inputWithButton.domNode.style.borderWidth=s?"1px":"0px",this._inputWithButton.domNode.style.borderStyle=s?"solid":"none",this._inputWithButton.domNode.style.borderColor=(u=s==null?void 0:s.toString())!=null?u:"none"}_updateFont(){if(this._domNode===void 0)return;assertType(this._label!==void 0,"RenameWidget#_updateFont: _label must not be undefined given _domNode is defined"),this._editor.applyFontInfo(this._inputWithButton.input);const e=this._editor.getOption(59);this._label.style.fontSize="".concat(this._computeLabelFontSize(e.fontSize),"px")}_computeLabelFontSize(e){return e*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const e=getClientArea(this.getDomNode().ownerDocument.body),t=getDomNodePagePosition(this._editor.getDomNode()),r=this._getTopForPosition();this._nPxAvailableAbove=r+t.top,this._nPxAvailableBelow=e.height-this._nPxAvailableAbove;const s=this._editor.getOption(75),{totalHeight:a}=RenameCandidateView.getLayoutInfo({lineHeight:s}),l=this._nPxAvailableBelow>a*6?[2,1]:[1,2];return{position:this._position,preference:l}}beforeRender(){var r,s;const[e,t]=this._acceptKeybindings;return this._label.innerText=localize(1393,"{0} to Rename, {1} to Preview",(r=this._keybindingService.lookupKeybinding(e))==null?void 0:r.getLabel(),(s=this._keybindingService.lookupKeybinding(t))==null?void 0:s.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(e){if(e===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;assertType(this._renameCandidateListView),assertType(this._nPxAvailableAbove!==void 0),assertType(this._nPxAvailableBelow!==void 0);const t=getTotalHeight(this._inputWithButton.domNode),r=getTotalHeight(this._label);let s;e===2?s=this._nPxAvailableBelow:s=this._nPxAvailableAbove,this._renameCandidateListView.layout({height:s-r-t,width:getTotalWidth(this._inputWithButton.domNode)})}acceptInput(e){var t;this._trace("invoking acceptInput"),(t=this._currentAcceptInput)==null||t.call(this,e)}cancelInput(e,t){var r;(r=this._currentCancelInput)==null||r.call(this,e)}focusNextRenameSuggestion(){var e;(e=this._renameCandidateListView)!=null&&e.focusNext()||(this._inputWithButton.input.value=this._currentName)}focusPreviousRenameSuggestion(){var e;(e=this._renameCandidateListView)!=null&&e.focusPrevious()||(this._inputWithButton.input.value=this._currentName)}getInput(e,t,r,s,a){const{start:l,end:c}=this._getSelection(e,t);this._renameCts=a;const d=new DisposableStore$1;this._nRenameSuggestionsInvocations=0,this._hadAutomaticRenameSuggestionsInvocation=!1,s===void 0?this._inputWithButton.button.style.display="none":(this._inputWithButton.button.style.display="flex",this._requestRenameCandidatesOnce=s,this._requestRenameCandidates(t,!1),d.add(addDisposableListener(this._inputWithButton.button,"click",()=>this._requestRenameCandidates(t,!0))),d.add(addDisposableListener(this._inputWithButton.button,EventType$1.KEY_DOWN,g=>{const f=new StandardKeyboardEvent(g);(f.equals(3)||f.equals(10))&&(f.stopPropagation(),f.preventDefault(),this._requestRenameCandidates(t,!0))}))),this._isEditingRenameCandidate=!1,this._domNode.classList.toggle("preview",r),this._position=new Position$1(e.startLineNumber,e.startColumn),this._currentName=t,this._inputWithButton.input.value=t,this._inputWithButton.input.setAttribute("selectionStart",l.toString()),this._inputWithButton.input.setAttribute("selectionEnd",c.toString()),this._inputWithButton.input.size=Math.max((e.endColumn-e.startColumn)*1.1,20),this._beforeFirstInputFieldEditSW.reset(),d.add(toDisposable(()=>{this._renameCts=void 0,a.dispose(!0)})),d.add(toDisposable(()=>{this._renameCandidateProvidersCts!==void 0&&(this._renameCandidateProvidersCts.dispose(!0),this._renameCandidateProvidersCts=void 0)})),d.add(toDisposable(()=>this._candidates.clear()));const u=new DeferredPromise;return u.p.finally(()=>{d.dispose(),this._hide()}),this._currentCancelInput=g=>{var f;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(f=this._renameCandidateListView)==null||f.clearCandidates(),u.complete(g),!0},this._currentAcceptInput=g=>{this._trace("invoking _currentAcceptInput"),assertType(this._renameCandidateListView!==void 0);const f=this._renameCandidateListView.nCandidates;let m,_;const v=this._renameCandidateListView.focusedCandidate;if(v!==void 0?(this._trace("using new name from renameSuggestion"),m=v,_={k:"renameSuggestion"}):(this._trace("using new name from inputField"),m=this._inputWithButton.input.value,_=this._isEditingRenameCandidate?{k:"userEditedRenameSuggestion"}:{k:"inputField"}),m===t||m.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._renameCandidateListView.clearCandidates(),u.complete({newName:m,wantsPreview:r&&g,stats:{source:_,nRenameSuggestions:f,timeBeforeFirstInputFieldEdit:this._timeBeforeFirstInputFieldEdit,nRenameSuggestionsInvocations:this._nRenameSuggestionsInvocations,hadAutomaticRenameSuggestionsInvocation:this._hadAutomaticRenameSuggestionsInvocation}})},d.add(a.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),d.add(this._editor.onDidBlurEditorWidget(()=>{var g;return this.cancelInput(!((g=this._domNode)!=null&&g.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")})),this._show(),u.p}_requestRenameCandidates(e,t){if(this._requestRenameCandidatesOnce!==void 0&&(this._renameCandidateProvidersCts!==void 0&&this._renameCandidateProvidersCts.dispose(!0),assertType(this._renameCts),this._inputWithButton.buttonState!=="stop")){this._renameCandidateProvidersCts=new CancellationTokenSource$1;const r=t?NewSymbolNameTriggerKind$1.Invoke:NewSymbolNameTriggerKind$1.Automatic,s=this._requestRenameCandidatesOnce(r,this._renameCandidateProvidersCts.token);if(s.length===0){this._inputWithButton.setSparkleButton();return}t||(this._hadAutomaticRenameSuggestionsInvocation=!0),this._nRenameSuggestionsInvocations+=1,this._inputWithButton.setStopButton(),this._updateRenameCandidates(s,e,this._renameCts.token)}}_getSelection(e,t){assertType(this._editor.hasModel());const r=this._editor.getSelection();let s=0,a=t.length;return!Range$2.isEmpty(r)&&!Range$2.spansMultipleLines(r)&&Range$2.containsRange(e,r)&&(s=Math.max(0,r.startColumn-e.startColumn),a=Math.min(e.endColumn,r.endColumn)-e.startColumn),{start:s,end:a}}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._inputWithButton.input.focus(),this._inputWithButton.input.setSelectionRange(parseInt(this._inputWithButton.input.getAttribute("selectionStart")),parseInt(this._inputWithButton.input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(e,t,r){const s=(...u)=>this._trace("_updateRenameCandidates",...u);s("start");const a=await raceCancellation(Promise.allSettled(e),r);if(this._inputWithButton.setSparkleButton(),a===void 0){s("returning early - received updateRenameCandidates results - undefined");return}const l=a.flatMap(u=>u.status==="fulfilled"&&isDefined(u.value)?u.value:[]);s("received updateRenameCandidates results - total (unfiltered) ".concat(l.length," candidates."));const c=distinct(l,u=>u.newSymbolName);s("distinct candidates - ".concat(c.length," candidates."));const d=c.filter(({newSymbolName:u})=>u.trim().length>0&&u!==this._inputWithButton.input.value&&u!==t&&!this._candidates.has(u));if(s("valid distinct candidates - ".concat(l.length," candidates.")),d.forEach(u=>this._candidates.add(u.newSymbolName)),d.length<1){s("returning early - no valid distinct candidates");return}s("setting candidates"),this._renameCandidateListView.setCandidates(d),s("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const e=this._editor.getVisibleRanges();let t;return e.length>0?t=e[0].startLineNumber:(this._logService.warn("RenameWidget#_getTopForPosition: this should not happen - visibleRanges is empty"),t=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(t)}_trace(...e){this._logService.trace("RenameWidget",...e)}};RenameWidget=__decorate$X([__param$S(2,IThemeService),__param$S(3,IKeybindingService),__param$S(4,IContextKeyService),__param$S(5,ILogService)],RenameWidget);class RenameCandidateListView{constructor(e,t){this._disposables=new DisposableStore$1,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=t.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=t.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.className="rename-box rename-candidate-list-container",e.appendChild(this._listContainer),this._listWidget=RenameCandidateListView._createListWidget(this._listContainer,this._candidateViewHeight,t.fontInfo),this._disposables.add(this._listWidget.onDidChangeFocus(r=>{r.elements.length===1&&t.onFocusChange(r.elements[0].newSymbolName)},this._disposables)),this._disposables.add(this._listWidget.onDidChangeSelection(r=>{r.elements.length===1&&t.onSelectionChange()},this._disposables)),this._disposables.add(this._listWidget.onDidBlur(r=>{this._listWidget.setFocus([])})),this._listWidget.style(getListStyles({listInactiveFocusForeground:quickInputListFocusForeground,listInactiveFocusBackground:quickInputListFocusBackground}))}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:e,width:t}){this._availableHeight=e,this._minimumWidth=t}setCandidates(e){this._listWidget.splice(0,0,e);const t=this._pickListHeight(this._listWidget.length),r=this._pickListWidth(e);this._listWidget.layout(t,r),this._listContainer.style.height="".concat(t,"px"),this._listContainer.style.width="".concat(r,"px"),status(localize(1394,"Received {0} rename suggestions",e.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const e=this._listWidget.getSelectedElements()[0];if(e!==void 0)return e.newSymbolName;const t=this._listWidget.getFocusedElements()[0];if(t!==void 0)return t.newSymbolName}focusNext(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0)return this._listWidget.focusFirst(),this._listWidget.reveal(0),!0;if(e[0]===this._listWidget.length-1)return this._listWidget.setFocus([]),this._listWidget.reveal(0),!1;{this._listWidget.focusNext();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}focusPrevious(){if(this._listWidget.length===0)return!1;const e=this._listWidget.getFocus();if(e.length===0){this._listWidget.focusLast();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}else{if(e[0]===0)return this._listWidget.setFocus([]),!1;{this._listWidget.focusPrevious();const t=this._listWidget.getFocus()[0];return this._listWidget.reveal(t),!0}}}clearFocus(){this._listWidget.setFocus([])}get _candidateViewHeight(){const{totalHeight:e}=RenameCandidateView.getLayoutInfo({lineHeight:this._lineHeight});return e}_pickListHeight(e){const t=this._candidateViewHeight*e;return Math.min(t,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(e){const t=Math.ceil(Math.max(...e.map(s=>s.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}static _createListWidget(e,t,r){const s=new class{getTemplateId(l){return"candidate"}getHeight(l){return t}},a=new class{constructor(){this.templateId="candidate"}renderTemplate(l){return new RenameCandidateView(l,r)}renderElement(l,c,d){d.populate(l)}disposeTemplate(l){l.dispose()}};return new List("NewSymbolNameCandidates",e,s,[a],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1})}}class InputWithButton{constructor(){this._buttonHoverContent="",this._onDidInputChange=new Emitter$1,this.onDidInputChange=this._onDidInputChange.event,this._disposables=new DisposableStore$1}get domNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="rename-input-with-button",this._domNode.style.display="flex",this._domNode.style.flexDirection="row",this._domNode.style.alignItems="center",this._inputNode=document.createElement("input"),this._inputNode.className="rename-input",this._inputNode.type="text",this._inputNode.style.border="none",this._inputNode.setAttribute("aria-label",localize(1395,"Rename input. Type new name and press Enter to commit.")),this._domNode.appendChild(this._inputNode),this._buttonNode=document.createElement("div"),this._buttonNode.className="rename-suggestions-button",this._buttonNode.setAttribute("tabindex","0"),this._buttonGenHoverText=localize(1396,"Generate New Name Suggestions"),this._buttonCancelHoverText=localize(1397,"Cancel"),this._buttonHoverContent=this._buttonGenHoverText,this._disposables.add(getBaseLayerHoverDelegate().setupDelayedHover(this._buttonNode,()=>({content:this._buttonHoverContent,style:1}))),this._domNode.appendChild(this._buttonNode),this._disposables.add(addDisposableListener(this.input,EventType$1.INPUT,()=>this._onDidInputChange.fire())),this._disposables.add(addDisposableListener(this.input,EventType$1.KEY_DOWN,e=>{const t=new StandardKeyboardEvent(e);(t.keyCode===15||t.keyCode===17)&&this._onDidInputChange.fire()})),this._disposables.add(addDisposableListener(this.input,EventType$1.CLICK,()=>this._onDidInputChange.fire())),this._disposables.add(addDisposableListener(this.input,EventType$1.FOCUS,()=>{this.domNode.style.outlineWidth="1px",this.domNode.style.outlineStyle="solid",this.domNode.style.outlineOffset="-1px",this.domNode.style.outlineColor="var(--vscode-focusBorder)"})),this._disposables.add(addDisposableListener(this.input,EventType$1.BLUR,()=>{this.domNode.style.outline="none"}))),this._domNode}get input(){return assertType(this._inputNode),this._inputNode}get button(){return assertType(this._buttonNode),this._buttonNode}get buttonState(){return this._buttonState}setSparkleButton(){var e;this._buttonState="sparkle",(e=this._sparkleIcon)!=null||(this._sparkleIcon=renderIcon(Codicon.sparkle)),clearNode(this.button),this.button.appendChild(this._sparkleIcon),this.button.setAttribute("aria-label","Generating new name suggestions"),this._buttonHoverContent=this._buttonGenHoverText,this.input.focus()}setStopButton(){var e;this._buttonState="stop",(e=this._stopIcon)!=null||(this._stopIcon=renderIcon(Codicon.stopCircle)),clearNode(this.button),this.button.appendChild(this._stopIcon),this.button.setAttribute("aria-label","Cancel generating new name suggestions"),this._buttonHoverContent=this._buttonCancelHoverText,this.input.focus()}dispose(){this._disposables.dispose()}}const Kr=class Kr{constructor(e,t){this._domNode=document.createElement("div"),this._domNode.className="rename-box rename-candidate",this._domNode.style.display="flex",this._domNode.style.columnGap="5px",this._domNode.style.alignItems="center",this._domNode.style.height="".concat(t.lineHeight,"px"),this._domNode.style.padding="".concat(Kr._PADDING,"px");const r=document.createElement("div");r.style.display="flex",r.style.alignItems="center",r.style.width=r.style.height="".concat(t.lineHeight*.8,"px"),this._domNode.appendChild(r),this._icon=renderIcon(Codicon.sparkle),this._icon.style.display="none",r.appendChild(this._icon),this._label=document.createElement("div"),applyFontInfo(this._label,t),this._domNode.appendChild(this._label),e.appendChild(this._domNode)}populate(e){this._updateIcon(e),this._updateLabel(e)}_updateIcon(e){var r;const t=!!((r=e.tags)!=null&&r.includes(NewSymbolNameTag$1.AIGenerated));this._icon.style.display=t?"inherit":"none"}_updateLabel(e){this._label.innerText=e.newSymbolName}static getLayoutInfo({lineHeight:e}){return{totalHeight:e+Kr._PADDING*2}}dispose(){}};Kr._PADDING=2;let RenameCandidateView=Kr;var __decorate$W=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$R=function(o,e){return function(t,r){e(t,r,o)}},RenameController_1;class RenameSkeleton{constructor(e,t,r){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=r.ordered(e)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(e){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx<this._providers.length;this._providerRenameIdx++){const s=this._providers[this._providerRenameIdx];if(!s.resolveRenameLocation)break;const a=await s.resolveRenameLocation(this.model,this.position,e);if(a){if(a.rejectReason){t.push(a.rejectReason);continue}return a}}this._providerRenameIdx=0;const r=this.model.getWordAtPosition(this.position);return r?{range:new Range$2(this.position.lineNumber,r.startColumn,this.position.lineNumber,r.endColumn),text:r.word,rejectReason:t.length>0?t.join("\n"):void 0}:{range:Range$2.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join("\n"):void 0}}async provideRenameEdits(e,t){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}async _provideRenameEdits(e,t,r,s){const a=this._providers[t];if(!a)return{edits:[],rejectReason:r.join("\n")};const l=await a.provideRenameEdits(this.model,this.position,e,s);if(l){if(l.rejectReason)return this._provideRenameEdits(e,t+1,r.concat(l.rejectReason),s)}else return this._provideRenameEdits(e,t+1,r.concat(localize(1380,"No result.")),s);return l}}async function rename(o,e,t,r){const s=new RenameSkeleton(e,t,o),a=await s.resolveRenameLocation(CancellationToken.None);return a!=null&&a.rejectReason?{edits:[],rejectReason:a.rejectReason}:s.provideRenameEdits(r,CancellationToken.None)}var $n;let RenameController=($n=class{static get(e){return e.getContribution(RenameController_1.ID)}constructor(e,t,r,s,a,l,c,d){this.editor=e,this._instaService=t,this._notificationService=r,this._bulkEditService=s,this._progressService=a,this._logService=l,this._configService=c,this._languageFeaturesService=d,this._disposableStore=new DisposableStore$1,this._cts=new CancellationTokenSource$1,this._renameWidget=this._disposableStore.add(this._instaService.createInstance(RenameWidget,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var v,b;const e=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new CancellationTokenSource$1,!this.editor.hasModel()){e("editor has no model");return}const t=this.editor.getPosition(),r=new RenameSkeleton(this.editor.getModel(),t,this._languageFeaturesService.renameProvider);if(!r.hasProvider()){e("skeleton has no provider");return}const s=new EditorStateCancellationTokenSource(this.editor,5,void 0,this._cts.token);let a;try{e("resolving rename location");const C=r.resolveRenameLocation(s.token);this._progressService.showWhile(C,250),a=await C,e("resolved rename location")}catch(C){C instanceof CancellationError?e("resolve rename location cancelled",JSON.stringify(C,null," ")):(e("resolve rename location failed",C instanceof Error?C:JSON.stringify(C,null," ")),(typeof C=="string"||isMarkdownString(C))&&((v=MessageController.get(this.editor))==null||v.showMessage(C||localize(1381,"An unknown error occurred while resolving rename location"),t)));return}finally{s.dispose()}if(!a){e("returning early - no loc");return}if(a.rejectReason){e("returning early - rejected with reason: ".concat(a.rejectReason),a.rejectReason),(b=MessageController.get(this.editor))==null||b.showMessage(a.rejectReason,t);return}if(s.token.isCancellationRequested){e("returning early - cts1 cancelled");return}const l=new EditorStateCancellationTokenSource(this.editor,5,a.range,this._cts.token),c=this.editor.getModel(),d=this._languageFeaturesService.newSymbolNamesProvider.all(c),u=await Promise.all(d.map(async C=>{var y;return[C,(y=await C.supportsAutomaticNewSymbolNamesTriggerKind)!=null?y:!1]})),g=(C,y)=>{let S=u.slice();return C===NewSymbolNameTriggerKind$1.Automatic&&(S=S.filter(([w,E])=>E)),S.map(([w])=>w.provideNewSymbolNames(c,a.range,C,y))};e("creating rename input field and awaiting its result");const f=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),m=await this._renameWidget.getInput(a.range,a.text,f,d.length>0?g:void 0,l);if(e("received response from rename input field"),typeof m=="boolean"){e("returning early - rename input field response - ".concat(m)),m&&this.editor.focus(),l.dispose();return}this.editor.focus(),e("requesting rename edits");const _=raceCancellation(r.provideRenameEdits(m.newName,l.token),l.token).then(async C=>{if(!C){e("returning early - no rename edits result");return}if(!this.editor.hasModel()){e("returning early - no model after rename edits are provided");return}if(C.rejectReason){e("returning early - rejected with reason: ".concat(C.rejectReason)),this._notificationService.info(C.rejectReason);return}this.editor.setSelection(Range$2.fromPositions(this.editor.getSelection().getPosition())),e("applying edits"),this._bulkEditService.apply(C,{editor:this.editor,showPreview:m.wantsPreview,label:localize(1382,"Renaming '{0}' to '{1}'",a==null?void 0:a.text,m.newName),code:"undoredo.rename",quotableLabel:localize(1383,"Renaming {0} to {1}",a==null?void 0:a.text,m.newName),respectAutoSaveConfig:!0,reason:EditSources.rename()}).then(y=>{e("edits applied"),y.ariaSummary&&alert(localize(1384,"Successfully renamed '{0}' to '{1}'. Summary: {2}",a.text,m.newName,y.ariaSummary))}).catch(y=>{e("error when applying edits ".concat(JSON.stringify(y,null," "))),this._notificationService.error(localize(1385,"Rename failed to apply edits")),this._logService.error(y)})},C=>{e("error when providing rename edits",JSON.stringify(C,null," ")),this._notificationService.error(localize(1386,"Rename failed to compute edits")),this._logService.error(C)}).finally(()=>{l.dispose()});return e("returning rename operation"),this._progressService.showWhile(_,250),_}acceptRenameInput(e){this._renameWidget.acceptInput(e)}cancelRenameInput(){this._renameWidget.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameWidget.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameWidget.focusPreviousRenameSuggestion()}},RenameController_1=$n,$n.ID="editor.contrib.renameController",$n);RenameController=RenameController_1=__decorate$W([__param$R(1,IInstantiationService),__param$R(2,INotificationService),__param$R(3,IBulkEditService),__param$R(4,IEditorProgressService),__param$R(5,ILogService),__param$R(6,ITextResourceConfigurationService),__param$R(7,ILanguageFeaturesService)],RenameController);class RenameAction extends EditorAction{constructor(){super({id:"editor.action.rename",label:localize2(1388,"Rename Symbol"),precondition:ContextKeyExpr.and(EditorContextKeys.writable,EditorContextKeys.hasRenameProvider),kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1},canTriggerInlineEdits:!0})}runCommand(e,t){const r=e.get(ICodeEditorService),[s,a]=Array.isArray(t)&&t||[void 0,void 0];return URI.isUri(s)&&Position$1.isIPosition(a)?r.openCodeEditor({resource:s},r.getActiveCodeEditor()).then(l=>{l&&(l.setPosition(a),l.invokeWithinContext(c=>(this.reportTelemetry(c,l),this.run(c,l))))},onUnexpectedError):super.runCommand(e,t)}run(e,t){const r=e.get(ILogService),s=RenameController.get(t);return s?(r.trace("[RenameAction] got controller, running..."),s.run()):(r.trace("[RenameAction] returning early - controller missing"),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:2051}}));registerEditorCommand(new RenameCommand({id:"cancelRenameInput",precondition:CONTEXT_RENAME_INPUT_VISIBLE,handler:o=>o.cancelRenameInput(),kbOpts:{weight:199,kbExpr:EditorContextKeys.focus,primary:9,secondary:[1033]}}));registerAction2(class extends Action2{constructor(){super({id:"focusNextRenameSuggestion",title:{...localize2(1389,"Focus Next Rename Suggestion")},precondition:CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:18,weight:199}]})}run(e){const t=e.get(ICodeEditorService).getFocusedCodeEditor();if(!t)return;const r=RenameController.get(t);r&&r.focusNextRenameSuggestion()}});registerAction2(class extends Action2{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...localize2(1390,"Focus Previous Rename Suggestion")},precondition:CONTEXT_RENAME_INPUT_VISIBLE,keybinding:[{primary:16,weight:199}]})}run(e){const t=e.get(ICodeEditorService).getFocusedCodeEditor();if(!t)return;const r=RenameController.get(t);r&&r.focusPreviousRenameSuggestion()}});registerModelAndPositionCommand("_executeDocumentRenameProvider",function(o,e,t,...r){const[s]=r;assertType(typeof s=="string");const{renameProvider:a}=o.get(ILanguageFeaturesService);return rename(a,e,t,s)});registerModelAndPositionCommand("_executePrepareRename",async function(o,e,t){const{renameProvider:r}=o.get(ILanguageFeaturesService),a=await new RenameSkeleton(e,t,r).resolveRenameLocation(CancellationToken.None);if(a!=null&&a.rejectReason)throw new Error(a.rejectReason);return a});Registry.as(Extensions$6.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:6,description:localize(1387,"Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});var __decorate$V=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$Q=function(o,e){return function(t,r){e(t,r,o)}},xr;let SectionHeaderDetector=(xr=class extends Disposable$1{constructor(e,t,r){super(),this.editor=e,this.languageConfigurationService=t,this.editorWorkerService=r,this.decorations=this.editor.createDecorationsCollection(),this.options=this.createOptions(e.getOption(81)),this.computePromise=null,this.currentOccurrences={},this._register(e.onDidChangeModel(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(e.onDidChangeModelLanguage(s=>{this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0)})),this._register(t.onDidChange(s=>{var l;const a=(l=this.editor.getModel())==null?void 0:l.getLanguageId();a&&s.affects(a)&&(this.currentOccurrences={},this.options=this.createOptions(e.getOption(81)),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(e.onDidChangeConfiguration(s=>{this.options&&!s.hasChanged(81)||(this.options=this.createOptions(e.getOption(81)),this.updateDecorations([]),this.stop(),this.computeSectionHeaders.schedule(0))})),this._register(this.editor.onDidChangeModelContent(s=>{this.computeSectionHeaders.schedule()})),this._register(e.onDidChangeModelTokens(s=>{this.computeSectionHeaders.isScheduled()||this.computeSectionHeaders.schedule(1e3)})),this.computeSectionHeaders=this._register(new RunOnceScheduler(()=>{this.findSectionHeaders()},250)),this.computeSectionHeaders.schedule(0)}createOptions(e){if(!e||!this.editor.hasModel())return;const t=this.editor.getModel().getLanguageId();if(!t)return;const r=this.languageConfigurationService.getLanguageConfiguration(t).comments,s=this.languageConfigurationService.getLanguageConfiguration(t).foldingRules;if(!(!r&&!(s!=null&&s.markers)))return{foldingRules:s,markSectionHeaderRegex:e.markSectionHeaderRegex,findMarkSectionHeaders:e.showMarkSectionHeaders,findRegionSectionHeaders:e.showRegionSectionHeaders}}findSectionHeaders(){var r,s;if(!this.editor.hasModel()||!((r=this.options)!=null&&r.findMarkSectionHeaders)&&!((s=this.options)!=null&&s.findRegionSectionHeaders))return;const e=this.editor.getModel();if(e.isDisposed()||e.isTooLargeForSyncing())return;const t=e.getVersionId();this.editorWorkerService.findSectionHeaders(e.uri,this.options).then(a=>{e.isDisposed()||e.getVersionId()!==t||this.updateDecorations(a)})}updateDecorations(e){const t=this.editor.getModel();t&&(e=e.filter(a=>{if(!a.shouldBeInComments)return!0;const l=t.validateRange(a.range),c=t.tokenization.getLineTokens(l.startLineNumber),d=c.findTokenIndexAtOffset(l.startColumn-1),u=c.getStandardTokenType(d);return c.getLanguageId(d)===t.getLanguageId()&&u===1}));const r=Object.values(this.currentOccurrences).map(a=>a.decorationId),s=e.map(a=>decoration(a));this.editor.changeDecorations(a=>{const l=a.deltaDecorations(r,s);this.currentOccurrences={};for(let c=0,d=l.length;c<d;c++){const u={sectionHeader:e[c],decorationId:l[c]};this.currentOccurrences[u.decorationId]=u}})}stop(){this.computeSectionHeaders.cancel(),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop(),this.decorations.clear()}},xr.ID="editor.sectionHeaderDetector",xr);SectionHeaderDetector=__decorate$V([__param$Q(1,ILanguageConfigurationService),__param$Q(2,IEditorWorkerService)],SectionHeaderDetector);function decoration(o){return{range:o.range,options:ModelDecorationOptions.createDynamic({description:"section-header",stickiness:3,collapseOnReplaceEdit:!0,minimap:{color:void 0,position:1,sectionHeaderStyle:o.hasSeparatorLine?2:1,sectionHeaderText:o.text}})}}registerEditorContribution(SectionHeaderDetector.ID,SectionHeaderDetector,1);class RateLimiter{constructor(e=5){this.timesPerSecond=e,this._lastRun=0,this._minimumTimeBetweenRuns=1e3/e}runIfNotLimited(e){const t=Date.now();t-this._lastRun>=this._minimumTimeBetweenRuns&&(this._lastRun=t,e())}}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,r=e.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(t,e.startColumn-1,r,e.endColumn-1),this._updateEndLineNumber()}split(e){const t=e.startLineNumber-this._startLineNumber,r=e.endLineNumber-this._startLineNumber,[s,a,l]=this._tokens.split(t,e.startColumn-1,r,e.endColumn-1);return[new SparseMultilineTokens(this._startLineNumber,s),new SparseMultilineTokens(this._startLineNumber+l,a)]}applyEdit(e,t){const[r,s,a]=countEOL(t);this.acceptEdit(e,r,s,a,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,r,s,a){this._acceptDeleteRange(e),this._acceptInsertText(new Position$1(e.startLineNumber,e.startColumn),t,r,s,a),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this._startLineNumber,r=e.endLineNumber-this._startLineNumber;if(r<0){const a=r-t;this._startLineNumber-=a;return}const s=this._tokens.getMaxDeltaLine();if(!(t>=s+1)){if(t<0&&r>=s+1){this._startLineNumber=0,this._tokens.clear();return}if(t<0){const a=-t;this._startLineNumber-=a,this._tokens.acceptDeleteRange(e.startColumn-1,0,0,r,e.endColumn-1)}else this._tokens.acceptDeleteRange(0,t,e.startColumn-1,r,e.endColumn-1)}}_acceptInsertText(e,t,r,s,a){if(t===0&&r===0)return;const l=e.lineNumber-this._startLineNumber;if(l<0){this._startLineNumber+=t;return}const c=this._tokens.getMaxDeltaLine();l>=c+1||this._tokens.acceptInsertText(l,e.column-1,t,r,s,a)}reportIfInvalid(e){this._tokens.reportIfInvalid(e,this._startLineNumber)}}const hi=class hi{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const t=[];for(let r=0;r<this._tokenCount;r++)t.push("(".concat(this._getDeltaLine(r)+e,",").concat(this._getStartCharacter(r),"-").concat(this._getEndCharacter(r),")"));return"[".concat(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),r=this._getDeltaLine(e-1),s=this._getEndCharacter(e-1);return new Range$2(0,t+1,r,s+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,r=this._getTokenCount()-1;for(;t<r;){const s=t+Math.floor((r-t)/2),a=this._getDeltaLine(s);if(a<e)t=s+1;else if(a>e)r=s-1;else{let l=s;for(;l>t&&this._getDeltaLine(l-1)===e;)l--;let c=s;for(;c<r&&this._getDeltaLine(c+1)===e;)c++;return new SparseLineTokens(this._tokens.subarray(4*l,4*c+4))}}return this._getDeltaLine(t)===e?new SparseLineTokens(this._tokens.subarray(4*t,4*t+4)):null}clear(){this._tokenCount=0}removeTokens(e,t,r,s){const a=this._tokens,l=this._tokenCount;let c=0,d=!1,u=0;for(let g=0;g<l;g++){const f=4*g,m=a[f],_=a[f+1],v=a[f+2],b=a[f+3];if((m>e||m===e&&v>=t)&&(m<r||m===r&&_<=s))d=!0;else{if(c===0&&(u=m),d){const C=4*c;a[C]=m-u,a[C+1]=_,a[C+2]=v,a[C+3]=b}else u!==0&&(a[f]=m-u);c++}}return this._tokenCount=c,u}split(e,t,r,s){const a=this._tokens,l=this._tokenCount,c=[],d=[];let u=c,g=0,f=0;for(let m=0;m<l;m++){const _=4*m,v=a[_],b=a[_+1],C=a[_+2],y=a[_+3];if(v>e||v===e&&C>=t){if(v<r||v===r&&b<=s)continue;u!==d&&(u=d,g=0,f=v)}u[g++]=v-f,u[g++]=b,u[g++]=C,u[g++]=y}return[new hi(new Uint32Array(c)),new hi(new Uint32Array(d)),f]}acceptDeleteRange(e,t,r,s,a){const l=this._tokens,c=this._tokenCount,d=s-t;let u=0,g=!1;for(let f=0;f<c;f++){const m=4*f;let _=l[m],v=l[m+1],b=l[m+2];const C=l[m+3];if(_<t||_===t&&b<=r){u++;continue}else if(_===t&&v<r)_===s&&b>a?b-=a-r:b=r;else if(_===t&&v===r)if(_===s&&b>a)b-=a-r;else{g=!0;continue}else if(_<s||_===s&&v<a)if(_===s&&b>a)_=t,v=r,b=v+(b-a);else{g=!0;continue}else if(_>s){if(d===0&&!g){u=c;break}_-=d}else if(_===s&&v>=a)e&&_===0&&(v+=e,b+=e),_-=d,v-=a-r,b-=a-r;else throw new Error("Not possible!");const y=4*u;l[y]=_,l[y+1]=v,l[y+2]=b,l[y+3]=C,u++}this._tokenCount=u}acceptInsertText(e,t,r,s,a,l){const c=r===0&&s===1&&(l>=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122),d=this._tokens,u=this._tokenCount;for(let g=0;g<u;g++){const f=4*g;let m=d[f],_=d[f+1],v=d[f+2];if(!(m<e||m===e&&v<t)){if(m===e&&v===t)if(c)v+=1;else continue;else if(m===e&&_<t&&t<v)r===0?v+=s:v=t;else{if(m===e&&_===t&&c)continue;if(m===e)if(m+=r,r===0)_+=s,v+=s;else{const b=v-_;_=a+(_-t),v=_+b}else m+=r}d[f]=m,d[f+1]=_,d[f+2]=v}}}reportIfInvalid(e,t){for(let r=0;r<this._tokenCount;r++){const s=this._getDeltaLine(r)+t;s<1?hi._rateLimiter.runIfNotLimited(()=>{console.error("Invalid Semantic Tokens Data From Extension: lineNumber < 1")}):s>e.getLineCount()?hi._rateLimiter.runIfNotLimited(()=>{console.error("Invalid Semantic Tokens Data From Extension: lineNumber > model.getLineCount()")}):this._getEndCharacter(r)>e.getLineLength(s)&&hi._rateLimiter.runIfNotLimited(()=>{console.error("Invalid Semantic Tokens Data From Extension: end character > model.getLineLength(lineNumber)")})}}};hi._rateLimiter=new RateLimiter(10/60);let SparseMultilineTokensStorage=hi;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$U=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$P=function(o,e){return function(t,r){e(t,r,o)}};let SemanticTokensProviderStyling=class{constructor(e,t,r,s){this._legend=e,this._themeService=t,this._languageService=r,this._logService=s,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new HashTable}getMetadata(e,t,r){const s=this._languageService.languageIdCodec.encodeLanguageId(r),a=this._hashTable.get(e,t,s);let l;if(a)l=a.metadata;else{let c=this._legend.tokenTypes[e];const d=[];if(c){let u=t;for(let f=0;u>0&&f<this._legend.tokenModifiers.length;f++)u&1&&d.push(this._legend.tokenModifiers[f]),u=u>>1;const g=this._themeService.getColorTheme().getTokenStyleMetadata(c,d,r);if(typeof g>"u")l=2147483647;else{if(l=0,typeof g.italic<"u"){const f=(g.italic?1:0)<<11;l|=f|1}if(typeof g.bold<"u"){const f=(g.bold?2:0)<<11;l|=f|2}if(typeof g.underline<"u"){const f=(g.underline?4:0)<<11;l|=f|4}if(typeof g.strikethrough<"u"){const f=(g.strikethrough?8:0)<<11;l|=f|8}if(g.foreground){const f=g.foreground<<15;l|=f|16}l===0&&(l=2147483647)}}else l=2147483647,c="not-in-legend";this._hashTable.add(e,t,s,l)}return l}warnOverlappingSemanticTokens(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn("Overlapping semantic tokens detected at lineNumber ".concat(e,", column ").concat(t)))}warnInvalidLengthSemanticTokens(e,t){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn("Semantic token with invalid length detected at lineNumber ".concat(e,", column ").concat(t)))}warnInvalidEditStart(e,t,r,s,a){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn("Invalid semantic tokens edit detected (previousResultId: ".concat(e,", resultId: ").concat(t,") at edit #").concat(r,": The provided start offset ").concat(s," is outside the previous data (length ").concat(a,").")))}};SemanticTokensProviderStyling=__decorate$U([__param$P(1,IThemeService),__param$P(2,ILanguageService),__param$P(3,ILogService)],SemanticTokensProviderStyling);function toMultilineTokens2(o,e,t){const r=o.data,s=o.data.length/5|0,a=Math.max(Math.ceil(s/1024),400),l=[];let c=0,d=1,u=0;for(;c<s;){const g=c;let f=Math.min(g+a,s);if(f<s){let S=f;for(;S-1>g&&r[5*S]===0;)S--;if(S-1===g){let w=f;for(;w+1<s&&r[5*w]===0;)w++;f=w}else f=S}let m=new Uint32Array((f-g)*4),_=0,v=0,b=0,C=0;for(;c<f;){const S=5*c,w=r[S],E=r[S+1],x=d+w|0,L=w===0?u+E|0:E,k=r[S+2],D=L+k|0,I=r[S+3],T=r[S+4];if(D<=L)e.warnInvalidLengthSemanticTokens(x,L+1);else if(b===x&&C>L)e.warnOverlappingSemanticTokens(x,L+1);else{const M=e.getMetadata(I,T,t);M!==2147483647&&(v===0&&(v=x),m[_]=x-v,m[_+1]=L,m[_+2]=D,m[_+3]=M,_+=4,b=x,C=D)}d=x,u=L,c++}_!==m.length&&(m=m.subarray(0,_));const y=SparseMultilineTokens.create(v,m);l.push(y)}return l}class HashTableEntry{constructor(e,t,r,s){this.tokenTypeIndex=e,this.tokenModifierSet=t,this.languageId=r,this.metadata=s,this.next=null}}const Qt=class Qt{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=Qt._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<Qt._SIZES.length?2/3*this._currentLength:0),this._elements=[],Qt._nullOutEntries(this._elements,this._currentLength)}static _nullOutEntries(e,t){for(let r=0;r<t;r++)e[r]=null}_hash2(e,t){return(e<<5)-e+t|0}_hashFunc(e,t,r){return this._hash2(this._hash2(e,t),r)%this._currentLength}get(e,t,r){const s=this._hashFunc(e,t,r);let a=this._elements[s];for(;a;){if(a.tokenTypeIndex===e&&a.tokenModifierSet===t&&a.languageId===r)return a;a=a.next}return null}add(e,t,r,s){if(this._elementsCount++,this._growCount!==0&&this._elementsCount>=this._growCount){const a=this._elements;this._currentLengthIndex++,this._currentLength=Qt._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1<Qt._SIZES.length?2/3*this._currentLength:0),this._elements=[],Qt._nullOutEntries(this._elements,this._currentLength);for(const l of a){let c=l;for(;c;){const d=c.next;c.next=null,this._add(c),c=d}}}this._add(new HashTableEntry(e,t,r,s))}_add(e){const t=this._hashFunc(e.tokenTypeIndex,e.tokenModifierSet,e.languageId);e.next=this._elements[t],this._elements[t]=e}};Qt._SIZES=[3,7,13,31,61,127,251,509,1021,2039,4093,8191,16381,32749,65521,131071,262139,524287,1048573,2097143];let HashTable=Qt;const ISemanticTokensStylingService=createDecorator("semanticTokensStylingService");function reverseEndianness(o){for(let e=0,t=o.length;e<t;e+=4){const r=o[e+0],s=o[e+1],a=o[e+2],l=o[e+3];o[e+0]=l,o[e+1]=a,o[e+2]=s,o[e+3]=r}}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 r of o.deltas)e[t++]=r.start,e[t++]=r.deleteCount,r.data?(e[t++]=r.data.length,e.set(r.data,t),t+=r.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}function isSemanticTokens(o){return o&&!!o.data}function isSemanticTokensEdits(o){return o&&Array.isArray(o.edits)}class DocumentSemanticTokensResult{constructor(e,t,r){this.provider=e,this.tokens=t,this.error=r}}function hasDocumentSemanticTokensProvider(o,e){return o.has(e)}function getDocumentSemanticTokensProviders(o,e){const t=o.orderedGroups(e);return t.length>0?t[0]:[]}async function getDocumentSemanticTokens(o,e,t,r,s){const a=getDocumentSemanticTokensProviders(o,e),l=await Promise.all(a.map(async c=>{let d,u=null;try{d=await c.provideDocumentSemanticTokens(e,c===t?r:null,s)}catch(g){u=g,d=null}return(!d||!isSemanticTokens(d)&&!isSemanticTokensEdits(d))&&(d=null),new DocumentSemanticTokensResult(c,d,u)}));for(const c of l){if(c.error)throw c.error;if(c.tokens)return c}return l.length>0?l[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]:[]}async function getDocumentRangeSemanticTokens(o,e,t,r){const s=getDocumentRangeSemanticTokensProviders(o,e),a=await Promise.all(s.map(async l=>{let c;try{c=await l.provideDocumentRangeSemanticTokens(e,t,r)}catch(d){onUnexpectedExternalError(d),c=null}return(!c||!isSemanticTokens(c))&&(c=null),new DocumentRangeSemanticTokensResult(l,c)}));for(const l of a)if(l.tokens)return l;return a.length>0?a[0]:null}CommandsRegistry.registerCommand("_provideDocumentSemanticTokensLegend",async(o,...e)=>{const[t]=e;assertType(t instanceof URI);const r=o.get(IModelService).getModel(t);if(!r)return;const{documentSemanticTokensProvider:s}=o.get(ILanguageFeaturesService),a=_getDocumentSemanticTokensProviderHighestGroup(s,r);return a?a[0].getLegend():o.get(ICommandService).executeCommand("_provideDocumentRangeSemanticTokensLegend",t)});CommandsRegistry.registerCommand("_provideDocumentSemanticTokens",async(o,...e)=>{const[t]=e;assertType(t instanceof URI);const r=o.get(IModelService).getModel(t);if(!r)return;const{documentSemanticTokensProvider:s}=o.get(ILanguageFeaturesService);if(!hasDocumentSemanticTokensProvider(s,r))return o.get(ICommandService).executeCommand("_provideDocumentRangeSemanticTokens",t,r.getFullModelRange());const a=await getDocumentSemanticTokens(s,r,null,null,CancellationToken.None);if(!a)return;const{provider:l,tokens:c}=a;if(!c||!isSemanticTokens(c))return;const d=encodeSemanticTokensDto({id:0,type:"full",data:c.data});return c.resultId&&l.releaseDocumentSemanticTokens(c.resultId),d});CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(o,...e)=>{const[t,r]=e;assertType(t instanceof URI);const s=o.get(IModelService).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:a}=o.get(ILanguageFeaturesService),l=getDocumentRangeSemanticTokensProviders(a,s);if(l.length===0)return;if(l.length===1)return l[0].getLegend();if(!r||!Range$2.isIRange(r))return console.warn("provideDocumentRangeSemanticTokensLegend might be out-of-sync with provideDocumentRangeSemanticTokens unless a range argument is passed in"),l[0].getLegend();const c=await getDocumentRangeSemanticTokens(a,s,Range$2.lift(r),CancellationToken.None);if(c)return c.provider.getLegend()});CommandsRegistry.registerCommand("_provideDocumentRangeSemanticTokens",async(o,...e)=>{const[t,r]=e;assertType(t instanceof URI),assertType(Range$2.isIRange(r));const s=o.get(IModelService).getModel(t);if(!s)return;const{documentRangeSemanticTokensProvider:a}=o.get(ILanguageFeaturesService),l=await getDocumentRangeSemanticTokens(a,s,Range$2.lift(r),CancellationToken.None);if(!(!l||!l.tokens))return encodeSemanticTokensDto({id:0,type:"full",data:l.tokens.data})});const SEMANTIC_HIGHLIGHTING_SETTING_ID="editor.semanticHighlighting";function isSemanticColoringEnabled(o,e,t){var s;const r=(s=t.getValue(SEMANTIC_HIGHLIGHTING_SETTING_ID,{overrideIdentifier:o.getLanguageId(),resource:o.uri}))==null?void 0:s.enabled;return typeof r=="boolean"?r:e.getColorTheme().semanticHighlighting}var __decorate$T=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$O=function(o,e){return function(t,r){e(t,r,o)}},ModelSemanticColoring_1;let DocumentSemanticTokensFeature=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._watchers=new ResourceMap;const c=g=>{var f;(f=this._watchers.get(g.uri))==null||f.dispose(),this._watchers.set(g.uri,new ModelSemanticColoring(g,e,r,a,l))},d=(g,f)=>{f.dispose(),this._watchers.delete(g.uri)},u=()=>{for(const g of t.getModels()){const f=this._watchers.get(g.uri);isSemanticColoringEnabled(g,r,s)?f||c(g):f&&d(g,f)}};t.getModels().forEach(g=>{isSemanticColoringEnabled(g,r,s)&&c(g)}),this._register(t.onModelAdded(g=>{isSemanticColoringEnabled(g,r,s)&&c(g)})),this._register(t.onModelRemoved(g=>{const f=this._watchers.get(g.uri);f&&d(g,f)})),this._register(s.onDidChangeConfiguration(g=>{g.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)&&u()})),this._register(r.onDidColorThemeChange(u))}dispose(){dispose(this._watchers.values()),this._watchers.clear(),super.dispose()}};DocumentSemanticTokensFeature=__decorate$T([__param$O(0,ISemanticTokensStylingService),__param$O(1,IModelService),__param$O(2,IThemeService),__param$O(3,IConfigurationService),__param$O(4,ILanguageFeatureDebounceService),__param$O(5,ILanguageFeaturesService)],DocumentSemanticTokensFeature);var Ti;let ModelSemanticColoring=(Ti=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._semanticTokensStylingService=t,this._isDisposed=!1,this._model=e,this._provider=a.documentSemanticTokensProvider,this._debounceInformation=s.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 l=()=>{dispose(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const c of this._provider.all(e))typeof c.onDidChange=="function"&&this._documentProvidersChangeListeners.push(c.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};l(),this._register(this._provider.onDidChange(()=>{l(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(r.onDidColorThemeChange(c=>{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,r=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,s=getDocumentSemanticTokens(this._provider,this._model,t,r,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const a=[],l=this._model.onDidChangeContent(d=>{a.push(d)}),c=new StopWatch(!1);s.then(d=>{if(this._debounceInformation.update(this._model,c.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,l.dispose(),!d)this._setDocumentSemanticTokens(null,null,null,a);else{const{provider:u,tokens:g}=d,f=this._semanticTokensStylingService.getStyling(u);this._setDocumentSemanticTokens(u,g||null,f,a)}},d=>{d&&(isCancellationError(d)||typeof d.message=="string"&&d.message.indexOf("busy")!==-1)||onUnexpectedError(d),this._currentDocumentRequestCancellationTokenSource=null,l.dispose(),(a.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,r,s,a){a=Math.min(a,r.length-s,e.length-t);for(let l=0;l<a;l++)r[s+l]=e[t+l]}_setDocumentSemanticTokens(e,t,r,s){const a=this._currentDocumentResponse,l=()=>{(s.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||!r){this._model.tokenization.setSemanticTokens(null,!1);return}if(!t){this._model.tokenization.setSemanticTokens(null,!0),l();return}if(isSemanticTokensEdits(t)){if(!a){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:a.data};else{let c=0;for(const m of t.edits)c+=(m.data?m.data.length:0)-m.deleteCount;const d=a.data,u=new Uint32Array(d.length+c);let g=d.length,f=u.length;for(let m=t.edits.length-1;m>=0;m--){const _=t.edits[m];if(_.start>d.length){r.warnInvalidEditStart(a.resultId,t.resultId,m,_.start,d.length),this._model.tokenization.setSemanticTokens(null,!0);return}const v=g-(_.start+_.deleteCount);v>0&&(ModelSemanticColoring_1._copy(d,g-v,u,f-v,v),f-=v),_.data&&(ModelSemanticColoring_1._copy(_.data,0,u,f-_.data.length,_.data.length),f-=_.data.length),g=_.start}g>0&&ModelSemanticColoring_1._copy(d,0,u,0,g),t={resultId:t.resultId,data:u}}}if(isSemanticTokens(t)){this._currentDocumentResponse=new SemanticTokensResponse(e,t.resultId,t.data);const c=toMultilineTokens2(t,r,this._model.getLanguageId());if(s.length>0)for(const d of s)for(const u of c)for(const g of d.changes)u.applyEdit(g.range,g.text);this._model.tokenization.setSemanticTokens(c,!0)}else this._model.tokenization.setSemanticTokens(null,!0);l()}},ModelSemanticColoring_1=Ti,Ti.REQUEST_MIN_DELAY=300,Ti.REQUEST_MAX_DELAY=2e3,Ti);ModelSemanticColoring=ModelSemanticColoring_1=__decorate$T([__param$O(1,ISemanticTokensStylingService),__param$O(2,IThemeService),__param$O(3,ILanguageFeatureDebounceService),__param$O(4,ILanguageFeaturesService)],ModelSemanticColoring);class SemanticTokensResponse{constructor(e,t,r){this.provider=e,this.resultId=t,this.data=r}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}registerEditorFeature(DocumentSemanticTokensFeature);var __decorate$S=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$N=function(o,e){return function(t,r){e(t,r,o)}},Er;let ViewportSemanticTokensContribution=(Er=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._semanticTokensStylingService=t,this._themeService=r,this._configurationService=s,this._editor=e,this._provider=l.documentRangeSemanticTokensProvider,this._debounceInformation=a.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new RunOnceScheduler(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[],this._rangeProvidersChangeListeners=[];const c=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))},d=()=>{var u;if(this._cleanupProviderListeners(),this._editor.hasModel()){const g=this._editor.getModel();for(const f of this._provider.all(g)){const m=(u=f.onDidChange)==null?void 0:u.call(f,()=>{this._cancelAll(),c()});m&&this._rangeProvidersChangeListeners.push(m)}}};this._register(this._editor.onDidScrollChange(()=>{c()})),this._register(this._editor.onDidChangeModel(()=>{d(),this._cancelAll(),c()})),this._register(this._editor.onDidChangeModelLanguage(()=>{d(),this._cancelAll(),c()})),this._register(this._editor.onDidChangeModelContent(u=>{this._cancelAll(),c()})),d(),this._register(this._provider.onDidChange(()=>{d(),this._cancelAll(),c()})),this._register(this._configurationService.onDidChangeConfiguration(u=>{u.affectsConfiguration(SEMANTIC_HIGHLIGHTING_SETTING_ID)&&(this._cancelAll(),c())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),c()})),c()}dispose(){this._cleanupProviderListeners(),super.dispose()}_cleanupProviderListeners(){dispose(this._rangeProvidersChangeListeners),this._rangeProvidersChangeListeners=[]}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,r=this._outstandingRequests.length;t<r;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(r=>this._requestRange(e,r)))}_requestRange(e,t){const r=e.getVersionId(),s=createCancelablePromise(l=>Promise.resolve(getDocumentRangeSemanticTokens(this._provider,e,t,l))),a=new StopWatch(!1);return s.then(l=>{if(this._debounceInformation.update(e,a.elapsed()),!l||!l.tokens||e.isDisposed()||e.getVersionId()!==r)return;const{provider:c,tokens:d}=l,u=this._semanticTokensStylingService.getStyling(c);e.tokenization.setPartialSemanticTokens(t,toMultilineTokens2(d,u,e.getLanguageId()))}).then(()=>this._removeOutstandingRequest(s),()=>this._removeOutstandingRequest(s)),s}},Er.ID="editor.contrib.viewportSemanticTokens",Er);ViewportSemanticTokensContribution=__decorate$S([__param$N(1,ISemanticTokensStylingService),__param$N(2,IThemeService),__param$N(3,IConfigurationService),__param$N(4,ILanguageFeatureDebounceService),__param$N(5,ILanguageFeaturesService)],ViewportSemanticTokensContribution);registerEditorContribution(ViewportSemanticTokensContribution.ID,ViewportSemanticTokensContribution,1);class WordSelectionRangeProvider{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){const r=[];for(const s of t){const a=[];r.push(a),this.selectSubwords&&this._addInWordRanges(a,e,s),this._addWordRanges(a,e,s),this._addWhitespaceLine(a,e,s),a.push({range:e.getFullModelRange()})}return r}_addInWordRanges(e,t,r){const s=t.getWordAtPosition(r);if(!s)return;const{word:a,startColumn:l}=s,c=r.column-l;let d=c,u=c,g=0;for(;d>=0;d--){const f=a.charCodeAt(d);if(d!==c&&(f===95||f===45))break;if(isLowerAsciiLetter(f)&&isUpperAsciiLetter(g))break;g=f}for(d+=1;u<a.length;u++){const f=a.charCodeAt(u);if(isUpperAsciiLetter(f)&&isLowerAsciiLetter(g))break;if(f===95||f===45)break;g=f}d<u&&e.push({range:new Range$2(r.lineNumber,l+d,r.lineNumber,l+u)})}_addWordRanges(e,t,r){const s=t.getWordAtPosition(r);s&&e.push({range:new Range$2(r.lineNumber,s.startColumn,r.lineNumber,s.endColumn)})}_addWhitespaceLine(e,t,r){t.getLineLength(r.lineNumber)>0&&t.getLineFirstNonWhitespaceColumn(r.lineNumber)===0&&t.getLineLastNonWhitespaceColumn(r.lineNumber)===0&&e.push({range:new Range$2(r.lineNumber,1,r.lineNumber,t.getLineMaxColumn(r.lineNumber))})}}var __decorate$R=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$M=function(o,e){return function(t,r){e(t,r,o)}},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 r=new SelectionRanges(t,this.ranges);return r.ranges[t].equalsRange(this.ranges[this.index])?r.mov(e):r}}var Fn;let SmartSelectController=(Fn=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.dispose()}async run(e){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),r=this._editor.getModel();if(this._state||await provideSelectionRanges(this._languageFeaturesService.selectionRangeProvider,r,t.map(a=>a.getPosition()),this._editor.getOption(129),CancellationToken.None).then(a=>{var l;if(!(!isNonEmptyArray(a)||a.length!==t.length)&&!(!this._editor.hasModel()||!equals$2(this._editor.getSelections(),t,(c,d)=>c.equalsSelection(d)))){for(let c=0;c<a.length;c++)a[c]=a[c].filter(d=>d.containsPosition(t[c].getStartPosition())&&d.containsPosition(t[c].getEndPosition())),a[c].unshift(t[c]);this._state=a.map(c=>new SelectionRanges(0,c)),(l=this._selectionListener)==null||l.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var c;this._ignoreSelection||((c=this._selectionListener)==null||c.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(a=>a.mov(e));const s=this._state.map(a=>Selection$1.fromPositions(a.ranges[a.index].getStartPosition(),a.ranges[a.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(s)}finally{this._ignoreSelection=!1}}},SmartSelectController_1=Fn,Fn.ID="editor.contrib.smartSelectController",Fn);SmartSelectController=SmartSelectController_1=__decorate$R([__param$M(1,ILanguageFeaturesService)],SmartSelectController);class AbstractSmartSelect extends EditorAction{constructor(e,t){super(t),this._forward=e}async run(e,t){const r=SmartSelectController.get(t);r&&await r.run(this._forward)}}class GrowSelectionAction extends AbstractSmartSelect{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:localize2(1400,"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(1398,"&&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:localize2(1401,"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(1399,"&&Shrink Selection"),order:3}})}}registerEditorContribution(SmartSelectController.ID,SmartSelectController,4);registerEditorAction(GrowSelectionAction);registerEditorAction(ShrinkSelectionAction);async function provideSelectionRanges(o,e,t,r,s){const a=o.all(e).concat(new WordSelectionRangeProvider(r.selectSubwords));a.length===1&&a.unshift(new BracketSelectionRangeProvider);const l=[],c=[];for(const d of a)l.push(Promise.resolve(d.provideSelectionRanges(e,t,s)).then(u=>{if(isNonEmptyArray(u)&&u.length===t.length)for(let g=0;g<t.length;g++){c[g]||(c[g]=[]);for(const f of u[g])Range$2.isIRange(f.range)&&Range$2.containsPosition(f.range,t[g])&&c[g].push(Range$2.lift(f.range))}},onUnexpectedExternalError));return await Promise.all(l),c.map(d=>{if(d.length===0)return[];d.sort((m,_)=>Position$1.isBefore(m.getStartPosition(),_.getStartPosition())?1:Position$1.isBefore(_.getStartPosition(),m.getStartPosition())||Position$1.isBefore(m.getEndPosition(),_.getEndPosition())?-1:Position$1.isBefore(_.getEndPosition(),m.getEndPosition())?1:0);const u=[];let g;for(const m of d)(!g||Range$2.containsRange(m,g)&&!Range$2.equalsRange(m,g))&&(u.push(m),g=m);if(!r.selectLeadingAndTrailingWhitespace)return u;const f=[u[0]];for(let m=1;m<u.length;m++){const _=u[m-1],v=u[m];if(v.startLineNumber!==_.startLineNumber||v.endLineNumber!==_.endLineNumber){const b=new Range$2(_.startLineNumber,e.getLineFirstNonWhitespaceColumn(_.startLineNumber),_.endLineNumber,e.getLineLastNonWhitespaceColumn(_.endLineNumber));b.containsRange(_)&&!b.equalsRange(_)&&v.containsRange(b)&&!v.equalsRange(b)&&f.push(b);const C=new Range$2(_.startLineNumber,1,_.endLineNumber,e.getLineMaxColumn(_.endLineNumber));C.containsRange(_)&&!C.equalsRange(b)&&v.containsRange(C)&&!v.equalsRange(C)&&f.push(C)}f.push(v)}return f})}CommandsRegistry.registerCommand("_executeSelectionRangeProvider",async function(o,...e){const[t,r]=e;assertType(URI.isUri(t)),assertType(isArrayOf$1(r,l=>Position$1.isIPosition(l)));const s=o.get(ILanguageFeaturesService).selectionRangeProvider,a=await o.get(ITextModelService).createModelReference(t);try{return provideSelectionRanges(s,a.object.textEditorModel,r.map(Position$1.lift),{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},CancellationToken.None)}finally{a.dispose()}});const Categories=Object.freeze({View:localize2(1638,"View"),Help:localize2(1639,"Help"),Test:localize2(1640,"Test"),File:localize2(1641,"File"),Preferences:localize2(1642,"Preferences"),Developer:localize2(1643,"Developer")});class ToggleStickyScroll extends EditorAction2{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...localize2(1448,"Toggle Editor Sticky Scroll"),mnemonicTitle:localize(1444,"&&Toggle Editor Sticky Scroll")},metadata:{description:localize2(1449,"Toggle/enable the editor sticky scroll which shows the nested scopes at the top of the viewport")},category:Categories.View,toggled:{condition:ContextKeyExpr.equals("config.editor.stickyScroll.enabled",!0),title:localize(1445,"Sticky Scroll"),mnemonicTitle:localize(1446,"&&Sticky Scroll")},menu:[{id:MenuId.CommandPalette},{id:MenuId.MenubarAppearanceMenu,group:"4_editor",order:3},{id:MenuId.StickyScrollContext}]})}async runEditorCommand(e,t){var l;const r=e.get(IConfigurationService),s=!r.getValue("editor.stickyScroll.enabled"),a=(l=StickyScrollController.get(t))==null?void 0:l.isFocused();r.updateValue("editor.stickyScroll.enabled",s),a&&t.focus()}}const weight=100;class FocusStickyScroll extends EditorAction2{constructor(){super({id:"editor.action.focusStickyScroll",title:{...localize2(1450,"Focus Editor Sticky Scroll"),mnemonicTitle:localize(1447,"&&Focus Editor Sticky Scroll")},precondition:ContextKeyExpr.and(ContextKeyExpr.has("config.editor.stickyScroll.enabled"),EditorContextKeys.stickyScrollVisible),menu:[{id:MenuId.CommandPalette}]})}runEditorCommand(e,t){var r;(r=StickyScrollController.get(t))==null||r.focus()}}class SelectNextStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:localize2(1451,"Select the next editor sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:18}})}runEditorCommand(e,t){var r;(r=StickyScrollController.get(t))==null||r.focusNext()}}class SelectPreviousStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:localize2(1452,"Select the previous sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:16}})}runEditorCommand(e,t){var r;(r=StickyScrollController.get(t))==null||r.focusPrevious()}}class GoToStickyScrollLine extends EditorAction2{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:localize2(1453,"Go to the focused sticky scroll line"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:3}})}runEditorCommand(e,t){var r;(r=StickyScrollController.get(t))==null||r.goToFocused()}}class SelectEditor extends EditorAction2{constructor(){super({id:"editor.action.selectEditor",title:localize2(1454,"Select Editor"),precondition:EditorContextKeys.stickyScrollFocused.isEqualTo(!0),keybinding:{weight,primary:9}})}runEditorCommand(e,t){var r;(r=StickyScrollController.get(t))==null||r.selectEditor()}}registerEditorContribution(StickyScrollController.ID,StickyScrollController,1);registerAction2(ToggleStickyScroll);registerAction2(FocusStickyScroll);registerAction2(SelectPreviousStickyScrollLine);registerAction2(SelectNextStickyScrollLine);registerAction2(GoToStickyScrollLine);registerAction2(SelectEditor);var __decorate$Q=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$L=function(o,e){return function(t,r){e(t,r,o)}};class SuggestInlineCompletion{constructor(e,t,r,s,a,l,c){this.range=e,this.insertText=t,this.filterText=r,this.additionalTextEdits=s,this.command=a,this.gutterMenuLinkAction=l,this.completion=c}}let InlineCompletionResults=class extends RefCountedDisposable{constructor(e,t,r,s,a,l){super(a.disposable),this.model=e,this.line=t,this.word=r,this.completionModel=s,this._suggestMemoryService=l}canBeReused(e,t,r){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===r.startColumn&&this.word.endColumn<r.endColumn&&this.completionModel.getIncompleteProvider().size===0}get items(){var c;const e=[],{items:t}=this.completionModel,r=this._suggestMemoryService.select(this.model,{lineNumber:this.line,column:this.word.endColumn+this.completionModel.lineContext.characterCountDelta},t),s=Iterable.slice(t,r),a=Iterable.slice(t,0,r);let l=5;for(const d of Iterable.concat(s,a)){if(d.score===FuzzyScore.Default)continue;const u=new Range$2(d.editStart.lineNumber,d.editStart.column,d.editInsertEnd.lineNumber,d.editInsertEnd.column+this.completionModel.lineContext.characterCountDelta),g=d.completion.insertTextRules&&d.completion.insertTextRules&4?{snippet:d.completion.insertText}:d.completion.insertText;e.push(new SuggestInlineCompletion(u,g,(c=d.filterTextLow)!=null?c:d.labelLow,d.completion.additionalTextEdits,d.completion.command,d.completion.action,d)),l-->=0&&d.resolve(CancellationToken.None)}return e}};InlineCompletionResults=__decorate$Q([__param$L(5,ISuggestMemoryService)],InlineCompletionResults);let SuggestInlineCompletions=class extends Disposable$1{constructor(e,t,r,s){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=r,this._editorService=s,this._store.add(e.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(e,t,r,s){var _;if(r.selectedSuggestionInfo)return;let a;for(const v of this._editorService.listCodeEditors())if(v.getModel()===e){a=v;break}if(!a)return;const l=a.getOption(102);if(QuickSuggestionsOptions.isAllOff(l))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const c=e.tokenization.getLineTokens(t.lineNumber),d=c.getStandardTokenType(c.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if(QuickSuggestionsOptions.valueFor(l,d)!=="inline")return;let u=e.getWordAtPosition(t),g;if(u!=null&&u.word||(g=this._getTriggerCharacterInfo(e,t)),!(u!=null&&u.word)&&!g||(u||(u=e.getWordUntilPosition(t)),u.endColumn!==t.column))return;let f;const m=e.getValueInRange(new Range$2(t.lineNumber,1,t.lineNumber,t.column));if(!g&&((_=this._lastResult)!=null&&_.canBeReused(e,t.lineNumber,u))){const v=new LineContext$1(m,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=v,this._lastResult.acquire(),f=this._lastResult}else{const v=await provideSuggestionItems(this._languageFeatureService.completionProvider,e,t,new CompletionOptions(void 0,SuggestModel.createSuggestFilter(a).itemKind,g==null?void 0:g.providers),g&&{triggerKind:1,triggerCharacter:g.ch},s);let b;v.needsClipboard&&(b=await this._clipboardService.readText());const C=new CompletionModel(v.items,t.column,new LineContext$1(m,0),WordDistance.None,a.getOption(134),a.getOption(128),{boostFullMatch:!1,firstMatchCanBeWeak:!1},b);f=new InlineCompletionResults(e,t.lineNumber,u,C,v,this._suggestMemoryService)}return this._lastResult=f,f}handleItemDidShow(e,t){t.completion.resolve(CancellationToken.None)}disposeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var a;const r=e.getValueInRange(Range$2.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),s=new Set;for(const l of this._languageFeatureService.completionProvider.all(e))(a=l.triggerCharacters)!=null&&a.includes(r)&&s.add(l);if(s.size!==0)return{providers:s,ch:r}}};SuggestInlineCompletions=__decorate$Q([__param$L(0,ILanguageFeaturesService),__param$L(1,IClipboardService),__param$L(2,ISuggestMemoryService),__param$L(3,ICodeEditorService)],SuggestInlineCompletions);registerEditorFeature(SuggestInlineCompletions);class ForceRetokenizeAction extends EditorAction{constructor(){super({id:"editor.action.forceRetokenize",label:localize2(1532,"Developer: Force Retokenize"),precondition:void 0})}run(e,t){if(!t.hasModel())return;const r=t.getModel();r.tokenization.resetTokenization();const s=new StopWatch;r.tokenization.forceTokenization(r.getLineCount()),s.stop(),console.log("tokenization took ".concat(s.elapsed()))}}registerEditorAction(ForceRetokenizeAction);const ys=class ys extends Action2{constructor(){super({id:ys.ID,title:localize2(1530,"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},metadata:{description:localize2(1531,"Determines whether the tab key moves focus around the workbench or inserts the tab character in the current editor. This is also called tab trapping, tab navigation, or tab focus mode.")},f1:!0})}run(){const t=!TabFocus.getTabFocusMode();TabFocus.setTabFocusMode(t),alert(t?localize(1528,"Pressing Tab will now move focus to the next focusable element"):localize(1529,"Pressing Tab will now insert the tab character"))}};ys.ID="editor.action.toggleTabFocusMode";let ToggleTabFocusModeAction=ys;registerAction2(ToggleTabFocusModeAction);class UnicodeTextModelHighlighter{static computeUnicodeHighlights(e,t,r){const s=r?r.startLineNumber:1,a=r?r.endLineNumber:e.getLineCount(),l=new CodePointHighlighter(t),c=l.getCandidateCodePoints();let d;c==="allNonBasicAscii"?d=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):d=new RegExp("".concat(buildRegExpCharClassExpr(Array.from(c))),"g");const u=new Searcher(null,d),g=[];let f=!1,m,_=0,v=0,b=0;e:for(let C=s,y=a;C<=y;C++){const S=e.getLineContent(C),w=S.length;u.reset(0);do if(m=u.next(S),m){let E=m.index,x=m.index+m[0].length;if(E>0){const I=S.charCodeAt(E-1);isHighSurrogate(I)&&E--}if(x+1<w){const I=S.charCodeAt(x-1);isHighSurrogate(I)&&x++}const L=S.substring(E,x);let k=getWordAtText(E+1,DEFAULT_WORD_REGEXP,S,0);k&&k.endColumn<=E+1&&(k=null);const D=l.shouldHighlightNonBasicASCII(L,k?k.word:null);if(D!==0){if(D===3?_++:D===2?v++:D===1?b++:assertNever(),g.length>=1e3){f=!0;break e}g.push(new Range$2(C,E+1,C,x+1))}}while(m)}return{ranges:g,hasMore:f,ambiguousCharacterCount:_,invisibleCharacterCount:v,nonBasicAsciiCharacterCount:b}}static computeUnicodeHighlightReason(e,t){const r=new CodePointHighlighter(t);switch(r.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const a=e.codePointAt(0),l=r.ambiguousCharacters.getPrimaryConfusable(a),c=AmbiguousCharacters.getLocales().filter(d=>!AmbiguousCharacters.getInstance(new Set([...t.allowedLocales,d])).isAmbiguous(a));return{kind:0,confusableWith:String.fromCodePoint(l),notAmbiguousInLocales:c}}case 1:return{kind:2}}}}function buildRegExpCharClassExpr(o,e){return"[".concat(escapeRegExpCharacters(o.map(r=>String.fromCodePoint(r)).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 r=e.codePointAt(0);if(this.allowedCodePoints.has(r))return 0;if(this.options.nonBasicASCII)return 1;let s=!1,a=!1;if(t)for(const l of t){const c=l.codePointAt(0),d=isBasicASCII(l);s=s||d,!d&&!this.ambiguousCharacters.isAmbiguous(c)&&!InvisibleCharacters.isInvisibleCharacter(c)&&(a=!0)}return!s&&a?0:this.options.invisibleCharacters&&!isAllowedInvisibleCharacter(e)&&InvisibleCharacters.isInvisibleCharacter(r)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(r)?3:0}}function isAllowedInvisibleCharacter(o){return o===" "||o==="\n"||o===" "}var __decorate$P=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$K=function(o,e){return function(t,r){e(t,r,o)}};let Link$1=class extends Disposable$1{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,r={},s,a){var f,m;super(),this._link=t,this._hoverService=s,this._enabled=!0,this.el=append$2(e,$$m("a.monaco-link",{tabIndex:(f=t.tabIndex)!=null?f:0,href:t.href},t.label)),this.hoverDelegate=(m=r.hoverDelegate)!=null?m:getDefaultHoverDelegate("mouse"),this.setTooltip(t.title),this.el.setAttribute("role","button");const l=this._register(new DomEmitter(this.el,"click")),c=this._register(new DomEmitter(this.el,"keypress")),d=Event$1.chain(c.event,_=>_.map(v=>new StandardKeyboardEvent(v)).filter(v=>v.keyCode===3)),u=this._register(new DomEmitter(this.el,EventType.Tap)).event;this._register(Gesture.addTarget(this.el));const g=Event$1.any(l.event,d,u);this._register(g(_=>{this.enabled&&(EventHelper$1.stop(_,!0),r!=null&&r.opener?r.opener(this._link.href):a.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}setTooltip(e){!this.hover&&e?this.hover=this._register(this._hoverService.setupManagedHover(this.hoverDelegate,this.el,e)):this.hover&&this.hover.update(e)}};Link$1=__decorate$P([__param$K(3,IHoverService),__param$K(4,IOpenerService)],Link$1);var __decorate$O=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$J=function(o,e){return function(t,r){e(t,r,o)}};const BANNER_ELEMENT_HEIGHT=26;let BannerController=class extends Disposable$1{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({...e,onClose:()=>{var t;this.hide(),(t=e.onClose)==null||t.call(e)}}),this._editor.setBanner(this.banner.element,BANNER_ELEMENT_HEIGHT)}};BannerController=__decorate$O([__param$J(1,IInstantiationService)],BannerController);let Banner=class extends Disposable$1{constructor(e,t){super(),this.instantiationService=e,this.markdownRendererService=t,this.element=$$m("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=$$m("span");return t.innerText=e,t}return this.markdownRendererService.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 r=append$2(this.element,$$m("div.icon-container"));r.setAttribute("aria-hidden","true"),e.icon&&r.appendChild($$m("div".concat(ThemeIcon.asCSSSelector(e.icon))));const s=append$2(this.element,$$m("div.message-container"));if(s.setAttribute("aria-hidden","true"),s.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=append$2(this.element,$$m("div.message-actions-container")),e.actions)for(const l of e.actions)this._register(this.instantiationService.createInstance(Link$1,this.messageActionsContainer,{...l,tabIndex:-1},{}));const a=append$2(this.element,$$m("div.action-container"));this.actionBar=this._register(new ActionBar(a)),this.actionBar.push(this._register(new Action("banner.close",localize(1533,"Close Banner"),ThemeIcon.asClassName(widgetClose),!0,()=>{typeof e.onClose=="function"&&e.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};Banner=__decorate$O([__param$J(0,IInstantiationService),__param$J(1,IMarkdownRendererService)],Banner);const IWorkspaceTrustManagementService=createDecorator("workspaceTrustManagementService");var __decorate$N=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$I=function(o,e){return function(t,r){e(t,r,o)}};const warningIcon=registerIcon("extensions-warning-message",Codicon.warning,localize(1534,"Icon shown with a warning message in the extensions editor."));var Lr;let UnicodeHighlighter=(Lr=class extends Disposable$1{constructor(e,t,r,s){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=r,this._highlighter=null,this._bannerClosed=!1,this._updateState=a=>{if(a&&a.hasMore){if(this._bannerClosed)return;const l=Math.max(a.ambiguousCharacterCount,a.nonBasicAsciiCharacterCount,a.invisibleCharacterCount);let c;if(a.nonBasicAsciiCharacterCount>=l)c={message:localize(1535,"This document contains many non-basic ASCII unicode characters"),command:new DisableHighlightingOfNonBasicAsciiCharactersAction};else if(a.ambiguousCharacterCount>=l)c={message:localize(1536,"This document contains many ambiguous unicode characters"),command:new DisableHighlightingOfAmbiguousCharactersAction};else if(a.invisibleCharacterCount>=l)c={message:localize(1537,"This document contains many invisible unicode characters"),command:new DisableHighlightingOfInvisibleCharactersAction};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:c.message,icon:warningIcon,actions:[{label:c.command.shortLabel,href:"command:".concat(c.command.desc.id)}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(s.createInstance(BannerController,e)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=e.getOption(142),this._register(r.onDidChangeTrust(a=>{this._updateHighlighter()})),this._register(e.onDidChangeConfiguration(a=>{a.hasChanged(142)&&(this._options=e.getOption(142),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(r=>r===!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(r=>r.codePointAt(0)),allowedLocales:Object.keys(e.allowedLocales).map(r=>r==="_os"?safeIntl.NumberFormat().value.resolvedOptions().locale:r==="_vscode"?language:r)};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}},Lr.ID="editor.contrib.unicodeHighlighter",Lr);UnicodeHighlighter=__decorate$N([__param$I(1,IEditorWorkerService),__param$I(2,IWorkspaceTrustManagementService),__param$I(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$1{constructor(e,t,r,s){super(),this._editor=e,this._options=t,this._updateState=r,this._editorWorkerService=s,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 r=[];if(!t.hasMore)for(const s of t.ranges)r.push({range:s,options:Decorations.instance.getDecorationFromOptions(this._options)});this._decorations.set(r)})}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!isModelDecorationVisible(t,e))return null;const r=t.getValueInRange(e.range);return{reason:computeReason(r,this._options),inComment:isModelDecorationInComment(t,e),inString:isModelDecorationInString(t,e)}}};DocumentUnicodeHighlighter=__decorate$N([__param$I(3,IEditorWorkerService)],DocumentUnicodeHighlighter);class ViewportUnicodeHighlighter extends Disposable$1{constructor(e,t,r){super(),this._editor=e,this._options=t,this._updateState=r,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=[],r={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const s of e){const a=UnicodeTextModelHighlighter.computeUnicodeHighlights(this._model,this._options,s);for(const l of a.ranges)r.ranges.push(l);r.ambiguousCharacterCount+=r.ambiguousCharacterCount,r.invisibleCharacterCount+=r.invisibleCharacterCount,r.nonBasicAsciiCharacterCount+=r.nonBasicAsciiCharacterCount,r.hasMore=r.hasMore||a.hasMore}if(!r.hasMore)for(const s of r.ranges)t.push({range:s,options:Decorations.instance.getDecorationFromOptions(this._options)});this._updateState(r),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),r=t.getValueInRange(e.range);return isModelDecorationVisible(t,e)?{reason:computeReason(r,this._options),inComment:isModelDecorationInComment(t,e),inString:isModelDecorationInString(t,e)}:null}}const configureUnicodeHighlightOptionsStr=localize(1538,"Configure Unicode Highlight Options");let UnicodeHighlighterHoverParticipant=class{constructor(e,t){this._editor=e,this._markdownRendererService=t,this.hoverOrdinal=5}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const r=this._editor.getModel(),s=this._editor.getContribution(UnicodeHighlighter.ID);if(!s)return[];const a=[],l=new Set;let c=300;for(const d of t){const u=s.getDecorationInfo(d);if(!u)continue;const f=r.getValueInRange(d.range).codePointAt(0),m=formatCodePointMarkdown(f);let _;switch(u.reason.kind){case 0:{isBasicASCII(u.reason.confusableWith)?_=localize(1539,"The character {0} could be confused with the ASCII character {1}, which is more common in source code.",m,formatCodePointMarkdown(u.reason.confusableWith.codePointAt(0))):_=localize(1540,"The character {0} could be confused with the character {1}, which is more common in source code.",m,formatCodePointMarkdown(u.reason.confusableWith.codePointAt(0)));break}case 1:_=localize(1541,"The character {0} is invisible.",m);break;case 2:_=localize(1542,"The character {0} is not a basic ASCII character.",m);break}if(l.has(_))continue;l.add(_);const v={codePoint:f,reason:u.reason,inComment:u.inComment,inString:u.inString},b=localize(1543,"Adjust settings"),C=createCommandUri(ShowExcludeOptions.ID,v),y=new MarkdownString("",!0).appendMarkdown(_).appendText(" ").appendLink(C,b,configureUnicodeHighlightOptionsStr);a.push(new MarkdownHover(this,d.range,[y],!1,c++))}return a}renderHoverParts(e,t){return renderMarkdownHovers(e,t,this._editor,this._markdownRendererService)}getAccessibleContent(e){return e.contents.map(t=>t.value).join("\n")}};UnicodeHighlighterHoverParticipant=__decorate$N([__param$I(1,IMarkdownRendererService)],UnicodeHighlighterHoverParticipant);function codePointToHex(o){return"U+".concat(o.toString(16).padStart(4,"0"))}function formatCodePointMarkdown(o){let e="`".concat(codePointToHex(o),"`");return InvisibleCharacters.isInvisibleCharacter(o)||(e+=' "'.concat("".concat(renderCodePointAsInlineCode(o)),'"')),e}function renderCodePointAsInlineCode(o){return o===96?"`` ` ``":"`"+String.fromCodePoint(o)+"`"}function computeReason(o,e){return UnicodeTextModelHighlighter.computeUnicodeHighlightReason(o,e)}const Ss=class Ss{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const r="".concat(e).concat(t);let s=this.map.get(r);return s||(s=ModelDecorationOptions.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(r,s)),s}};Ss.instance=new Ss;let Decorations=Ss;class DisableHighlightingInCommentsAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize2(1552,"Disable highlighting of characters in comments"),precondition:void 0}),this.shortLabel=localize(1544,"Disable Highlight In Comments")}async run(e,t,r){const s=e.get(IConfigurationService);s&&this.runAction(s)}async runAction(e){await e.updateValue(unicodeHighlightConfigKeys.includeComments,!1,2)}}class DisableHighlightingInStringsAction extends EditorAction{constructor(){super({id:DisableHighlightingOfAmbiguousCharactersAction.ID,label:localize2(1553,"Disable highlighting of characters in strings"),precondition:void 0}),this.shortLabel=localize(1545,"Disable Highlight In Strings")}async run(e,t,r){const s=e.get(IConfigurationService);s&&this.runAction(s)}async runAction(e){await e.updateValue(unicodeHighlightConfigKeys.includeStrings,!1,2)}}const xs=class xs extends Action2{constructor(){super({id:xs.ID,title:localize2(1554,"Disable highlighting of ambiguous characters"),precondition:void 0,f1:!1}),this.shortLabel=localize(1546,"Disable Ambiguous Highlight")}async run(e,t,r){const s=e.get(IConfigurationService);s&&this.runAction(s)}async runAction(e){await e.updateValue(unicodeHighlightConfigKeys.ambiguousCharacters,!1,2)}};xs.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";let DisableHighlightingOfAmbiguousCharactersAction=xs;const Es=class Es extends Action2{constructor(){super({id:Es.ID,title:localize2(1555,"Disable highlighting of invisible characters"),precondition:void 0,f1:!1}),this.shortLabel=localize(1547,"Disable Invisible Highlight")}async run(e,t,r){const s=e.get(IConfigurationService);s&&this.runAction(s)}async runAction(e){await e.updateValue(unicodeHighlightConfigKeys.invisibleCharacters,!1,2)}};Es.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";let DisableHighlightingOfInvisibleCharactersAction=Es;const Ls=class Ls extends Action2{constructor(){super({id:Ls.ID,title:localize2(1556,"Disable highlighting of non basic ASCII characters"),precondition:void 0,f1:!1}),this.shortLabel=localize(1548,"Disable Non ASCII Highlight")}async run(e,t,r){const s=e.get(IConfigurationService);s&&this.runAction(s)}async runAction(e){await e.updateValue(unicodeHighlightConfigKeys.nonBasicASCII,!1,2)}};Ls.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";let DisableHighlightingOfNonBasicAsciiCharactersAction=Ls;const ks=class ks extends Action2{constructor(){super({id:ks.ID,title:localize2(1557,"Show Exclude Options"),precondition:void 0,f1:!1})}async run(e,t){const{codePoint:r,reason:s,inString:a,inComment:l}=t,c=String.fromCodePoint(r),d=e.get(IQuickInputService),u=e.get(IConfigurationService);function g(v){return InvisibleCharacters.isInvisibleCharacter(v)?localize(1549,"Exclude {0} (invisible character) from being highlighted",codePointToHex(v)):localize(1550,"Exclude {0} from being highlighted","".concat(codePointToHex(v),' "').concat(c,'"'))}const f=[];if(s.kind===0)for(const v of s.notAmbiguousInLocales)f.push({label:localize(1551,'Allow unicode characters that are more common in the language "{0}".',v),run:async()=>{excludeLocaleFromBeingHighlighted(u,[v])}});if(f.push({label:g(r),run:()=>excludeCharFromBeingHighlighted(u,[r])}),l){const v=new DisableHighlightingInCommentsAction;f.push({label:v.label,run:async()=>v.runAction(u)})}else if(a){const v=new DisableHighlightingInStringsAction;f.push({label:v.label,run:async()=>v.runAction(u)})}function m(v){return typeof v.desc.title=="string"?v.desc.title:v.desc.title.value}if(s.kind===0){const v=new DisableHighlightingOfAmbiguousCharactersAction;f.push({label:m(v),run:async()=>v.runAction(u)})}else if(s.kind===1){const v=new DisableHighlightingOfInvisibleCharactersAction;f.push({label:m(v),run:async()=>v.runAction(u)})}else if(s.kind===2){const v=new DisableHighlightingOfNonBasicAsciiCharactersAction;f.push({label:m(v),run:async()=>v.runAction(u)})}else expectNever(s);const _=await d.pick(f,{title:configureUnicodeHighlightOptionsStr});_&&await _.run()}};ks.ID="editor.action.unicodeHighlight.showExcludeOptions";let ShowExcludeOptions=ks;async function excludeCharFromBeingHighlighted(o,e){const t=o.getValue(unicodeHighlightConfigKeys.allowedCharacters);let r;typeof t=="object"&&t?r=t:r={};for(const s of e)r[String.fromCodePoint(s)]=!0;await o.updateValue(unicodeHighlightConfigKeys.allowedCharacters,r,2)}async function excludeLocaleFromBeingHighlighted(o,e){var s;const t=(s=o.inspect(unicodeHighlightConfigKeys.allowedLocales).user)==null?void 0:s.value;let r;typeof t=="object"&&t?r=Object.assign({},t):r={};for(const a of e)r[a]=!0;await o.updateValue(unicodeHighlightConfigKeys.allowedLocales,r,2)}function expectNever(o){throw new Error("Unexpected value: ".concat(o))}registerAction2(DisableHighlightingOfAmbiguousCharactersAction);registerAction2(DisableHighlightingOfInvisibleCharactersAction);registerAction2(DisableHighlightingOfNonBasicAsciiCharactersAction);registerAction2(ShowExcludeOptions);registerEditorContribution(UnicodeHighlighter.ID,UnicodeHighlighter,1);HoverParticipantRegistry.register(UnicodeHighlighterHoverParticipant);const IDialogService=createDecorator("dialogService");var __decorate$M=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$H=function(o,e){return function(t,r){e(t,r,o)}};const ignoreUnusualLineTerminators="ignoreUnusualLineTerminators";function writeIgnoreState(o,e,t){o.setModelProperty(e.uri,ignoreUnusualLineTerminators,t)}function readIgnoreState(o,e){return o.getModelProperty(e.uri,ignoreUnusualLineTerminators)}var kr;let UnusualLineTerminatorsDetector=(kr=class extends Disposable$1{constructor(e,t,r){super(),this._editor=e,this._dialogService=t,this._codeEditorService=r,this._isPresentingDialog=!1,this._config=this._editor.getOption(143),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(143)&&(this._config=this._editor.getOption(143),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(s=>{s.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators()||readIgnoreState(this._codeEditorService,e)===!0||this._editor.getOption(104))return;if(this._config==="auto"){e.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let r;try{this._isPresentingDialog=!0,r=await this._dialogService.confirm({title:localize(1558,"Unusual Line Terminators"),message:localize(1559,"Detected unusual line terminators"),detail:localize(1560,"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(1561,"&&Remove Unusual Line Terminators"),cancelButton:localize(1562,"Ignore")})}finally{this._isPresentingDialog=!1}if(!r.confirmed){writeIgnoreState(this._codeEditorService,e,!0);return}e.removeUnusualLineTerminators(this._editor.getSelections())}},kr.ID="editor.contrib.unusualLineTerminatorsDetector",kr);UnusualLineTerminatorsDetector=__decorate$M([__param$H(1,IDialogService),__param$H(2,ICodeEditorService)],UnusualLineTerminatorsDetector);registerEditorContribution(UnusualLineTerminatorsDetector.ID,UnusualLineTerminatorsDetector,1);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"".concat(NO_PATH_REGEX,"*?");default:return"(?:".concat(PATH_REGEX,"|").concat(NO_PATH_REGEX,"+").concat(PATH_REGEX).concat(e?"|".concat(PATH_REGEX).concat(NO_PATH_REGEX,"+"):"",")*?")}}function splitGlobAware(o,e){if(!o)return[];const t=[];let r=!1,s=!1,a="";for(const l of o){switch(l){case e:if(!r&&!s){t.push(a),a="";continue}break;case"{":r=!0;break;case"}":r=!1;break;case"[":s=!0;break;case"]":s=!1;break}a+=l}return a&&t.push(a),t}function parseRegExp(o){if(!o)return"";let e="";const t=splitGlobAware(o,GLOB_SPLIT);if(t.every(r=>r===GLOBSTAR))e=".*";else{let r=!1;t.forEach((s,a)=>{if(s===GLOBSTAR){if(r)return;e+=starsToRegExp(2,a===t.length-1)}else{let l=!1,c="",d=!1,u="";for(const g of s){if(g!=="}"&&l){c+=g;continue}if(d&&(g!=="]"||!u)){let f;g==="-"?f=g:(g==="^"||g==="!")&&!u?f="^":g===GLOB_SPLIT?f="":f=escapeRegExpCharacters(g),u+=f;continue}switch(g){case"{":l=!0;continue;case"[":d=!0;continue;case"}":{const f=splitGlobAware(c,","),m="(?:".concat(f.map(_=>parseRegExp(_)).join("|"),")");e+=m,l=!1,c="";break}case"]":{e+="["+u+"]",d=!1,u="";break}case"?":e+=NO_PATH_REGEX;continue;case"*":e+=starsToRegExp(1);continue;default:e+=escapeRegExpCharacters(g)}}a<t.length-1&&(t[a+1]!==GLOBSTAR||a+2<t.length)&&(e+=PATH_REGEX)}r=s===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){var d;if(!o)return NULL;let t;typeof o!="string"?t=o.pattern:t=o,t=t.trim();const r=(d=e.ignoreCase)!=null?d:!1,s={...e,equals:r?equalsIgnoreCase:(u,g)=>u===g,endsWith:r?endsWithIgnoreCase:(u,g)=>u.endsWith(g),isEqualOrParent:(u,g)=>isEqualOrParent(u,g,!isLinux||r)},a="".concat(r?t.toLowerCase():t,"_").concat(!!e.trimForExclusions,"_").concat(r);let l=CACHE.get(a);if(l)return wrapRelativePattern(l,o,s);let c;return T1.test(t)?l=trivia1(t.substring(4),t,s):(c=T2.exec(trimForExclusions(t,s)))?l=trivia2(c[1],t,s):(e.trimForExclusions?T3_2:T3).test(t)?l=trivia3(t,s):(c=T4.exec(trimForExclusions(t,s)))?l=trivia4and5(c[1].substring(1),t,!0,s):(c=T5.exec(trimForExclusions(t,s)))?l=trivia4and5(c[1],t,!1,s):l=toRegExp(t,s),CACHE.set(a,l),wrapRelativePattern(l,o,s)}function wrapRelativePattern(o,e,t){if(typeof e=="string")return o;const r=function(s,a){return t.isEqualOrParent(s,e.base)?o(ltrim(s.substring(e.base.length),sep),a):null};return r.allBasenames=o.allBasenames,r.allPaths=o.allPaths,r.basenames=o.basenames,r.patterns=o.patterns,r}function trimForExclusions(o,e){return e.trimForExclusions&&o.endsWith("/**")?o.substring(0,o.length-2):o}function trivia1(o,e,t){return function(r,s){return typeof r=="string"&&t.endsWith(r,o)?e:null}}function trivia2(o,e,t){const r="/".concat(o),s="\\".concat(o),a=function(c,d){return typeof c!="string"?null:d?t.equals(d,o)?e:null:t.equals(c,o)||t.endsWith(c,r)||t.endsWith(c,s)?e:null},l=[o];return a.basenames=l,a.patterns=[e],a.allBasenames=l,a}function trivia3(o,e){const t=aggregateBasenameMatches(o.slice(1,-1).split(",").map(c=>parsePattern(c,e)).filter(c=>c!==NULL),o),r=t.length;if(!r)return NULL;if(r===1)return t[0];const s=function(c,d){for(let u=0,g=t.length;u<g;u++)if(t[u](c,d))return o;return null},a=t.find(c=>!!c.allBasenames);a&&(s.allBasenames=a.allBasenames);const l=t.reduce((c,d)=>d.allPaths?c.concat(d.allPaths):c,[]);return l.length&&(s.allPaths=l),s}function trivia4and5(o,e,t,r){const s=sep===posix.sep,a=s?o:o.replace(ALL_FORWARD_SLASHES,sep),l=sep+a,c=posix.sep+o;let d;return t?d=function(u,g){return typeof u=="string"&&(r.equals(u,a)||r.endsWith(u,l)||!s&&(r.equals(u,o)||r.endsWith(u,c)))?e:null}:d=function(u,g){return typeof u=="string"&&(r.equals(u,a)||!s&&r.equals(u,o))?e:null},d.allPaths=[(t?"*/":"./")+o],d}function toRegExp(o,e){try{const t=new RegExp("^".concat(parseRegExp(o),"$"),e.ignoreCase?"i":void 0);return function(r){return t.lastIndex=0,typeof r=="string"&&t.test(r)?o:null}}catch(t){return NULL}}function match(o,e,t){return!o||typeof e!="string"?!1:parse$1(o,t)(e)}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 r=function(s,a){return!!t(s,a)};return t.allBasenames&&(r.allBasenames=t.allBasenames),t.allPaths&&(r.allPaths=t.allPaths),r}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(c=>parseExpressionPattern(c,o[c],e)).filter(c=>c!==NULL)),r=t.length;if(!r)return NULL;if(!t.some(c=>!!c.requiresSiblings)){if(r===1)return t[0];const c=function(g,f){let m;for(let _=0,v=t.length;_<v;_++){const b=t[_](g,f);if(typeof b=="string")return b;isThenable$1(b)&&(m||(m=[]),m.push(b))}return m?(async()=>{for(const _ of m){const v=await _;if(typeof v=="string")return v}return null})():null},d=t.find(g=>!!g.allBasenames);d&&(c.allBasenames=d.allBasenames);const u=t.reduce((g,f)=>f.allPaths?g.concat(f.allPaths):g,[]);return u.length&&(c.allPaths=u),c}const s=function(c,d,u){let g,f;for(let m=0,_=t.length;m<_;m++){const v=t[m];v.requiresSiblings&&u&&(d||(d=basename$1(c)),g||(g=d.substring(0,d.length-extname$1(c).length)));const b=v(c,d,g,u);if(typeof b=="string")return b;isThenable$1(b)&&(f||(f=[]),f.push(b))}return f?(async()=>{for(const m of f){const _=await m;if(typeof _=="string")return _}return null})():null},a=t.find(c=>!!c.allBasenames);a&&(s.allBasenames=a.allBasenames);const l=t.reduce((c,d)=>d.allPaths?c.concat(d.allPaths):c,[]);return l.length&&(s.allPaths=l),s}function parseExpressionPattern(o,e,t){if(e===!1)return NULL;const r=parsePattern(o,t);if(r===NULL)return NULL;if(typeof e=="boolean")return r;if(e){const s=e.when;if(typeof s=="string"){const a=(l,c,d,u)=>{if(!u||!r(l,c))return null;const g=s.replace("$(basename)",()=>d),f=u(g);return isThenable$1(f)?f.then(m=>m?o:null):f?o:null};return a.requiresSiblings=!0,a}}return r}function aggregateBasenameMatches(o,e){const t=o.filter(c=>!!c.basenames);if(t.length<2)return o;const r=t.reduce((c,d)=>{const u=d.basenames;return u?c.concat(u):c},[]);let s;if(e){s=[];for(let c=0,d=r.length;c<d;c++)s.push(e)}else s=t.reduce((c,d)=>{const u=d.patterns;return u?c.concat(u):c},[]);const a=function(c,d){if(typeof c!="string")return null;if(!d){let g;for(g=c.length;g>0;g--){const f=c.charCodeAt(g-1);if(f===47||f===92)break}d=c.substring(g)}const u=r.indexOf(d);return u!==-1?s[u]:null};a.basenames=r,a.patterns=s,a.allBasenames=r;const l=o.filter(c=>!c.basenames);return l.push(a),l}function score(o,e,t,r,s,a){if(Array.isArray(o)){let l=0;for(const c of o){const d=score(c,e,t,r,s,a);if(d===10)return d;d>l&&(l=d)}return l}else{if(typeof o=="string")return r?o==="*"?5:o===t?10:0:0;if(o){const{language:l,pattern:c,scheme:d,hasAccessToAllModels:u,notebookType:g}=o;if(!r&&!u)return 0;g&&s&&(e=s);let f=0;if(d)if(d===e.scheme)f=10;else if(d==="*")f=5;else return 0;if(l)if(l===t)f=10;else if(l==="*")f=Math.max(f,5);else return 0;if(g)if(g===a)f=10;else if(g==="*"&&a!==void 0)f=Math.max(f,5);else return 0;if(c){let m;if(typeof c=="string"?m=c:m={...c,base:normalize$1(c.base)},m===e.fsPath||match(m,e.fsPath))f=10;else return 0}return f}else return 0}}var __decorate$L=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$G=function(o,e){return function(t,r){e(t,r,o)}};class TextualDocumentHighlightProvider{constructor(){this.selector={language:"*"}}provideDocumentHighlights(e,t,r){const s=[],a=e.getWordAtPosition({lineNumber:t.lineNumber,column:t.column});return a?e.isDisposed()?void 0:e.findMatches(a.word,!0,!1,!0,USUAL_WORD_SEPARATORS,!1).map(c=>({range:c.range,kind:DocumentHighlightKind$2.Text})):Promise.resolve(s)}provideMultiDocumentHighlights(e,t,r,s){const a=new ResourceMap,l=e.getWordAtPosition({lineNumber:t.lineNumber,column:t.column});if(!l)return Promise.resolve(a);for(const c of[e,...r]){if(c.isDisposed())continue;const u=c.findMatches(l.word,!0,!1,!0,USUAL_WORD_SEPARATORS,!1).map(g=>({range:g.range,kind:DocumentHighlightKind$2.Text}));u&&a.set(c.uri,u)}return a}}let TextualMultiDocumentHighlightFeature=class extends Disposable$1{constructor(e){super(),this._register(e.documentHighlightProvider.register("*",new TextualDocumentHighlightProvider)),this._register(e.multiDocumentHighlightProvider.register("*",new TextualDocumentHighlightProvider))}};TextualMultiDocumentHighlightFeature=__decorate$L([__param$G(0,ILanguageFeaturesService)],TextualMultiDocumentHighlightFeature);var __decorate$K=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$F=function(o,e){return function(t,r){e(t,r,o)}},WordHighlighter_1,WordHighlighterContribution_1;const ctxHasWordHighlights=new RawContextKey("hasWordHighlights",!1);function getOccurrencesAtPosition(o,e,t,r){const s=o.ordered(e);return first(s.map(a=>()=>Promise.resolve(a.provideDocumentHighlights(e,t,r)).then(void 0,onUnexpectedExternalError)),a=>a!=null).then(a=>{if(a){const l=new ResourceMap;return l.set(e.uri,a),l}return new ResourceMap})}function getOccurrencesAcrossMultipleModels(o,e,t,r,s){const a=o.ordered(e);return first(a.map(l=>()=>{const c=s.filter(d=>shouldSynchronizeModel(d)).filter(d=>score(l.selector,d.uri,d.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(l.provideMultiDocumentHighlights(e,t,c,r)).then(void 0,onUnexpectedExternalError)}),l=>l!=null)}class OccurenceAtPositionRequest{constructor(e,t,r){this._model=e,this._selection=t,this._wordSeparators=r,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 r=e.getWordAtPosition(t.getPosition());return r?new Range$2(t.startLineNumber,r.startColumn,t.startLineNumber,r.endColumn):null}cancel(){this.result.cancel()}}class SemanticOccurenceAtPositionRequest extends OccurenceAtPositionRequest{constructor(e,t,r,s){super(e,t,r),this._providers=s}_compute(e,t,r,s){return getOccurrencesAtPosition(this._providers,e,t.getPosition(),s).then(a=>a||new ResourceMap)}}class MultiModelOccurenceRequest extends OccurenceAtPositionRequest{constructor(e,t,r,s,a){super(e,t,r),this._providers=s,this._otherModels=a}_compute(e,t,r,s){return getOccurrencesAcrossMultipleModels(this._providers,e,t.getPosition(),s,this._otherModels).then(a=>a||new ResourceMap)}}function computeOccurencesAtPosition(o,e,t,r){return new SemanticOccurenceAtPositionRequest(e,t,r,o)}function computeOccurencesMultiModel(o,e,t,r,s){return new MultiModelOccurenceRequest(e,t,r,o,s)}registerModelAndPositionCommand("_executeDocumentHighlights",async(o,e,t)=>{const r=o.get(ILanguageFeaturesService),s=await getOccurrencesAtPosition(r.documentHighlightProvider,e,t,CancellationToken.None);return s==null?void 0:s.get(e.uri)});var Ri;let WordHighlighter=(Ri=class{constructor(e,t,r,s,a,l,c,d){this.toUnhook=new DisposableStore$1,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new ResourceMap,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,this.runDelayer=this.toUnhook.add(new Delayer(50)),this.editor=e,this.providers=t,this.multiDocumentProviders=r,this.codeEditorService=l,this.textModelService=a,this.configurationService=c,this.logService=d,this._hasWordHighlights=ctxHasWordHighlights.bindTo(s),this._ignorePositionChangeEvent=!1,this.occurrencesHighlightEnablement=this.editor.getOption(90),this.occurrencesHighlightDelay=this.configurationService.getValue("editor.occurrencesHighlightDelay"),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(u=>{this._ignorePositionChangeEvent||this.occurrencesHighlightEnablement!=="off"&&this.runDelayer.trigger(()=>{this._onPositionChanged(u)})})),this.toUnhook.add(e.onDidFocusEditorText(u=>{this.occurrencesHighlightEnablement!=="off"&&(this.workerRequest||this.runDelayer.trigger(()=>{this._run()}))})),this.toUnhook.add(e.onDidChangeModelContent(u=>{matchesScheme(this.model.uri,"output")||this._stopAll()})),this.toUnhook.add(e.onDidChangeModel(u=>{!u.newModelUrl&&u.oldModelUrl?this._stopSingular():WordHighlighter_1.query&&this._run()})),this.toUnhook.add(e.onDidChangeConfiguration(u=>{var f,m;const g=this.editor.getOption(90);if(this.occurrencesHighlightEnablement!==g)switch(this.occurrencesHighlightEnablement=g,g){case"off":this._stopAll();break;case"singleFile":this._stopAll((m=(f=WordHighlighter_1.query)==null?void 0:f.modelInfo)==null?void 0:m.modelURI);break;case"multiFile":WordHighlighter_1.query&&this._run(!0);break;default:console.warn("Unknown occurrencesHighlight setting value:",g);break}})),this.toUnhook.add(this.configurationService.onDidChangeConfiguration(u=>{if(u.affectsConfiguration("editor.occurrencesHighlightDelay")){const g=c.getValue("editor.occurrencesHighlightDelay");this.occurrencesHighlightDelay!==g&&(this.occurrencesHighlightDelay=g)}})),this.toUnhook.add(e.onDidBlurEditorWidget(()=>{var g,f;const u=this.codeEditorService.getFocusedCodeEditor();u?((g=u.getModel())==null?void 0:g.uri.scheme)===Schemas.vscodeNotebookCell&&((f=this.editor.getModel())==null?void 0:f.uri.scheme)!==Schemas.vscodeNotebookCell&&this._stopAll():this._stopAll()})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=void 0,WordHighlighter_1.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(e){this.occurrencesHighlightEnablement!=="off"&&(this.runDelayer.cancel(),this.runDelayer.trigger(()=>{this._run(!1,e)}))}stop(){this.occurrencesHighlightEnablement!=="off"&&this._stopAll()}_getSortedHighlights(){return this.decorations.getRanges().sort(Range$2.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),r=(e.findIndex(a=>a.containsPosition(this.editor.getPosition()))+1)%e.length,s=e[r];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const a=this._getWord();if(a){const l=this.editor.getModel().getLineContent(s.startLineNumber);alert("".concat(l,", ").concat(r+1," of ").concat(e.length," for '").concat(a.word,"'"))}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),r=(e.findIndex(a=>a.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,s=e[r];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(s.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(s);const a=this._getWord();if(a){const l=this.editor.getModel().getLineContent(s.startLineNumber);alert("".concat(l,", ").concat(r+1," of ").concat(e.length," for '").concat(a.word,"'"))}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const e=WordHighlighter_1.storedDecorationIDs.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),WordHighlighter_1.storedDecorationIDs.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(e){const t=this.codeEditorService.listCodeEditors(),r=[];for(const s of t){if(!s.hasModel()||isEqual(s.getModel().uri,e))continue;const a=WordHighlighter_1.storedDecorationIDs.get(s.getModel().uri);if(!a)continue;s.removeDecorations(a),r.push(s.getModel().uri);const l=WordHighlighterContribution.get(s);l!=null&&l.wordHighlighter&&l.wordHighlighter.decorations.length>0&&(l.wordHighlighter.decorations.clear(),l.wordHighlighter.workerRequest=null,l.wordHighlighter._hasWordHighlights.set(!1))}for(const s of r)WordHighlighter_1.storedDecorationIDs.delete(s)}_stopSingular(){var e,t,r,s;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((e=this.editor.getModel())==null?void 0:e.uri.scheme)!==Schemas.vscodeNotebookCell&&((r=(t=WordHighlighter_1.query)==null?void 0:t.modelInfo)==null?void 0:r.modelURI.scheme)!==Schemas.vscodeNotebookCell?(WordHighlighter_1.query=null,this._run()):(s=WordHighlighter_1.query)!=null&&s.modelInfo&&(WordHighlighter_1.query.modelInfo=null)),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(e){this._removeAllDecorations(e),this.renderDecorationsTimer!==void 0&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=void 0),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){if(this.occurrencesHighlightEnablement==="off"){this._stopAll();return}if(e.source!=="api"&&e.reason!==3){this._stopAll();return}this._run()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,r=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:r})}getOtherModelsToHighlight(e){if(!e)return[];if(e.uri.scheme===Schemas.vscodeNotebookCell){const a=[],l=this.codeEditorService.listCodeEditors();for(const c of l){const d=c.getModel();d&&d!==e&&d.uri.scheme===Schemas.vscodeNotebookCell&&a.push(d)}return a}const r=[],s=this.codeEditorService.listCodeEditors();for(const a of s){if(!isDiffEditor(a))continue;const l=a.getModel();l&&e===l.modified&&r.push(l.modified)}if(r.length)return r;if(this.occurrencesHighlightEnablement==="singleFile")return[];for(const a of s){const l=a.getModel();l&&l!==e&&r.push(l)}return r}async _run(e,t){var s,a,l;if(this.editor.hasTextFocus()){const c=this.editor.getSelection();if(!c||c.startLineNumber!==c.endLineNumber){WordHighlighter_1.query=null,this._stopAll();return}const d=c.startColumn,u=c.endColumn,g=this._getWord();if(!g||g.startColumn>d||g.endColumn<u){WordHighlighter_1.query=null,this._stopAll();return}WordHighlighter_1.query={modelInfo:{modelURI:this.model.uri,selection:c}}}else if(!WordHighlighter_1.query){this._stopAll();return}if(this.lastCursorPositionChangeTime=new Date().getTime(),isEqual(this.editor.getModel().uri,(s=WordHighlighter_1.query.modelInfo)==null?void 0:s.modelURI)){if(!e){const g=this.decorations.getRanges();for(const f of g)if(f.containsPosition(this.editor.getPosition()))return}this._stopAll(e?this.model.uri:void 0);const c=++this.workerRequestTokenId;this.workerRequestCompleted=!1;const d=this.getOtherModelsToHighlight(this.editor.getModel());if(!WordHighlighter_1.query||!WordHighlighter_1.query.modelInfo)return;const u=await this.textModelService.createModelReference(WordHighlighter_1.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(u.object.textEditorModel,WordHighlighter_1.query.modelInfo.selection,d),(a=this.workerRequest)==null||a.result.then(g=>{c===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=g||[],this._beginRenderDecorations(t!=null?t:this.occurrencesHighlightDelay))},onUnexpectedError)}catch(g){this.logService.error("Unexpected error during occurrence request. Log: ",g)}finally{u.dispose()}}else if(this.model.uri.scheme===Schemas.vscodeNotebookCell){const c=++this.workerRequestTokenId;if(this.workerRequestCompleted=!1,!WordHighlighter_1.query||!WordHighlighter_1.query.modelInfo)return;const d=await this.textModelService.createModelReference(WordHighlighter_1.query.modelInfo.modelURI);try{this.workerRequest=this.computeWithModel(d.object.textEditorModel,WordHighlighter_1.query.modelInfo.selection,[this.model]),(l=this.workerRequest)==null||l.result.then(u=>{c===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=u||[],this._beginRenderDecorations(t!=null?t:this.occurrencesHighlightDelay))},onUnexpectedError)}catch(u){this.logService.error("Unexpected error during occurrence request. Log: ",u)}finally{d.dispose()}}}computeWithModel(e,t,r){return r.length?computeOccurencesMultiModel(this.multiDocumentProviders,e,t,this.editor.getOption(148),r):computeOccurencesAtPosition(this.providers,e,t,this.editor.getOption(148))}_beginRenderDecorations(e){const t=new Date().getTime(),r=this.lastCursorPositionChangeTime+e;t>=r?(this.renderDecorationsTimer=void 0,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},r-t)}renderDecorations(){var t,r,s;this.renderDecorationsTimer=void 0;const e=this.codeEditorService.listCodeEditors();for(const a of e){const l=WordHighlighterContribution.get(a);if(!l)continue;const c=[],d=(t=a.getModel())==null?void 0:t.uri;if(d&&this.workerRequestValue.has(d)){const u=WordHighlighter_1.storedDecorationIDs.get(d),g=this.workerRequestValue.get(d);if(g)for(const m of g)m.range&&c.push({range:m.range,options:getHighlightDecorationOptions(m.kind)});let f=[];a.changeDecorations(m=>{f=m.deltaDecorations(u!=null?u:[],c)}),WordHighlighter_1.storedDecorationIDs=WordHighlighter_1.storedDecorationIDs.set(d,f),c.length>0&&((r=l.wordHighlighter)==null||r.decorations.set(c),(s=l.wordHighlighter)==null||s._hasWordHighlights.set(!0))}}this.workerRequest=null}dispose(){this._stopSingular(),this.toUnhook.dispose()}},WordHighlighter_1=Ri,Ri.storedDecorationIDs=new ResourceMap,Ri.query=null,Ri);WordHighlighter=WordHighlighter_1=__decorate$K([__param$F(4,ITextModelService),__param$F(5,ICodeEditorService),__param$F(6,IConfigurationService),__param$F(7,ILogService)],WordHighlighter);var Bn;let WordHighlighterContribution=(Bn=class extends Disposable$1{static get(e){return e.getContribution(WordHighlighterContribution_1.ID)}constructor(e,t,r,s,a,l,c){super(),this._wordHighlighter=null;const d=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&e.getModel().uri.scheme!==Schemas.accessibleView&&(this._wordHighlighter=new WordHighlighter(e,r.documentHighlightProvider,r.multiDocumentHighlightProvider,t,a,s,l,c))};this._register(e.onDidChangeModel(u=>{var g,f;this._wordHighlighter&&(!u.newModelUrl&&((g=u.oldModelUrl)==null?void 0:g.scheme)!==Schemas.vscodeNotebookCell&&((f=this.wordHighlighter)==null||f.stop()),this._wordHighlighter.dispose(),this._wordHighlighter=null),d()})),d()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var e;(e=this._wordHighlighter)==null||e.moveNext()}moveBack(){var e;(e=this._wordHighlighter)==null||e.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore(250)}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}},WordHighlighterContribution_1=Bn,Bn.ID="editor.contrib.wordHighlighter",Bn);WordHighlighterContribution=WordHighlighterContribution_1=__decorate$K([__param$F(1,IContextKeyService),__param$F(2,ILanguageFeaturesService),__param$F(3,ICodeEditorService),__param$F(4,ITextModelService),__param$F(5,IConfigurationService),__param$F(6,ILogService)],WordHighlighterContribution);class WordHighlightNavigationAction extends EditorAction{constructor(e,t){super(t),this._isNext=e}run(e,t){const r=WordHighlighterContribution.get(t);r&&(this._isNext?r.moveNext():r.moveBack())}}class NextWordHighlightAction extends WordHighlightNavigationAction{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:localize2(1572,"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:localize2(1573,"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:localize2(1574,"Trigger Symbol Highlight"),precondition:void 0,kbOpts:{kbExpr:EditorContextKeys.editorTextFocus,primary:0,weight:100}})}run(e,t,r){const s=WordHighlighterContribution.get(t);s&&s.restoreViewState(!0)}}registerEditorContribution(WordHighlighterContribution.ID,WordHighlighterContribution,0);registerEditorAction(NextWordHighlightAction);registerEditorAction(PrevWordHighlightAction);registerEditorAction(TriggerWordHighlightAction);registerEditorFeature(TextualMultiDocumentHighlightFeature);class MoveWordCommand extends EditorCommand{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,r){if(!t.hasModel())return;const s=getMapForWordSeparators(t.getOption(148),t.getOption(147)),a=t.getModel(),l=t.getSelections(),c=l.length>1,d=l.map(u=>{const g=new Position$1(u.positionLineNumber,u.positionColumn),f=this._move(s,a,g,this._wordNavigationType,c);return this._moveTo(u,f,this._inSelectionMode)});if(a.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,d.map(u=>CursorState$1.fromModelSelection(u))),d.length===1){const u=new Position$1(d[0].positionLineNumber,d[0].positionColumn);t.revealPosition(u,0)}}_moveTo(e,t,r){return r?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,r,s,a){return WordOperations.moveWordLeft(e,t,r,s,a)}}class WordRightCommand extends MoveWordCommand{_move(e,t,r,s,a){return WordOperations.moveWordRight(e,t,r,s)}}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?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?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,r,s,a){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,e.intlSegmenterLocales),t,r,s,a)}}class CursorWordAccessibilityLeftSelect extends WordLeftCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,r,s,a){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,e.intlSegmenterLocales),t,r,s,a)}}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?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?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,r,s,a){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,e.intlSegmenterLocales),t,r,s,a)}}class CursorWordAccessibilityRightSelect extends WordRightCommand{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,r,s,a){return super._move(getMapForWordSeparators(EditorOptions.wordSeparators.defaultValue,e.intlSegmenterLocales),t,r,s,a)}}class DeleteWordCommand extends EditorCommand{constructor(e){super({canTriggerInlineEdits:!0,...e}),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,r){const s=e==null?void 0:e.get(ILanguageConfigurationService);if(!t.hasModel()||!s)return;const a=getMapForWordSeparators(t.getOption(148),t.getOption(147)),l=t.getModel(),c=t.getSelections(),d=t.getOption(10),u=t.getOption(15),g=s.getLanguageConfiguration(l.getLanguageId()).getAutoClosingPairs(),f=t._getViewModel(),m=c.map(_=>{const v=this._delete({wordSeparators:a,model:l,selection:_,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(13),autoClosingBrackets:d,autoClosingQuotes:u,autoClosingPairs:g,autoClosedCharacters:f.getCursorAutoClosedCharacters()},this._wordNavigationType);return new ReplaceCommand(v,"")});t.pushUndoStop(),t.executeCommands(this.id,m),t.pushUndoStop()}}class DeleteWordLeftCommand extends DeleteWordCommand{_delete(e,t){const r=WordOperations.deleteWordLeft(e,t);return r||new Range$2(1,1,1,1)}}class DeleteWordRightCommand extends DeleteWordCommand{_delete(e,t){const r=WordOperations.deleteWordRight(e,t);if(r)return r;const s=e.model.getLineCount(),a=e.model.getLineMaxColumn(s);return new Range$2(s,a,s,a)}}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:localize2(1575,"Delete Word")})}run(e,t,r){if(!t.hasModel())return;const s=getMapForWordSeparators(t.getOption(148),t.getOption(147)),a=t.getModel(),c=t.getSelections().map(d=>{const u=WordOperations.deleteInsideWord(s,a,d);return new ReplaceCommand(u,"")});t.pushUndoStop(),t.executeCommands(this.id,c),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 r=WordPartOperations.deleteWordPartLeft(e);return r||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 r=WordPartOperations.deleteWordPartRight(e);if(r)return r;const s=e.model.getLineCount(),a=e.model.getLineMaxColumn(s);return new Range$2(s,a,s,a)}}class WordPartLeftCommand extends MoveWordCommand{_move(e,t,r,s,a){return WordPartOperations.moveWordPartLeft(e,t,r,a)}}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,r,s,a){return WordPartOperations.moveWordPartRight(e,t,r)}}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);const ca=class ca extends Disposable$1{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(105);t||(this.editor.isSimpleWidget?t=new MarkdownString(localize(1378,"Cannot edit in read-only input")):t=new MarkdownString(localize(1379,"Cannot edit in read-only editor"))),e.showMessage(t,this.editor.getPosition())}}};ca.ID="editor.contrib.readOnlyMessageController";let ReadOnlyMessageController=ca;registerEditorContribution(ReadOnlyMessageController.ID,ReadOnlyMessageController,2);var __decorate$J=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$E=function(o,e){return function(t,r){e(t,r,o)}};let DiffEditorBreadcrumbsSource=class extends Disposable$1{constructor(e,t,r){super(),this._textModel=e,this._languageFeaturesService=t,this._outlineModelService=r,this._currentModel=observableValue(this,void 0);const s=observableSignalFromEvent("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),a=observableSignalFromEvent("_textModel.onDidChangeContent",Event$1.debounce(l=>this._textModel.onDidChangeContent(l),()=>{},100));this._register(autorunWithStore(async(l,c)=>{s.read(l),a.read(l);const d=c.add(new DisposableCancellationTokenSource),u=await this._outlineModelService.getOrCreate(this._textModel,d.token);c.isDisposed||this._currentModel.set(u,void 0)}))}getBreadcrumbItems(e,t){const r=this._currentModel.read(t);if(!r)return[];const s=r.asListOfDocumentSymbols().filter(a=>e.contains(a.range.startLineNumber)&&!e.contains(a.range.endLineNumber));return s.sort(reverseOrder(compareBy(a=>a.range.endLineNumber-a.range.startLineNumber,numberComparator))),s.map(a=>({name:a.name,kind:a.kind,startLineNumber:a.range.startLineNumber}))}};DiffEditorBreadcrumbsSource=__decorate$J([__param$E(1,ILanguageFeaturesService),__param$E(2,IOutlineModelService)],DiffEditorBreadcrumbsSource);HideUnchangedRegionsFeature.setBreadcrumbsSourceFactory((o,e)=>e.createInstance(DiffEditorBreadcrumbsSource,o));var __decorate$I=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$D=function(o,e){return function(t,r){e(t,r,o)}},Ir;let FloatingEditorToolbar=(Ir=class extends Disposable$1{constructor(e,t,r,s){super();const a=this._register(observableCodeEditor(e)),l=this._register(s.createMenu(MenuId.EditorContent,e.contextKeyService)),c=observableFromEvent(this,l.onDidChange,()=>l.getActions().length===0);this._register(autorun(d=>{if(c.read(d))return;const g=h("div.floating-menu-overlay-widget");g.root.style.height="28px";const f=t.createInstance(MenuWorkbenchToolBar,g.root,MenuId.EditorContent,{actionViewItemProvider:(m,_)=>{if(!(m instanceof MenuItemAction))return;const v=r.lookupKeybinding(m.id);if(v)return t.createInstance(class extends MenuEntryActionViewItem{updateLabel(){this.options.label&&this.label&&(this.label.textContent="".concat(this._commandAction.label," (").concat(v.getLabel(),")"))}},m,{..._,keybindingNotRenderedWithLabel:!0})},hiddenItemStrategy:0,menuOptions:{shouldForwardArgs:!0},telemetrySource:"editor.overlayToolbar",toolbarOptions:{primaryGroup:()=>!0,useSeparatorsInPrimaryActions:!0}});d.store.add(f),d.store.add(autorun(m=>{const _=a.model.read(m);f.context=_==null?void 0:_.uri})),d.store.add(a.createOverlayWidget({allowEditorOverflow:!1,domNode:g.root,minContentWidthInPx:constObservable(0),position:constObservable({preference:1})}))}))}},Ir.ID="editor.contrib.floatingToolbar",Ir);FloatingEditorToolbar=__decorate$I([__param$D(1,IInstantiationService),__param$D(2,IKeybindingService),__param$D(3,IMenuService)],FloatingEditorToolbar);registerEditorContribution(FloatingEditorToolbar.ID,FloatingEditorToolbar,1);var InspectTokensNLS;(function(o){o.inspectTokensAction=localize(786,"Developer: Inspect Tokens")})(InspectTokensNLS||(InspectTokensNLS={}));var GoToLineNLS;(function(o){o.gotoLineActionLabel=localize(787,"Go to Line/Column...")})(GoToLineNLS||(GoToLineNLS={}));var QuickHelpNLS;(function(o){o.helpQuickAccessActionLabel=localize(788,"Show all Quick Access Providers")})(QuickHelpNLS||(QuickHelpNLS={}));var QuickCommandNLS;(function(o){o.quickCommandActionLabel=localize(789,"Command Palette"),o.quickCommandHelp=localize(790,"Show And Run Commands")})(QuickCommandNLS||(QuickCommandNLS={}));var QuickOutlineNLS;(function(o){o.quickOutlineActionLabel=localize(791,"Go to Symbol..."),o.quickOutlineByCategoryActionLabel=localize(792,"Go to Symbol by Category...")})(QuickOutlineNLS||(QuickOutlineNLS={}));var StandaloneCodeEditorNLS;(function(o){o.editorViewAccessibleLabel=localize(793,"Editor content")})(StandaloneCodeEditorNLS||(StandaloneCodeEditorNLS={}));var ToggleHighContrastNLS;(function(o){o.toggleHighContrast=localize(794,"Toggle High Contrast Theme")})(ToggleHighContrastNLS||(ToggleHighContrastNLS={}));var StandaloneServicesNLS;(function(o){o.bulkEditServiceSummary=localize(795,"Made {0} edits in {1} files")})(StandaloneServicesNLS||(StandaloneServicesNLS={}));const da=class da extends Disposable$1{constructor(e){super(),this.editor=e,this.widget=null,isIOS&&(this._register(e.onDidChangeConfiguration(()=>this.update())),this.update())}update(){const e=!this.editor.getOption(104);!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)}};da.ID="editor.contrib.iPadShowKeyboard";let IPadShowKeyboard=da;const Is=class Is extends Disposable$1{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 Is.ID}getDomNode(){return this._domNode}getPosition(){return{preference:1}}};Is.ID="editor.contrib.ShowKeyboardWidget";let ShowKeyboardWidget=Is;registerEditorContribution(IPadShowKeyboard.ID,IPadShowKeyboard,3);const IStandaloneThemeService=createDecorator("themeService");var __decorate$H=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$C=function(o,e){return function(t,r){e(t,r,o)}},InspectTokensController_1,zn;let InspectTokensController=(zn=class extends Disposable$1{static get(e){return e.getContribution(InspectTokensController_1.ID)}constructor(e,t,r){super(),this._editor=e,this._languageService=r,this._widget=null,this._register(this._editor.onDidChangeModel(s=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(s=>this.stop())),this._register(TokenizationRegistry.onDidChange(s=>this.stop())),this._register(this._editor.onKeyUp(s=>s.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_1=zn,zn.ID="editor.contrib.inspectTokens",zn);InspectTokensController=InspectTokensController_1=__decorate$H([__param$C(1,IStandaloneThemeService),__param$C(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 r=InspectTokensController.get(t);r==null||r.launch()}}function renderTokenText(o){let e="";for(let t=0,r=o.length;t<r;t++){const s=o.charCodeAt(t);switch(s){case 9:e+="→";break;case 32:e+="·";break;default:e+=String.fromCharCode(s)}}return e}function getSafeTokenizationSupport$1(o,e){const t=TokenizationRegistry.get(e);if(t)return t;const r=o.encodeLanguageId(e);return{getInitialState:()=>NullState,tokenize:(s,a,l)=>nullTokenize(e,l),tokenizeEncoded:(s,a,l)=>nullTokenizeEncoded(r,l)}}const Ds=class Ds extends Disposable$1{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$1(this._languageService.languageIdCodec,this._model.getLanguageId()),this._compute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(r=>this._compute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._editor.removeContentWidget(this),super.dispose()}getId(){return Ds._ID}_compute(e){const t=this._getTokensAtLine(e.lineNumber);let r=0;for(let d=t.tokens1.length-1;d>=0;d--){const u=t.tokens1[d];if(e.column-1>=u.offset){r=d;break}}let s=0;for(let d=t.tokens2.length>>>1;d>=0;d--)if(e.column-1>=t.tokens2[d<<1]){s=d;break}const a=this._model.getLineContent(e.lineNumber);let l="";if(r<t.tokens1.length){const d=t.tokens1[r].offset,u=r+1<t.tokens1.length?t.tokens1[r+1].offset:a.length;l=a.substring(d,u)}reset(this._domNode,$$m("h2.tm-token",void 0,renderTokenText(l),$$m("span.tm-token-length",void 0,"".concat(l.length," ").concat(l.length===1?"char":"chars")))),append$2(this._domNode,$$m("hr.tokens-inspect-separator",{style:"clear:both"}));const c=(s<<1)+1<t.tokens2.length?this._decodeMetadata(t.tokens2[(s<<1)+1]):null;append$2(this._domNode,$$m("table.tm-metadata-table",void 0,$$m("tbody",void 0,$$m("tr",void 0,$$m("td.tm-metadata-key",void 0,"language"),$$m("td.tm-metadata-value",void 0,"".concat(c?c.languageId:"-?-"))),$$m("tr",void 0,$$m("td.tm-metadata-key",void 0,"token type"),$$m("td.tm-metadata-value",void 0,"".concat(c?this._tokenTypeToString(c.tokenType):"-?-"))),$$m("tr",void 0,$$m("td.tm-metadata-key",void 0,"font style"),$$m("td.tm-metadata-value",void 0,"".concat(c?this._fontStyleToString(c.fontStyle):"-?-"))),$$m("tr",void 0,$$m("td.tm-metadata-key",void 0,"foreground"),$$m("td.tm-metadata-value",void 0,"".concat(c?Color.Format.CSS.formatHex(c.foreground):"-?-"))),$$m("tr",void 0,$$m("td.tm-metadata-key",void 0,"background"),$$m("td.tm-metadata-value",void 0,"".concat(c?Color.Format.CSS.formatHex(c.background):"-?-")))))),append$2(this._domNode,$$m("hr.tokens-inspect-separator")),r<t.tokens1.length&&append$2(this._domNode,$$m("span.tm-token-type",void 0,t.tokens1[r].type)),this._editor.layoutContentWidget(this)}_decodeMetadata(e){const t=TokenizationRegistry.getColorMap(),r=TokenMetadata.getLanguageId(e),s=TokenMetadata.getTokenType(e),a=TokenMetadata.getFontStyle(e),l=TokenMetadata.getForeground(e),c=TokenMetadata.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(r),tokenType:s,fontStyle:a,foreground:t[l],background:t[c]}}_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),r=this._tokenizationSupport.tokenize(this._model.getLineContent(e),!0,t),s=this._tokenizationSupport.tokenizeEncoded(this._model.getLineContent(e),!0,t);return{startState:t,tokens1:r.tokens,tokens2:s.tokens,endState:r.endState}}_getStateBeforeLine(e){let t=this._tokenizationSupport.getInitialState();for(let r=1;r<e;r++)t=this._tokenizationSupport.tokenize(this._model.getLineContent(r),!0,t).endState;return t}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[2,1]}}};Ds._ID="editor.contrib.inspectTokensWidget";let InspectTokensWidget=Ds;registerEditorContribution(InspectTokensController.ID,InspectTokensController,4);registerEditorAction(InspectTokens);var DefaultQuickAccessFilterValue;(function(o){o[o.PRESERVE=0]="PRESERVE",o[o.LAST=1]="LAST"})(DefaultQuickAccessFilterValue||(DefaultQuickAccessFilterValue={}));const Extensions={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,r)=>r.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(r=>e.startsWith(r.prefix))||void 0||this.defaultProvider}}Registry.add(Extensions.Quickaccess,new QuickAccessRegistry);var __decorate$G=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$B=function(o,e){return function(t,r){e(t,r,o)}},HelpQuickAccessProvider_1,Hn;let HelpQuickAccessProvider=(Hn=class{constructor(e,t){this.quickInputService=e,this.keybindingService=t,this.registry=Registry.as(Extensions.Quickaccess)}provide(e){const t=new DisposableStore$1;return t.add(e.onDidAccept(()=>{const[r]=e.selectedItems;r&&this.quickInputService.quickAccess.show(r.prefix,{preserveValue:!0})})),t.add(e.onDidChangeValue(r=>{const s=this.registry.getQuickAccessProvider(r.substr(HelpQuickAccessProvider_1.PREFIX.length));s&&s.prefix&&s.prefix!==HelpQuickAccessProvider_1.PREFIX&&this.quickInputService.quickAccess.show(s.prefix,{preserveValue:!0})})),e.items=this.getQuickAccessProviders().filter(r=>r.prefix!==HelpQuickAccessProvider_1.PREFIX),t}getQuickAccessProviders(){return this.registry.getQuickAccessProviders().sort((t,r)=>t.prefix.localeCompare(r.prefix)).flatMap(t=>this.createPicks(t))}createPicks(e){return e.helpEntries.map(t=>{const r=t.prefix||e.prefix,s=r||"…";return{prefix:r,label:s,keybinding:t.commandId?this.keybindingService.lookupKeybinding(t.commandId):void 0,ariaLabel:localize(1747,"{0}, {1}",s,t.description),description:t.description}})}},HelpQuickAccessProvider_1=Hn,Hn.PREFIX="?",Hn);HelpQuickAccessProvider=HelpQuickAccessProvider_1=__decorate$G([__param$B(0,IQuickInputService),__param$B(1,IKeybindingService)],HelpQuickAccessProvider);Registry.as(Extensions.Quickaccess).registerQuickAccessProvider({ctor:HelpQuickAccessProvider,prefix:"",helpEntries:[{description:QuickHelpNLS.helpQuickAccessActionLabel}]});class AbstractEditorNavigationQuickAccessProvider{constructor(e){this.options=e,this.rangeHighlightDecorationId=void 0}provide(e,t,r){var l;const s=new DisposableStore$1;e.canAcceptInBackground=!!((l=this.options)!=null&&l.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;const a=s.add(new MutableDisposable);return a.value=this.doProvide(e,t,r),s.add(this.onDidActiveTextEditorControlChange(()=>{a.value=void 0,a.value=this.doProvide(e,t)})),s}doProvide(e,t,r){var l;const s=new DisposableStore$1,a=this.activeTextEditorControl;if(a&&this.canProvideWithTextEditor(a)){const c={editor:a},d=getCodeEditor(a);if(d){let u=(l=a.saveViewState())!=null?l:void 0;s.add(d.onDidChangeCursorPosition(()=>{var g;u=(g=a.saveViewState())!=null?g:void 0})),c.restoreViewState=()=>{u&&a===this.activeTextEditorControl&&a.restoreViewState(u)},s.add(createSingleCallFunction(t.onCancellationRequested)(()=>{var g;return(g=c.restoreViewState)==null?void 0:g.call(c)}))}s.add(toDisposable(()=>this.clearDecorations(a))),s.add(this.provideWithTextEditor(c,e,t,r))}else s.add(this.provideWithoutTextEditor(e,t));return s}canProvideWithTextEditor(e){return!0}gotoLocation({editor:e},t){e.setSelection(t.range,"code.jump"),e.revealRangeInCenter(t.range,0),t.preserveFocus||e.focus();const r=e.getModel();r&&"getLineContent"in r&&status("".concat(r.getLineContent(t.range.startLineNumber)))}getModel(e){var t;return isDiffEditor(e)?(t=e.getModel())==null?void 0:t.modified:e.getModel()}addDecorations(e,t){e.changeDecorations(r=>{const s=[];this.rangeHighlightDecorationId&&(s.push(this.rangeHighlightDecorationId.overviewRulerDecorationId),s.push(this.rangeHighlightDecorationId.rangeHighlightId),this.rangeHighlightDecorationId=void 0);const a=[{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$1.Full}}}],[l,c]=r.deltaDecorations(s,a);this.rangeHighlightDecorationId={rangeHighlightId:l,overviewRulerDecorationId:c}})}clearDecorations(e){const t=this.rangeHighlightDecorationId;t&&(e.changeDecorations(r=>{r.deltaDecorations([t.overviewRulerDecorationId,t.rangeHighlightId],[])}),this.rangeHighlightDecorationId=void 0)}}const Ki=class Ki extends AbstractEditorNavigationQuickAccessProvider{constructor(){super({canAcceptInBackground:!0})}get useZeroBasedOffset(){return this.storageService.getBoolean(Ki.ZERO_BASED_OFFSET_STORAGE_KEY,-1,!1)}set useZeroBasedOffset(e){this.storageService.store(Ki.ZERO_BASED_OFFSET_STORAGE_KEY,e,-1,0)}provideWithoutTextEditor(e){const t=localize(1335,"Open a text editor first to go to a line.");return e.items=[{label:t}],e.ariaLabel=t,Disposable$1.None}provideWithTextEditor(e,t,r){const s=e.editor,a=new DisposableStore$1;a.add(t.onDidAccept(u=>{const[g]=t.selectedItems;if(g){if(!g.lineNumber)return;this.gotoLocation(e,{range:this.toRange(g.lineNumber,g.column),keyMods:t.keyMods,preserveFocus:u.inBackground}),u.inBackground||t.hide()}}));const l=()=>{const u=t.value.trim().substring(Ki.PREFIX.length),{inOffsetMode:g,lineNumber:f,column:m,label:_}=this.parsePosition(s,u);if(c.visible=!!g,t.items=[{lineNumber:f,column:m,label:_}],t.ariaLabel=_,!f){this.clearDecorations(s);return}const v=this.toRange(f,m);s.revealRangeInCenter(v,0),this.addDecorations(s,v)},c=new Toggle({title:localize(1336,"Use Zero-Based Offset"),icon:Codicon.indexZero,isChecked:this.useZeroBasedOffset,inputActiveOptionBorder:asCssVariable(inputActiveOptionBorder),inputActiveOptionForeground:asCssVariable(inputActiveOptionForeground),inputActiveOptionBackground:asCssVariable(inputActiveOptionBackground)});a.add(c.onChange(()=>{this.useZeroBasedOffset=!this.useZeroBasedOffset,l()})),t.toggles=[c],l(),a.add(t.onDidChangeValue(()=>l()));const d=getCodeEditor(s);return d&&d.getOptions().get(76).renderType===2&&(d.updateOptions({lineNumbers:"on"}),a.add(toDisposable(()=>d.updateOptions({lineNumbers:"relative"})))),a}toRange(e=1,t=1){return{startLineNumber:e,startColumn:t,endLineNumber:e,endColumn:t}}parsePosition(e,t){var s,a;const r=this.getModel(e);if(!r)return{label:localize(1337,"Open a text editor first to go to a line.")};if(t.startsWith(":")){let l=parseInt(t.substring(1),10);const c=r.getValueLength();if(isNaN(l))return{inOffsetMode:!0,label:this.useZeroBasedOffset?localize(1338,"Type a character position to go to (from 0 to {0}).",c-1):localize(1339,"Type a character position to go to (from 1 to {0}).",c)};{const d=l<0;this.useZeroBasedOffset||(l-=Math.sign(l)),d&&(l+=c);const u=r.getPositionAt(l);return{...u,inOffsetMode:!0,label:localize(1340,"Press 'Enter' to go to line {0} at column {1}.",u.lineNumber,u.column)}}}else{const l=t.split(/,|:|#/),c=r.getLineCount();let d=parseInt((s=l[0])==null?void 0:s.trim(),10);if(l.length<1||isNaN(d))return{label:localize(1341,"Type a line number to go to (from 1 to {0}).",c)};d=d>=0?d:c+1+d,d=Math.min(Math.max(1,d),c);const u=r.getLineMaxColumn(d);let g=parseInt((a=l[1])==null?void 0:a.trim(),10);return l.length<2||isNaN(g)?{lineNumber:d,column:1,label:l.length<2?localize(1342,"Press 'Enter' to go to line {0} or enter : to add a column number.",d):localize(1343,"Press 'Enter' to go to line {0} or enter a column number (from 1 to {1}).",d,u)}:(g=g>=0?g:u+g,g=Math.min(Math.max(1,g),u),{lineNumber:d,column:g,label:localize(1344,"Press 'Enter' to go to line {0} at column {1}.",d,g)})}}};Ki.PREFIX=":",Ki.ZERO_BASED_OFFSET_STORAGE_KEY="gotoLine.useZeroBasedOffset";let AbstractGotoLineQuickAccessProvider=Ki;var __decorate$F=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$A=function(o,e){return function(t,r){e(t,r,o)}};let StandaloneGotoLineQuickAccessProvider=class extends AbstractGotoLineQuickAccessProvider{constructor(e,t){super(),this.editorService=e,this.storageService=t,this.onDidActiveTextEditorControlChange=Event$1.None}get activeTextEditorControl(){var e;return(e=this.editorService.getFocusedCodeEditor())!=null?e:void 0}};StandaloneGotoLineQuickAccessProvider=__decorate$F([__param$A(0,ICodeEditorService),__param$A(1,IStorageService)],StandaloneGotoLineQuickAccessProvider);var Vn;let GotoLineAction$1=(Vn=class extends EditorAction{constructor(){super({id:Vn.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)}},Vn.ID="editor.action.gotoLine",Vn);registerEditorAction(GotoLineAction$1);Registry.as(Extensions.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,r=0){const s=e;return s.values&&s.values.length>1?doScoreFuzzy2Multiple(o,s.values,t,r):doScoreFuzzy2Single(o,e,t,r)}function doScoreFuzzy2Multiple(o,e,t,r){let s=0;const a=[];for(const l of e){const[c,d]=doScoreFuzzy2Single(o,l,t,r);if(typeof c!="number")return NO_SCORE2;s+=c,a.push(...d)}return[s,normalizeMatches(a)]}function doScoreFuzzy2Single(o,e,t,r){const s=fuzzyScore(e.original,e.originalLowercase,t,o,o.toLowerCase(),r,{firstMatchCanBeWeak:!0,boostFullMatch:!0});return s?[s[0],createMatches(s)]:NO_SCORE2}function normalizeMatches(o){const e=o.sort((s,a)=>s.start-a.start),t=[];let r;for(const s of e)!r||!matchOverlaps(r,s)?(r=s,t.push(s)):(r.start=Math.min(r.start,s.start),r.end=Math.max(r.end,s.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:r,normalizedLowercase:s}=normalizeQuery$1(o),a=t.indexOf(sep)>=0,l=queryExpectsExactMatch(o);let c;const d=o.split(MULTIPLE_QUERY_VALUES_SEPARATOR);if(d.length>1)for(const u of d){const g=queryExpectsExactMatch(u),{pathNormalized:f,normalized:m,normalizedLowercase:_}=normalizeQuery$1(u);m&&(c||(c=[]),c.push({original:u,originalLowercase:u.toLowerCase(),pathNormalized:f,normalized:m,normalizedLowercase:_,expectContiguousMatch:g}))}return{original:o,originalLowercase:e,pathNormalized:t,normalized:r,normalizedLowercase:s,values:c,containsPathSeparator:a,expectContiguousMatch:l}}function normalizeQuery$1(o){let e;isWindows?e=o.replace(/\//g,sep):e=o.replace(/\\/g,sep);const t=e.replace(/[\*\u2026\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$E=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$z=function(o,e){return function(t,r){e(t,r,o)}},AbstractGotoSymbolQuickAccessProvider_1,It;let AbstractGotoSymbolQuickAccessProvider=(It=class extends AbstractEditorNavigationQuickAccessProvider{constructor(e,t,r=Object.create(null)){super(r),this._languageFeaturesService=e,this._outlineModelService=t,this.options=r,this.options.canAcceptInBackground=!0}provideWithoutTextEditor(e){return this.provideLabelPick(e,localize(1345,"To go to a symbol, first open a text editor with symbol information.")),Disposable$1.None}provideWithTextEditor(e,t,r,s){const a=e.editor,l=this.getModel(a);return l?this._languageFeaturesService.documentSymbolProvider.has(l)?this.doProvideWithEditorSymbols(e,l,t,r,s):this.doProvideWithoutEditorSymbols(e,l,t,r):Disposable$1.None}doProvideWithoutEditorSymbols(e,t,r,s){const a=new DisposableStore$1;return this.provideLabelPick(r,localize(1346,"The active text editor does not provide symbol information.")),(async()=>!await this.waitForLanguageSymbolRegistry(t,a)||s.isCancellationRequested||a.add(this.doProvideWithEditorSymbols(e,t,r,s)))(),a}provideLabelPick(e,t){e.items=[{label:t,index:0,kind:14}],e.ariaLabel=t}async waitForLanguageSymbolRegistry(e,t){if(this._languageFeaturesService.documentSymbolProvider.has(e))return!0;const r=new DeferredPromise,s=t.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>{this._languageFeaturesService.documentSymbolProvider.has(e)&&(s.dispose(),r.complete(!0))}));return t.add(toDisposable(()=>r.complete(!1))),r.p}doProvideWithEditorSymbols(e,t,r,s,a){var f;const l=e.editor,c=new DisposableStore$1;c.add(r.onDidAccept(m=>{var v;const[_]=r.selectedItems;_&&_.range&&(this.gotoLocation(e,{range:_.range.selection,keyMods:r.keyMods,preserveFocus:m.inBackground}),(v=a==null?void 0:a.handleAccept)==null||v.call(a,_,m.inBackground),m.inBackground||r.hide())})),c.add(r.onDidTriggerItemButton(({item:m})=>{m&&m.range&&(this.gotoLocation(e,{range:m.range.selection,keyMods:r.keyMods,forceSideBySide:!0}),r.hide())}));const d=this.getDocumentSymbols(t,s),u=c.add(new MutableDisposable),g=async m=>{var _;(_=u==null?void 0:u.value)==null||_.cancel(),r.busy=!1,u.value=new CancellationTokenSource$1,r.busy=!0;try{const v=prepareQuery(r.value.substr(AbstractGotoSymbolQuickAccessProvider_1.PREFIX.length).trim()),b=await this.doGetSymbolPicks(d,v,void 0,u.value.token,t);if(s.isCancellationRequested)return;if(b.length>0){if(r.items=b,m&&v.original.length===0){const C=findLast$1(b,y=>!!(y.type!=="separator"&&y.range&&Range$2.containsPosition(y.range.decoration,m)));C&&(r.activeItems=[C])}}else v.original.length>0?this.provideLabelPick(r,localize(1347,"No matching editor symbols")):this.provideLabelPick(r,localize(1348,"No editor symbols"))}finally{s.isCancellationRequested||(r.busy=!1)}};return c.add(r.onDidChangeValue(()=>g(void 0))),g((f=l.getSelection())==null?void 0:f.getPosition()),c.add(r.onDidChangeActive(()=>{const[m]=r.activeItems;m&&m.range&&(l.revealRangeInCenter(m.range.selection,0),this.addDecorations(l,m.range.decoration))})),c}async doGetSymbolPicks(e,t,r,s,a){var C,y;const l=await e;if(s.isCancellationRequested)return[];const c=t.original.indexOf(AbstractGotoSymbolQuickAccessProvider_1.SCOPE_PREFIX)===0,d=c?1:0;let u,g;t.values&&t.values.length>1?(u=pieceToQuery(t.values[0]),g=pieceToQuery(t.values.slice(1))):u=t;let f;const m=(y=(C=this.options)==null?void 0:C.openSideBySideDirection)==null?void 0:y.call(C);m&&(f=[{iconClass:m==="right"?ThemeIcon.asClassName(Codicon.splitHorizontal):ThemeIcon.asClassName(Codicon.splitVertical),tooltip:m==="right"?localize(1349,"Open to the Side"):localize(1350,"Open to the Bottom")}]);const _=[];for(let S=0;S<l.length;S++){const w=l[S],E=trim(w.name),x="$(".concat(SymbolKinds.toIcon(w.kind).id,") ").concat(E),L=x.length-E.length;let k=w.containerName;r!=null&&r.extraContainerLabel&&(k?k="".concat(r.extraContainerLabel," • ").concat(k):k=r.extraContainerLabel);let D,I,T,M;if(t.original.length>d){let N=!1;if(u!==t&&([D,I]=scoreFuzzy2(x,{...t,values:void 0},d,L),typeof D=="number"&&(N=!0)),typeof D!="number"&&([D,I]=scoreFuzzy2(x,u,d,L),typeof D!="number"))continue;if(!N&&g){if(k&&g.original.length>0&&([T,M]=scoreFuzzy2(k,g)),typeof T!="number")continue;typeof D=="number"&&(D+=T)}}const R=w.tags&&w.tags.indexOf(1)>=0;_.push({index:S,kind:w.kind,score:D,label:x,ariaLabel:getAriaLabelForSymbol(w.name,w.kind),description:k,highlights:R?void 0:{label:I,description:M},range:{selection:Range$2.collapseToStart(w.selectionRange),decoration:w.range},uri:a.uri,symbolName:E,strikethrough:R,buttons:f})}const v=_.sort((S,w)=>c?this.compareByKindAndScore(S,w):this.compareByScore(S,w));let b=[];if(c){let x=function(){w&&typeof S=="number"&&E>0&&(w.label=format(NLS_SYMBOL_KIND_CACHE[S]||FALLBACK_NLS_SYMBOL_KIND,E))},S,w,E=0;for(const L of v)S!==L.kind?(x(),S=L.kind,E=1,w={type:"separator"},b.push(w)):E++,b.push(L);x()}else v.length>0&&(b=[{label:localize(1351,"symbols ({0})",_.length),type:"separator"},...v]);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 r=NLS_SYMBOL_KIND_CACHE[e.kind]||FALLBACK_NLS_SYMBOL_KIND,s=NLS_SYMBOL_KIND_CACHE[t.kind]||FALLBACK_NLS_SYMBOL_KIND,a=r.localeCompare(s);return a===0?this.compareByScore(e,t):a}async getDocumentSymbols(e,t){const r=await this._outlineModelService.getOrCreate(e,t);return t.isCancellationRequested?[]:r.asListOfDocumentSymbols()}},AbstractGotoSymbolQuickAccessProvider_1=It,It.PREFIX="@",It.SCOPE_PREFIX=":",It.PREFIX_BY_CATEGORY="".concat(It.PREFIX).concat(It.SCOPE_PREFIX),It);AbstractGotoSymbolQuickAccessProvider=AbstractGotoSymbolQuickAccessProvider_1=__decorate$E([__param$z(0,ILanguageFeaturesService),__param$z(1,IOutlineModelService)],AbstractGotoSymbolQuickAccessProvider);const FALLBACK_NLS_SYMBOL_KIND=localize(1352,"properties ({0})"),NLS_SYMBOL_KIND_CACHE={5:localize(1353,"methods ({0})"),11:localize(1354,"functions ({0})"),8:localize(1355,"constructors ({0})"),12:localize(1356,"variables ({0})"),4:localize(1357,"classes ({0})"),22:localize(1358,"structs ({0})"),23:localize(1359,"events ({0})"),24:localize(1360,"operators ({0})"),10:localize(1361,"interfaces ({0})"),2:localize(1362,"namespaces ({0})"),3:localize(1363,"packages ({0})"),25:localize(1364,"type parameters ({0})"),1:localize(1365,"modules ({0})"),6:localize(1366,"properties ({0})"),9:localize(1367,"enumerations ({0})"),21:localize(1368,"enumeration members ({0})"),14:localize(1369,"strings ({0})"),0:localize(1370,"files ({0})"),17:localize(1371,"arrays ({0})"),15:localize(1372,"numbers ({0})"),16:localize(1373,"booleans ({0})"),18:localize(1374,"objects ({0})"),19:localize(1375,"keys ({0})"),7:localize(1376,"fields ({0})"),13:localize(1377,"constants ({0})")};var __decorate$D=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$y=function(o,e){return function(t,r){e(t,r,o)}};let StandaloneGotoSymbolQuickAccessProvider=class extends AbstractGotoSymbolQuickAccessProvider{constructor(e,t,r){super(t,r),this.editorService=e,this.onDidActiveTextEditorControlChange=Event$1.None}get activeTextEditorControl(){var e;return(e=this.editorService.getFocusedCodeEditor())!=null?e:void 0}};StandaloneGotoSymbolQuickAccessProvider=__decorate$D([__param$y(0,ICodeEditorService),__param$y(1,ILanguageFeaturesService),__param$y(2,IOutlineModelService)],StandaloneGotoSymbolQuickAccessProvider);const Ts=class Ts extends EditorAction{constructor(){super({id:Ts.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})}};Ts.ID="editor.action.quickOutline";let GotoSymbolAction=Ts;registerEditorAction(GotoSymbolAction);Registry.as(Extensions.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 countMapFrom(o){var t;const e=new Map;for(const r of o)e.set(r,((t=e.get(r))!=null?t:0)+1);return e}class TfIdfCalculator{constructor(){this.chunkCount=0,this.chunkOccurrences=new Map,this.documents=new Map}calculateScores(e,t){const r=this.computeEmbedding(e),s=new Map,a=[];for(const[l,c]of this.documents){if(t.isCancellationRequested)return[];for(const d of c.chunks){const u=this.computeSimilarityScore(d,r,s);u>0&&a.push({key:l,score:u})}}return a}static termFrequencies(e){return countMapFrom(TfIdfCalculator.splitTerms(e))}static*splitTerms(e){const t=r=>r.toLowerCase();for(const[r]of e.matchAll(new RegExp("\\b\\p{Letter}[\\p{Letter}\\d]{2,}\\b","gu"))){yield t(r);const s=r.replace(/([a-z])([A-Z])/g,"$1 $2").split(/\s+/g);if(s.length>1)for(const a of s)a.length>2&&new RegExp("\\p{Letter}{3,}","gu").test(a)&&(yield t(a))}}updateDocuments(e){var t;for(const{key:r}of e)this.deleteDocument(r);for(const r of e){const s=[];for(const a of r.textChunks){const l=TfIdfCalculator.termFrequencies(a);for(const c of l.keys())this.chunkOccurrences.set(c,((t=this.chunkOccurrences.get(c))!=null?t:0)+1);s.push({text:a,tf:l})}this.chunkCount+=s.length,this.documents.set(r.key,{chunks:s})}return this}deleteDocument(e){const t=this.documents.get(e);if(t){this.documents.delete(e),this.chunkCount-=t.chunks.length;for(const r of t.chunks)for(const s of r.tf.keys()){const a=this.chunkOccurrences.get(s);if(typeof a=="number"){const l=a-1;l<=0?this.chunkOccurrences.delete(s):this.chunkOccurrences.set(s,l)}}}}computeSimilarityScore(e,t,r){let s=0;for(const[a,l]of Object.entries(t)){const c=e.tf.get(a);if(!c)continue;let d=r.get(a);typeof d!="number"&&(d=this.computeIdf(a),r.set(a,d));const u=c*d;s+=u*l}return s}computeEmbedding(e){const t=TfIdfCalculator.termFrequencies(e);return this.computeTfidf(t)}computeIdf(e){var r;const t=(r=this.chunkOccurrences.get(e))!=null?r:0;return t>0?Math.log((this.chunkCount+1)/t):0}computeTfidf(e){const t=Object.create(null);for(const[r,s]of e){const a=this.computeIdf(r);a>0&&(t[r]=s*a)}return t}}function normalizeTfIdfScores(o){var r,s;const e=o.slice(0);e.sort((a,l)=>l.score-a.score);const t=(s=(r=e[0])==null?void 0:r.score)!=null?s:0;if(t>0)for(const a of e)a.score/=t;return e}var 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){return Array.isArray(o.items)}function isFastAndSlowPicks(o){const e=o;return!!e.picks&&e.additionalPicks instanceof Promise}class PickerQuickAccessProvider extends Disposable$1{constructor(e,t){super(),this.prefix=e,this.options=t}provide(e,t,r){var u;const s=new DisposableStore$1;e.canAcceptInBackground=!!((u=this.options)!=null&&u.canAcceptInBackground),e.matchOnLabel=e.matchOnDescription=e.matchOnDetail=e.sortByLabel=!1;let a;const l=s.add(new MutableDisposable),c=async()=>{var C;a==null||a.dispose(!0),e.busy=!1;const g=l.value=new DisposableStore$1;a=g.add(new CancellationTokenSource$1(t));const f=a.token;let m=e.value.substring(this.prefix.length);(C=this.options)!=null&&C.shouldSkipTrimPickFilter||(m=m.trim());const _=this._getPicks(m,g,f,r),v=(y,S)=>{var x;let w,E;if(isPicksWithActive(y)?(w=y.items,E=y.active):w=y,w.length===0){if(S)return!1;(m.length>0||e.hideInput)&&((x=this.options)!=null&&x.noResultsPick)&&(isFunction$2(this.options.noResultsPick)?w=[this.options.noResultsPick(m)]:w=[this.options.noResultsPick])}return e.items=w,E&&(e.activeItems=[E]),!0},b=async y=>{let S=!1,w=!1;await Promise.all([(async()=>{typeof y.mergeDelay=="number"&&(await timeout(y.mergeDelay),f.isCancellationRequested)||w||(S=v(y.picks,!0))})(),(async()=>{e.busy=!0;try{const E=await y.additionalPicks;if(f.isCancellationRequested)return;let x,L;isPicksWithActive(y.picks)?(x=y.picks.items,L=y.picks.active):x=y.picks;let k,D;if(isPicksWithActive(E)?(k=E.items,D=E.active):k=E,k.length>0||!S){let I;if(!L&&!D){const T=e.activeItems[0];T&&x.indexOf(T)!==-1&&(I=T)}v({items:[...x,...k],active:L||D||I})}}finally{f.isCancellationRequested||(e.busy=!1),w=!0}})()])};if(_!==null)if(isFastAndSlowPicks(_))await b(_);else if(!(_ instanceof Promise))v(_);else{e.busy=!0;try{const y=await _;if(f.isCancellationRequested)return;isFastAndSlowPicks(y)?await b(y):v(y)}finally{f.isCancellationRequested||(e.busy=!1)}}};s.add(e.onDidChangeValue(()=>c())),c(),s.add(e.onDidAccept(g=>{var m;if(r!=null&&r.handleAccept){g.inBackground||e.hide(),(m=r.handleAccept)==null||m.call(r,e.activeItems[0],g.inBackground);return}const[f]=e.selectedItems;typeof(f==null?void 0:f.accept)=="function"&&(g.inBackground||e.hide(),f.accept(e.keyMods,g))}));const d=async(g,f)=>{var _,v;if(typeof f.trigger!="function")return;const m=(v=(_=f.buttons)==null?void 0:_.indexOf(g))!=null?v:-1;if(m>=0){const b=f.trigger(m,e.keyMods),C=typeof b=="number"?b:await b;if(t.isCancellationRequested)return;switch(C){case TriggerAction.NO_ACTION:break;case TriggerAction.CLOSE_PICKER:e.hide();break;case TriggerAction.REFRESH_PICKER:c();break;case TriggerAction.REMOVE_ITEM:{const y=e.items.indexOf(f);if(y!==-1){const S=e.items.slice(),w=S.splice(y,1),E=e.activeItems.filter(L=>L!==w[0]),x=e.keepScrollPosition;e.keepScrollPosition=!0,e.items=S,E&&(e.activeItems=E),e.keepScrollPosition=x}break}}}};return s.add(e.onDidTriggerItemButton(({button:g,item:f})=>d(g,f))),s.add(e.onDidTriggerSeparatorButton(({button:g,separator:f})=>d(g,f))),s}}new LRUCache(1e4);const nfdCache=new LRUCache(1e4);function normalizeNFD(o){return normalize(o,"NFD",nfdCache)}const nonAsciiCharactersPattern=/[^\u0000-\u0080]/;function normalize(o,e,t){if(!o)return o;const r=t.get(o);if(r)return r;let s;return nonAsciiCharactersPattern.test(o)?s=o.normalize(e):s=o,t.set(o,s),s}const removeAccents=(function(){const o=/[\u0300-\u036f]/g;return function(e){return normalizeNFD(e).replace(o,"")}})();var __decorate$C=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$x=function(o,e){return function(t,r){e(t,r,o)}},AbstractCommandsQuickAccessProvider_1,CommandsHistory_1,Ut;let AbstractCommandsQuickAccessProvider=(Ut=class extends PickerQuickAccessProvider{constructor(e,t,r,s,a,l){super(AbstractCommandsQuickAccessProvider_1.PREFIX,e),this.keybindingService=r,this.commandService=s,this.telemetryService=a,this.dialogService=l,this.commandsHistory=this._register(t.createInstance(CommandsHistory)),this.options=e}async _getPicks(e,t,r,s){var v,b,C,y,S,w;const a=await this.getCommandPicks(r);if(r.isCancellationRequested)return[];const l=createSingleCallFunction(()=>{const E=new TfIdfCalculator;E.updateDocuments(a.map(L=>({key:L.commandId,textChunks:[this.getTfIdfChunk(L)]})));const x=E.calculateScores(e,r);return normalizeTfIdfScores(x).filter(L=>L.score>AbstractCommandsQuickAccessProvider_1.TFIDF_THRESHOLD).slice(0,AbstractCommandsQuickAccessProvider_1.TFIDF_MAX_RESULTS)}),c=this.normalizeForFiltering(e),d=[];for(const E of a){(v=E.labelNoAccents)!=null||(E.labelNoAccents=this.normalizeForFiltering(E.label));const x=(b=AbstractCommandsQuickAccessProvider_1.WORD_FILTER(c,E.labelNoAccents))!=null?b:void 0;let L;if(E.commandAlias&&((C=E.aliasNoAccents)!=null||(E.aliasNoAccents=this.normalizeForFiltering(E.commandAlias)),L=(y=AbstractCommandsQuickAccessProvider_1.WORD_FILTER(c,E.aliasNoAccents))!=null?y:void 0),x||L)E.highlights={label:x,detail:this.options.showAlias?L:void 0},d.push(E);else if(e===E.commandId)d.push(E);else if(e.length>=3){const k=l();if(r.isCancellationRequested)return[];const D=k.find(I=>I.key===E.commandId);D&&(E.tfIdfScore=D.score,d.push(E))}}const u=new Map;for(const E of d){const x=u.get(E.label);x?(E.description=E.commandId,x.description=x.commandId):u.set(E.label,E)}d.sort((E,x)=>{if(E.tfIdfScore&&x.tfIdfScore)return E.tfIdfScore===x.tfIdfScore?E.label.localeCompare(x.label):x.tfIdfScore-E.tfIdfScore;if(E.tfIdfScore)return 1;if(x.tfIdfScore)return-1;const L=this.commandsHistory.peek(E.commandId),k=this.commandsHistory.peek(x.commandId);if(L&&k)return L>k?-1:1;if(L)return-1;if(k)return 1;if(this.options.suggestedCommandIds){const T=this.options.suggestedCommandIds.has(E.commandId),M=this.options.suggestedCommandIds.has(x.commandId);if(T&&M)return 0;if(T)return-1;if(M)return 1}const D=E.commandCategory===Categories.Developer.value,I=x.commandCategory===Categories.Developer.value;return D&&!I?1:!D&&I?-1:E.label.localeCompare(x.label)});const g=[];let f=!1,m=!0,_=!!this.options.suggestedCommandIds;for(let E=0;E<d.length;E++){const x=d[E];E===0&&this.commandsHistory.peek(x.commandId)&&(g.push({type:"separator",label:localize(1740,"recently used")}),f=!0),m&&x.tfIdfScore!==void 0&&(g.push({type:"separator",label:localize(1741,"similar commands")}),m=!1),_&&x.tfIdfScore===void 0&&!this.commandsHistory.peek(x.commandId)&&((S=this.options.suggestedCommandIds)!=null&&S.has(x.commandId))&&(g.push({type:"separator",label:localize(1742,"commonly used")}),f=!0,_=!1),f&&x.tfIdfScore===void 0&&!this.commandsHistory.peek(x.commandId)&&!((w=this.options.suggestedCommandIds)!=null&&w.has(x.commandId))&&(g.push({type:"separator",label:localize(1743,"other commands")}),f=!1),g.push(this.toCommandPick(x,s))}return this.hasAdditionalCommandPicks(e,r)?{picks:g,additionalPicks:(async()=>{var L;const E=await this.getAdditionalCommandPicks(a,d,e,r);if(r.isCancellationRequested)return[];const x=E.map(k=>this.toCommandPick(k,s));return m&&((L=x[0])==null?void 0:L.type)!=="separator"&&x.unshift({type:"separator",label:localize(1744,"similar commands")}),x})()}:g}toCommandPick(e,t){if(e.type==="separator")return e;const r=this.keybindingService.lookupKeybinding(e.commandId),s=r?localize(1745,"{0}, {1}",e.label,r.getAriaLabel()):e.label;return{...e,ariaLabel:s,detail:this.options.showAlias&&e.commandAlias!==e.label?e.commandAlias:void 0,keybinding:r,accept:async()=>{var a,l;this.commandsHistory.push(e.commandId),this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.commandId,from:(a=t==null?void 0:t.from)!=null?a:"quick open"});try{(l=e.args)!=null&&l.length?await this.commandService.executeCommand(e.commandId,...e.args):await this.commandService.executeCommand(e.commandId)}catch(c){isCancellationError(c)||this.dialogService.error(localize(1746,"Command '{0}' resulted in an error",e.label),toErrorMessage(c))}}}}getTfIdfChunk({label:e,commandAlias:t,commandDescription:r}){let s=e;return t&&t!==e&&(s+=" - ".concat(t)),r&&r.value!==e&&(s+=" - ".concat(r.value===r.original?r.value:"".concat(r.value," (").concat(r.original,")"))),s}normalizeForFiltering(e){const t=removeAccents(e);return t.length!==e.length?(this.telemetryService.publicLog2("QuickAccess:FilterLengthMismatch",{originalLength:e.length,normalizedLength:t.length}),e):t}},AbstractCommandsQuickAccessProvider_1=Ut,Ut.PREFIX=">",Ut.TFIDF_THRESHOLD=.5,Ut.TFIDF_MAX_RESULTS=5,Ut.WORD_FILTER=or(matchesPrefix,matchesWords,matchesContiguousSubString),Ut);AbstractCommandsQuickAccessProvider=AbstractCommandsQuickAccessProvider_1=__decorate$C([__param$x(1,IInstantiationService),__param$x(2,IKeybindingService),__param$x(3,ICommandService),__param$x(4,ITelemetryService),__param$x(5,IDialogService)],AbstractCommandsQuickAccessProvider);var Dt;let CommandsHistory=(Dt=class extends Disposable$1{constructor(e,t,r){super(),this.storageService=e,this.configurationService=t,this.logService=r,this.configuredCommandsHistoryLength=0,this.updateConfiguration(),this.load(),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>this.updateConfiguration(e))),this._register(this.storageService.onWillSaveState(e=>{e.reason===WillSaveStateReason.SHUTDOWN&&this.saveState()}))}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.hasChanges=!0))}load(){const e=this.storageService.get(CommandsHistory_1.PREF_KEY_CACHE,0);let t;if(e)try{t=JSON.parse(e)}catch(s){this.logService.error("[CommandsHistory] invalid data: ".concat(s))}const r=CommandsHistory_1.cache=new LRUCache(this.configuredCommandsHistoryLength,1);if(t){let s;t.usesLRU?s=t.entries:s=t.entries.sort((a,l)=>a.value-l.value),s.forEach(a=>r.set(a.key,a.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.hasChanges=!0)}peek(e){var t;return(t=CommandsHistory_1.cache)==null?void 0:t.peek(e)}saveState(){if(!CommandsHistory_1.cache||!CommandsHistory_1.hasChanges)return;const e={usesLRU:!0,entries:[]};CommandsHistory_1.cache.forEach((t,r)=>e.entries.push({key:r,value:t})),this.storageService.store(CommandsHistory_1.PREF_KEY_CACHE,JSON.stringify(e),0,0),this.storageService.store(CommandsHistory_1.PREF_KEY_COUNTER,CommandsHistory_1.counter,0,0),CommandsHistory_1.hasChanges=!1}static getConfiguredCommandHistoryLength(e){var s,a;const r=(a=(s=e.getValue().workbench)==null?void 0:s.commandPalette)==null?void 0:a.history;return typeof r=="number"?r:CommandsHistory_1.DEFAULT_COMMANDS_HISTORY_LENGTH}},CommandsHistory_1=Dt,Dt.DEFAULT_COMMANDS_HISTORY_LENGTH=50,Dt.PREF_KEY_CACHE="commandPalette.mru.cache",Dt.PREF_KEY_COUNTER="commandPalette.mru.counter",Dt.counter=1,Dt.hasChanges=!1,Dt);CommandsHistory=CommandsHistory_1=__decorate$C([__param$x(0,IStorageService),__param$x(1,IConfigurationService),__param$x(2,ILogService)],CommandsHistory);class AbstractEditorCommandsQuickAccessProvider extends AbstractCommandsQuickAccessProvider{constructor(e,t,r,s,a,l){super(e,t,r,s,a,l)}getCodeEditorCommandPicks(){var r;const e=this.activeTextEditorControl;if(!e)return[];const t=[];for(const s of e.getSupportedActions()){let a;(r=s.metadata)!=null&&r.description&&(isLocalizedString(s.metadata.description)?a=s.metadata.description:a={original:s.metadata.description,value:s.metadata.description}),t.push({commandId:s.id,commandAlias:s.alias,commandDescription:a,label:stripIcons(s.label)||s.id})}return t}}var __decorate$B=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$w=function(o,e){return function(t,r){e(t,r,o)}};let StandaloneCommandsQuickAccessProvider=class extends AbstractEditorCommandsQuickAccessProvider{get activeTextEditorControl(){var e;return(e=this.codeEditorService.getFocusedCodeEditor())!=null?e:void 0}constructor(e,t,r,s,a,l){super({showAlias:!1},e,r,s,a,l),this.codeEditorService=t}async getCommandPicks(){return this.getCodeEditorCommandPicks()}hasAdditionalCommandPicks(){return!1}async getAdditionalCommandPicks(){return[]}};StandaloneCommandsQuickAccessProvider=__decorate$B([__param$w(0,IInstantiationService),__param$w(1,ICodeEditorService),__param$w(2,IKeybindingService),__param$w(3,ICommandService),__param$w(4,ITelemetryService),__param$w(5,IDialogService)],StandaloneCommandsQuickAccessProvider);const Rs=class Rs extends EditorAction{constructor(){super({id:Rs.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)}};Rs.ID="editor.action.quickCommand";let GotoLineAction=Rs;registerEditorAction(GotoLineAction);Registry.as(Extensions.Quickaccess).registerQuickAccessProvider({ctor:StandaloneCommandsQuickAccessProvider,prefix:StandaloneCommandsQuickAccessProvider.PREFIX,helpEntries:[{description:QuickCommandNLS.quickCommandHelp,commandId:GotoLineAction.ID}]});var __decorate$A=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$v=function(o,e){return function(t,r){e(t,r,o)}};let StandaloneReferencesController=class extends ReferencesController{constructor(e,t,r,s,a,l,c){super(!0,e,t,r,s,a,l,c)}};StandaloneReferencesController=__decorate$A([__param$v(1,IContextKeyService),__param$v(2,ICodeEditorService),__param$v(3,INotificationService),__param$v(4,IInstantiationService),__param$v(5,IStorageService),__param$v(6,IConfigurationService)],StandaloneReferencesController);registerEditorContribution(ReferencesController.ID,StandaloneReferencesController,4);class ParsedTokenThemeRule{constructor(e,t,r,s,a){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=r,this.foreground=s,this.background=a}}function parseTokenTheme(o){if(!o||!Array.isArray(o))return[];const e=[];let t=0;for(let r=0,s=o.length;r<s;r++){const a=o[r];let l=-1;if(typeof a.fontStyle=="string"){l=0;const u=a.fontStyle.split(" ");for(let g=0,f=u.length;g<f;g++)switch(u[g]){case"italic":l=l|1;break;case"bold":l=l|2;break;case"underline":l=l|4;break;case"strikethrough":l=l|8;break}}let c=null;typeof a.foreground=="string"&&(c=a.foreground);let d=null;typeof a.background=="string"&&(d=a.background),e[t++]=new ParsedTokenThemeRule(a.token||"",r,l,c,d)}return e}function resolveParsedTokenThemeRules(o,e){o.sort((g,f)=>{const m=strcmp(g.token,f.token);return m!==0?m:g.index-f.index});let t=0,r="000000",s="ffffff";for(;o.length>=1&&o[0].token==="";){const g=o.shift();g.fontStyle!==-1&&(t=g.fontStyle),g.foreground!==null&&(r=g.foreground),g.background!==null&&(s=g.background)}const a=new ColorMap;for(const g of e)a.getId(g);const l=a.getId(r),c=a.getId(s),d=new ThemeTrieElementRule(t,l,c),u=new ThemeTrieElement(d);for(let g=0,f=o.length;g<f;g++){const m=o[g];u.insert(m.token,m.fontStyle,a.getId(m.foreground),a.getId(m.background))}return new TokenTheme(a,u)}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 r=this._color2id.get(e);return r||(r=++this._lastColorId,this._color2id.set(e,r),this._id2color[r]=Color.fromHex("#"+e),r)}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 r=this._cache.get(t);if(typeof r>"u"){const s=this._match(t),a=toStandardTokenType(t);r=(s.metadata|a<<8)>>>0,this._cache.set(t,r)}return(r|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,r){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=r,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,r){e!==-1&&(this._fontStyle=e),t!==0&&(this._foreground=t),r!==0&&(this._background=r),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 r,s;t===-1?(r=e,s=""):(r=e.substring(0,t),s=e.substring(t+1));const a=this._children.get(r);return typeof a<"u"?a.match(s):this._mainRule}insert(e,t,r,s){if(e===""){this._mainRule.acceptOverwrite(t,r,s);return}const a=e.indexOf(".");let l,c;a===-1?(l=e,c=""):(l=e.substring(0,a),c=e.substring(a+1));let d=this._children.get(l);typeof d>"u"&&(d=new ThemeTrieElement(this._mainRule.clone()),this._children.set(l,d)),d.insert(c,t,r,s)}}function generateTokensCSSForColorMap(o){const e=[];for(let t=1,r=o.length;t<r;t++){const s=o[t];e[t]=".mtk".concat(t," { color: ").concat(s,"; }")}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("\n")}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"}};var Ea,La,ka,Ia,Da,Ta,Ra,Na,Aa,Ma,Oa,Pa,$a,Fa;function getIconsStyleSheet(o){const e=new DisposableStore$1,t=e.add(new Emitter$1),r=getIconRegistry();return e.add(r.onDidChange(()=>t.fire())),o&&e.add(o.onDidProductIconThemeChange(()=>t.fire())),{dispose:()=>e.dispose(),onDidChange:t.event,getCSS(){const s=o?o.getProductIconTheme():new UnthemedProductIconTheme,a={},l=new Builder,c=new Builder;for(const d of r.getIcons()){const u=s.getIcon(d);if(!u)continue;const g=u.font,f=inline$1(Ea||(Ea=Ze(["--vscode-icon-","-font-family"])),className(d.id)),m=inline$1(La||(La=Ze(["--vscode-icon-","-content"])),className(d.id));g?(a[g.id]=g.definition,c.push(inline$1(ka||(ka=Ze(["",": ",";"])),f,stringValue(g.id)),inline$1(Ia||(Ia=Ze(["",": ",";"])),m,stringValue(u.fontCharacter))),l.push(inline$1(Da||(Da=Ze([".codicon-",":before { content: ","; font-family: ","; }"])),className(d.id),stringValue(u.fontCharacter),stringValue(g.id)))):(c.push(inline$1(Ta||(Ta=Ze(["",": ","; ",": 'codicon';"])),m,stringValue(u.fontCharacter),f)),l.push(inline$1(Ra||(Ra=Ze([".codicon-",":before { content: ","; }"])),className(d.id),stringValue(u.fontCharacter))))}for(const d in a){const u=a[d],g=u.weight?inline$1(Na||(Na=Ze(["font-weight: ",";"])),identValue(u.weight)):inline$1(Aa||(Aa=Ze([""]))),f=u.style?inline$1(Ma||(Ma=Ze(["font-style: ",";"])),identValue(u.style)):inline$1(Oa||(Oa=Ze([""]))),m=new Builder;for(const _ of u.src)m.push(inline$1(Pa||(Pa=Ze([""," format(",")"])),asCSSUrl(_.location),stringValue(_.format)));l.push(inline$1($a||($a=Ze(["@font-face { src: ","; font-family: ",";",""," font-display: block; }"])),m.join(", "),stringValue(d),g,f))}return l.push(inline$1(Fa||(Fa=Ze([":root { "," }"])),c.join(" "))),l.join("\n")}}}class UnthemedProductIconTheme{getIcon(e){const t=getIconRegistry();let r=e.defaults;for(;ThemeIcon.isThemeIcon(r);){const s=t.getIcon(r.id);if(!s)return;r=s.defaults}return r}}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 r=t.base;e.length>0?(isBuiltinTheme(e)?this.id=e:this.id=r+" "+e,this.themeName=e):(this.id=r,this.themeName=r),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 r in t.colors)e.has(r)||e.set(r,Color.fromHex(t.colors[r]))}this.colors=e}return this.colors}getColor(e,t){const r=this.getColors().get(e);if(r)return r;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 a=getBuiltinRules(this.themeData.base);e=a.rules,a.encodedTokensColors&&(t=a.encodedTokensColors)}const r=this.themeData.colors["editor.foreground"],s=this.themeData.colors["editor.background"];if(r||s){const a={token:""};r&&(a.foreground=r),s&&(a.background=s),e.push(a)}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,r){const a=this.tokenTheme._match([e].concat(t).join(".")).metadata,l=TokenMetadata.getForeground(a),c=TokenMetadata.getFontStyle(a);return{foreground:l,italic:!!(c&1),bold:!!(c&2),underline:!!(c&4),strikethrough:!!(c&8)}}get tokenColorMap(){return[]}}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$1{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="".concat(this._codiconCSS,"\n").concat(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(mainWindow,"(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$1.None}_registerShadowDomContainer(e){const t=createStyleSheet(e,r=>{r.className="monaco-colors",r.textContent=this._allCSS});return this._styleElements.push(t),{dispose:()=>{for(let r=0;r<this._styleElements.length;r++)if(this._styleElements[r]===t){this._styleElements.splice(r,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(r=>{r.base===e&&r.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=mainWindow.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={},r={addRule:l=>{t[l]||(e.push(l),t[l]=!0)}};themingRegistry.getThemingParticipants().forEach(l=>l(this._theme,r,this._environment));const s=[];for(const l of colorRegistry.getColors()){const c=this._theme.getColor(l.id,!0);c&&s.push("".concat(asCssVariableName(l.id),": ").concat(c.toString(),";"))}r.addRule(".monaco-editor, .monaco-diff-editor, .monaco-component { ".concat(s.join("\n")," }"));const a=this._colorMapOverride||this._theme.tokenTheme.getColorMap();r.addRule(generateTokensCSSForColorMap(a)),r.addRule(".monaco-editor, .monaco-diff-editor, .monaco-component { forced-color-adjust: none; }"),this._themeCSS=e.join("\n"),this._updateCSS(),TokenizationRegistry.setColorMap(a),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS="".concat(this._codiconCSS,"\n").concat(this._themeCSS),this._styleElements.forEach(e=>e.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}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 r=e.get(IStandaloneThemeService),s=r.getColorTheme();isHighContrast(s.type)?(r.setTheme(this._originalThemeName||(isDark(s.type)?VS_DARK_THEME_NAME:VS_LIGHT_THEME_NAME)),this._originalThemeName=null):(r.setTheme(isDark(s.type)?HC_BLACK_THEME_NAME:HC_LIGHT_THEME_NAME),this._originalThemeName=s.themeName)}}registerEditorAction(ToggleHighContrast);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$1;(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.Tool=27]="Tool",o[o.Snippet=28]="Snippet"})(CompletionItemKind$1||(CompletionItemKind$1={}));var CompletionItemTag$1;(function(o){o[o.Deprecated=1]="Deprecated"})(CompletionItemTag$1||(CompletionItemTag$1={}));var CompletionTriggerKind$1;(function(o){o[o.Invoke=0]="Invoke",o[o.TriggerCharacter=1]="TriggerCharacter",o[o.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(CompletionTriggerKind$1||(CompletionTriggerKind$1={}));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$1;(function(o){o[o.Text=0]="Text",o[o.Read=1]="Read",o[o.Write=2]="Write"})(DocumentHighlightKind$1||(DocumentHighlightKind$1={}));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.allowOverflow=4]="allowOverflow",o[o.allowVariableLineHeights=5]="allowVariableLineHeights",o[o.allowVariableFonts=6]="allowVariableFonts",o[o.allowVariableFontsInAccessibilityMode=7]="allowVariableFontsInAccessibilityMode",o[o.ariaLabel=8]="ariaLabel",o[o.ariaRequired=9]="ariaRequired",o[o.autoClosingBrackets=10]="autoClosingBrackets",o[o.autoClosingComments=11]="autoClosingComments",o[o.screenReaderAnnounceInlineSuggestion=12]="screenReaderAnnounceInlineSuggestion",o[o.autoClosingDelete=13]="autoClosingDelete",o[o.autoClosingOvertype=14]="autoClosingOvertype",o[o.autoClosingQuotes=15]="autoClosingQuotes",o[o.autoIndent=16]="autoIndent",o[o.autoIndentOnPaste=17]="autoIndentOnPaste",o[o.autoIndentOnPasteWithinString=18]="autoIndentOnPasteWithinString",o[o.automaticLayout=19]="automaticLayout",o[o.autoSurround=20]="autoSurround",o[o.bracketPairColorization=21]="bracketPairColorization",o[o.guides=22]="guides",o[o.codeLens=23]="codeLens",o[o.codeLensFontFamily=24]="codeLensFontFamily",o[o.codeLensFontSize=25]="codeLensFontSize",o[o.colorDecorators=26]="colorDecorators",o[o.colorDecoratorsLimit=27]="colorDecoratorsLimit",o[o.columnSelection=28]="columnSelection",o[o.comments=29]="comments",o[o.contextmenu=30]="contextmenu",o[o.copyWithSyntaxHighlighting=31]="copyWithSyntaxHighlighting",o[o.cursorBlinking=32]="cursorBlinking",o[o.cursorSmoothCaretAnimation=33]="cursorSmoothCaretAnimation",o[o.cursorStyle=34]="cursorStyle",o[o.cursorSurroundingLines=35]="cursorSurroundingLines",o[o.cursorSurroundingLinesStyle=36]="cursorSurroundingLinesStyle",o[o.cursorWidth=37]="cursorWidth",o[o.cursorHeight=38]="cursorHeight",o[o.disableLayerHinting=39]="disableLayerHinting",o[o.disableMonospaceOptimizations=40]="disableMonospaceOptimizations",o[o.domReadOnly=41]="domReadOnly",o[o.dragAndDrop=42]="dragAndDrop",o[o.dropIntoEditor=43]="dropIntoEditor",o[o.editContext=44]="editContext",o[o.emptySelectionClipboard=45]="emptySelectionClipboard",o[o.experimentalGpuAcceleration=46]="experimentalGpuAcceleration",o[o.experimentalWhitespaceRendering=47]="experimentalWhitespaceRendering",o[o.extraEditorClassName=48]="extraEditorClassName",o[o.fastScrollSensitivity=49]="fastScrollSensitivity",o[o.find=50]="find",o[o.fixedOverflowWidgets=51]="fixedOverflowWidgets",o[o.folding=52]="folding",o[o.foldingStrategy=53]="foldingStrategy",o[o.foldingHighlight=54]="foldingHighlight",o[o.foldingImportsByDefault=55]="foldingImportsByDefault",o[o.foldingMaximumRegions=56]="foldingMaximumRegions",o[o.unfoldOnClickAfterEndOfLine=57]="unfoldOnClickAfterEndOfLine",o[o.fontFamily=58]="fontFamily",o[o.fontInfo=59]="fontInfo",o[o.fontLigatures=60]="fontLigatures",o[o.fontSize=61]="fontSize",o[o.fontWeight=62]="fontWeight",o[o.fontVariations=63]="fontVariations",o[o.formatOnPaste=64]="formatOnPaste",o[o.formatOnType=65]="formatOnType",o[o.glyphMargin=66]="glyphMargin",o[o.gotoLocation=67]="gotoLocation",o[o.hideCursorInOverviewRuler=68]="hideCursorInOverviewRuler",o[o.hover=69]="hover",o[o.inDiffEditor=70]="inDiffEditor",o[o.inlineSuggest=71]="inlineSuggest",o[o.letterSpacing=72]="letterSpacing",o[o.lightbulb=73]="lightbulb",o[o.lineDecorationsWidth=74]="lineDecorationsWidth",o[o.lineHeight=75]="lineHeight",o[o.lineNumbers=76]="lineNumbers",o[o.lineNumbersMinChars=77]="lineNumbersMinChars",o[o.linkedEditing=78]="linkedEditing",o[o.links=79]="links",o[o.matchBrackets=80]="matchBrackets",o[o.minimap=81]="minimap",o[o.mouseStyle=82]="mouseStyle",o[o.mouseWheelScrollSensitivity=83]="mouseWheelScrollSensitivity",o[o.mouseWheelZoom=84]="mouseWheelZoom",o[o.multiCursorMergeOverlapping=85]="multiCursorMergeOverlapping",o[o.multiCursorModifier=86]="multiCursorModifier",o[o.mouseMiddleClickAction=87]="mouseMiddleClickAction",o[o.multiCursorPaste=88]="multiCursorPaste",o[o.multiCursorLimit=89]="multiCursorLimit",o[o.occurrencesHighlight=90]="occurrencesHighlight",o[o.occurrencesHighlightDelay=91]="occurrencesHighlightDelay",o[o.overtypeCursorStyle=92]="overtypeCursorStyle",o[o.overtypeOnPaste=93]="overtypeOnPaste",o[o.overviewRulerBorder=94]="overviewRulerBorder",o[o.overviewRulerLanes=95]="overviewRulerLanes",o[o.padding=96]="padding",o[o.pasteAs=97]="pasteAs",o[o.parameterHints=98]="parameterHints",o[o.peekWidgetDefaultFocus=99]="peekWidgetDefaultFocus",o[o.placeholder=100]="placeholder",o[o.definitionLinkOpensInPeek=101]="definitionLinkOpensInPeek",o[o.quickSuggestions=102]="quickSuggestions",o[o.quickSuggestionsDelay=103]="quickSuggestionsDelay",o[o.readOnly=104]="readOnly",o[o.readOnlyMessage=105]="readOnlyMessage",o[o.renameOnType=106]="renameOnType",o[o.renderRichScreenReaderContent=107]="renderRichScreenReaderContent",o[o.renderControlCharacters=108]="renderControlCharacters",o[o.renderFinalNewline=109]="renderFinalNewline",o[o.renderLineHighlight=110]="renderLineHighlight",o[o.renderLineHighlightOnlyWhenFocus=111]="renderLineHighlightOnlyWhenFocus",o[o.renderValidationDecorations=112]="renderValidationDecorations",o[o.renderWhitespace=113]="renderWhitespace",o[o.revealHorizontalRightPadding=114]="revealHorizontalRightPadding",o[o.roundedSelection=115]="roundedSelection",o[o.rulers=116]="rulers",o[o.scrollbar=117]="scrollbar",o[o.scrollBeyondLastColumn=118]="scrollBeyondLastColumn",o[o.scrollBeyondLastLine=119]="scrollBeyondLastLine",o[o.scrollPredominantAxis=120]="scrollPredominantAxis",o[o.selectionClipboard=121]="selectionClipboard",o[o.selectionHighlight=122]="selectionHighlight",o[o.selectionHighlightMaxLength=123]="selectionHighlightMaxLength",o[o.selectionHighlightMultiline=124]="selectionHighlightMultiline",o[o.selectOnLineNumbers=125]="selectOnLineNumbers",o[o.showFoldingControls=126]="showFoldingControls",o[o.showUnused=127]="showUnused",o[o.snippetSuggestions=128]="snippetSuggestions",o[o.smartSelect=129]="smartSelect",o[o.smoothScrolling=130]="smoothScrolling",o[o.stickyScroll=131]="stickyScroll",o[o.stickyTabStops=132]="stickyTabStops",o[o.stopRenderingLineAfter=133]="stopRenderingLineAfter",o[o.suggest=134]="suggest",o[o.suggestFontSize=135]="suggestFontSize",o[o.suggestLineHeight=136]="suggestLineHeight",o[o.suggestOnTriggerCharacters=137]="suggestOnTriggerCharacters",o[o.suggestSelection=138]="suggestSelection",o[o.tabCompletion=139]="tabCompletion",o[o.tabIndex=140]="tabIndex",o[o.trimWhitespaceOnDelete=141]="trimWhitespaceOnDelete",o[o.unicodeHighlighting=142]="unicodeHighlighting",o[o.unusualLineTerminators=143]="unusualLineTerminators",o[o.useShadowDOM=144]="useShadowDOM",o[o.useTabStops=145]="useTabStops",o[o.wordBreak=146]="wordBreak",o[o.wordSegmenterLocales=147]="wordSegmenterLocales",o[o.wordSeparators=148]="wordSeparators",o[o.wordWrap=149]="wordWrap",o[o.wordWrapBreakAfterCharacters=150]="wordWrapBreakAfterCharacters",o[o.wordWrapBreakBeforeCharacters=151]="wordWrapBreakBeforeCharacters",o[o.wordWrapColumn=152]="wordWrapColumn",o[o.wordWrapOverride1=153]="wordWrapOverride1",o[o.wordWrapOverride2=154]="wordWrapOverride2",o[o.wrappingIndent=155]="wrappingIndent",o[o.wrappingStrategy=156]="wrappingStrategy",o[o.showDeprecated=157]="showDeprecated",o[o.inertialScroll=158]="inertialScroll",o[o.inlayHints=159]="inlayHints",o[o.wrapOnEscapedLineFeeds=160]="wrapOnEscapedLineFeeds",o[o.effectiveCursorStyle=161]="effectiveCursorStyle",o[o.editorClassName=162]="editorClassName",o[o.pixelRatio=163]="pixelRatio",o[o.tabFocusMode=164]="tabFocusMode",o[o.layoutInfo=165]="layoutInfo",o[o.wrappingInfo=166]="wrappingInfo",o[o.defaultColorDecorators=167]="defaultColorDecorators",o[o.colorDecoratorsActivatedOn=168]="colorDecoratorsActivatedOn",o[o.inlineCompletionsAccessibilityVerbose=169]="inlineCompletionsAccessibilityVerbose",o[o.effectiveEditContext=170]="effectiveEditContext",o[o.scrollOnMiddleClick=171]="scrollOnMiddleClick",o[o.effectiveAllowVariableFonts=172]="effectiveAllowVariableFonts"})(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;(function(o){o[o.Left=1]="Left",o[o.Center=2]="Center",o[o.Right=3]="Right"})(GlyphMarginLane||(GlyphMarginLane={}));var HoverVerbosityAction;(function(o){o[o.Increase=0]="Increase",o[o.Decrease=1]="Decrease"})(HoverVerbosityAction||(HoverVerbosityAction={}));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={}));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={}));var InlayHintKind$1;(function(o){o[o.Type=1]="Type",o[o.Parameter=2]="Parameter"})(InlayHintKind$1||(InlayHintKind$1={}));var InlineCompletionEndOfLifeReasonKind;(function(o){o[o.Accepted=0]="Accepted",o[o.Rejected=1]="Rejected",o[o.Ignored=2]="Ignored"})(InlineCompletionEndOfLifeReasonKind||(InlineCompletionEndOfLifeReasonKind={}));var InlineCompletionHintStyle;(function(o){o[o.Code=1]="Code",o[o.Label=2]="Label"})(InlineCompletionHintStyle||(InlineCompletionHintStyle={}));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$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={}));var MarkerTag$1;(function(o){o[o.Unnecessary=1]="Unnecessary",o[o.Deprecated=2]="Deprecated"})(MarkerTag$1||(MarkerTag$1={}));var MinimapPosition;(function(o){o[o.Inline=1]="Inline",o[o.Gutter=2]="Gutter"})(MinimapPosition||(MinimapPosition={}));var MinimapSectionHeaderStyle;(function(o){o[o.Normal=1]="Normal",o[o.Underlined=2]="Underlined"})(MinimapSectionHeaderStyle||(MinimapSectionHeaderStyle={}));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 NewSymbolNameTag;(function(o){o[o.AIGenerated=1]="AIGenerated"})(NewSymbolNameTag||(NewSymbolNameTag={}));var NewSymbolNameTriggerKind;(function(o){o[o.Invoke=0]="Invoke",o[o.Automatic=1]="Automatic"})(NewSymbolNameTriggerKind||(NewSymbolNameTriggerKind={}));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;(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 PartialAcceptTriggerKind;(function(o){o[o.Word=0]="Word",o[o.Line=1]="Line",o[o.Suggest=2]="Suggest"})(PartialAcceptTriggerKind||(PartialAcceptTriggerKind={}));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 ShowLightbulbIconMode;(function(o){o.Off="off",o.OnCode="onCode",o.On="on"})(ShowLightbulbIconMode||(ShowLightbulbIconMode={}));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 SymbolKind$1;(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$1||(SymbolKind$1={}));var SymbolTag$1;(function(o){o[o.Deprecated=1]="Deprecated"})(SymbolTag$1||(SymbolTag$1={}));var TextDirection;(function(o){o[o.LTR=0]="LTR",o[o.RTL=1]="RTL"})(TextDirection||(TextDirection={}));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={}));var ri;let KeyMod$1=(ri=class{static chord(e,t){return KeyChord(e,t)}},ri.CtrlCmd=2048,ri.Shift=1024,ri.Alt=512,ri.WinCtrl=256,ri);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$1,MarkerTag:MarkerTag$1,Uri:URI,Token:Token$2}}const DEFAULT_CHANNEL="default",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,r,s,a){this.vsWorker=e,this.req=t,this.channel=r,this.method=s,this.args=a,this.type=0}}class ReplyMessage{constructor(e,t,r,s){this.vsWorker=e,this.seq=t,this.res=r,this.err=s,this.type=1}}class SubscribeEventMessage{constructor(e,t,r,s,a){this.vsWorker=e,this.req=t,this.channel=r,this.eventName=s,this.arg=a,this.type=2}}class EventMessage{constructor(e,t,r){this.vsWorker=e,this.req=t,this.event=r,this.type=3}}class UnsubscribeEventMessage{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class WebWorkerProtocol{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}async sendMessage(e,t,r){const s=String(++this._lastSentReq);return new Promise((a,l)=>{this._pendingReplies[s]={resolve:a,reject:l},this._send(new RequestMessage(this._workerId,s,e,t,r))})}listen(e,t,r){let s=null;const a=new Emitter$1({onWillAddFirstListener:()=>{s=String(++this._lastSentReq),this._pendingEmitters.set(s,a),this._send(new SubscribeEventMessage(this._workerId,s,e,t,r))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(s),this._send(new UnsubscribeEventMessage(this._workerId,s)),s=null}});return a.event}handleMessage(e){!e||!e.vsWorker||this._workerId!==-1&&e.vsWorker!==this._workerId||this._handleMessage(e)}createProxyToRemoteChannel(e,t){const r={get:(s,a)=>(typeof a=="string"&&!s[a]&&(propertyIsDynamicEvent(a)?s[a]=l=>this.listen(e,a,l):propertyIsEvent(a)?s[a]=this.listen(e,a,void 0):a.charCodeAt(0)===36&&(s[a]=async(...l)=>(await(t==null?void 0:t()),this.sendMessage(e,a,l)))),s[a])};return new Proxy(Object.create(null),r)}_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 r=e.err;if(e.err.$isError){const s=new Error;s.name=e.err.name,s.message=e.err.message,s.stack=e.err.stack,r=s}t.reject(r);return}t.resolve(e.res)}_handleRequestMessage(e){const t=e.req;this._handler.handleMessage(e.channel,e.method,e.args).then(s=>{this._send(new ReplyMessage(this._workerId,t,s,void 0))},s=>{s.detail instanceof Error&&(s.detail=transformErrorForSerialization(s.detail)),this._send(new ReplyMessage(this._workerId,t,void 0,transformErrorForSerialization(s)))})}_handleSubscribeEventMessage(e){const t=e.req,r=this._handler.handleEvent(e.channel,e.eventName,e.arg)(s=>{this._send(new EventMessage(this._workerId,t,s))});this._pendingEvents.set(t,r)}_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 r=0;r<e.args.length;r++){const s=e.args[r];s instanceof ArrayBuffer&&t.push(s)}else e.type===1&&e.res instanceof ArrayBuffer&&t.push(e.res);this._handler.sendMessage(e,t)}}class WebWorkerClient extends Disposable$1{constructor(e){super(),this._localChannels=new Map,this._worker=this._register(e),this._register(this._worker.onMessage(t=>{this._protocol.handleMessage(t)})),this._register(this._worker.onError(t=>{logOnceWebWorkerWarning(t),onUnexpectedError(t)})),this._protocol=new WebWorkerProtocol({sendMessage:(t,r)=>{this._worker.postMessage(t,r)},handleMessage:(t,r,s)=>this._handleMessage(t,r,s),handleEvent:(t,r,s)=>this._handleEvent(t,r,s)}),this._protocol.setWorkerId(this._worker.getId()),this._onModuleLoaded=this._protocol.sendMessage(DEFAULT_CHANNEL,INITIALIZE,[this._worker.getId()]).then(()=>{}),this.proxy=this._protocol.createProxyToRemoteChannel(DEFAULT_CHANNEL,async()=>{await this._onModuleLoaded}),this._onModuleLoaded.catch(t=>{this._onError("Worker failed to load ",t)})}_handleMessage(e,t,r){const s=this._localChannels.get(e);if(!s)return Promise.reject(new Error("Missing channel ".concat(e," on main thread")));const a=s[t];if(typeof a!="function")return Promise.reject(new Error("Missing method ".concat(t," on main thread channel ").concat(e)));try{return Promise.resolve(a.apply(s,r))}catch(l){return Promise.reject(l)}}_handleEvent(e,t,r){const s=this._localChannels.get(e);if(!s)throw new Error("Missing channel ".concat(e," on main thread"));if(propertyIsDynamicEvent(t)){const a=s[t];if(typeof a!="function")throw new Error("Missing dynamic event ".concat(t," on main thread channel ").concat(e,"."));const l=a.call(s,r);if(typeof l!="function")throw new Error("Missing dynamic event ".concat(t," on main thread channel ").concat(e,"."));return l}if(propertyIsEvent(t)){const a=s[t];if(typeof a!="function")throw new Error("Missing event ".concat(t," on main thread channel ").concat(e,"."));return a}throw new Error("Malformed event name ".concat(t))}setChannel(e,t){this._localChannels.set(e,t)}_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))}let ttPolicy$2;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?ttPolicy$2=globalThis.workerttPolicy:ttPolicy$2=createTrustedTypesPolicy$1("defaultWorkerFactory",{createScriptURL:o=>o});function getWorker$2(o,e){const t=o.label||"anonymous"+e,r=getMonacoEnvironment();if(r){if(typeof r.getWorker=="function")return r.getWorker("workerMain.js",t);if(typeof r.getWorkerUrl=="function"){const a=r.getWorkerUrl("workerMain.js",t);return new Worker(ttPolicy$2?ttPolicy$2.createScriptURL(a):a,{name:t,type:"module"})}}const s=o.esmModuleLocation;if(s){const a=getWorkerBootstrapUrl(t,s.toString(!0)),l=new Worker(ttPolicy$2?ttPolicy$2.createScriptURL(a):a,{name:t,type:"module"});return whenESMWorkerReady(l)}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function getWorkerBootstrapUrl(o,e){if(!(/^((http:)|(https:)|(file:))/.test(e)&&e.substring(0,globalThis.origin.length)!==globalThis.origin)){const r=e.lastIndexOf("?"),s=e.lastIndexOf("#",r),a=r>0?new URLSearchParams(e.substring(r+1,~s?s:void 0)):new URLSearchParams;COI.addSearchParam(a,!0,!0),a.toString()?e="".concat(e,"?").concat(a.toString(),"#").concat(o):e="".concat(e,"#").concat(o)}const t=new Blob([coalesce(["/*".concat(o,"*/"),"globalThis._VSCODE_NLS_MESSAGES = ".concat(JSON.stringify(getNLSMessages()),";"),"globalThis._VSCODE_NLS_LANGUAGE = ".concat(JSON.stringify(getNLSLanguage()),";"),"globalThis._VSCODE_FILE_ROOT = ".concat(JSON.stringify(globalThis._VSCODE_FILE_ROOT),";"),"const ttPolicy = globalThis.trustedTypes?.createPolicy('defaultWorkerFactory', { createScriptURL: value => value });","globalThis.workerttPolicy = ttPolicy;","await import(ttPolicy?.createScriptURL(".concat(JSON.stringify(e),") ?? ").concat(JSON.stringify(e),");"),"globalThis.postMessage({ type: 'vscode-worker-ready' });","/*".concat(o,"*/")]).join("")],{type:"application/javascript"});return URL.createObjectURL(t)}function whenESMWorkerReady(o){return new Promise((e,t)=>{o.onmessage=function(r){r.data.type==="vscode-worker-ready"&&(o.onmessage=null,e(o))},o.onerror=t})}function isPromiseLike(o){return!!o&&typeof o.then=="function"}const Ns=class Ns extends Disposable$1{constructor(e){super(),this._onMessage=this._register(new Emitter$1),this.onMessage=this._onMessage.event,this._onError=this._register(new Emitter$1),this.onError=this._onError.event,this.id=++Ns.LAST_WORKER_ID;const t=e instanceof Worker||"then"in e?e:getWorker$2(e,this.id);isPromiseLike(t)?this.worker=t:this.worker=Promise.resolve(t),this.postMessage("-please-ignore-",[]);const r=s=>{this._onError.fire(s)};this.worker.then(s=>{s.onmessage=a=>{this._onMessage.fire(a.data)},s.onmessageerror=a=>{this._onError.fire(a)},typeof s.addEventListener=="function"&&s.addEventListener("error",r)}),this._register(toDisposable(()=>{var s;(s=this.worker)==null||s.then(a=>{a.onmessage=null,a.onmessageerror=null,a.removeEventListener("error",r),a.terminate()}),this.worker=null}))}getId(){return this.id}postMessage(e,t){var r;(r=this.worker)==null||r.then(s=>{try{s.postMessage(e,t)}catch(a){onUnexpectedError(a),onUnexpectedError(new Error("FAILED to post message to worker",{cause:a}))}})}};Ns.LAST_WORKER_ID=0;let WebWorker=Ns;class WebWorkerDescriptor{constructor(e,t){this.esmModuleLocation=e,this.label=t}}function createWebWorker$3(o,e){const t=URI.isUri(o)?new WebWorkerDescriptor(o,e):o;return new WebWorkerClient(new WebWorker(t))}class Uint8Matrix{constructor(e,t,r){const s=new Uint8Array(e*t);for(let a=0,l=e*t;a<l;a++)s[a]=r;this._data=s,this.rows=e,this.cols=t}get(e,t){return this._data[e*this.cols+t]}set(e,t,r){this._data[e*this.cols+t]=r}}class StateMachine{constructor(e){let t=0,r=0;for(let a=0,l=e.length;a<l;a++){const[c,d,u]=e[a];d>t&&(t=d),c>r&&(r=c),u>r&&(r=u)}t++,r++;const s=new Uint8Matrix(r,t,0);for(let a=0,l=e.length;a<l;a++){const[c,d,u]=e[a];s.set(c,d,u)}this._states=s,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,r,s,a){let l=a-1;do{const c=t.charCodeAt(l);if(e.get(c)!==2)break;l--}while(l>s);if(s>0){const c=t.charCodeAt(s-1),d=t.charCodeAt(l);(c===40&&d===41||c===91&&d===93||c===123&&d===125)&&l--}return{range:{startLineNumber:r,startColumn:s+1,endLineNumber:r,endColumn:l+2},url:t.substring(s,l+1)}}static computeLinks(e,t=getStateMachine()){const r=getClassifier(),s=[];for(let a=1,l=e.getLineCount();a<=l;a++){const c=e.getLineContent(a),d=c.length;let u=0,g=0,f=0,m=1,_=!1,v=!1,b=!1,C=!1;for(;u<d;){let y=!1;const S=c.charCodeAt(u);if(m===13){let w;switch(S){case 40:_=!0,w=0;break;case 41:w=_?0:1;break;case 91:b=!0,v=!0,w=0;break;case 93:b=!1,w=v?0:1;break;case 123:C=!0,w=0;break;case 125:w=C?0:1;break;case 39:case 34:case 96:f===S?w=1:f===39||f===34||f===96?w=0:w=1;break;case 42:w=f===42?1:0;break;case 32:w=b?0:1;break;default:w=r.get(S)}w===1&&(s.push(LinkComputer._createLink(r,c,a,g,u)),y=!0)}else if(m===12){let w;S===91?(v=!0,w=0):w=r.get(S),w===1?y=!0:m=13}else m=t.nextState(m,S),m===0&&(y=!0);y&&(m=1,_=!1,v=!1,C=!1,g=u+1,f=S),u++}m===13&&s.push(LinkComputer._createLink(r,c,a,g,d))}return s}}function computeLinks(o){return!o||typeof o.getLineCount!="function"||typeof o.getLineContent!="function"?[]:LinkComputer.computeLinks(o)}const As=class As{constructor(){this._defaultValueSet=[["true","false"],["True","False"],["Private","Public","Friend","ReadOnly","Partial","Protected","WriteOnly"],["public","protected","private"]]}navigateValueSet(e,t,r,s,a){if(e&&t){const l=this.doNavigateValueSet(t,a);if(l)return{range:e,value:l}}if(r&&s){const l=this.doNavigateValueSet(s,a);if(l)return{range:r,value:l}}return null}doNavigateValueSet(e,t){const r=this.numberReplace(e,t);return r!==null?r:this.textReplace(e,t)}numberReplace(e,t){const r=Math.pow(10,e.length-(e.lastIndexOf(".")+1));let s=Number(e);const a=parseFloat(e);return!isNaN(s)&&!isNaN(a)&&s===a?s===0&&!t?null:(s=Math.floor(s*r),s+=t?r:-r,String(s/r)):null}textReplace(e,t){return this.valueSetsReplace(this._defaultValueSet,e,t)}valueSetsReplace(e,t,r){let s=null;for(let a=0,l=e.length;s===null&&a<l;a++)s=this.valueSetReplace(e[a],t,r);return s}valueSetReplace(e,t,r){let s=e.indexOf(t);return s>=0?(s+=r?1:-1,s<0?s=e.length-1:s%=e.length,e[s]):null}};As.INSTANCE=new As;let BasicInplaceReplace=As;function _parseCaptureGroups(o){const e=[];for(const t of o){const r=Number(t);(r||r===0&&t.replace(/\s/g,"")!=="")&&e.push(r)}return e}function _toIColor(o,e,t,r){return{red:o/255,blue:t/255,green:e/255,alpha:r}}function _findRange(o,e){const t=e.index,r=e[0].length;if(t===void 0)return;const s=o.positionAt(t);return{startLineNumber:s.lineNumber,startColumn:s.column,endLineNumber:s.lineNumber,endColumn:s.column+r}}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 s=e[0].values(),a=_parseCaptureGroups(s);return{range:o,color:_toIColor(a[0],a[1],a[2],t?a[3]:1)}}function _findHSLColorInformation(o,e,t){if(!o||e.length!==1)return;const s=e[0].values(),a=_parseCaptureGroups(s),l=new Color(new HSLA$1(a[0],a[1]/100,a[2]/100,t?a[3]:1));return{range:o,color:_toIColor(l.rgba.r,l.rgba.g,l.rgba.b,l.rgba.a)}}function _findMatches(o,e){return typeof o=="string"?[...o.matchAll(e)]:o.findMatches(e)}function computeColors(o){const e=[],t=new RegExp("\\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|(?<=['\"\\s])(#)([A-Fa-f0-9]{3})\\b|(?<=['\"\\s])(#)([A-Fa-f0-9]{4})\\b|(?<=['\"\\s])(#)([A-Fa-f0-9]{6})\\b|(?<=['\"\\s])(#)([A-Fa-f0-9]{8})\\b","gm"),r=_findMatches(o,t);if(r.length>0)for(const s of r){const a=s.filter(u=>u!==void 0),l=a[1],c=a[2];if(!c)continue;let d;if(l==="rgb"){const u=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;d=_findRGBColorInformation(_findRange(o,s),_findMatches(c,u),!1)}else if(l==="rgba"){const u=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;d=_findRGBColorInformation(_findRange(o,s),_findMatches(c,u),!0)}else if(l==="hsl"){const u=/^\(\s*((?:360(?:\.0+)?|(?:36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])(?:\.\d+)?))\s*[\s,]\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*[\s,]\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;d=_findHSLColorInformation(_findRange(o,s),_findMatches(c,u),!1)}else if(l==="hsla"){const u=/^\(\s*((?:360(?:\.0+)?|(?:36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])(?:\.\d+)?))\s*[\s,]\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*[\s,]\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*[\s,]\s*(0[.][0-9]+|[.][0-9]+|[01][.]0*|[01])\s*\)$/gm;d=_findHSLColorInformation(_findRange(o,s),_findMatches(c,u),!0)}else l==="#"&&(d=_findHexColorInformation(_findRange(o,s),l+c));d&&e.push(d)}return e}function computeDefaultDocumentColors(o){return!o||typeof o.getValue!="function"||typeof o.positionAt!="function"?[]:computeColors(o)}const trimDashesRegex=/^-+|-+$/g,CHUNK_SIZE=100,MAX_SECTION_LINES=5;function findSectionHeaders(o,e){var r;let t=[];if(e.findRegionSectionHeaders&&((r=e.foldingRules)!=null&&r.markers)){const s=collectRegionHeaders(o,e);t=t.concat(s)}if(e.findMarkSectionHeaders){const s=collectMarkHeaders(o,e);t=t.concat(s)}return t}function collectRegionHeaders(o,e){const t=[],r=o.getLineCount();for(let s=1;s<=r;s++){const a=o.getLineContent(s),l=a.match(e.foldingRules.markers.start);if(l){const c={startLineNumber:s,startColumn:l[0].length+1,endLineNumber:s,endColumn:a.length+1};if(c.endColumn>c.startColumn){const d={range:c,...getHeaderText(a.substring(l[0].length)),shouldBeInComments:!1};(d.text||d.hasSeparatorLine)&&t.push(d)}}}return t}function collectMarkHeaders(o,e){var l,c,d,u;const t=[],r=o.getLineCount();if(!e.markSectionHeaderRegex||e.markSectionHeaderRegex.trim()==="")return t;const s=isMultilineRegexSource(e.markSectionHeaderRegex),a=new RegExp(e.markSectionHeaderRegex,"gdm".concat(s?"s":""));if(regExpLeadsToEndlessLoop(a))return t;for(let g=1;g<=r;g+=CHUNK_SIZE-MAX_SECTION_LINES){const f=Math.min(g+CHUNK_SIZE-1,r),m=[];for(let b=g;b<=f;b++)m.push(o.getLineContent(b));const _=m.join("\n");a.lastIndex=0;let v;for(;(v=a.exec(_))!==null;){const b=_.substring(0,v.index),C=(b.match(/\n/g)||[]).length,y=g+C,S=v[0].split("\n"),w=S.length,E=y+w-1,x=b.lastIndexOf("\n")+1,L=v.index-x+1,k=S[S.length-1],D=w===1?L+v[0].length:k.length+1,I={startLineNumber:y,startColumn:L,endLineNumber:E,endColumn:D},T=(c=((l=v.groups)!=null?l:{}).label)!=null?c:"",M=((u=((d=v.groups)!=null?d:{}).separator)!=null?u:"")!=="",R={range:I,text:T,hasSeparatorLine:M,shouldBeInComments:!0};(R.text||R.hasSeparatorLine)&&(t.length===0||t[t.length-1].range.endLineNumber<R.range.startLineNumber)&&t.push(R),a.lastIndex=v.index+v[0].length}}return t}function getHeaderText(o){o=o.trim();const e=o.startsWith("-");return o=o.replace(trimDashesRegex,""),{text:o,hasSeparatorLine:e}}class MirrorTextModel{constructor(e,t,r,s){this._uri=e,this._lines=t,this._eol=r,this._versionId=s,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 r of t)this._acceptDeleteRange(r.range),this._acceptInsertText(new Position$1(r.range.startLineNumber,r.range.startColumn),r.text);this._versionId=e.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const e=this._eol.length,t=this._lines.length,r=new Uint32Array(t);for(let s=0;s<t;s++)r[s]=this._lines[s].length+e;this._lineStarts=new PrefixSumComputer(r)}}_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 r=splitLines(t);if(r.length===1){this._setLineText(e.lineNumber-1,this._lines[e.lineNumber-1].substring(0,e.column-1)+r[0]+this._lines[e.lineNumber-1].substring(e.column-1));return}r[r.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)+r[0]);const s=new Uint32Array(r.length-1);for(let a=1;a<r.length;a++)this._lines.splice(e.lineNumber+a-1,0,r[a]),s[a-1]=r[a].length+this._eol.length;this._lineStarts&&this._lineStarts.insertValues(e.lineNumber,s)}}const STOP_SYNC_MODEL_DELTA_TIME_MS=60*1e3;class WorkerTextModelSyncClient extends Disposable$1{constructor(e,t,r=!1){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!r){const s=new IntervalTimer;s.cancelAndSet(()=>this._checkStopModelSync(),Math.round(STOP_SYNC_MODEL_DELTA_TIME_MS/2)),this._register(s)}}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=!1){for(const r of e){const s=r.toString();this._syncedModels[s]||this._beginModelSync(r,t),this._syncedModels[s]&&(this._syncedModelsLastUsedTime[s]=new Date().getTime())}}_checkStopModelSync(){const e=new Date().getTime(),t=[];for(const r in this._syncedModelsLastUsedTime)e-this._syncedModelsLastUsedTime[r]>STOP_SYNC_MODEL_DELTA_TIME_MS&&t.push(r);for(const r of t)this._stopModelSync(r)}_beginModelSync(e,t){const r=this._modelService.getModel(e);if(!r||!t&&r.isTooLargeForSyncing())return;const s=e.toString();this._proxy.$acceptNewModel({url:r.uri.toString(),lines:r.getLinesContent(),EOL:r.getEOL(),versionId:r.getVersionId()});const a=new DisposableStore$1;a.add(r.onDidChangeContent(l=>{this._proxy.$acceptModelChanged(s.toString(),l)})),a.add(r.onWillDispose(()=>{this._stopModelSync(s)})),a.add(toDisposable(()=>{this._proxy.$acceptRemovedModel(s)})),this._syncedModels[s]=a}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],dispose(t)}}class WorkerTextModelSyncServer{constructor(){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]}}class MirrorModel extends MirrorTextModel{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(e){const t=[];for(let r=0;r<this._lines.length;r++){const s=this._lines[r],a=this.offsetAt(new Position$1(r+1,1)),l=s.matchAll(e);for(const c of l)(c.index||c.index===0)&&(c.index=c.index+a),t.push(c)}return t}getLinesContent(){return this._lines.slice(0)}getLineCount(){return this._lines.length}getLineContent(e){return this._lines[e-1]}getWordAtPosition(e,t){const r=getWordAtText(e.column,ensureValidWordDefinition(t),this._lines[e.lineNumber-1],0);return r?new Range$2(e.lineNumber,r.startColumn,e.lineNumber,r.endColumn):null}words(e){const t=this._lines,r=this._wordenize.bind(this);let s=0,a="",l=0,c=[];return{*[Symbol.iterator](){for(;;)if(l<c.length){const d=a.substring(c[l].start,c[l].end);l+=1,yield d}else if(s<t.length)a=t[s],c=r(a,e),l=0,s+=1;else break}}}getLineWords(e,t){const r=this._lines[e-1],s=this._wordenize(r,t),a=[];for(const l of s)a.push({word:r.substring(l.start,l.end),startColumn:l.start+1,endColumn:l.end+1});return a}_wordenize(e,t){const r=[];let s;for(t.lastIndex=0;(s=t.exec(e))&&s[0].length!==0;)r.push({start:s.index,end:s.index+s[0].length});return r}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,r=e.startLineNumber-1,s=e.endLineNumber-1,a=[];a.push(this._lines[r].substring(e.startColumn-1));for(let l=r+1;l<s;l++)a.push(this._lines[l]);return a.push(this._lines[s].substring(0,e.endColumn-1)),a.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),r=this._lines[t.index].length;return{lineNumber:1+t.index,column:1+Math.min(t.remainder,r)}}_validateRange(e){const t=this._validatePosition({lineNumber:e.startLineNumber,column:e.startColumn}),r=this._validatePosition({lineNumber:e.endLineNumber,column:e.endColumn});return t.lineNumber!==e.startLineNumber||t.column!==e.startColumn||r.lineNumber!==e.endLineNumber||r.column!==e.endColumn?{startLineNumber:t.lineNumber,startColumn:t.column,endLineNumber:r.lineNumber,endColumn:r.column}:e}_validatePosition(e){if(!Position$1.isIPosition(e))throw new Error("bad position");let{lineNumber:t,column:r}=e,s=!1;if(t<1)t=1,r=1,s=!0;else if(t>this._lines.length)t=this._lines.length,r=this._lines[t-1].length+1,s=!0;else{const a=this._lines[t-1].length+1;r<1?(r=1,s=!0):r>a&&(r=a,s=!0)}return s?{lineNumber:t,column:r}:e}}const Gi=class Gi{constructor(e=null){this._foreignModule=e,this._requestHandlerBrand=void 0,this._workerTextModelSyncServer=new WorkerTextModelSyncServer}dispose(){}async $ping(){return"pong"}_getModel(e){return this._workerTextModelSyncServer.getModel(e)}getModels(){return this._workerTextModelSyncServer.getModels()}$acceptNewModel(e){this._workerTextModelSyncServer.$acceptNewModel(e)}$acceptModelChanged(e,t){this._workerTextModelSyncServer.$acceptModelChanged(e,t)}$acceptRemovedModel(e){this._workerTextModelSyncServer.$acceptRemovedModel(e)}async $computeUnicodeHighlights(e,t,r){const s=this._getModel(e);return s?UnicodeTextModelHighlighter.computeUnicodeHighlights(s,t,r):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async $findSectionHeaders(e,t){const r=this._getModel(e);return r?findSectionHeaders(r,t):[]}async $computeDiff(e,t,r,s){const a=this._getModel(e),l=this._getModel(t);return!a||!l?null:Gi.computeDiff(a,l,r,s)}static computeDiff(e,t,r,s){const a=s==="advanced"?linesDiffComputers.getDefault():linesDiffComputers.getLegacy(),l=e.getLinesContent(),c=t.getLinesContent(),d=a.computeDiff(l,c,r),u=d.changes.length>0?!1:this._modelsAreIdentical(e,t);function g(f){return f.map(m=>{var _;return[m.original.startLineNumber,m.original.endLineNumberExclusive,m.modified.startLineNumber,m.modified.endLineNumberExclusive,(_=m.innerChanges)==null?void 0:_.map(v=>[v.originalRange.startLineNumber,v.originalRange.startColumn,v.originalRange.endLineNumber,v.originalRange.endColumn,v.modifiedRange.startLineNumber,v.modifiedRange.startColumn,v.modifiedRange.endLineNumber,v.modifiedRange.endColumn])]})}return{identical:u,quitEarly:d.hitTimeout,changes:g(d.changes),moves:d.moves.map(f=>[f.lineRangeMapping.original.startLineNumber,f.lineRangeMapping.original.endLineNumberExclusive,f.lineRangeMapping.modified.startLineNumber,f.lineRangeMapping.modified.endLineNumberExclusive,g(f.changes)])}}static _modelsAreIdentical(e,t){const r=e.getLineCount(),s=t.getLineCount();if(r!==s)return!1;for(let a=1;a<=r;a++){const l=e.getLineContent(a),c=t.getLineContent(a);if(l!==c)return!1}return!0}async $computeMoreMinimalEdits(e,t,r){const s=this._getModel(e);if(!s)return t;const a=[];let l;t=t.slice(0).sort((d,u)=>{if(d.range&&u.range)return Range$2.compareRangesUsingStarts(d.range,u.range);const g=d.range?0:1,f=u.range?0:1;return g-f});let c=0;for(let d=1;d<t.length;d++)Range$2.getEndPosition(t[c].range).equals(Range$2.getStartPosition(t[d].range))?(t[c].range=Range$2.fromPositions(Range$2.getStartPosition(t[c].range),Range$2.getEndPosition(t[d].range)),t[c].text+=t[d].text):(c++,t[c]=t[d]);t.length=c+1;for(let{range:d,text:u,eol:g}of t){if(typeof g=="number"&&(l=g),Range$2.isEmpty(d)&&!u)continue;const f=s.getValueInRange(d);if(u=u.replace(/\r\n|\n|\r/g,s.eol),f===u)continue;if(Math.max(u.length,f.length)>Gi._diffLimit){a.push({range:d,text:u});continue}const m=stringDiff(f,u,r),_=s.offsetAt(Range$2.lift(d).getStartPosition());for(const v of m){const b=s.positionAt(_+v.originalStart),C=s.positionAt(_+v.originalStart+v.originalLength),y={text:u.substr(v.modifiedStart,v.modifiedLength),range:{startLineNumber:b.lineNumber,startColumn:b.column,endLineNumber:C.lineNumber,endColumn:C.column}};s.getValueInRange(y.range)!==y.text&&a.push(y)}}return typeof l=="number"&&a.push({eol:l,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),a}async $computeLinks(e){const t=this._getModel(e);return t?computeLinks(t):null}async $computeDefaultDocumentColors(e){const t=this._getModel(e);return t?computeDefaultDocumentColors(t):null}async $textualSuggest(e,t,r,s){const a=new StopWatch,l=new RegExp(r,s),c=new Set;e:for(const d of e){const u=this._getModel(d);if(u){for(const g of u.words(l))if(!(g===t||!isNaN(Number(g)))&&(c.add(g),c.size>Gi._suggestionsLimit))break e}}return{words:Array.from(c),duration:a.elapsed()}}async $computeWordRanges(e,t,r,s){const a=this._getModel(e);if(!a)return Object.create(null);const l=new RegExp(r,s),c=Object.create(null);for(let d=t.startLineNumber;d<t.endLineNumber;d++){const u=a.getLineWords(d,l);for(const g of u){if(!isNaN(Number(g.word)))continue;let f=c[g.word];f||(f=[],c[g.word]=f),f.push({startLineNumber:d,startColumn:g.startColumn,endLineNumber:d,endColumn:g.endColumn})}}return c}async $navigateValueSet(e,t,r,s,a){const l=this._getModel(e);if(!l)return null;const c=new RegExp(s,a);t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1});const d=l.getValueInRange(t),u=l.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},c);if(!u)return null;const g=l.getValueInRange(u);return BasicInplaceReplace.INSTANCE.navigateValueSet(t,d,u,g,r)}$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(r){return Promise.reject(r)}}};Gi._diffLimit=1e5,Gi._suggestionsLimit=1e4;let EditorWorker=Gi;typeof importScripts=="function"&&(globalThis.monaco=createMonacoBaseAPI());const Gr=class Gr{static getChannel(e){return e.getChannel(Gr.CHANNEL_NAME)}static setChannel(e,t){e.setChannel(Gr.CHANNEL_NAME,t)}};Gr.CHANNEL_NAME="editorWorkerHost";let EditorWorkerHost=Gr;var __decorate$z=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$u=function(o,e){return function(t,r){e(t,r,o)}};const STOP_WORKER_DELTA_TIME_MS=300*1e3;function canSyncModel(o,e){const t=o.getModel(e);return!(!t||t.isTooLargeForSyncing())}let EditorWorkerService=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._languageConfigurationService=a,this._modelService=t,this._workerManager=this._register(new WorkerManager(e,this._modelService)),this._logService=s,this._register(l.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:async(c,d)=>{if(!canSyncModel(this._modelService,c.uri))return Promise.resolve({links:[]});const g=await(await this._workerWithResources([c.uri])).$computeLinks(c.uri.toString());return g&&{links:g}}})),this._register(l.completionProvider.register("*",new WordBasedCompletionItemProvider(this._workerManager,r,this._modelService,this._languageConfigurationService,this._logService)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return canSyncModel(this._modelService,e)}async computedUnicodeHighlights(e,t,r){return(await this._workerWithResources([e])).$computeUnicodeHighlights(e.toString(),t,r)}async computeDiff(e,t,r,s){const l=await(await this._workerWithResources([e,t],!0)).$computeDiff(e.toString(),t.toString(),r,s);if(!l)return null;return{identical:l.identical,quitEarly:l.quitEarly,changes:d(l.changes),moves:l.moves.map(u=>new MovedText(new LineRangeMapping(new LineRange(u[0],u[1]),new LineRange(u[2],u[3])),d(u[4])))};function d(u){return u.map(g=>{var f;return new DetailedLineRangeMapping(new LineRange(g[0],g[1]),new LineRange(g[2],g[3]),(f=g[4])==null?void 0:f.map(m=>new RangeMapping(new Range$2(m[0],m[1],m[2],m[3]),new Range$2(m[4],m[5],m[6],m[7]))))})}}async computeMoreMinimalEdits(e,t,r=!1){if(isNonEmptyArray(t)){if(!canSyncModel(this._modelService,e))return Promise.resolve(t);const s=StopWatch.create(),a=this._workerWithResources([e]).then(l=>l.$computeMoreMinimalEdits(e.toString(),t,r));return a.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),s.elapsed())),Promise.race([a,timeout(1e3).then(()=>t)])}else return Promise.resolve(void 0)}canNavigateValueSet(e){return canSyncModel(this._modelService,e)}async navigateValueSet(e,t,r){const s=this._modelService.getModel(e);if(!s)return null;const a=this._languageConfigurationService.getLanguageConfiguration(s.getLanguageId()).getWordDefinition(),l=a.source,c=a.flags;return(await this._workerWithResources([e])).$navigateValueSet(e.toString(),t,r,l,c)}canComputeWordRanges(e){return canSyncModel(this._modelService,e)}async computeWordRanges(e,t){const r=this._modelService.getModel(e);if(!r)return Promise.resolve(null);const s=this._languageConfigurationService.getLanguageConfiguration(r.getLanguageId()).getWordDefinition(),a=s.source,l=s.flags;return(await this._workerWithResources([e])).$computeWordRanges(e.toString(),t,a,l)}async findSectionHeaders(e,t){return(await this._workerWithResources([e])).$findSectionHeaders(e.toString(),t)}async computeDefaultDocumentColors(e){return(await this._workerWithResources([e])).$computeDefaultDocumentColors(e.toString())}async _workerWithResources(e,t=!1){return await(await this._workerManager.withWorker()).workerWithSyncedResources(e,t)}};EditorWorkerService=__decorate$z([__param$u(1,IModelService),__param$u(2,ITextResourceConfigurationService),__param$u(3,ILogService),__param$u(4,ILanguageConfigurationService),__param$u(5,ILanguageFeaturesService)],EditorWorkerService);class WordBasedCompletionItemProvider{constructor(e,t,r,s,a){this.languageConfigurationService=s,this.logService=a,this._debugDisplayName="wordbasedCompletions",this._workerManager=e,this._configurationService=t,this._modelService=r}async provideCompletionItems(e,t){const r=this._configurationService.getValue(e.uri,t,"editor");if(r.wordBasedSuggestions==="off")return;const s=[];if(r.wordBasedSuggestions==="currentDocument")canSyncModel(this._modelService,e.uri)&&s.push(e.uri);else for(const f of this._modelService.getModels())canSyncModel(this._modelService,f.uri)&&(f===e?s.unshift(f.uri):(r.wordBasedSuggestions==="allDocuments"||f.getLanguageId()===e.getLanguageId())&&s.push(f.uri));if(s.length===0)return;const a=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),l=e.getWordAtPosition(t),c=l?new Range$2(t.lineNumber,l.startColumn,t.lineNumber,l.endColumn):Range$2.fromPositions(t),d=c.setEndPosition(t.lineNumber,t.column);this.logService.trace("[WordBasedCompletionItemProvider]",'word: "'.concat((l==null?void 0:l.word)||"",'", wordDef: "').concat(a,'", replace: [').concat(c.toString(),"], insert: [").concat(d.toString(),"]"));const g=await(await this._workerManager.withWorker()).textualSuggest(s,l==null?void 0:l.word,a);if(g)return{duration:g.duration,suggestions:g.words.map(f=>({kind:18,label:f,insertText:f,range:{insert:d,replace:c}}))}}}let WorkerManager=class extends Disposable$1{constructor(e,t){super(),this._workerDescriptor=e,this._modelService=t,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new WindowIntervalTimer).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(STOP_WORKER_DELTA_TIME_MS/2),mainWindow),this._register(this._modelService.onModelRemoved(s=>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._workerDescriptor,!1,this._modelService)),Promise.resolve(this._editorWorkerClient)}};WorkerManager=__decorate$z([__param$u(1,IModelService)],WorkerManager);class SynchronousWorkerClient{constructor(e){this._instance=e,this.proxy=this._instance}dispose(){this._instance.dispose()}setChannel(e,t){throw new Error("Not supported")}}let EditorWorkerClient=class extends Disposable$1{constructor(e,t,r){super(),this._workerDescriptorOrWorker=e,this._disposed=!1,this._modelService=r,this._keepIdleModels=t,this._worker=null,this._modelManager=null}fhr(e,t){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(createWebWorker$3(this._workerDescriptorOrWorker)),EditorWorkerHost.setChannel(this._worker,this._createEditorWorkerHost())}catch(e){logOnceWebWorkerWarning(e),this._worker=this._createFallbackLocalWorker()}return this._worker}async _getProxy(){try{const e=this._getOrCreateWorker().proxy;return await e.$ping(),e}catch(e){return logOnceWebWorkerWarning(e),this._worker=this._createFallbackLocalWorker(),this._worker.proxy}}_createFallbackLocalWorker(){return new SynchronousWorkerClient(new EditorWorker(null))}_createEditorWorkerHost(){return{$fhr:(e,t)=>this.fhr(e,t)}}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new WorkerTextModelSyncClient(e,this._modelService,this._keepIdleModels))),this._modelManager}async workerWithSyncedResources(e,t=!1){if(this._disposed)return Promise.reject(canceled());const r=await this._getProxy();return this._getOrCreateModelManager(r).ensureSyncedResources(e,t),r}async textualSuggest(e,t,r){const s=await this.workerWithSyncedResources(e),a=r.source,l=r.flags;return s.$textualSuggest(e.map(c=>c.toString()),t,a,l)}dispose(){super.dispose(),this._disposed=!0}};EditorWorkerClient=__decorate$z([__param$u(2,IModelService)],EditorWorkerClient);function createWebWorker$2(o,e){return new MonacoWebWorkerImpl(o,e)}class MonacoWebWorkerImpl extends EditorWorkerClient{constructor(e,t){super(t.worker,t.keepIdleModels||!1,e),this._foreignModuleHost=t.host||null,this._foreignProxy=this._getProxy().then(r=>new Proxy({},{get(s,a,l){if(a!=="then"){if(typeof a!="string")throw new Error("Not supported");return(...c)=>r.$fmr(a,c)}}}))}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(r){return Promise.reject(r)}}getProxy(){return this._foreignProxy}withSyncedResources(e){return this.workerWithSyncedResources(e).then(t=>this.getProxy())}}function isFuzzyActionArr(o){return Array.isArray(o)}function isFuzzyAction(o){return!isFuzzyActionArr(o)}function isString$1(o){return typeof o=="string"}function isIAction(o){return!isString$1(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("".concat(o.languageId,": ").concat(e))}function createError(o,e){return new Error("".concat(o.languageId,": ").concat(e))}function substituteMatches(o,e,t,r,s){const a=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let l=null;return e.replace(a,function(c,d,u,g,f,m,_,v,b){return empty(u)?empty(g)?!empty(f)&&f<r.length?fixCase(o,r[f]):!empty(_)&&o&&typeof o[_]=="string"?o[_]:(l===null&&(l=s.split("."),l.unshift(s)),!empty(m)&&m<l.length?fixCase(o,l[m]):""):fixCase(o,t):"$"})}function substituteMatchesRe(o,e,t){const r=/\$[sS](\d\d?)/g;let s=null;return e.replace(r,function(a,l){return s===null&&(s=t.split("."),s.unshift(t)),!empty(l)&&l<s.length?escapeRegExpCharacters(fixCase(o,s[l])):""})}function findRules(o,e){let t=e;for(;t&&t.length>0;){const r=o.tokenizer[t];if(r)return r;const s=t.lastIndexOf(".");s<0?t=null:t=t.substr(0,s)}return null}function stateExists(o,e){let t=e;for(;t&&t.length>0;){if(o.stateNames[t])return!0;const s=t.lastIndexOf(".");s<0?t=null:t=t.substr(0,s)}return!1}var __decorate$y=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$t=function(o,e){return function(t,r){e(t,r,o)}},MonarchTokenizer_1;const CACHE_STACK_DEPTH=5,Ms=class Ms{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 r=MonarchStackElement.getStackElementId(e);r.length>0&&(r+="|"),r+=t;let s=this._entries[r];return s||(s=new MonarchStackElement(e,t),this._entries[r]=s,s)}};Ms._INSTANCE=new Ms(CACHE_STACK_DEPTH);let MonarchStackElementFactory=Ms;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)}}const Os=class Os{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 r=MonarchStackElement.getStackElementId(e);let s=this._entries[r];return s||(s=new MonarchLineState(e,null),this._entries[r]=s,s)}};Os._INSTANCE=new Os(CACHE_STACK_DEPTH);let MonarchLineStateFactory=Os;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,r,s){const a=r.languageId,l=r.state,c=TokenizationRegistry.get(a);if(!c)return this.enterLanguage(a),this.emit(s,""),l;const d=c.tokenize(e,t,l);if(s!==0)for(const u of d.tokens)this._tokens.push(new Token$2(u.offset+s,u.type,u.language));else this._tokens=this._tokens.concat(d.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,d.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 r=this._theme.match(this._currentLanguageId,t)|1024;this._lastTokenMetadata!==r&&(this._lastTokenMetadata=r,this._tokens.push(e),this._tokens.push(r))}static _merge(e,t,r){const s=e!==null?e.length:0,a=t.length,l=r!==null?r.length:0;if(s===0&&a===0&&l===0)return new Uint32Array(0);if(s===0&&a===0)return r;if(a===0&&l===0)return e;const c=new Uint32Array(s+a+l);e!==null&&c.set(e);for(let d=0;d<a;d++)c[s+d]=t[d];return r!==null&&c.set(r,s+a),c}nestedLanguageTokenize(e,t,r,s){const a=r.languageId,l=r.state,c=TokenizationRegistry.get(a);if(!c)return this.enterLanguage(a),this.emit(s,""),l;const d=c.tokenizeEncoded(e,t,l);if(s!==0)for(let u=0,g=d.tokens.length;u<g;u+=2)d.tokens[u]+=s;return this._prependTokens=MonarchModernTokensCollector._merge(this._prependTokens,this._tokens,d.tokens),this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0,d.endState}finalize(e){return new EncodedTokenizationResult(MonarchModernTokensCollector._merge(this._prependTokens,this._tokens,null),e)}}let MonarchTokenizer=MonarchTokenizer_1=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._configurationService=a,this._languageService=e,this._standaloneThemeService=t,this._languageId=r,this._lexer=s,this._embeddedLanguages=Object.create(null),this.embeddedLoaded=Promise.resolve(void 0);let l=!1;this._register(TokenizationRegistry.onDidChange(c=>{if(l)return;let d=!1;for(let u=0,g=c.changedLanguages.length;u<g;u++){const f=c.changedLanguages[u];if(this._embeddedLanguages[f]){d=!0;break}}d&&(l=!0,TokenizationRegistry.handleChange([this._languageId]),l=!1)})),this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}),this._register(this._configurationService.onDidChangeConfiguration(c=>{c.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const e=[];for(const t in this._embeddedLanguages){const r=TokenizationRegistry.get(t);if(r){if(r instanceof MonarchTokenizer_1){const s=r.getLoadStatus();s.loaded===!1&&e.push(s.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,r){if(e.length>=this._maxTokenizationLineLength)return nullTokenize(this._languageId,r);const s=new MonarchClassicTokensCollector,a=this._tokenize(e,t,r,s);return s.finalize(a)}tokenizeEncoded(e,t,r){if(e.length>=this._maxTokenizationLineLength)return nullTokenizeEncoded(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),r);const s=new MonarchModernTokensCollector(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),a=this._tokenize(e,t,r,s);return s.finalize(a)}_tokenize(e,t,r,s){return r.embeddedLanguageData?this._nestedTokenize(e,t,r,0,s):this._myTokenize(e,t,r,0,s)}_findLeavingNestedLanguageOffset(e,t){let r=this._lexer.tokenizer[t.stack.state];if(!r&&(r=findRules(this._lexer,t.stack.state),!r))throw createError(this._lexer,"tokenizer state is not defined: "+t.stack.state);let s=-1,a=!1;for(const l of r){if(!isIAction(l.action)||!(l.action.nextEmbedded==="@pop"||l.action.hasEmbeddedEndInCases))continue;a=!0;let c=l.resolveRegex(t.stack.state);const d=c.source;if(d.substr(0,4)==="^(?:"&&d.substr(d.length-1,1)===")"){const g=(c.ignoreCase?"i":"")+(c.unicode?"u":"");c=new RegExp(d.substr(4,d.length-5),g)}const u=e.search(c);u===-1||u!==0&&l.matchOnlyAtLineStart||(s===-1||u<s)&&(s=u)}if(!a)throw createError(this._lexer,'no rule containing nextEmbedded: "@pop" in tokenizer embedded state: '+t.stack.state);return s}_nestedTokenize(e,t,r,s,a){const l=this._findLeavingNestedLanguageOffset(e,r);if(l===-1){const u=a.nestedLanguageTokenize(e,t,r.embeddedLanguageData,s);return MonarchLineStateFactory.create(r.stack,new EmbeddedLanguageData(r.embeddedLanguageData.languageId,u))}const c=e.substring(0,l);c.length>0&&a.nestedLanguageTokenize(c,!1,r.embeddedLanguageData,s);const d=e.substring(l);return this._myTokenize(d,t,r,s+l,a)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,r,s,a){a.enterLanguage(this._languageId);const l=e.length,c=t&&this._lexer.includeLF?e+"\n":e,d=c.length;let u=r.embeddedLanguageData,g=r.stack,f=0,m=null,_=!0;for(;_||f<d;){const v=f,b=g.depth,C=m?m.groups.length:0,y=g.state;let S=null,w=null,E=null,x=null,L=null;if(m){S=m.matches;const I=m.groups.shift();w=I.matched,E=I.action,x=m.rule,m.groups.length===0&&(m=null)}else{if(!_&&f>=d)break;_=!1;let I=this._lexer.tokenizer[y];if(!I&&(I=findRules(this._lexer,y),!I))throw createError(this._lexer,"tokenizer state is not defined: "+y);const T=c.substr(f);for(const M of I)if((f===0||!M.matchOnlyAtLineStart)&&(S=T.match(M.resolveRegex(y)),S)){w=S[0],E=M.action;break}}if(S||(S=[""],w=""),E||(f<d&&(S=[c.charAt(f)],w=S[0]),E=this._lexer.defaultToken),w===null)break;for(f+=w.length;isFuzzyAction(E)&&isIAction(E)&&E.test;)E=E.test(w,S,y,f===d);let k=null;if(typeof E=="string"||Array.isArray(E))k=E;else if(E.group)k=E.group;else if(E.token!==null&&E.token!==void 0){if(E.tokenSubst?k=substituteMatches(this._lexer,E.token,w,S,y):k=E.token,E.nextEmbedded)if(E.nextEmbedded==="@pop"){if(!u)throw createError(this._lexer,"cannot pop embedded language if not inside one");u=null}else{if(u)throw createError(this._lexer,"cannot enter embedded language from within an embedded language");L=substituteMatches(this._lexer,E.nextEmbedded,w,S,y)}if(E.goBack&&(f=Math.max(0,f-E.goBack)),E.switchTo&&typeof E.switchTo=="string"){let I=substituteMatches(this._lexer,E.switchTo,w,S,y);if(I[0]==="@"&&(I=I.substr(1)),findRules(this._lexer,I))g=g.switchTo(I);else throw createError(this._lexer,"trying to switch to a state '"+I+"' that is undefined in rule: "+this._safeRuleName(x))}else{if(E.transform&&typeof E.transform=="function")throw createError(this._lexer,"action.transform not supported");if(E.next)if(E.next==="@push"){if(g.depth>=this._lexer.maxStack)throw createError(this._lexer,"maximum tokenizer stack size reached: ["+g.state+","+g.parent.state+",...]");g=g.push(y)}else if(E.next==="@pop"){if(g.depth<=1)throw createError(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(x));g=g.pop()}else if(E.next==="@popall")g=g.popall();else{let I=substituteMatches(this._lexer,E.next,w,S,y);if(I[0]==="@"&&(I=I.substr(1)),findRules(this._lexer,I))g=g.push(I);else throw createError(this._lexer,"trying to set a next state '"+I+"' that is undefined in rule: "+this._safeRuleName(x))}}E.log&&typeof E.log=="string"&&log(this._lexer,this._lexer.languageId+": "+substituteMatches(this._lexer,E.log,w,S,y))}if(k===null)throw createError(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(x));const D=I=>{const T=this._languageService.getLanguageIdByLanguageName(I)||this._languageService.getLanguageIdByMimeType(I)||I,M=this._getNestedEmbeddedLanguageData(T);if(f<d){const R=e.substr(f);return this._nestedTokenize(R,t,MonarchLineStateFactory.create(g,M),s+f,a)}else return MonarchLineStateFactory.create(g,M)};if(Array.isArray(k)){if(m&&m.groups.length>0)throw createError(this._lexer,"groups cannot be nested: "+this._safeRuleName(x));if(S.length!==k.length+1)throw createError(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(x));let I=0;for(let T=1;T<S.length;T++)I+=S[T].length;if(I!==w.length)throw createError(this._lexer,"with groups, all characters should be matched in consecutive groups in rule: "+this._safeRuleName(x));m={rule:x,matches:S,groups:[]};for(let T=0;T<k.length;T++)m.groups[T]={action:k[T],matched:S[T+1]};f-=w.length;continue}else{if(k==="@rematch"&&(f-=w.length,w="",S=null,k="",L!==null))return D(L);if(w.length===0){if(d===0||b!==g.depth||y!==g.state||(m?m.groups.length:0)!==C)continue;throw createError(this._lexer,"no progress in tokenizer in rule: "+this._safeRuleName(x))}let I=null;if(isString$1(k)&&k.indexOf("@brackets")===0){const T=k.substr(9),M=findBracket(this._lexer,w);if(!M)throw createError(this._lexer,"@brackets token returned but no bracket defined as: "+w);I=sanitize(M.token+T)}else{const T=k===""?"":k+this._lexer.tokenPostfix;I=sanitize(T)}v<l&&a.emit(v+s,I)}if(L!==null)return D(L)}return MonarchLineStateFactory.create(g,u)}_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$y([__param$t(4,IConfigurationService)],MonarchTokenizer);function findBracket(o,e){if(!e)return null;e=fixCase(o,e);const t=o.brackets;for(const r of t){if(r.open===e)return{token:r.token,bracketType:1};if(r.close===e)return{token:r.token,bracketType:-1}}return null}const ttPolicy$1=createTrustedTypesPolicy$1("standaloneColorizer",{createHTML:o=>o});class Colorizer{static colorizeElement(e,t,r,s){s=s||{};const a=s.theme||"vs",l=s.mimeType||r.getAttribute("lang")||r.getAttribute("data-lang");if(!l)return console.error("Mode not detected"),Promise.resolve();const c=t.getLanguageIdByMimeType(l)||l;e.setTheme(a);const d=r.firstChild?r.firstChild.nodeValue:"";r.className+=" "+a;const u=g=>{var m;const f=(m=ttPolicy$1==null?void 0:ttPolicy$1.createHTML(g))!=null?m:g;r.innerHTML=f};return this.colorize(t,d||"",c,s).then(u,g=>console.error(g))}static async colorize(e,t,r,s){const a=e.languageIdCodec;let l=4;s&&typeof s.tabSize=="number"&&(l=s.tabSize),startsWithUTF8BOM(t)&&(t=t.substr(1));const c=splitLines(t);if(!e.isRegisteredLanguageId(r))return _fakeColorize(c,l,a);const d=await TokenizationRegistry.getOrCreate(r);return d?_colorize(c,l,d,a):_fakeColorize(c,l,a)}static colorizeLine(e,t,r,s,a=4){const l=ViewLineRenderingData.isBasicASCII(e,t),c=ViewLineRenderingData.containsRTL(e,l,r);return renderViewLine2(new RenderLineInput(!1,!0,e,!1,l,c,0,s,[],a,0,0,0,0,-1,"none",!1,!1,null,null,0)).html}static colorizeModelLine(e,t,r=4){const s=e.getLineContent(t);e.tokenization.forceTokenization(t);const l=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(s,e.mightContainNonBasicASCII(),e.mightContainRTL(),l,r)}}function _colorize(o,e,t,r){return new Promise((s,a)=>{const l=()=>{const c=_actualColorize(o,e,t,r);if(t instanceof MonarchTokenizer){const d=t.getLoadStatus();if(d.loaded===!1){d.promise.then(l,a);return}}s(c)};l()})}function _fakeColorize(o,e,t){let r=[];const a=new Uint32Array(2);a[0]=0,a[1]=33587200;for(let l=0,c=o.length;l<c;l++){const d=o[l];a[0]=d.length;const u=new LineTokens(a,d,t),g=ViewLineRenderingData.isBasicASCII(d,!0),f=ViewLineRenderingData.containsRTL(d,g,!0),m=renderViewLine2(new RenderLineInput(!1,!0,d,!1,g,f,0,u,[],e,0,0,0,0,-1,"none",!1,!1,null,null,0));r=r.concat(m.html),r.push("<br/>")}return r.join("")}function _actualColorize(o,e,t,r){let s=[],a=t.getInitialState();for(let l=0,c=o.length;l<c;l++){const d=o[l],u=t.tokenizeEncoded(d,!0,a);LineTokens.convertToEndOffset(u.tokens,d.length);const g=new LineTokens(u.tokens,d,r),f=ViewLineRenderingData.isBasicASCII(d,!0),m=ViewLineRenderingData.containsRTL(d,f,!0),_=renderViewLine2(new RenderLineInput(!1,!0,d,!1,f,m,0,g.inflate(),[],e,0,0,0,0,-1,"none",!1,!1,null,null,0));s=s.concat(_.html),s.push("<br/>"),a=u.endState}return s.join("")}var __decorate$x=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$s=function(o,e){return function(t,r){e(t,r,o)}};let AbstractCodeEditorService=class extends Disposable$1{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)}removeDiffEditor(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map(e=>this._diffEditors[e])}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const r of t){if(r.hasTextFocus())return r;r.hasWidgetFocus()&&(e=r)}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(r=>r.removeDecorationsByType(e))))}setModelProperty(e,t,r){const s=e.toString();let a;this._modelProperties.has(s)?a=this._modelProperties.get(s):(a=new Map,this._modelProperties.set(s,a)),a.set(t,r)}getModelProperty(e,t){const r=e.toString();if(this._modelProperties.has(r))return this._modelProperties.get(r).get(t)}async openCodeEditor(e,t,r){for(const s of this._codeEditorOpenHandlers){const a=await s(e,t,r);if(a!==null)return a}return null}registerCodeEditorOpenHandler(e){const t=this._codeEditorOpenHandlers.unshift(e);return toDisposable(t)}};AbstractCodeEditorService=__decorate$x([__param$s(0,IThemeService)],AbstractCodeEditorService);var __decorate$w=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$r=function(o,e){return function(t,r){e(t,r,o)}};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(async(r,s,a)=>s?this.doOpenEditor(s,r):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 a=t.resource.scheme;if(a===Schemas.http||a===Schemas.https)return windowOpenNoOpener(t.resource.toString()),e}return null}const s=t.options?t.options.selection:null;if(s)if(typeof s.endLineNumber=="number"&&typeof s.endColumn=="number")e.setSelection(s),e.revealRangeInCenter(s,1);else{const a={lineNumber:s.startLineNumber,column:s.startColumn};e.setPosition(a),e.revealPositionInCenter(a,1)}return e}findModel(e,t){const r=e.getModel();return r&&r.uri.toString()!==t.toString()?null:r}};StandaloneCodeEditorService=__decorate$w([__param$r(0,IContextKeyService),__param$r(1,IThemeService)],StandaloneCodeEditorService);registerSingleton(ICodeEditorService,StandaloneCodeEditorService,0);var __decorate$v=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$q=function(o,e){return function(t,r){e(t,r,o)}};let StandaloneLayoutService=class{get mainContainer(){var e,t;return(t=(e=this._codeEditorService.listCodeEditors().at(0))==null?void 0:e.getContainerDomNode())!=null?t:mainWindow.document.body}get activeContainer(){var t,r;const e=(t=this._codeEditorService.getFocusedCodeEditor())!=null?t:this._codeEditorService.getActiveCodeEditor();return(r=e==null?void 0:e.getContainerDomNode())!=null?r:this.mainContainer}get mainContainerDimension(){return getClientArea(this.mainContainer)}get activeContainerDimension(){return getClientArea(this.activeContainer)}get containers(){return coalesce(this._codeEditorService.listCodeEditors().map(e=>e.getContainerDomNode()))}getContainer(){return this.activeContainer}whenContainerStylesLoaded(){}focus(){var e;(e=this._codeEditorService.getFocusedCodeEditor())==null||e.focus()}constructor(e){this._codeEditorService=e,this.onDidLayoutMainContainer=Event$1.None,this.onDidLayoutActiveContainer=Event$1.None,this.onDidLayoutContainer=Event$1.None,this.onDidChangeActiveContainer=Event$1.None,this.onDidAddContainer=Event$1.None,this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};StandaloneLayoutService=__decorate$v([__param$q(0,ICodeEditorService)],StandaloneLayoutService);let EditorScopedLayoutService=class extends StandaloneLayoutService{get mainContainer(){return this._container}constructor(e,t){super(t),this._container=e}};EditorScopedLayoutService=__decorate$v([__param$q(1,ICodeEditorService)],EditorScopedLayoutService);registerSingleton(ILayoutService,StandaloneLayoutService,1);var __decorate$u=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$p=function(o,e){return function(t,r){e(t,r,o)}};function getResourceLabel(o){return o.scheme===Schemas.file?o.fsPath:o.path}let stackElementCounter=0;class ResourceStackElement{constructor(e,t,r,s,a,l,c){this.id=++stackElementCounter,this.type=0,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabel=t,this.strResource=r,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=s,this.groupOrder=a,this.sourceId=l,this.sourceOrder=c,this.isValid=!0}setValid(e){this.isValid=e}toString(){return"[id:".concat(this.id,"] [group:").concat(this.groupId,"] [").concat(this.isValid?" VALID":"INVALID","] ").concat(this.actual.constructor.name," - ").concat(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[,s]of this.elements)(s.reason===0?e:t).push(s.resourceLabel);const r=[];return e.length>0&&r.push(localize(2030,"The following files have been closed and modified on disk: {0}.",e.join(", "))),t.length>0&&r.push(localize(2031,"The following files have been modified in an incompatible way: {0}.",t.join(", "))),r.join("\n")}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class WorkspaceStackElement{constructor(e,t,r,s,a,l,c){this.id=++stackElementCounter,this.type=1,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabels=t,this.strResources=r,this.groupId=s,this.groupOrder=a,this.sourceId=l,this.sourceOrder=c,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(e,t,r){this.removedResources||(this.removedResources=new RemovedResources),this.removedResources.has(t)||this.removedResources.set(t,new ResourceReasonPair(e,r))}setValid(e,t,r){r?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:".concat(this.id,"] [group:").concat(this.groupId,"] [").concat(this.invalidatedResources?"INVALID":" VALID","] ").concat(this.actual.constructor.name," - ").concat(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("* ".concat(this.strResource,":"));for(let t=0;t<this._past.length;t++)e.push(" * [UNDO] ".concat(this._past[t]));for(let t=this._future.length-1;t>=0;t--)e.push(" * [REDO] ".concat(this._future[t]));return e.join("\n")}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 r of this._past)t(r.actual)&&this._setElementValidFlag(r,e);for(const r of this._future)t(r.actual)&&this._setElementValidFlag(r,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 r=0,s=this._past.length;r<s;r++)t.push(this._past[r].id);for(let r=this._future.length-1;r>=0;r--)t.push(this._future[r].id);return new ResourceEditStackSnapshot(e,t)}restoreSnapshot(e){const t=e.elements.length;let r=!0,s=0,a=-1;for(let c=0,d=this._past.length;c<d;c++,s++){const u=this._past[c];r&&(s>=t||u.id!==e.elements[s])&&(r=!1,a=0),!r&&u.type===1&&u.removeResource(this.resourceLabel,this.strResource,0)}let l=-1;for(let c=this._future.length-1;c>=0;c--,s++){const d=this._future[c];r&&(s>=t||d.id!==e.elements[s])&&(r=!1,l=c),!r&&d.type===1&&d.removeResource(this.resourceLabel,this.strResource,0)}a!==-1&&(this._past=this._past.slice(0,a)),l!==-1&&(this._future=this._future.slice(l+1)),this.versionId++}getElements(){const e=[],t=[];for(const r of this._past)e.push(r.actual);for(const r of this._future)t.push(r.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 r=this._past.length-1;r>=0;r--)if(this._past[r]===e){t.has(this.strResource)?this._past[r]=t.get(this.strResource):this._past.splice(r,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let r=this._future.length-1;r>=0;r--)if(this._future[r]===e){t.has(this.strResource)?this._future[r]=t.get(this.strResource):this._future.splice(r,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,r=this.editStacks.length;t<r;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 ".concat(e,": "));const t=[];for(const r of this._editStacks)t.push(r[1].toString());console.log(t.join("\n"))}pushElement(e,t=UndoRedoGroup.None,r=UndoRedoSource.None){if(e.type===0){const s=getResourceLabel(e.resource),a=this.getUriComparisonKey(e.resource);this._pushElement(new ResourceStackElement(e,s,a,t.id,t.nextOrder(),r.id,r.nextOrder()))}else{const s=new Set,a=[],l=[];for(const c of e.resources){const d=getResourceLabel(c),u=this.getUriComparisonKey(c);s.has(u)||(s.add(u),a.push(d),l.push(u))}a.length===1?this._pushElement(new ResourceStackElement(e,a[0],l[0],t.id,t.nextOrder(),r.id,r.nextOrder())):this._pushElement(new WorkspaceStackElement(e,a,l,t.id,t.nextOrder(),r.id,r.nextOrder()))}}_pushElement(e){for(let t=0,r=e.strResources.length;t<r;t++){const s=e.resourceLabels[t],a=e.strResources[t];let l;this._editStacks.has(a)?l=this._editStacks.get(a):(l=new ResourceEditStack(s,a),this._editStacks.set(a,l)),l.pushElement(e)}}getLastElement(e){const t=this.getUriComparisonKey(e);if(this._editStacks.has(t)){const r=this._editStacks.get(t);if(r.hasFutureElements())return null;const s=r.getClosestPastElement();return s?s.actual:null}return null}_splitPastWorkspaceElement(e,t){const r=e.actual.split(),s=new Map;for(const a of r){const l=getResourceLabel(a.resource),c=this.getUriComparisonKey(a.resource),d=new ResourceStackElement(a,l,c,0,0,0,0);s.set(d.strResource,d)}for(const a of e.strResources){if(t&&t.has(a))continue;this._editStacks.get(a).splitPastWorkspaceElement(e,s)}}_splitFutureWorkspaceElement(e,t){const r=e.actual.split(),s=new Map;for(const a of r){const l=getResourceLabel(a.resource),c=this.getUriComparisonKey(a.resource),d=new ResourceStackElement(a,l,c,0,0,0,0);s.set(d.strResource,d)}for(const a of e.strResources){if(t&&t.has(a))continue;this._editStacks.get(a).splitFutureWorkspaceElement(e,s)}}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,r){const s=this.getUriComparisonKey(e);this._editStacks.has(s)&&this._editStacks.get(s).setElementsValidFlag(t,r)}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 r=this._editStacks.get(t);r.restoreSnapshot(e),!r.hasPastElements()&&!r.hasFutureElements()&&(r.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,r=null;for(const[s,a]of this._editStacks){const l=a.getClosestPastElement();l&&l.sourceId===e&&(!t||l.sourceOrder>t.sourceOrder)&&(t=l,r=s)}return[t,r]}canUndo(e){if(e instanceof UndoRedoSource){const[,r]=this._findClosestUndoElementWithSource(e.id);return!!r}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasPastElements():!1}_onError(e,t){onUnexpectedError(e);for(const r of t.strResources)this.removeElements(r);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,r,s,a){const l=this._acquireLocks(r);let c;try{c=t()}catch(d){return l(),s.dispose(),this._onError(d,e)}return c?c.then(()=>(l(),s.dispose(),a()),d=>(l(),s.dispose(),this._onError(d,e))):(l(),s.dispose(),a())}async _invokeWorkspacePrepare(e){if(typeof e.actual.prepareUndoRedo>"u")return Disposable$1.None;const t=e.actual.prepareUndoRedo();return typeof t>"u"?Disposable$1.None:t}_invokeResourcePrepare(e,t){if(e.actual.type!==1||typeof e.actual.prepareUndoRedo>"u")return t(Disposable$1.None);const r=e.actual.prepareUndoRedo();return r?isDisposable(r)?t(r):r.then(s=>t(s)):t(Disposable$1.None)}_getAffectedEditStacks(e){const t=[];for(const r of e.strResources)t.push(this._editStacks.get(r)||missingEditStack);return new EditStackSnapshot(t)}_tryToSplitAndUndo(e,t,r,s){if(t.canSplit())return this._splitPastWorkspaceElement(t,r),this._notificationService.warn(s),new WorkspaceVerificationError(this._undo(e,0,!0));for(const a of t.strResources)this.removeElements(a);return this._notificationService.warn(s),new WorkspaceVerificationError}_checkWorkspaceUndo(e,t,r,s){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,localize(2032,"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(s&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,localize(2033,"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const a=[];for(const c of r.editStacks)c.getClosestPastElement()!==t&&a.push(c.resourceLabel);if(a.length>0)return this._tryToSplitAndUndo(e,t,null,localize(2034,"Could not undo '{0}' across all files because changes were made to {1}",t.label,a.join(", ")));const l=[];for(const c of r.editStacks)c.locked&&l.push(c.resourceLabel);return l.length>0?this._tryToSplitAndUndo(e,t,null,localize(2035,"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,l.join(", "))):r.isValid()?null:this._tryToSplitAndUndo(e,t,null,localize(2036,"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceUndo(e,t,r){const s=this._getAffectedEditStacks(t),a=this._checkWorkspaceUndo(e,t,s,!1);return a?a.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,s,r)}_isPartOfUndoGroup(e){if(!e.groupId)return!1;for(const[,t]of this._editStacks){const r=t.getClosestPastElement();if(r){if(r===e){const s=t.getSecondClosestPastElement();if(s&&s.groupId===e.groupId)return!0}if(r.groupId===e.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(e,t,r,s){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){let c;(function(g){g[g.All=0]="All",g[g.This=1]="This",g[g.Cancel=2]="Cancel"})(c||(c={}));const{result:d}=await this._dialogService.prompt({type:Severity$1$1.Info,message:localize(2037,"Would you like to undo '{0}' across all files?",t.label),buttons:[{label:localize(2038,"&&Undo in {0} Files",r.editStacks.length),run:()=>c.All},{label:localize(2039,"Undo this &&File"),run:()=>c.This}],cancelButton:{run:()=>c.Cancel}});if(d===c.Cancel)return;if(d===c.This)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const u=this._checkWorkspaceUndo(e,t,r,!1);if(u)return u.returnValue;s=!0}let a;try{a=await this._invokeWorkspacePrepare(t)}catch(c){return this._onError(c,t)}const l=this._checkWorkspaceUndo(e,t,r,!0);if(l)return a.dispose(),l.returnValue;for(const c of r.editStacks)c.moveBackward(t);return this._safeInvokeWithLocks(t,()=>t.actual.undo(),r,a,()=>this._continueUndoInGroup(t.groupId,s))}_resourceUndo(e,t,r){if(!t.isValid){e.flushAllElements();return}if(e.locked){const s=localize(2040,"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(s);return}return this._invokeResourcePrepare(t,s=>(e.moveBackward(t),this._safeInvokeWithLocks(t,()=>t.actual.undo(),new EditStackSnapshot([e]),s,()=>this._continueUndoInGroup(t.groupId,r))))}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,r=null;for(const[s,a]of this._editStacks){const l=a.getClosestPastElement();l&&l.groupId===e&&(!t||l.groupOrder>t.groupOrder)&&(t=l,r=s)}return[t,r]}_continueUndoInGroup(e,t){if(!e)return;const[,r]=this._findClosestUndoElementInGroup(e);if(r)return this._undo(r,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,r){if(!this._editStacks.has(e))return;const s=this._editStacks.get(e),a=s.getClosestPastElement();if(!a)return;if(a.groupId){const[c,d]=this._findClosestUndoElementInGroup(a.groupId);if(a!==c&&d)return this._undo(d,t,r)}if((a.sourceId!==t||a.confirmBeforeUndo)&&!r)return this._confirmAndContinueUndo(e,t,a);try{return a.type===1?this._workspaceUndo(e,a,r):this._resourceUndo(s,a,r)}finally{}}async _confirmAndContinueUndo(e,t,r){if((await this._dialogService.confirm({message:localize(2041,"Would you like to undo '{0}'?",r.label),primaryButton:localize(2042,"&&Yes"),cancelButton:localize(2043,"No")})).confirmed)return this._undo(e,t,!0)}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,r=null;for(const[s,a]of this._editStacks){const l=a.getClosestFutureElement();l&&l.sourceId===e&&(!t||l.sourceOrder<t.sourceOrder)&&(t=l,r=s)}return[t,r]}canRedo(e){if(e instanceof UndoRedoSource){const[,r]=this._findClosestRedoElementWithSource(e.id);return!!r}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasFutureElements():!1}_tryToSplitAndRedo(e,t,r,s){if(t.canSplit())return this._splitFutureWorkspaceElement(t,r),this._notificationService.warn(s),new WorkspaceVerificationError(this._redo(e));for(const a of t.strResources)this.removeElements(a);return this._notificationService.warn(s),new WorkspaceVerificationError}_checkWorkspaceRedo(e,t,r,s){if(t.removedResources)return this._tryToSplitAndRedo(e,t,t.removedResources,localize(2044,"Could not redo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(s&&t.invalidatedResources)return this._tryToSplitAndRedo(e,t,t.invalidatedResources,localize(2045,"Could not redo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const a=[];for(const c of r.editStacks)c.getClosestFutureElement()!==t&&a.push(c.resourceLabel);if(a.length>0)return this._tryToSplitAndRedo(e,t,null,localize(2046,"Could not redo '{0}' across all files because changes were made to {1}",t.label,a.join(", ")));const l=[];for(const c of r.editStacks)c.locked&&l.push(c.resourceLabel);return l.length>0?this._tryToSplitAndRedo(e,t,null,localize(2047,"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,l.join(", "))):r.isValid()?null:this._tryToSplitAndRedo(e,t,null,localize(2048,"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceRedo(e,t){const r=this._getAffectedEditStacks(t),s=this._checkWorkspaceRedo(e,t,r,!1);return s?s.returnValue:this._executeWorkspaceRedo(e,t,r)}async _executeWorkspaceRedo(e,t,r){let s;try{s=await this._invokeWorkspacePrepare(t)}catch(l){return this._onError(l,t)}const a=this._checkWorkspaceRedo(e,t,r,!0);if(a)return s.dispose(),a.returnValue;for(const l of r.editStacks)l.moveForward(t);return this._safeInvokeWithLocks(t,()=>t.actual.redo(),r,s,()=>this._continueRedoInGroup(t.groupId))}_resourceRedo(e,t){if(!t.isValid){e.flushAllElements();return}if(e.locked){const r=localize(2049,"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(r);return}return this._invokeResourcePrepare(t,r=>(e.moveForward(t),this._safeInvokeWithLocks(t,()=>t.actual.redo(),new EditStackSnapshot([e]),r,()=>this._continueRedoInGroup(t.groupId))))}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,r=null;for(const[s,a]of this._editStacks){const l=a.getClosestFutureElement();l&&l.groupId===e&&(!t||l.groupOrder<t.groupOrder)&&(t=l,r=s)}return[t,r]}_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),r=t.getClosestFutureElement();if(r){if(r.groupId){const[s,a]=this._findClosestRedoElementInGroup(r.groupId);if(r!==s&&a)return this._redo(a)}try{return r.type===1?this._workspaceRedo(e,r):this._resourceRedo(t,r)}finally{}}}};UndoRedoService=__decorate$u([__param$p(0,IDialogService),__param$p(1,INotificationService)],UndoRedoService);class WorkspaceVerificationError{constructor(e){this.returnValue=e}}registerSingleton(IUndoRedoService,UndoRedoService,1);var __decorate$t=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$o=function(o,e){return function(t,r){e(t,r,o)}};let SemanticTokensStylingService=class extends Disposable$1{constructor(e,t,r){super(),this._themeService=e,this._logService=t,this._languageService=r,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$t([__param$o(0,IThemeService),__param$o(1,ILogService),__param$o(2,ILanguageService)],SemanticTokensStylingService);registerSingleton(ISemanticTokensStylingService,SemanticTokensStylingService,1);function isExclusive(o){return typeof o=="string"?!1:Array.isArray(o)?o.every(isExclusive):!!o.exclusive}class MatchCandidate{constructor(e,t,r,s,a){this.uri=e,this.languageId=t,this.notebookUri=r,this.notebookType=s,this.recursive=a}equals(e){var t,r;return this.notebookType===e.notebookType&&this.languageId===e.languageId&&this.uri.toString()===e.uri.toString()&&((t=this.notebookUri)==null?void 0:t.toString())===((r=e.notebookUri)==null?void 0:r.toString())&&this.recursive===e.recursive}}class LanguageFeatureRegistry{get onDidChange(){return this._onDidChange.event}constructor(e){this._notebookInfoResolver=e,this._clock=0,this._entries=[],this._onDidChange=new Emitter$1}register(e,t){let r={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(r),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),toDisposable(()=>{if(r){const s=this._entries.indexOf(r);s>=0&&(this._entries.splice(s,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),r=void 0)}})}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e,!1);const t=[];for(const r of this._entries)r._score>0&&t.push(r.provider);return t}ordered(e,t=!1){const r=[];return this._orderedForEach(e,t,s=>r.push(s.provider)),r}orderedGroups(e){const t=[];let r,s;return this._orderedForEach(e,!1,a=>{r&&s===a._score?r.push(a.provider):(s=a._score,r=[a.provider],t.push(r))}),t}_orderedForEach(e,t,r){this._updateScores(e,t);for(const s of this._entries)s._score>0&&r(s)}_updateScores(e,t){var a,l;const r=(a=this._notebookInfoResolver)==null?void 0:a.call(this,e.uri),s=r?new MatchCandidate(e.uri,e.getLanguageId(),r.uri,r.type,t):new MatchCandidate(e.uri,e.getLanguageId(),void 0,void 0,t);if(!((l=this._lastCandidate)!=null&&l.equals(s))){this._lastCandidate=s;for(const c of this._entries)if(c._score=score(c.selector,s.uri,s.languageId,shouldSynchronizeModel(e),s.notebookUri,s.notebookType),isExclusive(c.selector)&&c._score>0)if(t)c._score=0;else{for(const d of this._entries)d._score=0;c._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.newSymbolNamesProvider=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.multiDocumentHighlightProvider=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.documentDropEditProvider=new LanguageFeatureRegistry(this._score.bind(this)),this.documentPasteEditProvider=new LanguageFeatureRegistry(this._score.bind(this))}_score(e){var t;return(t=this._notebookTypeResolver)==null?void 0:t.call(this,e)}}registerSingleton(ILanguageFeaturesService,LanguageFeaturesService,1);var __decorate$s=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$n=function(o,e){return function(t,r){e(t,r,o)}};const $$6=$$m;let HoverWidget=class extends Widget$1{get _targetWindow(){return getWindow$1(this._target.targetElements[0])}get _targetDocumentElement(){return getWindow$1(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return this._hoverPosition===2?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked!==e&&(this._isLocked=e,this._hoverContainer.classList.toggle("locked",this._isLocked))}constructor(e,t,r,s,a){var m,_,v,b,C,y,S,w,E,x,L,k,D,I,T,M;if(super(),this._keybindingService=t,this._configurationService=r,this._markdownRenderer=s,this._accessibilityService=a,this._messageListeners=new DisposableStore$1,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._maxHeightRatioRelativeToWindow=.5,this._onDispose=this._register(new Emitter$1),this._onRequestLayout=this._register(new Emitter$1),this._linkHandler=e.linkHandler,this._target="targetElements"in e.target?e.target:new ElementHoverTarget(e.target),e.style)switch(e.style){case 1:{(m=e.appearance)!=null||(e.appearance={}),(v=(_=e.appearance).compact)!=null||(_.compact=!0),(C=(b=e.appearance).showPointer)!=null||(b.showPointer=!0);break}case 2:{(y=e.appearance)!=null||(e.appearance={}),(w=(S=e.appearance).compact)!=null||(S.compact=!0);break}}this._hoverPointer=(E=e.appearance)!=null&&E.showPointer?$$6("div.workbench-hover-pointer"):void 0,this._hover=this._register(new HoverWidget$1(!((x=e.appearance)!=null&&x.skipFadeInAnimation))),this._hover.containerDomNode.classList.add("workbench-hover"),(L=e.appearance)!=null&&L.compact&&this._hover.containerDomNode.classList.add("workbench-hover","compact"),e.additionalClasses&&this._hover.containerDomNode.classList.add(...e.additionalClasses),(k=e.position)!=null&&k.forcePosition&&(this._forcePosition=!0),e.trapFocus&&(this._enableFocusTraps=!0);const l=(D=e.appearance)==null?void 0:D.maxHeightRatio;l!==void 0&&l>0&&l<=1&&(this._maxHeightRatioRelativeToWindow=l),this._hoverPosition=((I=e.position)==null?void 0:I.hoverPosition)===void 0?3:isNumber$2(e.position.hoverPosition)?e.position.hoverPosition:2,this.onmousedown(this._hover.containerDomNode,R=>R.stopPropagation()),this.onkeydown(this._hover.containerDomNode,R=>{R.equals(9)&&this.dispose()}),this._register(addDisposableListener(this._targetWindow,"blur",()=>this.dispose()));const c=$$6("div.hover-row.markdown-hover"),d=$$6("div.hover-contents");if(typeof e.content=="string")d.textContent=e.content,d.style.whiteSpace="pre-wrap";else if(isHTMLElement(e.content))d.appendChild(e.content),d.classList.add("html-hover-contents");else{const R=e.content,{element:N}=this._register(this._markdownRenderer.render(R,{actionHandler:this._linkHandler,asyncRenderCallback:()=>{d.classList.add("code-hover-contents"),this.layout(),this._onRequestLayout.fire()}}));d.appendChild(N)}if(c.appendChild(d),this._hover.contentsDomNode.appendChild(c),e.actions&&e.actions.length>0){const R=$$6("div.hover-row.status-bar"),N=$$6("div.actions");e.actions.forEach(A=>{const O=this._keybindingService.lookupKeybinding(A.commandId),P=O?O.getLabel():null;this._register(HoverAction.render(N,{label:A.label,commandId:A.commandId,run:F=>{A.run(F),this.dispose()},iconClass:A.iconClass},P))}),R.appendChild(N),this._hover.containerDomNode.appendChild(R)}this._hoverContainer=$$6("div.workbench-hover-container"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode);let u;if(e.actions&&e.actions.length>0?u=!1:((T=e.persistence)==null?void 0:T.hideOnHover)===void 0?u=typeof e.content=="string"||isMarkdownString(e.content)&&!e.content.value.includes("](")&&!e.content.value.includes("</a>"):u=e.persistence.hideOnHover,(M=e.appearance)!=null&&M.showHoverHint){const R=$$6("div.hover-row.status-bar"),N=$$6("div.info");N.textContent=localize(1699,"Hold {0} key to mouse over",isMacintosh?"Option":"Alt"),R.appendChild(N),this._hover.containerDomNode.appendChild(R)}const g=[...this._target.targetElements];u||g.push(this._hoverContainer);const f=this._register(new CompositeMouseTracker(g));if(this._register(f.onMouseOut(()=>{this._isLocked||this.dispose()})),u){const R=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new CompositeMouseTracker(R)),this._register(this._lockMouseTracker.onMouseOut(()=>{this._isLocked||this.dispose()}))}else this._lockMouseTracker=f}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const e=this._hover.containerDomNode,t=this.findLastFocusableChild(this._hover.containerDomNode);if(t){const r=prepend$2(this._hoverContainer,$$6("div")),s=append$2(this._hoverContainer,$$6("div"));r.tabIndex=0,s.tabIndex=0,this._register(addDisposableListener(s,"focus",a=>{e.focus(),a.preventDefault()})),this._register(addDisposableListener(r,"focus",a=>{t.focus(),a.preventDefault()}))}}findLastFocusableChild(e){if(e.hasChildNodes())for(let t=0;t<e.childNodes.length;t++){const r=e.childNodes.item(e.childNodes.length-t-1);if(r.nodeType===r.ELEMENT_NODE){const a=r;if(typeof a.tabIndex=="number"&&a.tabIndex>=0)return a}const s=this.findLastFocusableChild(r);if(s)return s}}render(e){var s;e.appendChild(this._hoverContainer);const r=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&getHoverAccessibleViewHint(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(s=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))==null?void 0:s.getAriaLabel());r&&status(r),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove("right-aligned"),this._hover.contentsDomNode.style.maxHeight="";const e=g=>{const f=getDomNodeZoomLevel(g),m=g.getBoundingClientRect();return{top:m.top*f,bottom:m.bottom*f,right:m.right*f,left:m.left*f}},t=this._target.targetElements.map(g=>e(g)),{top:r,right:s,bottom:a,left:l}=t[0],c=s-l,d=a-r,u={top:r,right:s,bottom:a,left:l,width:c,height:d,center:{x:l+c/2,y:r+d/2}};if(this.adjustHorizontalHoverPosition(u),this.adjustVerticalHoverPosition(u),this.adjustHoverMaxHeight(u),this._hoverContainer.style.padding="",this._hoverContainer.style.margin="",this._hoverPointer){switch(this._hoverPosition){case 1:u.left+=3,u.right+=3,this._hoverContainer.style.paddingLeft="3px",this._hoverContainer.style.marginLeft="-3px";break;case 0:u.left-=3,u.right-=3,this._hoverContainer.style.paddingRight="3px",this._hoverContainer.style.marginRight="-3px";break;case 2:u.top+=3,u.bottom+=3,this._hoverContainer.style.paddingTop="3px",this._hoverContainer.style.marginTop="-3px";break;case 3:u.top-=3,u.bottom-=3,this._hoverContainer.style.paddingBottom="3px",this._hoverContainer.style.marginBottom="-3px";break}u.center.x=u.left+c/2,u.center.y=u.top+d/2}this.computeXCordinate(u),this.computeYCordinate(u),this._hoverPointer&&(this._hoverPointer.classList.remove("top"),this._hoverPointer.classList.remove("left"),this._hoverPointer.classList.remove("right"),this._hoverPointer.classList.remove("bottom"),this.setHoverPointerPosition(u)),this._hover.onContentsChanged()}computeXCordinate(e){const t=this._hover.containerDomNode.clientWidth+2;this._target.x!==void 0?this._x=this._target.x:this._hoverPosition===1?this._x=e.right:this._hoverPosition===0?this._x=e.left-t:(this._hoverPointer?this._x=e.center.x-this._hover.containerDomNode.clientWidth/2:this._x=e.left,this._x+t>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add("right-aligned"),this._x=Math.max(this._targetDocumentElement.clientWidth-t-2,this._targetDocumentElement.clientLeft))),this._x<this._targetDocumentElement.clientLeft&&(this._x=e.left+2)}computeYCordinate(e){this._target.y!==void 0?this._y=this._target.y:this._hoverPosition===3?this._y=e.top:this._hoverPosition===2?this._y=e.bottom-2:this._hoverPointer?this._y=e.center.y+this._hover.containerDomNode.clientHeight/2:this._y=e.bottom,this._y>this._targetWindow.innerHeight&&(this._y=e.bottom)}adjustHorizontalHoverPosition(e){if(this._target.x!==void 0)return;const t=this._hoverPointer?3:0;if(this._forcePosition){const r=t+2;this._hoverPosition===1?this._hover.containerDomNode.style.maxWidth="".concat(this._targetDocumentElement.clientWidth-e.right-r,"px"):this._hoverPosition===0&&(this._hover.containerDomNode.style.maxWidth="".concat(e.left-r,"px"));return}this._hoverPosition===1?this._targetDocumentElement.clientWidth-e.right<this._hover.containerDomNode.clientWidth+t&&(e.left>=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=0:this._hoverPosition=2):this._hoverPosition===0&&(e.left<this._hover.containerDomNode.clientWidth+t&&(this._targetDocumentElement.clientWidth-e.right>=this._hover.containerDomNode.clientWidth+t?this._hoverPosition=1:this._hoverPosition=2),e.left-this._hover.containerDomNode.clientWidth-t<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1))}adjustVerticalHoverPosition(e){if(this._target.y!==void 0||this._forcePosition)return;const t=this._hoverPointer?3:0;this._hoverPosition===3?e.top-this._hover.containerDomNode.clientHeight-t<0&&(this._hoverPosition=2):this._hoverPosition===2&&e.bottom+this._hover.containerDomNode.offsetHeight+t>this._targetWindow.innerHeight&&(this._hoverPosition=3)}adjustHoverMaxHeight(e){let t=this._targetWindow.innerHeight*this._maxHeightRatioRelativeToWindow;if(this._forcePosition){const r=(this._hoverPointer?3:0)+2;this._hoverPosition===3?t=Math.min(t,e.top-r):this._hoverPosition===2&&(t=Math.min(t,this._targetWindow.innerHeight-e.bottom-r))}if(this._hover.containerDomNode.style.maxHeight="".concat(t,"px"),this._hover.contentsDomNode.clientHeight<this._hover.contentsDomNode.scrollHeight){const r="".concat(this._hover.scrollbar.options.verticalScrollbarSize,"px");this._hover.contentsDomNode.style.paddingRight!==r&&(this._hover.contentsDomNode.style.paddingRight=r)}}setHoverPointerPosition(e){if(this._hoverPointer)switch(this._hoverPosition){case 0:case 1:{this._hoverPointer.classList.add(this._hoverPosition===0?"right":"left");const t=this._hover.containerDomNode.clientHeight;t>e.height?this._hoverPointer.style.top="".concat(e.center.y-(this._y-t)-3,"px"):this._hoverPointer.style.top="".concat(Math.round(t/2)-3,"px");break}case 3:case 2:{this._hoverPointer.classList.add(this._hoverPosition===3?"bottom":"top");const t=this._hover.containerDomNode.clientWidth;let r=Math.round(t/2)-3;const s=this._x+r;(s<e.left||s>e.right)&&(r=e.center.x-this._x-3),this._hoverPointer.style.left="".concat(r,"px");break}}}focus(){this._hover.containerDomNode.focus()}dispose(){var e,t;this._isDisposed||(this._onDispose.fire(),(t=(e=this._target).dispose)==null||t.call(e),this._hoverContainer.remove(),this._messageListeners.dispose(),super.dispose()),this._isDisposed=!0}};HoverWidget=__decorate$s([__param$n(1,IKeybindingService),__param$n(2,IConfigurationService),__param$n(3,IMarkdownRendererService),__param$n(4,IAccessibilityService)],HoverWidget);class CompositeMouseTracker extends Widget$1{get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(e,t=200){super(),this._elements=e,this._eventDebounceDelay=t,this._isMouseIn=!0,this._mouseTimer=this._register(new MutableDisposable),this._onMouseOut=this._register(new Emitter$1);for(const r of this._elements)this.onmouseover(r,()=>this._onTargetMouseOver()),this.onmouseleave(r,()=>this._onTargetMouseLeave())}_onTargetMouseOver(){this._isMouseIn=!0,this._mouseTimer.clear()}_onTargetMouseLeave(){this._isMouseIn=!1,this._mouseTimer.value=new TimeoutTimer(()=>this._fireIfMouseOutside(),this._eventDebounceDelay)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class ElementHoverTarget{constructor(e){this._element=e,this.targetElements=[this._element]}dispose(){}}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 r=t.mode===LayoutAnchorMode.ALIGN?t.offset:t.offset+t.size,s=t.mode===LayoutAnchorMode.ALIGN?t.offset+t.size:t.offset;return t.position===0?e<=o-r?r:e<=s?s-e:Math.max(o-e,0):e<=s?s-e:e<=o-r?r:0}const ur=class ur extends Disposable$1{constructor(e,t){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=Disposable$1.None,this.toDisposeOnSetContainer=Disposable$1.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=$$m(".context-view"),hide(this.view),this.setContainer(e,t),this._register(toDisposable(()=>this.setContainer(null,1)))}setContainer(e,t){var s;this.useFixedPosition=t!==1;const r=this.useShadowDOM;if(this.useShadowDOM=t===3,!(e===this.container&&r===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.view.remove(),this.shadowRoot&&(this.shadowRoot=null,(s=this.shadowRootHostElement)==null||s.remove(),this.shadowRootHostElement=null),this.container=null),e)){if(this.container=e,this.useShadowDOM){this.shadowRootHostElement=$$m(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const l=document.createElement("style");l.textContent=SHADOW_ROOT_CSS,this.shadowRoot.appendChild(l),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild($$m("slot"))}else this.container.appendChild(this.view);const a=new DisposableStore$1;ur.BUBBLE_UP_EVENTS.forEach(l=>{a.add(addStandardDisposableListener(this.container,l,c=>{this.onDOMEvent(c,!1)}))}),ur.BUBBLE_DOWN_EVENTS.forEach(l=>{a.add(addStandardDisposableListener(this.container,l,c=>{this.onDOMEvent(c,!0)},!0))}),this.toDisposeOnSetContainer=a}}show(e){var t,r,s;this.isVisible()&&this.hide(),clearNode(this.view),this.view.className="context-view monaco-component",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="".concat(2575+((t=e.layer)!=null?t:0)),this.view.style.position=this.useFixedPosition?"fixed":"absolute",show(this.view),this.toDisposeOnClean=e.render(this.view)||Disposable$1.None,this.delegate=e,this.doLayout(),(s=(r=this.delegate).focus)==null||s.call(r)}getViewElement(){return this.view}layout(){var e,t;if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(isIOS&&BrowserFeatures.pointerEvents)){this.hide();return}(t=(e=this.delegate)==null?void 0:e.layout)==null||t.call(e),this.doLayout()}}doLayout(){var v,b,C;if(!this.isVisible())return;const e=this.delegate.getAnchor();let t;if(isHTMLElement(e)){const y=getDomNodePagePosition(e),S=getDomNodeZoomLevel(e);t={top:y.top*S,left:y.left*S,width:y.width*S,height:y.height*S}}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 r=getTotalWidth(this.view),s=getTotalHeight(this.view),a=(v=this.delegate.anchorPosition)!=null?v:0,l=(b=this.delegate.anchorAlignment)!=null?b:0,c=(C=this.delegate.anchorAxisAlignment)!=null?C:0;let d,u;const g=getActiveWindow();if(c===0){const y={offset:t.top-g.pageYOffset,size:t.height,position:a===0?0:1},S={offset:t.left,size:t.width,position:l===0?0:1,mode:LayoutAnchorMode.ALIGN};d=layout(g.innerHeight,s,y)+g.pageYOffset,Range$1.intersects({start:d,end:d+s},{start:y.offset,end:y.offset+y.size})&&(S.mode=LayoutAnchorMode.AVOID),u=layout(g.innerWidth,r,S)}else{const y={offset:t.left,size:t.width,position:l===0?0:1},S={offset:t.top,size:t.height,position:a===0?0:1,mode:LayoutAnchorMode.ALIGN};u=layout(g.innerWidth,r,y),Range$1.intersects({start:u,end:u+r},{start:y.offset,end:y.offset+y.size})&&(S.mode=LayoutAnchorMode.AVOID),d=layout(g.innerHeight,s,S)+g.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(a===0?"bottom":"top"),this.view.classList.add(l===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const f=getDomNodePagePosition(this.container),m=this.container.scrollTop||0,_=this.container.scrollLeft||0;this.view.style.top="".concat(d-(this.useFixedPosition?getDomNodePagePosition(this.view).top:f.top)+m,"px"),this.view.style.left="".concat(u-(this.useFixedPosition?getDomNodePagePosition(this.view).left:f.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,getWindow$1(e).document.activeElement):t&&!isAncestor$1(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}};ur.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],ur.BUBBLE_DOWN_EVENTS=["click"];let ContextView=ur;const SHADOW_ROOT_CSS='\n :host {\n all: initial; /* 1st rule so subsequent properties are reset. */\n }\n\n .codicon[class*=\'codicon-\'] {\n font: normal normal normal 16px/1 codicon;\n display: inline-block;\n text-decoration: none;\n text-rendering: auto;\n text-align: center;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n user-select: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n }\n\n :host {\n font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif;\n }\n\n :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; }\n :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; }\n :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; }\n :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; }\n :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Nanum Gothic", "AppleGothic", sans-serif; }\n\n :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; }\n :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; }\n :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; }\n :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; }\n :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; }\n\n :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; }\n :host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; }\n :host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; }\n :host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; }\n :host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; }\n';var __decorate$r=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$m=function(o,e){return function(t,r){e(t,r,o)}};let ContextViewHandler=class extends Disposable$1{constructor(e){super(),this.layoutService=e,this.contextView=this._register(new ContextView(this.layoutService.mainContainer,1)),this.layout(),this._register(e.onDidLayoutContainer(()=>this.layout()))}showContextView(e,t,r){let s;t?t===this.layoutService.getContainer(getWindow$1(t))?s=1:r?s=3:s=2:s=1,this.contextView.setContainer(t!=null?t:this.layoutService.activeContainer,s),this.contextView.show(e);const a={close:()=>{this.openContextView===a&&this.hideContextView()}};return this.openContextView=a,a}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e),this.openContextView=void 0}};ContextViewHandler=__decorate$r([__param$m(0,ILayoutService)],ContextViewHandler);class ContextViewService extends ContextViewHandler{getContextViewElement(){return this.contextView.getViewElement()}}function isManagedHoverTooltipMarkdownString(o){const e=o;return typeof e=="object"&&"markdown"in e&&"markdownNotSupportedFallback"in e}class ManagedHoverWidget{constructor(e,t,r){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=r}async update(e,t,r){var a;if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let s;if(isString$2(e)||isHTMLElement(e)||e===void 0)s=e;else{this._cancellationTokenSource=new CancellationTokenSource$1;const l=this._cancellationTokenSource.token;let c;if(isManagedHoverTooltipMarkdownString(e)?isFunction$2(e.markdown)?c=e.markdown(l).then(d=>d!=null?d:e.markdownNotSupportedFallback):c=(a=e.markdown)!=null?a:e.markdownNotSupportedFallback:c=e.element(l),c instanceof Promise?(this._hoverWidget||this.show(localize(1700,"Loading..."),t,r),s=await c):s=c,this.isDisposed||l.isCancellationRequested)return}this.show(s,t,r)}show(e,t,r){var a;const s=this._hoverWidget;if(this.hasContent(e)){const l={content:e,target:this.target,actions:r==null?void 0:r.actions,linkHandler:r==null?void 0:r.linkHandler,trapFocus:r==null?void 0:r.trapFocus,appearance:{showPointer:this.hoverDelegate.placement==="element",skipFadeInAnimation:!this.fadeInAnimation||!!s,showHoverHint:(a=r==null?void 0:r.appearance)==null?void 0:a.showHoverHint},position:{hoverPosition:2}};this._hoverWidget=this.hoverDelegate.showHover(l,t)}s==null||s.dispose()}hasContent(e){return e?isMarkdownString(e)?!!e.value:!0:!1}get isDisposed(){var e;return(e=this._hoverWidget)==null?void 0:e.isDisposed}dispose(){var e,t;(e=this._hoverWidget)==null||e.dispose(),(t=this._cancellationTokenSource)==null||t.dispose(!0),this._cancellationTokenSource=void 0}}var __decorate$q=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$l=function(o,e){return function(t,r){e(t,r,o)}};let HoverService=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._instantiationService=e,this._configurationService=t,this._keybindingService=s,this._layoutService=a,this._accessibilityService=l,this._currentDelayedHoverWasShown=!1,this._delayedHovers=new Map,this._managedHovers=new Map,this._register(r.onDidShowContextMenu(()=>this.hideHover())),this._contextViewHandler=this._register(new ContextViewHandler(this._layoutService)),this._register(KeybindingsRegistry.registerCommandAndKeybindingRule({id:"workbench.action.showHover",weight:0,primary:KeyChord(2089,2087),handler:()=>{this._showAndFocusHoverForActiveElement()}}))}showInstantHover(e,t,r,s){const a=this._createHover(e,r);if(a)return this._showHover(a,e,t),a}showDelayedHover(e,t){var s;if(e.id===void 0&&(e.id=getHoverIdFromContent(e.content)),!this._currentDelayedHover||this._currentDelayedHoverWasShown){if((s=this._currentHover)!=null&&s.isLocked)return;if(getHoverOptionsIdentity(this._currentHoverOptions)===getHoverOptionsIdentity(e))return this._currentHover;if(this._currentHover&&!this._currentHover.isDisposed&&this._currentDelayedHoverGroupId!==void 0&&this._currentDelayedHoverGroupId===(t==null?void 0:t.groupId))return this.showInstantHover({...e,appearance:{...e.appearance,skipFadeInAnimation:!0}})}else if(this._currentDelayedHover&&getHoverOptionsIdentity(this._currentHoverOptions)===getHoverOptionsIdentity(e))return this._currentDelayedHover;const r=this._createHover(e,void 0);if(!r){this._currentDelayedHover=void 0,this._currentDelayedHoverWasShown=!1,this._currentDelayedHoverGroupId=void 0;return}return this._currentDelayedHover=r,this._currentDelayedHoverWasShown=!1,this._currentDelayedHoverGroupId=t==null?void 0:t.groupId,timeout(this._configurationService.getValue("workbench.hover.delay")).then(()=>{r&&!r.isDisposed&&(this._currentDelayedHoverWasShown=!0,this._showHover(r,e))}),r}setupDelayedHover(e,t,r){const s=()=>({...typeof t=="function"?t():t,target:e});return this._setupDelayedHover(e,s,r)}setupDelayedHoverAtMouse(e,t,r){const s=a=>({...typeof t=="function"?t():t,target:{targetElements:[e],x:a!==void 0?a.x+10:void 0}});return this._setupDelayedHover(e,s,r)}_setupDelayedHover(e,t,r){const s=new DisposableStore$1;return s.add(addDisposableListener(e,EventType$1.MOUSE_OVER,a=>{this.showDelayedHover(t(a),{groupId:r==null?void 0:r.groupId})})),r!=null&&r.setupKeyboardEvents&&s.add(addDisposableListener(e,EventType$1.KEY_DOWN,a=>{const l=new StandardKeyboardEvent(a);(l.equals(10)||l.equals(3))&&this.showInstantHover(t(),!0)})),this._delayedHovers.set(e,{show:a=>{this.showInstantHover(t(),a)}}),s.add(toDisposable(()=>this._delayedHovers.delete(e))),s}_createHover(e,t){var c,d,u,g;if(this._currentDelayedHover=void 0,e.content===""||(c=this._currentHover)!=null&&c.isLocked||(e.id===void 0&&(e.id=getHoverIdFromContent(e.content)),getHoverOptionsIdentity(this._currentHoverOptions)===getHoverOptionsIdentity(e)))return;this._currentHoverOptions=e,this._lastHoverOptions=e;const r=e.trapFocus||this._accessibilityService.isScreenReaderOptimized(),s=getActiveElement();t||(r&&s?s.classList.contains("monaco-hover")||(this._lastFocusedElementBeforeOpen=s):this._lastFocusedElementBeforeOpen=void 0);const a=new DisposableStore$1,l=this._instantiationService.createInstance(HoverWidget,e);if((d=e.persistence)!=null&&d.sticky&&(l.isLocked=!0),(u=e.position)!=null&&u.hoverPosition&&!isNumber$2(e.position.hoverPosition)&&(e.target={targetElements:isHTMLElement(e.target)?[e.target]:e.target.targetElements,x:e.position.hoverPosition.x+10}),l.onDispose(()=>{var m,_;((m=this._currentHover)==null?void 0:m.domNode)&&isAncestorOfActiveElement(this._currentHover.domNode)&&((_=this._lastFocusedElementBeforeOpen)==null||_.focus()),getHoverOptionsIdentity(this._currentHoverOptions)===getHoverOptionsIdentity(e)&&this.doHideHover(),a.dispose()},void 0,a),!e.container){const f=isHTMLElement(e.target)?e.target:e.target.targetElements[0];e.container=this._layoutService.getContainer(getWindow$1(f))}if(l.onRequestLayout(()=>this._contextViewHandler.layout(),void 0,a),(g=e.persistence)!=null&&g.sticky)a.add(addDisposableListener(getWindow$1(e.container).document,EventType$1.MOUSE_DOWN,f=>{isAncestor$1(f.target,l.domNode)||this.doHideHover()}));else{if("targetElements"in e.target)for(const m of e.target.targetElements)a.add(addDisposableListener(m,EventType$1.CLICK,()=>this.hideHover()));else a.add(addDisposableListener(e.target,EventType$1.CLICK,()=>this.hideHover()));const f=getActiveElement();if(f){const m=getWindow$1(f).document;a.add(addDisposableListener(f,EventType$1.KEY_DOWN,_=>{var v;return this._keyDown(_,l,!!((v=e.persistence)!=null&&v.hideOnKeyDown))})),a.add(addDisposableListener(m,EventType$1.KEY_DOWN,_=>{var v;return this._keyDown(_,l,!!((v=e.persistence)!=null&&v.hideOnKeyDown))})),a.add(addDisposableListener(f,EventType$1.KEY_UP,_=>this._keyUp(_,l))),a.add(addDisposableListener(m,EventType$1.KEY_UP,_=>this._keyUp(_,l)))}}if("IntersectionObserver"in mainWindow){const f=new IntersectionObserver(_=>this._intersectionChange(_,l),{threshold:0}),m="targetElements"in e.target?e.target.targetElements[0]:e.target;f.observe(m),a.add(toDisposable(()=>f.disconnect()))}return this._currentHover=l,l}_showHover(e,t,r){this._contextViewHandler.showContextView(new HoverContextViewDelegate(e,r),t.container)}hideHover(e){var t;!e&&((t=this._currentHover)!=null&&t.isLocked)||!this._currentHoverOptions||this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewHandler.hideContextView()}_intersectionChange(e,t){e[e.length-1].isIntersecting||t.dispose()}showAndFocusLastHover(){this._lastHoverOptions&&this.showInstantHover(this._lastHoverOptions,!0,!0)}_showAndFocusHoverForActiveElement(){var t;let e=getActiveElement();for(;e;){const r=(t=this._delayedHovers.get(e))!=null?t:this._managedHovers.get(e);if(r){r.show(!0);return}e=e.parentElement}}_keyDown(e,t,r){var l,c;if(e.key==="Alt"){t.isLocked=!0;return}const s=new StandardKeyboardEvent(e);this._keybindingService.resolveKeyboardEvent(s).getSingleModifierDispatchChords().some(d=>!!d)||this._keybindingService.softDispatch(s,s.target).kind!==0||r&&(!((l=this._currentHoverOptions)!=null&&l.trapFocus)||e.key!=="Tab")&&(this.hideHover(),(c=this._lastFocusedElementBeforeOpen)==null||c.focus())}_keyUp(e,t){var r;e.key==="Alt"&&(t.isLocked=!1,t.isMouseIn||(this.hideHover(),(r=this._lastFocusedElementBeforeOpen)==null||r.focus()))}setupManagedHover(e,t,r,s){if(e.showNativeHover)return setupNativeHover(t,r);t.setAttribute("custom-hover","true"),t.title!==""&&(console.warn("HTML element already has a title attribute, which will conflict with the custom hover. Please remove the title attribute."),console.trace("Stack trace:",t.title),t.title="");let a,l;const c=(_,v)=>{var C;const b=l!==void 0;_&&(l==null||l.dispose(),l=void 0),v&&(a==null||a.dispose(),a=void 0),b&&((C=e.onDidHideHover)==null||C.call(e),l=void 0)},d=(_,v,b,C)=>new TimeoutTimer(async()=>{(!l||l.isDisposed)&&(l=new ManagedHoverWidget(e,b||t,_>0),await l.update(typeof r=="function"?r():r,v,{...s,trapFocus:C}))},_),u=new DisposableStore$1;let g=!1;u.add(addDisposableListener(t,EventType$1.MOUSE_DOWN,()=>{g=!0,c(!0,!0)},!0)),u.add(addDisposableListener(t,EventType$1.MOUSE_UP,()=>{g=!1},!0)),u.add(addDisposableListener(t,EventType$1.MOUSE_LEAVE,_=>{g=!1,c(!1,_.fromElement===t)},!0)),u.add(addDisposableListener(t,EventType$1.MOUSE_OVER,_=>{if(a)return;const v=new DisposableStore$1,b={targetElements:[t],dispose:()=>{}};if(e.placement===void 0||e.placement==="mouse"){const C=y=>{b.x=y.x+10,eventIsRelatedToTarget(y,t)||c(!0,!0)};v.add(addDisposableListener(t,EventType$1.MOUSE_MOVE,C,!0))}a=v,eventIsRelatedToTarget(_,t)&&v.add(d(typeof e.delay=="function"?e.delay(r):e.delay,!1,b))},!0));const f=_=>{if(g||a||!eventIsRelatedToTarget(_,t))return;const v={targetElements:[t],dispose:()=>{}},b=new DisposableStore$1,C=()=>c(!0,!0);b.add(addDisposableListener(t,EventType$1.BLUR,C,!0)),b.add(d(typeof e.delay=="function"?e.delay(r):e.delay,!1,v)),a=b};isEditableElement(t)||u.add(addDisposableListener(t,EventType$1.FOCUS,f,!0));const m={show:_=>{c(!1,!0),d(0,_,void 0,_)},hide:()=>{c(!0,!0)},update:async(_,v)=>{r=_,await(l==null?void 0:l.update(r,void 0,v))},dispose:()=>{this._managedHovers.delete(t),u.dispose(),c(!0,!0)}};return this._managedHovers.set(t,m),m}showManagedHover(e){const t=this._managedHovers.get(e);t&&t.show(!0)}dispose(){this._managedHovers.forEach(e=>e.dispose()),super.dispose()}};HoverService=__decorate$q([__param$l(0,IInstantiationService),__param$l(1,IConfigurationService),__param$l(2,IContextMenuService),__param$l(3,IKeybindingService),__param$l(4,ILayoutService),__param$l(5,IAccessibilityService)],HoverService);function getHoverOptionsIdentity(o){var e;if(o!==void 0)return(e=o==null?void 0:o.id)!=null?e:o}function getHoverIdFromContent(o){if(!isHTMLElement(o))return typeof o=="string"?o.toString():o.value}function getStringContent(o){const e=typeof o=="function"?o():o;if(isString$2(e))return stripIcons(e);if(isManagedHoverTooltipMarkdownString(e))return e.markdownNotSupportedFallback}function setupNativeHover(o,e){function t(r){r?o.setAttribute("title",r):o.removeAttribute("title")}return t(getStringContent(e)),{update:r=>t(getStringContent(r)),show:()=>{},hide:()=>{},dispose:()=>t(void 0)}}class HoverContextViewDelegate{get anchorPosition(){return this._hover.anchor}constructor(e,t=!1){this._hover=e,this._focus=t,this.layer=1}render(e){return this._hover.render(e),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}function eventIsRelatedToTarget(o,e){return isHTMLElement(o.target)&&getHoverTargetElement(o.target,e)===e}function getHoverTargetElement(o,e){for(e=e!=null?e:getWindow$1(o).document.body;!o.hasAttribute("custom-hover")&&o!==e;)o=o.parentElement;return o}registerSingleton(IHoverService,HoverService,1);registerThemingParticipant((o,e)=>{const t=o.getColor(editorHoverBorder);t&&(e.addRule(".monaco-hover.workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ".concat(t.transparent(.5),"; }")),e.addRule(".monaco-hover.workbench-hover hr { border-top: 1px solid ".concat(t.transparent(.5),"; }")))});function freeze(o){return Object.isFrozen(o)?o:deepFreeze(o)}class ConfigurationModel{static createEmptyModel(e){return new ConfigurationModel({},[],[],void 0,e)}constructor(e,t,r,s,a){this._contents=e,this._keys=t,this._overrides=r,this.raw=s,this.logService=a,this.overrideConfigurations=new Map}get rawConfiguration(){if(!this._rawConfiguration)if(this.raw){const e=(Array.isArray(this.raw)?this.raw:[this.raw]).map(t=>{if(t instanceof ConfigurationModel)return t;const r=new ConfigurationModelParser("",this.logService);return r.parseRaw(t),r.configurationModel});this._rawConfiguration=e.reduce((t,r)=>r===t?r:t.merge(r),e[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 r=this;return{get value(){return freeze(r.rawConfiguration.getValue(e))},get override(){return t?freeze(r.rawConfiguration.getOverrideValue(e,t)):void 0},get merged(){return freeze(t?r.rawConfiguration.override(t).getValue(e):r.rawConfiguration.getValue(e))},get overrides(){const s=[];for(const{contents:a,identifiers:l,keys:c}of r.rawConfiguration.overrides){const d=new ConfigurationModel(a,c,[],void 0,r.logService).getValue(e);d!==void 0&&s.push({identifiers:l,value:d})}return s.length?freeze(s):void 0}}}getOverrideValue(e,t){const r=this.getContentsForOverrideIdentifer(t);return r?e?getConfigurationValue(r,e):r:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){const t=deepClone(this.contents),r=deepClone(this.overrides),s=[...this.keys],a=this.raw?Array.isArray(this.raw)?[...this.raw]:[this.raw]:[this];for(const l of e)if(a.push(...l.raw?Array.isArray(l.raw)?l.raw:[l.raw]:[l]),!l.isEmpty()){this.mergeContents(t,l.contents);for(const c of l.overrides){const[d]=r.filter(u=>equals$2(u.identifiers,c.identifiers));d?(this.mergeContents(d.contents,c.contents),d.keys.push(...c.keys),d.keys=distinct(d.keys)):r.push(deepClone(c))}for(const c of l.keys)s.indexOf(c)===-1&&s.push(c)}return new ConfigurationModel(t,s,r,!a.length||a.every(l=>l instanceof ConfigurationModel)?void 0:a,this.logService)}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||typeof t!="object"||!Object.keys(t).length)return this;const r={};for(const s of distinct([...Object.keys(this.contents),...Object.keys(t)])){let a=this.contents[s];const l=t[s];l&&(typeof a=="object"&&typeof l=="object"?(a=deepClone(a),this.mergeContents(a,l)):a=l),r[s]=a}return new ConfigurationModel(r,this.keys,this.overrides,void 0,this.logService)}mergeContents(e,t){for(const r of Object.keys(t)){if(r in e&&isObject$3(e[r])&&isObject$3(t[r])){this.mergeContents(e[r],t[r]);continue}e[r]=deepClone(t[r])}}getContentsForOverrideIdentifer(e){let t=null,r=null;const s=a=>{a&&(r?this.mergeContents(r,a):r=deepClone(a))};for(const a of this.overrides)a.identifiers.length===1&&a.identifiers[0]===e?t=a.contents:a.identifiers.includes(e)&&s(a.contents);return s(t),r}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}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(r=>equals$2(r.identifiers,overrideIdentifiersFromKey(e))),1))}updateValue(e,t,r){if(addToValueTree(this.contents,e,t,s=>this.logService.error(s)),r=r||this.keys.indexOf(e)===-1,r&&this.keys.push(e),OVERRIDE_PROPERTY_REGEX.test(e)){const s=overrideIdentifiersFromKey(e),a={identifiers:s,keys:Object.keys(this.contents[e]),contents:toValuesTree(this.contents[e],c=>this.logService.error(c))},l=this.overrides.findIndex(c=>equals$2(c.identifiers,s));l!==-1?this.overrides[l]=a:this.overrides.push(a)}}}class ConfigurationModelParser{constructor(e,t){this._name=e,this.logService=t,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||ConfigurationModel.createEmptyModel(this.logService)}parseRaw(e,t){this._raw=e;const{contents:r,keys:s,overrides:a,restricted:l,hasExcludedProperties:c}=this.doParseRaw(e,t);this._configurationModel=new ConfigurationModel(r,s,a,c?[e]:void 0,this.logService),this._restrictedConfigurations=l||[]}doParseRaw(e,t){const r=Registry.as(Extensions$6.Configuration),s=r.getConfigurationProperties(),a=r.getExcludedConfigurationProperties(),l=this.filter(e,s,a,!0,t);e=l.raw;const c=toValuesTree(e,g=>this.logService.error("Conflict in settings file ".concat(this._name,": ").concat(g))),d=Object.keys(e),u=this.toOverrides(e,g=>this.logService.error("Conflict in settings file ".concat(this._name,": ").concat(g)));return{contents:c,keys:d,overrides:u,restricted:l.restricted,hasExcludedProperties:l.hasExcludedProperties}}filter(e,t,r,s,a){var u;let l=!1;if(!(a!=null&&a.scopes)&&!(a!=null&&a.skipRestricted)&&!(a!=null&&a.skipUnregistered)&&!((u=a==null?void 0:a.exclude)!=null&&u.length))return{raw:e,restricted:[],hasExcludedProperties:l};const c={},d=[];for(const g in e)if(OVERRIDE_PROPERTY_REGEX.test(g)&&s){const f=this.filter(e[g],t,r,!1,a);c[g]=f.raw,l=l||f.hasExcludedProperties,d.push(...f.restricted)}else{const f=t[g];f!=null&&f.restricted&&d.push(g),this.shouldInclude(g,f,r,a)?c[g]=e[g]:l=!0}return{raw:c,restricted:d,hasExcludedProperties:l}}shouldInclude(e,t,r,s){var c,d;if((c=s.exclude)!=null&&c.includes(e))return!1;if((d=s.include)!=null&&d.includes(e))return!0;if(s.skipRestricted&&(t!=null&&t.restricted)||s.skipUnregistered&&!t)return!1;const a=t!=null?t:r[e],l=a?typeof a.scope<"u"?a.scope:4:void 0;return l===void 0||s.scopes===void 0?!0:s.scopes.includes(l)}toOverrides(e,t){const r=[];for(const s of Object.keys(e))if(OVERRIDE_PROPERTY_REGEX.test(s)){const a={};for(const l in e[s])a[l]=e[s][l];r.push({identifiers:overrideIdentifiersFromKey(s),keys:Object.keys(a),contents:toValuesTree(a,t)})}return r}}class ConfigurationInspectValue{constructor(e,t,r,s,a,l,c,d,u,g,f,m,_){this.key=e,this.overrides=t,this._value=r,this.overrideIdentifiers=s,this.defaultConfiguration=a,this.policyConfiguration=l,this.applicationConfiguration=c,this.userConfiguration=d,this.localUserConfiguration=u,this.remoteUserConfiguration=g,this.workspaceConfiguration=f,this.folderConfigurationModel=m,this.memoryConfigurationModel=_}toInspectValue(e){return(e==null?void 0:e.value)!==void 0||(e==null?void 0:e.override)!==void 0||(e==null?void 0:e.overrides)!==void 0?e:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class Configuration{constructor(e,t,r,s,a,l,c,d,u,g){this._defaultConfiguration=e,this._policyConfiguration=t,this._applicationConfiguration=r,this._localUserConfiguration=s,this._remoteUserConfiguration=a,this._workspaceConfiguration=l,this._folderConfigurations=c,this._memoryConfiguration=d,this._memoryConfigurationByResource=u,this.logService=g,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new ResourceMap,this._userConfiguration=null}getValue(e,t,r){return this.getConsolidatedConfigurationModel(e,t,r).getValue(e)}updateValue(e,t,r={}){let s;r.resource?(s=this._memoryConfigurationByResource.get(r.resource),s||(s=ConfigurationModel.createEmptyModel(this.logService),this._memoryConfigurationByResource.set(r.resource,s))):s=this._memoryConfiguration,t===void 0?s.removeValue(e):s.setValue(e,t),r.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,r){const s=this.getConsolidatedConfigurationModel(e,t,r),a=this.getFolderConfigurationModelForResource(t.resource,r),l=t.resource?this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration:this._memoryConfiguration,c=new Set;for(const d of s.overrides)for(const u of d.identifiers)s.getOverrideValue(e,u)!==void 0&&c.add(u);return new ConfigurationInspectValue(e,t,s.getValue(e),c.size?[...c]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,r?this._workspaceConfiguration:void 0,a||void 0,l)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){if(!this._userConfiguration)if(this._remoteUserConfiguration.isEmpty())this._userConfiguration=this._localUserConfiguration;else{const e=this._localUserConfiguration.merge(this._remoteUserConfiguration);this._userConfiguration=new ConfigurationModel(e.contents,e.keys,e.overrides,void 0,this.logService)}return this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(e,t,r){let s=this.getConsolidatedConfigurationModelForResource(t,r);if(t.overrideIdentifier&&(s=s.override(t.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(e)!==void 0){s=s.merge();for(const a of this._policyConfiguration.keys)s.setValue(a,this._policyConfiguration.getValue(a))}return s}getConsolidatedConfigurationModelForResource({resource:e},t){let r=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const s=t.getFolder(e);s&&(r=this.getFolderConsolidatedConfiguration(s.uri)||r);const a=this._memoryConfigurationByResource.get(e);a&&(r=r.merge(a))}return r}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 r=this.getWorkspaceConsolidatedConfiguration(),s=this._folderConfigurations.get(e);s?(t=r.merge(s),this._foldersConsolidatedConfigurations.set(e,t)):t=r}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const r=t.getFolder(e);if(r)return this._folderConfigurations.get(r.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,raw:Array.isArray(this.applicationConfiguration.raw)?void 0:this.applicationConfiguration.raw},userLocal:{contents:this.localUserConfiguration.contents,overrides:this.localUserConfiguration.overrides,keys:this.localUserConfiguration.keys,raw:Array.isArray(this.localUserConfiguration.raw)?void 0:this.localUserConfiguration.raw},userRemote:{contents:this.remoteUserConfiguration.contents,overrides:this.remoteUserConfiguration.overrides,keys:this.remoteUserConfiguration.keys,raw:Array.isArray(this.remoteUserConfiguration.raw)?void 0:this.remoteUserConfiguration.raw},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((e,t)=>{const{contents:r,overrides:s,keys:a}=this._folderConfigurations.get(t);return e.push([t,{contents:r,overrides:s,keys:a}]),e},[])}}static parse(e,t){const r=this.parseConfigurationModel(e.defaults,t),s=this.parseConfigurationModel(e.policy,t),a=this.parseConfigurationModel(e.application,t),l=this.parseConfigurationModel(e.userLocal,t),c=this.parseConfigurationModel(e.userRemote,t),d=this.parseConfigurationModel(e.workspace,t),u=e.folders.reduce((g,f)=>(g.set(URI.revive(f[0]),this.parseConfigurationModel(f[1],t)),g),new ResourceMap);return new Configuration(r,s,a,l,c,d,u,ConfigurationModel.createEmptyModel(t),new ResourceMap,t)}static parseConfigurationModel(e,t){return new ConfigurationModel(e.contents,e.keys,e.overrides,e.raw,t)}}class ConfigurationChangeEvent{constructor(e,t,r,s,a){this.change=e,this.previous=t,this.currentConfiguraiton=r,this.currentWorkspace=s,this.logService=a,this._marker="\n",this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const l of e.keys)this.affectedKeys.add(l);for(const[,l]of e.overrides)for(const c of l)this.affectedKeys.add(c);this._affectsConfigStr=this._marker;for(const l of this.affectedKeys)this._affectsConfigStr+=l+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=Configuration.parse(this.previous.data,this.logService)),this._previousConfiguration}affectsConfiguration(e,t){var c;const r=this._marker+e,s=this._affectsConfigStr.indexOf(r);if(s<0)return!1;const a=s+r.length;if(a>=this._affectsConfigStr.length)return!1;const l=this._affectsConfigStr.charCodeAt(a);if(l!==this._markerCode1&&l!==this._markerCode2)return!1;if(t){const d=this.previousConfiguration?this.previousConfiguration.getValue(e,t,(c=this.previous)==null?void 0:c.workspace):void 0,u=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!equals$1(d,u)}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,r){var s;this._log=r,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const a of e){const l=a.command;l&&l.charAt(0)!=="-"&&this._defaultBoundCommands.set(l,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=KeybindingResolver.handleRemovals([].concat(e).concat(t));for(let a=0,l=this._keybindings.length;a<l;a++){const c=this._keybindings[a];if(c.chords.length===0)continue;const d=(s=c.when)==null?void 0:s.substituteConstants();d&&d.type===0||this._addKeyPress(c.chords[0],c)}}static _isTargetedForRemoval(e,t,r){if(t){for(let s=0;s<t.length;s++)if(t[s]!==e.chords[s])return!1}return!(r&&r.type!==1&&(!e.when||!expressionsAreEqualWithConstantSubstitution(r,e.when)))}static handleRemovals(e){const t=new Map;for(let s=0,a=e.length;s<a;s++){const l=e[s];if(l.command&&l.command.charAt(0)==="-"){const c=l.command.substring(1);t.has(c)?t.get(c).push(l):t.set(c,[l])}}if(t.size===0)return e;const r=[];for(let s=0,a=e.length;s<a;s++){const l=e[s];if(!l.command||l.command.length===0){r.push(l);continue}if(l.command.charAt(0)==="-")continue;const c=t.get(l.command);if(!c||!l.isDefault){r.push(l);continue}let d=!1;for(const u of c){const g=u.when;if(this._isTargetedForRemoval(l,u.chords,g)){d=!0;break}}if(!d){r.push(l);continue}}return r}_addKeyPress(e,t){const r=this._map.get(e);if(typeof r>"u"){this._map.set(e,[t]),this._addToLookupMap(t);return}for(let s=r.length-1;s>=0;s--){const a=r[s];if(a.command===t.command)continue;let l=!0;for(let c=1;c<a.chords.length&&c<t.chords.length;c++)if(a.chords[c]!==t.chords[c]){l=!1;break}l&&KeybindingResolver.whenIsEntirelyIncluded(a.when,t.when)&&this._removeFromLookupMap(a)}r.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 r=0,s=t.length;r<s;r++)if(t[r]===e){t.splice(r,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,r=!1){const s=this._lookupMap.get(e);if(typeof s>"u"||s.length===0)return null;if(s.length===1&&!r)return s[0];for(let a=s.length-1;a>=0;a--){const l=s[a];if(t.contextMatchesRules(l.when))return l}return r?null:s[s.length-1]}resolve(e,t,r){const s=[...t,r];this._log("| Resolving ".concat(s));const a=this._map.get(s[0]);if(a===void 0)return this._log("\\ No keybinding entries."),NoMatchingKb;let l=null;if(s.length<2)l=a;else{l=[];for(let d=0,u=a.length;d<u;d++){const g=a[d];if(s.length>g.chords.length)continue;let f=!0;for(let m=1;m<s.length;m++)if(g.chords[m]!==s[m]){f=!1;break}f&&l.push(g)}}const c=this._findCommand(e,l);return c?s.length<c.chords.length?(this._log("\\ From ".concat(l.length," keybinding entries, awaiting ").concat(c.chords.length-s.length," more chord(s), when: ").concat(printWhenExplanation(c.when),", source: ").concat(printSourceExplanation(c),".")),MoreChordsNeeded):(this._log("\\ From ".concat(l.length," keybinding entries, matched ").concat(c.command,", when: ").concat(printWhenExplanation(c.when),", source: ").concat(printSourceExplanation(c),".")),KbFound(c.command,c.commandArgs,c.bubble)):(this._log("\\ From ".concat(l.length," keybinding entries, no when clauses matched the context.")),NoMatchingKb)}_findCommand(e,t){for(let r=t.length-1;r>=0;r--){const s=t[r];if(KeybindingResolver._contextMatchesRules(e,s.when))return s}return null}static _contextMatchesRules(e,t){return t?t.evaluate(e):!0}}function printWhenExplanation(o){return o?"".concat(o.serialize()):"no when condition"}function printSourceExplanation(o){return o.extensionId?o.isBuiltinExtension?"built-in extension ".concat(o.extensionId):"user extension ".concat(o.extensionId):o.isDefault?"built-in":"user"}const HIGH_FREQ_COMMANDS=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class AbstractKeybindingService extends Disposable$1{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:Event$1.None}get inChordMode(){return this._currentChords.length>0}constructor(e,t,r,s,a){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=r,this._notificationService=s,this._logService=a,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._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(e){this._logging&&this._logService.info("[KeybindingService]: ".concat(e))}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(e,t,r=!1){const s=this._getResolver().lookupPrimaryKeybinding(e,t||this._contextKeyService,r);if(s)return s.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){this._log("/ Soft dispatching keyboard event");const r=this.resolveKeyboardEvent(e);if(r.hasMultipleChords())return console.warn("keyboard event should not be mapped to multiple chords"),NoMatchingKb;const[s]=r.getDispatchChords();if(s===null)return this._log("\\ Keyboard event cannot be dispatched"),NoMatchingKb;const a=this._contextKeyService.getContext(t),l=this._currentChords.map((({keypress:c})=>c));return this._getResolver().resolve(a,l,s)}_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(1701,"({0}) was pressed. Waiting for second key of chord...",t));break;default:{const r=this._currentChords.map(({label:s})=>s).join(", ");this._currentChordStatusMessage=this._notificationService.status(localize(1702,"({0}) was pressed. Waiting for next key of chord...",r))}}this._scheduleLeaveChordMode(),IME.enabled&&IME.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.close(),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 r=this.resolveKeyboardEvent(e),[s]=r.getSingleModifierDispatchChords();if(s)return this._ignoreSingleModifiers.has(s)?(this._log("+ Ignoring single modifier ".concat(s," 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 ".concat(s,".")),this._currentSingleModifier=s,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null},300),!1):s===this._currentSingleModifier?(this._log("/ Dispatching single modifier chord ".concat(s," ").concat(s)),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(r,t,!0)):(this._log("+ Clearing single modifier due to modifier mismatch: ".concat(this._currentSingleModifier," ").concat(s)),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[a]=r.getChords();return this._ignoreSingleModifiers=new KeybindingModifierSet(a),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t,r=!1){var g;let s=!1;if(e.hasMultipleChords())return console.warn("Unexpected keyboard event mapped to multiple chords"),!1;let a=null,l=null;if(r){const[f]=e.getSingleModifierDispatchChords();a=f,l=f?[f]:[]}else[a]=e.getDispatchChords(),l=this._currentChords.map(({keypress:f})=>f);if(a===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),s;const c=this._contextKeyService.getContext(t),d=e.getLabel(),u=this._getResolver().resolve(c,l,a);switch(u.kind){case 0:{if(this._logService.trace("KeybindingService#dispatch",d,"[ No matching keybinding ]"),this.inChordMode){const f=this._currentChords.map(({label:m})=>m).join(", ");this._log('+ Leaving multi-chord mode: Nothing bound to "'.concat(f,", ").concat(d,'".')),this._notificationService.status(localize(1703,"The key combination ({0}, {1}) is not a command.",f,d),{hideAfter:10*1e3}),this._leaveChordMode(),s=!0}return s}case 1:return this._logService.trace("KeybindingService#dispatch",d,"[ Several keybindings match - more chords needed ]"),s=!0,this._expectAnotherChord(a,d),this._log(this._currentChords.length===1?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),s;case 2:{if(this._logService.trace("KeybindingService#dispatch",d,"[ Will dispatch command ".concat(u.commandId," ]")),u.commandId===null||u.commandId===""){if(this.inChordMode){const f=this._currentChords.map(({label:m})=>m).join(", ");this._log('+ Leaving chord mode: Nothing bound to "'.concat(f,", ").concat(d,'".')),this._notificationService.status(localize(1704,"The key combination ({0}, {1}) is not a command.",f,d),{hideAfter:10*1e3}),this._leaveChordMode(),s=!0}}else{this.inChordMode&&this._leaveChordMode(),u.isBubble||(s=!0),this._log("+ Invoking command ".concat(u.commandId,".")),this._currentlyDispatchingCommandId=u.commandId;try{typeof u.commandArgs>"u"?this._commandService.executeCommand(u.commandId).then(void 0,f=>this._notificationService.warn(f)):this._commandService.executeCommand(u.commandId,u.commandArgs).then(void 0,f=>this._notificationService.warn(f))}finally{this._currentlyDispatchingCommandId=null}HIGH_FREQ_COMMANDS.test(u.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:u.commandId,from:"keybinding",detail:(g=e.getUserSettingsLabel())!=null?g:void 0})}return s}}}mightProducePrintableCharacter(e){return e.ctrlKey||e.metaKey?!1:e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30}}const Ps=class Ps{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}}};Ps.EMPTY=new Ps(null);let KeybindingModifierSet=Ps;class ResolvedKeybindingItem{constructor(e,t,r,s,a,l,c){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=r,this.when=s,this.isDefault=a,this.extensionId=l,this.isBuiltinExtension=c}}function toEmptyArrayIfContainsNull(o){const e=[];for(let t=0,r=o.length;t<r;t++){const s=o[t];if(!s)return[];e.push(s)}return e}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 r=toEmptyArrayIfContainsNull(e.chords.map(s=>this._toKeyCodeChord(s)));return r.length>0?[new USLayoutResolvedKeybinding(r,t)]:[]}}let registeredAssociations=[],nonUserRegisteredAssociations=[],userRegisteredAssociations=[];function registerPlatformLanguageAssociation(o,e=!1){_registerLanguageAssociation(o,!1,e)}function _registerLanguageAssociation(o,e,t){const r=toLanguageAssociationItem(o,e);registeredAssociations.push(r),r.userConfigured?userRegisteredAssociations.push(r):nonUserRegisteredAssociations.push(r),t&&!r.userConfigured&&registeredAssociations.forEach(s=>{s.mime===r.mime||s.userConfigured||(r.extension&&s.extension===r.extension&&console.warn("Overwriting extension <<".concat(r.extension,">> to now point to mime <<").concat(r.mime,">>")),r.filename&&s.filename===r.filename&&console.warn("Overwriting filename <<".concat(r.filename,">> to now point to mime <<").concat(r.mime,">>")),r.filepattern&&s.filepattern===r.filepattern&&console.warn("Overwriting filepattern <<".concat(r.filepattern,">> to now point to mime <<").concat(r.mime,">>")),r.firstline&&s.firstline===r.firstline&&console.warn("Overwriting firstline <<".concat(r.firstline,">> to now point to mime <<").concat(r.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 r=basename$1(t),s=getAssociationByPath(t,r,userRegisteredAssociations);if(s)return[s,{id:PLAINTEXT_LANGUAGE_ID,mime:Mimes.text}];const a=getAssociationByPath(t,r,nonUserRegisteredAssociations);if(a)return[a,{id:PLAINTEXT_LANGUAGE_ID,mime:Mimes.text}];if(e){const l=getAssociationByFirstline(e);if(l)return[l,{id:PLAINTEXT_LANGUAGE_ID,mime:Mimes.text}]}return[{id:"unknown",mime:Mimes.unknown}]}function getAssociationByPath(o,e,t){var l;let r,s,a;for(let c=t.length-1;c>=0;c--){const d=t[c];if(e===d.filenameLowercase){r=d;break}if(d.filepattern&&(!s||d.filepattern.length>s.filepattern.length)){const u=d.filepatternOnPath?o:e;(l=d.filepatternLowercase)!=null&&l.call(d,u)&&(s=d)}d.extension&&(!a||d.extension.length>a.extension.length)&&e.endsWith(d.extensionLowercase)&&(a=d)}if(r)return r;if(s)return s;if(a)return a}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 r=o.match(t.firstline);if(r&&r.length>0)return t}}const hasOwnProperty$1=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}}const jr=class jr extends Disposable$1{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new Emitter$1),this.onDidChange=this._onDidChange.event,jr.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(r=>{this._initializeFromRegistry()})))}dispose(){jr.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 r=this._languages[t];r.name&&(this._nameMap[r.name]=r.identifier),r.aliases.forEach(s=>{this._lowercaseNameMap[s.toLowerCase()]=r.identifier}),r.mimetypes.forEach(s=>{this._mimeTypesMap[s]=r.identifier})}),Registry.as(Extensions$6.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let r;hasOwnProperty$1.call(this._languages,t)?r=this._languages[t]:(this.languageIdCodec.register(t),r={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[t]=r),this._mergeLanguage(r,e)}_mergeLanguage(e,t){const r=t.id;let s=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),s=t.mimetypes[0]),s||(s="text/x-".concat(r),e.mimetypes.push(s)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(const c of t.extensions)registerPlatformLanguageAssociation({id:r,mime:s,extension:c},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(const c of t.filenames)registerPlatformLanguageAssociation({id:r,mime:s,filename:c},this._warnOnOverwrite),e.filenames.push(c);if(Array.isArray(t.filenamePatterns))for(const c of t.filenamePatterns)registerPlatformLanguageAssociation({id:r,mime:s,filepattern:c},this._warnOnOverwrite);if(typeof t.firstLine=="string"&&t.firstLine.length>0){let c=t.firstLine;c.charAt(0)!=="^"&&(c="^"+c);try{const d=new RegExp(c);regExpLeadsToEndlessLoop(d)||registerPlatformLanguageAssociation({id:r,mime:s,firstline:d},this._warnOnOverwrite)}catch(d){console.warn("[".concat(t.id,"]: Invalid regular expression `").concat(c,"`: "),d)}}e.aliases.push(r);let a=null;if(typeof t.aliases<"u"&&Array.isArray(t.aliases)&&(t.aliases.length===0?a=[null]:a=t.aliases),a!==null)for(const c of a)!c||c.length===0||e.aliases.push(c);const l=a!==null&&a.length>0;if(!(l&&a[0]===null)){const c=(l?a[0]:null)||r;(l||!e.name)&&(e.name=c)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return e?hasOwnProperty$1.call(this._languages,e):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return hasOwnProperty$1.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&hasOwnProperty$1.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){return!e&&!t?[]:getLanguageIds(e,t)}};jr.instanceCount=0;let LanguagesRegistry=jr;const qr=class qr extends Disposable$1{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,qr.instanceCount++,this._registry=this._register(new LanguagesRegistry(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){qr.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){var s;return(s=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t).at(0))!=null?s:null}createById(e){return new LanguageSelection(this.onDidChange,()=>this._createAndGetLanguageIdentifier(e))}createByFilepathOrFirstLine(e,t){return new LanguageSelection(this.onDidChange,()=>{const r=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(r)})}_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))}};qr.instanceCount=0;let LanguageService=qr;class LanguageSelection{constructor(e,t){this._value=observableFromEvent(this,e,()=>t()),this.onDidChange=Event$1.fromObservable(this._value)}get languageId(){return this._value.get()}}const MENU_MNEMONIC_REGEX=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,MENU_ESCAPED_MNEMONIC_REGEX=/(&amp;)?(&amp;)([^\s&])/g;var HorizontalDirection;(function(o){o[o.Right=0]="Right",o[o.Left=1]="Left"})(HorizontalDirection||(HorizontalDirection={}));var VerticalDirection;(function(o){o[o.Above=0]="Above",o[o.Below=1]="Below"})(VerticalDirection||(VerticalDirection={}));class Menu extends ActionBar{constructor(e,t,r,s){e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");const a=document.createElement("div");a.classList.add("monaco-menu"),a.setAttribute("role","presentation"),super(a,{orientation:1,actionViewItemProvider:u=>this.doGetActionViewItem(u,r,l),context:r.context,actionRunner:r.actionRunner,ariaLabel:r.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...isMacintosh||isLinux?[10]:[]],keyDown:!0}}),this.menuStyles=s,this.menuElement=a,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(e,s),this._register(Gesture.addTarget(a)),this._register(addDisposableListener(a,EventType$1.KEY_DOWN,u=>{new StandardKeyboardEvent(u).equals(2)&&u.preventDefault()})),r.enableMnemonics&&this._register(addDisposableListener(a,EventType$1.KEY_DOWN,u=>{const g=u.key.toLocaleLowerCase();if(this.mnemonics.has(g)){EventHelper$1.stop(u,!0);const f=this.mnemonics.get(g);if(f.length===1&&(f[0]instanceof SubmenuMenuActionViewItem&&f[0].container&&this.focusItemByElement(f[0].container),f[0].onClick(u)),f.length>1){const m=f.shift();m&&m.container&&(this.focusItemByElement(m.container),f.push(m)),this.mnemonics.set(g,f)}}})),isLinux&&this._register(addDisposableListener(a,EventType$1.KEY_DOWN,u=>{const g=new StandardKeyboardEvent(u);g.equals(14)||g.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),EventHelper$1.stop(u,!0)):(g.equals(13)||g.equals(12))&&(this.focusedItem=0,this.focusPrevious(),EventHelper$1.stop(u,!0))})),this._register(addDisposableListener(this.domNode,EventType$1.MOUSE_OUT,u=>{const g=u.relatedTarget;isAncestor$1(g,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),u.stopPropagation())})),this._register(addDisposableListener(this.actionsList,EventType$1.MOUSE_OVER,u=>{let g=u.target;if(!(!g||!isAncestor$1(g,this.actionsList)||g===this.actionsList)){for(;g.parentElement!==this.actionsList&&g.parentElement!==null;)g=g.parentElement;if(g.classList.contains("action-item")){const f=this.focusedItem;this.setFocusedItem(g),f!==this.focusedItem&&this.updateFocus()}}})),this._register(Gesture.addTarget(this.actionsList)),this._register(addDisposableListener(this.actionsList,EventType.Tap,u=>{let g=u.initialTarget;if(!(!g||!isAncestor$1(g,this.actionsList)||g===this.actionsList)){for(;g.parentElement!==this.actionsList&&g.parentElement!==null;)g=g.parentElement;if(g.classList.contains("action-item")){const f=this.focusedItem;this.setFocusedItem(g),f!==this.focusedItem&&this.updateFocus()}}}));const l={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new DomScrollableElement(a,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const c=this.scrollableElement.getDomNode();c.style.position="",this.styleScrollElement(c,s),this._register(addDisposableListener(a,EventType.Change,u=>{EventHelper$1.stop(u,!0);const g=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:g-u.translationY})})),this._register(addDisposableListener(c,EventType$1.MOUSE_UP,u=>{u.preventDefault()}));const d=getWindow$1(e);a.style.maxHeight="".concat(Math.max(10,d.innerHeight-e.getBoundingClientRect().top-35),"px"),t=t.filter((u,g)=>{var f;return(f=r.submenuIds)!=null&&f.has(u.id)?(console.warn("Found submenu cycle: ".concat(u.id)),!1):!(u instanceof Separator&&(g===t.length-1||g===0||t[g-1]instanceof Separator))}),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(u=>!(u instanceof MenuSeparatorActionViewItem)).forEach((u,g,f)=>{u.updatePositionInSet(g+1,f.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 d,u;const r=(d=t.foregroundColor)!=null?d:"",s=(u=t.backgroundColor)!=null?u:"",a=t.borderColor?"1px solid ".concat(t.borderColor):"",l="5px",c=t.shadowColor?"0 2px 8px ".concat(t.shadowColor):"";e.style.outline=a,e.style.borderRadius=l,e.style.color=r,e.style.backgroundColor=s,e.style.boxShadow=c}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 r=this.actionsList.children[t];if(e===r){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,r){var s,a;if(e instanceof Separator)return new MenuSeparatorActionViewItem(t.context,e,{icon:!0},this.menuStyles);if(e instanceof SubmenuAction){const l=new SubmenuMenuActionViewItem(e,e.actions,r,{...t,submenuIds:new Set([...t.submenuIds||[],e.id])},this.menuStyles);if(t.enableMnemonics){const c=l.getMnemonic();if(c&&l.isEnabled()){let d=[];this.mnemonics.has(c)&&(d=this.mnemonics.get(c)),d.push(l),this.mnemonics.set(c,d)}}return l}else{const l=(a=(s=t.getKeyBinding)==null?void 0:s.call(t,e))==null?void 0:a.getLabel(),c={enableMnemonics:t.enableMnemonics,useEventAsContext:t.useEventAsContext,keybinding:l},d=new BaseMenuActionViewItem(t.context,e,c,this.menuStyles);if(t.enableMnemonics){const u=d.getMnemonic();if(u&&d.isEnabled()){let g=[];this.mnemonics.has(u)&&(g=this.mnemonics.get(u)),g.push(d),this.mnemonics.set(u,g)}}return d}}}class BaseMenuActionViewItem extends BaseActionViewItem{constructor(e,t,r,s){if(r={...r,isMenu:!0,icon:r.icon!==void 0?r.icon:!1,label:r.label!==void 0?r.label:!0},super(t,t,r),this.menuStyle=s,this.options=r,this.cssClass="",this.options.label&&r.enableMnemonics){const a=this.action.label;if(a){const l=MENU_MNEMONIC_REGEX.exec(a);l&&(this.mnemonic=(l[1]?l[1]:l[3]).toLocaleLowerCase())}}this.runOnceToEnableMouseUp=new RunOnceScheduler(()=>{this.element&&(this._register(addDisposableListener(this.element,EventType$1.MOUSE_UP,a=>{if(EventHelper$1.stop(a,!0),isFirefox$1){if(new StandardMouseEvent(getWindow$1(this.element),a).rightButton)return;this.onClick(a)}else setTimeout(()=>{this.onClick(a)},0)})),this._register(addDisposableListener(this.element,EventType$1.CONTEXT_MENU,a=>{EventHelper$1.stop(a,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=append$2(this.element,$$m("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","".concat(this.mnemonic))),this.check=append$2(this.item,$$m("span.menu-item-check"+ThemeIcon.asCSSSelector(Codicon.menuSelection))),this.check.setAttribute("role","none"),this.label=append$2(this.item,$$m("span.action-label")),this.options.label&&this.options.keybinding&&(append$2(this.item,$$m("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.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset","".concat(e)),this.item.setAttribute("aria-setsize","".concat(t)))}updateLabel(){var e;if(this.label&&this.options.label){clearNode(this.label);let t=stripIcons(this.action.label);if(t){const r=cleanMnemonic(t);this.options.enableMnemonics||(t=r),this.label.setAttribute("aria-label",r.replace(/&&/g,"&"));const s=MENU_MNEMONIC_REGEX.exec(t);if(s){t=escape$2(t),MENU_ESCAPED_MNEMONIC_REGEX.lastIndex=0;let a=MENU_ESCAPED_MNEMONIC_REGEX.exec(t);for(;a&&a[1];)a=MENU_ESCAPED_MNEMONIC_REGEX.exec(t);const l=c=>c.replace(/&amp;&amp;/g,"&amp;");a?this.label.append(ltrim(l(t.substr(0,a.index))," "),$$m("u",{"aria-hidden":"true"},a[3]),rtrim$1(l(t.substr(a.index+a[0].length))," ")):this.label.textContent=l(t).trim(),(e=this.item)==null||e.setAttribute("aria-keyshortcuts",(s[1]?s[1]:s[3]).toLocaleLowerCase())}else this.label.textContent=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,r=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,s=e&&this.menuStyle.selectionBorderColor?"1px solid ".concat(this.menuStyle.selectionBorderColor):"",a=e&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=t!=null?t:"",this.item.style.backgroundColor=r!=null?r:"",this.item.style.outline=s,this.item.style.outlineOffset=a),this.check&&(this.check.style.color=t!=null?t:"")}}class SubmenuMenuActionViewItem extends BaseMenuActionViewItem{constructor(e,t,r,s,a){super(e,e,s,a),this.submenuActions=t,this.parentData=r,this.submenuOptions=s,this.mysubmenu=null,this.submenuDisposables=this._register(new DisposableStore$1),this.mouseOver=!1,this.expandDirection=s&&s.expandDirection!==void 0?s.expandDirection:{horizontal:HorizontalDirection.Right,vertical:VerticalDirection.Below},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$2(this.item,$$m("span.submenu-indicator"+ThemeIcon.asCSSSelector(Codicon.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register(addDisposableListener(this.element,EventType$1.KEY_UP,t=>{const r=new StandardKeyboardEvent(t);(r.equals(17)||r.equals(3))&&(EventHelper$1.stop(t,!0),this.createSubmenu(!0))})),this._register(addDisposableListener(this.element,EventType$1.KEY_DOWN,t=>{const r=new StandardKeyboardEvent(t);getActiveElement()===this.item&&(r.equals(17)||r.equals(3))&&EventHelper$1.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$1.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(t){}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,r,s){const a={top:0,left:0};return a.left=layout(e.width,t.width,{position:s.horizontal===HorizontalDirection.Right?0:1,offset:r.left,size:r.width}),a.left>=r.left&&a.left<r.left+r.width&&(r.left+10+t.width<=e.width&&(a.left=r.left+10),r.top+=10,r.height=0),a.top=layout(e.height,t.height,{position:0,offset:r.top,size:0}),a.top+t.height===r.top&&a.top+r.height+t.height<=e.height&&(a.top+=r.height),a}createSubmenu(e=!0){if(this.element)if(this.parentData.submenu)this.parentData.submenu.focus(!1);else{this.updateAriaExpanded("true"),this.submenuContainer=append$2(this.element,$$m("div.monaco-submenu")),this.submenuContainer.classList.add("menubar-menu-items-holder","context-view");const t=getWindow$1(this.parentData.parent.domNode).getComputedStyle(this.parentData.parent.domNode),r=parseFloat(t.paddingTop||"0")||0;this.submenuContainer.style.position="fixed",this.submenuContainer.style.top="0",this.submenuContainer.style.left="0",this.submenuContainer.style.zIndex="1",this.parentData.submenu=new Menu(this.submenuContainer,this.submenuActions.length?this.submenuActions:[new EmptySubmenuAction],this.submenuOptions,this.menuStyle);const s=this.element.getBoundingClientRect(),a={top:s.top-r,left:s.left,height:s.height+2*r,width:s.width},l=this.submenuContainer.getBoundingClientRect(),c=getWindow$1(this.element),{top:d,left:u}=this.calculateSubmenuMenuLayout(new Dimension(c.innerWidth,c.innerHeight),Dimension.lift(l),a,this.expandDirection);this.submenuContainer.style.left="".concat(u-l.left,"px"),this.submenuContainer.style.top="".concat(d-l.top,"px"),this.submenuDisposables.add(addDisposableListener(this.submenuContainer,EventType$1.KEY_UP,g=>{new StandardKeyboardEvent(g).equals(15)&&(EventHelper$1.stop(g,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add(addDisposableListener(this.submenuContainer,EventType$1.KEY_DOWN,g=>{new StandardKeyboardEvent(g).equals(15)&&EventHelper$1.stop(g,!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.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!=null?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,r,s){super(e,t,r),this.menuStyles=s}render(e){super.render(e),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?"".concat(this.menuStyles.separatorColor):"")}}function cleanMnemonic(o){const e=MENU_MNEMONIC_REGEX,t=e.exec(o);if(!t)return o;const r=!t[1];return o.replace(e,r?"$2$3":"").trim()}function formatRule(o){const e=getCodiconFontCharacters()[o.id];return".codicon-".concat(o.id,":before { content: '\\").concat(e.toString(16),"'; }")}function getMenuWidgetCSS(o,e){let t="\n.monaco-menu {\n font-size: 13px;\n border-radius: 5px;\n min-width: 160px;\n}\n\n".concat(formatRule(Codicon.menuSelection),"\n").concat(formatRule(Codicon.menuSubmenu),"\n\n.monaco-menu .monaco-action-bar {\n text-align: right;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.monaco-menu .monaco-action-bar .actions-container {\n display: flex;\n margin: 0 auto;\n padding: 0;\n width: 100%;\n justify-content: flex-end;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n display: inline-block;\n}\n\n.monaco-menu .monaco-action-bar.reverse .actions-container {\n flex-direction: row-reverse;\n}\n\n.monaco-menu .monaco-action-bar .action-item {\n cursor: pointer;\n display: inline-block;\n transition: transform 50ms ease;\n position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled {\n cursor: default;\n}\n\n.monaco-menu .monaco-action-bar .action-item .icon,\n.monaco-menu .monaco-action-bar .action-item .codicon {\n display: inline-block;\n}\n\n.monaco-menu .monaco-action-bar .action-item .codicon {\n display: flex;\n align-items: center;\n}\n\n.monaco-menu .monaco-action-bar .action-label {\n font-size: 11px;\n margin-right: 4px;\n}\n\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label,\n.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover {\n color: var(--vscode-disabledForeground);\n}\n\n/* Vertical actions */\n\n.monaco-menu .monaco-action-bar.vertical {\n text-align: left;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n display: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n display: block;\n border-bottom: 1px solid var(--vscode-menu-separatorBackground);\n padding-top: 1px;\n padding: 30px;\n}\n\n.monaco-menu .secondary-actions .monaco-action-bar .action-label {\n margin-left: 6px;\n}\n\n/* Action Items */\n.monaco-menu .monaco-action-bar .action-item.select-container {\n overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n flex: 1;\n max-width: 170px;\n min-width: 60px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 10px;\n}\n\n.monaco-menu .monaco-action-bar.vertical {\n margin-left: 0;\n overflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n display: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n padding: 0;\n transform: none;\n display: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n transform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n flex: 1 1 auto;\n display: flex;\n height: 2em;\n align-items: center;\n position: relative;\n margin: 0 4px;\n border-radius: 4px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding {\n opacity: unset;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n flex: 1 1 auto;\n text-decoration: none;\n padding: 0 1em;\n background: none;\n font-size: 12px;\n line-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n display: inline-block;\n flex: 2 1 auto;\n padding: 0 1em;\n text-align: right;\n font-size: 12px;\n line-height: 1;\n opacity: 0.7;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n height: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon {\n font-size: 16px !important;\n display: flex;\n align-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before {\n margin-left: auto;\n margin-right: -20px;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n opacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n position: static;\n overflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu {\n position: absolute;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n width: 100%;\n height: 0px !important;\n opacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n padding: 0.7em 1em 0.1em 1em;\n font-weight: bold;\n opacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n color: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n position: absolute;\n visibility: hidden;\n width: 1em;\n height: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check {\n visibility: visible;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n outline: 0;\n border: none;\n animation: fadeIn 0.083s linear;\n -webkit-app-region: no-drag;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n outline: 0;\n}\n\n.hc-black .context-view.monaco-menu-container,\n.hc-light .context-view.monaco-menu-container,\n:host-context(.hc-black) .context-view.monaco-menu-container,\n:host-context(.hc-light) .context-view.monaco-menu-container {\n box-shadow: none;\n}\n\n.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused,\n:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n background: none;\n}\n\n/* Vertical Action Bar Styles */\n\n.monaco-menu .monaco-action-bar.vertical {\n padding: 4px 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n height: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator),\n.monaco-menu .monaco-action-bar.vertical .keybinding {\n font-size: inherit;\n padding: 0 2em;\n max-height: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .menu-item-check {\n font-size: inherit;\n width: 2em;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n font-size: inherit;\n margin: 5px 0 !important;\n padding: 0;\n border-radius: 0;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator {\n margin-left: 0;\n margin-right: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n font-size: 60%;\n padding: 0 1.8em;\n}\n\n.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator,\n:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n height: 100%;\n mask-size: 10px 10px;\n -webkit-mask-size: 10px 10px;\n}\n\n.monaco-menu .action-item {\n cursor: default;\n}");if(e){t+="\n /* Arrows */\n .monaco-scrollable-element > .scrollbar > .scra {\n cursor: pointer;\n font-size: 11px !important;\n }\n\n .monaco-scrollable-element > .visible {\n opacity: 1;\n\n /* Background rule added for IE9 - to allow clicks on dom node */\n background:rgba(0,0,0,0);\n\n transition: opacity 100ms linear;\n }\n .monaco-scrollable-element > .invisible {\n opacity: 0;\n pointer-events: none;\n }\n .monaco-scrollable-element > .invisible.fade {\n transition: opacity 800ms linear;\n }\n\n /* Scrollable Content Inset Shadow */\n .monaco-scrollable-element > .shadow {\n position: absolute;\n display: none;\n }\n .monaco-scrollable-element > .shadow.top {\n display: block;\n top: 0;\n left: 3px;\n height: 3px;\n width: 100%;\n }\n .monaco-scrollable-element > .shadow.left {\n display: block;\n top: 3px;\n left: 0;\n height: 100%;\n width: 3px;\n }\n .monaco-scrollable-element > .shadow.top-left-corner {\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n width: 3px;\n }\n /* Fix for https://github.com/microsoft/vscode/issues/103170 */\n .monaco-menu .action-item .monaco-submenu {\n z-index: 1;\n }\n ";const r=o.scrollbarShadow;r&&(t+="\n .monaco-scrollable-element > .shadow.top {\n box-shadow: ".concat(r," 0 6px 6px -6px inset;\n }\n\n .monaco-scrollable-element > .shadow.left {\n box-shadow: ").concat(r," 6px 0 6px -6px inset;\n }\n\n .monaco-scrollable-element > .shadow.top.left {\n box-shadow: ").concat(r," 6px 6px 6px -6px inset;\n }\n "));const s=o.scrollbarSliderBackground;s&&(t+="\n .monaco-scrollable-element > .scrollbar > .slider {\n background: ".concat(s,";\n }\n "));const a=o.scrollbarSliderHoverBackground;a&&(t+="\n .monaco-scrollable-element > .scrollbar > .slider:hover {\n background: ".concat(a,";\n }\n "));const l=o.scrollbarSliderActiveBackground;l&&(t+="\n .monaco-scrollable-element > .scrollbar > .slider.active {\n background: ".concat(l,";\n }\n "))}return t}class ContextMenuHandler{constructor(e,t,r,s){this.contextViewService=e,this.telemetryService=t,this.notificationService=r,this.keybindingService=s,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=getActiveElement();let r;const s=isHTMLElement(e.domForShadowRoot)?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,layer:e.layer,render:a=>{var g;this.lastContainer=a;const l=e.getMenuClassName?e.getMenuClassName():"";l&&(a.className+=" "+l),this.options.blockMouse&&(this.block=a.appendChild($$m(".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",(g=this.blockDisposable)==null||g.dispose(),this.blockDisposable=addDisposableListener(this.block,EventType$1.MOUSE_DOWN,f=>f.stopPropagation()));const c=new DisposableStore$1,d=e.actionRunner||c.add(new ActionRunner);d.onWillRun(f=>this.onActionRun(f,!e.skipTelemetry),this,c),d.onDidRun(this.onDidActionRun,this,c),r=new Menu(a,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:d,getKeyBinding:e.getKeyBinding?e.getKeyBinding:f=>this.keybindingService.lookupKeybinding(f.id)},defaultMenuStyles),r.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,c),r.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,c);const u=getWindow$1(a);return c.add(addDisposableListener(u,EventType$1.BLUR,()=>this.contextViewService.hideContextView(!0))),c.add(addDisposableListener(u,EventType$1.MOUSE_DOWN,f=>{if(f.defaultPrevented)return;const m=new StandardMouseEvent(u,f);let _=m.target;if(!m.rightButton){for(;_;){if(_===a)return;_=_.parentElement}this.contextViewService.hideContextView(!0)}})),combinedDisposable(c,r)},focus:()=>{r==null||r.focus(!!e.autoSelectFirstItem)},onHide:a=>{var l,c,d;(l=e.onHide)==null||l.call(e,!!a),this.block&&(this.block.remove(),this.block=null),(c=this.blockDisposable)==null||c.dispose(),this.blockDisposable=null,this.lastContainer&&(getActiveElement()===this.lastContainer||isAncestor$1(getActiveElement(),this.lastContainer))&&((d=this.focusToReturn)==null||d.focus()),this.lastContainer=null}},s,!!s)}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$p=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$k=function(o,e){return function(t,r){e(t,r,o)}};let ContextMenuService=class extends Disposable$1{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new ContextMenuHandler(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(e,t,r,s,a,l){super(),this.telemetryService=e,this.notificationService=t,this.contextViewService=r,this.keybindingService=s,this.menuService=a,this.contextKeyService=l,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new Emitter$1),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new Emitter$1),this.onDidHideContextMenu=this._onDidHideContextMenu.event}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){e=ContextMenuMenuDelegate.transform(e,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...e,onHide:t=>{var r;(r=e.onHide)==null||r.call(e,t),this._onDidHideContextMenu.fire()}}),ModifierKeyEmitter.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};ContextMenuService=__decorate$p([__param$k(0,ITelemetryService),__param$k(1,INotificationService),__param$k(2,IContextViewService),__param$k(3,IKeybindingService),__param$k(4,IMenuService),__param$k(5,IContextKeyService)],ContextMenuService);var ContextMenuMenuDelegate;(function(o){function e(r){return r&&r.menuId instanceof MenuId}function t(r,s,a){if(!e(r))return r;const{menuId:l,menuActionOptions:c,contextKeyService:d}=r;return{...r,getActions:()=>{let u=[];if(l){const g=s.getMenuActions(l,d!=null?d:a,c);u=getFlatContextMenuActions(g)}return r.getActions?Separator.join(r.getActions(),u):u}}}o.transform=t})(ContextMenuMenuDelegate||(ContextMenuMenuDelegate={}));var EditorOpenSource;(function(o){o[o.API=0]="API",o[o.USER=1]="USER"})(EditorOpenSource||(EditorOpenSource={}));var __decorate$o=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$j=function(o,e){return function(t,r){e(t,r,o)}};let CommandOpener=class{constructor(e){this._commandService=e}async open(e,t){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 r=[];try{r=parse$2(decodeURIComponent(e.query))}catch(s){try{r=parse$2(e.query)}catch(a){}}return Array.isArray(r)||(r=[r]),await this._commandService.executeCommand(e.path,...r),!0}};CommandOpener=__decorate$o([__param$j(0,ICommandService)],CommandOpener);let EditorOpener=class{constructor(e){this._editorService=e}async open(e,t){typeof e=="string"&&(e=URI.parse(e));const{selection:r,uri:s}=extractSelection(e);return e=s,e.scheme===Schemas.file&&(e=normalizePath(e)),await this._editorService.openCodeEditor({resource:e,options:{selection:r,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$o([__param$j(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(r=>r.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new LinkedList,this._defaultExternalOpener={openExternal:async r=>(matchesSomeScheme(r,Schemas.http,Schemas.https)?windowOpenNoOpener(r):mainWindow.location.href=r,!0)},this._openers.push({open:async(r,s)=>s!=null&&s.openExternal||matchesSomeScheme(r,Schemas.mailto,Schemas.http,Schemas.https,Schemas.vsls)?(await this._doOpenExternal(r,s),!0):!1}),this._openers.push(new CommandOpener(t)),this._openers.push(new EditorOpener(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}async open(e,t){var r;if(!(t!=null&&t.skipValidation)){const s=typeof e=="string"?URI.parse(e):e,a=(r=this._resolvedUriTargets.get(s))!=null?r:e;for(const l of this._validators)if(!await l.shouldOpen(a,t))return!1}for(const s of this._openers)if(await s.open(e,t))return!0;return!1}async resolveExternalUri(e,t){for(const r of this._resolvers)try{const s=await r.resolveExternalUri(e,t);if(s)return this._resolvedUriTargets.has(s.resolved)||this._resolvedUriTargets.set(s.resolved,e),s}catch(s){}throw new Error("Could not resolve external URI: "+e.toString())}async _doOpenExternal(e,t){const r=typeof e=="string"?URI.parse(e):e;let s;try{s=(await this.resolveExternalUri(r,t)).resolved}catch(l){s=r}let a;if(typeof e=="string"&&r.toString()===s.toString()?a=e:a=encodeURI(s.toString(!0)),t!=null&&t.allowContributedOpeners){const l=typeof(t==null?void 0:t.allowContributedOpeners)=="string"?t==null?void 0:t.allowContributedOpeners:void 0;for(const c of this._externalOpeners)if(await c.openExternal(a,{sourceUri:r,preferredOpenerId:l},CancellationToken.None))return!0}return this._defaultExternalOpener.openExternal(a,{sourceUri:r},CancellationToken.None)}dispose(){this._validators.clear()}};OpenerService=__decorate$o([__param$j(0,ICodeEditorService),__param$j(1,ICommandService)],OpenerService);var __decorate$n=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$i=function(o,e){return function(t,r){e(t,r,o)}};let MarkerDecorationsService=class extends Disposable$1{constructor(e,t){super(),this._markerService=t,this._onDidChangeMarker=this._register(new Emitter$1),this._suppressedRanges=new ResourceMap,this._markerDecorations=new ResourceMap,e.getModels().forEach(r=>this._onModelAdded(r)),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 r=this._markerDecorations.get(e);return r&&r.getMarker(t)||null}_handleMarkerChange(e){e.forEach(t=>{const r=this._markerDecorations.get(t);r&&this._updateDecorations(r)})}_onModelAdded(e){const t=new MarkerDecorations(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){var r;const t=this._markerDecorations.get(e.uri);t&&(t.dispose(),this._markerDecorations.delete(e.uri)),(e.uri.scheme===Schemas.inMemory||e.uri.scheme===Schemas.internal||e.uri.scheme===Schemas.vscode)&&((r=this._markerService)==null||r.read({resource:e.uri}).map(s=>s.owner).forEach(s=>this._markerService.remove(s,[e.uri])))}_updateDecorations(e){let t=this._markerService.read({resource:e.model.uri,take:500});const r=this._suppressedRanges.get(e.model.uri);r&&(t=t.filter(s=>!Iterable.some(r,a=>Range$2.areIntersectingOrTouching(a,s)))),e.update(t)&&this._onDidChangeMarker.fire(e.model)}};MarkerDecorationsService=__decorate$n([__param$i(0,IModelService),__param$i(1,IMarkerService)],MarkerDecorationsService);class MarkerDecorations extends Disposable$1{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:r}=diffSets(new Set(this._map.keys()),new Set(e));if(t.length===0&&r.length===0)return!1;const s=r.map(c=>this._map.get(c)),a=t.map(c=>({range:this._createDecorationRange(this.model,c),options:this._createDecorationOption(c)})),l=this.model.deltaDecorations(s,a);for(const c of r)this._map.delete(c);for(let c=0;c<l.length;c++)this._map.set(t[c],l[c]);return!0}getMarker(e){return this._map.getKey(e.id)}_createDecorationRange(e,t){let r=Range$2.lift(t);if(t.severity===MarkerSeverity$2.Hint&&!this._hasMarkerTag(t,1)&&!this._hasMarkerTag(t,2)&&(r=r.setEndPosition(r.startLineNumber,r.startColumn+2)),r=e.validateRange(r),r.isEmpty()){const s=e.getLineLastNonWhitespaceColumn(r.startLineNumber)||e.getLineMaxColumn(r.startLineNumber);if(s===1||r.endColumn>=s)return r;const a=e.getWordAtPosition(r.getStartPosition());a&&(r=new Range$2(r.startLineNumber,a.startColumn,r.endLineNumber,a.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&t.startColumn===1&&r.startLineNumber===r.endLineNumber){const s=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);s<r.endColumn&&(r=new Range$2(r.startLineNumber,s,r.endLineNumber,r.endColumn),t.startColumn=s)}return r}_createDecorationOption(e){let t,r,s,a,l;switch(e.severity){case MarkerSeverity$2.Hint:this._hasMarkerTag(e,2)?t=void 0:this._hasMarkerTag(e,1)?t="squiggly-unnecessary":t="squiggly-hint",s=0;break;case MarkerSeverity$2.Info:t="squiggly-info",r=themeColorFromId(overviewRulerInfo),s=10,l={color:themeColorFromId(minimapInfo),position:1};break;case MarkerSeverity$2.Warning:t="squiggly-warning",r=themeColorFromId(overviewRulerWarning),s=20,l={color:themeColorFromId(minimapWarning),position:1};break;case MarkerSeverity$2.Error:default:t="squiggly-error",r=themeColorFromId(overviewRulerError),s=30,l={color:themeColorFromId(minimapError),position:1};break}return e.tags&&(e.tags.indexOf(1)!==-1&&(a="squiggly-inline-unnecessary"),e.tags.indexOf(2)!==-1&&(a="squiggly-inline-deprecated")),{description:"marker-decoration",stickiness:1,className:t,showIfCollapsed:!0,overviewRuler:{color:r,position:OverviewRulerLane$1.Right},minimap:l,zIndex:s,inlineClassName:a}}_hasMarkerTag(e,t){return e.tags?e.tags.indexOf(t)>=0:!1}}var __decorate$m=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$h=function(o,e){return function(t,r){e(t,r,o)}},ModelService_1;function MODEL_ID(o){return o.toString()}class ModelData{constructor(e,t,r){this.model=e,this._modelEventListeners=new DisposableStore$1,this.model=e,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(s=>r(e,s)))}dispose(){this._modelEventListeners.dispose()}}const DEFAULT_EOL=isLinux||isMacintosh?1:2;class DisposedModelInfo{constructor(e,t,r,s,a,l,c,d){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=r,this.sharesUndoRedoStack=s,this.heapSize=a,this.sha1=l,this.versionId=c,this.alternativeVersionId=d}}var Wn;let ModelService=(Wn=class extends Disposable$1{constructor(e,t,r,s){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=r,this._instantiationService=s,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(a=>this._updateModelOptions(a))),this._updateModelOptions(void 0)}static _readModelOptions(e,t){var m;let r=EDITOR_MODEL_DEFAULTS.tabSize;e.editor&&typeof e.editor.tabSize<"u"&&(r=clampedInt(e.editor.tabSize,EDITOR_MODEL_DEFAULTS.tabSize,1,100));let s="tabSize";e.editor&&typeof e.editor.indentSize<"u"&&e.editor.indentSize!=="tabSize"&&(s=clampedInt(e.editor.indentSize,"tabSize",1,100));let a=EDITOR_MODEL_DEFAULTS.insertSpaces;e.editor&&typeof e.editor.insertSpaces<"u"&&(a=e.editor.insertSpaces==="false"?!1:!!e.editor.insertSpaces);let l=DEFAULT_EOL;const c=e.eol;c==="\r\n"?l=2:c==="\n"&&(l=1);let d=EDITOR_MODEL_DEFAULTS.trimAutoWhitespace;e.editor&&typeof e.editor.trimAutoWhitespace<"u"&&(d=e.editor.trimAutoWhitespace==="false"?!1:!!e.editor.trimAutoWhitespace);let u=EDITOR_MODEL_DEFAULTS.detectIndentation;e.editor&&typeof e.editor.detectIndentation<"u"&&(u=e.editor.detectIndentation==="false"?!1:!!e.editor.detectIndentation);let g=EDITOR_MODEL_DEFAULTS.largeFileOptimizations;e.editor&&typeof e.editor.largeFileOptimizations<"u"&&(g=e.editor.largeFileOptimizations==="false"?!1:!!e.editor.largeFileOptimizations);let f=EDITOR_MODEL_DEFAULTS.bracketPairColorizationOptions;if((m=e.editor)!=null&&m.bracketPairColorization&&typeof e.editor.bracketPairColorization=="object"){const _=e.editor.bracketPairColorization;f={enabled:!!_.enabled,independentColorPoolPerBracketType:!!_.independentColorPoolPerBracketType}}return{isForSimpleWidget:t,tabSize:r,indentSize:s,insertSpaces:a,detectIndentation:u,defaultEOL:l,trimAutoWhitespace:d,largeFileOptimizations:g,bracketPairColorizationOptions:f}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const r=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return r&&typeof r=="string"&&r!=="auto"?r:OS===3||OS===2?"\n":"\r\n"}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return typeof e=="boolean"?e:!0}getCreationOptions(e,t,r){const s=typeof e=="string"?e:e.languageId;let a=this._modelCreationOptionsByLanguageAndResource[s+t];if(!a){const l=this._configurationService.getValue("editor",{overrideIdentifier:s,resource:t}),c=this._getEOL(t,s);a=ModelService_1._readModelOptions({editor:l,eol:c},r),this._modelCreationOptionsByLanguageAndResource[s+t]=a}return a}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const r=Object.keys(this._models);for(let s=0,a=r.length;s<a;s++){const l=r[s],c=this._models[l],d=c.model.getLanguageId(),u=c.model.uri;if(e&&!e.affectsConfiguration("editor",{overrideIdentifier:d,resource:u})&&!e.affectsConfiguration("files.eol",{overrideIdentifier:d,resource:u}))continue;const g=t[d+u],f=this.getCreationOptions(d,u,c.model.isForSimpleWidget);ModelService_1._setModelOptionsForModel(c.model,f,g)}}static _setModelOptionsForModel(e,t,r){r&&r.defaultEOL!==t.defaultEOL&&e.getLineCount()===1&&e.setEOL(t.defaultEOL===1?0:1),!(r&&r.detectIndentation===t.detectIndentation&&r.insertSpaces===t.insertSpaces&&r.tabSize===t.tabSize&&r.indentSize===t.indentSize&&r.trimAutoWhitespace===t.trimAutoWhitespace&&equals$1(r.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(r=>{r.sharesUndoRedoStack||t.push(r)}),t.sort((r,s)=>r.time-s.time);t.length>0&&this._disposedModelsHeapSize>e;){const r=t.shift();this._removeDisposedModel(r.uri),r.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(r.initialUndoRedoSnapshot)}}}_createModelData(e,t,r,s){const a=this.getCreationOptions(t,r,s),l=this._instantiationService.createInstance(TextModel,e,t,a,r);if(r&&this._disposedModels.has(MODEL_ID(r))){const u=this._removeDisposedModel(r),g=this._undoRedoService.getElements(r),f=this._getSHA1Computer(),m=f.canComputeSHA1(l)?f.computeSHA1(l)===u.sha1:!1;if(m||u.sharesUndoRedoStack){for(const _ of g.past)isEditStackElement(_)&&_.matchesResource(r)&&_.setModel(l);for(const _ of g.future)isEditStackElement(_)&&_.matchesResource(r)&&_.setModel(l);this._undoRedoService.setElementsValidFlag(r,!0,_=>isEditStackElement(_)&&_.matchesResource(r)),m&&(l._overwriteVersionId(u.versionId),l._overwriteAlternativeVersionId(u.alternativeVersionId),l._overwriteInitialUndoRedoSnapshot(u.initialUndoRedoSnapshot))}else u.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(u.initialUndoRedoSnapshot)}const c=MODEL_ID(l.uri);if(this._models[c])throw new Error("ModelService: Cannot add model because it already exists!");const d=new ModelData(l,u=>this._onWillDispose(u),(u,g)=>this._onDidChangeLanguage(u,g));return this._models[c]=d,d}createModel(e,t,r,s=!1){let a;return t?a=this._createModelData(e,t,r,s):a=this._createModelData(e,PLAINTEXT_LANGUAGE_ID,r,s),this._onModelAdded.fire(a.model),a.model}getModels(){const e=[],t=Object.keys(this._models);for(let r=0,s=t.length;r<s;r++){const a=t[r];e.push(this._models[a].model)}return e}getModel(e){const t=MODEL_ID(e),r=this._models[t];return r?r.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),r=this._models[t],s=this._undoRedoService.getUriComparisonKey(e.uri)!==e.uri.toString();let a=!1,l=0;if(s||this._shouldRestoreUndoStack()&&this._schemaShouldMaintainUndoRedoElements(e.uri)){const u=this._undoRedoService.getElements(e.uri);if(u.past.length>0||u.future.length>0){for(const g of u.past)isEditStackElement(g)&&g.matchesResource(e.uri)&&(a=!0,l+=g.heapSize(e.uri),g.setModel(e.uri));for(const g of u.future)isEditStackElement(g)&&g.matchesResource(e.uri)&&(a=!0,l+=g.heapSize(e.uri),g.setModel(e.uri))}}const c=ModelService_1.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,d=this._getSHA1Computer();if(a)if(!s&&(l>c||!d.canComputeSHA1(e))){const u=r.model.getInitialUndoRedoSnapshot();u!==null&&this._undoRedoService.restoreSnapshot(u)}else this._ensureDisposedModelsHeapSize(c-l),this._undoRedoService.setElementsValidFlag(e.uri,!1,u=>isEditStackElement(u)&&u.matchesResource(e.uri)),this._insertDisposedModel(new DisposedModelInfo(e.uri,r.model.getInitialUndoRedoSnapshot(),Date.now(),s,l,d.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!s){const u=r.model.getInitialUndoRedoSnapshot();u!==null&&this._undoRedoService.restoreSnapshot(u)}delete this._models[t],r.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const r=t.oldLanguage,s=e.getLanguageId(),a=this.getCreationOptions(r,e.uri,e.isForSimpleWidget),l=this.getCreationOptions(s,e.uri,e.isForSimpleWidget);ModelService_1._setModelOptionsForModel(e,l,a),this._onModelModeChanged.fire({model:e,oldLanguageId:r})}_getSHA1Computer(){return new DefaultModelSHA1Computer}},ModelService_1=Wn,Wn.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024,Wn);ModelService=ModelService_1=__decorate$m([__param$h(0,IConfigurationService),__param$h(1,ITextResourcePropertiesService),__param$h(2,IUndoRedoService),__param$h(3,IInstantiationService)],ModelService);const $s=class $s{canComputeSHA1(e){return e.getValueLength()<=$s.MAX_MODEL_SIZE}computeSHA1(e){const t=new StringSHA1,r=e.createSnapshot();let s;for(;s=r.read();)t.update(s);return t.digest()}};$s.MAX_MODEL_SIZE=10*1024*1024;let DefaultModelSHA1Computer=$s;var __decorate$l=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$g=function(o,e){return function(t,r){e(t,r,o)}};let QuickAccessController=class extends Disposable$1{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=Registry.as(Extensions.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0,this._register(toDisposable(()=>{var r;for(const s of this.mapProviderToDescriptor.values())isDisposable(s)&&s.dispose();(r=this.visibleQuickAccess)==null||r.picker.dispose()}))}show(e="",t){this.doShowOrPick(e,!1,t)}doShowOrPick(e,t,r){var v,b,C,y;const[s,a]=this.getOrInstantiateProvider(e,r==null?void 0:r.enabledProviderPrefixes),l=this.visibleQuickAccess,c=l==null?void 0:l.descriptor;if(l&&a&&c===a){e!==a.prefix&&!(r!=null&&r.preserveValue)&&(l.picker.value=e),this.adjustValueSelection(l.picker,a,r);return}if(a&&!(r!=null&&r.preserveValue)){let S;if(l&&c&&c!==a){const w=l.value.substr(c.prefix.length);w&&(S="".concat(a.prefix).concat(w))}if(!S){const w=s==null?void 0:s.defaultFilterValue;w===DefaultQuickAccessFilterValue.LAST?S=this.lastAcceptedPickerValues.get(a):typeof w=="string"&&(S="".concat(a.prefix).concat(w))}typeof S=="string"&&(e=S)}const d=(v=l==null?void 0:l.picker)==null?void 0:v.valueSelection,u=(b=l==null?void 0:l.picker)==null?void 0:b.value,g=new DisposableStore$1,f=g.add(this.quickInputService.createQuickPick({useSeparators:!0}));f.value=e,this.adjustValueSelection(f,a,r),f.placeholder=(C=r==null?void 0:r.placeholder)!=null?C:a==null?void 0:a.placeholder,f.quickNavigate=r==null?void 0:r.quickNavigateConfiguration,f.hideInput=!!f.quickNavigate&&!l,(typeof(r==null?void 0:r.itemActivation)=="number"||r!=null&&r.quickNavigateConfiguration)&&(f.itemActivation=(y=r==null?void 0:r.itemActivation)!=null?y:ItemActivation.SECOND),f.contextKey=a==null?void 0:a.contextKey,f.filterValue=S=>S.substring(a?a.prefix.length:0);let m;t&&(m=new DeferredPromise,g.add(Event$1.once(f.onWillAccept)(S=>{S.veto(),f.hide()}))),g.add(this.registerPickerListeners(f,s,a,e,r));const _=g.add(new CancellationTokenSource$1);if(s&&g.add(s.provide(f,_.token,r==null?void 0:r.providerOptions)),Event$1.once(f.onDidHide)(()=>{f.selectedItems.length===0&&_.cancel(),g.dispose(),m==null||m.complete(f.selectedItems.slice(0))}),f.show(),d&&u===e&&(f.valueSelection=d),t)return m==null?void 0:m.p}adjustValueSelection(e,t,r){var a;let s;r!=null&&r.preserveValue?s=[e.value.length,e.value.length]:s=[(a=t==null?void 0:t.prefix.length)!=null?a:0,e.value.length],e.valueSelection=s}registerPickerListeners(e,t,r,s,a){const l=new DisposableStore$1,c=this.visibleQuickAccess={picker:e,descriptor:r,value:s};return l.add(toDisposable(()=>{c===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),l.add(e.onDidChangeValue(d=>{const[u]=this.getOrInstantiateProvider(d,a==null?void 0:a.enabledProviderPrefixes);u!==t?this.show(d,{enabledProviderPrefixes:a==null?void 0:a.enabledProviderPrefixes,preserveValue:!0,providerOptions:a==null?void 0:a.providerOptions}):c.value=d})),r&&l.add(e.onDidAccept(()=>{this.lastAcceptedPickerValues.set(r,e.value)})),l}getOrInstantiateProvider(e,t){const r=this.registry.getQuickAccessProvider(e);if(!r||t&&!(t!=null&&t.includes(r.prefix)))return[void 0,void 0];let s=this.mapProviderToDescriptor.get(r);return s||(s=this.instantiationService.createInstance(r.ctor),this.mapProviderToDescriptor.set(r,s)),[s,r]}};QuickAccessController=__decorate$l([__param$g(0,IQuickInputService),__param$g(1,IInstantiationService)],QuickAccessController);var __decorate$k=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a};class LinkedText{constructor(e){this.nodes=e}toString(){return this.nodes.map(e=>typeof e=="string"?e:e.label).join("")}}__decorate$k([memoize],LinkedText.prototype,"toString",null);const LINK_REGEX=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function parseLinkedText(o){const e=[];let t=0,r;for(;r=LINK_REGEX.exec(o);){r.index-t>0&&e.push(o.substring(t,r.index));const[,s,a,,l]=r;l?e.push({label:s,href:a,title:l}):e.push({label:s,href:a}),t=r.index+r[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(".".concat(e,", .hc-light .").concat(e),"background-image: ".concat(asCSSUrl(o.light||o.dark))),createCSSRule(".vs-dark .".concat(e,", .hc-black .").concat(e),"background-image: ".concat(asCSSUrl(o.dark))),iconPathToClass[t]=e),e}function quickInputButtonToAction(o,e,t){let r=o.iconClass||getIconClass(o.iconPath);return o.alwaysVisible&&(r=r?"".concat(r," always-visible"):"always-visible"),{id:e,label:"",tooltip:o.tooltip||"",class:r,enabled:!0,run:t}}function renderQuickInputDescription(o,e,t){reset(e);const r=parseLinkedText(o);let s=0;for(const a of r.nodes)if(typeof a=="string")e.append(...renderLabelWithIcons(a));else{let l=a.title;!l&&a.href.startsWith("command:")?l=localize(1771,"Click to execute command '{0}'",a.href.substring(8)):l||(l=a.href);const c=$$m("a",{href:a.href,title:l,tabIndex:s++},a.label);c.style.textDecoration="underline";const d=_=>{isEventLike(_)&&EventHelper$1.stop(_,!0),t.callback(a.href)},u=t.disposables.add(new DomEmitter(c,EventType$1.CLICK)).event,g=t.disposables.add(new DomEmitter(c,EventType$1.KEY_DOWN)).event,f=Event$1.chain(g,_=>_.filter(v=>{const b=new StandardKeyboardEvent(v);return b.equals(10)||b.equals(3)}));t.disposables.add(Gesture.addTarget(c));const m=t.disposables.add(new DomEmitter(c,EventType.Tap)).event;Event$1.any(u,m,f)(d,null,t.disposables),e.appendChild(c)}}var __decorate$j=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$f=function(o,e){return function(t,r){e(t,r,o)}};const inQuickInputContextKeyValue="inQuickInput",InQuickInputContextKey=new RawContextKey(inQuickInputContextKeyValue,!1,localize(1748,"Whether keyboard focus is inside the quick input control")),inQuickInputContext=ContextKeyExpr.has(inQuickInputContextKeyValue),quickInputAlignmentContextKeyValue="quickInputAlignment",QuickInputAlignmentContextKey=new RawContextKey(quickInputAlignmentContextKeyValue,"top",localize(1749,"The alignment of the quick input")),quickInputTypeContextKeyValue="quickInputType",QuickInputTypeContextKey=new RawContextKey(quickInputTypeContextKeyValue,void 0,localize(1750,"The type of the currently visible quick input")),endOfQuickInputBoxContextKeyValue="cursorAtEndOfQuickInputBox",EndOfQuickInputBoxContextKey=new RawContextKey(endOfQuickInputBoxContextKeyValue,!1,localize(1751,"Whether the cursor in the quick input is at the end of the input box")),endOfQuickInputBoxContext=ContextKeyExpr.has(endOfQuickInputBoxContextKeyValue),backButton={iconClass:ThemeIcon.asClassName(Codicon.quickInputBack),tooltip:localize(1752,"Back")},Fs=class Fs extends Disposable$1{constructor(e){super(),this.ui=e,this._visible=observableValue("visible",!1),this._widgetUpdated=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._leftButtons=[],this._rightButtons=[],this._inlineButtons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=Fs.noPromptMessage,this._severity=Severity$1$1.Ignore,this.onDidTriggerButtonEmitter=this._register(new Emitter$1),this.onDidHideEmitter=this._register(new Emitter$1),this.onWillHideEmitter=this._register(new Emitter$1),this.onDisposeEmitter=this._register(new Emitter$1),this.visibleDisposables=this._register(new DisposableStore$1),this.onDidHide=this.onDidHideEmitter.event}get visible(){return this._visible.get()}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 titleButtons(){return this._leftButtons.length?[...this._leftButtons,this._rightButtons]:this._rightButtons}get buttons(){return[...this._leftButtons,...this._rightButtons,...this._inlineButtons]}set buttons(e){this._leftButtons=e.filter(t=>t===backButton),this._rightButtons=e.filter(t=>t!==backButton&&t.location!==QuickInputButtonLocation.Inline),this._inlineButtons=e.filter(t=>t.location===QuickInputButtonLocation.Inline),this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(e){this._toggles=e!=null?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.set(!0,void 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.set(!1,void 0),this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}willHide(e=QuickInputHideReason.Other){this.onWillHideEmitter.fire({reason:e})}update(){var s,a;if(!this.visible)return;const e=this.getTitle();e&&this.ui.title.textContent!==e?this.ui.title.textContent=e:!e&&this.ui.title.innerHTML!=="&nbsp;"&&(this.ui.title.innerText=" ");const t=this.getDescription();if(this.ui.description1.textContent!==t&&(this.ui.description1.textContent=t),this.ui.description2.textContent!==t&&(this.ui.description2.textContent=t),this._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(),this.ui.progressBar.getContainer().removeAttribute("aria-hidden"))},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.ui.progressBar.getContainer().setAttribute("aria-hidden","true"),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const l=this._leftButtons.map((u,g)=>quickInputButtonToAction(u,"id-".concat(g),async()=>this.onDidTriggerButtonEmitter.fire(u)));this.ui.leftActionBar.push(l,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const c=this._rightButtons.map((u,g)=>quickInputButtonToAction(u,"id-".concat(g),async()=>this.onDidTriggerButtonEmitter.fire(u)));this.ui.rightActionBar.push(c,{icon:!0,label:!1}),this.ui.inlineActionBar.clear();const d=this._inlineButtons.map((u,g)=>quickInputButtonToAction(u,"id-".concat(g),async()=>this.onDidTriggerButtonEmitter.fire(u)));this.ui.inlineActionBar.push(d,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const l=(a=(s=this.toggles)==null?void 0:s.filter(d=>d instanceof Toggle))!=null?a:[];this.ui.inputBox.toggles=l;const c=l.length*22;this.ui.countContainer.style.right=c>0?"".concat(4+c,"px"):"4px",this.ui.visibleCountContainer.style.right=c>0?"".concat(4+c,"px"):"4px"}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),r&&renderQuickInputDescription(r,this.ui.message,{callback:l=>{this.ui.linkOpenerDelegate(l)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?"".concat(this.title," (").concat(this.getSteps(),")"):this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?localize(1754,"{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==Severity$1$1.Ignore){const t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?"".concat(t.foreground):"",this.ui.message.style.backgroundColor=t.background?"".concat(t.background):"",this.ui.message.style.border=t.border?"1px solid ".concat(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()}};Fs.noPromptMessage=localize(1753,"Press 'Enter' to confirm your input or 'Escape' to cancel");let QuickInput=Fs;const Bs=class Bs extends QuickInput{constructor(e){super(e),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._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._focusEventBufferer=new EventBufferer,this.type="quickPick",this.filterValue=t=>t,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,this.noValidationMessage=void 0}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 prompt(){return this.noValidationMessage}set prompt(e){this.noValidationMessage=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 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}get valueSelection(){const e=this.ui.inputBox.getSelection();if(e)return[e.start,e.end]}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 okLabel(){var e;return(e=this._okLabel)!=null?e:localize(1756,"OK")}set okLabel(e){this._okLabel=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(QuickPickFocus.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{this.doSetValue(e,!0)})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this._focusEventBufferer.wrapEvent(this.ui.list.onDidChangeFocus,(e,t)=>t)(e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&equals$2(e,this._activeItems,(t,r)=>t===r)||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:e,event:t})=>{if(this.canSelectMany&&!e.some(r=>r.pickable===!1)){e.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&equals$2(e,this._selectedItems,(r,s)=>r===s)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e),e.length&&this.handleAccept(isMouseEvent$1(t)&&t.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e=>{!this.canSelectMany||!this.visible||this.selectedItemsToConfirm!==this._selectedItems&&equals$2(e,this._selectedItems,(t,r)=>t===r)||(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),r=t.keyCode;this._quickNavigate.keybindings.some(l=>{const c=l.getChords();return c.length>1?!1:c[0].shiftKey&&r===4?!(t.ctrlKey||t.altKey||t.metaKey):!!(c[0].altKey&&r===6||c[0].ctrlKey&&r===5||c[0].metaKey&&r===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,r={title:!!this.title||!!this.step||!!this.titleButtons.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||!!this.prompt,customButton:this.customButton};this.ui.setVisibilities(r),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let s=this.ariaLabel;!s&&r.inputBox&&(s=this.placeholder,this.title&&(s=s?"".concat(s," - ").concat(this.title):this.title),s||(s=Bs.DEFAULT_ARIA_LABEL)),this.ui.list.ariaLabel!==s&&(this.ui.list.ariaLabel=s!=null?s:null),this.ui.inputBox.ariaLabel!==s&&(this.ui.inputBox.ariaLabel=s!=null?s:"input"),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated&&(this.itemsUpdated=!1,this._focusEventBufferer.bufferEvents(()=>{switch(this.ui.list.setElements(this.items),this.ui.list.shouldLoop=!this.canSelectMany,this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this._itemActivation){case ItemActivation.NONE:this._itemActivation=ItemActivation.FIRST;break;case ItemActivation.SECOND:this.ui.list.focus(QuickPickFocus.Second),this._itemActivation=ItemActivation.FIRST;break;case ItemActivation.LAST:this.ui.list.focus(QuickPickFocus.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.ok.label=this.okLabel||"",this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",r.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(QuickPickFocus.First)),this.keepScrollPosition&&(this.scrollTop=e)}focus(e){this.ui.list.focus(e),this.canSelectMany&&this.ui.list.domFocus()}accept(e){e&&!this._canAcceptInBackground||(this.activeItems[0]&&!this._canSelectMany&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(e!=null?e:!1))}};Bs.DEFAULT_ARIA_LABEL=localize(1755,"Type to narrow down results.");let QuickPick=Bs;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.type="inputBox",this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(e){this._value=e||"",this.update()}get valueSelection(){const e=this.ui.inputBox.getSelection();if(e)return[e.start,e.end]}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.update()}get password(){return this._password}set password(e){this._password=e,this.update()}get prompt(){return this._prompt}set prompt(e){this._prompt=e,this.noValidationMessage=e?localize(1757,"{0} (Press 'Enter' to confirm or 'Escape' to cancel)",e):QuickInput.noPromptMessage,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()}accept(){this.onDidAcceptEmitter.fire()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const e={title:!!this.title||!!this.step||!!this.titleButtons.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);let t=this.ariaLabel;!t&&e.inputBox&&(t=this.placeholder?this.title?"".concat(this.placeholder," - ").concat(this.title):this.placeholder:this.title?this.title:"input"),this.ui.inputBox.ariaLabel!==t&&(this.ui.inputBox.ariaLabel=t||"input")}}let QuickInputHoverDelegate=class extends WorkbenchHoverDelegate{constructor(e,t){super("mouse",void 0,r=>this.getOverrideOptions(r),e,t)}getOverrideOptions(e){var r;const t=(isHTMLElement(e.content)?(r=e.content.textContent)!=null?r:"":typeof e.content=="string"?e.content:e.content.value).includes("\n");return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:t,skipFadeInAnimation:!0}}}};QuickInputHoverDelegate=__decorate$j([__param$f(0,IConfigurationService),__param$f(1,IHoverService)],QuickInputHoverDelegate);const CSS_DONE="done",CSS_ACTIVE="active",CSS_INFINITE="infinite",CSS_INFINITE_LONG_RUNNING="infinite-long-running",CSS_DISCRETE="discrete",zs=class zs extends Disposable$1{constructor(e,t){super(),this.progressSignal=this._register(new MutableDisposable),this.workedVal=0,this.showDelayedScheduler=this._register(new RunOnceScheduler(()=>show(this.element),0)),this.longRunningScheduler=this._register(new RunOnceScheduler(()=>this.infiniteLongRunning(),zs.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(),this.progressSignal.clear()}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}};zs.LONG_RUNNING_INFINITE_THRESHOLD=1e4;let ProgressBar=zs;const $$5=$$m;class QuickInputBox extends Disposable$1{constructor(e,t,r){super(),this.parent=e,this.onDidChange=a=>this.findInput.onDidChange(a),this.container=append$2(this.parent,$$5(".quick-input-box")),this.findInput=this._register(new FindInput(this.container,void 0,{label:"",inputBoxStyles:t,toggleStyles:r}));const s=this.findInput.inputBox.inputElement;s.role="textbox",s.ariaHasPopup="menu",s.ariaAutoComplete="list"}get onKeyDown(){return this.findInput.onKeyDown}get value(){return this.findInput.getValue()}set value(e){this.findInput.setValue(e)}select(e=null){this.findInput.inputBox.select(e)}getSelection(){return this.findInput.inputBox.getSelection()}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)}get ariaLabel(){return this.findInput.inputBox.inputElement.getAttribute("aria-label")||""}set ariaLabel(e){this.findInput.inputBox.inputElement.setAttribute("aria-label",e)}hasFocus(){return this.findInput.inputBox.hasFocus()}setAttribute(e,t){this.findInput.inputBox.inputElement.setAttribute(e,t)}removeAttribute(e){this.findInput.inputBox.inputElement.removeAttribute(e)}showDecoration(e){e===Severity$1$1.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:e===Severity$1$1.Info?1:e===Severity$1$1.Warning?2:3,content:""})}stylesForType(e){return this.findInput.inputBox.stylesForType(e===Severity$1$1.Info?1:e===Severity$1$1.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}const intlFileNameCollatorBaseNumeric=new Lazy(()=>{const o=safeIntl.Collator(void 0,{numeric:!0,sensitivity:"base"}).value;return{collator:o,collatorIsNumeric:o.resolvedOptions().numeric}});new Lazy(()=>({collator:safeIntl.Collator(void 0,{numeric:!0}).value}));new Lazy(()=>({collator:safeIntl.Collator(void 0,{numeric:!0,sensitivity:"accent"}).value}));function compareFileNames(o,e,t=!1){const r=o||"",s=e||"",a=intlFileNameCollatorBaseNumeric.value.collator.compare(r,s);return intlFileNameCollatorBaseNumeric.value.collatorIsNumeric&&a===0&&r!==s?r<s?-1:1:a}function compareAnything(o,e,t){const r=o.toLowerCase(),s=e.toLowerCase(),a=compareByPrefix(o,e,t);if(a)return a;const l=r.endsWith(t),c=s.endsWith(t);if(l!==c)return l?-1:1;const d=compareFileNames(r,s);return d!==0?d:r.localeCompare(s)}function compareByPrefix(o,e,t){const r=o.toLowerCase(),s=e.toLowerCase(),a=r.startsWith(t),l=s.startsWith(t);if(a!==l)return a?-1:1;if(a&&l){if(r.length<s.length)return-1;if(r.length>s.length)return 1}return 0}var __decorate$i=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$e=function(o,e){return function(t,r){e(t,r,o)}},QuickPickItemElementRenderer_1;const $$4=$$m;class BaseQuickPickItemElement{constructor(e,t,r){this.index=e,this.hasCheckbox=t,this._hidden=!1,this._init=new Lazy(()=>{var c;const s=(c=r.label)!=null?c:"",a=parseLabelWithIcons(s).text.trim(),l=r.ariaLabel||[s,this.saneDescription,this.saneDetail].map(d=>getCodiconAriaLabel(d)).filter(d=>!!d).join(", ");return{saneLabel:s,saneSortLabel:a,saneAriaLabel:l}}),this._saneDescription=r.description,this._saneTooltip=r.tooltip}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(e){this._element=e}get hidden(){return this._hidden}set hidden(e){this._hidden=e}get saneDescription(){return this._saneDescription}set saneDescription(e){this._saneDescription=e}get saneDetail(){return this._saneDetail}set saneDetail(e){this._saneDetail=e}get saneTooltip(){return this._saneTooltip}set saneTooltip(e){this._saneTooltip=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 QuickPickItemElement extends BaseQuickPickItemElement{constructor(e,t,r,s,a,l,c){var d,u,g;super(e,r,l),this.childIndex=t,this.fireButtonTriggered=s,this._onChecked=a,this.item=l,this._separator=c,this._checked=!1,this.onChecked=r?Event$1.map(Event$1.filter(this._onChecked.event,f=>f.element===this),f=>f.checked):Event$1.None,this._saneDetail=l.detail,this._labelHighlights=(d=l.highlights)==null?void 0:d.label,this._descriptionHighlights=(u=l.highlights)==null?void 0:u.description,this._detailHighlights=(g=l.highlights)==null?void 0:g.detail}get separator(){return this._separator}set separator(e){this._separator=e}get checked(){return this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire({element:this,checked:e}))}get checkboxDisabled(){return!!this.item.disabled}}var QuickPickSeparatorFocusReason;(function(o){o[o.NONE=0]="NONE",o[o.MOUSE_HOVER=1]="MOUSE_HOVER",o[o.ACTIVE_ITEM=2]="ACTIVE_ITEM"})(QuickPickSeparatorFocusReason||(QuickPickSeparatorFocusReason={}));class QuickPickSeparatorElement extends BaseQuickPickItemElement{constructor(e,t,r){super(e,!1,r),this.fireSeparatorButtonTriggered=t,this.separator=r,this.children=new Array,this.focusInsideSeparator=QuickPickSeparatorFocusReason.NONE}}class QuickInputItemDelegate{getHeight(e){return e instanceof QuickPickSeparatorElement?30:e.saneDetail?44:22}getTemplateId(e){return e instanceof QuickPickItemElement?QuickPickItemElementRenderer.ID:QuickPickSeparatorElementRenderer.ID}}class QuickInputAccessibilityProvider{getWidgetAriaLabel(){return localize(1770,"Quick Input")}getAriaLabel(e){var t;return(t=e.separator)!=null&&t.label?"".concat(e.saneAriaLabel,", ").concat(e.separator.label):e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(e){return e.hasCheckbox?"checkbox":"option"}isChecked(e){if(!(!e.hasCheckbox||!(e instanceof QuickPickItemElement)))return{get value(){return e.checked},onDidChange:t=>e.onChecked(()=>t())}}}class BaseQuickInputListRenderer{constructor(e){this.hoverDelegate=e}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=new DisposableStore$1,t.toDisposeTemplate=new DisposableStore$1,t.entry=append$2(e,$$4(".quick-input-list-entry"));const r=append$2(t.entry,$$4("label.quick-input-list-label"));t.outerLabel=r,t.checkbox=t.toDisposeTemplate.add(new MutableDisposable),t.toDisposeTemplate.add(addStandardDisposableListener(r,EventType$1.CLICK,u=>{if(t.checkbox.value&&!u.defaultPrevented&&t.checkbox.value.enabled){const g=!t.checkbox.value.checked;t.checkbox.value.checked=g,t.element.checked=g}}));const s=append$2(r,$$4(".quick-input-list-rows")),a=append$2(s,$$4(".quick-input-list-row")),l=append$2(s,$$4(".quick-input-list-row"));t.label=new IconLabel(a,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.label),t.icon=prepend$2(t.label.element,$$4(".quick-input-list-icon"));const c=append$2(a,$$4(".quick-input-list-entry-keybinding"));t.keybinding=new KeybindingLabel(c,OS),t.toDisposeTemplate.add(t.keybinding);const d=append$2(l,$$4(".quick-input-list-label-meta"));return t.detail=new IconLabel(d,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.add(t.detail),t.separator=append$2(t.entry,$$4(".quick-input-list-separator")),t.actionBar=new ActionBar(t.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.add(t.actionBar),t}disposeTemplate(e){e.toDisposeElement.dispose(),e.toDisposeTemplate.dispose()}disposeElement(e,t,r){r.toDisposeElement.clear(),r.actionBar.clear()}}var Un;let QuickPickItemElementRenderer=(Un=class extends BaseQuickInputListRenderer{constructor(e,t){super(e),this.themeService=t,this._itemsWithSeparatorsFrequency=new Map}get templateId(){return QuickPickItemElementRenderer_1.ID}ensureCheckbox(e,t){var s;if(!e.hasCheckbox){(s=t.checkbox.value)==null||s.domNode.remove(),t.checkbox.clear();return}let r=t.checkbox.value;r?r.setTitle(e.saneLabel):(r=new Checkbox(e.saneLabel,e.checked,{...defaultCheckboxStyles,size:15}),t.checkbox.value=r,t.outerLabel.prepend(r.domNode)),e.checkboxDisabled?r.disable():r.enable(),r.checked=e.checked,t.toDisposeElement.add(e.onChecked(a=>r.checked=a)),t.toDisposeElement.add(r.onChange(()=>e.checked=r.checked))}renderElement(e,t,r){var m,_,v;const s=e.element;r.element=s,s.element=(m=r.entry)!=null?m:void 0;const a=s.item;s.element.classList.toggle("not-pickable",s.item.pickable===!1),this.ensureCheckbox(s,r);const{labelHighlights:l,descriptionHighlights:c,detailHighlights:d}=s;if(a.iconPath){const b=isDark(this.themeService.getColorTheme().type)?a.iconPath.dark:(_=a.iconPath.light)!=null?_:a.iconPath.dark,C=URI.revive(b);r.icon.className="quick-input-list-icon",r.icon.style.backgroundImage=asCSSUrl(C)}else r.icon.style.backgroundImage="",r.icon.className=a.iconClass?"quick-input-list-icon ".concat(a.iconClass):"";let u;!s.saneTooltip&&s.saneDescription&&(u={markdown:{value:escape$2(s.saneDescription),supportThemeIcons:!0},markdownNotSupportedFallback:s.saneDescription});const g={matches:l||[],descriptionTitle:u,descriptionMatches:c||[],labelEscapeNewLines:!0};if(g.extraClasses=a.iconClasses,g.italic=a.italic,g.strikethrough=a.strikethrough,r.entry.classList.remove("quick-input-list-separator-as-item"),r.label.setLabel(s.saneLabel,s.saneDescription,g),r.keybinding.set(a.keybinding),s.saneDetail){let b;s.saneTooltip||(b={markdown:{value:escape$2(s.saneDetail),supportThemeIcons:!0},markdownNotSupportedFallback:s.saneDetail}),r.detail.element.style.display="",r.detail.setLabel(s.saneDetail,void 0,{matches:d,title:b,labelEscapeNewLines:!0})}else r.detail.element.style.display="none";(v=s.separator)!=null&&v.label?(r.separator.textContent=s.separator.label,r.separator.style.display="",this.addItemWithSeparator(s)):r.separator.style.display="none",r.entry.classList.toggle("quick-input-list-separator-border",!!s.separator&&s.childIndex!==0);const f=a.buttons;f&&f.length?(r.actionBar.push(f.map((b,C)=>quickInputButtonToAction(b,"id-".concat(C),()=>s.fireButtonTriggered({button:b,item:s.item}))),{icon:!0,label:!1}),r.entry.classList.add("has-actions")):r.entry.classList.remove("has-actions")}disposeElement(e,t,r){this.removeItemWithSeparator(e.element),super.disposeElement(e,t,r)}isItemWithSeparatorVisible(e){return this._itemsWithSeparatorsFrequency.has(e)}addItemWithSeparator(e){this._itemsWithSeparatorsFrequency.set(e,(this._itemsWithSeparatorsFrequency.get(e)||0)+1)}removeItemWithSeparator(e){const t=this._itemsWithSeparatorsFrequency.get(e)||0;t>1?this._itemsWithSeparatorsFrequency.set(e,t-1):this._itemsWithSeparatorsFrequency.delete(e)}},QuickPickItemElementRenderer_1=Un,Un.ID="quickpickitem",Un);QuickPickItemElementRenderer=QuickPickItemElementRenderer_1=__decorate$i([__param$e(1,IThemeService)],QuickPickItemElementRenderer);const Hs=class Hs extends BaseQuickInputListRenderer{constructor(){super(...arguments),this._visibleSeparatorsFrequency=new Map}get templateId(){return Hs.ID}get visibleSeparators(){return[...this._visibleSeparatorsFrequency.keys()]}isSeparatorVisible(e){return this._visibleSeparatorsFrequency.has(e)}renderElement(e,t,r){var f;const s=e.element;r.element=s,s.element=(f=r.entry)!=null?f:void 0,s.element.classList.toggle("focus-inside",!!s.focusInsideSeparator);const a=s.separator,{labelHighlights:l,descriptionHighlights:c}=s;r.icon.style.backgroundImage="",r.icon.className="";let d;!s.saneTooltip&&s.saneDescription&&(d={markdown:{value:escape$2(s.saneDescription),supportThemeIcons:!0},markdownNotSupportedFallback:s.saneDescription});const u={matches:l||[],descriptionTitle:d,descriptionMatches:c||[],labelEscapeNewLines:!0};r.entry.classList.add("quick-input-list-separator-as-item"),r.label.setLabel(s.saneLabel,s.saneDescription,u),r.separator.style.display="none",r.entry.classList.add("quick-input-list-separator-border");const g=a.buttons;g&&g.length?(r.actionBar.push(g.map((m,_)=>quickInputButtonToAction(m,"id-".concat(_),()=>s.fireSeparatorButtonTriggered({button:m,separator:s.separator}))),{icon:!0,label:!1}),r.entry.classList.add("has-actions")):r.entry.classList.remove("has-actions"),this.addSeparator(s)}disposeElement(e,t,r){var s;this.removeSeparator(e.element),this.isSeparatorVisible(e.element)||(s=e.element.element)==null||s.classList.remove("focus-inside"),super.disposeElement(e,t,r)}addSeparator(e){this._visibleSeparatorsFrequency.set(e,(this._visibleSeparatorsFrequency.get(e)||0)+1)}removeSeparator(e){const t=this._visibleSeparatorsFrequency.get(e)||0;t>1?this._visibleSeparatorsFrequency.set(e,t-1):this._visibleSeparatorsFrequency.delete(e)}};Hs.ID="quickpickseparator";let QuickPickSeparatorElementRenderer=Hs,QuickInputList=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this.parent=e,this.hoverDelegate=t,this.linkOpenerDelegate=r,this.accessibilityService=l,this._onKeyDown=new Emitter$1,this._onLeave=new Emitter$1,this.onLeave=this._onLeave.event,this._visibleCountObservable=observableValue("VisibleCount",0),this.onChangedVisibleCount=Event$1.fromObservable(this._visibleCountObservable,this._store),this._allVisibleCheckedObservable=observableValue("AllVisibleChecked",!1),this.onChangedAllVisibleChecked=Event$1.fromObservable(this._allVisibleCheckedObservable,this._store),this._checkedCountObservable=observableValue("CheckedCount",0),this.onChangedCheckedCount=Event$1.fromObservable(this._checkedCountObservable,this._store),this._checkedElementsObservable=observableValueOpts({equalsFn:equals$2},new Array),this.onChangedCheckedElements=Event$1.fromObservable(this._checkedElementsObservable,this._store),this._onButtonTriggered=new Emitter$1,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new Emitter$1,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._elementChecked=new Emitter$1,this._elementCheckedEventBufferer=new EventBufferer,this._hasCheckboxes=!1,this._inputElements=new Array,this._elementTree=new Array,this._itemElements=new Array,this._elementDisposable=this._register(new DisposableStore$1),this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._shouldLoop=!0,this._container=append$2(this.parent,$$4(".quick-input-list")),this._separatorRenderer=new QuickPickSeparatorElementRenderer(t),this._itemRenderer=a.createInstance(QuickPickItemElementRenderer,t),this._tree=this._register(a.createInstance(WorkbenchObjectTree,"QuickInput",this._container,new QuickInputItemDelegate,[this._itemRenderer,this._separatorRenderer],{filter:{filter(c){return c.hidden?0:c instanceof QuickPickSeparatorElement?2:1}},sorter:{compare:(c,d)=>{if(!this.sortByLabel||!this._lastQueryString)return 0;const u=this._lastQueryString.toLowerCase();return compareEntries(c,d,u)}},accessibilityProvider:new QuickInputAccessibilityProvider,setRowLineHeight:!1,multipleSelectionSupport:!1,hideTwistiesOfChildlessElements:!0,renderIndentGuides:RenderIndentGuides.None,findWidgetEnabled:!1,indent:0,horizontalScrolling:!1,allowNonCollapsibleParents:!0,alwaysConsumeMouseWheel:!0})),this._tree.getHTMLElement().id=s,this._registerListeners()}get onDidChangeFocus(){return Event$1.map(this._tree.onDidChangeFocus,e=>e.elements.filter(t=>t instanceof QuickPickItemElement).map(t=>t.item),this._store)}get onDidChangeSelection(){return Event$1.map(this._tree.onDidChangeSelection,e=>({items:e.elements.filter(t=>t instanceof QuickPickItemElement).map(t=>t.item),event:e.browserEvent}),this._store)}get displayed(){return this._container.style.display!=="none"}set displayed(e){this._container.style.display=e?"":"none"}get scrollTop(){return this._tree.scrollTop}set scrollTop(e){this._tree.scrollTop=e}get ariaLabel(){return this._tree.ariaLabel}set ariaLabel(e){this._tree.ariaLabel=e!=null?e:""}set enabled(e){this._tree.getHTMLElement().style.pointerEvents=e?"":"none"}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e}get shouldLoop(){return this._shouldLoop}set shouldLoop(e){this._shouldLoop=e}_registerListeners(){this._registerOnKeyDown(),this._registerOnContainerClick(),this._registerOnMouseMiddleClick(),this._registerOnTreeModelChanged(),this._registerOnElementChecked(),this._registerOnContextMenu(),this._registerHoverListeners(),this._registerSelectionChangeListener(),this._registerSeparatorActionShowingListeners()}_registerOnKeyDown(){this._register(this._tree.onKeyDown(e=>{const t=new StandardKeyboardEvent(e);switch(t.keyCode){case 10:this.toggleCheckbox();break}this._onKeyDown.fire(t)}))}_registerOnContainerClick(){this._register(addDisposableListener(this._container,EventType$1.CLICK,e=>{(e.x||e.y)&&this._onLeave.fire()}))}_registerOnMouseMiddleClick(){this._register(addDisposableListener(this._container,EventType$1.AUXCLICK,e=>{e.button===1&&this._onLeave.fire()}))}_registerOnTreeModelChanged(){this._register(this._tree.onDidChangeModel(()=>{const e=this._itemElements.filter(t=>!t.hidden).length;this._visibleCountObservable.set(e,void 0),this._hasCheckboxes&&this._updateCheckedObservables()}))}_registerOnElementChecked(){this._register(this._elementCheckedEventBufferer.wrapEvent(this._elementChecked.event,(e,t)=>t)(e=>this._updateCheckedObservables()))}_registerOnContextMenu(){this._register(this._tree.onContextMenu(e=>{e.element&&(e.browserEvent.preventDefault(),this._tree.setSelection([e.element]))}))}_registerHoverListeners(){const e=this._register(new ThrottledDelayer(typeof this.hoverDelegate.delay=="function"?this.hoverDelegate.delay():this.hoverDelegate.delay));this._register(this._tree.onMouseOver(async t=>{var r;if(isHTMLAnchorElement(t.browserEvent.target)){e.cancel();return}if(!(!isHTMLAnchorElement(t.browserEvent.relatedTarget)&&isAncestor$1(t.browserEvent.relatedTarget,(r=t.element)==null?void 0:r.element)))try{await e.trigger(async()=>{t.element instanceof QuickPickItemElement&&this.showHover(t.element)})}catch(s){if(!isCancellationError(s))throw s}})),this._register(this._tree.onMouseOut(t=>{var r;isAncestor$1(t.browserEvent.relatedTarget,(r=t.element)==null?void 0:r.element)||e.cancel()}))}_registerSeparatorActionShowingListeners(){this._register(this._tree.onDidChangeFocus(e=>{const t=e.elements[0]?this._tree.getParentElement(e.elements[0]):null;for(const r of this._separatorRenderer.visibleSeparators){const s=r===t;!!(r.focusInsideSeparator&QuickPickSeparatorFocusReason.ACTIVE_ITEM)!==s&&(s?r.focusInsideSeparator|=QuickPickSeparatorFocusReason.ACTIVE_ITEM:r.focusInsideSeparator&=~QuickPickSeparatorFocusReason.ACTIVE_ITEM,this._tree.rerender(r))}})),this._register(this._tree.onMouseOver(e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const r of this._separatorRenderer.visibleSeparators){if(r!==t)continue;!!(r.focusInsideSeparator&QuickPickSeparatorFocusReason.MOUSE_HOVER)||(r.focusInsideSeparator|=QuickPickSeparatorFocusReason.MOUSE_HOVER,this._tree.rerender(r))}})),this._register(this._tree.onMouseOut(e=>{const t=e.element?this._tree.getParentElement(e.element):null;for(const r of this._separatorRenderer.visibleSeparators){if(r!==t)continue;!!(r.focusInsideSeparator&QuickPickSeparatorFocusReason.MOUSE_HOVER)&&(r.focusInsideSeparator&=~QuickPickSeparatorFocusReason.MOUSE_HOVER,this._tree.rerender(r))}}))}_registerSelectionChangeListener(){this._register(this._tree.onDidChangeSelection(e=>{const t=e.elements.filter(r=>r instanceof QuickPickItemElement);t.length!==e.elements.length&&(e.elements.length===1&&e.elements[0]instanceof QuickPickSeparatorElement&&(this._tree.setFocus([e.elements[0].children[0]]),this._tree.reveal(e.elements[0],0)),this._tree.setSelection(t))}))}setAllVisibleChecked(e){this._elementCheckedEventBufferer.bufferEvents(()=>{this._itemElements.forEach(t=>{!t.hidden&&!t.checkboxDisabled&&t.item.pickable!==!1&&(t.checked=e)})})}setElements(e){this._elementDisposable.clear(),this._lastQueryString=void 0,this._inputElements=e,this._hasCheckboxes=this.parent.classList.contains("show-checkboxes");let t;this._itemElements=new Array,this._elementTree=e.reduce((r,s,a)=>{let l;if(s.type==="separator"){if(!s.buttons)return r;t=new QuickPickSeparatorElement(a,c=>this._onSeparatorButtonTriggered.fire(c),s),l=t}else{const c=a>0?e[a-1]:void 0;let d;c&&c.type==="separator"&&!c.buttons&&(d=c);const u=new QuickPickItemElement(a,t!=null&&t.children?t.children.length:a,this._hasCheckboxes&&s.pickable!==!1,g=>this._onButtonTriggered.fire(g),this._elementChecked,s,d);if(this._itemElements.push(u),t)return t.children.push(u),r;l=u}return r.push(l),r},new Array),this._setElementsToTree(this._elementTree),this.accessibilityService.isScreenReaderOptimized()&&setTimeout(()=>{const r=this._tree.getHTMLElement().querySelector(".monaco-list-row.focused"),s=r==null?void 0:r.parentNode;if(r&&s){const a=r.nextSibling;r.remove(),s.insertBefore(r,a)}},0)}setFocusedElements(e){const t=e.map(r=>this._itemElements.find(s=>s.item===r)).filter(r=>!!r).filter(r=>!r.hidden);if(this._tree.setFocus(t),e.length>0){const r=this._tree.getFocus()[0];r&&this._tree.reveal(r)}}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){const t=e.map(r=>this._itemElements.find(s=>s.item===r)).filter(r=>!!r);this._tree.setSelection(t)}getCheckedElements(){return this._itemElements.filter(e=>e.checked).map(e=>e.item)}setCheckedElements(e){this._elementCheckedEventBufferer.bufferEvents(()=>{const t=new Set;for(const r of e)t.add(r);for(const r of this._itemElements)r.checked=t.has(r.item)})}focus(e){var t;if(this._itemElements.length)switch(e===QuickPickFocus.Second&&this._itemElements.length<2&&(e=QuickPickFocus.First),e){case QuickPickFocus.First:this._tree.scrollTop=0,this._tree.focusFirst(void 0,r=>r.element instanceof QuickPickItemElement);break;case QuickPickFocus.Second:{this._tree.scrollTop=0;let r=!1;this._tree.focusFirst(void 0,s=>s.element instanceof QuickPickItemElement?r?!0:(r=!r,!1):!1);break}case QuickPickFocus.Last:this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,r=>r.element instanceof QuickPickItemElement);break;case QuickPickFocus.Next:{const r=this._tree.getFocus();this._tree.focusNext(void 0,this._shouldLoop,void 0,a=>a.element instanceof QuickPickItemElement?(this._tree.reveal(a.element),!0):!1);const s=this._tree.getFocus();r.length&&r[0]===s[0]&&this._onLeave.fire();break}case QuickPickFocus.Previous:{const r=this._tree.getFocus();this._tree.focusPrevious(void 0,this._shouldLoop,void 0,a=>{if(!(a.element instanceof QuickPickItemElement))return!1;const l=this._tree.getParentElement(a.element);return l===null||l.children[0]!==a.element?this._tree.reveal(a.element):this._tree.reveal(l),!0});const s=this._tree.getFocus();r.length&&r[0]===s[0]&&this._onLeave.fire();break}case QuickPickFocus.NextPage:this._tree.focusNextPage(void 0,r=>r.element instanceof QuickPickItemElement?(this._tree.reveal(r.element),!0):!1);break;case QuickPickFocus.PreviousPage:this._tree.focusPreviousPage(void 0,r=>{if(!(r.element instanceof QuickPickItemElement))return!1;const s=this._tree.getParentElement(r.element);return s===null||s.children[0]!==r.element?this._tree.reveal(r.element):this._tree.reveal(s),!0});break;case QuickPickFocus.NextSeparator:{let r=!1;const s=this._tree.getFocus()[0];this._tree.focusNext(void 0,!0,void 0,l=>{if(r)return!0;if(l.element instanceof QuickPickSeparatorElement)r=!0,this._separatorRenderer.isSeparatorVisible(l.element)?this._tree.reveal(l.element.children[0]):this._tree.reveal(l.element,0);else if(l.element instanceof QuickPickItemElement){if(l.element.separator)return this._itemRenderer.isItemWithSeparatorVisible(l.element)?this._tree.reveal(l.element):this._tree.reveal(l.element,0),!0;if(l.element===this._elementTree[0])return this._tree.reveal(l.element,0),!0}return!1});const a=this._tree.getFocus()[0];s===a&&(this._tree.scrollTop=this._tree.scrollHeight,this._tree.focusLast(void 0,l=>l.element instanceof QuickPickItemElement));break}case QuickPickFocus.PreviousSeparator:{let r,s=!!((t=this._tree.getFocus()[0])!=null&&t.separator);this._tree.focusPrevious(void 0,!0,void 0,a=>{if(a.element instanceof QuickPickSeparatorElement)s?r||(this._separatorRenderer.isSeparatorVisible(a.element)?this._tree.reveal(a.element):this._tree.reveal(a.element,0),r=a.element.children[0]):s=!0;else if(a.element instanceof QuickPickItemElement&&!r){if(a.element.separator)this._itemRenderer.isItemWithSeparatorVisible(a.element)?this._tree.reveal(a.element):this._tree.reveal(a.element,0),r=a.element;else if(a.element===this._elementTree[0])return this._tree.reveal(a.element,0),!0}return!1}),r&&this._tree.setFocus([r]);break}}}clearFocus(){this._tree.setFocus([])}domFocus(){this._tree.domFocus()}layout(e){this._tree.getHTMLElement().style.maxHeight=e?"".concat(Math.floor(e/44)*44+6,"px"):"",this._tree.layout()}filter(e){if(this._lastQueryString=e,!(this._sortByLabel||this._matchOnLabel||this._matchOnDescription||this._matchOnDetail))return this._tree.layout(),!1;const t=e;if(e=e.trim(),!e||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this._itemElements.forEach(r=>{r.labelHighlights=void 0,r.descriptionHighlights=void 0,r.detailHighlights=void 0,r.hidden=!1;const s=r.index&&this._inputElements[r.index-1];r.item&&(r.separator=s&&s.type==="separator"&&!s.buttons?s:void 0)});else{let r;this._itemElements.forEach(s=>{var d,u,g,f;let a;this.matchOnLabelMode==="fuzzy"?a=this.matchOnLabel&&(d=matchesFuzzyIconAware(e,parseLabelWithIcons(s.saneLabel)))!=null?d:void 0:a=this.matchOnLabel&&(u=matchesContiguousIconAware(t,parseLabelWithIcons(s.saneLabel)))!=null?u:void 0;const l=this.matchOnDescription&&(g=matchesFuzzyIconAware(e,parseLabelWithIcons(s.saneDescription||"")))!=null?g:void 0,c=this.matchOnDetail&&(f=matchesFuzzyIconAware(e,parseLabelWithIcons(s.saneDetail||"")))!=null?f:void 0;if(a||l||c?(s.labelHighlights=a,s.descriptionHighlights=l,s.detailHighlights=c,s.hidden=!1):(s.labelHighlights=void 0,s.descriptionHighlights=void 0,s.detailHighlights=void 0,s.hidden=s.item?!s.item.alwaysShow:!0),s.item?s.separator=void 0:s.separator&&(s.hidden=!0),!this.sortByLabel){const m=s.index&&this._inputElements[s.index-1]||void 0;(m==null?void 0:m.type)==="separator"&&!m.buttons&&(r=m),r&&!s.hidden&&(s.separator=r,r=void 0)}})}return this._setElementsToTree(this._sortByLabel&&e?this._itemElements:this._elementTree),this._tree.layout(),!0}toggleCheckbox(){this._elementCheckedEventBufferer.bufferEvents(()=>{const e=this._tree.getFocus().filter(r=>r instanceof QuickPickItemElement),t=this._allVisibleChecked(e);for(const r of e)r.checkboxDisabled||(r.checked=!t)})}style(e){this._tree.style(e)}toggleHover(){const e=this._tree.getFocus()[0];if(!(e!=null&&e.saneTooltip)||!(e instanceof QuickPickItemElement))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}this.showHover(e);const t=new DisposableStore$1;t.add(this._tree.onDidChangeFocus(r=>{r.elements[0]instanceof QuickPickItemElement&&this.showHover(r.elements[0])})),this._lastHover&&t.add(this._lastHover),this._elementDisposable.add(t)}_setElementsToTree(e){const t=new Array;for(const r of e)r instanceof QuickPickSeparatorElement?t.push({element:r,collapsible:!1,collapsed:!1,children:r.children.map(s=>({element:s,collapsible:!1,collapsed:!1}))}):t.push({element:r,collapsible:!1,collapsed:!1});this._tree.setChildren(null,t)}_allVisibleChecked(e,t=!0){for(let r=0,s=e.length;r<s;r++){const a=e[r];if(!a.hidden&&a.item.pickable!==!1)if(a.checked)t=!0;else return!1}return t}_updateCheckedObservables(){transaction(e=>{this._allVisibleCheckedObservable.set(this._allVisibleChecked(this._itemElements,!1),e);const t=this._itemElements.filter(r=>r.checked).length;this._checkedCountObservable.set(t,e),this._checkedElementsObservable.set(this.getCheckedElements(),e)})}showHover(e){var t,r,s;this._lastHover&&!this._lastHover.isDisposed&&((r=(t=this.hoverDelegate).onDidHideHover)==null||r.call(t),(s=this._lastHover)==null||s.dispose()),!(!e.element||!e.saneTooltip)&&(this._lastHover=this.hoverDelegate.showHover({content:e.saneTooltip,target:e.element,linkHandler:a=>{this.linkOpenerDelegate(a)},appearance:{showPointer:!0},container:this._container,position:{hoverPosition:1}},!1))}};__decorate$i([memoize],QuickInputList.prototype,"onDidChangeFocus",null);__decorate$i([memoize],QuickInputList.prototype,"onDidChangeSelection",null);QuickInputList=__decorate$i([__param$e(4,IInstantiationService),__param$e(5,IAccessibilityService)],QuickInputList);function matchesContiguousIconAware(o,e){const{text:t,iconOffsets:r}=e;if(!r||r.length===0)return matchesContiguous(o,t);const s=ltrim(t," "),a=t.length-s.length,l=matchesContiguous(o,s);if(l)for(const c of l){const d=r[c.start+a]+a;c.start+=d,c.end+=d}return l}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 r=o.labelHighlights||[],s=e.labelHighlights||[];return r.length&&!s.length?-1:!r.length&&s.length?1:r.length===0&&s.length===0?0:compareAnything(o.saneSortLabel,e.saneSortLabel,t)}function registerQuickInputCommandAndKeybindingRule(o,e={}){var t;KeybindingsRegistry.registerCommandAndKeybindingRule({weight:200,when:inQuickInputContext,metadata:{description:localize(1758,"Used while in the context of any kind of quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")},...o,secondary:getSecondary(o.primary,(t=o.secondary)!=null?t:[],e)})}function registerQuickPickCommandAndKeybindingRule(o,e={}){var t;KeybindingsRegistry.registerCommandAndKeybindingRule({weight:200,when:ContextKeyExpr.and(ContextKeyExpr.or(ContextKeyExpr.equals(quickInputTypeContextKeyValue,"quickPick"),ContextKeyExpr.equals(quickInputTypeContextKeyValue,"quickTree")),inQuickInputContext),metadata:{description:localize(1759,"Used while in the context of the quick pick. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")},...o,secondary:getSecondary(o.primary,(t=o.secondary)!=null?t:[],e)})}const ctrlKeyMod=isMacintosh?256:2048;function getSecondary(o,e,t={}){return t.withAltMod&&e.push(512+o),t.withCtrlMod&&(e.push(ctrlKeyMod+o),t.withAltMod&&e.push(512+ctrlKeyMod+o)),t.withCmdMod&&isMacintosh&&(e.push(2048+o),t.withCtrlMod&&e.push(2304+o),t.withAltMod&&(e.push(2560+o),t.withCtrlMod&&e.push(2816+o))),e}function focusHandler(o,e){return t=>{const r=t.get(IQuickInputService).currentQuickInput;if(r)return e&&r.quickNavigate?r.focus(e):r.focus(o)}}registerQuickPickCommandAndKeybindingRule({id:"quickInput.pageNext",primary:12,handler:focusHandler(QuickPickFocus.NextPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});registerQuickPickCommandAndKeybindingRule({id:"quickInput.pagePrevious",primary:11,handler:focusHandler(QuickPickFocus.PreviousPage)},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});registerQuickPickCommandAndKeybindingRule({id:"quickInput.first",primary:ctrlKeyMod+14,handler:focusHandler(QuickPickFocus.First)},{withAltMod:!0,withCmdMod:!0});registerQuickPickCommandAndKeybindingRule({id:"quickInput.last",primary:ctrlKeyMod+13,handler:focusHandler(QuickPickFocus.Last)},{withAltMod:!0,withCmdMod:!0});registerQuickPickCommandAndKeybindingRule({id:"quickInput.next",primary:18,handler:focusHandler(QuickPickFocus.Next)},{withCtrlMod:!0});registerQuickPickCommandAndKeybindingRule({id:"quickInput.previous",primary:16,handler:focusHandler(QuickPickFocus.Previous)},{withCtrlMod:!0});const nextSeparatorFallbackDesc=localize(1760,"If we're in quick access mode, this will navigate to the next item. If we are not in quick access mode, this will navigate to the next separator."),prevSeparatorFallbackDesc=localize(1761,"If we're in quick access mode, this will navigate to the previous item. If we are not in quick access mode, this will navigate to the previous separator.");isMacintosh?(registerQuickPickCommandAndKeybindingRule({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:2066,handler:focusHandler(QuickPickFocus.NextSeparator,QuickPickFocus.Next),metadata:{description:nextSeparatorFallbackDesc}}),registerQuickPickCommandAndKeybindingRule({id:"quickInput.nextSeparator",primary:2578,secondary:[2322],handler:focusHandler(QuickPickFocus.NextSeparator)},{withCtrlMod:!0}),registerQuickPickCommandAndKeybindingRule({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:2064,handler:focusHandler(QuickPickFocus.PreviousSeparator,QuickPickFocus.Previous),metadata:{description:prevSeparatorFallbackDesc}}),registerQuickPickCommandAndKeybindingRule({id:"quickInput.previousSeparator",primary:2576,secondary:[2320],handler:focusHandler(QuickPickFocus.PreviousSeparator)},{withCtrlMod:!0})):(registerQuickPickCommandAndKeybindingRule({id:"quickInput.nextSeparatorWithQuickAccessFallback",primary:530,handler:focusHandler(QuickPickFocus.NextSeparator,QuickPickFocus.Next),metadata:{description:nextSeparatorFallbackDesc}}),registerQuickPickCommandAndKeybindingRule({id:"quickInput.nextSeparator",primary:2578,handler:focusHandler(QuickPickFocus.NextSeparator)}),registerQuickPickCommandAndKeybindingRule({id:"quickInput.previousSeparatorWithQuickAccessFallback",primary:528,handler:focusHandler(QuickPickFocus.PreviousSeparator,QuickPickFocus.Previous),metadata:{description:prevSeparatorFallbackDesc}}),registerQuickPickCommandAndKeybindingRule({id:"quickInput.previousSeparator",primary:2576,handler:focusHandler(QuickPickFocus.PreviousSeparator)}));KeybindingsRegistry.registerCommandAndKeybindingRule({id:"quickInput.accept",primary:3,weight:200,when:ContextKeyExpr.and(ContextKeyExpr.notEquals(quickInputTypeContextKeyValue,"quickWidget"),inQuickInputContext,ContextKeyExpr.not("isComposing")),metadata:{description:localize(1762,"Used while in the context of some quick input. If you change one keybinding for this command, you should change all of the other keybindings (modifier variants) of this command as well.")},handler:o=>{const e=o.get(IQuickInputService).currentQuickInput;e==null||e.accept()},secondary:getSecondary(3,[],{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0})});registerQuickPickCommandAndKeybindingRule({id:"quickInput.acceptInBackground",when:ContextKeyExpr.and(inQuickInputContext,ContextKeyExpr.equals(quickInputTypeContextKeyValue,"quickPick"),ContextKeyExpr.or(InputFocusedContext.negate(),endOfQuickInputBoxContext)),primary:17,weight:250,handler:o=>{const e=o.get(IQuickInputService).currentQuickInput;e==null||e.accept(!0)}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});registerQuickInputCommandAndKeybindingRule({id:"quickInput.hide",primary:9,handler:o=>{const e=o.get(IQuickInputService).currentQuickInput;e==null||e.hide()}},{withAltMod:!0,withCtrlMod:!0,withCmdMod:!0});registerQuickPickCommandAndKeybindingRule({id:"quickInput.toggleHover",primary:ctrlKeyMod|10,handler:o=>{o.get(IQuickInputService).toggleHover()}});var __decorate$h=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$d=function(o,e){return function(t,r){e(t,r,o)}},QuickInputTreeRenderer_1;const $$3=$$m;var Kn;let QuickInputTreeRenderer=(Kn=class extends Disposable$1{constructor(e,t,r,s){super(),this._hoverDelegate=e,this._buttonTriggeredEmitter=t,this.onCheckedEvent=r,this._themeService=s,this.templateId=QuickInputTreeRenderer_1.ID}renderTemplate(e){const t=new DisposableStore$1,r=append$2(e,$$3(".quick-input-tree-entry")),s=t.add(new TriStateCheckbox("",!1,{...defaultCheckboxStyles,size:15}));r.appendChild(s.domNode);const a=append$2(r,$$3("label.quick-input-tree-label")),l=append$2(a,$$3(".quick-input-tree-rows")),c=append$2(l,$$3(".quick-input-tree-row")),d=prepend$2(c,$$3(".quick-input-tree-icon")),u=t.add(new IconLabel(c,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this._hoverDelegate})),g=t.add(new ActionBar(r,this._hoverDelegate?{hoverDelegate:this._hoverDelegate}:void 0));return g.domNode.classList.add("quick-input-tree-entry-action-bar"),{toDisposeTemplate:t,entry:r,checkbox:s,icon:d,label:u,actionBar:g,toDisposeElement:new DisposableStore$1}}renderElement(e,t,r,s){var f,m;const a=r.toDisposeElement,l=e.element;if(l.pickable===!1?r.checkbox.domNode.style.display="none":(r.checkbox.domNode.style.display="",r.checkbox.checked=(f=l.checked)!=null?f:!1,a.add(Event$1.filter(this.onCheckedEvent,_=>_.item===l)(_=>r.checkbox.checked=_.checked)),l.disabled&&r.checkbox.disable()),l.iconPath){const _=isDark(this._themeService.getColorTheme().type)?l.iconPath.dark:(m=l.iconPath.light)!=null?m:l.iconPath.dark,v=URI.revive(_);r.icon.className="quick-input-tree-icon",r.icon.style.backgroundImage=asCSSUrl(v)}else r.icon.style.backgroundImage="",r.icon.className=l.iconClass?"quick-input-tree-icon ".concat(l.iconClass):"";const{labelHighlights:c,descriptionHighlights:d}=e.filterData||{};let u;l.description&&(u={markdown:{value:escape$2(l.description),supportThemeIcons:!0},markdownNotSupportedFallback:l.description}),r.label.setLabel(l.label,l.description,{matches:c,descriptionMatches:d,extraClasses:l.iconClasses,italic:l.italic,strikethrough:l.strikethrough,labelEscapeNewLines:!0,descriptionTitle:u});const g=l.buttons;g&&g.length?(r.actionBar.push(g.map((_,v)=>quickInputButtonToAction(_,"tree-".concat(v),()=>this._buttonTriggeredEmitter.fire({item:l,button:_}))),{icon:!0,label:!1}),r.entry.classList.add("has-actions")):r.entry.classList.remove("has-actions")}disposeElement(e,t,r,s){r.toDisposeElement.clear(),r.actionBar.clear()}disposeTemplate(e){e.toDisposeElement.dispose(),e.toDisposeTemplate.dispose()}},QuickInputTreeRenderer_1=Kn,Kn.ID="quickInputTreeElement",Kn);QuickInputTreeRenderer=QuickInputTreeRenderer_1=__decorate$h([__param$d(3,IThemeService)],QuickInputTreeRenderer);class QuickInputTreeDelegate{getHeight(e){return 22}getTemplateId(e){return QuickInputTreeRenderer.ID}}function getParentNodeState(o){var a;let e=!1,t=!1,r=!1;for(const l of o){switch((a=l.element)==null?void 0:a.checked){case"mixed":r=!0;break;case!0:e=!0;break;default:t=!0;break}if(e&&t&&r)break}return t?r||e?"mixed":!1:r?"mixed":e}class QuickTreeAccessibilityProvider{constructor(e){this.onCheckedEvent=e}getWidgetAriaLabel(){return localize(1772,"Quick Tree")}getAriaLabel(e){return e.ariaLabel||[e.label,e.description].map(t=>getCodiconAriaLabel(t)).filter(t=>!!t).join(", ")}getWidgetRole(){return"tree"}getRole(e){return"checkbox"}isChecked(e){return{get value(){return e.checked==="mixed"?"mixed":!!e.checked},onDidChange:t=>Event$1.filter(this.onCheckedEvent,r=>r.item===e)(r=>t())}}}class QuickInputTreeFilter{constructor(){this.filterValue="",this.matchOnLabel=!0,this.matchOnDescription=!1}filter(e,t){var l,c;if(!this.filterValue||!(this.matchOnLabel||this.matchOnDescription))return e.children?{visibility:2,data:{}}:{visibility:1,data:{}};const r=this.matchOnLabel&&(l=matchesFuzzyIconAware(this.filterValue,parseLabelWithIcons(e.label)))!=null?l:void 0,s=this.matchOnDescription&&(c=matchesFuzzyIconAware(this.filterValue,parseLabelWithIcons(e.description||"")))!=null?c:void 0;return{visibility:t===1||r||s?1:e.children?2:0,data:{labelHighlights:r,descriptionHighlights:s}}}}class QuickInputTreeSorter extends Disposable$1{constructor(){super(...arguments),this._sortByLabel=!0}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e}compare(e,t){if(!this._sortByLabel)return 0;if(e.label<t.label)return-1;if(e.label>t.label)return 1;if(e.description&&t.description){if(e.description<t.description)return-1;if(e.description>t.description)return 1}else{if(e.description)return-1;if(t.description)return 1}return 0}}var __decorate$g=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$c=function(o,e){return function(t,r){e(t,r,o)}};const $$2=$$m;let QuickInputTreeController=class extends Disposable$1{constructor(e,t,r){super(),this.instantiationService=r,this._onDidTriggerButton=this._register(new Emitter$1),this._onDidChangeCheckboxState=this._register(new Emitter$1),this.onDidChangeCheckboxState=this._onDidChangeCheckboxState.event,this._onDidCheckedLeafItemsChange=this._register(new Emitter$1),this._onLeave=new Emitter$1,this.onLeave=this._onLeave.event,this._onDidAccept=this._register(new Emitter$1),this.onDidAccept=this._onDidAccept.event,this._container=append$2(e,$$2(".quick-input-tree")),this._renderer=this._register(this.instantiationService.createInstance(QuickInputTreeRenderer,t,this._onDidTriggerButton,this.onDidChangeCheckboxState)),this._filter=this.instantiationService.createInstance(QuickInputTreeFilter),this._sorter=this._register(new QuickInputTreeSorter),this._tree=this._register(this.instantiationService.createInstance(WorkbenchObjectTree,"QuickInputTree",this._container,new QuickInputTreeDelegate,[this._renderer],{accessibilityProvider:new QuickTreeAccessibilityProvider(this.onDidChangeCheckboxState),horizontalScrolling:!1,multipleSelectionSupport:!1,findWidgetEnabled:!1,alwaysConsumeMouseWheel:!0,hideTwistiesOfChildlessElements:!0,renderIndentGuides:RenderIndentGuides.None,expandOnDoubleClick:!0,expandOnlyOnTwistieClick:!0,disableExpandOnSpacebar:!0,sorter:this._sorter,filter:this._filter})),this.registerOnOpenListener()}get tree(){return this._tree}get displayed(){return this._container.style.display!=="none"}set displayed(e){this._container.style.display=e?"":"none"}get sortByLabel(){return this._sorter.sortByLabel}set sortByLabel(e){this._sorter.sortByLabel=e,this._tree.resort(null,!0)}getActiveDescendant(){return this._tree.getHTMLElement().getAttribute("aria-activedescendant")}updateFilterOptions(e){e.matchOnLabel!==void 0&&(this._filter.matchOnLabel=e.matchOnLabel),e.matchOnDescription!==void 0&&(this._filter.matchOnDescription=e.matchOnDescription),this._tree.refilter()}layout(e){this._tree.getHTMLElement().style.maxHeight=e?"".concat(Math.floor(e/44)*44+6,"px"):"",this._tree.layout()}registerOnOpenListener(){this._register(this._tree.onDidOpen(e=>{var c,d,u,g;const t=e.element;if(!t||t.disabled)return;if(t.pickable===!1){this._tree.setFocus([t]),this._onDidAccept.fire();return}const r=t.checked!==!0;if(((c=t.checked)!=null?c:!1)===r)return;t.checked=r,this._tree.rerender(t);const s=new Set,a=[...this._tree.getNode(t).children];for(;a.length;){const f=a.shift();f!=null&&f.element&&!s.has(f.element)&&(s.add(f.element),((d=f.element.checked)!=null?d:!1)!==t.checked&&(f.element.checked=t.checked,this._tree.rerender(f.element)),a.push(...f.children))}let l=this._tree.getParentElement(t);for(;l;){const f=[...this._tree.getNode(l).children],m=getParentNodeState(f);((u=l.checked)!=null?u:!1)!==m&&(l.checked=m,this._tree.rerender(l)),l=this._tree.getParentElement(l)}this._onDidChangeCheckboxState.fire({item:t,checked:(g=t.checked)!=null?g:!1}),this._onDidCheckedLeafItemsChange.fire(this.getCheckedLeafItems())}))}getCheckedLeafItems(){const e=new Set,t=[...this._tree.getNode().children],r=new Array;for(;t.length;){const s=t.shift();!(s!=null&&s.element)||e.has(s.element)||s.element.checked&&(e.add(s.element),t.push(...s.children),s.element.children||r.push(s.element))}return r}};QuickInputTreeController=__decorate$g([__param$c(2,IInstantiationService)],QuickInputTreeController);var __decorate$f=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$b=function(o,e){return function(t,r){e(t,r,o)}},QuickInputController_1;const $$1=$$m,VIEWSTATE_STORAGE_KEY="workbench.quickInput.viewState";var Gn;let QuickInputController=(Gn=class extends Disposable$1{get currentQuickInput(){var e;return(e=this.controller)!=null?e:void 0}get container(){return this._container}constructor(e,t,r,s,a){super(),this.options=e,this.layoutService=t,this.instantiationService=r,this.storageService=a,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.inQuickInputContext=InQuickInputContextKey.bindTo(s),this.quickInputTypeContext=QuickInputTypeContextKey.bindTo(s),this.endOfQuickInputBoxContext=EndOfQuickInputBoxContextKey.bindTo(s),this.idPrefix=e.idPrefix,this._container=e.container,this.styles=e.styles,this._register(Event$1.runAndSubscribe(onDidRegisterWindow,({window:l,disposables:c})=>this.registerKeyModsListeners(l,c),{window:mainWindow,disposables:this._store})),this._register(onWillUnregisterWindow(l=>{this.ui&&getWindow$1(this.ui.container)===l&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))})),this.viewState=this.loadViewState()}registerKeyModsListeners(e,t){const r=s=>{this.keyMods.ctrlCmd=s.ctrlKey||s.metaKey,this.keyMods.alt=s.altKey};for(const s of[EventType$1.KEY_DOWN,EventType$1.KEY_UP,EventType$1.MOUSE_DOWN])t.add(addDisposableListener(e,s,r,!0))}getUI(e){if(this.ui)return e&&getWindow$1(this._container)!==getWindow$1(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const t=append$2(this._container,$$1(".quick-input-widget.show-file-icons"));t.tabIndex=-1,t.style.display="none";const r=createStyleSheet(t),s=append$2(t,$$1(".quick-input-titlebar")),a=this._register(new ActionBar(s,{hoverDelegate:this.options.hoverDelegate}));a.domNode.classList.add("quick-input-left-action-bar");const l=append$2(s,$$1(".quick-input-title")),c=this._register(new ActionBar(s,{hoverDelegate:this.options.hoverDelegate}));c.domNode.classList.add("quick-input-right-action-bar");const d=append$2(t,$$1(".quick-input-header")),u=this._register(new TriStateCheckbox(localize(1763,"Toggle all checkboxes"),!1,{...defaultCheckboxStyles,size:15}));append$2(d,u.domNode),this._register(u.onChange(()=>{const O=u.checked;R.setAllVisibleChecked(O===!0)})),this._register(addDisposableListener(u.domNode,EventType$1.CLICK,O=>{(O.x||O.y)&&_.setFocus()}));const g=append$2(d,$$1(".quick-input-description")),f=append$2(d,$$1(".quick-input-and-message")),m=append$2(f,$$1(".quick-input-filter")),_=this._register(new QuickInputBox(m,this.styles.inputBox,this.styles.toggle));_.setAttribute("aria-describedby","".concat(this.idPrefix,"message"));const v=append$2(m,$$1(".quick-input-visible-count"));v.setAttribute("aria-live","polite"),v.setAttribute("aria-atomic","true");const b=this._register(new CountBadge(v,{countFormat:localize(1764,"{0} Results")},this.styles.countBadge)),C=append$2(m,$$1(".quick-input-count"));C.setAttribute("aria-live","polite");const y=this._register(new CountBadge(C,{countFormat:localize(1765,"{0} Selected")},this.styles.countBadge)),S=this._register(new ActionBar(d,{hoverDelegate:this.options.hoverDelegate}));S.domNode.classList.add("quick-input-inline-action-bar");const w=append$2(d,$$1(".quick-input-action")),E=this._register(new Button(w,this.styles.button));E.label=localize(1766,"OK"),this._register(E.onDidClick(O=>{this.onDidAcceptEmitter.fire()}));const x=append$2(d,$$1(".quick-input-action")),L=this._register(new Button(x,{...this.styles.button,supportIcons:!0}));L.label=localize(1767,"Custom"),this._register(L.onDidClick(O=>{this.onDidCustomEmitter.fire()}));const k=append$2(f,$$1("#".concat(this.idPrefix,"message.quick-input-message"))),D=this._register(new ProgressBar(t,this.styles.progressBar));D.getContainer().classList.add("quick-input-progress");const I=append$2(t,$$1(".quick-input-html-widget"));I.tabIndex=-1;const T=append$2(t,$$1(".quick-input-description")),M=this.idPrefix+"list",R=this._register(this.instantiationService.createInstance(QuickInputList,t,this.options.hoverDelegate,this.options.linkOpenerDelegate,M));_.setAttribute("aria-controls",M),this._register(R.onDidChangeFocus(()=>{var O;_.hasFocus()&&_.setAttribute("aria-activedescendant",(O=R.getActiveDescendant())!=null?O:"")})),this._register(R.onChangedAllVisibleChecked(O=>{u.checked=O})),this._register(R.onChangedVisibleCount(O=>{b.setCount(O)})),this._register(R.onChangedCheckedCount(O=>{setTimeout0(()=>y.setCount(O))})),this._register(R.onLeave(()=>{setTimeout(()=>{this.controller&&(_.setFocus(),this.controller instanceof QuickPick&&this.controller.canSelectMany&&R.clearFocus())},0)}));const N=this._register(this.instantiationService.createInstance(QuickInputTreeController,t,this.options.hoverDelegate));this._register(N.tree.onDidChangeFocus(()=>{var O;_.hasFocus()&&_.setAttribute("aria-activedescendant",(O=N.getActiveDescendant())!=null?O:"")})),this._register(N.onLeave(()=>{setTimeout(()=>{this.controller&&(_.setFocus(),N.tree.setFocus([]))},0)})),this._register(N.onDidAccept(()=>{this.onDidAcceptEmitter.fire()})),this._register(N.tree.onDidChangeContentHeight(()=>this.updateLayout()));const A=trackFocus(t);return this._register(A),this._register(addDisposableListener(t,EventType$1.FOCUS,O=>{const P=this.getUI();if(isAncestor$1(O.relatedTarget,P.inputContainer)){const F=P.inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==F&&this.endOfQuickInputBoxContext.set(F)}isAncestor$1(O.relatedTarget,P.container)||(this.inQuickInputContext.set(!0),this.previousFocusElement=isHTMLElement(O.relatedTarget)?O.relatedTarget:void 0)},!0)),this._register(A.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(QuickInputHideReason.Blur),this.inQuickInputContext.set(!1),this.endOfQuickInputBoxContext.set(!1),this.previousFocusElement=void 0})),this._register(_.onKeyDown(O=>{const P=this.getUI().inputBox.isSelectionAtEnd();this.endOfQuickInputBoxContext.get()!==P&&this.endOfQuickInputBoxContext.set(P),_.removeAttribute("aria-activedescendant")})),this._register(addDisposableListener(t,EventType$1.FOCUS,O=>{_.setFocus()})),this.dndController=this._register(this.instantiationService.createInstance(QuickInputDragAndDropController,this._container,t,[{node:s,includeChildren:!0},{node:d,includeChildren:!1}],this.viewState)),this._register(autorun(O=>{var F;const P=(F=this.dndController)==null?void 0:F.dndViewState.read(O);P&&(P.top!==void 0&&P.left!==void 0?this.viewState={...this.viewState,top:P.top,left:P.left}:this.viewState=void 0,this.updateLayout(),P.done&&this.saveViewState(this.viewState))})),this.ui={container:t,styleSheet:r,leftActionBar:a,titleBar:s,title:l,description1:T,description2:g,widget:I,rightActionBar:c,inlineActionBar:S,checkAll:u,inputContainer:f,filterContainer:m,inputBox:_,visibleCountContainer:v,visibleCount:b,countContainer:C,count:y,okContainer:w,ok:E,message:k,customButtonContainer:x,customButton:L,list:R,tree:N,progressBar:D,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:O=>this.show(O),hide:()=>this.hide(),setVisibilities:O=>this.setVisibilities(O),setEnabled:O=>this.setEnabled(O),setContextKey:O=>this.options.setContextKey(O),linkOpenerDelegate:O=>this.options.linkOpenerDelegate(O)},this.updateStyles(),this.ui}reparentUI(e){var t;this.ui&&(this._container=e,append$2(this._container,this.ui.container),(t=this.dndController)==null||t.reparentUI(this._container))}pick(e,t={},r=CancellationToken.None){return new Promise((s,a)=>{let l=g=>{var f;l=s,(f=t.onKeyMods)==null||f.call(t,c.keyMods),s(g)};if(r.isCancellationRequested){l(void 0);return}const c=this.createQuickPick({useSeparators:!0});let d;const u=[c,c.onDidAccept(()=>{if(c.canSelectMany)l(c.selectedItems.slice()),c.hide();else{const g=c.activeItems[0];g&&(l(g),c.hide())}}),c.onDidChangeActive(g=>{const f=g[0];f&&t.onDidFocus&&t.onDidFocus(f)}),c.onDidChangeSelection(g=>{if(!c.canSelectMany){const f=g[0];f&&(l(f),c.hide())}}),c.onDidTriggerItemButton(g=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton({...g,removeItem:()=>{const f=c.items.indexOf(g.item);if(f!==-1){const m=c.items.slice(),_=m.splice(f,1),v=c.activeItems.filter(C=>C!==_[0]),b=c.keepScrollPosition;c.keepScrollPosition=!0,c.items=m,v&&(c.activeItems=v),c.keepScrollPosition=b}}})),c.onDidTriggerSeparatorButton(g=>{var f;return(f=t.onDidTriggerSeparatorButton)==null?void 0:f.call(t,g)}),c.onDidChangeValue(g=>{d&&!g&&(c.activeItems.length!==1||c.activeItems[0]!==d)&&(c.activeItems=[d])}),r.onCancellationRequested(()=>{c.hide()}),c.onDidHide(()=>{dispose(u),l(void 0)})];c.title=t.title,t.value&&(c.value=t.value),c.canSelectMany=!!t.canPickMany,c.placeholder=t.placeHolder,c.prompt=t.prompt,c.ignoreFocusOut=!!t.ignoreFocusLost,c.matchOnDescription=!!t.matchOnDescription,c.matchOnDetail=!!t.matchOnDetail,t.sortByLabel!==void 0&&(c.sortByLabel=t.sortByLabel),c.matchOnLabel=t.matchOnLabel===void 0||t.matchOnLabel,c.quickNavigate=t.quickNavigate,c.hideInput=!!t.hideInput,c.contextKey=t.contextKey,c.busy=!0,Promise.all([e,t.activeItem]).then(([g,f])=>{d=f,c.busy=!1,c.items=g,c.canSelectMany&&(c.selectedItems=g.filter(m=>m.type!=="separator"&&m.picked)),d&&(c.activeItems=[d])}),c.show(),Promise.resolve(e).then(void 0,g=>{a(g),c.hide()})})}setValidationOnInput(e,t){t&&isString$2(t)?(e.severity=Severity$1$1.Error,e.validationMessage=t):t&&!isString$2(t)?(e.severity=t.severity,e.validationMessage=t.content):(e.severity=Severity$1$1.Ignore,e.validationMessage=void 0)}input(e={},t=CancellationToken.None){return new Promise(r=>{if(t.isCancellationRequested){r(void 0);return}const s=this.createInputBox(),a=e.validateInput||(()=>Promise.resolve(void 0)),l=Event$1.debounce(s.onDidChangeValue,(g,f)=>f,100);let c=e.value||"",d=Promise.resolve(a(c));const u=[s,l(g=>{g!==c&&(d=Promise.resolve(a(g)),c=g),d.then(f=>{g===c&&this.setValidationOnInput(s,f)})}),s.onDidAccept(()=>{const g=s.value;g!==c&&(d=Promise.resolve(a(g)),c=g),d.then(f=>{!f||!isString$2(f)&&f.severity!==Severity$1$1.Error?(r(g),s.hide()):g===c&&this.setValidationOnInput(s,f)})}),t.onCancellationRequested(()=>{s.hide()}),s.onDidHide(()=>{dispose(u),r(void 0)})];s.title=e.title,s.value=e.value||"",s.valueSelection=e.valueSelection,s.prompt=e.prompt,s.placeholder=e.placeHolder,s.password=!!e.password,s.ignoreFocusOut=!!e.ignoreFocusLost,s.show()})}createQuickPick(e={useSeparators:!1}){const t=this.getUI(!0);return new QuickPick(t)}createInputBox(){const e=this.getUI(!0);return new InputBox(e)}show(e){var a;const t=this.getUI(!0);this.onShowEmitter.fire();const r=this.controller;this.controller=e,r==null||r.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",reset(t.widget),t.rightActionBar.clear(),t.inlineActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(Severity$1$1.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),reset(t.message),t.progressBar.stop(),t.progressBar.getContainer().setAttribute("aria-hidden","true"),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.tree.updateFilterOptions({matchOnDescription:!1,matchOnLabel:!0}),t.tree.sortByLabel=!0,t.ignoreFocusOut=!1,t.inputBox.toggles=void 0;const s=this.options.backKeybindingLabel();backButton.tooltip=s?localize(1768,"Back ({0})",s):localize(1769,"Back"),t.container.style.display="",this.updateLayout(),(a=this.dndController)==null||a.layoutContainer(),t.inputBox.setFocus(),this.quickInputTypeContext.set(e.type)}isVisible(){return!!this.ui&&this.ui.container.style.display!=="none"}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.domNode.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.displayed=!!e.list,t.tree.displayed=!!e.tree,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;const t=this.getUI();for(const r of t.leftActionBar.viewItems)r.action.enabled=e;for(const r of t.rightActionBar.viewItems)r.action.enabled=e;e?t.checkAll.enable():t.checkAll.disable(),t.inputBox.enabled=e,t.ok.enabled=e,t.list.enabled=e}}hide(e){var a,l;const t=this.controller;if(!t)return;t.willHide(e);const r=(a=this.ui)==null?void 0:a.container,s=r&&!isAncestorOfActiveElement(r);if(this.controller=null,this.onHideEmitter.fire(),r&&(r.style.display="none"),!s){let c=this.previousFocusElement;for(;c&&!c.offsetParent;)c=(l=c.parentElement)!=null?l:void 0;c!=null&&c.offsetParent?(c.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}t.didHide(e)}toggleHover(){this.isVisible()&&this.controller instanceof QuickPick&&this.getUI().list.toggleHover()}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){var e,t,r;if(this.ui&&this.isVisible()){const s=this.ui.container.style,a=Math.min(this.dimension.width*.62,QuickInputController_1.MAX_WIDTH);s.width=a+"px",s.top="".concat((e=this.viewState)!=null&&e.top?Math.round(this.dimension.height*this.viewState.top):this.titleBarOffset,"px"),s.left="".concat(Math.round(this.dimension.width*((r=(t=this.viewState)==null?void 0:t.left)!=null?r:.5)-a/2),"px"),this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4),this.ui.tree.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:r,widgetBorder:s,widgetShadow:a}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e!=null?e:"",this.ui.container.style.backgroundColor=t!=null?t:"",this.ui.container.style.color=r!=null?r:"",this.ui.container.style.border=s?"1px solid ".concat(s):"",this.ui.container.style.boxShadow=a?"0 0 8px 2px ".concat(a):"",this.ui.list.style(this.styles.list),this.ui.tree.tree.style(this.styles.list);const l=[];this.styles.pickerGroup.pickerGroupBorder&&l.push(".quick-input-list .quick-input-list-entry { border-top-color: ".concat(this.styles.pickerGroup.pickerGroupBorder,"; }")),this.styles.pickerGroup.pickerGroupForeground&&l.push(".quick-input-list .quick-input-list-separator { color: ".concat(this.styles.pickerGroup.pickerGroupForeground,"; }")),this.styles.pickerGroup.pickerGroupForeground&&l.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)&&(l.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&l.push("background-color: ".concat(this.styles.keybindingLabel.keybindingLabelBackground,";")),this.styles.keybindingLabel.keybindingLabelBorder&&l.push("border-color: ".concat(this.styles.keybindingLabel.keybindingLabelBorder,";")),this.styles.keybindingLabel.keybindingLabelBottomBorder&&l.push("border-bottom-color: ".concat(this.styles.keybindingLabel.keybindingLabelBottomBorder,";")),this.styles.keybindingLabel.keybindingLabelShadow&&l.push("box-shadow: inset 0 -1px 0 ".concat(this.styles.keybindingLabel.keybindingLabelShadow,";")),this.styles.keybindingLabel.keybindingLabelForeground&&l.push("color: ".concat(this.styles.keybindingLabel.keybindingLabelForeground,";")),l.push("}"));const c=l.join("\n");c!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=c)}}loadViewState(){try{const e=JSON.parse(this.storageService.get(VIEWSTATE_STORAGE_KEY,-1,"{}"));if(e.top!==void 0||e.left!==void 0)return e}catch(e){}}saveViewState(e){this.layoutService.activeContainer===this.layoutService.mainContainer&&(e!==void 0?this.storageService.store(VIEWSTATE_STORAGE_KEY,JSON.stringify(e),-1,1):this.storageService.remove(VIEWSTATE_STORAGE_KEY,-1))}},QuickInputController_1=Gn,Gn.MAX_WIDTH=600,Gn);QuickInputController=QuickInputController_1=__decorate$f([__param$b(1,ILayoutService),__param$b(2,IInstantiationService),__param$b(3,IContextKeyService),__param$b(4,IStorageService)],QuickInputController);let QuickInputDragAndDropController=class extends Disposable$1{constructor(e,t,r,s,a,l,c){super(),this._container=e,this._quickInputContainer=t,this._quickInputDragAreas=r,this._layoutService=a,this.configurationService=c,this.dndViewState=observableValue(this,void 0),this._snapThreshold=20,this._snapLineHorizontalRatio=.25,this._quickInputAlignmentContext=QuickInputAlignmentContextKey.bindTo(l);const d=getWindowControlsStyle(this.configurationService)==="custom";this._controlsOnLeft=d&&platform$1===1,this._controlsOnRight=d&&(platform$1===3||platform$1===2),this._registerLayoutListener(),this.registerMouseListeners(),this.dndViewState.set({...s,done:!0},void 0)}reparentUI(e){this._container=e}layoutContainer(e=this._layoutService.activeContainerDimension){const t=this.dndViewState.get(),r=this._quickInputContainer.getBoundingClientRect();if(t!=null&&t.top&&(t!=null&&t.left)){const s=Math.round(t.left*100)/100,a=e.width,l=r.width,c=s*a-l/2;this._layout(t.top*e.height,c)}}_registerLayoutListener(){this._register(Event$1.filter(this._layoutService.onDidLayoutContainer,e=>e.container===this._container)(e=>this.layoutContainer(e.dimension)))}registerMouseListeners(){const e=this._quickInputContainer;this._register(addDisposableGenericMouseUpListener(e,t=>{const r=new StandardMouseEvent(getWindow$1(e),t);r.detail===2&&this._quickInputDragAreas.some(({node:s,includeChildren:a})=>a?isAncestor$1(r.target,s):r.target===s)&&this.dndViewState.set({top:void 0,left:void 0,done:!0},void 0)})),this._register(addDisposableGenericMouseDownListener(e,t=>{const r=getWindow$1(this._layoutService.activeContainer),s=new StandardMouseEvent(r,t);if(!this._quickInputDragAreas.some(({node:f,includeChildren:m})=>m?isAncestor$1(s.target,f):s.target===f))return;const a=this._quickInputContainer.getBoundingClientRect(),l=s.browserEvent.clientX-a.left,c=s.browserEvent.clientY-a.top;let d=!1;const u=addDisposableGenericMouseMoveListener(r,f=>{new StandardMouseEvent(r,f).preventDefault(),d||(d=!0),this._layout(f.clientY-c,f.clientX-l)}),g=addDisposableGenericMouseUpListener(r,f=>{if(d){const m=this.dndViewState.get();this.dndViewState.set({top:m==null?void 0:m.top,left:m==null?void 0:m.left,done:!0},void 0)}u.dispose(),g.dispose()})}))}_layout(e,t){const r=this._getTopSnapValue(),s=this._getCenterYSnapValue(),a=this._getCenterXSnapValue();e=Math.max(0,Math.min(e,this._container.clientHeight-this._quickInputContainer.clientHeight)),e<this._layoutService.activeContainerOffset.top&&(this._controlsOnLeft?t=Math.max(t,80/getZoomFactor(getActiveWindow())):this._controlsOnRight&&(t=Math.min(t,this._container.clientWidth-this._quickInputContainer.clientWidth-140/getZoomFactor(getActiveWindow()))));const l=Math.abs(e-r)<this._snapThreshold;e=l?r:e;const c=Math.abs(e-s)<this._snapThreshold;e=c?s:e;const d=e/this._container.clientHeight;t=Math.max(0,Math.min(t,this._container.clientWidth-this._quickInputContainer.clientWidth));const u=Math.abs(t-a)<this._snapThreshold;t=u?a:t;const g=this._container.clientWidth,f=this._quickInputContainer.clientWidth,_=(t+f/2)/g;if(this.dndViewState.set({top:d,left:_,done:!1},void 0),u){if(l){this._quickInputAlignmentContext.set("top");return}else if(c){this._quickInputAlignmentContext.set("center");return}}this._quickInputAlignmentContext.set(void 0)}_getTopSnapValue(){return this._layoutService.activeContainerOffset.quickPickTop}_getCenterYSnapValue(){return Math.round(this._container.clientHeight*this._snapLineHorizontalRatio)}_getCenterXSnapValue(){return Math.round(this._container.clientWidth/2)-Math.round(this._quickInputContainer.clientWidth/2)}};QuickInputDragAndDropController=__decorate$f([__param$b(4,ILayoutService),__param$b(5,IContextKeyService),__param$b(6,IConfigurationService)],QuickInputDragAndDropController);var __decorate$e=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$a=function(o,e){return function(t,r){e(t,r,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 currentQuickInput(){return this.controller.currentQuickInput}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(QuickAccessController))),this._quickAccess}constructor(e,t,r,s,a){super(r),this.instantiationService=e,this.contextKeyService=t,this.layoutService=s,this.configurationService=a,this._onShow=this._register(new Emitter$1),this._onHide=this._register(new Emitter$1),this.contexts=new Map}createController(e=this.layoutService,t){const r={idPrefix:"quickInput_",container:e.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:a=>this.setContextKey(a),linkOpenerDelegate:a=>{this.instantiationService.invokeFunction(l=>{l.get(IOpenerService).open(a,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>e.focus(),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(QuickInputHoverDelegate))},s=this._register(this.instantiationService.createInstance(QuickInputController,{...r,...t}));return s.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop),this._register(e.onDidLayoutActiveContainer(a=>{getWindow$1(e.activeContainer)===getWindow$1(s.container)&&s.layout(a,e.activeContainerOffset.quickPickTop)})),this._register(e.onDidChangeActiveContainer(()=>{s.isVisible()||s.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop)})),this._register(s.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(s.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),s}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,r=CancellationToken.None){return this.controller.pick(e,t,r)}input(e={},t=CancellationToken.None){return this.controller.input(e,t)}createQuickPick(e={useSeparators:!1}){return this.controller.createQuickPick(e)}createInputBox(){return this.controller.createInputBox()}toggleHover(){this.hasController&&this.controller.toggleHover()}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,treeStickyScrollBackground:quickInputBackground}),pickerGroup:{pickerGroupBorder:asCssVariable(pickerGroupBorder),pickerGroupForeground:asCssVariable(pickerGroupForeground)}}}};QuickInputService=__decorate$e([__param$a(0,IInstantiationService),__param$a(1,IContextKeyService),__param$a(2,IThemeService),__param$a(3,ILayoutService),__param$a(4,IConfigurationService)],QuickInputService);var __decorate$d=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$9=function(o,e){return function(t,r){e(t,r,o)}};let EditorScopedQuickInputService=class extends QuickInputService{constructor(e,t,r,s,a,l){super(t,r,s,new EditorScopedLayoutService(e.getContainerDomNode(),a),l),this.host=void 0;const c=QuickInputEditorContribution.get(e);if(c){const d=c.widget;this.host={_serviceBrand:void 0,get mainContainer(){return d.getDomNode()},getContainer(){return d.getDomNode()},whenContainerStylesLoaded(){},get containers(){return[d.getDomNode()]},get activeContainer(){return d.getDomNode()},get mainContainerDimension(){return e.getLayoutInfo()},get activeContainerDimension(){return e.getLayoutInfo()},get onDidLayoutMainContainer(){return e.onDidLayoutChange},get onDidLayoutActiveContainer(){return e.onDidLayoutChange},get onDidLayoutContainer(){return Event$1.map(e.onDidLayoutChange,u=>({container:d.getDomNode(),dimension:u}))},get onDidChangeActiveContainer(){return Event$1.None},get onDidAddContainer(){return Event$1.None},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>e.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};EditorScopedQuickInputService=__decorate$d([__param$9(1,IInstantiationService),__param$9(2,IContextKeyService),__param$9(3,IThemeService),__param$9(4,ICodeEditorService),__param$9(5,IConfigurationService)],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 r=t=this.instantiationService.createInstance(EditorScopedQuickInputService,e);this.mapEditorToService.set(e,t),createSingleCallFunction(e.onDidDispose)(()=>{r.dispose(),this.mapEditorToService.delete(e)})}return t}get currentQuickInput(){return this.activeService.currentQuickInput}get quickAccess(){return this.activeService.quickAccess}constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}pick(e,t,r=CancellationToken.None){return this.activeService.pick(e,t,r)}input(e,t){return this.activeService.input(e,t)}createQuickPick(e={useSeparators:!1}){return this.activeService.createQuickPick(e)}createInputBox(){return this.activeService.createInputBox()}toggleHover(){return this.activeService.toggleHover()}};StandaloneQuickInputService=__decorate$d([__param$9(0,IInstantiationService),__param$9(1,ICodeEditorService)],StandaloneQuickInputService);const Vs=class Vs{static get(e){return e.getContribution(Vs.ID)}constructor(e){this.editor=e,this.widget=new QuickInputEditorWidget(this.editor)}dispose(){this.widget.dispose()}};Vs.ID="editor.controller.quickInput";let QuickInputEditorContribution=Vs;const Ws=class Ws{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return Ws.ID}getDomNode(){return this.domNode}getPosition(){return{preference:{top:0,left:0}}}dispose(){this.codeEditor.removeOverlayWidget(this)}};Ws.ID="editor.contrib.quickInputWidget";let QuickInputEditorWidget=Ws;registerEditorContribution(QuickInputEditorContribution.ID,QuickInputEditorContribution,4);var __decorate$c=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$8=function(o,e){return function(t,r){e(t,r,o)}};let AccessibilityService=class extends Disposable$1{constructor(e,t,r){super(),this._contextKeyService=e,this._layoutService=t,this._configurationService=r,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new Emitter$1,this._onDidChangeReducedMotion=new Emitter$1,this._onDidChangeLinkUnderline=new Emitter$1,this._accessibilityModeEnabledContext=CONTEXT_ACCESSIBILITY_MODE_ENABLED.bindTo(this._contextKeyService);const s=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(l=>{l.affectsConfiguration("editor.accessibilitySupport")&&(s(),this._onDidChangeScreenReaderOptimized.fire()),l.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),s(),this._register(this.onDidChangeScreenReaderOptimized(()=>s()));const a=mainWindow.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=a.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._linkUnderlinesEnabled=this._configurationService.getValue("accessibility.underlineLinks"),this.initReducedMotionListeners(a),this.initLinkUnderlineListeners()}initReducedMotionListeners(e){this._register(addDisposableListener(e,"change",()=>{this._systemMotionReduced=e.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const t=()=>{const r=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("monaco-reduce-motion",r),this._layoutService.mainContainer.classList.toggle("monaco-enable-motion",!r)};t(),this._register(this.onDidChangeReducedMotion(()=>t()))}initLinkUnderlineListeners(){this._register(this._configurationService.onDidChangeConfiguration(t=>{if(t.affectsConfiguration("accessibility.underlineLinks")){const r=this._configurationService.getValue("accessibility.underlineLinks");this._linkUnderlinesEnabled=r,this._onDidChangeLinkUnderline.fire()}}));const e=()=>{const t=this._linkUnderlinesEnabled;this._layoutService.mainContainer.classList.toggle("underline-links",t)};e(),this._register(this.onDidChangeLinkUnderlines(()=>e()))}onDidChangeLinkUnderlines(e){return this._onDidChangeLinkUnderline.event(e)}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$c([__param$8(0,IContextKeyService),__param$8(1,ILayoutService),__param$8(2,IConfigurationService)],AccessibilityService);var __decorate$b=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$7=function(o,e){return function(t,r){e(t,r,o)}},BrowserClipboardService_1;const vscodeResourcesMime="application/vnd.code.resources";var jn;let BrowserClipboardService=(jn=class extends Disposable$1{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(isSafari$1||isWebkitWebView)&&this.installWebKitWriteTextWorkaround(),this._register(Event$1.runAndSubscribe(onDidRegisterWindow,({window:r,disposables:s})=>{s.add(addDisposableListener(r.document,"copy",()=>this.clearResourcesState()))},{window:mainWindow,disposables:this._store}))}triggerPaste(){this.logService.trace("BrowserClipboardService#triggerPaste")}installWebKitWriteTextWorkaround(){const e=()=>{const t=new DeferredPromise;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=t,getActiveWindow().navigator.clipboard.write([new ClipboardItem({"text/plain":t.p})]).catch(async r=>{(!(r instanceof Error)||r.name!=="NotAllowedError"||!t.isRejected)&&this.logService.error(r)})};this._register(Event$1.runAndSubscribe(this.layoutService.onDidAddContainer,({container:t,disposables:r})=>{r.add(addDisposableListener(t,"click",e)),r.add(addDisposableListener(t,"keydown",e))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(e,t){if(this.logService.trace("BrowserClipboardService#writeText called with type:",t," text.length:",e.length),this.clearResourcesState(),t){this.mapTextToType.set(t,e),this.logService.trace("BrowserClipboardService#writeText");return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return this.logService.trace("before navigator.clipboard.writeText"),await getActiveWindow().navigator.clipboard.writeText(e)}catch(r){console.error(r)}this.fallbackWriteText(e)}fallbackWriteText(e){this.logService.trace("BrowserClipboardService#fallbackWriteText");const t=getActiveDocument(),r=t.activeElement,s=t.body.appendChild($$m("textarea",{"aria-hidden":!0}));s.style.height="1px",s.style.width="1px",s.style.position="absolute",s.value=e,s.focus(),s.select(),t.execCommand("copy"),isHTMLElement(r)&&r.focus(),s.remove()}async readText(e){if(this.logService.trace("BrowserClipboardService#readText called with type:",e),e){const t=this.mapTextToType.get(e)||"";return this.logService.trace("BrowserClipboardService#readText text.length:",t.length),t}try{const t=await getActiveWindow().navigator.clipboard.readText();return this.logService.trace("BrowserClipboardService#readText text.length:",t.length),t}catch(t){console.error(t)}return""}async readFindText(){return this.findText}async writeFindText(e){this.findText=e}async readResources(){try{const t=await getActiveWindow().navigator.clipboard.read();for(const r of t)if(r.types.includes("web ".concat(vscodeResourcesMime))){const s=await r.getType("web ".concat(vscodeResourcesMime));return JSON.parse(await s.text()).map(l=>URI.from(l))}}catch(t){}const e=await this.computeResourcesStateHash();return this.resourcesStateHash!==e&&this.clearResourcesState(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const e=await this.readText();return hash$1(e.substring(0,BrowserClipboardService_1.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearInternalState(){this.clearResourcesState()}clearResourcesState(){this.resources=[],this.resourcesStateHash=void 0}},BrowserClipboardService_1=jn,jn.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3,jn);BrowserClipboardService=BrowserClipboardService_1=__decorate$b([__param$7(0,ILayoutService),__param$7(1,ILogService)],BrowserClipboardService);var __decorate$a=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$6=function(o,e){return function(t,r){e(t,r,o)}};const KEYBINDING_CONTEXT_ATTR="data-keybinding-context";class Context{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}get value(){return{...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}}const Us=class Us extends Context{constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}};Us.INSTANCE=new Us;let NullContext=Us;const Yr=class Yr extends Context{constructor(e,t,r){super(e,null),this._configurationService=t,this._values=TernarySearchTree.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(s=>{if(s.source===7){const a=Array.from(this._values,([l])=>l);this._values.clear(),r.fire(new ArrayContextKeyChangeEvent(a))}else{const a=[];for(const l of s.affectedKeys){const c="config.".concat(l),d=this._values.findSuperstr(c);d!==void 0&&(a.push(...Iterable.map(d,([u])=>u)),this._values.deleteSuperstr(c)),this._values.has(c)&&(a.push(c),this._values.delete(c))}r.fire(new ArrayContextKeyChangeEvent(a))}})}dispose(){this._listener.dispose()}getValue(e){if(e.indexOf(Yr._keyPrefix)!==0)return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(Yr._keyPrefix.length),r=this._configurationService.getValue(t);let s;switch(typeof r){case"number":case"boolean":case"string":s=r;break;default:Array.isArray(r)?s=JSON.stringify(r):s=r}return this._values.set(e,s),s}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}};Yr._keyPrefix="config.";let ConfigAwareContextValuesContainer=Yr;class ContextKey{constructor(e,t,r){this._service=e,this._key=t,this._defaultValue=r,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$1{get onDidChangeContext(){return this._onDidChangeContext.event}constructor(e){super(),this._onDidChangeContext=this._register(new PauseableEmitter({merge:t=>new CompositeContextKeyChangeEvent(t)})),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 r=this.getContextValuesContainer(this._myContextId);r&&r.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,this.inputFocusedContext=InputFocusedContext.bindTo(this);const t=this._register(new ConfigAwareContextValuesContainer(this._myContextId,e,this._onDidChangeContext));this._contexts.set(this._myContextId,t),this._register(Event$1.runAndSubscribe(onDidRegisterWindow,({window:r,disposables:s})=>{const a=s.add(new MutableDisposable);s.add(addDisposableListener(r,EventType$1.FOCUS_IN,()=>{a.value=new DisposableStore$1,this.updateInputContextKeys(r.document,a.value)},!0))},{window:mainWindow,disposables:this._store}))}updateInputContextKeys(e,t){function r(){return!!e.activeElement&&isEditableElement(e.activeElement)}const s=r();if(this.inputFocusedContext.set(s),s){const a=t.add(trackFocus(e.activeElement));Event$1.once(a.onDidBlur)(()=>{getActiveWindow().document===e&&this.inputFocusedContext.set(r()),a.dispose()},void 0,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(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};ContextKeyService=__decorate$a([__param$6(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 r="";this._domNode.classList&&(r=Array.from(this._domNode.classList.values()).join(", ")),console.error("Element already has context attribute".concat(r?": "+r:""))}this._domNode.setAttribute(KEYBINDING_CONTEXT_ATTR,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(e=>{const r=this._parent.getContextValuesContainer(this._myContextId).value;allEventKeysInContext(e,r)||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))},metadata:{description:localize(1674,"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,r)=>t.key.localeCompare(r.key)),console.log(JSON.stringify(o,void 0,2))});let Node$2=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 r=this.lookupOrInsertNode(e),s=this.lookupOrInsertNode(t);r.outgoing.set(s.key,s),s.incoming.set(r.key,r)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(const r of this._nodes.values())r.outgoing.delete(t),r.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let r=this._nodes.get(t);return r||(r=new Node$2(t,e),this._nodes.set(t,r)),r}isEmpty(){return this._nodes.size===0}toString(){const e=[];for(const[t,r]of this._nodes)e.push("".concat(t,"\n (-> incoming)[").concat([...r.incoming.keys()].join(", "),"]\n (outgoing ->)[").concat([...r.outgoing.keys()].join(","),"]\n"));return e.join("\n")}findCycleSlow(){for(const[e,t]of this._nodes){const r=new Set([e]),s=this._findCycle(t,r);if(s)return s}}_findCycle(e,t){for(const[r,s]of e.outgoing){if(t.has(r))return[...t,r].join(" -> ");t.add(r);const a=this._findCycle(s,t);if(a)return a;t.delete(r)}}}const _enableAllTracing=!1;class CyclicDependencyError extends Error{constructor(e){var t;super("cyclic dependency between services"),this.message=(t=e.findCycleSlow())!=null?t:"UNABLE to detect cycle, dumping graph: \n".concat(e.toString())}}class InstantiationService{constructor(e=new ServiceCollection,t=!1,r,s=_enableAllTracing){var a;this._services=e,this._strict=t,this._parent=r,this._enableTracing=s,this._isDisposed=!1,this._servicesToMaybeDispose=new Set,this._children=new Set,this._activeInstantiations=new Set,this._services.set(IInstantiationService,this),this._globalGraph=s?(a=r==null?void 0:r._globalGraph)!=null?a:new Graph(l=>l):void 0}dispose(){if(!this._isDisposed){this._isDisposed=!0,dispose(this._children),this._children.clear();for(const e of this._servicesToMaybeDispose)isDisposable(e)&&e.dispose();this._servicesToMaybeDispose.clear()}}_throwIfDisposed(){if(this._isDisposed)throw new Error("InstantiationService has been disposed")}createChild(e,t){this._throwIfDisposed();const r=this,s=new class extends InstantiationService{dispose(){r._children.delete(s),super.dispose()}}(e,this._strict,this,this._enableTracing);return this._children.add(s),t==null||t.add(s),s}invokeFunction(e,...t){this._throwIfDisposed();const r=Trace.traceInvocation(this._enableTracing,e);let s=!1;try{return e({get:l=>{if(s)throw illegalState("service accessor is only valid during the invocation of its target method");const c=this._getOrCreateServiceInstance(l,r);if(!c)throw new Error("[invokeFunction] unknown service '".concat(l,"'"));return c},getIfExists:l=>{if(s)throw illegalState("service accessor is only valid during the invocation of its target method");return this._getOrCreateServiceInstance(l,r)}},...t)}finally{s=!0,r.stop()}}createInstance(e,...t){this._throwIfDisposed();let r,s;return e instanceof SyncDescriptor?(r=Trace.traceCreation(this._enableTracing,e.ctor),s=this._createInstance(e.ctor,e.staticArguments.concat(t),r)):(r=Trace.traceCreation(this._enableTracing,e),s=this._createInstance(e,t,r)),r.stop(),s}_createInstance(e,t=[],r){const s=_util.getServiceDependencies(e).sort((c,d)=>c.index-d.index),a=[];for(const c of s){const d=this._getOrCreateServiceInstance(c.id,r);d||this._throwIfStrict("[createInstance] ".concat(e.name," depends on UNKNOWN service ").concat(c.id,"."),!1),a.push(d)}const l=s.length>0?s[0].index:t.length;if(t.length!==l){console.trace("[createInstance] First service dependency of ".concat(e.name," at position ").concat(l+1," conflicts with ").concat(t.length," static arguments"));const c=l-t.length;c>0?t=t.concat(new Array(c)):t=t.slice(0,l)}return Reflect.construct(e,t.concat(a))}_setCreatedServiceInstance(e,t){if(this._services.get(e)instanceof SyncDescriptor)this._services.set(e,t);else if(this._parent)this._parent._setCreatedServiceInstance(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 r=this._getServiceInstanceOrDescriptor(e);return r instanceof SyncDescriptor?this._safeCreateAndCacheServiceInstance(e,r,t.branch(e,!0)):(t.branch(e,!1),r)}_safeCreateAndCacheServiceInstance(e,t,r){if(this._activeInstantiations.has(e))throw new Error("illegal state - RECURSIVELY instantiating service '".concat(e,"'"));this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,r)}finally{this._activeInstantiations.delete(e)}}_createAndCacheServiceInstance(e,t,r){var d;const s=new Graph(u=>u.id.toString());let a=0;const l=[{id:e,desc:t,_trace:r}],c=new Set;for(;l.length;){const u=l.pop();if(!c.has(String(u.id))){if(c.add(String(u.id)),s.lookupOrInsertNode(u),a++>1e3)throw new CyclicDependencyError(s);for(const g of _util.getServiceDependencies(u.desc.ctor)){const f=this._getServiceInstanceOrDescriptor(g.id);if(f||this._throwIfStrict("[createInstance] ".concat(e," depends on ").concat(g.id," which is NOT registered."),!0),(d=this._globalGraph)==null||d.insertEdge(String(u.id),String(g.id)),f instanceof SyncDescriptor){const m={id:g.id,desc:f,_trace:u._trace.branch(g.id,!0)};s.insertEdge(u,m),l.push(m)}}}}for(;;){const u=s.roots();if(u.length===0){if(!s.isEmpty())throw new CyclicDependencyError(s);break}for(const{data:g}of u){if(this._getServiceInstanceOrDescriptor(g.id)instanceof SyncDescriptor){const m=this._createServiceInstanceWithOwner(g.id,g.desc.ctor,g.desc.staticArguments,g.desc.supportsDelayedInstantiation,g._trace);this._setCreatedServiceInstance(g.id,m)}s.removeNode(g)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,r=[],s,a){if(this._services.get(e)instanceof SyncDescriptor)return this._createServiceInstance(e,t,r,s,a,this._servicesToMaybeDispose);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,r,s,a);throw new Error("illegalState - creating UNKNOWN service instance ".concat(t.name))}_createServiceInstance(e,t,r=[],s,a,l){if(s){const c=new InstantiationService(void 0,this._strict,this,this._enableTracing);c._globalGraphImplicitDependency=String(e);const d=new Map,u=new GlobalIdleValue(()=>{const g=c._createInstance(t,r,a);for(const[f,m]of d){const _=g[f];if(typeof _=="function")for(const v of m)v.disposable=_.apply(g,v.listener)}return d.clear(),l.add(g),g});return new Proxy(Object.create(null),{get(g,f){if(!u.isInitialized&&typeof f=="string"&&(f.startsWith("onDid")||f.startsWith("onWill"))){let v=d.get(f);return v||(v=new LinkedList,d.set(f,v)),(C,y,S)=>{if(u.isInitialized)return u.value[f](C,y,S);{const w={listener:[C,y,S],disposable:void 0},E=v.push(w);return toDisposable(()=>{var L;E(),(L=w.disposable)==null||L.dispose()})}}}if(f in g)return g[f];const m=u.value;let _=m[f];return typeof _!="function"||(_=_.bind(m),g[f]=_),_},set(g,f,m){return u.value[f]=m,!0},getPrototypeOf(g){return t.prototype}})}else{const c=this._createInstance(t,r,a);return l.add(c),c}}_throwIfStrict(e,t){if(t&&console.warn(e),this._strict)throw new Error(e)}}const at=class at{static traceInvocation(e,t){return e?new at(2,t.name||new Error().stack.split("\n").slice(3,4).join("\n")):at._None}static traceCreation(e,t){return e?new at(1,t.name):at._None}constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}branch(e,t){const r=new at(3,e.toString());return this._dep.push([e,t,r]),r}stop(){const e=Date.now()-this._start;at._totals+=e;let t=!1;function r(a,l){const c=[],d=new Array(a+1).join(" ");for(const[u,g,f]of l._dep)if(g&&f){t=!0,c.push("".concat(d,"CREATES -> ").concat(u));const m=r(a+1,f);m&&c.push(m)}else c.push("".concat(d,"uses -> ").concat(u));return c.join("\n")}const s=["".concat(this.type===1?"CREATE":"CALL"," ").concat(this.name),"".concat(r(1,this)),"DONE, took ".concat(e.toFixed(2),"ms (grand total ").concat(at._totals.toFixed(2),"ms)")];(e>2||t)&&at.all.add(s.join("\n"))}};at.all=new Set,at._None=new class extends at{constructor(){super(0,null)}stop(){}branch(){return this}},at._totals=0;let Trace=at;const unsupportedSchemas=new Set([Schemas.inMemory,Schemas.vscodeSourceControl,Schemas.walkThrough,Schemas.walkThroughSnippet,Schemas.vscodeChatCodeBlock,Schemas.vscodeTerminal]);class DoubleResourceMap{constructor(){this._byResource=new ResourceMap,this._byOwner=new Map}set(e,t,r){let s=this._byResource.get(e);s||(s=new Map,this._byResource.set(e,s)),s.set(t,r);let a=this._byOwner.get(t);a||(a=new ResourceMap,this._byOwner.set(t,a)),a.set(e,r)}get(e,t){const r=this._byResource.get(e);return r==null?void 0:r.get(t)}delete(e,t){let r=!1,s=!1;const a=this._byResource.get(e);a&&(r=a.delete(t));const l=this._byOwner.get(t);if(l&&(s=l.delete(e)),r!==s)throw new Error("illegal state");return r&&s}values(e){var t,r,s,a;return typeof e=="string"?(r=(t=this._byOwner.get(e))==null?void 0:t.values())!=null?r:Iterable.empty():URI.isUri(e)?(a=(s=this._byResource.get(e))==null?void 0:s.values())!=null?a:Iterable.empty():Iterable.map(Iterable.concat(...this._byOwner.values()),l=>l[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 r=this._data.get(t);r&&this._substract(r);const s=this._resourceStats(t);this._add(s),this._data.set(t,s)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(unsupportedSchemas.has(e.scheme))return t;for(const{severity:r}of this._service.read({resource:e}))r===MarkerSeverity$2.Error?t.errors+=1:r===MarkerSeverity$2.Warning?t.warnings+=1:r===MarkerSeverity$2.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),this._filteredResources=new ResourceMap}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(e,t){for(const r of t||[])this.changeOne(e,r,[])}changeOne(e,t,r){if(isFalsyOrEmpty(r))this._data.delete(t,e)&&this._onMarkerChanged.fire([t]);else{const s=[];for(const a of r){const l=MarkerService._toMarker(e,t,a);l&&s.push(l)}this._data.set(t,e,s),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,r){let{code:s,severity:a,message:l,source:c,startLineNumber:d,startColumn:u,endLineNumber:g,endColumn:f,relatedInformation:m,tags:_,origin:v}=r;if(l)return d=d>0?d:1,u=u>0?u:1,g=g>=d?g:d,f=f>0?f:u,{resource:t,owner:e,code:s,severity:a,message:l,source:c,startLineNumber:d,startColumn:u,endLineNumber:g,endColumn:f,relatedInformation:m,tags:_,origin:v}}changeAll(e,t){const r=[],s=this._data.values(e);if(s)for(const a of s){const l=Iterable.first(a);l&&(r.push(l.resource),this._data.delete(l.resource,e))}if(isNonEmptyArray(t)){const a=new ResourceMap;for(const{resource:l,marker:c}of t){const d=MarkerService._toMarker(e,l,c);if(!d)continue;const u=a.get(l);u?u.push(d):(a.set(l,[d]),r.push(l))}for(const[l,c]of a)this._data.set(l,e,c)}r.length>0&&this._onMarkerChanged.fire(r)}_createFilteredMarker(e,t){const r=t.length===1?localize(1738,'Problems are paused because: "{0}"',t[0]):localize(1739,'Problems are paused because: "{0}" and {1} more',t[0],t.length-1);return{owner:"markersFilter",resource:e,severity:MarkerSeverity$2.Info,message:r,startLineNumber:1,startColumn:1,endLineNumber:1,endColumn:1}}read(e=Object.create(null)){let{owner:t,resource:r,severities:s,take:a}=e;if((!a||a<0)&&(a=-1),t&&r){const l=e.ignoreResourceFilters?void 0:this._filteredResources.get(r);if(l!=null&&l.length)return[this._createFilteredMarker(r,l)];const c=this._data.get(r,t);if(!c)return[];const d=[];for(const u of c){if(a>0&&d.length===a)break;const g=e.ignoreResourceFilters?void 0:this._filteredResources.get(r);g!=null&&g.length?d.push(this._createFilteredMarker(r,g)):MarkerService._accept(u,s)&&d.push(u)}return d}else{const l=!t&&!r?this._data.values():this._data.values(r!=null?r:t),c=[],d=new ResourceSet;for(const u of l)for(const g of u){if(d.has(g.resource))continue;if(a>0&&c.length===a)break;const f=e.ignoreResourceFilters?void 0:this._filteredResources.get(g.resource);f!=null&&f.length?(c.push(this._createFilteredMarker(g.resource,f)),d.add(g.resource)):MarkerService._accept(g,s)&&c.push(g)}return c}}static _accept(e,t){return t===void 0||(t&e.severity)===e.severity}static _merge(e){const t=new ResourceMap;for(const r of e)for(const s of r)t.set(s,!0);return Array.from(t.keys())}}class DefaultConfiguration extends Disposable$1{get configurationModel(){return this._configurationModel}constructor(e){super(),this.logService=e,this._configurationModel=ConfigurationModel.createEmptyModel(e)}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=ConfigurationModel.createEmptyModel(this.logService);const e=Registry.as(Extensions$6.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,t){const r=this.getConfigurationDefaultOverrides();for(const s of e){const a=r[s],l=t[s];a!==void 0?this._configurationModel.setValue(s,a):l?this._configurationModel.setValue(s,deepClone(l.default)):this._configurationModel.removeValue(s)}}}class LogService extends Disposable$1{constructor(e,t=[]){super(),this.logger=new MultiplexLogger([e,...t]),this._register(e.onDidChangeLogLevel(r=>this.setLevel(r)))}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)}}class StandaloneTreeSitterLibraryService{getParserClass(){throw new Error("not implemented in StandaloneTreeSitterLibraryService")}supportsLanguage(e,t){return!1}getLanguage(e,t,r){}getInjectionQueries(e,t){return null}getHighlightingQueries(e,t){return null}}var __decorate$9=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$5=function(o,e){return function(t,r){e(t,r,o)}};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$9([__param$5(0,IModelService)],StandaloneTextModelService);const Ks=class Ks{show(){return Ks.NULL_PROGRESS_RUNNER}async showWhile(e,t){await e}};Ks.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};let StandaloneEditorProgressService=Ks;class StandaloneProgressService{withProgress(e,t,r){return t({report:()=>{}})}}class StandaloneEnvironmentService{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class StandaloneDialogService{async confirm(e){return{confirmed:this.doConfirm(e.message,e.detail),checkboxChecked:!1}}doConfirm(e,t){let r=e;return t&&(r=r+"\n\n"+t),mainWindow.confirm(r)}async prompt(e){var s,a;let t;if(this.doConfirm(e.message,e.detail)){const l=[...(s=e.buttons)!=null?s:[]];e.cancelButton&&typeof e.cancelButton!="string"&&typeof e.cancelButton!="boolean"&&l.push(e.cancelButton),t=await((a=l[0])==null?void 0:a.run({checkboxChecked:!1}))}return{result:t}}async error(e,t){await this.prompt({type:Severity$1$1.Error,message:e,detail:t})}}const Xr=class Xr{info(e){return this.notify({severity:Severity$1$1.Info,message:e})}warn(e){return this.notify({severity:Severity$1$1.Warning,message:e})}error(e){return this.notify({severity:Severity$1$1.Error,message:e})}notify(e){switch(e.severity){case Severity$1$1.Error:console.error(e.message);break;case Severity$1$1.Warning:console.warn(e.message);break;default:console.log(e.message);break}return Xr.NO_OP}prompt(e,t,r,s){return Xr.NO_OP}status(e,t){return{close:()=>{}}}};Xr.NO_OP=new NoOpNotification;let StandaloneNotificationService=Xr,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 r=CommandsRegistry.getCommand(e);if(!r)return Promise.reject(new Error("command '".concat(e,"' not found")));try{this._onWillExecuteCommand.fire({commandId:e,args:t});const s=this._instantiationService.invokeFunction.apply(this._instantiationService,[r.handler,...t]);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(s)}catch(s){return Promise.reject(s)}}};StandaloneCommandService=__decorate$9([__param$5(0,IInstantiationService)],StandaloneCommandService);let StandaloneKeybindingService=class extends AbstractKeybindingService{constructor(e,t,r,s,a,l){super(e,t,r,s,a),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const c=_=>{const v=new DisposableStore$1;v.add(addDisposableListener(_,EventType$1.KEY_DOWN,b=>{const C=new StandardKeyboardEvent(b);this._dispatch(C,C.target)&&(C.preventDefault(),C.stopPropagation())})),v.add(addDisposableListener(_,EventType$1.KEY_UP,b=>{const C=new StandardKeyboardEvent(b);this._singleModifierDispatch(C,C.target)&&C.preventDefault()})),this._domNodeListeners.push(new DomNodeListeners(_,v))},d=_=>{for(let v=0;v<this._domNodeListeners.length;v++){const b=this._domNodeListeners[v];b.domNode===_&&(this._domNodeListeners.splice(v,1),b.dispose())}},u=_=>{_.getOption(70)||c(_.getContainerDomNode())},g=_=>{_.getOption(70)||d(_.getContainerDomNode())};this._register(l.onCodeEditorAdd(u)),this._register(l.onCodeEditorRemove(g)),l.listCodeEditors().forEach(u);const f=_=>{c(_.getContainerDomNode())},m=_=>{d(_.getContainerDomNode())};this._register(l.onDiffEditorAdd(f)),this._register(l.onDiffEditorRemove(m)),l.listDiffEditors().forEach(f)}addDynamicKeybinding(e,t,r,s){return combinedDisposable(CommandsRegistry.registerCommand(e,r),this.addDynamicKeybindings([{keybinding:t,command:e,when:s}]))}addDynamicKeybindings(e){const t=e.map(r=>{var a;return{keybinding:decodeKeybinding(r.keybinding,OS),command:(a=r.command)!=null?a:null,commandArgs:r.commandArgs,when:r.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}});return this._dynamicKeybindings=this._dynamicKeybindings.concat(t),this.updateResolver(),toDisposable(()=>{for(let r=0;r<this._dynamicKeybindings.length;r++)if(this._dynamicKeybindings[r]===t[0]){this._dynamicKeybindings.splice(r,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,r=>this._log(r))}return this._cachedResolver}_documentHasFocus(){return mainWindow.document.hasFocus()}_toNormalizedKeybindingItems(e,t){const r=[];let s=0;for(const a of e){const l=a.when||void 0,c=a.keybinding;if(!c)r[s++]=new ResolvedKeybindingItem(void 0,a.command,a.commandArgs,l,t,null,!1);else{const d=USLayoutResolvedKeybinding.resolveKeybinding(c,OS);for(const u of d)r[s++]=new ResolvedKeybindingItem(u,a.command,a.commandArgs,l,t,null,!1)}}return r}resolveKeyboardEvent(e){const t=new KeyCodeChord(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode);return new USLayoutResolvedKeybinding([t],OS)}};StandaloneKeybindingService=__decorate$9([__param$5(0,IContextKeyService),__param$5(1,ICommandService),__param$5(2,ITelemetryService),__param$5(3,INotificationService),__param$5(4,ILogService),__param$5(5,ICodeEditorService)],StandaloneKeybindingService);class DomNodeListeners extends Disposable$1{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)}let StandaloneConfigurationService=class{constructor(e){this.logService=e,this._onDidChangeConfiguration=new Emitter$1,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const t=new DefaultConfiguration(e);this._configuration=new Configuration(t.reload(),ConfigurationModel.createEmptyModel(e),ConfigurationModel.createEmptyModel(e),ConfigurationModel.createEmptyModel(e),ConfigurationModel.createEmptyModel(e),ConfigurationModel.createEmptyModel(e),new ResourceMap,ConfigurationModel.createEmptyModel(e),new ResourceMap,e),t.dispose()}getValue(e,t){const r=typeof e=="string"?e:void 0,s=isConfigurationOverrides(e)?e:isConfigurationOverrides(t)?t:{};return this._configuration.getValue(r,s,void 0)}updateValues(e){const t={data:this._configuration.toData()},r=[];for(const s of e){const[a,l]=s;this.getValue(a)!==l&&(this._configuration.updateValue(a,l),r.push(a))}if(r.length>0){const s=new ConfigurationChangeEvent({keys:r,overrides:[]},t,this._configuration,void 0,this.logService);s.source=8,this._onDidChangeConfiguration.fire(s)}return Promise.resolve()}updateValue(e,t,r,s){return this.updateValues([[e,t]])}inspect(e,t={}){return this._configuration.inspect(e,t,void 0)}};StandaloneConfigurationService=__decorate$9([__param$5(0,ILogService)],StandaloneConfigurationService);let StandaloneResourceConfigurationService=class{constructor(e,t,r){this.configurationService=e,this.modelService=t,this.languageService=r,this._onDidChangeConfiguration=new Emitter$1,this.configurationService.onDidChangeConfiguration(s=>{this._onDidChangeConfiguration.fire({affectedKeys:s.affectedKeys,affectsConfiguration:(a,l)=>s.affectsConfiguration(l)})})}getValue(e,t,r){const s=Position$1.isIPosition(t)?t:null,a=s?typeof r=="string"?r:void 0:typeof t=="string"?t:void 0,l=e?this.getLanguage(e,s):void 0;return typeof a>"u"?this.configurationService.getValue({resource:e,overrideIdentifier:l}):this.configurationService.getValue(a,{resource:e,overrideIdentifier:l})}getLanguage(e,t){const r=this.modelService.getModel(e);return r?t?r.getLanguageIdAtPosition(t.lineNumber,t.column):r.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(e)}};StandaloneResourceConfigurationService=__decorate$9([__param$5(0,IConfigurationService),__param$5(1,IModelService),__param$5(2,ILanguageService)],StandaloneResourceConfigurationService);let StandaloneResourcePropertiesService=class{constructor(e){this.configurationService=e}getEOL(e,t){const r=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return r&&typeof r=="string"&&r!=="auto"?r:isLinux||isMacintosh?"\n":"\r\n"}};StandaloneResourcePropertiesService=__decorate$9([__param$5(0,IConfigurationService)],StandaloneResourcePropertiesService);class StandaloneTelemetryService{publicLog2(){}}const Zr=class Zr{constructor(){const e=URI.from({scheme:Zr.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===Zr.SCHEME?this.workspace.folders[0]:null}};Zr.SCHEME="inmemory";let StandaloneWorkspaceContextService=Zr;function updateConfigurationService(o,e,t){if(!e||!(o instanceof StandaloneConfigurationService))return;const r=[];Object.keys(e).forEach(s=>{isEditorConfigurationKey(s)&&r.push(["editor.".concat(s),e[s]]),t&&isDiffEditorConfigurationKey(s)&&r.push(["diffEditor.".concat(s),e[s]])}),r.length>0&&o.updateValues(r)}let StandaloneBulkEditService=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const r=Array.isArray(e)?e:ResourceEdit.convert(e),s=new Map;for(const c of r){if(!(c instanceof ResourceTextEdit))throw new Error("bad edit - only text edits are supported");const d=this._modelService.getModel(c.resource);if(!d)throw new Error("bad edit - model not found");if(typeof c.versionId=="number"&&d.getVersionId()!==c.versionId)throw new Error("bad state - model changed in the meantime");let u=s.get(d);u||(u=[],s.set(d,u)),u.push(EditOperation.replaceMove(Range$2.lift(c.textEdit.range),c.textEdit.text))}let a=0,l=0;for(const[c,d]of s)c.pushStackElement(),c.pushEditOperations([],d,()=>[]),c.pushStackElement(),l+=1,a+=d.length;return{ariaSummary:format(StandaloneServicesNLS.bulkEditServiceSummary,a,l),isApplied:a>0}}};StandaloneBulkEditService=__decorate$9([__param$5(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,r){if(!t){const s=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();s&&(t=s.getContainerDomNode())}return super.showContextView(e,t,r)}};StandaloneContextViewService=__decorate$9([__param$5(0,ILayoutService),__param$5(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,r,s,a,l){super(e,t,r,s,a,l),this.configure({blockMouse:!1})}};StandaloneContextMenuService=__decorate$9([__param$5(0,ITelemetryService),__param$5(1,INotificationService),__param$5(2,IContextViewService),__param$5(3,IKeybindingService),__param$5(4,IMenuService),__param$5(5,IContextKeyService)],StandaloneContextMenuService);const standaloneEditorWorkerDescriptor={esmModuleLocation:void 0,label:"editorWorkerService"};let StandaloneEditorWorkerService=class extends EditorWorkerService{constructor(e,t,r,s,a){super(standaloneEditorWorkerDescriptor,e,t,r,s,a)}};StandaloneEditorWorkerService=__decorate$9([__param$5(0,IModelService),__param$5(1,ITextResourceConfigurationService),__param$5(2,ILogService),__param$5(3,ILanguageConfigurationService),__param$5(4,ILanguageFeaturesService)],StandaloneEditorWorkerService);class StandaloneAccessbilitySignalService{async playSignal(e,t){}}registerSingleton(ILogService,StandaloneLogService,0);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(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,StandaloneEditorWorkerService,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(IAccessibilitySignalService,StandaloneAccessbilitySignalService,0);registerSingleton(ITreeSitterLibraryService,StandaloneTreeSitterLibraryService,0);registerSingleton(ILoggerService,NullLoggerService,0);registerSingleton(IDataChannelService,NullDataChannelService,0);var StandaloneServices;(function(o){const e=new ServiceCollection;for(const[d,u]of getSingletonServiceDescriptors())e.set(d,u);const t=new InstantiationService(e,!0);e.set(IInstantiationService,t);function r(d){s||l({});const u=e.get(d);if(!u)throw new Error("Missing service "+d);return u instanceof SyncDescriptor?t.invokeFunction(g=>g.get(d)):u}o.get=r;let s=!1;const a=new Emitter$1;function l(d){if(s)return t;s=!0;for(const[g,f]of getSingletonServiceDescriptors())e.get(g)||e.set(g,f);for(const g in d)if(d.hasOwnProperty(g)){const f=createDecorator(g);e.get(f)instanceof SyncDescriptor&&e.set(f,d[g])}const u=getEditorFeatures();for(const g of u)try{t.createInstance(g)}catch(f){onUnexpectedError(f)}return a.fire(),t}o.initialize=l;function c(d){if(s)return d();const u=new DisposableStore$1,g=u.add(a.event(()=>{g.dispose(),u.add(d())}));return u}o.withServices=c})(StandaloneServices||(StandaloneServices={}));var __decorate$8=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$4=function(o,e){return function(t,r){e(t,r,o)}},EditorMarkdownCodeBlockRenderer_1,qn;let EditorMarkdownCodeBlockRenderer=(qn=class{constructor(e,t){this._configurationService=e,this._languageService=t}async renderCodeBlock(e,t,r){var g,f;const s=isCodeEditor(r.context)?r.context:void 0;let a;e?a=this._languageService.getLanguageIdByLanguageName(e):s&&(a=(g=s.getModel())==null?void 0:g.getLanguageId()),a||(a=PLAINTEXT_LANGUAGE_ID);const l=await tokenizeToString(this._languageService,t,a),c=EditorMarkdownCodeBlockRenderer_1._ttpTokenizer&&(f=EditorMarkdownCodeBlockRenderer_1._ttpTokenizer.createHTML(l))!=null?f:l,d=document.createElement("span");d.innerHTML=c;const u=d.querySelector(".monaco-tokenized-source");return isHTMLElement(u)?(applyFontInfo(u,this.getFontInfo(s)),d):document.createElement("span")}getFontInfo(e){return e?e.getOption(59):createBareFontInfoFromRawSettings({fontFamily:this._configurationService.getValue("editor").fontFamily},1)}},EditorMarkdownCodeBlockRenderer_1=qn,qn._ttpTokenizer=createTrustedTypesPolicy$1("tokenizeToString",{createHTML(e){return e}}),qn);EditorMarkdownCodeBlockRenderer=EditorMarkdownCodeBlockRenderer_1=__decorate$8([__param$4(0,IConfigurationService),__param$4(1,ILanguageService)],EditorMarkdownCodeBlockRenderer);var __decorate$7=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$3=function(o,e){return function(t,r){e(t,r,o)}};let LAST_GENERATED_COMMAND_ID=0,ariaDomNodeCreated=!1;function createAriaDomNode(o){if(!o){if(ariaDomNodeCreated)return;ariaDomNodeCreated=!0}setARIAContainer(o||mainWindow.document.body)}let StandaloneCodeEditor=class extends CodeEditorWidget{constructor(e,t,r,s,a,l,c,d,u,g,f,m,_,v){const b={...t};b.ariaLabel=b.ariaLabel||StandaloneCodeEditorNLS.editorViewAccessibleLabel,super(e,b,{},r,s,a,l,u,g,f,m,_),d instanceof StandaloneKeybindingService?this._standaloneKeybindingService=d:this._standaloneKeybindingService=null,createAriaDomNode(b.ariaContainerElement),setHoverDelegateFactory((C,y)=>r.createInstance(WorkbenchHoverDelegate,C,{instantHover:y},{})),setBaseLayerHoverDelegate(c),v.setDefaultCodeBlockRenderer(r.createInstance(EditorMarkdownCodeBlockRenderer))}addCommand(e,t,r){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const s="DYNAMIC_"+ ++LAST_GENERATED_COMMAND_ID,a=ContextKeyExpr.deserialize(r);return this._standaloneKeybindingService.addDynamicKeybinding(s,e,t,a),s}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$1.None;const t=e.id,r=e.label,s=ContextKeyExpr.and(ContextKeyExpr.equals("editorId",this.getId()),ContextKeyExpr.deserialize(e.precondition)),a=e.keybindings,l=ContextKeyExpr.and(s,ContextKeyExpr.deserialize(e.keybindingContext)),c=e.contextMenuGroupId||null,d=e.contextMenuOrder||0,u=(_,...v)=>Promise.resolve(e.run(this,...v)),g=new DisposableStore$1,f=this.getId()+":"+t;if(g.add(CommandsRegistry.registerCommand(f,u)),c){const _={command:{id:f,title:r},when:s,group:c,order:d};g.add(MenuRegistry.appendMenuItem(MenuId.EditorContext,_))}if(Array.isArray(a))for(const _ of a)g.add(this._standaloneKeybindingService.addDynamicKeybinding(f,_,u,l));const m=new InternalEditorAction(f,r,r,void 0,s,(..._)=>Promise.resolve(e.run(this,..._)),this._contextKeyService);return this._actions.set(t,m),g.add(toDisposable(()=>{this._actions.delete(t)})),g}_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$7([__param$3(2,IInstantiationService),__param$3(3,ICodeEditorService),__param$3(4,ICommandService),__param$3(5,IContextKeyService),__param$3(6,IHoverService),__param$3(7,IKeybindingService),__param$3(8,IThemeService),__param$3(9,INotificationService),__param$3(10,IAccessibilityService),__param$3(11,ILanguageConfigurationService),__param$3(12,ILanguageFeaturesService),__param$3(13,IMarkdownRendererService)],StandaloneCodeEditor);let StandaloneEditor=class extends StandaloneCodeEditor{constructor(e,t,r,s,a,l,c,d,u,g,f,m,_,v,b,C,y){const S={...t};updateConfigurationService(f,S,!1);const w=u.registerEditorContainer(e);typeof S.theme=="string"&&u.setTheme(S.theme),typeof S.autoDetectHighContrast<"u"&&u.setAutoDetectHighContrast(!!S.autoDetectHighContrast);const E=S.model;delete S.model,super(e,S,r,s,a,l,c,d,u,g,m,b,C,y),this._configurationService=f,this._standaloneThemeService=u,this._register(w);let x;if(typeof E>"u"){const L=v.getLanguageIdByMimeType(S.language)||S.language||PLAINTEXT_LANGUAGE_ID;x=createTextModel(_,v,S.value||"",L,void 0),this._ownsModel=!0}else x=E,this._ownsModel=!1;if(this._attachModel(x),x){const L={oldModelUrl:null,newModelUrl:x.uri};this._onDidChangeModel.fire(L)}}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$7([__param$3(2,IInstantiationService),__param$3(3,ICodeEditorService),__param$3(4,ICommandService),__param$3(5,IContextKeyService),__param$3(6,IHoverService),__param$3(7,IKeybindingService),__param$3(8,IStandaloneThemeService),__param$3(9,INotificationService),__param$3(10,IConfigurationService),__param$3(11,IAccessibilityService),__param$3(12,IModelService),__param$3(13,ILanguageService),__param$3(14,ILanguageConfigurationService),__param$3(15,ILanguageFeaturesService),__param$3(16,IMarkdownRendererService)],StandaloneEditor);let StandaloneDiffEditor2=class extends DiffEditorWidget{constructor(e,t,r,s,a,l,c,d,u,g,f,m){const _={...t};updateConfigurationService(d,_,!0);const v=l.registerEditorContainer(e);typeof _.theme=="string"&&l.setTheme(_.theme),typeof _.autoDetectHighContrast<"u"&&l.setAutoDetectHighContrast(!!_.autoDetectHighContrast),super(e,_,{},s,r,a,m,g),this._configurationService=d,this._standaloneThemeService=l,this._register(v)}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,r){return e.createInstance(StandaloneCodeEditor,t,r)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,r){return this.getModifiedEditor().addCommand(e,t,r)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};StandaloneDiffEditor2=__decorate$7([__param$3(2,IInstantiationService),__param$3(3,IContextKeyService),__param$3(4,ICodeEditorService),__param$3(5,IStandaloneThemeService),__param$3(6,INotificationService),__param$3(7,IConfigurationService),__param$3(8,IContextMenuService),__param$3(9,IEditorProgressService),__param$3(10,IClipboardService),__param$3(11,IAccessibilitySignalService)],StandaloneDiffEditor2);function createTextModel(o,e,t,r,s){if(t=t||"",!r){const a=t.indexOf("\n");let l=t;return a!==-1&&(l=t.substring(0,a)),doCreateModel(o,t,e.createByFilepathOrFirstLine(s||null,l),s)}return doCreateModel(o,t,e.createById(r),s)}function doCreateModel(o,e,t,r){return o.createModel(e,t,r)}registerColor("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},localize(142,"The background color of the diff editor's header"));registerColor("multiDiffEditor.background",editorBackground,localize(143,"The background color of the multi file diff editor"));registerColor("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},localize(144,"The border color of the multi file diff editor"));var __decorate$6=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$2=function(o,e){return function(t,r){e(t,r,o)}};class TemplateData{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let DiffEditorItemTemplate=class extends Disposable$1{constructor(e,t,r,s,a){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=r,this._instantiationService=s,this._viewModel=observableValue(this,void 0),this._collapsed=derived(this,d=>{var u;return(u=this._viewModel.read(d))==null?void 0:u.collapsed.read(d)}),this._editorContentHeight=observableValue(this,500),this.contentHeight=derived(this,d=>(this._collapsed.read(d)?0:this._editorContentHeight.read(d))+this._outerEditorHeight),this._modifiedContentWidth=observableValue(this,0),this._modifiedWidth=observableValue(this,0),this._originalContentWidth=observableValue(this,0),this._originalWidth=observableValue(this,0),this.maxScroll=derived(this,d=>{const u=this._modifiedContentWidth.read(d)-this._modifiedWidth.read(d),g=this._originalContentWidth.read(d)-this._originalWidth.read(d);return u>g?{maxScroll:u,width:this._modifiedWidth.read(d)}:{maxScroll:g,width:this._originalWidth.read(d)}}),this._elements=h("div.multiDiffEntry",[h("div.header@header",[h("div.header-content",[h("div.collapse-button@collapseButton"),h("div.file-path",[h("div.title.modified.show-file-icons@primaryPath",[]),h("div.status.deleted@status",["R"]),h("div.title.original.show-file-icons@secondaryPath",[])]),h("div.actions@actions")])]),h("div.editorParent",[h("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(DiffEditorWidget,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=observableCodeEditor(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=observableCodeEditor(this.editor.getOriginalEditor()).isFocused,this.isFocused=derived(this,d=>this.isModifedFocused.read(d)||this.isOriginalFocused.read(d)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new DisposableStore$1),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const l=new Button(this._elements.collapseButton,{});this._register(autorun(d=>{l.element.className="",l.icon=this._collapsed.read(d)?Codicon.chevronRight:Codicon.chevronDown})),this._register(l.onDidClick(()=>{var d;(d=this._viewModel.get())==null||d.collapsed.set(!this._collapsed.get(),void 0)})),this._register(autorun(d=>{this._elements.editor.style.display=this._collapsed.read(d)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(d=>{const u=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(u,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(d=>{const u=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(u,void 0)})),this._register(this.editor.onDidContentSizeChange(d=>{globalTransaction(u=>{this._editorContentHeight.set(d.contentHeight,u),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),u),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),u)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(d=>{if(this._isSettingScrollTop||!d.scrollTopChanged||!this._data)return;const u=d.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(u)})),this._register(autorun(d=>{var g;const u=(g=this._viewModel.read(d))==null?void 0:g.isActive.read(d);this._elements.root.classList.toggle("active",u)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(a.createScoped(this._elements.actions));const c=this._register(this._instantiationService.createChild(new ServiceCollection([IContextKeyService,this._contextKeyService])));this._register(c.createInstance(MenuWorkbenchToolBar,this._elements.actions,MenuId.MultiDiffEditorFileToolbar,{actionRunner:this._register(new ActionRunnerWithContext(()=>{var d,u,g;return(g=(d=this._viewModel.get())==null?void 0:d.modifiedUri)!=null?g:(u=this._viewModel.get())==null?void 0:u.originalUri})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:d=>d.startsWith("navigation")},actionViewItemProvider:(d,u)=>createActionViewItem(c,d,u)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(s){return{...s,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!e){globalTransaction(s=>{this._viewModel.set(void 0,s),this.editor.setDiffModel(null,s),this._dataStore.clear()});return}const r=e.viewModel.documentDiffItem;if(globalTransaction(s=>{var u,g,f,m;(g=this._resourceLabel)==null||g.setUri((u=e.viewModel.modifiedUri)!=null?u:e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let a=!1,l=!1,c=!1,d="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(d="R",a=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(d="A",c=!0):(d="D",l=!0),this._elements.status.classList.toggle("renamed",a),this._elements.status.classList.toggle("deleted",l),this._elements.status.classList.toggle("added",c),this._elements.status.innerText=d,(f=this._resourceLabel2)==null||f.setUri(a?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,s),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,s),this.editor.updateOptions(t((m=r.options)!=null?m:{}))}),r.onOptionsDidChange&&this._dataStore.add(r.onOptionsDidChange(()=>{var s;this.editor.updateOptions(t((s=r.options)!=null?s:{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,s=>{s||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(const[s,a]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(s,a)}render(e,t,r,s){this._elements.root.style.visibility="visible",this._elements.root.style.top="".concat(e.start,"px"),this._elements.root.style.height="".concat(e.length,"px"),this._elements.root.style.width="".concat(t,"px"),this._elements.root.style.position="absolute";const a=e.length-this._headerHeight,l=Math.max(0,Math.min(s.start-e.start,a));this._elements.header.style.transform="translateY(".concat(l,"px)"),globalTransaction(c=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=r,this.editor.getOriginalEditor().setScrollTop(r)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",l>0||r>0),this._elements.header.classList.toggle("collapsed",l===a)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};DiffEditorItemTemplate=__decorate$6([__param$2(3,IInstantiationService),__param$2(4,IContextKeyService)],DiffEditorItemTemplate);class ObjectPool{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){var r;let t;if(this._unused.size===0)t=this._create(e),this._itemData.set(t,e);else{const s=[...this._unused.values()];t=(r=s.find(a=>this._itemData.get(a).getId()===e.getId()))!=null?r:s[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var __decorate$5=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param$1=function(o,e){return function(t,r){e(t,r,o)}};let MultiDiffEditorWidgetImpl=class extends Disposable$1{constructor(e,t,r,s,a,l){super(),this._element=e,this._dimension=t,this._viewModel=r,this._workbenchUIElementFactory=s,this._parentContextKeyService=a,this._parentInstantiationService=l,this._scrollableElements=h("div.scrollContent",[h("div@content",{style:{overflow:"hidden"}}),h("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new Scrollable$1({forceIntegerValues:!1,scheduleAtNextAnimationFrame:u=>scheduleAtNextAnimationFrame(getWindow$1(this._element),u),smoothScrollDuration:100})),this._scrollableElement=this._register(new SmoothScrollableElement(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=h("div.monaco-component.multiDiffEditor",{},[h("div",{},[this._scrollableElement.getDomNode()]),h("div.placeholder@placeholder",{},[h("div")])]),this._sizeObserver=this._register(new ObservableElementSizeObserver(this._element,void 0)),this._objectPool=this._register(new ObjectPool(u=>{const g=this._instantiationService.createInstance(DiffEditorItemTemplate,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return g.setData(u),g})),this.scrollTop=observableFromEvent(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=observableFromEvent(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=derived(this,u=>{const g=this._viewModel.read(u);if(!g)return{items:[],getItem:v=>{throw new BugIndicatingError}};const f=g.items.read(u),m=new Map;return{items:f.map(v=>{var y;const b=u.store.add(new VirtualizedViewItem(v,this._objectPool,this.scrollLeft,S=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+S})})),C=(y=this._lastDocStates)==null?void 0:y[b.getKey()];return C&&transaction(S=>{b.setViewState(C,S)}),m.set(v,b),b}),getItem:v=>m.get(v)}}),this._viewItems=this._viewItemsInfo.map(this,u=>u.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(u,g)=>u.reduce((f,m)=>f+m.contentHeight.read(g)+this._spaceBetweenPx,0)),this.activeControl=derived(this,u=>{var m,_;const g=(m=this._viewModel.read(u))==null?void 0:m.activeDiffItem.read(u);return g?(_=this._viewItemsInfo.read(u).getItem(g).template.read(u))==null?void 0:_.editor:void 0}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new ServiceCollection([IContextKeyService,this._contextKeyService]))),this._contextKeyService.createKey(EditorContextKeys.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(autorunWithStore((u,g)=>{const f=this._viewModel.read(u);if(f&&f.contextKeys)for(const[m,_]of Object.entries(f.contextKeys)){const v=this._contextKeyService.createKey(m,void 0);v.set(_),g.add(toDisposable(()=>v.reset()))}}));const c=this._parentContextKeyService.createKey(EditorContextKeys.multiDiffEditorAllCollapsed.key,!1);this._register(autorun(u=>{const g=this._viewModel.read(u);if(g){const f=g.items.read(u).every(m=>m.collapsed.read(u));c.set(f)}})),this._register(autorun(u=>{const g=this._dimension.read(u);this._sizeObserver.observe(g)}));const d=derived(u=>{if(this._viewItems.read(u).length>0)return;const f=this._viewModel.read(u);return!f||f.isLoading.read(u)?localize(145,"Loading..."):localize(146,"No Changed Files")});this._register(autorun(u=>{const g=d.read(u);this._elements.placeholder.innerText=g!=null?g:"",this._elements.placeholder.classList.toggle("visible",!!g)})),this._scrollableElements.content.style.position="relative",this._register(autorun(u=>{const g=this._sizeObserver.height.read(u);this._scrollableElements.root.style.height="".concat(g,"px");const f=this._totalHeight.read(u);this._scrollableElements.content.style.height="".concat(f,"px");const m=this._sizeObserver.width.read(u);let _=m;const v=this._viewItems.read(u),b=findFirstMax(v,compareBy(C=>C.maxScroll.read(u).maxScroll,numberComparator));if(b){const C=b.maxScroll.read(u);_=m+C.maxScroll}this._scrollableElement.setScrollDimensions({width:m,height:g,scrollHeight:f,scrollWidth:_})})),e.replaceChildren(this._elements.root),this._register(toDisposable(()=>{e.replaceChildren()})),this._register(autorun(u=>{const g=this._viewModel.read(u);if(g&&!g.isLoading.read(u)){if(g.items.read(u).length===0||g.activeDiffItem.read(u))return;this.goToNextChange()}})),this._register(this._register(autorun(u=>{globalTransaction(g=>{this.render(u)})})))}reveal(e,t){var u;const r=this._viewItems.get(),s=r.findIndex(g=>{var f,m,_,v;return((f=g.viewModel.originalUri)==null?void 0:f.toString())===((m=e.original)==null?void 0:m.toString())&&((_=g.viewModel.modifiedUri)==null?void 0:_.toString())===((v=e.modified)==null?void 0:v.toString())});if(s===-1)throw new BugIndicatingError("Resource not found in diff editor");const a=r[s];this._viewModel.get().activeDiffItem.setCache(a.viewModel,void 0);let l=0;for(let g=0;g<s;g++)l+=r[g].contentHeight.get()+this._spaceBetweenPx;this._scrollableElement.setScrollPosition({scrollTop:l});const c=(u=a.template.get())==null?void 0:u.editor,d="original"in e?c==null?void 0:c.getOriginalEditor():c==null?void 0:c.getModifiedEditor();d&&(t!=null&&t.range)&&(d.revealRangeInCenter(t.range),highlightRange(d,t.range))}goToNextChange(){this._navigateToChange("next")}_navigateToChange(e){var d,u,g,f,m;const t=this._viewItems.get();if(t.length===0)return;const r=(d=this._viewModel.get())==null?void 0:d.activeDiffItem.get(),s=r?t.findIndex(_=>_.viewModel===r):-1;if(s===-1){this._goToFile(0,"first");return}const a=t[s];a.viewModel.collapsed.get()&&a.viewModel.collapsed.set(!1,void 0);const l=(u=a.template.get())==null?void 0:u.editor;if((f=(g=l==null?void 0:l.getDiffComputationResult())==null?void 0:g.changes2)!=null&&f.length){const _=((m=l.getModifiedEditor().getPosition())==null?void 0:m.lineNumber)||1,v=l.getDiffComputationResult().changes2;if(e==="next"?v.some(C=>C.modified.startLineNumber>_):v.some(C=>C.modified.endLineNumberExclusive<=_)){l.goToDiff(e);return}}const c=(s+(e==="next"?1:-1)+t.length)%t.length;this._goToFile(c,e==="next"?"first":"last")}_goToFile(e,t){var a,l,c;const r=this._viewItems.get()[e];r.viewModel.collapsed.get()&&r.viewModel.collapsed.set(!1,void 0),this.reveal({original:r.viewModel.originalUri,modified:r.viewModel.modifiedUri});const s=(a=r.template.get())==null?void 0:a.editor;if((c=(l=s==null?void 0:s.getDiffComputationResult())==null?void 0:l.changes2)!=null&&c.length)if(t==="first")s.revealFirstDiff();else{const d=s.getDiffComputationResult().changes2.at(-1),u=s.getModifiedEditor();u.setPosition({lineNumber:d.modified.startLineNumber,column:1}),u.revealLineInCenter(d.modified.startLineNumber)}s==null||s.focus()}render(e){const t=this.scrollTop.read(e);let r=0,s=0,a=0;const l=this._sizeObserver.height.read(e),c=OffsetRange.ofStartAndLength(t,l),d=this._sizeObserver.width.read(e);for(const u of this._viewItems.read(e)){const g=u.contentHeight.read(e),f=Math.min(g,l),m=OffsetRange.ofStartAndLength(s,f),_=OffsetRange.ofStartAndLength(a,g);if(_.isBefore(c))r-=g-f,u.hide();else if(_.isAfter(c))u.hide();else{const v=Math.max(0,Math.min(c.start-_.start,g-f));r-=v;const b=OffsetRange.ofStartAndLength(t+r,l);u.render(m,v,d,b)}s+=f+this._spaceBetweenPx,a+=g+this._spaceBetweenPx}this._scrollableElements.content.style.transform="translateY(".concat(-(t+r),"px)")}};MultiDiffEditorWidgetImpl=__decorate$5([__param$1(4,IContextKeyService),__param$1(5,IInstantiationService)],MultiDiffEditorWidgetImpl);function highlightRange(o,e){const t=o.getModel(),r=o.createDecorationsCollection([{range:e,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{o.getModel()===t&&r.clear()},350)}class VirtualizedViewItem extends Disposable$1{constructor(e,t,r,s){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=r,this._deltaScrollVertical=s,this._templateRef=this._register(disposableObservableValue(this,void 0)),this.contentHeight=derived(this,a=>{var l,c,d;return(d=(c=(l=this._templateRef.read(a))==null?void 0:l.object.contentHeight)==null?void 0:c.read(a))!=null?d:this.viewModel.lastTemplateData.read(a).contentHeight}),this.maxScroll=derived(this,a=>{var l,c;return(c=(l=this._templateRef.read(a))==null?void 0:l.object.maxScroll.read(a))!=null?c:{maxScroll:0,scrollWidth:0}}),this.template=derived(this,a=>{var l;return(l=this._templateRef.read(a))==null?void 0:l.object}),this._isHidden=observableValue(this,!1),this._isFocused=derived(this,a=>{var l,c;return(c=(l=this.template.read(a))==null?void 0:l.isFocused.read(a))!=null?c:!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(autorun(a=>{var c;const l=this._scrollLeft.read(a);(c=this._templateRef.read(a))==null||c.object.setScrollLeft(l)})),this._register(autorun(a=>{const l=this._templateRef.read(a);!l||!this._isHidden.read(a)||l.object.isFocused.read(a)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var e;return"VirtualViewItem(".concat((e=this.viewModel.documentDiffItem.modified)==null?void 0:e.uri.toString(),")")}getKey(){return this.viewModel.getKey()}setViewState(e,t){var l;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const r=this.viewModel.lastTemplateData.get(),s=(l=e.selections)==null?void 0:l.map(Selection$1.liftSelection);this.viewModel.lastTemplateData.set({...r,selections:s},t);const a=this._templateRef.get();a&&s&&a.object.editor.setSelections(s)}_updateTemplateData(e){var r;const t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:(r=t.object.editor.getSelections())!=null?r:void 0},e)}_clear(){const e=this._templateRef.get();e&&transaction(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,r,s){this._isHidden.set(!1,void 0);let a=this._templateRef.get();if(!a){a=this._objectPool.getUnusedObj(new TemplateData(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(a,void 0);const l=this.viewModel.lastTemplateData.get().selections;l&&a.object.editor.setSelections(l)}a.object.render(e,r,t,s)}}var __decorate$4=function(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a},__param=function(o,e){return function(t,r){e(t,r,o)}};let MultiDiffEditorWidget=class extends Disposable$1{constructor(e,t,r){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=r,this._dimension=observableValue(this,void 0),this._viewModel=observableValue(this,void 0),this._widgetImpl=derived(this,s=>s.store.add(this._instantiationService.createInstance(readHotReloadableExport(MultiDiffEditorWidgetImpl),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(recomputeInitiallyAndOnChange(this._widgetImpl))}};MultiDiffEditorWidget=__decorate$4([__param(2,IInstantiationService)],MultiDiffEditorWidget);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 createMultiFileDiffEditor(o,e){const t=StandaloneServices.initialize(e||{});return new MultiDiffEditorWidget(o,{},t)}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=(s,...a)=>EditorCommand.runEditorCommand(s,a,e,(l,c,d)=>Promise.resolve(o.run(c,...d))),r=new DisposableStore$1;if(r.add(CommandsRegistry.registerCommand(o.id,t)),o.contextMenuGroupId){const s={command:{id:o.id,title:o.label},when:e,group:o.contextMenuGroupId,order:o.contextMenuOrder||0};r.add(MenuRegistry.appendMenuItem(MenuId.EditorContext,s))}if(Array.isArray(o.keybindings)){const s=StandaloneServices.get(IKeybindingService);if(!(s instanceof StandaloneKeybindingService))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const a=ContextKeyExpr.and(e,ContextKeyExpr.deserialize(o.keybindingContext));r.add(s.addDynamicKeybindings(o.keybindings.map(l=>({keybinding:l,command:o.id,when:a}))))}}return r}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$1.None)}function createModel(o,e,t){const r=StandaloneServices.get(ILanguageService),s=r.getLanguageIdByMimeType(e)||e;return createTextModel(StandaloneServices.get(IModelService),r,o,s,t)}function setModelLanguage(o,e){const t=StandaloneServices.get(ILanguageService),r=t.getLanguageIdByMimeType(e)||e||PLAINTEXT_LANGUAGE_ID;o.setLanguage(t.createById(r))}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$1(o){return createWebWorker$2(StandaloneServices.get(IModelService),o)}function colorizeElement(o,e){const t=StandaloneServices.get(ILanguageService),r=StandaloneServices.get(IStandaloneThemeService);return Colorizer.colorizeElement(r,t,o,e).then(()=>{r.registerEditorContainer(o)})}function colorize(o,e,t){const r=StandaloneServices.get(ILanguageService);return StandaloneServices.get(IStandaloneThemeService).registerEditorContainer(mainWindow.document.body),Colorizer.colorize(r,o,e,t)}function colorizeModelLine(o,e,t=4){return StandaloneServices.get(IStandaloneThemeService).registerEditorContainer(mainWindow.document.body),Colorizer.colorizeModelLine(o,e,t)}function getSafeTokenizationSupport(o){const e=TokenizationRegistry.get(o);return e||{getInitialState:()=>NullState,tokenize:(t,r,s)=>nullTokenize(o,s)}}function tokenize(o,e){TokenizationRegistry.getOrCreate(e);const t=getSafeTokenizationSupport(e),r=splitLines(o),s=[];let a=t.getInitialState();for(let l=0,c=r.length;l<c;l++){const d=r[l],u=t.tokenize(d,!0,a);s[l]=u.tokens,a=u.endState}return s}function defineTheme(o,e){StandaloneServices.get(IStandaloneThemeService).defineTheme(o,e)}function setTheme(o){StandaloneServices.get(IStandaloneThemeService).setTheme(o)}function remeasureFonts(){FontMeasurements.clearAllFontInfos()}function registerCommand(o,e){return CommandsRegistry.registerCommand({id:o,handler:e})}function registerLinkOpener(o){return StandaloneServices.get(IOpenerService).registerOpener({async open(t){return typeof t=="string"&&(t=URI.parse(t)),o.open(t)}})}function registerEditorOpener(o){return StandaloneServices.get(ICodeEditorService).registerCodeEditorOpenHandler(async(t,r,s)=>{var c;if(!r)return null;const a=(c=t.options)==null?void 0:c.selection;let l;return a&&typeof a.endLineNumber=="number"&&typeof a.endColumn=="number"?l=a:a&&(l={lineNumber:a.startLineNumber,column:a.startColumn}),await o.openCodeEditor(r,t.resource,l)?r: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:createWebWorker$1,colorizeElement,colorize,colorizeModelLine,tokenize,defineTheme,setTheme,remeasureFonts,registerCommand,registerLinkOpener,registerEditorOpener,AccessibilitySupport,ContentWidgetPositionPreference,CursorChangeReason,DefaultEndOfLine,EditorAutoIndentStrategy,EditorOption,EndOfLinePreference,EndOfLineSequence,MinimapPosition,MinimapSectionHeaderStyle,MouseTargetType,OverlayWidgetPositionPreference,OverviewRulerLane,GlyphMarginLane,RenderLineNumbersType,RenderMinimap,ScrollbarVisibility,ScrollType,TextEditorCursorBlinkingStyle,TextEditorCursorStyle,TrackedRangeStickiness,WrappingIndent,InjectedTextCursorStops,PositionAffinity,ShowLightbulbIconMode,TextDirection,ConfigurationChangedEvent,BareFontInfo,FontInfo,TextModelResolvedOptions,FindMatch,ApplyUpdateResult,EditorZoom,createMultiFileDiffEditor,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(r){return r.toLowerCase()}));const t=arrayToHash(o);return e?function(r){return t[r.toLowerCase()]!==void 0&&t.hasOwnProperty(r.toLowerCase())}:function(r){return t[r]!==void 0&&t.hasOwnProperty(r)}}function compileRegExp(o,e,t){e=e.replace(/@@/g,"");let r=0,s;do s=!1,e=e.replace(/@(\w+)/g,function(l,c){s=!0;let d="";if(typeof o[c]=="string")d=o[c];else if(o[c]&&o[c]instanceof RegExp)d=o[c].source;else throw o[c]===void 0?createError(o,"language definition does not contain attribute '"+c+"', used at: "+e):createError(o,"attribute reference '"+c+"' must be a string, used at: "+e);return empty(d)?"":"(?:"+d+")"}),r++;while(s&&r<5);e=e.replace(/\x01/g,"@");const a=(o.ignoreCase?"i":"")+(o.unicode?"u":"");if(t&&e.match(/\$[sS](\d\d?)/g)){let c=null,d=null;return u=>(d&&c===u||(c=u,d=new RegExp(substituteMatchesRe(o,e,u),a)),d)}return new RegExp(e,a)}function selectScrutinee(o,e,t,r){if(r<0)return o;if(r<e.length)return e[r];if(r>=100){r=r-100;const s=t.split(".");if(s.unshift(t),r<s.length)return s[r]}return null}function createGuard(o,e,t,r){let s=-1,a=t,l=t.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);l&&(l[3]&&(s=parseInt(l[3]),l[2]&&(s=s+100)),a=l[4]);let c="~",d=a;!a||a.length===0?(c="!=",d=""):/^\w*$/.test(d)?c="==":(l=a.match(/^(@|!@|~|!~|==|!=)(.*)$/),l&&(c=l[1],d=l[2]));let u;if((c==="~"||c==="!~")&&/^(\w|\|)*$/.test(d)){const g=createKeywordMatcher(d.split("|"),o.ignoreCase);u=function(f){return c==="~"?g(f):!g(f)}}else if(c==="@"||c==="!@"){const g=o[d];if(!g)throw createError(o,"the @ match target '"+d+"' is not defined, in rule: "+e);if(!isArrayOf(function(m){return typeof m=="string"},g))throw createError(o,"the @ match target '"+d+"' must be an array of strings, in rule: "+e);const f=createKeywordMatcher(g,o.ignoreCase);u=function(m){return c==="@"?f(m):!f(m)}}else if(c==="~"||c==="!~")if(d.indexOf("$")<0){const g=compileRegExp(o,"^"+d+"$",!1);u=function(f){return c==="~"?g.test(f):!g.test(f)}}else u=function(g,f,m,_){return compileRegExp(o,"^"+substituteMatches(o,d,f,m,_)+"$",!1).test(g)};else if(d.indexOf("$")<0){const g=fixCase(o,d);u=function(f){return c==="=="?f===g:f!==g}}else{const g=fixCase(o,d);u=function(f,m,_,v,b){const C=substituteMatches(o,g,m,_,v);return c==="=="?f===C:f!==C}}return s===-1?{name:t,value:r,test:function(g,f,m,_){return u(g,g,f,m,_)}}:{name:t,value:r,test:function(g,f,m,_){const v=selectScrutinee(g,f,m,s);return u(v||"",g,f,m,_)}}}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 r={token:t.token};if(t.token.indexOf("$")>=0&&(r.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")r.bracket=1;else if(t.bracket==="@close")r.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 s=t.next;if(!/^(@pop|@push|@popall)$/.test(s)&&(s[0]==="@"&&(s=s.substr(1)),s.indexOf("$")<0&&!stateExists(o,substituteMatches(o,s,"",[],""))))throw createError(o,"the next state '"+t.next+"' is not defined in rule: "+e);r.next=s}}return typeof t.goBack=="number"&&(r.goBack=t.goBack),typeof t.switchTo=="string"&&(r.switchTo=t.switchTo),typeof t.log=="string"&&(r.log=t.log),typeof t.nextEmbedded=="string"&&(r.nextEmbedded=t.nextEmbedded,o.usesEmbedded=!0),r}}else if(Array.isArray(t)){const r=[];for(let s=0,a=t.length;s<a;s++)r[s]=compileAction(o,e,t[s]);return{group:r}}else if(t.cases){const r=[];let s=!1;for(const l in t.cases)if(t.cases.hasOwnProperty(l)){const c=compileAction(o,e,t.cases[l]);l==="@default"||l==="@"||l===""?r.push({test:void 0,value:c,name:l}):l==="@eos"?r.push({test:function(d,u,g,f){return f},value:c,name:l}):r.push(createGuard(o,e,l,c)),s||(s=!isString$2(c)&&(c.hasEmbeddedEndInCases||["@pop","@popall"].includes(c.nextEmbedded||"")))}const a=o.defaultToken;return{hasEmbeddedEndInCases:s,test:function(l,c,d,u){for(const g of r)if(!g.test||g.test(l,c,d,u))return g.value;return a}}}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:""}}let Rule$1=class{constructor(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let r;if(typeof t=="string")r=t;else if(t instanceof RegExp)r=t.source;else throw createError(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=r.length>0&&r[0]==="^",this.name=this.name+": "+r,this.regex=compileRegExp(e,"^(?:"+(this.matchOnlyAtLineStart?r.substr(1):r)+")",!0)}setAction(e,t){this.action=compileAction(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}};function compile(o,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={languageId:o,includeLF:bool(e.includeLF,!1),noThrow:!1,maxStack:100,start:typeof e.start=="string"?e.start:null,ignoreCase:bool(e.ignoreCase,!1),unicode:bool(e.unicode,!1),tokenPostfix:string(e.tokenPostfix,"."+o),defaultToken:string(e.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},r=e;r.languageId=o,r.includeLF=t.includeLF,r.ignoreCase=t.ignoreCase,r.unicode=t.unicode,r.noThrow=t.noThrow,r.usesEmbedded=t.usesEmbedded,r.stateNames=e.tokenizer,r.defaultToken=t.defaultToken;function s(l,c,d){for(const u of d){let g=u.include;if(g){if(typeof g!="string")throw createError(t,"an 'include' attribute must be a string at: "+l);if(g[0]==="@"&&(g=g.substr(1)),!e.tokenizer[g])throw createError(t,"include target '"+g+"' is not defined at: "+l);s(l+"."+g,c,e.tokenizer[g])}else{const f=new Rule$1(l);if(Array.isArray(u)&&u.length>=1&&u.length<=3)if(f.setRegex(r,u[0]),u.length>=3)if(typeof u[1]=="string")f.setAction(r,{token:u[1],next:u[2]});else if(typeof u[1]=="object"){const m=u[1];m.next=u[2],f.setAction(r,m)}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: "+l);else f.setAction(r,u[1]);else{if(!u.regex)throw createError(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+l);u.name&&typeof u.name=="string"&&(f.name=u.name),u.matchOnlyAtStart&&(f.matchOnlyAtLineStart=bool(u.matchOnlyAtLineStart,!1)),f.setRegex(r,u.regex),f.setAction(r,u.action)}c.push(f)}}}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 l in e.tokenizer)if(e.tokenizer.hasOwnProperty(l)){t.start||(t.start=l);const c=e.tokenizer[l];t.tokenizer[l]=new Array,s("tokenizer."+l,t.tokenizer[l],c)}if(t.usesEmbedded=r.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 a=[];for(const l of e.brackets){let c=l;if(c&&Array.isArray(c)&&c.length===3&&(c={token:c[2],open:c[0],close:c[1]}),c.open===c.close)throw createError(t,"open and close brackets in a 'brackets' attribute must be different: "+c.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if(typeof c.open=="string"&&typeof c.token=="string"&&typeof c.close=="string")a.push({token:c.token+t.tokenPostfix,open:fixCase(t,c.open),close:fixCase(t,c.close)});else throw createError(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=a,t.noThrow=!0,t}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 r=StandaloneServices.get(ILanguageService).onDidRequestRichLanguageFeatures(s=>{s===o&&(r.dispose(),e())});return r})}function onLanguageEncountered(o,e){return StandaloneServices.withServices(()=>{const r=StandaloneServices.get(ILanguageService).onDidRequestBasicLanguageFeatures(s=>{s===o&&(r.dispose(),e())});return r})}function setLanguageConfiguration(o,e){if(!StandaloneServices.get(ILanguageService).isRegisteredLanguageId(o))throw new Error("Cannot set configuration for unknown language ".concat(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,r){if(typeof this._actual.tokenize=="function")return TokenizationSupportAdapter.adaptTokenize(this._languageId,this._actual,e,r);throw new Error("Not supported!")}tokenizeEncoded(e,t,r){const s=this._actual.tokenizeEncoded(e,r);return new EncodedTokenizationResult(s.tokens,s.endState)}}class TokenizationSupportAdapter{constructor(e,t,r,s){this._languageId=e,this._actual=t,this._languageService=r,this._standaloneThemeService=s}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const r=[];let s=0;for(let a=0,l=e.length;a<l;a++){const c=e[a];let d=c.startIndex;a===0?d=0:d<s&&(d=s),r[a]=new Token$2(d,c.scopes,t),s=d}return r}static adaptTokenize(e,t,r,s){const a=t.tokenize(r,s),l=TokenizationSupportAdapter._toClassicTokens(a.tokens,e);let c;return a.endState.equals(s)?c=s:c=a.endState,new TokenizationResult(l,c)}tokenize(e,t,r){return TokenizationSupportAdapter.adaptTokenize(this._languageId,this._actual,e,r)}_toBinaryTokens(e,t){const r=e.encodeLanguageId(this._languageId),s=this._standaloneThemeService.getColorTheme().tokenTheme,a=[];let l=0,c=0;for(let u=0,g=t.length;u<g;u++){const f=t[u],m=s.match(r,f.scopes)|1024;if(l>0&&a[l-1]===m)continue;let _=f.startIndex;u===0?_=0:_<c&&(_=c),a[l++]=_,a[l++]=m,c=_}const d=new Uint32Array(l);for(let u=0;u<l;u++)d[u]=a[u];return d}tokenizeEncoded(e,t,r){const s=this._actual.tokenize(e,r),a=this._toBinaryTokens(this._languageService.languageIdCodec,s.tokens);let l;return s.endState.equals(r)?l=r:l=s.endState,new EncodedTokenizationResult(a,l)}}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 r=1,s=o.length;r<s;r++)t[r]=Color.fromHex(o[r]);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(async()=>{const r=await Promise.resolve(e.create());return r?isATokensProvider(r)?createTokenizationSupportAdapter(o,r):new MonarchTokenizer(StandaloneServices.get(ILanguageService),StandaloneServices.get(IStandaloneThemeService),o,compile(o,r),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 ".concat(o));return isThenable(e)?registerTokensProviderFactory(o,{create:()=>e}):TokenizationRegistry.register(o,createTokenizationSupportAdapter(o,e))}function setMonarchTokensProvider(o,e){const t=r=>new MonarchTokenizer(StandaloneServices.get(ILanguageService),StandaloneServices.get(IStandaloneThemeService),o,compile(o,r),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 registerNewSymbolNameProvider(o,e){return StandaloneServices.get(ILanguageFeaturesService).newSymbolNamesProvider.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:async(r,s,a,l)=>{const c=r.getWordAtPosition(s);return Promise.resolve(e.provideHover(r,s,a,l)).then(d=>{if(d)return!d.range&&c&&(d.range=new Range$2(s.lineNumber,c.startColumn,s.lineNumber,c.endColumn)),d.range||(d.range=new Range$2(s.lineNumber,s.column,s.lineNumber,s.column)),d})}})}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:(s,a,l,c)=>{const u=StandaloneServices.get(IMarkerService).read({resource:s.uri}).filter(g=>Range$2.areIntersectingOrTouching(g,a));return e.provideCodeActions(s,a,{markers:u,only:l.only,trigger:l.trigger},c)},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,registerNewSymbolNameProvider,registerCompletionItemProvider,registerSignatureHelpProvider,registerHoverProvider,registerDocumentSymbolProvider,registerDocumentHighlightProvider,registerLinkedEditingRangeProvider,registerDefinitionProvider,registerImplementationProvider,registerTypeDefinitionProvider,registerCodeLensProvider,registerCodeActionProvider,registerDocumentFormattingEditProvider,registerDocumentRangeFormattingEditProvider,registerOnTypeFormattingEditProvider,registerLinkProvider,registerColorProvider,registerFoldingRangeProvider,registerDeclarationProvider,registerSelectionRangeProvider,registerDocumentSemanticTokensProvider,registerDocumentRangeSemanticTokensProvider,registerInlineCompletionsProvider,registerInlayHintsProvider,DocumentHighlightKind:DocumentHighlightKind$1,CompletionItemKind:CompletionItemKind$1,CompletionItemTag:CompletionItemTag$1,CompletionItemInsertTextRule,SymbolKind:SymbolKind$1,SymbolTag:SymbolTag$1,IndentAction,CompletionTriggerKind:CompletionTriggerKind$1,SignatureHelpTriggerKind:SignatureHelpTriggerKind$1,InlayHintKind:InlayHintKind$1,InlineCompletionTriggerKind,CodeActionTriggerType,NewSymbolNameTag,NewSymbolNameTriggerKind,PartialAcceptTriggerKind,HoverVerbosityAction,InlineCompletionEndOfLifeReasonKind,InlineCompletionHintStyle,FoldingRangeKind:FoldingRangeKind$1,SelectedSuggestionInfo,EditDeltaInfo}}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$1=createMonacoBaseAPI();api$1.editor=createMonacoEditorAPI();api$1.languages=createMonacoLanguagesAPI();const CancellationTokenSource=api$1.CancellationTokenSource,Emitter=api$1.Emitter,KeyCode=api$1.KeyCode,KeyMod=api$1.KeyMod,Position=api$1.Position,Range=api$1.Range,Selection=api$1.Selection,SelectionDirection=api$1.SelectionDirection,MarkerSeverity=api$1.MarkerSeverity,MarkerTag=api$1.MarkerTag,Uri=api$1.Uri,Token=api$1.Token,editor=api$1.editor,languages=api$1.languages,monacoEnvironment$1=getMonacoEnvironment(),globalWithAMD=globalThis;(monacoEnvironment$1!=null&&monacoEnvironment$1.globalAPI||typeof globalWithAMD.define=="function"&&globalWithAMD.define.amd)&&(globalWithAMD.monaco=api$1);typeof globalWithAMD.require<"u"&&typeof globalWithAMD.require.config=="function"&&globalWithAMD.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 editor_api=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource,Emitter,KeyCode,KeyMod,MarkerSeverity,MarkerTag,Position,Range,Selection,SelectionDirection,Token,Uri,editor,languages},Symbol.toStringTag,{value:"Module"}));let LanguageServiceDefaultsImpl$3=class{constructor(e,t,r){this._onDidChange=new Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(r)}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)}};const 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);function getMode$4(){return __vitePreload(()=>import("./cssMode-DYz3fCur.js"),__vite__mapDeps([0,1]))}languages.onLanguage("less",()=>{getMode$4().then(o=>o.setupMode(lessDefaults))});languages.onLanguage("scss",()=>{getMode$4().then(o=>o.setupMode(scssDefaults))});languages.onLanguage("css",()=>{getMode$4().then(o=>o.setupMode(cssDefaults))});const monaco_contribution=Object.freeze(Object.defineProperty({__proto__:null,cssDefaults,lessDefaults,scssDefaults},Symbol.toStringTag,{value:"Module"}));let LanguageServiceDefaultsImpl$2=class{constructor(e,t,r){this._onDidChange=new Emitter,this._languageId=e,this.setOptions(t),this.setModeConfiguration(r)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}};const 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}}const 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;function getMode$3(){return __vitePreload(()=>import("./htmlMode-DiLm5d1m.js"),__vite__mapDeps([2,1]))}function registerHTMLLanguageService(o,e=optionsDefault,t=getConfigurationDefault(o)){const r=new LanguageServiceDefaultsImpl$2(o,e,t);let s;const a=languages.onLanguage(o,async()=>{s=(await getMode$3()).setupMode(r)});return{defaults:r,dispose(){a.dispose(),s==null||s.dispose(),s=void 0}}}const monaco_contribution$1=Object.freeze(Object.defineProperty({__proto__:null,handlebarDefaults,handlebarLanguageService,htmlDefaults,htmlLanguageService,razorDefaults,razorLanguageService,registerHTMLLanguageService},Symbol.toStringTag,{value:"Module"}));let LanguageServiceDefaultsImpl$1=class{constructor(e,t,r){this._onDidChange=new Emitter,this._languageId=e,this.setDiagnosticsOptions(t),this.setModeConfiguration(r)}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)}};const 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),getWorker$1=()=>getMode$2().then(o=>o.getWorker());function getMode$2(){return __vitePreload(()=>import("./jsonMode-CUm_K2lr.js"),__vite__mapDeps([3,1]))}languages.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]});languages.onLanguage("json",()=>{getMode$2().then(o=>o.setupMode(jsonDefaults))});const monaco_contribution$2=Object.freeze(Object.defineProperty({__proto__:null,getWorker:getWorker$1,jsonDefaults},Symbol.toStringTag,{value:"Module"})),typescriptVersion$1="5.9.3";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||{});class LanguageServiceDefaultsImpl{constructor(e,t,r,s,a){this._onDidChange=new Emitter,this._onDidExtraLibsChange=new Emitter,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(r),this.setInlayHintsOptions(s),this.setModeConfiguration(a),this._onDidExtraLibsChangeTimeout=-1}get onDidChange(){return this._onDidChange.event}get onDidExtraLibsChange(){return this._onDidExtraLibsChange.event}get modeConfiguration(){return this._modeConfiguration}get workerOptions(){return this._workerOptions}get inlayHintsOptions(){return this._inlayHintsOptions}getExtraLibs(){return this._extraLibs}addExtraLib(e,t){let r;if(typeof t>"u"?r="ts:extralib-".concat(Math.random().toString(36).substring(2,15)):r=t,this._extraLibs[r]&&this._extraLibs[r].content===e)return{dispose:()=>{}};let s=1;return this._removedExtraLibs[r]&&(s=this._removedExtraLibs[r]+1),this._extraLibs[r]&&(s=this._extraLibs[r].version+1),this._extraLibs[r]={content:e,version:s},this._fireOnDidExtraLibsChangeSoon(),{dispose:()=>{let a=this._extraLibs[r];a&&a.version===s&&(delete this._extraLibs[r],this._removedExtraLibs[r]=s,this._fireOnDidExtraLibsChangeSoon())}}}setExtraLibs(e){for(const t in this._extraLibs)this._removedExtraLibs[t]=this._extraLibs[t].version;if(this._extraLibs=Object.create(null),e&&e.length>0)for(const t of e){const r=t.filePath||"ts:extralib-".concat(Math.random().toString(36).substring(2,15)),s=t.content;let a=1;this._removedExtraLibs[r]&&(a=this._removedExtraLibs[r]+1),this._extraLibs[r]={content:s,version:a}}this._fireOnDidExtraLibsChangeSoon()}_fireOnDidExtraLibsChangeSoon(){this._onDidExtraLibsChangeTimeout===-1&&(this._onDidExtraLibsChangeTimeout=window.setTimeout(()=>{this._onDidExtraLibsChangeTimeout=-1,this._onDidExtraLibsChange.fire(void 0)},0))}getCompilerOptions(){return this._compilerOptions}setCompilerOptions(e){this._compilerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}getDiagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(e){this._diagnosticsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setWorkerOptions(e){this._workerOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setInlayHintsOptions(e){this._inlayHintsOptions=e||Object.create(null),this._onDidChange.fire(void 0)}setMaximumWorkerIdleTime(e){}setEagerModelSync(e){this._eagerModelSync=e}getEagerModelSync(){return this._eagerModelSync}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(void 0)}}const typescriptVersion=typescriptVersion$1,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$1().then(o=>o.getTypeScriptWorker()),getJavaScriptWorker=()=>getMode$1().then(o=>o.getJavaScriptWorker());function getMode$1(){return __vitePreload(()=>import("./tsMode-DmlrhRh_.js"),[])}languages.onLanguage("typescript",()=>getMode$1().then(o=>o.setupTypeScript(typescriptDefaults)));languages.onLanguage("javascript",()=>getMode$1().then(o=>o.setupJavaScript(javascriptDefaults)));const monaco_contribution$3=Object.freeze(Object.defineProperty({__proto__:null,JsxEmit,ModuleKind,ModuleResolutionKind,NewLineKind,ScriptTarget,getJavaScriptWorker,getTypeScriptWorker,javascriptDefaults,typescriptDefaults,typescriptVersion},Symbol.toStringTag,{value:"Module"})),languageDefinitions={},lazyLanguageLoaders={};class LazyLanguageLoader{static getOrCreate(e){return lazyLanguageLoaders[e]||(lazyLanguageLoaders[e]=new LazyLanguageLoader(e)),lazyLanguageLoaders[e]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((t,r)=>{this._lazyLoadPromiseResolve=t,this._lazyLoadPromiseReject=r})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,languageDefinitions[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}}function registerLanguage(o){const e=o.id;languageDefinitions[e]=o,languages.register(o);const t=LazyLanguageLoader.getOrCreate(e);languages.registerTokensProviderFactory(e,{create:async()=>(await t.load()).language}),languages.onLanguageEncountered(e,async()=>{const r=await t.load();languages.setLanguageConfiguration(e,r.conf)})}registerLanguage({id:"abap",extensions:[".abap"],aliases:["abap","ABAP"],loader:()=>__vitePreload(()=>import("./abap-DLDM7-KI.js"),[])});registerLanguage({id:"apex",extensions:[".cls"],aliases:["Apex","apex"],mimetypes:["text/x-apex-source","text/x-apex"],loader:()=>__vitePreload(()=>import("./apex-DNDY2TF8.js"),[])});registerLanguage({id:"azcli",extensions:[".azcli"],aliases:["Azure CLI","azcli"],loader:()=>__vitePreload(()=>import("./azcli-Y6nb8tq_.js"),[])});registerLanguage({id:"bat",extensions:[".bat",".cmd"],aliases:["Batch","bat"],loader:()=>__vitePreload(()=>import("./bat-BwHxbl9M.js"),[])});registerLanguage({id:"bicep",extensions:[".bicep"],aliases:["Bicep"],loader:()=>__vitePreload(()=>import("./bicep-DhxVumxY.js"),[])});registerLanguage({id:"cameligo",extensions:[".mligo"],aliases:["Cameligo"],loader:()=>__vitePreload(()=>import("./cameligo-Bf6VGUru.js"),[])});registerLanguage({id:"clojure",extensions:[".clj",".cljs",".cljc",".edn"],aliases:["clojure","Clojure"],loader:()=>__vitePreload(()=>import("./clojure-Dnu-v4kV.js"),[])});registerLanguage({id:"coffeescript",extensions:[".coffee"],aliases:["CoffeeScript","coffeescript","coffee"],mimetypes:["text/x-coffeescript","text/coffeescript"],loader:()=>__vitePreload(()=>import("./coffee-Bd8akH9Z.js"),[])});registerLanguage({id:"c",extensions:[".c",".h"],aliases:["C","c"],loader:()=>__vitePreload(()=>import("./cpp-BbWJElDN.js"),[])});registerLanguage({id:"cpp",extensions:[".cpp",".cc",".cxx",".hpp",".hh",".hxx"],aliases:["C++","Cpp","cpp"],loader:()=>__vitePreload(()=>import("./cpp-BbWJElDN.js"),[])});registerLanguage({id:"csharp",extensions:[".cs",".csx",".cake"],aliases:["C#","csharp"],loader:()=>__vitePreload(()=>import("./csharp-Co3qMtFm.js"),[])});registerLanguage({id:"csp",extensions:[".csp"],aliases:["CSP","csp"],loader:()=>__vitePreload(()=>import("./csp-D-4FJmMZ.js"),[])});registerLanguage({id:"css",extensions:[".css"],aliases:["CSS","css"],mimetypes:["text/css"],loader:()=>__vitePreload(()=>import("./css-8WqAbiw4.js"),[])});registerLanguage({id:"cypher",extensions:[".cypher",".cyp"],aliases:["Cypher","OpenCypher"],loader:()=>__vitePreload(()=>import("./cypher-cTPe9QuQ.js"),[])});registerLanguage({id:"dart",extensions:[".dart"],aliases:["Dart","dart"],mimetypes:["text/x-dart-source","text/x-dart"],loader:()=>__vitePreload(()=>import("./dart-BOtBlQCF.js"),[])});registerLanguage({id:"dockerfile",extensions:[".dockerfile"],filenames:["Dockerfile"],aliases:["Dockerfile"],loader:()=>__vitePreload(()=>import("./dockerfile-BG73LgW2.js"),[])});registerLanguage({id:"ecl",extensions:[".ecl"],aliases:["ECL","Ecl","ecl"],loader:()=>__vitePreload(()=>import("./ecl-BEgZUVRK.js"),[])});registerLanguage({id:"elixir",extensions:[".ex",".exs"],aliases:["Elixir","elixir","ex"],loader:()=>__vitePreload(()=>import("./elixir-BkW5O-1t.js"),[])});registerLanguage({id:"flow9",extensions:[".flow"],aliases:["Flow9","Flow","flow9","flow"],loader:()=>__vitePreload(()=>import("./flow9-BeJ5waoc.js"),[])});registerLanguage({id:"fsharp",extensions:[".fs",".fsi",".ml",".mli",".fsx",".fsscript"],aliases:["F#","FSharp","fsharp"],loader:()=>__vitePreload(()=>import("./fsharp-PahG7c26.js"),[])});registerLanguage({id:"freemarker2",extensions:[".ftl",".ftlh",".ftlx"],aliases:["FreeMarker2","Apache FreeMarker2"],loader:()=>__vitePreload(()=>import("./freemarker2-Bx6PWyfI.js"),[]).then(o=>o.TagAutoInterpolationDollar)});registerLanguage({id:"freemarker2.tag-angle.interpolation-dollar",aliases:["FreeMarker2 (Angle/Dollar)","Apache FreeMarker2 (Angle/Dollar)"],loader:()=>__vitePreload(()=>import("./freemarker2-Bx6PWyfI.js"),[]).then(o=>o.TagAngleInterpolationDollar)});registerLanguage({id:"freemarker2.tag-bracket.interpolation-dollar",aliases:["FreeMarker2 (Bracket/Dollar)","Apache FreeMarker2 (Bracket/Dollar)"],loader:()=>__vitePreload(()=>import("./freemarker2-Bx6PWyfI.js"),[]).then(o=>o.TagBracketInterpolationDollar)});registerLanguage({id:"freemarker2.tag-angle.interpolation-bracket",aliases:["FreeMarker2 (Angle/Bracket)","Apache FreeMarker2 (Angle/Bracket)"],loader:()=>__vitePreload(()=>import("./freemarker2-Bx6PWyfI.js"),[]).then(o=>o.TagAngleInterpolationBracket)});registerLanguage({id:"freemarker2.tag-bracket.interpolation-bracket",aliases:["FreeMarker2 (Bracket/Bracket)","Apache FreeMarker2 (Bracket/Bracket)"],loader:()=>__vitePreload(()=>import("./freemarker2-Bx6PWyfI.js"),[]).then(o=>o.TagBracketInterpolationBracket)});registerLanguage({id:"freemarker2.tag-auto.interpolation-dollar",aliases:["FreeMarker2 (Auto/Dollar)","Apache FreeMarker2 (Auto/Dollar)"],loader:()=>__vitePreload(()=>import("./freemarker2-Bx6PWyfI.js"),[]).then(o=>o.TagAutoInterpolationDollar)});registerLanguage({id:"freemarker2.tag-auto.interpolation-bracket",aliases:["FreeMarker2 (Auto/Bracket)","Apache FreeMarker2 (Auto/Bracket)"],loader:()=>__vitePreload(()=>import("./freemarker2-Bx6PWyfI.js"),[]).then(o=>o.TagAutoInterpolationBracket)});registerLanguage({id:"go",extensions:[".go"],aliases:["Go"],loader:()=>__vitePreload(()=>import("./go-acbASCJo.js"),[])});registerLanguage({id:"graphql",extensions:[".graphql",".gql"],aliases:["GraphQL","graphql","gql"],mimetypes:["application/graphql"],loader:()=>__vitePreload(()=>import("./graphql-BxJiqAUM.js"),[])});registerLanguage({id:"handlebars",extensions:[".handlebars",".hbs"],aliases:["Handlebars","handlebars","hbs"],mimetypes:["text/x-handlebars-template"],loader:()=>__vitePreload(()=>import("./handlebars-oCneTOpc.js"),[])});registerLanguage({id:"hcl",extensions:[".tf",".tfvars",".hcl"],aliases:["Terraform","tf","HCL","hcl"],loader:()=>__vitePreload(()=>import("./hcl-DtV1sZF8.js"),[])});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-CNfV_3TM.js"),[])});registerLanguage({id:"ini",extensions:[".ini",".properties",".gitconfig"],filenames:["config",".gitattributes",".gitconfig",".editorconfig"],aliases:["Ini","ini"],loader:()=>__vitePreload(()=>import("./ini-Kd9XrMLS.js"),[])});registerLanguage({id:"java",extensions:[".java",".jav"],aliases:["Java","java"],mimetypes:["text/x-java-source","text/x-java"],loader:()=>__vitePreload(()=>import("./java-CXBNlu9o.js"),[])});registerLanguage({id:"javascript",extensions:[".js",".es6",".jsx",".mjs",".cjs"],firstLine:"^#!.*\\bnode",filenames:["jakefile"],aliases:["JavaScript","javascript","js"],mimetypes:["text/javascript"],loader:()=>__vitePreload(()=>import("./javascript-DiNT5jeZ.js"),__vite__mapDeps([4,5]))});registerLanguage({id:"julia",extensions:[".jl"],aliases:["julia","Julia"],loader:()=>__vitePreload(()=>import("./julia-cl7-CwDS.js"),[])});registerLanguage({id:"kotlin",extensions:[".kt",".kts"],aliases:["Kotlin","kotlin"],mimetypes:["text/x-kotlin-source","text/x-kotlin"],loader:()=>__vitePreload(()=>import("./kotlin-s7OhZKlX.js"),[])});registerLanguage({id:"less",extensions:[".less"],aliases:["Less","less"],mimetypes:["text/x-less","text/less"],loader:()=>__vitePreload(()=>import("./less-BnJUVY2t.js"),[])});registerLanguage({id:"lexon",extensions:[".lex"],aliases:["Lexon"],loader:()=>__vitePreload(()=>import("./lexon-OrD6JF1K.js"),[])});registerLanguage({id:"lua",extensions:[".lua"],aliases:["Lua","lua"],loader:()=>__vitePreload(()=>import("./lua-Cyyb5UIc.js"),[])});registerLanguage({id:"liquid",extensions:[".liquid",".html.liquid"],aliases:["Liquid","liquid"],mimetypes:["application/liquid"],loader:()=>__vitePreload(()=>import("./liquid-COO5zkxx.js"),[])});registerLanguage({id:"m3",extensions:[".m3",".i3",".mg",".ig"],aliases:["Modula-3","Modula3","modula3","m3"],loader:()=>__vitePreload(()=>import("./m3-B8OfTtLu.js"),[])});registerLanguage({id:"markdown",extensions:[".md",".markdown",".mdown",".mkdn",".mkd",".mdwn",".mdtxt",".mdtext"],aliases:["Markdown","markdown"],loader:()=>__vitePreload(()=>import("./markdown-BFxVWTOG.js"),[])});registerLanguage({id:"mdx",extensions:[".mdx"],aliases:["MDX","mdx"],loader:()=>__vitePreload(()=>import("./mdx-BVmZ3St8.js"),[])});registerLanguage({id:"mips",extensions:[".s"],aliases:["MIPS","MIPS-V"],mimetypes:["text/x-mips","text/mips","text/plaintext"],loader:()=>__vitePreload(()=>import("./mips-CiqrrVzr.js"),[])});registerLanguage({id:"msdax",extensions:[".dax",".msdax"],aliases:["DAX","MSDAX"],loader:()=>__vitePreload(()=>import("./msdax-DmeGPVcC.js"),[])});registerLanguage({id:"mysql",extensions:[],aliases:["MySQL","mysql"],loader:()=>__vitePreload(()=>import("./mysql-C_tMU-Nz.js"),[])});registerLanguage({id:"objective-c",extensions:[".m"],aliases:["Objective-C"],loader:()=>__vitePreload(()=>import("./objective-c-BDtDVThU.js"),[])});registerLanguage({id:"pascal",extensions:[".pas",".p",".pp"],aliases:["Pascal","pas"],mimetypes:["text/x-pascal-source","text/x-pascal"],loader:()=>__vitePreload(()=>import("./pascal-vHIfCaH5.js"),[])});registerLanguage({id:"pascaligo",extensions:[".ligo"],aliases:["Pascaligo","ligo"],loader:()=>__vitePreload(()=>import("./pascaligo-DtZ0uQbO.js"),[])});registerLanguage({id:"perl",extensions:[".pl",".pm"],aliases:["Perl","pl"],loader:()=>__vitePreload(()=>import("./perl-Ub6l9XKa.js"),[])});registerLanguage({id:"pgsql",extensions:[],aliases:["PostgreSQL","postgres","pg","postgre"],loader:()=>__vitePreload(()=>import("./pgsql-BlNEE0v7.js"),[])});registerLanguage({id:"php",extensions:[".php",".php4",".php5",".phtml",".ctp"],aliases:["PHP","php"],mimetypes:["application/x-php"],loader:()=>__vitePreload(()=>import("./php-BBUBE1dy.js"),[])});registerLanguage({id:"pla",extensions:[".pla"],loader:()=>__vitePreload(()=>import("./pla-DSh2-awV.js"),[])});registerLanguage({id:"postiats",extensions:[".dats",".sats",".hats"],aliases:["ATS","ATS/Postiats"],loader:()=>__vitePreload(()=>import("./postiats-CocnycG-.js"),[])});registerLanguage({id:"powerquery",extensions:[".pq",".pqm"],aliases:["PQ","M","Power Query","Power Query M"],loader:()=>__vitePreload(()=>import("./powerquery-tScXyioY.js"),[])});registerLanguage({id:"powershell",extensions:[".ps1",".psm1",".psd1"],aliases:["PowerShell","powershell","ps","ps1"],loader:()=>__vitePreload(()=>import("./powershell-COWaemsV.js"),[])});registerLanguage({id:"proto",extensions:[".proto"],aliases:["protobuf","Protocol Buffers"],loader:()=>__vitePreload(()=>import("./protobuf-DRCB_Jb1.js"),[])});registerLanguage({id:"pug",extensions:[".jade",".pug"],aliases:["Pug","Jade","jade"],loader:()=>__vitePreload(()=>import("./pug-8SOpv6rk.js"),[])});registerLanguage({id:"python",extensions:[".py",".rpy",".pyw",".cpy",".gyp",".gypi"],aliases:["Python","py"],firstLine:"^#!/.*\\bpython[0-9.-]*\\b",loader:()=>__vitePreload(()=>import("./python-DSgzhXLi.js"),[])});registerLanguage({id:"qsharp",extensions:[".qs"],aliases:["Q#","qsharp"],loader:()=>__vitePreload(()=>import("./qsharp-Bw9ernYp.js"),[])});registerLanguage({id:"r",extensions:[".r",".rhistory",".rmd",".rprofile",".rt"],aliases:["R","r"],loader:()=>__vitePreload(()=>import("./r-j7ic8hl3.js"),[])});registerLanguage({id:"razor",extensions:[".cshtml"],aliases:["Razor","razor"],mimetypes:["text/x-cshtml"],loader:()=>__vitePreload(()=>import("./razor-Tuv2oUE2.js"),[])});registerLanguage({id:"redis",extensions:[".redis"],aliases:["redis"],loader:()=>__vitePreload(()=>import("./redis-Bu5POkcn.js"),[])});registerLanguage({id:"redshift",extensions:[],aliases:["Redshift","redshift"],loader:()=>__vitePreload(()=>import("./redshift-Bs9aos_-.js"),[])});registerLanguage({id:"restructuredtext",extensions:[".rst"],aliases:["reStructuredText","restructuredtext"],loader:()=>__vitePreload(()=>import("./restructuredtext-CqXO7rUv.js"),[])});registerLanguage({id:"ruby",extensions:[".rb",".rbx",".rjs",".gemspec",".pp"],filenames:["rakefile","Gemfile"],aliases:["Ruby","rb"],loader:()=>__vitePreload(()=>import("./ruby-DekwO-k2.js"),[])});registerLanguage({id:"rust",extensions:[".rs",".rlib"],aliases:["Rust","rust"],loader:()=>__vitePreload(()=>import("./rust-BzKRNQWT.js"),[])});registerLanguage({id:"sb",extensions:[".sb"],aliases:["Small Basic","sb"],loader:()=>__vitePreload(()=>import("./sb-BBc9UKZt.js"),[])});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-D9hQfWCl.js"),[])});registerLanguage({id:"scheme",extensions:[".scm",".ss",".sch",".rkt"],aliases:["scheme","Scheme"],loader:()=>__vitePreload(()=>import("./scheme-BPhDTwHR.js"),[])});registerLanguage({id:"scss",extensions:[".scss"],aliases:["Sass","sass","scss"],mimetypes:["text/x-scss","text/scss"],loader:()=>__vitePreload(()=>import("./scss-BCYer2Lf.js"),[])});registerLanguage({id:"shell",extensions:[".sh",".bash"],aliases:["Shell","sh"],loader:()=>__vitePreload(()=>import("./shell-DiJ1NA_G.js"),[])});registerLanguage({id:"sol",extensions:[".sol"],aliases:["sol","solidity","Solidity"],loader:()=>__vitePreload(()=>import("./solidity-Db0IVjzk.js"),[])});registerLanguage({id:"aes",extensions:[".aes"],aliases:["aes","sophia","Sophia"],loader:()=>__vitePreload(()=>import("./sophia-CnS9iZB_.js"),[])});registerLanguage({id:"sparql",extensions:[".rq"],aliases:["sparql","SPARQL"],loader:()=>__vitePreload(()=>import("./sparql-CJmd_6j2.js"),[])});registerLanguage({id:"sql",extensions:[".sql"],aliases:["SQL"],loader:()=>__vitePreload(()=>import("./sql-ClhHkBeG.js"),[])});registerLanguage({id:"st",extensions:[".st",".iecst",".iecplc",".lc3lib",".TcPOU",".TcDUT",".TcGVL",".TcIO"],aliases:["StructuredText","scl","stl"],loader:()=>__vitePreload(()=>import("./st-CHwy0fLd.js"),[])});registerLanguage({id:"swift",aliases:["Swift","swift"],extensions:[".swift"],mimetypes:["text/swift"],loader:()=>__vitePreload(()=>import("./swift-CnmFD0ga.js"),[])});registerLanguage({id:"systemverilog",extensions:[".sv",".svh"],aliases:["SV","sv","SystemVerilog","systemverilog"],loader:()=>__vitePreload(()=>import("./systemverilog-Bs9z6M-B.js"),[])});registerLanguage({id:"verilog",extensions:[".v",".vh"],aliases:["V","v","Verilog","verilog"],loader:()=>__vitePreload(()=>import("./systemverilog-Bs9z6M-B.js"),[])});registerLanguage({id:"tcl",extensions:[".tcl"],aliases:["tcl","Tcl","tcltk","TclTk","tcl/tk","Tcl/Tk"],loader:()=>__vitePreload(()=>import("./tcl-Dm6ycUr_.js"),[])});registerLanguage({id:"twig",extensions:[".twig"],aliases:["Twig","twig"],mimetypes:["text/x-twig"],loader:()=>__vitePreload(()=>import("./twig-Csy3S7wG.js"),[])});registerLanguage({id:"typescript",extensions:[".ts",".tsx",".cts",".mts"],aliases:["TypeScript","ts","typescript"],mimetypes:["text/typescript"],loader:()=>__vitePreload(()=>import("./typescript-BMf7XzdH.js"),[])});registerLanguage({id:"typespec",extensions:[".tsp"],aliases:["TypeSpec"],loader:()=>__vitePreload(()=>import("./typespec-BlibeYUN.js"),[])});registerLanguage({id:"vb",extensions:[".vb"],aliases:["Visual Basic","vb"],loader:()=>__vitePreload(()=>import("./vb-Db0cS2oM.js"),[])});registerLanguage({id:"wgsl",extensions:[".wgsl"],aliases:["WebGPU Shading Language","WGSL","wgsl"],loader:()=>__vitePreload(()=>import("./wgsl-BDVG1kWD.js"),[])});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-DSKFehPU.js"),[])});registerLanguage({id:"yaml",extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml","text/x-yaml"],loader:()=>__vitePreload(()=>import("./yaml-CJhIZNtp.js"),[])});var __defProp=Object.defineProperty,__defNormalProp=(o,e,t)=>e in o?__defProp(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t,__publicField=(o,e,t)=>__defNormalProp(o,typeof e!="symbol"?e+"":e,t),_a$1,_b,_c,_d,_e;function isRequestOrNotification(o){return o.method!==void 0}var ErrorObject;(function(o){function e(t){return t}o.create=e})(ErrorObject||(ErrorObject={}));var ErrorCode;(function(o){o.parseError=-32700,o.invalidRequest=-32600,o.methodNotFound=-32601,o.invalidParams=-32602,o.internalError=-32603;function e(a){return-32099<=a&&a<=-32e3}o.isServerError=e;function t(a){if(!e(a))throw new Error("Invalid range for a server error.");return a}o.serverError=t,o.unexpectedServerError=-32e3;function r(a){return!0}o.isApplicationError=r;function s(a){return a}o.applicationError=s,o.genericApplicationError=-320100})(ErrorCode||(ErrorCode={}));var EventEmitter$4=class{constructor(){__publicField(this,"listeners",new Set),__publicField(this,"event",e=>(this.listeners.add(e),{dispose:()=>{this.listeners.delete(e)}}))}fire(e){this.listeners.forEach(t=>t(e))}},ValueWithChangeEvent=class{constructor(o){__publicField(this,"_value"),__publicField(this,"eventEmitter"),this._value=o,this.eventEmitter=new EventEmitter$4}get value(){return this._value}set value(o){this._value!==o&&(this._value=o,this.eventEmitter.fire(o))}get onChange(){return this.eventEmitter.event}};function createTimeout(o,e){const t=setTimeout(e,o);return{dispose:()=>clearTimeout(t)}}function setAndDeleteOnDispose(o,e,t){return o instanceof Set?(o.add(e),{dispose:()=>o.delete(e)}):(o.set(e,t),{dispose:()=>o.delete(e)})}var Deferred=class{constructor(){__publicField(this,"_state","none"),__publicField(this,"promise"),__publicField(this,"resolve",()=>{}),__publicField(this,"reject",()=>{}),this.promise=new Promise((o,e)=>{this.resolve=o,this.reject=e})}get state(){return this._state}},BaseMessageTransport=(_a$1=class{constructor(){__publicField(this,"_unprocessedMessages",[]),__publicField(this,"_messageListener"),__publicField(this,"id",_a$1.id++),__publicField(this,"_state",new ValueWithChangeEvent({state:"open"})),__publicField(this,"state",this._state)}setListener(o){if(this._messageListener=o,!!o)for(;this._unprocessedMessages.length>0&&this._messageListener!==void 0;){const e=this._unprocessedMessages.shift();this._messageListener(e)}}send(o){return this._sendImpl(o)}_dispatchReceivedMessage(o){this._unprocessedMessages.length===0&&this._messageListener?this._messageListener(o):this._unprocessedMessages.push(o)}_onConnectionClosed(){this._state.value={state:"closed",error:void 0}}log(o){return new StreamLogger(this,o!=null?o:new ConsoleMessageLogger)}},__publicField(_a$1,"id",0),_a$1),StreamLogger=class{constructor(o,e){__publicField(this,"baseStream"),__publicField(this,"logger"),this.baseStream=o,this.logger=e}get state(){return this.baseStream.state}setListener(o){if(o===void 0){this.baseStream.setListener(void 0);return}this.baseStream.setListener(e=>{this.logger.log(this.baseStream,"incoming",e),o(e)})}send(o){return this.logger.log(this.baseStream,"outgoing",o),this.baseStream.send(o)}toString(){return"StreamLogger/".concat(this.baseStream.toString())}},ConsoleMessageLogger=class{log(o,e,t){const r=e==="incoming"?"<-":"->";console.log("".concat(r," [").concat(o.toString(),"] ").concat(JSON.stringify(t)))}},Channel=class Va{constructor(e){__publicField(this,"connect"),this.connect=e}mapContext(e){return new Va(t=>this.connect(t?mapRequestHandlerContext(t,e):void 0))}};function mapRequestHandlerContext(o,e){return{handleNotification:(t,r)=>o.handleNotification(t,e(r)),handleRequest:(t,r,s)=>o.handleRequest(t,r,e(s))}}var StreamBasedChannel=class Wa{constructor(e,t,r){__publicField(this,"_stream"),__publicField(this,"_listener"),__publicField(this,"_logger"),__publicField(this,"_unprocessedResponses",new Map),__publicField(this,"_lastUsedRequestId",0),this._stream=e,this._listener=t,this._logger=r,this._stream.setListener(s=>{isRequestOrNotification(s)?s.id===void 0?this._processNotification(s):this._processRequest(s):this._processResponse(s)})}static createChannel(e,t){let r=!1;return new Channel(s=>{if(r)throw new Error("A channel to the stream ".concat(e," was already constructed!"));return r=!0,new Wa(e,s,t)})}get state(){return this._stream.state}async _processNotification(e){if(e.id!==void 0)throw new Error;if(!this._listener){this._logger&&this._logger.debug({text:"Notification ignored",message:e});return}try{await this._listener.handleNotification({method:e.method,params:e.params||null})}catch(t){this._logger&&this._logger.warn({text:"Exception was thrown while handling notification: ".concat(t),exception:t,message:e})}}async _processRequest(e){if(e.id===void 0)throw new Error;let t;if(this._listener)try{t=await this._listener.handleRequest({method:e.method,params:e.params||null},e.id)}catch(s){this._logger&&this._logger.warn({text:"Exception was thrown while handling request: ".concat(s),message:e,exception:s}),t={error:{code:ErrorCode.internalError,message:"An unexpected exception was thrown.",data:void 0}}}else this._logger&&this._logger.debug({text:"Received request even though not listening for requests",message:e}),t={error:{code:ErrorCode.methodNotFound,message:"This endpoint does not listen for requests or notifications.",data:void 0}};let r;"result"in t?r={jsonrpc:"2.0",id:e.id,result:t.result}:r={jsonrpc:"2.0",id:e.id,error:t.error},await this._stream.send(r)}_processResponse(e){const t=""+e.id,r=this._unprocessedResponses.get(t);if(!r){this._logger&&this._logger.debug({text:"Got an unexpected response message",message:e});return}this._unprocessedResponses.delete(t),r(e)}_newRequestId(){return this._lastUsedRequestId++}sendRequest(e,t,r){const s={jsonrpc:"2.0",id:this._newRequestId(),method:e.method,params:e.params||void 0};return r&&r(s.id),new Promise((a,l)=>{const c=""+s.id;this._unprocessedResponses.set(c,d=>{"result"in d?a({result:d.result}):(d.error||l(new Error("Response had neither 'result' nor 'error' field set.")),a({error:d.error}))}),this._stream.send(s).then(void 0,d=>{this._unprocessedResponses.delete(c),l(d)})})}sendNotification(e,t){const r={jsonrpc:"2.0",id:void 0,method:e.method,params:e.params||void 0};return this._stream.send(r)}toString(){return"StreamChannel/"+this._stream.toString()}},Serializers;(function(o){function e(){return{deserializeFromJson:s=>({hasErrors:!1,value:s}),serializeToJson:s=>s}}o.sAny=e;function t(){return{deserializeFromJson:s=>({hasErrors:!1,value:{}}),serializeToJson:s=>({})}}o.sEmptyObject=t;function r(){return{deserializeFromJson:s=>({hasErrors:!1,value:void 0}),serializeToJson:s=>null}}o.sVoidFromNull=r})(Serializers||(Serializers={}));const OptionalMethodNotFound=Symbol("OptionalMethodNotFound");var TypedChannelBase=class{contextualize(o){return new ContextualizedTypedChannel(this,o)}},ContextualizedTypedChannel=class extends TypedChannelBase{constructor(o,e){super(),__publicField(this,"underylingTypedChannel"),__publicField(this,"converters"),this.underylingTypedChannel=o,this.converters=e}async request(o,e,t){const r=await this.converters.getSendContext(t);return this.underylingTypedChannel.request(o,e,r)}async notify(o,e,t){const r=await this.converters.getSendContext(t);return this.underylingTypedChannel.notify(o,e,r)}registerNotificationHandler(o,e){return this.underylingTypedChannel.registerNotificationHandler(o,async(t,r)=>await e(t,await this.converters.getNewContext(r)))}registerRequestHandler(o,e){return this.underylingTypedChannel.registerRequestHandler(o,async(t,r,s)=>await e(t,r,await this.converters.getNewContext(s)))}},TypedChannel=class Ua extends TypedChannelBase{constructor(e,t={}){super(),__publicField(this,"channelCtor"),__publicField(this,"_requestSender"),__publicField(this,"_handler",new Map),__publicField(this,"_unknownNotificationHandler",new Set),__publicField(this,"_timeout"),__publicField(this,"sendExceptionDetails",!1),__publicField(this,"_logger"),__publicField(this,"listeningDeferred",new Deferred),__publicField(this,"onListening",this.listeningDeferred.promise),__publicField(this,"_requestDidErrorEventEmitter",new EventEmitter$4),__publicField(this,"onRequestDidError",this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=createTimeout(1e3,()=>{this._requestSender||console.warn('"'.concat(this.startListen.name,'" has not been called within 1 second after construction of this channel. Did you forget to call it?'),this)})}static fromTransport(e,t={}){return new Ua(StreamBasedChannel.createChannel(e,t.logger),t)}startListen(){if(this._requestSender)throw new Error('"'.concat(this.startListen.name,'" can be called only once, but it already has been called.'));this._timeout&&(this._timeout.dispose(),this._timeout=void 0),this._requestSender=this.channelCtor.connect({handleRequest:(e,t,r)=>this.handleRequest(e,t,r),handleNotification:(e,t)=>this.handleNotification(e,t)}),this.listeningDeferred.resolve()}checkChannel(e){if(!e)throw new Error('"'.concat(this.startListen.name,'" must be called before any messages can be sent or received.'));return!0}async handleRequest(e,t,r){const s=this._handler.get(e.method);if(!s)return this._logger&&this._logger.debug({text:'No request handler for "'.concat(e.method,'".'),data:{requestObject:e}}),{error:{code:ErrorCode.methodNotFound,message:'No request handler for "'.concat(e.method,'".'),data:{method:e.method}}};if(s.kind!="request"){const l='"'.concat(e.method,'" is registered as notification, but was sent as request.');return this._logger&&this._logger.debug({text:l,data:{requestObject:e}}),{error:{code:ErrorCode.invalidRequest,message:l,data:{method:e.method}}}}const a=s.requestType.paramsSerializer.deserializeFromJson(e.params);if(a.hasErrors){const l="Got invalid params: ".concat(a.errorMessage);return this._logger&&this._logger.debug({text:l,data:{requestObject:e,errorMessage:a.errorMessage}}),{error:{code:ErrorCode.invalidParams,message:l,data:{errors:a.errorMessage}}}}else{const l=a.value;let c;try{const d=await s.handler(l,t,r);if("error"in d||"errorMessage"in d){const u=d.error?s.requestType.errorSerializer.serializeToJson(d.error):void 0;c={error:{code:d.errorCode||ErrorCode.genericApplicationError,message:d.errorMessage||"An error was returned",data:u}}}else c={result:s.requestType.resultSerializer.serializeToJson(d.ok)}}catch(d){d instanceof RequestHandlingError?c={error:{code:d.code,message:d.message}}:(this._logger&&this._logger.warn({text:"An exception was thrown while handling a request: ".concat(d,"."),exception:d,data:{requestObject:e}}),c={error:{code:ErrorCode.unexpectedServerError,message:this.sendExceptionDetails?"An exception was thrown while handling a request: ".concat(d,"."):"Server has thrown an unexpected exception"}})}return c}}async handleNotification(e,t){const r=this._handler.get(e.method);if(!r){for(const l of this._unknownNotificationHandler)l(e);this._unknownNotificationHandler.size===0&&this._logger&&this._logger.debug({text:'Unhandled notification "'.concat(e.method,'"'),data:{requestObject:e}});return}if(r.kind!="notification"){this._logger&&this._logger.debug({text:'"'.concat(e.method,'" is registered as request, but was sent as notification.'),data:{requestObject:e}});return}const s=r.notificationType.paramsSerializer.deserializeFromJson(e.params);if(s.hasErrors){this._logger&&this._logger.debug({text:"Got invalid params: ".concat(s),data:{requestObject:e,errorMessage:s.errorMessage}});return}const a=s.value;for(const l of r.handlers)try{l(a,t)}catch(c){this._logger&&this._logger.warn({text:"An exception was thrown while handling a notification: ".concat(c,"."),exception:c,data:{requestObject:e}})}}registerUnknownNotificationHandler(e){return setAndDeleteOnDispose(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw new Error('Handler with method "'.concat(e.method,'" already registered.'));return setAndDeleteOnDispose(this._handler,e.method,{kind:"request",requestType:e,handler:t})}registerNotificationHandler(e,t){let r=this._handler.get(e.method);if(!r)r={kind:"notification",notificationType:e,handlers:new Set},this._handler.set(e.method,r);else{if(r.kind!=="notification")throw new Error('Method "'.concat(e.method,'" was already registered as request handler.'));if(r.notificationType!==e)throw new Error('Method "'.concat(e.method,'" was registered for a different type.'))}return setAndDeleteOnDispose(r.handlers,t)}getRegisteredTypes(){const e=[];for(const t of this._handler.values())t.kind==="notification"?e.push(t.notificationType):t.kind==="request"&&e.push(t.requestType);return e}async request(e,t,r){if(!this.checkChannel(this._requestSender))throw new Error("Impossible");const s=e.paramsSerializer.serializeToJson(t);assertObjectArrayOrNull(s);const a=await this._requestSender.sendRequest({method:e.method,params:s},r);if("error"in a){if(e.isOptional&&a.error.code===ErrorCode.methodNotFound)return OptionalMethodNotFound;let l;if(a.error.data!==void 0){const d=e.errorSerializer.deserializeFromJson(a.error.data);if(d.hasErrors)throw new Error(d.errorMessage);l=d.value}else l=void 0;const c=new RequestHandlingError(a.error.message,l,a.error.code);throw this._requestDidErrorEventEmitter.fire({error:c}),c}else{const l=e.resultSerializer.deserializeFromJson(a.result);if(l.hasErrors)throw new Error("Could not deserialize response: "+l.errorMessage+"\n\n".concat(JSON.stringify(a,null,2)));return l.value}}async notify(e,t,r){if(!this.checkChannel(this._requestSender))throw new Error;const s=e.paramsSerializer.serializeToJson(t);assertObjectArrayOrNull(s),this._requestSender.sendNotification({method:e.method,params:s},r)}};function assertObjectArrayOrNull(o){if(o!==null&&Array.isArray(o)&&typeof o!="object")throw new Error("Invalid value! Only null, array and object is allowed.")}var RequestHandlingError=class Ka extends Error{constructor(e,t,r=ErrorCode.genericApplicationError){super(e),__publicField(this,"data"),__publicField(this,"code"),this.data=t,this.code=r,Object.setPrototypeOf(this,Ka.prototype)}},RequestType=class Zs{constructor(e,t,r,s,a=!1){__publicField(this,"method"),__publicField(this,"paramsSerializer"),__publicField(this,"resultSerializer"),__publicField(this,"errorSerializer"),__publicField(this,"isOptional"),__publicField(this,"kind","request"),this.method=e,this.paramsSerializer=t,this.resultSerializer=r,this.errorSerializer=s,this.isOptional=a}withMethod(e){return new Zs(e,this.paramsSerializer,this.resultSerializer,this.errorSerializer)}optional(){return new Zs(this.method,this.paramsSerializer,this.resultSerializer,this.errorSerializer,!0)}},NotificationType=class Ga{constructor(e,t){__publicField(this,"method"),__publicField(this,"paramsSerializer"),__publicField(this,"kind","notification"),this.method=e,this.paramsSerializer=t}withMethod(e){return new Ga(e,this.paramsSerializer)}};function unverifiedRequest(o){return new RequestType((o||{}).method,Serializers.sAny(),Serializers.sAny(),Serializers.sAny())}function unverifiedNotification(o){return new NotificationType((o||{}).method,Serializers.sAny())}const IsErrorWrapper=Symbol();var ErrorWrapper=(_b=IsErrorWrapper,_c=class{constructor(o){__publicField(this,"error"),__publicField(this,_b),this.error=o}},__publicField(_c,"factory",o=>new _c(o)),_c);function contract(o){const e=transform(o.server),t=transform(o.client);return new Contract(o.tags||[],e,t)}function transform(o){const e={};for(const[t,r]of Object.entries(o)){const s=r.method?r.method:t;e[t]=r.withMethod(s)}return e}var Contract=class ja{constructor(e=[],t,r){__publicField(this,"tags"),__publicField(this,"server"),__publicField(this,"client"),this.tags=e,this.server=t,this.client=r}_onlyDesignTime(){return new Error("This property is not meant to be accessed at runtime")}get TContractObject(){throw this._onlyDesignTime()}get TClientInterface(){throw this._onlyDesignTime()}get TServerInterface(){throw this._onlyDesignTime()}get TClientHandler(){throw this._onlyDesignTime()}get TServerHandler(){throw this._onlyDesignTime()}get TTags(){throw this._onlyDesignTime()}getInterface(e,t,r,s){const a=this.buildCounterpart(e,r),l=this.registerHandlers(e,t,s,a);return{counterpart:a,dispose:()=>l.dispose()}}buildCounterpart(e,t){const r={};for(const[s,a]of Object.entries(t)){let l;a.kind==="request"?a.isOptional?l=async(c,d)=>{c===void 0&&(c={});try{return await e.request(a,c,d)}catch(u){if(u&&u.code===ErrorCode.methodNotFound)return OptionalMethodNotFound;throw u}}:l=(c,d)=>(c===void 0&&(c={}),e.request(a,c,d)):l=(c,d)=>(c===void 0&&(c={}),e.notify(a,c,d)),r[s]=l}return r}registerHandlers(e,t,r,s){const a=[];for(const[l,c]of Object.entries(t))if(c.kind==="request"){let d=r[l];if(!d)continue;const u=this.createRequestHandler(s,d);a.push(e.registerRequestHandler(c,u))}else{const d=r[l];d&&a.push(e.registerNotificationHandler(c,(u,g)=>{d(u,{context:g,counterpart:s})}))}return{dispose:()=>a.forEach(l=>l.dispose())}}createRequestHandler(e,t){return async(r,s,a)=>{const l=await t(r,{context:a,counterpart:e,newErr:ErrorWrapper.factory,requestId:s});return l instanceof ErrorWrapper?l.error:{ok:l}}}static getServerFromStream(e,t,r,s){const a=TypedChannel.fromTransport(t,r),{server:l}=e.getServer(a,s);return a.startListen(),{channel:a,server:l}}static registerServerToStream(e,t,r,s){const a=TypedChannel.fromTransport(t,r),{client:l}=e.registerServer(a,s);return a.startListen(),{channel:a,client:l}}getServer(e,t){const{counterpart:r,dispose:s}=this.getInterface(e,this.client,this.server,t);return{server:r,dispose:s}}registerServer(e,t){const{counterpart:r,dispose:s}=this.getInterface(e,this.server,this.client,t);return{client:r,dispose:s}}withContext(){return new ja(this.tags,this.server,this.client)}};let FoldingRangeKind=(function(o){return o.Comment="comment",o.Imports="imports",o.Region="region",o})({}),SymbolKind=(function(o){return o[o.File=1]="File",o[o.Module=2]="Module",o[o.Namespace=3]="Namespace",o[o.Package=4]="Package",o[o.Class=5]="Class",o[o.Method=6]="Method",o[o.Property=7]="Property",o[o.Field=8]="Field",o[o.Constructor=9]="Constructor",o[o.Enum=10]="Enum",o[o.Interface=11]="Interface",o[o.Function=12]="Function",o[o.Variable=13]="Variable",o[o.Constant=14]="Constant",o[o.String=15]="String",o[o.Number=16]="Number",o[o.Boolean=17]="Boolean",o[o.Array=18]="Array",o[o.Object=19]="Object",o[o.Key=20]="Key",o[o.Null=21]="Null",o[o.EnumMember=22]="EnumMember",o[o.Struct=23]="Struct",o[o.Event=24]="Event",o[o.Operator=25]="Operator",o[o.TypeParameter=26]="TypeParameter",o})({}),SymbolTag=(function(o){return o[o.Deprecated=1]="Deprecated",o})({}),InlayHintKind=(function(o){return o[o.Type=1]="Type",o[o.Parameter=2]="Parameter",o})({}),TextDocumentSyncKind=(function(o){return o[o.None=0]="None",o[o.Full=1]="Full",o[o.Incremental=2]="Incremental",o})({}),CompletionItemKind=(function(o){return o[o.Text=1]="Text",o[o.Method=2]="Method",o[o.Function=3]="Function",o[o.Constructor=4]="Constructor",o[o.Field=5]="Field",o[o.Variable=6]="Variable",o[o.Class=7]="Class",o[o.Interface=8]="Interface",o[o.Module=9]="Module",o[o.Property=10]="Property",o[o.Unit=11]="Unit",o[o.Value=12]="Value",o[o.Enum=13]="Enum",o[o.Keyword=14]="Keyword",o[o.Snippet=15]="Snippet",o[o.Color=16]="Color",o[o.File=17]="File",o[o.Reference=18]="Reference",o[o.Folder=19]="Folder",o[o.EnumMember=20]="EnumMember",o[o.Constant=21]="Constant",o[o.Struct=22]="Struct",o[o.Event=23]="Event",o[o.Operator=24]="Operator",o[o.TypeParameter=25]="TypeParameter",o})({}),CompletionItemTag=(function(o){return o[o.Deprecated=1]="Deprecated",o})({}),InsertTextFormat=(function(o){return o[o.PlainText=1]="PlainText",o[o.Snippet=2]="Snippet",o})({}),DocumentHighlightKind=(function(o){return o[o.Text=1]="Text",o[o.Read=2]="Read",o[o.Write=3]="Write",o})({}),CodeActionKind=(function(o){return o.Empty="",o.QuickFix="quickfix",o.Refactor="refactor",o.RefactorExtract="refactor.extract",o.RefactorInline="refactor.inline",o.RefactorRewrite="refactor.rewrite",o.Source="source",o.SourceOrganizeImports="source.organizeImports",o.SourceFixAll="source.fixAll",o})({}),MarkupKind=(function(o){return o.PlainText="plaintext",o.Markdown="markdown",o})({}),DiagnosticSeverity=(function(o){return o[o.Error=1]="Error",o[o.Warning=2]="Warning",o[o.Information=3]="Information",o[o.Hint=4]="Hint",o})({}),DiagnosticTag=(function(o){return o[o.Unnecessary=1]="Unnecessary",o[o.Deprecated=2]="Deprecated",o})({}),CompletionTriggerKind=(function(o){return o[o.Invoked=1]="Invoked",o[o.TriggerCharacter=2]="TriggerCharacter",o[o.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions",o})({}),SignatureHelpTriggerKind=(function(o){return o[o.Invoked=1]="Invoked",o[o.TriggerCharacter=2]="TriggerCharacter",o[o.ContentChange=3]="ContentChange",o})({}),CodeActionTriggerKind=(function(o){return o[o.Invoked=1]="Invoked",o[o.Automatic=2]="Automatic",o})({}),TokenFormat=(function(o){return o.Relative="relative",o})({});var Capability=class{constructor(o){this.method=o}};const capabilities={textDocumentImplementation:new Capability("textDocument/implementation"),textDocumentTypeDefinition:new Capability("textDocument/typeDefinition"),textDocumentDocumentColor:new Capability("textDocument/documentColor"),textDocumentColorPresentation:new Capability("textDocument/colorPresentation"),textDocumentFoldingRange:new Capability("textDocument/foldingRange"),textDocumentDeclaration:new Capability("textDocument/declaration"),textDocumentSelectionRange:new Capability("textDocument/selectionRange"),textDocumentPrepareCallHierarchy:new Capability("textDocument/prepareCallHierarchy"),textDocumentSemanticTokensFull:new Capability("textDocument/semanticTokens/full"),textDocumentSemanticTokensFullDelta:new Capability("textDocument/semanticTokens/full/delta"),textDocumentLinkedEditingRange:new Capability("textDocument/linkedEditingRange"),workspaceWillCreateFiles:new Capability("workspace/willCreateFiles"),workspaceWillRenameFiles:new Capability("workspace/willRenameFiles"),workspaceWillDeleteFiles:new Capability("workspace/willDeleteFiles"),textDocumentMoniker:new Capability("textDocument/moniker"),textDocumentPrepareTypeHierarchy:new Capability("textDocument/prepareTypeHierarchy"),textDocumentInlineValue:new Capability("textDocument/inlineValue"),textDocumentInlayHint:new Capability("textDocument/inlayHint"),textDocumentDiagnostic:new Capability("textDocument/diagnostic"),textDocumentInlineCompletion:new Capability("textDocument/inlineCompletion"),textDocumentWillSaveWaitUntil:new Capability("textDocument/willSaveWaitUntil"),textDocumentCompletion:new Capability("textDocument/completion"),textDocumentHover:new Capability("textDocument/hover"),textDocumentSignatureHelp:new Capability("textDocument/signatureHelp"),textDocumentDefinition:new Capability("textDocument/definition"),textDocumentReferences:new Capability("textDocument/references"),textDocumentDocumentHighlight:new Capability("textDocument/documentHighlight"),textDocumentDocumentSymbol:new Capability("textDocument/documentSymbol"),textDocumentCodeAction:new Capability("textDocument/codeAction"),workspaceSymbol:new Capability("workspace/symbol"),textDocumentCodeLens:new Capability("textDocument/codeLens"),textDocumentDocumentLink:new Capability("textDocument/documentLink"),textDocumentFormatting:new Capability("textDocument/formatting"),textDocumentRangeFormatting:new Capability("textDocument/rangeFormatting"),textDocumentRangesFormatting:new Capability("textDocument/rangesFormatting"),textDocumentOnTypeFormatting:new Capability("textDocument/onTypeFormatting"),textDocumentRename:new Capability("textDocument/rename"),workspaceExecuteCommand:new Capability("workspace/executeCommand"),workspaceDidCreateFiles:new Capability("workspace/didCreateFiles"),workspaceDidRenameFiles:new Capability("workspace/didRenameFiles"),workspaceDidDeleteFiles:new Capability("workspace/didDeleteFiles"),workspaceDidChangeConfiguration:new Capability("workspace/didChangeConfiguration"),textDocumentDidOpen:new Capability("textDocument/didOpen"),textDocumentDidChange:new Capability("textDocument/didChange"),textDocumentDidClose:new Capability("textDocument/didClose"),textDocumentDidSave:new Capability("textDocument/didSave"),textDocumentWillSave:new Capability("textDocument/willSave"),workspaceDidChangeWatchedFiles:new Capability("workspace/didChangeWatchedFiles")},api=contract({server:{textDocumentImplementation:unverifiedRequest({method:"textDocument/implementation"}),textDocumentTypeDefinition:unverifiedRequest({method:"textDocument/typeDefinition"}),textDocumentDocumentColor:unverifiedRequest({method:"textDocument/documentColor"}),textDocumentColorPresentation:unverifiedRequest({method:"textDocument/colorPresentation"}),textDocumentFoldingRange:unverifiedRequest({method:"textDocument/foldingRange"}),textDocumentDeclaration:unverifiedRequest({method:"textDocument/declaration"}),textDocumentSelectionRange:unverifiedRequest({method:"textDocument/selectionRange"}),textDocumentPrepareCallHierarchy:unverifiedRequest({method:"textDocument/prepareCallHierarchy"}),callHierarchyIncomingCalls:unverifiedRequest({method:"callHierarchy/incomingCalls"}),callHierarchyOutgoingCalls:unverifiedRequest({method:"callHierarchy/outgoingCalls"}),textDocumentSemanticTokensFull:unverifiedRequest({method:"textDocument/semanticTokens/full"}),textDocumentSemanticTokensFullDelta:unverifiedRequest({method:"textDocument/semanticTokens/full/delta"}),textDocumentSemanticTokensRange:unverifiedRequest({method:"textDocument/semanticTokens/range"}),textDocumentLinkedEditingRange:unverifiedRequest({method:"textDocument/linkedEditingRange"}),workspaceWillCreateFiles:unverifiedRequest({method:"workspace/willCreateFiles"}),workspaceWillRenameFiles:unverifiedRequest({method:"workspace/willRenameFiles"}),workspaceWillDeleteFiles:unverifiedRequest({method:"workspace/willDeleteFiles"}),textDocumentMoniker:unverifiedRequest({method:"textDocument/moniker"}),textDocumentPrepareTypeHierarchy:unverifiedRequest({method:"textDocument/prepareTypeHierarchy"}),typeHierarchySupertypes:unverifiedRequest({method:"typeHierarchy/supertypes"}),typeHierarchySubtypes:unverifiedRequest({method:"typeHierarchy/subtypes"}),textDocumentInlineValue:unverifiedRequest({method:"textDocument/inlineValue"}),textDocumentInlayHint:unverifiedRequest({method:"textDocument/inlayHint"}),inlayHintResolve:unverifiedRequest({method:"inlayHint/resolve"}),textDocumentDiagnostic:unverifiedRequest({method:"textDocument/diagnostic"}),workspaceDiagnostic:unverifiedRequest({method:"workspace/diagnostic"}),textDocumentInlineCompletion:unverifiedRequest({method:"textDocument/inlineCompletion"}),initialize:unverifiedRequest({method:"initialize"}),shutdown:unverifiedRequest({method:"shutdown"}),textDocumentWillSaveWaitUntil:unverifiedRequest({method:"textDocument/willSaveWaitUntil"}),textDocumentCompletion:unverifiedRequest({method:"textDocument/completion"}),completionItemResolve:unverifiedRequest({method:"completionItem/resolve"}),textDocumentHover:unverifiedRequest({method:"textDocument/hover"}),textDocumentSignatureHelp:unverifiedRequest({method:"textDocument/signatureHelp"}),textDocumentDefinition:unverifiedRequest({method:"textDocument/definition"}),textDocumentReferences:unverifiedRequest({method:"textDocument/references"}),textDocumentDocumentHighlight:unverifiedRequest({method:"textDocument/documentHighlight"}),textDocumentDocumentSymbol:unverifiedRequest({method:"textDocument/documentSymbol"}),textDocumentCodeAction:unverifiedRequest({method:"textDocument/codeAction"}),codeActionResolve:unverifiedRequest({method:"codeAction/resolve"}),workspaceSymbol:unverifiedRequest({method:"workspace/symbol"}),workspaceSymbolResolve:unverifiedRequest({method:"workspaceSymbol/resolve"}),textDocumentCodeLens:unverifiedRequest({method:"textDocument/codeLens"}),codeLensResolve:unverifiedRequest({method:"codeLens/resolve"}),textDocumentDocumentLink:unverifiedRequest({method:"textDocument/documentLink"}),documentLinkResolve:unverifiedRequest({method:"documentLink/resolve"}),textDocumentFormatting:unverifiedRequest({method:"textDocument/formatting"}),textDocumentRangeFormatting:unverifiedRequest({method:"textDocument/rangeFormatting"}),textDocumentRangesFormatting:unverifiedRequest({method:"textDocument/rangesFormatting"}),textDocumentOnTypeFormatting:unverifiedRequest({method:"textDocument/onTypeFormatting"}),textDocumentRename:unverifiedRequest({method:"textDocument/rename"}),textDocumentPrepareRename:unverifiedRequest({method:"textDocument/prepareRename"}),workspaceExecuteCommand:unverifiedRequest({method:"workspace/executeCommand"}),workspaceDidChangeWorkspaceFolders:unverifiedNotification({method:"workspace/didChangeWorkspaceFolders"}),windowWorkDoneProgressCancel:unverifiedNotification({method:"window/workDoneProgress/cancel"}),workspaceDidCreateFiles:unverifiedNotification({method:"workspace/didCreateFiles"}),workspaceDidRenameFiles:unverifiedNotification({method:"workspace/didRenameFiles"}),workspaceDidDeleteFiles:unverifiedNotification({method:"workspace/didDeleteFiles"}),notebookDocumentDidOpen:unverifiedNotification({method:"notebookDocument/didOpen"}),notebookDocumentDidChange:unverifiedNotification({method:"notebookDocument/didChange"}),notebookDocumentDidSave:unverifiedNotification({method:"notebookDocument/didSave"}),notebookDocumentDidClose:unverifiedNotification({method:"notebookDocument/didClose"}),initialized:unverifiedNotification({method:"initialized"}),exit:unverifiedNotification({method:"exit"}),workspaceDidChangeConfiguration:unverifiedNotification({method:"workspace/didChangeConfiguration"}),textDocumentDidOpen:unverifiedNotification({method:"textDocument/didOpen"}),textDocumentDidChange:unverifiedNotification({method:"textDocument/didChange"}),textDocumentDidClose:unverifiedNotification({method:"textDocument/didClose"}),textDocumentDidSave:unverifiedNotification({method:"textDocument/didSave"}),textDocumentWillSave:unverifiedNotification({method:"textDocument/willSave"}),workspaceDidChangeWatchedFiles:unverifiedNotification({method:"workspace/didChangeWatchedFiles"}),setTrace:unverifiedNotification({method:"$/setTrace"}),cancelRequest:unverifiedNotification({method:"$/cancelRequest"}),progress:unverifiedNotification({method:"$/progress"})},client:{workspaceWorkspaceFolders:unverifiedRequest({method:"workspace/workspaceFolders"}).optional(),workspaceConfiguration:unverifiedRequest({method:"workspace/configuration"}).optional(),workspaceFoldingRangeRefresh:unverifiedRequest({method:"workspace/foldingRange/refresh"}).optional(),windowWorkDoneProgressCreate:unverifiedRequest({method:"window/workDoneProgress/create"}).optional(),workspaceSemanticTokensRefresh:unverifiedRequest({method:"workspace/semanticTokens/refresh"}).optional(),windowShowDocument:unverifiedRequest({method:"window/showDocument"}).optional(),workspaceInlineValueRefresh:unverifiedRequest({method:"workspace/inlineValue/refresh"}).optional(),workspaceInlayHintRefresh:unverifiedRequest({method:"workspace/inlayHint/refresh"}).optional(),workspaceDiagnosticRefresh:unverifiedRequest({method:"workspace/diagnostic/refresh"}).optional(),clientRegisterCapability:unverifiedRequest({method:"client/registerCapability"}).optional(),clientUnregisterCapability:unverifiedRequest({method:"client/unregisterCapability"}).optional(),windowShowMessageRequest:unverifiedRequest({method:"window/showMessageRequest"}).optional(),workspaceCodeLensRefresh:unverifiedRequest({method:"workspace/codeLens/refresh"}).optional(),workspaceApplyEdit:unverifiedRequest({method:"workspace/applyEdit"}).optional(),windowShowMessage:unverifiedNotification({method:"window/showMessage"}),windowLogMessage:unverifiedNotification({method:"window/logMessage"}),telemetryEvent:unverifiedNotification({method:"telemetry/event"}),textDocumentPublishDiagnostics:unverifiedNotification({method:"textDocument/publishDiagnostics"}),logTrace:unverifiedNotification({method:"$/logTrace"}),cancelRequest:unverifiedNotification({method:"$/cancelRequest"}),progress:unverifiedNotification({method:"$/progress"})}});function assertTargetTextModel(o,e){if(o.textModel!==e)throw new Error("Expected text model to be ".concat(e,", but got ").concat(o.textModel));return o}var Disposable=(_d=class{constructor(){__publicField(this,"_store",new DisposableStore)}dispose(){this._store.dispose()}_register(o){if(o===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(o)}},__publicField(_d,"None",Object.freeze({dispose(){}})),_d),DisposableStore=(_e=class{constructor(){__publicField(this,"_toDispose",new Set),__publicField(this,"_isDisposed",!1)}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){if(this._toDispose.size!==0)try{for(const o of this._toDispose)o.dispose()}finally{this._toDispose.clear()}}add(o){if(!o)return o;if(o===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?_e.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(o),o}},__publicField(_e,"DISABLE_DISPOSED_WARNING",!1),_e);const lspCodeActionKindToMonacoCodeActionKind=new Map([[CodeActionKind.Empty,""],[CodeActionKind.QuickFix,"quickfix"],[CodeActionKind.Refactor,"refactor"],[CodeActionKind.RefactorExtract,"refactor.extract"],[CodeActionKind.RefactorInline,"refactor.inline"],[CodeActionKind.RefactorRewrite,"refactor.rewrite"],[CodeActionKind.Source,"source"],[CodeActionKind.SourceOrganizeImports,"source.organizeImports"],[CodeActionKind.SourceFixAll,"source.fixAll"]]);function toMonacoCodeActionKind(o){var e;if(o)return(e=lspCodeActionKindToMonacoCodeActionKind.get(o))!=null?e:o}const monacoCodeActionTriggerTypeToLspCodeActionTriggerKind=new Map([[languages.CodeActionTriggerType.Invoke,CodeActionTriggerKind.Invoked],[languages.CodeActionTriggerType.Auto,CodeActionTriggerKind.Automatic]]);function toLspCodeActionTriggerKind(o){var e;return(e=monacoCodeActionTriggerTypeToLspCodeActionTriggerKind.get(o))!=null?e:CodeActionTriggerKind.Invoked}const lspCompletionItemKindToMonacoCompletionItemKind=new Map([[CompletionItemKind.Text,languages.CompletionItemKind.Text],[CompletionItemKind.Method,languages.CompletionItemKind.Method],[CompletionItemKind.Function,languages.CompletionItemKind.Function],[CompletionItemKind.Constructor,languages.CompletionItemKind.Constructor],[CompletionItemKind.Field,languages.CompletionItemKind.Field],[CompletionItemKind.Variable,languages.CompletionItemKind.Variable],[CompletionItemKind.Class,languages.CompletionItemKind.Class],[CompletionItemKind.Interface,languages.CompletionItemKind.Interface],[CompletionItemKind.Module,languages.CompletionItemKind.Module],[CompletionItemKind.Property,languages.CompletionItemKind.Property],[CompletionItemKind.Unit,languages.CompletionItemKind.Unit],[CompletionItemKind.Value,languages.CompletionItemKind.Value],[CompletionItemKind.Enum,languages.CompletionItemKind.Enum],[CompletionItemKind.Keyword,languages.CompletionItemKind.Keyword],[CompletionItemKind.Snippet,languages.CompletionItemKind.Snippet],[CompletionItemKind.Color,languages.CompletionItemKind.Color],[CompletionItemKind.File,languages.CompletionItemKind.File],[CompletionItemKind.Reference,languages.CompletionItemKind.Reference],[CompletionItemKind.Folder,languages.CompletionItemKind.Folder],[CompletionItemKind.EnumMember,languages.CompletionItemKind.EnumMember],[CompletionItemKind.Constant,languages.CompletionItemKind.Constant],[CompletionItemKind.Struct,languages.CompletionItemKind.Struct],[CompletionItemKind.Event,languages.CompletionItemKind.Event],[CompletionItemKind.Operator,languages.CompletionItemKind.Operator],[CompletionItemKind.TypeParameter,languages.CompletionItemKind.TypeParameter]]);function toMonacoCompletionItemKind(o){var e;return o&&(e=lspCompletionItemKindToMonacoCompletionItemKind.get(o))!=null?e:languages.CompletionItemKind.Text}const lspCompletionItemTagToMonacoCompletionItemTag=new Map([[CompletionItemTag.Deprecated,languages.CompletionItemTag.Deprecated]]);function toMonacoCompletionItemTag(o){return lspCompletionItemTagToMonacoCompletionItemTag.get(o)}const monacoCompletionTriggerKindToLspCompletionTriggerKind=new Map([[languages.CompletionTriggerKind.Invoke,CompletionTriggerKind.Invoked],[languages.CompletionTriggerKind.TriggerCharacter,CompletionTriggerKind.TriggerCharacter],[languages.CompletionTriggerKind.TriggerForIncompleteCompletions,CompletionTriggerKind.TriggerForIncompleteCompletions]]);function toLspCompletionTriggerKind(o){var e;return(e=monacoCompletionTriggerKindToLspCompletionTriggerKind.get(o))!=null?e:CompletionTriggerKind.Invoked}const lspInsertTextFormatToMonacoInsertTextRules=new Map([[InsertTextFormat.Snippet,languages.CompletionItemInsertTextRule.InsertAsSnippet]]);function toMonacoInsertTextRules(o){if(o)return lspInsertTextFormatToMonacoInsertTextRules.get(o)}const lspSymbolKindToMonacoSymbolKind=new Map([[SymbolKind.File,languages.SymbolKind.File],[SymbolKind.Module,languages.SymbolKind.Module],[SymbolKind.Namespace,languages.SymbolKind.Namespace],[SymbolKind.Package,languages.SymbolKind.Package],[SymbolKind.Class,languages.SymbolKind.Class],[SymbolKind.Method,languages.SymbolKind.Method],[SymbolKind.Property,languages.SymbolKind.Property],[SymbolKind.Field,languages.SymbolKind.Field],[SymbolKind.Constructor,languages.SymbolKind.Constructor],[SymbolKind.Enum,languages.SymbolKind.Enum],[SymbolKind.Interface,languages.SymbolKind.Interface],[SymbolKind.Function,languages.SymbolKind.Function],[SymbolKind.Variable,languages.SymbolKind.Variable],[SymbolKind.Constant,languages.SymbolKind.Constant],[SymbolKind.String,languages.SymbolKind.String],[SymbolKind.Number,languages.SymbolKind.Number],[SymbolKind.Boolean,languages.SymbolKind.Boolean],[SymbolKind.Array,languages.SymbolKind.Array],[SymbolKind.Object,languages.SymbolKind.Object],[SymbolKind.Key,languages.SymbolKind.Key],[SymbolKind.Null,languages.SymbolKind.Null],[SymbolKind.EnumMember,languages.SymbolKind.EnumMember],[SymbolKind.Struct,languages.SymbolKind.Struct],[SymbolKind.Event,languages.SymbolKind.Event],[SymbolKind.Operator,languages.SymbolKind.Operator],[SymbolKind.TypeParameter,languages.SymbolKind.TypeParameter]]);function toMonacoSymbolKind(o){var e;return(e=lspSymbolKindToMonacoSymbolKind.get(o))!=null?e:languages.SymbolKind.File}const lspSymbolTagToMonacoSymbolTag=new Map([[SymbolTag.Deprecated,languages.SymbolTag.Deprecated]]);function toMonacoSymbolTag(o){return lspSymbolTagToMonacoSymbolTag.get(o)}const lspDocumentHighlightKindToMonacoDocumentHighlightKind=new Map([[DocumentHighlightKind.Text,languages.DocumentHighlightKind.Text],[DocumentHighlightKind.Read,languages.DocumentHighlightKind.Read],[DocumentHighlightKind.Write,languages.DocumentHighlightKind.Write]]);function toMonacoDocumentHighlightKind(o){var e;return o&&(e=lspDocumentHighlightKindToMonacoDocumentHighlightKind.get(o))!=null?e:languages.DocumentHighlightKind.Text}const lspFoldingRangeKindToMonacoFoldingRangeKind=new Map([[FoldingRangeKind.Comment,languages.FoldingRangeKind.Comment],[FoldingRangeKind.Imports,languages.FoldingRangeKind.Imports],[FoldingRangeKind.Region,languages.FoldingRangeKind.Region]]);function toMonacoFoldingRangeKind(o){if(o)return lspFoldingRangeKindToMonacoFoldingRangeKind.get(o)}const monacoMarkerSeverityToLspDiagnosticSeverity=new Map([[MarkerSeverity.Error,DiagnosticSeverity.Error],[MarkerSeverity.Warning,DiagnosticSeverity.Warning],[MarkerSeverity.Info,DiagnosticSeverity.Information],[MarkerSeverity.Hint,DiagnosticSeverity.Hint]]);function toLspDiagnosticSeverity(o){var e;return(e=monacoMarkerSeverityToLspDiagnosticSeverity.get(o))!=null?e:DiagnosticSeverity.Error}const lspDiagnosticSeverityToMonacoMarkerSeverity=new Map([[DiagnosticSeverity.Error,MarkerSeverity.Error],[DiagnosticSeverity.Warning,MarkerSeverity.Warning],[DiagnosticSeverity.Information,MarkerSeverity.Info],[DiagnosticSeverity.Hint,MarkerSeverity.Hint]]);function toMonacoDiagnosticSeverity(o){var e;return o&&(e=lspDiagnosticSeverityToMonacoMarkerSeverity.get(o))!=null?e:MarkerSeverity.Error}const lspDiagnosticTagToMonacoMarkerTag=new Map([[DiagnosticTag.Unnecessary,MarkerTag.Unnecessary],[DiagnosticTag.Deprecated,MarkerTag.Deprecated]]);function toMonacoDiagnosticTag(o){return lspDiagnosticTagToMonacoMarkerTag.get(o)}const monacoSignatureHelpTriggerKindToLspSignatureHelpTriggerKind=new Map([[languages.SignatureHelpTriggerKind.Invoke,SignatureHelpTriggerKind.Invoked],[languages.SignatureHelpTriggerKind.TriggerCharacter,SignatureHelpTriggerKind.TriggerCharacter],[languages.SignatureHelpTriggerKind.ContentChange,SignatureHelpTriggerKind.ContentChange]]);function toLspSignatureHelpTriggerKind(o){var e;return(e=monacoSignatureHelpTriggerKindToLspSignatureHelpTriggerKind.get(o))!=null?e:SignatureHelpTriggerKind.Invoked}function toMonacoCommand(o){if(o)return{id:o.command,title:o.title,arguments:o.arguments}}const lspInlayHintKindToMonacoInlayHintKind=new Map([[InlayHintKind.Type,languages.InlayHintKind.Type],[InlayHintKind.Parameter,languages.InlayHintKind.Parameter]]);function toMonacoInlayHintKind(o){var e;return o&&(e=lspInlayHintKindToMonacoInlayHintKind.get(o))!=null?e:languages.InlayHintKind.Type}function toMonacoLocation(o,e){if("targetUri"in o){const t=e.bridge.translateBackRange({uri:o.targetUri},o.targetRange);return{uri:t.textModel.uri,range:t.range,originSelectionRange:o.originSelectionRange?e.bridge.translateBackRange({uri:o.targetUri},o.originSelectionRange).range:void 0,targetSelectionRange:o.targetSelectionRange?e.bridge.translateBackRange({uri:o.targetUri},o.targetSelectionRange).range:void 0}}else{const t=e.bridge.translateBackRange({uri:o.uri},o.range);return{uri:t.textModel.uri,range:t.range}}}function toMonacoLanguageSelector(o){return!o||o.length===0?{language:"*"}:o.map(e=>"notebook"in e?typeof e.notebook=="string"?{notebookType:e.notebook,language:e.language}:{notebookType:e.notebook.notebookType,language:e.language,pattern:e.notebook.pattern,scheme:e.notebook.scheme}:{language:e.language,pattern:e.pattern,scheme:e.scheme})}function matchesDocumentSelector(o,e){if(!e)return!0;const t=o.getLanguageId();if(o.uri.toString(!0),!e||e.length===0)return!0;for(const r of e)if(!(r.language&&r.language!=="*"&&r.language!==t))return!0;return!1}function toDiagnosticMarker(o){var t;const e={severity:toMonacoDiagnosticSeverity(o.severity),startLineNumber:o.range.start.line+1,startColumn:o.range.start.character+1,endLineNumber:o.range.end.line+1,endColumn:o.range.end.character+1,message:o.message,source:o.source,code:typeof o.code=="string"?o.code:(t=o.code)==null?void 0:t.toString()};return o.tags&&(e.tags=o.tags.map(r=>toMonacoDiagnosticTag(r)).filter(r=>r!==void 0)),o.relatedInformation&&(e.relatedInformation=o.relatedInformation.map(r=>({resource:Uri.parse(r.location.uri),startLineNumber:r.location.range.start.line+1,startColumn:r.location.range.start.character+1,endLineNumber:r.location.range.end.line+1,endColumn:r.location.range.end.character+1,message:r.message}))),e}var LspCompletionFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(lspCompletionItemKindToMonacoCompletionItemKind.keys())},completionItem:{tagSupport:{valueSet:Array.from(lspCompletionItemTagToMonacoCompletionItemTag.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCompletion,!0,e=>languages.registerCompletionItemProvider(toMonacoLanguageSelector(e.documentSelector),new LspCompletionProvider(this._connection,e))))}},LspCompletionProvider=class{constructor(o,e){__publicField(this,"resolveCompletionItem"),this._client=o,this._capabilities=e,e.resolveProvider&&(this.resolveCompletionItem=async(t,r)=>(applyLspCompletionItemProperties(t,await this._client.server.completionItemResolve(t._lspItem),this._client.bridge,t._translated,t._model),t))}get triggerCharacters(){return this._capabilities.triggerCharacters}async provideCompletionItems(o,e,t,r){const s=this._client.bridge.translate(o,e),a=await this._client.server.textDocumentCompletion({textDocument:s.textDocument,position:s.position,context:t.triggerCharacter?{triggerKind:toLspCompletionTriggerKind(t.triggerKind),triggerCharacter:t.triggerCharacter}:void 0});return a?{suggestions:(Array.isArray(a)?a:a.items).map(l=>({...convertLspToMonacoCompletionItem(l,this._client.bridge,s,o,e),_lspItem:l,_translated:s,_model:o}))}:{suggestions:[]}}};function convertLspToMonacoCompletionItem(o,e,t,r,s){let a=o.insertText||o.label,l;o.textEdit&&("range"in o.textEdit?(a=o.textEdit.newText,l=assertTargetTextModel(e.translateBackRange(t.textDocument,o.textEdit.range),r).range):(a=o.textEdit.newText,l={insert:assertTargetTextModel(e.translateBackRange(t.textDocument,o.textEdit.insert),r).range,replace:assertTargetTextModel(e.translateBackRange(t.textDocument,o.textEdit.replace),r).range})),l||(l=Range.fromPositions(s,s));const c={label:o.label,kind:toMonacoCompletionItemKind(o.kind),insertText:a,sortText:o.sortText,filterText:o.filterText,preselect:o.preselect,commitCharacters:o.commitCharacters,range:l};return applyLspCompletionItemProperties(c,o,e,t,r),c}function applyLspCompletionItemProperties(o,e,t,r,s){e.detail!==void 0&&(o.detail=e.detail),e.documentation!==void 0&&(o.documentation=toMonacoDocumentation$1(e.documentation)),e.insertTextFormat!==void 0&&(o.insertTextRules=toMonacoInsertTextRules(e.insertTextFormat)),e.tags&&e.tags.length>0&&(o.tags=e.tags.map(toMonacoCompletionItemTag).filter(a=>a!==void 0)),e.additionalTextEdits&&e.additionalTextEdits.length>0&&(o.additionalTextEdits=e.additionalTextEdits.map(a=>({range:assertTargetTextModel(t.translateBackRange(r.textDocument,a.range),s).range,text:a.newText}))),e.command&&(o.command=toMonacoCommand(e.command))}function toMonacoDocumentation$1(o){if(o)return typeof o=="string"?o:{value:o.value,isTrusted:!0}}var LspHoverFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[MarkupKind.Markdown,MarkupKind.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentHover,!0,e=>languages.registerHoverProvider(toMonacoLanguageSelector(e.documentSelector),new LspHoverProvider(this._connection,e))))}},LspHoverProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideHover(o,e,t){const r=this._client.bridge.translate(o,e),s=await this._client.server.textDocumentHover({textDocument:r.textDocument,position:r.position});return!s||!s.contents?null:{contents:toMonacoMarkdownString(s.contents),range:s.range?this._client.bridge.translateBackRange(r.textDocument,s.range).range:void 0}}};function toMonacoMarkdownString(o){return Array.isArray(o)?o.map(e=>toSingleMarkdownString(e)):[toSingleMarkdownString(o)]}function toSingleMarkdownString(o){return typeof o=="string"?{value:o,isTrusted:!0}:"kind"in o?{value:o.value,isTrusted:!0}:{value:"```".concat(o.language,"\n").concat(o.value,"\n```"),isTrusted:!0}}var LspSignatureHelpFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{signatureHelp:{dynamicRegistration:!0,contextSupport:!0,signatureInformation:{documentationFormat:[MarkupKind.Markdown,MarkupKind.PlainText],parameterInformation:{labelOffsetSupport:!0},activeParameterSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSignatureHelp,!0,e=>languages.registerSignatureHelpProvider(toMonacoLanguageSelector(e.documentSelector),new LspSignatureHelpProvider(this._connection,e))))}},LspSignatureHelpProvider=class{constructor(o,e){__publicField(this,"signatureHelpTriggerCharacters"),__publicField(this,"signatureHelpRetriggerCharacters"),this._client=o,this._capabilities=e,this.signatureHelpTriggerCharacters=e.triggerCharacters,this.signatureHelpRetriggerCharacters=e.retriggerCharacters}async provideSignatureHelp(o,e,t,r){const s=this._client.bridge.translate(o,e),a=await this._client.server.textDocumentSignatureHelp({textDocument:s.textDocument,position:s.position,context:{triggerKind:toLspSignatureHelpTriggerKind(r.triggerKind),triggerCharacter:r.triggerCharacter,isRetrigger:r.isRetrigger}});return a?{value:{signatures:a.signatures.map(l=>{var c;return{label:l.label,documentation:toMonacoDocumentation(l.documentation),parameters:((c=l.parameters)==null?void 0:c.map(d=>({label:d.label,documentation:toMonacoDocumentation(d.documentation)})))||[],activeParameter:l.activeParameter}}),activeSignature:a.activeSignature||0,activeParameter:a.activeParameter||0},dispose:()=>{}}:null}};function toMonacoDocumentation(o){if(o)return typeof o=="string"?o:{value:o.value,isTrusted:!0}}var LspDefinitionFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{definition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDefinition,!0,e=>languages.registerDefinitionProvider(toMonacoLanguageSelector(e.documentSelector),new LspDefinitionProvider(this._connection,e))))}},LspDefinitionProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideDefinition(o,e,t){const r=this._client.bridge.translate(o,e),s=await this._client.server.textDocumentDefinition({textDocument:r.textDocument,position:r.position});return s?Array.isArray(s)?s.map(a=>toMonacoLocation(a,this._client)):toMonacoLocation(s,this._client):null}},LspDeclarationFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{declaration:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDeclaration,!0,e=>languages.registerDeclarationProvider(toMonacoLanguageSelector(e.documentSelector),new LspDeclarationProvider(this._connection,e))))}},LspDeclarationProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideDeclaration(o,e,t){const r=this._client.bridge.translate(o,e),s=await this._client.server.textDocumentDeclaration({textDocument:r.textDocument,position:r.position});return s?Array.isArray(s)?s.map(a=>toMonacoLocation(a,this._client)):toMonacoLocation(s,this._client):null}},LspTypeDefinitionFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{typeDefinition:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentTypeDefinition,!0,e=>languages.registerTypeDefinitionProvider(toMonacoLanguageSelector(e.documentSelector),new LspTypeDefinitionProvider(this._connection,e))))}},LspTypeDefinitionProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideTypeDefinition(o,e,t){const r=this._client.bridge.translate(o,e),s=await this._client.server.textDocumentTypeDefinition({textDocument:r.textDocument,position:r.position});return s?Array.isArray(s)?s.map(a=>toMonacoLocation(a,this._client)):toMonacoLocation(s,this._client):null}},LspImplementationFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{implementation:{dynamicRegistration:!0,linkSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentImplementation,!0,e=>languages.registerImplementationProvider(toMonacoLanguageSelector(e.documentSelector),new LspImplementationProvider(this._connection,e))))}},LspImplementationProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideImplementation(o,e,t){const r=this._client.bridge.translate(o,e),s=await this._client.server.textDocumentImplementation({textDocument:r.textDocument,position:r.position});return s?Array.isArray(s)?s.map(a=>toMonacoLocation(a,this._client)):toMonacoLocation(s,this._client):null}},LspReferencesFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{references:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentReferences,!0,e=>languages.registerReferenceProvider(toMonacoLanguageSelector(e.documentSelector),new LspReferenceProvider(this._connection,e))))}},LspReferenceProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideReferences(o,e,t,r){const s=this._client.bridge.translate(o,e),a=await this._client.server.textDocumentReferences({textDocument:s.textDocument,position:s.position,context:{includeDeclaration:t.includeDeclaration}});return a?a.map(l=>{const c=this._client.bridge.translateBackRange({uri:l.uri},l.range);return{uri:c.textModel.uri,range:c.range}}):null}},LspDocumentHighlightFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentHighlight:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentHighlight,!0,e=>languages.registerDocumentHighlightProvider(toMonacoLanguageSelector(e.documentSelector),new LspDocumentHighlightProvider(this._connection,e))))}},LspDocumentHighlightProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideDocumentHighlights(o,e,t){const r=this._client.bridge.translate(o,e),s=await this._client.server.textDocumentDocumentHighlight({textDocument:r.textDocument,position:r.position});return s?s.map(a=>({range:this._client.bridge.translateBackRange(r.textDocument,a.range).range,kind:toMonacoDocumentHighlightKind(a.kind)})):null}},LspDocumentSymbolFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentSymbol:{dynamicRegistration:!0,hierarchicalDocumentSymbolSupport:!0,symbolKind:{valueSet:Array.from(lspSymbolKindToMonacoSymbolKind.keys())},tagSupport:{valueSet:[SymbolTag.Deprecated]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentSymbol,!0,e=>languages.registerDocumentSymbolProvider(toMonacoLanguageSelector(e.documentSelector),new LspDocumentSymbolProvider(this._connection,e))))}},LspDocumentSymbolProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideDocumentSymbols(o,e){const t=this._client.bridge.translate(o,new Position(1,1)),r=await this._client.server.textDocumentDocumentSymbol({textDocument:t.textDocument});return r?Array.isArray(r)&&r.length>0?"location"in r[0]?r.map(s=>toMonacoSymbolInformation(s,this._client)):r.map(s=>toMonacoDocumentSymbol(s,this._client,t.textDocument)):[]:null}};function toMonacoDocumentSymbol(o,e,t){var r,s;return{name:o.name,detail:o.detail||"",kind:toMonacoSymbolKind(o.kind),tags:((r=o.tags)==null?void 0:r.map(a=>toMonacoSymbolTag(a)).filter(a=>a!==void 0))||[],range:e.bridge.translateBackRange(t,o.range).range,selectionRange:e.bridge.translateBackRange(t,o.selectionRange).range,children:((s=o.children)==null?void 0:s.map(a=>toMonacoDocumentSymbol(a,e,t)))||[]}}function toMonacoSymbolInformation(o,e){var t;return{name:o.name,detail:"",kind:toMonacoSymbolKind(o.kind),tags:((t=o.tags)==null?void 0:t.map(r=>toMonacoSymbolTag(r)).filter(r=>r!==void 0))||[],range:e.bridge.translateBackRange({uri:o.location.uri},o.location.range).range,selectionRange:e.bridge.translateBackRange({uri:o.location.uri},o.location.range).range,children:[]}}var LspRenameFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rename:{dynamicRegistration:!0,prepareSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentRename,!0,e=>languages.registerRenameProvider(toMonacoLanguageSelector(e.documentSelector),new LspRenameProvider(this._connection,e))))}},LspRenameProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideRenameEdits(o,e,t,r){const s=this._client.bridge.translate(o,e),a=await this._client.server.textDocumentRename({textDocument:s.textDocument,position:s.position,newName:t});return a?toMonacoWorkspaceEdit$1(a,this._client):null}async resolveRenameLocation(o,e,t){if(!this._capabilities.prepareProvider)return null;const r=this._client.bridge.translate(o,e),s=await this._client.server.textDocumentPrepareRename({textDocument:r.textDocument,position:r.position});if(!s)return null;if("range"in s&&"placeholder"in s)return{range:this._client.bridge.translateBackRange(r.textDocument,s.range).range,text:s.placeholder};if("defaultBehavior"in s)return null;if("start"in s&&"end"in s){const a=this._client.bridge.translateBackRange(r.textDocument,s).range;return{range:a,text:o.getValueInRange(a)}}return null}};function toMonacoWorkspaceEdit$1(o,e){const t=[];if(o.changes)for(const r in o.changes){const s=o.changes[r];for(const a of s){const l=e.bridge.translateBackRange({uri:r},a.range);t.push({resource:l.textModel.uri,versionId:void 0,textEdit:{range:l.range,text:a.newText}})}}if(o.documentChanges){for(const r of o.documentChanges)if("textDocument"in r){const s=r.textDocument.uri;for(const a of r.edits){const l=e.bridge.translateBackRange({uri:s},a.range);t.push({resource:l.textModel.uri,versionId:r.textDocument.version,textEdit:{range:l.range,text:a.newText}})}}}return{edits:t}}var LspCodeActionFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeAction:{dynamicRegistration:!0,codeActionLiteralSupport:{codeActionKind:{valueSet:Array.from(lspCodeActionKindToMonacoCodeActionKind.keys())}},isPreferredSupport:!0,disabledSupport:!0,dataSupport:!0,resolveSupport:{properties:["edit"]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCodeAction,!0,e=>languages.registerCodeActionProvider(toMonacoLanguageSelector(e.documentSelector),new LspCodeActionProvider(this._connection,e))))}},LspCodeActionProvider=class{constructor(o,e){__publicField(this,"resolveCodeAction"),this._client=o,this._capabilities=e,e.resolveProvider&&(this.resolveCodeAction=async(t,r)=>{if(t._lspAction){const s=await this._client.server.codeActionResolve(t._lspAction);s.edit&&(t.edit=toMonacoWorkspaceEdit(s.edit,this._client)),s.command&&(t.command=toMonacoCommand(s.command))}return t})}async provideCodeActions(o,e,t,r){const s=this._client.bridge.translate(o,e.getStartPosition()),a=await this._client.server.textDocumentCodeAction({textDocument:s.textDocument,range:this._client.bridge.translateRange(o,e),context:{diagnostics:t.markers.map(l=>({range:this._client.bridge.translateRange(o,Range.lift(l)),message:l.message,severity:toLspDiagnosticSeverity(l.severity)})),triggerKind:toLspCodeActionTriggerKind(t.trigger)}});return a?{actions:(Array.isArray(a)?a:[a]).map(l=>{var c;if("title"in l&&!("kind"in l)){const d=l;return{title:d.title,command:toMonacoCommand(d)}}else{const d=l;return{title:d.title,kind:toMonacoCodeActionKind(d.kind),isPreferred:d.isPreferred,disabled:(c=d.disabled)==null?void 0:c.reason,edit:d.edit?toMonacoWorkspaceEdit(d.edit,this._client):void 0,command:toMonacoCommand(d.command),_lspAction:d}}}),dispose:()=>{}}:null}};function toMonacoWorkspaceEdit(o,e){var r;const t=[];if(o.changes)for(const s in o.changes){const a=o.changes[s];for(const l of a){const c=e.bridge.translateBackRange({uri:s},l.range);t.push({resource:c.textModel.uri,versionId:void 0,textEdit:{range:c.range,text:l.newText}})}}if(o.documentChanges){for(const s of o.documentChanges)if("textDocument"in s){const a=s.textDocument.uri;for(const l of s.edits){const c=e.bridge.translateBackRange({uri:a},l.range);t.push({resource:c.textModel.uri,versionId:(r=s.textDocument.version)!=null?r:void 0,textEdit:{range:c.range,text:l.newText}})}}}return{edits:t}}var LspCodeLensFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{codeLens:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentCodeLens,!0,e=>languages.registerCodeLensProvider(toMonacoLanguageSelector(e.documentSelector),new LspCodeLensProvider(this._connection,e))))}},LspCodeLensProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideCodeLenses(o,e){const t=this._client.bridge.translate(o,new Position(1,1)),r=await this._client.server.textDocumentCodeLens({textDocument:t.textDocument});return r?{lenses:r.map(s=>({range:assertTargetTextModel(this._client.bridge.translateBackRange(t.textDocument,s.range),o).range,command:toMonacoCommand(s.command),_lspCodeLens:s})),dispose:()=>{}}:null}async resolveCodeLens(o,e,t){if(!this._capabilities.resolveProvider||!e._lspCodeLens)return e;const r=await this._client.server.codeLensResolve(e._lspCodeLens);return r.command&&(e.command={id:r.command.command,title:r.command.title,arguments:r.command.arguments}),e}},LspDocumentLinkFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{documentLink:{dynamicRegistration:!0,tooltipSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDocumentLink,!0,e=>languages.registerLinkProvider(toMonacoLanguageSelector(e.documentSelector),new LspDocumentLinkProvider(this._connection,e))))}},LspDocumentLinkProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideLinks(o,e){const t=this._client.bridge.translate(o,new Position(1,1)),r=await this._client.server.textDocumentDocumentLink({textDocument:t.textDocument});return r?{links:r.map(s=>({range:this._client.bridge.translateBackRange(t.textDocument,s.range).range,url:s.target,tooltip:s.tooltip}))}:null}async resolveLink(o,e){return this._capabilities.resolveProvider,o}},LspFormattingFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{formatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentFormatting,!0,e=>languages.registerDocumentFormattingEditProvider(toMonacoLanguageSelector(e.documentSelector),new LspDocumentFormattingProvider(this._connection,e))))}},LspDocumentFormattingProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideDocumentFormattingEdits(o,e,t){const r=this._client.bridge.translate(o,new Position(1,1)),s=await this._client.server.textDocumentFormatting({textDocument:r.textDocument,options:{tabSize:e.tabSize,insertSpaces:e.insertSpaces}});return s?s.map(a=>({range:this._client.bridge.translateBackRange(r.textDocument,a.range).range,text:a.newText})):null}},LspRangeFormattingFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{rangeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentRangeFormatting,!0,e=>languages.registerDocumentRangeFormattingEditProvider(toMonacoLanguageSelector(e.documentSelector),new LspDocumentRangeFormattingProvider(this._connection,e))))}},LspDocumentRangeFormattingProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideDocumentRangeFormattingEdits(o,e,t,r){const s=this._client.bridge.translate(o,e.getStartPosition()),a=await this._client.server.textDocumentRangeFormatting({textDocument:s.textDocument,range:this._client.bridge.translateRange(o,e),options:{tabSize:t.tabSize,insertSpaces:t.insertSpaces}});return a?a.map(l=>({range:this._client.bridge.translateBackRange(s.textDocument,l.range).range,text:l.newText})):null}},LspOnTypeFormattingFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{onTypeFormatting:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentOnTypeFormatting,!0,e=>languages.registerOnTypeFormattingEditProvider(toMonacoLanguageSelector(e.documentSelector),new LspOnTypeFormattingProvider(this._connection,e))))}},LspOnTypeFormattingProvider=class{constructor(o,e){__publicField(this,"autoFormatTriggerCharacters"),this._client=o,this._capabilities=e,this.autoFormatTriggerCharacters=[e.firstTriggerCharacter,...e.moreTriggerCharacter||[]]}async provideOnTypeFormattingEdits(o,e,t,r,s){const a=this._client.bridge.translate(o,e),l=await this._client.server.textDocumentOnTypeFormatting({textDocument:a.textDocument,position:a.position,ch:t,options:{tabSize:r.tabSize,insertSpaces:r.insertSpaces}});return l?l.map(c=>({range:this._client.bridge.translateBackRange(a.textDocument,c.range).range,text:c.newText})):null}},LspFoldingRangeFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{foldingRange:{dynamicRegistration:!0,rangeLimit:5e3,lineFoldingOnly:!1,foldingRangeKind:{valueSet:[FoldingRangeKind.Comment,FoldingRangeKind.Imports,FoldingRangeKind.Region]}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentFoldingRange,!0,e=>languages.registerFoldingRangeProvider(toMonacoLanguageSelector(e.documentSelector),new LspFoldingRangeProvider(this._connection,e))))}},LspFoldingRangeProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideFoldingRanges(o,e,t){const r=this._client.bridge.translate(o,new Position(1,1)),s=await this._client.server.textDocumentFoldingRange({textDocument:r.textDocument});return s?s.map(a=>({start:a.startLine+1,end:a.endLine+1,kind:toMonacoFoldingRangeKind(a.kind)})):null}},LspSelectionRangeFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{selectionRange:{dynamicRegistration:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSelectionRange,!0,e=>languages.registerSelectionRangeProvider(toMonacoLanguageSelector(e.documentSelector),new LspSelectionRangeProvider(this._connection,e))))}},LspSelectionRangeProvider=class{constructor(o,e){this._client=o,this._capabilities=e}async provideSelectionRanges(o,e,t){const r=this._client.bridge.translate(o,e[0]),s=await this._client.server.textDocumentSelectionRange({textDocument:r.textDocument,positions:e.map(a=>this._client.bridge.translate(o,a).position)});return s?s.map(a=>this.convertSelectionRange(a,r.textDocument)):null}convertSelectionRange(o,e){const t=[];let r=o;for(;r;)t.push({range:this._client.bridge.translateBackRange(e,r.range).range}),r=r.parent;return t}},LspInlayHintsFeature=class extends Disposable{constructor(o){super(),__publicField(this,"_providers",new Set),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{inlayHint:{dynamicRegistration:!0,resolveSupport:{properties:["tooltip","textEdits","label.tooltip","label.location","label.command"]}}},workspace:{inlayHint:{refreshSupport:!0}}})),this._register(this._connection.connection.registerRequestHandler(api.client.workspaceInlayHintRefresh,async()=>{for(const e of this._providers)e.refresh();return{ok:null}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentInlayHint,!0,e=>{const t=new LspInlayHintsProvider(this._connection,e);this._providers.add(t);const r=languages.registerInlayHintsProvider(toMonacoLanguageSelector(e.documentSelector),t);return{dispose:()=>{this._providers.delete(t),r.dispose()}}}))}},LspInlayHintsProvider=class{constructor(o,e){__publicField(this,"_onDidChangeInlayHints",new Emitter),__publicField(this,"onDidChangeInlayHints",this._onDidChangeInlayHints.event),__publicField(this,"resolveInlayHint"),this._client=o,this._capabilities=e,e.resolveProvider&&(this.resolveInlayHint=async(t,r)=>{const s=await this._client.server.inlayHintResolve(t._lspInlayHint);return s.tooltip&&(t.tooltip=toMonacoTooltip(s.tooltip)),s.label!==t._lspInlayHint.label&&(t.label=toLspInlayHintLabel(s.label)),s.textEdits&&(t.textEdits=s.textEdits.map(a=>({range:this._client.bridge.translateBackRange({uri:t._targetUri},a.range).range,text:a.newText}))),t})}refresh(){this._onDidChangeInlayHints.fire()}async provideInlayHints(o,e,t){const r=this._client.bridge.translate(o,e.getStartPosition()),s=await retryOnContentModified(async()=>await this._client.server.textDocumentInlayHint({textDocument:r.textDocument,range:this._client.bridge.translateRange(o,e)}));return s?{hints:s.map(a=>{var l;return{label:toLspInlayHintLabel(a.label),position:assertTargetTextModel(this._client.bridge.translateBack(r.textDocument,a.position),o).position,kind:toMonacoInlayHintKind(a.kind),tooltip:toMonacoTooltip(a.tooltip),paddingLeft:a.paddingLeft,paddingRight:a.paddingRight,textEdits:(l=a.textEdits)==null?void 0:l.map(c=>({range:assertTargetTextModel(this._client.bridge.translateBackRange(r.textDocument,c.range),o).range,text:c.newText})),_lspInlayHint:a,_targetUri:r.textDocument.uri}}),dispose:()=>{}}:null}};async function retryOnContentModified(o){for(let e=3;;e--)try{return await o()}catch(t){if(t.message==="content modified"&&e>0)continue;throw t}}function toLspInlayHintLabel(o){return typeof o=="string"?o:o.map(e=>{const t={label:e.value,tooltip:toMonacoTooltip(e.tooltip),command:toMonacoCommand(e.command)};return e.location&&(t.location={uri:Uri.parse(e.location.uri),range:new Range(e.location.range.start.line+1,e.location.range.start.character+1,e.location.range.end.line+1,e.location.range.end.character+1)}),t})}function toMonacoTooltip(o){if(o)return typeof o=="string"?o:{value:o.value,isTrusted:!0}}var LspSemanticTokensFeature=class extends Disposable{constructor(o){super(),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{semanticTokens:{dynamicRegistration:!0,requests:{range:!0,full:{delta:!0}},tokenTypes:["namespace","type","class","enum","interface","struct","typeParameter","parameter","variable","property","enumMember","event","function","method","macro","keyword","modifier","comment","string","number","regexp","operator","decorator"],tokenModifiers:["declaration","definition","readonly","static","deprecated","abstract","async","modification","documentation","defaultLibrary"],formats:[TokenFormat.Relative],overlappingTokenSupport:!1,multilineTokenSupport:!0}}})),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentSemanticTokensFull,!0,e=>languages.registerDocumentSemanticTokensProvider(toMonacoLanguageSelector(e.documentSelector),new LspSemanticTokensProvider(this._connection,e))))}},LspSemanticTokensProvider=class{constructor(o,e){this._client=o,this._capabilities=e}getLegend(){return{tokenTypes:this._capabilities.legend.tokenTypes,tokenModifiers:this._capabilities.legend.tokenModifiers}}releaseDocumentSemanticTokens(o){}async provideDocumentSemanticTokens(o,e,t){const r=this._client.bridge.translate(o,o.getPositionAt(0)),s=this._capabilities.full;if(e&&s&&typeof s=="object"&&s.delta){const l=await this._client.server.textDocumentSemanticTokensFullDelta({textDocument:r.textDocument,previousResultId:e});return l?"edits"in l?{resultId:l.resultId,edits:l.edits.map(c=>({start:c.start,deleteCount:c.deleteCount,data:c.data?new Uint32Array(c.data):void 0}))}:{resultId:l.resultId,data:new Uint32Array(l.data)}:null}const a=await this._client.server.textDocumentSemanticTokensFull({textDocument:r.textDocument});return a?{resultId:a.resultId,data:new Uint32Array(a.data)}:null}async provideDocumentSemanticTokensEdits(o,e,t){return this.provideDocumentSemanticTokens(o,e,t)}},LspDiagnosticsFeature=class extends Disposable{constructor(o){super(),__publicField(this,"_diagnosticsMarkerOwner","lsp"),__publicField(this,"_pullDiagnosticProviders",new Map),this._connection=o,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{publishDiagnostics:{relatedInformation:!0,tagSupport:{valueSet:[...lspDiagnosticTagToMonacoMarkerTag.keys()]},versionSupport:!0,codeDescriptionSupport:!0,dataSupport:!0},diagnostic:{dynamicRegistration:!0,relatedDocumentSupport:!0}}}));debugger;this._register(this._connection.connection.registerNotificationHandler(api.client.textDocumentPublishDiagnostics,e=>this._handlePublishDiagnostics(e))),this._register(this._connection.capabilities.registerCapabilityHandler(capabilities.textDocumentDiagnostic,!0,e=>{const t=new DisposableStore;for(const r of editor.getModels())this._addPullDiagnosticProvider(r,e,t);return t.add(editor.onDidCreateModel(r=>{this._addPullDiagnosticProvider(r,e,t)})),t}))}_addPullDiagnosticProvider(o,e,t){if(o.getLanguageId(),!matchesDocumentSelector(o,e.documentSelector))return;const r=new ModelDiagnosticProvider(o,this._connection,this._diagnosticsMarkerOwner,e);this._pullDiagnosticProviders.set(o,r),t.add(r),t.add(o.onWillDispose(()=>{this._pullDiagnosticProviders.delete(o)}))}_handlePublishDiagnostics(o){const e=o.uri;try{const t=this._connection.bridge.translateBack({uri:e},{line:0,character:0}).textModel;if(!t||t.isDisposed())return;const r=o.diagnostics.map(s=>toDiagnosticMarker(s));editor.setModelMarkers(t,this._diagnosticsMarkerOwner,r)}catch(t){console.debug("Could not set diagnostics for ".concat(e,":"),t)}}},ModelDiagnosticProvider=class extends Disposable{constructor(o,e,t,r){super(),__publicField(this,"_updateHandle"),__publicField(this,"_previousResultId"),this._model=o,this._connection=e,this._markerOwner=t,this._capability=r,this._register(this._model.onDidChangeContent(()=>{this._scheduleDiagnosticUpdate()})),this._scheduleDiagnosticUpdate()}_scheduleDiagnosticUpdate(){this._updateHandle!==void 0&&clearTimeout(this._updateHandle),this._updateHandle=window.setTimeout(()=>{this._updateHandle=void 0,this._requestDiagnostics()},500)}async _requestDiagnostics(){if(!this._model.isDisposed())try{const o=this._connection.bridge.translate(this._model,new Position(1,1)),e=await this._connection.server.textDocumentDiagnostic({textDocument:o.textDocument,identifier:this._capability.identifier,previousResultId:this._previousResultId});if(this._model.isDisposed())return;this._handleDiagnosticReport(e)}catch(o){console.error("Error requesting diagnostics:",o)}}_handleDiagnosticReport(o){if(o.kind==="full"){this._previousResultId=o.resultId;const e=o.items.map(t=>toDiagnosticMarker(t));editor.setModelMarkers(this._model,this._markerOwner,e),"relatedDocuments"in o&&o.relatedDocuments&&this._handleRelatedDocuments(o.relatedDocuments)}else o.kind==="unchanged"&&(this._previousResultId=o.resultId)}_handleRelatedDocuments(o){for(const[e,t]of Object.entries(o))try{const r=this._connection.bridge.translateBack({uri:e},{line:0,character:0}).textModel;if(!r||r.isDisposed())continue;if(t.kind==="full"){const s=t.items.map(a=>toDiagnosticMarker(a));editor.setModelMarkers(r,this._markerOwner,s)}}catch(r){console.debug("Could not set related diagnostics for ".concat(e,":"),r)}}dispose(){this._updateHandle!==void 0&&(clearTimeout(this._updateHandle),this._updateHandle=void 0),super.dispose()}},LspConnection=class{constructor(o,e,t,r){this.server=o,this.bridge=e,this.capabilities=t,this.connection=r}},LspCapabilitiesRegistry=class extends Disposable{constructor(o){super(),__publicField(this,"_staticCapabilities",new Set),__publicField(this,"_dynamicFromStatic",DynamicFromStaticOptions.create()),__publicField(this,"_registrations",new Map),__publicField(this,"_serverCapabilities"),this._connection=o,this._register(this._connection.registerRequestHandler(api.client.clientRegisterCapability,async e=>{for(const t of e.registrations){const r=getCapabilityByMethod(t.method),s=new CapabilityRegistration(t.id,r,t.registerOptions,!1);this._registerCapabilityOptions(s)}return{ok:null}})),this._register(this._connection.registerRequestHandler(api.client.clientUnregisterCapability,async e=>{for(const t of e.unregisterations){const r=getCapabilityByMethod(t.method),s=this._registrations.get(r),a=s==null?void 0:s.registrations.get(t.id);if(!a)throw new Error("No registration for method ".concat(t.method," with id ").concat(t.id));a==null||a.handlerDisposables.forEach(l=>l.dispose()),s==null||s.registrations.delete(t.id)}return{ok:null}}))}_registerCapabilityOptions(o){let e=this._registrations.get(o.capability);if(e||(e=new CapabilityInfo,this._registrations.set(o.capability,e)),e.registrations.has(o.id))throw new Error("Handler for method ".concat(o.capability.method," with id ").concat(o.id," already registered"));e.registrations.set(o.id,o);for(const t of e.handlers)!t.handleStaticCapability&&o.isFromStatic||o.handlerDisposables.set(t,t.handler(o.options))}setServerCapabilities(o){if(this._serverCapabilities)throw new Error("Server capabilities already set");this._serverCapabilities=o;for(const e of Object.values(capabilities)){const t=this._dynamicFromStatic.getOptions(e,o);t&&this._registerCapabilityOptions(new CapabilityRegistration(e.method,e,t,!0))}}getClientCapabilities(){const o={};for(const e of this._staticCapabilities)deepAssign(o,e.cap);return o}addStaticClientCapabilities(o){const e={cap:o};return this._staticCapabilities.add(e),{dispose:()=>{this._staticCapabilities.delete(e)}}}registerCapabilityHandler(o,e,t){let r=this._registrations.get(o);r||(r=new CapabilityInfo,this._registrations.set(o,r));const s=new CapabilityHandler(o,e,t);r.handlers.add(s);for(const a of r.registrations.values())!s.handleStaticCapability&&a.isFromStatic||a.handlerDisposables.set(s,t(a.options));return{dispose:()=>{r.handlers.delete(s);for(const a of r.registrations.values()){const l=a.handlerDisposables.get(s);l&&(l.dispose(),a.handlerDisposables.delete(s))}}}}},CapabilityHandler=class{constructor(o,e,t){this.capability=o,this.handleStaticCapability=e,this.handler=t}},CapabilityRegistration=class{constructor(o,e,t,r){__publicField(this,"handlerDisposables",new Map),this.id=o,this.capability=e,this.options=t,this.isFromStatic=r}};const capabilitiesByMethod=new Map([...Object.values(capabilities)].map(o=>[o.method,o]));function getCapabilityByMethod(o){const e=capabilitiesByMethod.get(o);if(!e)throw new Error("No capability found for method ".concat(o));return e}var CapabilityInfo=class{constructor(){__publicField(this,"handlers",new Set),__publicField(this,"registrations",new Map)}},DynamicFromStaticOptions=class qa{constructor(){__publicField(this,"_mappings",new Map)}static create(){const e=new qa;return e.set(capabilities.textDocumentDidChange,t=>{var r;if(t.textDocumentSync!==void 0)return typeof t.textDocumentSync=="object"?{syncKind:(r=t.textDocumentSync.change)!=null?r:TextDocumentSyncKind.None,documentSelector:null}:{syncKind:t.textDocumentSync,documentSelector:null}}),e.set(capabilities.textDocumentCompletion,t=>t.completionProvider),e.set(capabilities.textDocumentHover,t=>t.hoverProvider),e.set(capabilities.textDocumentSignatureHelp,t=>t.signatureHelpProvider),e.set(capabilities.textDocumentDefinition,t=>t.definitionProvider),e.set(capabilities.textDocumentReferences,t=>t.referencesProvider),e.set(capabilities.textDocumentDocumentHighlight,t=>t.documentHighlightProvider),e.set(capabilities.textDocumentDocumentSymbol,t=>t.documentSymbolProvider),e.set(capabilities.textDocumentCodeAction,t=>t.codeActionProvider),e.set(capabilities.textDocumentCodeLens,t=>t.codeLensProvider),e.set(capabilities.textDocumentDocumentLink,t=>t.documentLinkProvider),e.set(capabilities.textDocumentFormatting,t=>t.documentFormattingProvider),e.set(capabilities.textDocumentRangeFormatting,t=>t.documentRangeFormattingProvider),e.set(capabilities.textDocumentOnTypeFormatting,t=>t.documentOnTypeFormattingProvider),e.set(capabilities.textDocumentRename,t=>t.renameProvider),e.set(capabilities.textDocumentFoldingRange,t=>t.foldingRangeProvider),e.set(capabilities.textDocumentDeclaration,t=>t.declarationProvider),e.set(capabilities.textDocumentTypeDefinition,t=>t.typeDefinitionProvider),e.set(capabilities.textDocumentImplementation,t=>t.implementationProvider),e.set(capabilities.textDocumentDocumentColor,t=>t.colorProvider),e.set(capabilities.textDocumentSelectionRange,t=>t.selectionRangeProvider),e.set(capabilities.textDocumentLinkedEditingRange,t=>t.linkedEditingRangeProvider),e.set(capabilities.textDocumentPrepareCallHierarchy,t=>t.callHierarchyProvider),e.set(capabilities.textDocumentSemanticTokensFull,t=>t.semanticTokensProvider),e.set(capabilities.textDocumentInlayHint,t=>t.inlayHintProvider),e.set(capabilities.textDocumentInlineValue,t=>t.inlineValueProvider),e.set(capabilities.textDocumentDiagnostic,t=>t.diagnosticProvider),e.set(capabilities.textDocumentMoniker,t=>t.monikerProvider),e.set(capabilities.textDocumentPrepareTypeHierarchy,t=>t.typeHierarchyProvider),e.set(capabilities.workspaceSymbol,t=>t.workspaceSymbolProvider),e.set(capabilities.workspaceExecuteCommand,t=>t.executeCommandProvider),e}set(e,t){if(this._mappings.has(e.method))throw new Error("Capability for method ".concat(e.method," already registered"));this._mappings.set(e.method,t)}getOptions(e,t){const r=this._mappings.get(e.method);if(r)return r(t)}};function deepAssign(o,e){for(const t of Object.keys(e)){const r=e[t];if(r===void 0)continue;const s=o[t];if(s===void 0){o[t]=r;continue}if(typeof r!="object"||r===null){o[t]=r;continue}if(typeof s!="object"||s===null){o[t]=r;continue}deepAssign(s,r)}}var TextDocumentSynchronizer=class extends Disposable{constructor(o,e){super(),__publicField(this,"_managedModels",new Map),__publicField(this,"_managedModelsReverse",new Map),__publicField(this,"_started",!1),this._server=o,this._capabilities=e,this._register(this._capabilities.addStaticClientCapabilities({textDocument:{synchronization:{dynamicRegistration:!0,willSave:!1,willSaveWaitUntil:!1,didSave:!1}}})),this._register(e.registerCapabilityHandler(capabilities.textDocumentDidChange,!0,t=>{if(this._started)return{dispose:()=>{}};this._started=!0,this._register(editor.onDidCreateModel(r=>{this._getOrCreateManagedModel(r)}));for(const r of editor.getModels())this._getOrCreateManagedModel(r);return{dispose:()=>{}}}))}_getOrCreateManagedModel(o){if(!this._started)throw new Error("Not started");const e=o.uri.toString(!0).toLowerCase();let t=this._managedModels.get(o);return t||(t=new ManagedModel(o,this._server),this._managedModels.set(o,t),this._managedModelsReverse.set(e,o)),o.onWillDispose(()=>{t.dispose(),this._managedModels.delete(o),this._managedModelsReverse.delete(e)}),t}translateBack(o,e){const t=o.uri.toLowerCase(),r=this._managedModelsReverse.get(t);if(!r)throw new Error("No text model for uri ".concat(t));return{textModel:r,position:new Position(e.line+1,e.character+1)}}translateBackRange(o,e){const t=o.uri.toLowerCase(),r=this._managedModelsReverse.get(t);if(!r)throw new Error("No text model for uri ".concat(t));return{textModel:r,range:new Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}}translate(o,e){return{textDocument:{uri:o.uri.toString(!0)},position:{line:e.lineNumber-1,character:e.column-1}}}translateRange(o,e){return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}},ManagedModel=class extends Disposable{constructor(o,e){super(),this._textModel=o,this._api=e;const t=o.uri.toString(!0).toLowerCase();this._api.textDocumentDidOpen({textDocument:{languageId:o.getLanguageId(),uri:t,version:o.getVersionId(),text:o.getValue()}}),this._register(o.onDidChangeContent(r=>{const s=r.changes.map(a=>toLspTextDocumentContentChangeEvent(a));this._api.textDocumentDidChange({textDocument:{uri:t,version:o.getVersionId()},contentChanges:s})})),this._register({dispose:()=>{this._api.textDocumentDidClose({textDocument:{uri:t}})}})}};function toLspTextDocumentContentChangeEvent(o){return{range:toLspRange(o.range),rangeLength:o.rangeLength,text:o.text}}function toLspRange(o){return{start:{line:o.startLineNumber-1,character:o.startColumn-1},end:{line:o.endLineNumber-1,character:o.endColumn-1}}}var MonacoLspClient=class{constructor(o){__publicField(this,"_connection"),__publicField(this,"_capabilitiesRegistry"),__publicField(this,"_bridge"),__publicField(this,"_initPromise");const e=TypedChannel.fromTransport(o),t=api.getServer(e,{});e.startListen(),this._capabilitiesRegistry=new LspCapabilitiesRegistry(e),this._bridge=new TextDocumentSynchronizer(t.server,this._capabilitiesRegistry),this._connection=new LspConnection(t.server,this._bridge,this._capabilitiesRegistry,e),this.createFeatures(),this._initPromise=this._init()}async _init(){const o=await this._connection.server.initialize({processId:null,capabilities:this._capabilitiesRegistry.getClientCapabilities(),rootUri:null});this._connection.server.initialized({}),this._capabilitiesRegistry.setServerCapabilities(o.capabilities)}createFeatures(){const o=new DisposableStore;return o.add(new LspCompletionFeature(this._connection)),o.add(new LspHoverFeature(this._connection)),o.add(new LspSignatureHelpFeature(this._connection)),o.add(new LspDefinitionFeature(this._connection)),o.add(new LspDeclarationFeature(this._connection)),o.add(new LspTypeDefinitionFeature(this._connection)),o.add(new LspImplementationFeature(this._connection)),o.add(new LspReferencesFeature(this._connection)),o.add(new LspDocumentHighlightFeature(this._connection)),o.add(new LspDocumentSymbolFeature(this._connection)),o.add(new LspRenameFeature(this._connection)),o.add(new LspCodeActionFeature(this._connection)),o.add(new LspCodeLensFeature(this._connection)),o.add(new LspDocumentLinkFeature(this._connection)),o.add(new LspFormattingFeature(this._connection)),o.add(new LspRangeFormattingFeature(this._connection)),o.add(new LspOnTypeFormattingFeature(this._connection)),o.add(new LspFoldingRangeFeature(this._connection)),o.add(new LspSelectionRangeFeature(this._connection)),o.add(new LspInlayHintsFeature(this._connection)),o.add(new LspSemanticTokensFeature(this._connection)),o.add(new LspDiagnosticsFeature(this._connection)),o}},ws=null;typeof WebSocket<"u"?ws=WebSocket:typeof MozWebSocket<"u"?ws=MozWebSocket:typeof global<"u"?ws=global.WebSocket||global.MozWebSocket:typeof window<"u"?ws=window.WebSocket||window.MozWebSocket:typeof self<"u"&&(ws=self.WebSocket||self.MozWebSocket);var browser_default=ws;function normalizeWebSocketOptions(o){return"host"in o?{address:"".concat(o.forceTls?"wss":"ws","://").concat(o.host,":").concat(o.port)}:o}var WebSocketTransport=class Qs extends BaseMessageTransport{constructor(e){super(),__publicField(this,"socket"),__publicField(this,"errorEmitter",new EventEmitter$4),__publicField(this,"onError",this.errorEmitter),this.socket=e,e.onmessage=t=>{try{const r=t.data;if(typeof r=="string"){const s=JSON.parse(r);this._dispatchReceivedMessage(s)}else throw new Error("Not supported")}catch(r){this.errorEmitter.fire({error:r})}},e.onclose=t=>{this._onConnectionClosed()}}static connectTo(e){const t=new browser_default(normalizeWebSocketOptions(e).address);return new Promise((r,s)=>{t.onerror=a=>{s(a)},t.onopen=()=>{r(new Qs(t))}})}static fromWebSocket(e){return new Qs(e)}close(){this.socket.close()}dispose(){this.close()}_sendImpl(e){const t=JSON.stringify(e);return new Promise((r,s)=>{this.socket.send(t,a=>{a?s(a):r()})})}toString(){return"".concat(this.id,"@").concat(this.socket.url)}},WindowLikeTransport=class extends BaseMessageTransport{constructor(o,e=void 0,t=void 0){super(),__publicField(this,"_windowLike"),__publicField(this,"_source"),__publicField(this,"_loadingState"),__publicField(this,"_disposed",!1),__publicField(this,"_messageHandler",({data:r,source:s})=>{this._source&&s!==this._source||typeof r=="object"&&r&&this._dispatchReceivedMessage(r)}),this._windowLike=o,this._source=e,this._loadingState=t,this._windowLike.addEventListener("message",this._messageHandler)}async _sendImpl(o){if(this._disposed)throw new Error("Transport is disposed");this._loadingState&&!this._loadingState.loaded&&await this._loadingState.onLoaded,this._windowLike.postMessage(o)}toString(){return"".concat(this.id,"@").concat(this._windowLike)}dispose(){this._disposed||(this._disposed=!0,this._windowLike.removeEventListener("message",this._messageHandler))}};function createTransportToWorker(o){if(typeof window>"u")throw new Error("call this function from the main browser thread");return new WindowLikeTransport(o)}function createTransportToIFrame(o){if(typeof window>"u")throw new Error("call this function from the main browser thread");return new WindowLikeTransport(o.contentWindow,o.contentWindow,{loaded:window.document.readyState==="complete",onLoaded:new Promise(e=>{window.addEventListener("load",()=>e())})})}const index$2=Object.freeze(Object.defineProperty({__proto__:null,MonacoLspClient,WebSocketTransport,createTransportToIFrame,createTransportToWorker},Symbol.toStringTag,{value:"Module"}));function createTrustedTypesPolicy(o,e){var r;const t=globalThis.MonacoEnvironment;if(t!=null&&t.createTrustedTypesPolicy)try{return t.createTrustedTypesPolicy(o,e)}catch(s){console.error(s);return}try{return(r=globalThis.trustedTypes)==null?void 0:r.createPolicy(o,e)}catch(s){console.error(s);return}}let ttPolicy;typeof self=="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope"&&globalThis.workerttPolicy!==void 0?ttPolicy=globalThis.workerttPolicy:ttPolicy=createTrustedTypesPolicy("defaultWorkerFactory",{createScriptURL:o=>o});function getWorker(o){const e=o.label,t=globalThis.MonacoEnvironment;if(t){if(typeof t.getWorker=="function")return t.getWorker("workerMain.js",e);if(typeof t.getWorkerUrl=="function"){const r=t.getWorkerUrl("workerMain.js",e);return new Worker(ttPolicy?ttPolicy.createScriptURL(r):r,{name:e,type:"module"})}}if(o.createWorker)return o.createWorker();throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function createWebWorker(o){var t;const e=Promise.resolve(getWorker({label:(t=o.label)!=null?t:"monaco-editor-worker",moduleId:o.moduleId,createWorker:o.createWorker})).then(r=>(r.postMessage("ignore"),r.postMessage(o.createData),r));return editor.createWebWorker({worker:e,host:o.host,keepIdleModels:o.keepIdleModels})}function getGlobalMonaco(){return editor_api}const monacoEnvironment=globalThis.MonacoEnvironment;monacoEnvironment!=null&&monacoEnvironment.globalAPI&&(globalThis.monaco=getGlobalMonaco());const monacoApi=getGlobalMonaco();monacoApi.languages.css=monaco_contribution;monacoApi.languages.html=monaco_contribution$1;monacoApi.languages.typescript=monaco_contribution$3;monacoApi.languages.json=monaco_contribution$2;const monaco=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource,Emitter,KeyCode,KeyMod,MarkerSeverity,MarkerTag,Position,Range,Selection,SelectionDirection,Token,Uri,createWebWorker,css:monaco_contribution,editor,html:monaco_contribution$1,json:monaco_contribution$2,languages,lsp:index$2,typescript:monaco_contribution$3},Symbol.toStringTag,{value:"Module"}));var events={exports:{}},hasRequiredEvents;function requireEvents(){if(hasRequiredEvents)return events.exports;hasRequiredEvents=1;var o=typeof Reflect=="object"?Reflect:null,e=o&&typeof o.apply=="function"?o.apply:function(x,L,k){return Function.prototype.apply.call(x,L,k)},t;o&&typeof o.ownKeys=="function"?t=o.ownKeys:Object.getOwnPropertySymbols?t=function(x){return Object.getOwnPropertyNames(x).concat(Object.getOwnPropertySymbols(x))}:t=function(x){return Object.getOwnPropertyNames(x)};function r(E){console&&console.warn&&console.warn(E)}var s=Number.isNaN||function(x){return x!==x};function a(){a.init.call(this)}events.exports=a,events.exports.once=y,a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var l=10;function c(E){if(typeof E!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof E)}Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return l},set:function(E){if(typeof E!="number"||E<0||s(E))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+E+".");l=E}}),a.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(x){if(typeof x!="number"||x<0||s(x))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+x+".");return this._maxListeners=x,this};function d(E){return E._maxListeners===void 0?a.defaultMaxListeners:E._maxListeners}a.prototype.getMaxListeners=function(){return d(this)},a.prototype.emit=function(x){for(var L=[],k=1;k<arguments.length;k++)L.push(arguments[k]);var D=x==="error",I=this._events;if(I!==void 0)D=D&&I.error===void 0;else if(!D)return!1;if(D){var T;if(L.length>0&&(T=L[0]),T instanceof Error)throw T;var M=new Error("Unhandled error."+(T?" ("+T.message+")":""));throw M.context=T,M}var R=I[x];if(R===void 0)return!1;if(typeof R=="function")e(R,this,L);else for(var N=R.length,A=v(R,N),k=0;k<N;++k)e(A[k],this,L);return!0};function u(E,x,L,k){var D,I,T;if(c(L),I=E._events,I===void 0?(I=E._events=Object.create(null),E._eventsCount=0):(I.newListener!==void 0&&(E.emit("newListener",x,L.listener?L.listener:L),I=E._events),T=I[x]),T===void 0)T=I[x]=L,++E._eventsCount;else if(typeof T=="function"?T=I[x]=k?[L,T]:[T,L]:k?T.unshift(L):T.push(L),D=d(E),D>0&&T.length>D&&!T.warned){T.warned=!0;var M=new Error("Possible EventEmitter memory leak detected. "+T.length+" "+String(x)+" listeners added. Use emitter.setMaxListeners() to increase limit");M.name="MaxListenersExceededWarning",M.emitter=E,M.type=x,M.count=T.length,r(M)}return E}a.prototype.addListener=function(x,L){return u(this,x,L,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(x,L){return u(this,x,L,!0)};function g(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function f(E,x,L){var k={fired:!1,wrapFn:void 0,target:E,type:x,listener:L},D=g.bind(k);return D.listener=L,k.wrapFn=D,D}a.prototype.once=function(x,L){return c(L),this.on(x,f(this,x,L)),this},a.prototype.prependOnceListener=function(x,L){return c(L),this.prependListener(x,f(this,x,L)),this},a.prototype.removeListener=function(x,L){var k,D,I,T,M;if(c(L),D=this._events,D===void 0)return this;if(k=D[x],k===void 0)return this;if(k===L||k.listener===L)--this._eventsCount===0?this._events=Object.create(null):(delete D[x],D.removeListener&&this.emit("removeListener",x,k.listener||L));else if(typeof k!="function"){for(I=-1,T=k.length-1;T>=0;T--)if(k[T]===L||k[T].listener===L){M=k[T].listener,I=T;break}if(I<0)return this;I===0?k.shift():b(k,I),k.length===1&&(D[x]=k[0]),D.removeListener!==void 0&&this.emit("removeListener",x,M||L)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(x){var L,k,D;if(k=this._events,k===void 0)return this;if(k.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):k[x]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete k[x]),this;if(arguments.length===0){var I=Object.keys(k),T;for(D=0;D<I.length;++D)T=I[D],T!=="removeListener"&&this.removeAllListeners(T);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(L=k[x],typeof L=="function")this.removeListener(x,L);else if(L!==void 0)for(D=L.length-1;D>=0;D--)this.removeListener(x,L[D]);return this};function m(E,x,L){var k=E._events;if(k===void 0)return[];var D=k[x];return D===void 0?[]:typeof D=="function"?L?[D.listener||D]:[D]:L?C(D):v(D,D.length)}a.prototype.listeners=function(x){return m(this,x,!0)},a.prototype.rawListeners=function(x){return m(this,x,!1)},a.listenerCount=function(E,x){return typeof E.listenerCount=="function"?E.listenerCount(x):_.call(E,x)},a.prototype.listenerCount=_;function _(E){var x=this._events;if(x!==void 0){var L=x[E];if(typeof L=="function")return 1;if(L!==void 0)return L.length}return 0}a.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]};function v(E,x){for(var L=new Array(x),k=0;k<x;++k)L[k]=E[k];return L}function b(E,x){for(;x+1<E.length;x++)E[x]=E[x+1];E.pop()}function C(E){for(var x=new Array(E.length),L=0;L<x.length;++L)x[L]=E[L].listener||E[L];return x}function y(E,x){return new Promise(function(L,k){function D(T){E.removeListener(x,I),k(T)}function I(){typeof E.removeListener=="function"&&E.removeListener("error",D),L([].slice.call(arguments))}w(E,x,I,{once:!0}),x!=="error"&&S(E,D,{once:!0})})}function S(E,x,L){typeof E.on=="function"&&w(E,"error",x,L)}function w(E,x,L,k){if(typeof E.on=="function")k.once?E.once(x,L):E.on(x,L);else if(typeof E.addEventListener=="function")E.addEventListener(x,function D(I){k.once&&E.removeEventListener(x,D),L(I)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof E)}return events.exports}var eventsExports=requireEvents();const EventEmitter$3=getDefaultExportFromCjs(eventsExports);let cachedTextEncoder=new TextEncoder("utf-8");cachedTextEncoder.encodeInto;class ObservedData{}class SimpleObservedData extends ObservedData{constructor(t){super();K(this,"data",{});K(this,"event",new eventsExports.EventEmitter);this.data=t}update(t,r){r?setValueByKeyPath(r,t,this.data):this.data=t;const s={updateData:t,path:r!=null?r:""};r&&this.event.emit(r,s),this.event.emit("",s)}on(t,r,s){s!=null&&s.immediate&&r(this.getData(t)),this.event.on(t,r)}off(t,r){this.event.off(t,r)}getData(t){return t?getValueByKeyPath(t,this.data):this.data}destroy(){}}var Gs,Qr,Jr,Bt,ji,eo,Ba;let DataSource$1=(Ba=class extends EventEmitter$3{constructor(t){var a,l,c;super();K(this,"isInit",!1);K(this,"app");K(this,"mockData");xt(this,Gs,"base");xt(this,Qr);xt(this,Jr);xt(this,Bt);xt(this,ji,[]);xt(this,eo,[]);Rt(this,Qr,t.schema.id),Rt(this,Jr,t.schema),this.app=t.app,this.setFields(t.schema.fields),this.setMethods(t.schema.methods||[]);let r=t.initialData;const s=t.ObservedDataClass||SimpleObservedData;if(this.app.platform==="editor"){const d=cloneDeep(t.schema.mocks||[]);this.mockData=((a=d.find(u=>u.useInEditor))==null?void 0:a.data)||this.getDefaultData(),r=cloneDeep(this.mockData)}else if(typeof t.useMock=="boolean"&&t.useMock){const d=cloneDeep(t.schema.mocks||[]);this.mockData=(l=d.find(u=>u.enable))==null?void 0:l.data,r=cloneDeep(this.mockData)||this.getDefaultData()}else if(!t.initialData)r=this.getDefaultData();else{Rt(this,Bt,new s((c=t.initialData)!=null?c:{})),this.isInit=!0;return}Rt(this,Bt,new s(r!=null?r:{}))}get id(){return Ue(this,Qr)}get type(){return Ue(this,Gs)}get schema(){return Ue(this,Jr)}get fields(){return Ue(this,ji)}get methods(){return Ue(this,eo)}setFields(t){Rt(this,ji,t)}setMethods(t){Rt(this,eo,t)}get data(){return Ue(this,Bt).getData("")}setData(t,r){Ue(this,Bt).update(t,r);const s={updateData:t,path:r};this.emit("change",s)}setValue(t,r){return this.setData(r,t)}onDataChange(t,r){Ue(this,Bt).on(t,r)}offDataChange(t,r){Ue(this,Bt).off(t,r)}getDefaultData(){return getDefaultValueFromFields(Ue(this,ji))}async init(){this.isInit=!0}destroy(){Rt(this,ji,[]),this.removeAllListeners(),Ue(this,Bt).destroy()}},Gs=new WeakMap,Qr=new WeakMap,Jr=new WeakMap,Bt=new WeakMap,ji=new WeakMap,eo=new WeakMap,Ba);const urlencoded=o=>Object.entries(o).reduce((e,[t,r])=>{let s=r;return typeof r=="object"&&(s=JSON.stringify(r)),typeof r<"u"?"".concat(e).concat(e?"&":"").concat(globalThis.encodeURIComponent(t),"=").concat(globalThis.encodeURIComponent("".concat(s))):e},""),webRequest=async o=>{var g;const{url:e,method:t="GET",headers:r={},params:s={},data:a={},...l}=o,c=urlencoded(s);let d=JSON.stringify(a);return(g=r["Content-Type"])!=null&&g.includes("application/x-www-form-urlencoded")&&(d=urlencoded(a)),(await globalThis.fetch(c?"".concat(e,"?").concat(c):e,{method:t,headers:r,body:t==="GET"?void 0:d,...l})).json()};var Dr,to,io,js;class HttpDataSource extends DataSource$1{constructor(t){const{options:r}=t.schema;super(t);K(this,"isLoading",!1);K(this,"error");K(this,"httpOptions");xt(this,Dr);xt(this,to,[]);xt(this,io,[]);xt(this,js,"http");this.httpOptions=r,typeof t.request=="function"?Rt(this,Dr,t.request):typeof globalThis.fetch=="function"&&Rt(this,Dr,webRequest),this.methods.forEach(s=>{typeof s.content=="function"&&(s.timing==="beforeRequest"&&Ue(this,to).push(s.content),s.timing==="afterRequest"&&Ue(this,io).push(s.content))})}get type(){return Ue(this,js)}async init(){this.schema.autoFetch&&await this.request(),super.init()}async request(t={}){var u,g;this.isLoading=!0;const{url:r,params:s,data:a,headers:l,...c}=this.httpOptions;let d={url:typeof r=="function"?r({app:this.app,dataSource:this}):r,params:typeof s=="function"?s({app:this.app,dataSource:this}):s,data:typeof a=="function"?a({app:this.app,dataSource:this}):a,headers:typeof l=="function"?l({app:this.app,dataSource:this}):l,...c,...t};try{for(const f of Ue(this,to))await f({options:d,params:{},dataSource:this,app:this.app});if(typeof this.schema.beforeRequest=="function"&&(d=await this.schema.beforeRequest(d,{app:this.app,dataSource:this})),this.mockData)this.setData(this.mockData);else{let f=await((u=Ue(this,Dr))==null?void 0:u.call(this,d));for(const m of Ue(this,io))await m({res:f,options:d,params:{},dataSource:this,app:this.app});if(typeof this.schema.afterResponse=="function"&&(f=await this.schema.afterResponse(f,{app:this.app,dataSource:this,options:d})),(g=this.schema.responseOptions)!=null&&g.dataPath){const m=getValueByKeyPath(this.schema.responseOptions.dataPath,f);this.setData(m)}else this.setData(f)}this.error=void 0}catch(f){this.error={msg:f.message},this.emit("error",f)}this.isLoading=!1}get(t){return this.request({...t,method:"GET"})}post(t){return this.request({...t,method:"POST"})}}Dr=new WeakMap,to=new WeakMap,io=new WeakMap,js=new WeakMap;const cache=new Map,getDeps=(o,e,t)=>{let r;if(t){const d=[];e.forEach(u=>{traverseNode(u,g=>{d.push(g.id)})}),r="".concat(o.id,":").concat(d.join(":"))}else r="".concat(o.id,":").concat(e.map(d=>d.id).join(":"));if(cache.has(r))return cache.get(r);const s=new Watcher;s.addTarget(new Target({id:o.id,type:"data-source",isTarget:(d,u)=>"".concat(d).includes(DSL_NODE_KEY_COPY_PREFIX)?!1:isDataSourceTarget(o,d,u,!0)})),s.addTarget(new Target({id:o.id,type:"cond",isTarget:(d,u)=>isDataSourceCondTarget(o,d,u,!0)})),s.collect(e,{},!0);const{deps:a}=s.getTarget(o.id,"data-source"),{deps:l}=s.getTarget(o.id,"cond"),c={deps:a,condDeps:l};return cache.set(r,c),c},compiledCondition=(o,e)=>{let t=!0;for(const{op:r,value:s,range:a,field:l}of o){const[c,...d]=l,u=e[c];if(!u||!d.length)break;try{const g=getValueByKeyPath(d.join("."),u);if(!compiledCond(r,g,s,a)){t=!1;break}}catch(g){console.warn(g)}}return t},compliedConditions=(o,e)=>{if(!o[NODE_CONDS_KEY]||!Array.isArray(o[NODE_CONDS_KEY])||!o[NODE_CONDS_KEY].length)return!0;for(const{cond:t}of o[NODE_CONDS_KEY])if(t&&compiledCondition(t,e))return!0;return!1},updateNode=(o,e)=>{var t;if(isPage(o)||isPageFragment(o)){const r=(t=e.items)==null?void 0:t.findIndex(s=>s.id===o.id);e.items.splice(r,1,o)}else replaceChildNode(o,e.items)},createIteratorContentData=(o,e,t=[],r={})=>{const s={...r,[e]:{}};let a=cloneDeep(r[e]),l=s[e];return t.forEach((c,d)=>{if(Object.assign(l,a),d===t.length-1){l[c]=o;return}Array.isArray(a[c])&&(a[c]={},l[c]={}),a=a[c],l=l[c]}),s},compliedDataSourceField=(o,e)=>{const[t,...r]=o,s=t.indexOf(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX);if(s>-1){const a=t.substring(s+DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX.length),l=e[a];if(!l)return o;try{return getValueByKeyPath(r.join("."),l)}catch(c){return o}}return o},template=(o,e)=>o.replace(dataSourceTemplateRegExp,(t,r)=>{try{return getValueByKeyPath(r,e)}catch(s){return t}}),compiledNodeField=(o,e)=>typeof o=="string"?template(o,e):o!=null&&o.isBindDataSource&&o.dataSourceId?e[o.dataSourceId]:o!=null&&o.isBindDataSourceField&&o.dataSourceId&&typeof o.template=="string"?template(o.template,e[o.dataSourceId]):Array.isArray(o)&&typeof o[0]=="string"?compliedDataSourceField(o,e):o,compliedIteratorItem=({compile:o,dsId:e,item:t,deps:r,condDeps:s,inEditor:a,ctxData:l})=>{var g,f;const{items:c,...d}=t,u=cloneDeep(d);return(g=s[d.id])!=null&&g.keys.length&&!a&&(u.condResult=compliedConditions(d,l)),Array.isArray(c)&&c.length?u.items=c.map(m=>compliedIteratorItem({compile:o,dsId:e,item:m,deps:r,condDeps:s,inEditor:a,ctxData:l})):c&&(u.items=c),(f=r[u.id])!=null&&f.keys.length?compiledNode(o,u,{[e]:r},e):u},Ge=class Ge extends EventEmitter$3{constructor({app:t,useMock:r,initialData:s}){var a,l;super();K(this,"app");K(this,"dataSourceMap",new Map);K(this,"data",{});K(this,"initialData",{});K(this,"useMock",!1);Ge.waitInitSchemaList.set(this,{}),this.app=t,this.useMock=r,s&&(this.initialData=s,this.data={...s}),(l=(a=t.dsl)==null?void 0:a.dataSources)==null||l.forEach(c=>{this.addDataSource(c)}),this.isAllDataSourceRegistered()?this.callDsInit():this.on("registered-all",()=>{this.callDsInit()})}static register(t,r){var s;Ge.dataSourceClassMap.set(t,r),(s=Ge.waitInitSchemaList)==null||s.forEach((a,l)=>{const c=a[t]||[];for(let d=c.shift();d;d=c.shift()){const u=l.addDataSource(d);u&&l.init(u)}})}static getDataSourceClass(t){return Ge.dataSourceClassMap.get(t)}static clearDataSourceClass(){Ge.dataSourceClassMap.clear(),Ge.dataSourceClassMap.set("base",DataSource$1),Ge.dataSourceClassMap.set("http",HttpDataSource)}static registerObservedData(t){Ge.ObservedDataClass=t}async init(t){var r;if(!t.isInit&&!(this.app.jsEngine&&((r=t.schema.disabledInitInJsEngine)!=null&&r.includes(this.app.jsEngine)))){for(const s of t.methods){if(typeof s.content!="function")return;s.timing==="beforeInit"&&await s.content({params:{},dataSource:t,app:this.app})}await t.init();for(const s of t.methods){if(typeof s.content!="function")return;s.timing==="afterInit"&&await s.content({params:{},dataSource:t,app:this.app})}}}get(t){return this.dataSourceMap.get(t)}addDataSource(t){var a;if(!t)return;const r=Ge.dataSourceClassMap.get(t.type);if(!r){let l=Ge.waitInitSchemaList.get(this);l||(l={},Ge.waitInitSchemaList.set(this,l)),l[t.type]?l[t.type].push(t):l[t.type]=[t],this.data[t.id]=(a=this.initialData[t.id])!=null?a:getDefaultValueFromFields(t.fields);return}const s=new r({app:this.app,schema:t,request:this.app.request,useMock:this.useMock,initialData:this.initialData[t.id],ObservedDataClass:Ge.ObservedDataClass});return this.dataSourceMap.set(t.id,s),this.data[s.id]=s.data,s.on("change",l=>{this.setData(s,l)}),this.isAllDataSourceRegistered()&&this.emit("registered-all"),s}setData(t,r){this.data[t.id]=t.data,this.emit("change",t.id,r)}removeDataSource(t){var r;(r=this.get(t))==null||r.destroy(),delete this.data[t],this.dataSourceMap.delete(t)}updateSchema(t){for(const r of t){if(!this.get(r.id))return;this.removeDataSource(r.id)}for(const r of t){this.addDataSource(cloneDeep(r));const s=this.get(r.id);s&&this.init(s)}}compiledNode(t,r,s=!1){var d;if(t[NODE_DISABLE_DATA_SOURCE_KEY])return t;const{items:a,...l}=t,c=cloneDeep(l);return a&&(c.items=Array.isArray(a)&&s?a.map(u=>this.compiledNode(u,r,s)):a),l.condResult===!1||typeof l.condResult>"u"&&l[NODE_CONDS_RESULT_KEY]?c:compiledNode(u=>compiledNodeField(u,this.data),c,((d=this.app.dsl)==null?void 0:d.dataSourceDeps)||{},r)}compliedConds(t,r=this.data){if(t[NODE_DISABLE_DATA_SOURCE_KEY])return!0;const s=compliedConditions(t,r);return t[NODE_CONDS_RESULT_KEY]?!s:s}compliedIteratorItemConds(t,r,s=[]){const[a,...l]=s,c=this.get(a);if(!c)return!0;const d=createIteratorContentData(t,c.id,l,this.data);return this.compliedConds(r,d)}compliedIteratorItems(t,r,s=[]){const[a,...l]=s,c=this.get(a);if(!c)return r;const d=this.app.platform==="editor",u=createIteratorContentData(t,c.id,l,this.data),{deps:g={},condDeps:f={}}=getDeps(c.schema,r,d);return!Object.keys(g).length&&!Object.keys(f).length?r:r.map(m=>compliedIteratorItem({compile:_=>compiledNodeField(_,u),dsId:c.id,item:m,deps:g,condDeps:f,inEditor:d,ctxData:u}))}isAllDataSourceRegistered(){var t,r;return!((r=(t=this.app.dsl)==null?void 0:t.dataSources)!=null&&r.length)||this.dataSourceMap.size===this.app.dsl.dataSources.length}destroy(){this.removeAllListeners(),this.data={},this.initialData={},this.dataSourceMap.forEach(t=>{t.destroy()}),this.dataSourceMap.clear(),Ge.waitInitSchemaList.delete(this)}onDataChange(t,r,s){var a;return(a=this.get(t))==null?void 0:a.onDataChange(r,s)}offDataChange(t,r,s){var a;return(a=this.get(t))==null?void 0:a.offDataChange(r,s)}callDsInit(){const t=Array.from(this.dataSourceMap);typeof Promise.allSettled=="function"?Promise.allSettled(t.map(([,r])=>this.init(r))).then(r=>{const s={},a={};r.forEach((l,c)=>{const d=t[c][0];l.status==="fulfilled"?this.data[d]?s[d]=this.data[d]:delete s[d]:l.status==="rejected"&&(delete s[d],a[d]=l.reason)}),this.emit("init",s,a)}):Promise.all(t.map(([,r])=>this.init(r))).then(()=>{this.emit("init",this.data)}).catch(()=>{this.emit("init",this.data)})}};K(Ge,"dataSourceClassMap",new Map([["base",DataSource$1],["http",HttpDataSource]])),K(Ge,"ObservedDataClass",SimpleObservedData),K(Ge,"waitInitSchemaList",new Map);let DataSourceManager=Ge;const createDataSourceManager=(o,e,t)=>{const{dsl:r,platform:s}=o;if(!(r!=null&&r.dataSources))return;const a=new DataSourceManager({app:o,useMock:e,initialData:t});return r.dataSources&&r.dataSourceCondDeps&&s!=="editor"&&getNodes(getDepNodeIds(r.dataSourceCondDeps),r.items).forEach(l=>{l.condResult=a.compliedConds(l),updateNode(l,r)}),r.dataSources&&r.dataSourceDeps&&getNodes(getDepNodeIds(r.dataSourceDeps),r.items).forEach(l=>{updateNode(a.compiledNode(l),r)}),o.jsEngine==="nodejs"||a.on("change",(l,c)=>{var f,m,_;const d=((f=r.dataSourceDeps)==null?void 0:f[l])||{},u=((m=r.dataSourceCondDeps)==null?void 0:m[l])||{},g=union([...Object.keys(u),...Object.keys(d)]);for(const v of r.items)if(o.platform==="editor"||isPage(v)&&v.id===((_=o.page)==null?void 0:_.data.id)||isPageFragment(v)){const b=getNodes(g,[v]).map(C=>{var S,w,E;o.platform!=="editor"&&(C.condResult=a.compliedConds(C));const y=a.compiledNode(C);if(typeof((S=o.page)==null?void 0:S.setData)=="function"){isPage(y)?o.page.setData(y):v.id===o.page.data.id&&!o.page.instance&&replaceChildNode(y,[o.page.data]),(w=o.getNode(C.id))==null||w.setData(y);for(const[,x]of o.pageFragments)x.data.id===y.id?x.setData(y):x.data.id===v.id&&((E=x.getNode(y.id))==null||E.setData(y),x.instance||replaceChildNode(y,[x.data]))}return y});b.length&&a.emit("update-data",b,l,c,v.id)}}),a};var DepTargetType=(o=>(o.DEFAULT="default",o.CODE_BLOCK="code-block",o.DATA_SOURCE="data-source",o.DATA_SOURCE_METHOD="data-source-method",o.DATA_SOURCE_COND="data-source-cond",o))(DepTargetType||{});class Target{constructor(e){K(this,"isTarget");K(this,"id");K(this,"name");K(this,"type",DepTargetType.DEFAULT);K(this,"deps",{});K(this,"isCollectByDefault");var t;this.isTarget=e.isTarget,this.id=e.id,this.name=e.name,this.isCollectByDefault=(t=e.isCollectByDefault)!=null?t:!0,e.type&&(this.type=e.type),e.initialDeps&&(this.deps=e.initialDeps)}updateDep({id:e,name:t,key:r,data:s}){const a=this.deps[e]||{name:t,keys:[]};a.name=t,a.data=s,this.deps[e]=a,a.keys.indexOf(r)===-1&&a.keys.push(r)}removeDep(e,t){if(typeof e>"u"){Object.keys(this.deps).forEach(s=>{delete this.deps[s]});return}const r=this.deps[e];if(r)if(t){const s=r.keys.indexOf(t);r.keys.splice(s,1),r.keys.length===0&&delete this.deps[e]}else delete this.deps[e]}hasDep(e,t){const r=this.deps[e];return!!(r!=null&&r.keys.find(s=>s===t))}destroy(){this.deps={}}}const createCodeBlockTarget=(o,e,t={})=>new Target({type:DepTargetType.CODE_BLOCK,id:o,initialDeps:t,name:e.name,isTarget:(r,s)=>o===s?!0:(s==null?void 0:s.hookType)===HookType.CODE&&Array.isArray(s.hookData)?s.hookData.findIndex(l=>l.codeId===o)>-1:!1}),isIncludeArrayField=(o,e)=>{let t=e;return o.some((r,s)=>{const a=t.find(({name:l})=>l===r);return t=(a==null?void 0:a.fields)||[],(a==null?void 0:a.type)==="array"&&/^(?!\d+$).*$/.test("".concat(o[s+1]))&&s<o.length-1})},isDataSourceTemplate=(o,e,t=!1)=>{const r=o.match(dataSourceTemplateRegExp)||[];if(r.length<=0)return!1;const s=[],a=[];return r.forEach(l=>{const c=l.substring(2,l.length-1),d=getKeysArray(c),u=d.shift();!u||u!==e.id||(isIncludeArrayField(d,e.fields)?s.push(l):a.push(l))}),t?s.length>0:a.length>0},isSpecificDataSourceTemplate=(o,e)=>(o==null?void 0:o.isBindDataSourceField)&&o.dataSourceId&&o.dataSourceId===e&&typeof o.template=="string",isUseDataSourceField=(o,e)=>{if(!Array.isArray(o)||typeof o[0]!="string")return!1;const[t]=o,r=t.indexOf(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX);return r===-1?!1:t.substring(r+DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX.length)===e},isDataSourceTarget=(o,e,t,r=!1)=>{if(!t||!["string","object"].includes(typeof t)||"".concat(e).startsWith(NODE_CONDS_KEY))return!1;if(typeof t=="string")return isDataSourceTemplate(t,o,r);if(isObject$4(t)&&(t!=null&&t.isBindDataSource)&&t.dataSourceId&&t.dataSourceId===o.id||isSpecificDataSourceTemplate(t,o.id))return!0;if(isUseDataSourceField(t,o.id)){const[,...s]=t,a=isIncludeArrayField(s,o.fields);return r?a:!a}return!1},isDataSourceCondTarget=(o,e,t,r=!1)=>{var l;if(!Array.isArray(t)||!o)return!1;const[s,...a]=t;if(s!==o.id||!"".concat(e).startsWith(NODE_CONDS_KEY))return!1;if((l=o.fields)!=null&&l.find(c=>c.name===a[0])){const c=isIncludeArrayField(a,o.fields);return r?c:!c}return!1},createDataSourceTarget=(o,e={})=>new Target({type:DepTargetType.DATA_SOURCE,id:o.id,initialDeps:e,isTarget:(t,r)=>isDataSourceTarget(o,t,r)}),createDataSourceCondTarget=(o,e={})=>new Target({type:DepTargetType.DATA_SOURCE_COND,id:o.id,initialDeps:e,isTarget:(t,r)=>isDataSourceCondTarget(o,t,r)}),createDataSourceMethodTarget=(o,e={})=>new Target({type:DepTargetType.DATA_SOURCE_METHOD,id:o.id,initialDeps:e,isTarget:(t,r)=>{var l,c;if(!Array.isArray(r))return!1;const[s,a]=r;return!a||s!==o.id?!1:(l=o.methods)!=null&&l.find(d=>d.name===a)?!0:!((c=o.fields)!=null&&c.find(d=>d.name===a))}}),traverseTarget=(o,e,t)=>{for(const r of Object.values(o))for(const s of Object.values(r))t&&s.type!==t||e(s)};class Watcher{constructor(e){K(this,"targetsList",{});K(this,"childrenProp","items");K(this,"idProp","id");K(this,"nameProp","name");e!=null&&e.initialTargets&&(this.targetsList=e.initialTargets),e!=null&&e.childrenProp&&(this.childrenProp=e.childrenProp)}getTargetsList(){return this.targetsList}getTargets(e=DepTargetType.DEFAULT){return this.targetsList[e]||{}}addTarget(e){const t=this.getTargets(e.type)||{};this.targetsList[e.type]=t,t[e.id]=e}getTarget(e,t=DepTargetType.DEFAULT){return this.getTargets(t)[e]}hasTarget(e,t=DepTargetType.DEFAULT){return!!this.getTarget(e,t)}hasSpecifiedTypeTarget(e=DepTargetType.DEFAULT){return Object.keys(this.getTargets(e)).length>0}removeTarget(e,t=DepTargetType.DEFAULT){const r=this.getTargets(t);r[e]&&(r[e].destroy(),delete r[e])}removeTargets(e=DepTargetType.DEFAULT){const t=this.targetsList[e];if(t){for(const r of Object.values(t))r.destroy();delete this.targetsList[e]}}clearTargets(){for(const e of Object.keys(this.targetsList))delete this.targetsList[e]}collect(e,t={},r=!1,s){this.collectByCallback(e,s,({node:a,target:l})=>{this.removeTargetDep(l,a),this.collectItem(a,l,t,r)})}collectByCallback(e,t,r){traverseTarget(this.targetsList,s=>{if(!(!t&&!s.isCollectByDefault))for(const a of e)r({node:a,target:s})},t)}clear(e,t){let{targetsList:r}=this;t&&(r={[t]:this.getTargets(t)});const s=[];traverseTarget(r,a=>{if(e)for(const l of e)a.removeDep(l[this.idProp]),Array.isArray(l[this.childrenProp])&&l[this.childrenProp].length&&!s.includes(l[this.idProp])&&(s.push(l[this.idProp]),this.clear(l[this.childrenProp]));else a.removeDep()})}clearByType(e,t){this.clear(t,e)}collectItem(e,t,r={},s=!1){const a=[DepTargetType.DATA_SOURCE,DepTargetType.DATA_SOURCE_COND,DepTargetType.DATA_SOURCE_METHOD];if(e[NODE_DISABLE_DATA_SOURCE_KEY]&&a.includes(t.type)||e[NODE_DISABLE_CODE_BLOCK_KEY]&&t.type===DepTargetType.CODE_BLOCK)return;const l=(c,d="")=>{const u=(g,f)=>{const m=g===this.childrenProp,_=d?"".concat(d,".").concat(g):g;if(t.isTarget(_,f))t.updateDep({id:e[this.idProp],name:"".concat(e[this.nameProp]||e[this.idProp]),data:r,key:_});else if(!m&&Array.isArray(f))for(let v=0,b=f.length;v<b;v++){const C=f[v];isObject$4(C)&&l(C,"".concat(_,"[").concat(v,"]"))}else isObject$4(f)&&l(f,_);if(m&&s&&Array.isArray(f))for(const v of f)this.collectItem(v,t,r,s)};for(const[g,f]of Object.entries(c))typeof f>"u"||f===""||u(g,f)};l(e)}removeTargetDep(e,t,r){if(e.removeDep(t[this.idProp],r),typeof r>"u"&&Array.isArray(t[this.childrenProp])&&t[this.childrenProp].length)for(const s of t[this.childrenProp])this.removeTargetDep(e,s,r)}}class Env{constructor(e=(s=>(s=(r=>(r=globalThis.navigator)==null?void 0:r.userAgent)())!=null?s:"")(),t={}){K(this,"isIos",!1);K(this,"isIphone",!1);K(this,"isIpad",!1);K(this,"isAndroid",!1);K(this,"isAndroidPad",!1);K(this,"isMac",!1);K(this,"isWin",!1);K(this,"isMqq",!1);K(this,"isWechat",!1);K(this,"isWeb",!1);K(this,"isOpenHarmony",!1);e&&(this.isIphone=e.indexOf("iPhone")>=0,this.isIpad=/(iPad).*OS\s([\d_]+)/.test(e),this.isIos=this.isIphone||this.isIpad,this.isAndroid=e.indexOf("Android")>=0,this.isAndroidPad=this.isAndroid&&e.indexOf("Mobile")<0,this.isMac=e.indexOf("Macintosh")>=0,this.isWin=e.indexOf("Windows")>=0,this.isMqq=/QQ\/([\d.]+)/.test(e),this.isWechat=e.indexOf("MicroMessenger")>=0&&e.indexOf("wxwork")<0,this.isOpenHarmony=e.includes("OpenHarmony"),this.isWeb=!this.isIos&&!this.isAndroid&&!this.isOpenHarmony&&!/(WebOS|BlackBerry)/.test(e),Object.entries(t).forEach(([a,l])=>{this[a]=l}))}}class FlowState{constructor(){K(this,"isAbort");this.isAbort=!1}abort(){this.isAbort=!0}reset(){this.isAbort=!1}}class EventHelper extends eventsExports.EventEmitter{constructor({app:t,beforeEventHandler:r,afterEventHandler:s}){super();K(this,"app");K(this,"eventQueue",[]);K(this,"nodeEventList",new Map);K(this,"dataSourceEventList",new Map);K(this,"beforeEventHandler");K(this,"afterEventHandler");this.beforeEventHandler=r,this.afterEventHandler=s,this.app=t}destroy(){this.removeNodeEvents(),this.removeAllListeners(),this.nodeEventList.clear(),this.dataSourceEventList.clear()}bindNodeEvents(t){var r;(r=t.events)==null||r.forEach((s,a)=>{if(!s.name)return;let l="".concat(s.name,"_").concat(t.data.id);const c=s.name.split(".");c.length>1&&(l="".concat(c[1],"_").concat(c[0]));let d=Symbol(l);t.eventKeys.has(l)?d=t.eventKeys.get(l):t.eventKeys.set(l,d);const u=(g,...f)=>{this.eventHandler(a,t,f)};this.nodeEventList.set(u,d),this.on(d,u)})}removeNodeEvents(){for(const t of Array.from(this.nodeEventList.keys())){const r=this.nodeEventList.get(t);r&&this.off(r,t)}this.nodeEventList.clear()}bindDataSourceEvents(){var r,s,a;const t=Array.from(((r=this.app.dataSourceManager)==null?void 0:r.dataSourceMap.values())||[]);this.removeDataSourceEvents(t);for(const l of t){const c=(s=this.dataSourceEventList.get(l.id))!=null?s:new Map;for(const d of l.schema.events||[]){const[u,...g]=((a=d.name)==null?void 0:a.split("."))||[];if(!u)return;const f=(...m)=>{this.eventHandler(d,l,m)};c.set(d.name,f),u===DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX?l==null||l.onDataChange(g.join("."),f):l.on(u,f)}this.dataSourceEventList.set(l.id,c)}}removeDataSourceEvents(t){if(this.dataSourceEventList.size){for(const r of t){const s=this.dataSourceEventList.get(r.id);if(!s)return;for(const a of Array.from(s.keys())){const[l,...c]=a.split(".");l===DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX?r.offDataChange(c.join("."),s.get(a)):r.off(l,s.get(a))}}this.dataSourceEventList.clear()}}getEventQueue(){return this.eventQueue}addEventToQueue(t){this.eventQueue.push(t)}async eventHandler(t,r,s){const a=typeof t=="number"?r.events[t]:t;if(typeof this.beforeEventHandler=="function"&&this.beforeEventHandler({eventConfig:a,source:r,args:s}),has(a,"actions")){const l=new FlowState,{actions:c}=a;for(let d=0;d<c.length&&!(l!=null&&l.isAbort);d++)if(typeof t=="number"){const u=r.events[t].actions[d];await this.actionHandler(u,r,s,l)}else await this.actionHandler(c[d],r,s,l);l.reset()}else try{await this.compActionHandler(a,r,s)}catch(l){if(this.app.errorHandler)this.app.errorHandler(l,r,{type:"action-handler",config:a,...s});else throw l}typeof this.afterEventHandler=="function"&&this.afterEventHandler({eventConfig:a,source:r,args:s})}async actionHandler(t,r,s,a){try{if(t.actionType===ActionType.COMP){const l=t;await this.compActionHandler(l,r,s)}else if(t.actionType===ActionType.CODE){if(r.data[NODE_DISABLE_CODE_BLOCK_KEY])return;const l=t;await this.app.runCode(l.codeId,l.params||{},s,a)}else if(t.actionType===ActionType.DATA_SOURCE){if(r.data[NODE_DISABLE_DATA_SOURCE_KEY])return;const l=t,[c,d]=l.dataSourceMethod;await this.app.runDataSourceMethod(c,d,l.params||{},s,a)}}catch(l){if(this.app.errorHandler)this.app.errorHandler(l,r,{type:"action-handler",config:t,flowState:a,...s});else throw l}}async compActionHandler(t,r,s){if(!this.app.page)throw new Error("当前没有页面");let{method:a,to:l}=t;Array.isArray(a)&&([l,a]=a);const c=[],d=this.app.getNode(l);d&&c.push(d);for(const[,g]of this.app.pageFragments){const f=g.getNode(l);f&&c.push(f)}if(c.length===0){this.addEventToQueue({toId:l,method:a,fromCpt:r,args:s});return}const u=[];for(const g of c)g.instance?typeof g.instance[a]=="function"&&u.push(g.instance[a](r,...s)):g.addEventToQueue({method:a,fromCpt:r,args:s});await Promise.all(u)}}class Flexible{constructor(e){K(this,"designWidth",375);K(this,"tid");K(this,"resizeHandler",()=>{clearTimeout(this.tid),this.tid=setTimeout(()=>{this.refreshRem(),this.tid=void 0},300)});K(this,"pageshowHandler",e=>{e.persisted&&this.resizeHandler()});globalThis.document.readyState==="complete"?this.setBodyFontSize():globalThis.document.addEventListener("DOMContentLoaded",this.setBodyFontSize,!1),globalThis.addEventListener("resize",this.resizeHandler,!1),globalThis.addEventListener("pageshow",this.pageshowHandler,!1),typeof(e==null?void 0:e.designWidth)<"u"&&this.setDesignWidth(e.designWidth)}destroy(){globalThis.document.removeEventListener("DOMContentLoaded",this.setBodyFontSize,!1),globalThis.removeEventListener("resize",this.resizeHandler,!1),globalThis.removeEventListener("pageshow",this.pageshowHandler,!1)}setDesignWidth(e){this.designWidth=e,this.refreshRem()}setBodyFontSize(){globalThis.document.body.style.fontSize=".12rem"}refreshRem(){const{width:e}=document.documentElement.getBoundingClientRect(),t=e/(this.designWidth/100);globalThis.document.documentElement.style.fontSize="".concat(t,"px"),globalThis.document.documentElement.style.fontSize="".concat(this.correctRem(t),"px")}correctRem(e){const{document:t}=globalThis,r=t.createElement("div");r.style.cssText="width:1rem;height:0;overflow:hidden;position:absolute;z-index:-1;visibility:hidden;",t.documentElement.appendChild(r);const s=r.offsetWidth;return t.documentElement.removeChild(r),Math.abs(s-e)>1?e**2/s:e}}class Store{constructor({initialData:e={}}={}){K(this,"data");this.data=e}set(e,t){this.data[e]=t}get(e){return this.data[e]}}let Node$1=class extends eventsExports.EventEmitter{constructor(t){var r,s;super();K(this,"data");K(this,"style");K(this,"events",[]);K(this,"instance",null);K(this,"page");K(this,"parent");K(this,"app");K(this,"store");K(this,"eventKeys",new Map);K(this,"eventQueue",[]);this.store=new Store({initialData:((s=(r=t.app).nodeStoreInitialData)==null?void 0:s.call(r))||{}}),this.page=t.page,this.parent=t.parent,this.app=t.app,this.setData(t.config),this.listenLifeSafe()}setData(t){var a;this.data=t;const{events:r,style:s}=t;this.events=r||[],this.style=s||{};try{this.instance&&!Object.isFrozen(this.instance)&&((a=Object.getOwnPropertyDescriptor(this.instance,"config"))==null?void 0:a.writable)!==!1&&!this.instance.__isVue&&(this.instance.config=t)}catch(l){}this.emit("update-data",t)}addEventToQueue(t){this.eventQueue.push(t)}registerMethod(t){if(t){this.instance||(this.instance={});for(const[r,s]of Object.entries(t))typeof s=="function"&&(this.instance[r]=s)}}setInstance(t){this.instance=t}async runHookCode(t,r){if(typeof this.data[t]=="function"){await this.data[t](this);return}const s=this.data[t];if((s==null?void 0:s.hookType)===HookType.CODE)for(const a of s.hookData){const{codeType:l=HookCodeType.CODE,codeId:c,params:d={}}=a;l===HookCodeType.CODE&&typeof c=="string"?await this.app.runCode(c,r||d,[],void 0,this):l===HookCodeType.DATA_SOURCE_METHOD&&Array.isArray(c)&&c.length>1&&await this.app.runDataSourceMethod(c[0],c[1],r||d,[],void 0,this)}}destroy(){this.eventQueue.length=0,this.instance=null,this.events=[],this.style={},this.removeAllListeners()}listenLifeSafe(){this.once("created",t=>{this.once("destroy",()=>{this.instance=null,this.data[NODE_DISABLE_CODE_BLOCK_KEY]!==!0&&this.runHookCode("destroy"),this.listenLifeSafe()}),t&&this.setInstance(t),this.data[NODE_DISABLE_CODE_BLOCK_KEY]!==!0&&this.runHookCode("created")}),this.once("mounted",t=>{(async()=>{t&&this.setInstance(t);for(let s=this.eventQueue.shift();s;s=this.eventQueue.shift())typeof t[s.method]=="function"&&await t[s.method](s.fromCpt,...s.args);if(this.app.eventHelper){for(const s of this.app.eventHelper.getEventQueue())for(const[,a]of this.app.pageFragments){const l=a.getNode(s.toId);l&&l===this&&(typeof t[s.method]=="function"&&await t[s.method](s.fromCpt,...s.args),s.handled=!0)}this.app.eventHelper.eventQueue=this.app.eventHelper.getEventQueue().filter(s=>!s.handled)}this.data[NODE_DISABLE_CODE_BLOCK_KEY]!==!0&&this.runHookCode("mounted")})()})}};class IteratorContainer extends Node$1{constructor(){super(...arguments);K(this,"nodes",[])}setData(t){this.resetNodes(),super.setData(t)}resetNodes(){var t;(t=this.nodes)==null||t.forEach(r=>{r.forEach(s=>{s.destroy()})}),this.nodes=[]}initNode(t,r,s){var l,c,d,u,g,f;if(s.has(t.id)&&((l=s.get(t.id))==null||l.destroy()),t.type&&this.app.iteratorContainerType.has(t.type)){const m=new IteratorContainer({config:t,parent:r,page:this.page,app:this.app});s.set(t.id,m),(c=this.app.eventHelper)==null||c.bindNodeEvents(m);return}const a=new Node$1({config:t,parent:r,page:this.page,app:this.app});if((d=this.app.eventHelper)==null||d.bindNodeEvents(a),s.set(t.id,a),t.type&&this.app.pageFragmentContainerType.has(t.type)&&t.pageFragmentId){const m=(g=(u=this.app.dsl)==null?void 0:u.items)==null?void 0:g.find(_=>_.id===t.pageFragmentId);m&&(t.items=[m])}(f=t.items)==null||f.forEach(m=>{this.initNode(m,a,s)})}setNodes(t,r){const s=this.nodes[r]||new Map;t.forEach(a=>{this.initNode(a,this,s)}),this.nodes[r]=s}getNode(t,r){var s;return(s=this.nodes[r])==null?void 0:s.get(t)}destroy(){super.destroy(),this.resetNodes()}}class Page extends Node$1{constructor(t){super(t);K(this,"nodes",new Map);this.setNode(t.config.id,this),t.config.items.forEach(r=>{this.initNode(r,this)})}initNode(t,r){var a,l,c;if(t.type&&this.app.iteratorContainerType.has(t.type)){this.setNode(t.id,new IteratorContainer({config:t,parent:r,page:this,app:this.app}));return}const s=new(t.type&&App$1.nodeClassMap.get(t.type)||Node$1)({config:t,parent:r,page:this,app:this.app});if(this.setNode(t.id,s),t.type&&this.app.pageFragmentContainerType.has(t.type)&&t.pageFragmentId){const d=(l=(a=this.app.dsl)==null?void 0:a.items)==null?void 0:l.find(u=>u.id===t.pageFragmentId);d&&this.app.pageFragments.set(t.id,new Page({config:d,app:this.app}))}(c=t.items)==null||c.forEach(d=>{this.initNode(d,s)})}getNode(t,{iteratorContainerId:r,iteratorIndex:s,pageFragmentContainerId:a}={}){var l;if(this.nodes.has(t))return this.nodes.get(t);if(a)return(l=this.app.pageFragments.get(a))==null?void 0:l.getNode(t,{iteratorContainerId:r,iteratorIndex:s});if(Array.isArray(r)&&r.length&&Array.isArray(s)){let c=this.nodes.get(r[0]);for(let d=1,u=r.length;d<u;d++)c=c==null?void 0:c.getNode(r[d],s[d-1]);return c==null?void 0:c.getNode(t,s[s.length-1])}if(this.app.pageFragments.size){for(const[,c]of this.app.pageFragments)if(c.nodes.has(t))return c.nodes.get(t)}}setNode(t,r){this.nodes.set(t,r)}deleteNode(t){this.nodes.delete(t)}destroy(){this.nodes.forEach(t=>{t!==this&&t.destroy()}),this.nodes.clear(),super.destroy()}}const style2Obj=o=>{if(typeof o!="string")return o;const e={};return o.split(";").forEach(t=>{if(!t)return;const r=t.split(":");let s=r.shift(),a=r.join(":");s&&(s=s.replace(/^\s*/,"").replace(/\s*$/,""),a=a.replace(/^\s*/,"").replace(/\s*$/,""),s=s.split("-").map((l,c)=>c>0?"".concat(l[0].toUpperCase()).concat(l.substr(1)):l).join(""),e[s]=a)}),e},fillBackgroundImage=o=>o&&!/^url/.test(o)&&!/^linear-gradient/.test(o)?"url(".concat(o,")"):o,getTransform=(o,e)=>{if(!o)return[];const t=Object.entries(o).map(([s,a])=>a.trim()?(s==="rotate"&&isNumber$4(a)&&(a="".concat(a,"deg")),e!=="hippy"?"".concat(s,"(").concat(a,")"):{[s]:a}):"");if(e==="hippy")return t;const r=t.join(" ");return r.trim()?r:"none"},transformStyle=(o,e)=>{if(!o)return{};let t={};const r={};typeof o=="string"?t=style2Obj(o):t={...o};const s=e==="hippy",a=["zIndex","opacity","fontWeight"];return Object.entries(t).forEach(([l,c])=>{l==="scale"&&!r.transform&&s?r.transform=[{scale:c}]:l==="backgroundImage"&&!s?c&&(r[l]=fillBackgroundImage(c)):l==="transform"&&typeof c!="string"?r[l]=getTransform(c,e):!a.includes(l)&&c&&/^[-]?[0-9]*[.]?[0-9]*$/.test(c)?r[l]=s?c:"".concat(c/100,"rem"):r[l]=c}),r};var qi;let App$1=(qi=class extends eventsExports.EventEmitter{constructor(t){var r;super();K(this,"env");K(this,"dsl");K(this,"codeDsl");K(this,"dataSourceManager");K(this,"page");K(this,"pageFragments",new Map);K(this,"useMock",!1);K(this,"platform","mobile");K(this,"jsEngine","browser");K(this,"components",new Map);K(this,"pageFragmentContainerType",new Set(["page-fragment-container"]));K(this,"iteratorContainerType",new Set(["iterator-container"]));K(this,"request");K(this,"transformStyle");K(this,"eventHelper");K(this,"errorHandler");K(this,"nodeStoreInitialData");K(this,"flexible");t.env?this.setEnv(t.env):this.setEnv(t.ua),this.errorHandler=t.errorHandler,this.codeDsl=(r=t.config)==null?void 0:r.codeBlocks,t.platform&&(this.platform=t.platform),t.jsEngine&&(this.jsEngine=t.jsEngine),t.nodeStoreInitialData&&(this.nodeStoreInitialData=t.nodeStoreInitialData),t.pageFragmentContainerType&&(Array.isArray(t.pageFragmentContainerType)?t.pageFragmentContainerType:[t.pageFragmentContainerType]).forEach(a=>{this.pageFragmentContainerType.add(a)}),t.iteratorContainerType&&(Array.isArray(t.iteratorContainerType)?t.iteratorContainerType:[t.iteratorContainerType]).forEach(a=>{this.iteratorContainerType.add(a)}),typeof t.useMock=="boolean"&&(this.useMock=t.useMock),this.jsEngine==="browser"&&!t.disabledFlexible&&(this.flexible=new Flexible({designWidth:t.designWidth})),this.platform!=="editor"&&(this.eventHelper=new EventHelper({app:this,beforeEventHandler:t.beforeEventHandler,afterEventHandler:t.afterEventHandler})),this.transformStyle=t.transformStyle||(s=>transformStyle(s,this.jsEngine)),t.request&&(this.request=t.request),t.config&&this.setConfig(t.config,t.curPage,t.dataSourceManagerInitialData)}static registerNode(t,r){qi.nodeClassMap.set(t,r)}setEnv(t){!t||typeof t=="string"?this.env=new Env(t):this.env=t}setDesignWidth(t){var r;(r=this.flexible)==null||r.setDesignWidth(t)}setConfig(t,r,s){var l,c,d;this.dsl=t,!r&&t.items.length&&(r=t.items[0].id),this.dataSourceManager&&this.dataSourceManager.destroy(),this.dataSourceManager=createDataSourceManager(this,this.useMock,s),this.codeDsl=t.codeBlocks;const a=r||((c=(l=this.page)==null?void 0:l.data)==null?void 0:c.id);super.emit("dsl-change",{dsl:t,curPage:a}),this.pageFragments.forEach(u=>{u.destroy()}),this.pageFragments.clear(),this.setPage(a),this.dataSourceManager&&(this.dataSourceManager.isAllDataSourceRegistered()?(d=this.eventHelper)==null||d.bindDataSourceEvents():this.dataSourceManager.once("registered-all",()=>{var u;(u=this.eventHelper)==null||u.bindDataSourceEvents()}))}setPage(t){var s;const r=(s=this.dsl)==null?void 0:s.items.find(a=>"".concat(a.id)==="".concat(t));if(!r){this.deletePage(),super.emit("page-change");return}if(this.page){if(r===this.page.data)return;this.page.destroy()}if(this.page=new Page({config:r,app:this}),this.eventHelper){this.eventHelper.removeNodeEvents();for(const[,a]of this.page.nodes)this.eventHelper.bindNodeEvents(a);for(const[,a]of this.pageFragments)for(const[,l]of a.nodes)this.eventHelper.bindNodeEvents(l)}super.emit("page-change",this.page)}deletePage(){var t,r;(t=this.page)==null||t.destroy(),(r=this.eventHelper)==null||r.removeNodeEvents(),this.page=void 0}getPage(t){if(!t)return this.page;if(this.page&&"".concat(this.page.data.id)==="".concat(t))return this.page}getNode(t,r){var s;return(s=this.page)==null?void 0:s.getNode(t,r)}registerComponent(t,r){this.components.set(t,r)}unregisterComponent(t){this.components.delete(t)}resolveComponent(t){return this.components.get(t)}emit(t,...r){var l,c;const[s,...a]=r;return this.eventHelper&&s instanceof Node$1&&((l=s.data)!=null&&l.id)&&s.eventKeys.has("".concat(String(t),"_").concat(s.data.id))?(c=this.eventHelper)==null?void 0:c.emit(s.eventKeys.get("".concat(String(t),"_").concat(s.data.id)),s,...a):super.emit(t,...r)}async runCode(t,r,s,a,l){var d,u;if(!t||isEmpty$2(this.codeDsl))return;const c=(u=(d=this.codeDsl)==null?void 0:d[t])==null?void 0:u.content;if(typeof c=="function")try{await c({app:this,params:r,eventParams:s,flowState:a,node:l})}catch(g){if(this.errorHandler)this.errorHandler(g,void 0,{type:"run-code",codeId:t,params:r,eventParams:s,flowState:a,node:l});else throw g}}async runDataSourceMethod(t,r,s,a,l,c){var u;if(!t||!r)return;const d=(u=this.dataSourceManager)==null?void 0:u.get(t);if(d)try{const f=(d.methods||[]).find(m=>m.name===r);f&&typeof f.content=="function"?await f.content({app:this,params:s,dataSource:d,eventParams:a,flowState:l,node:c}):typeof d[r]=="function"&&await d[r]()}catch(g){if(this.errorHandler)this.errorHandler(g,d,{type:"data-source-method",params:s,eventParams:a,flowState:l,node:c});else throw g}}destroy(){var t,r,s,a;this.removeAllListeners(),(t=this.page)==null||t.destroy(),this.page=void 0,this.pageFragments.forEach(l=>{l.destroy()}),this.pageFragments.clear(),(r=this.flexible)==null||r.destroy(),this.flexible=void 0,(s=this.eventHelper)==null||s.destroy(),this.dsl=void 0,(a=this.dataSourceManager)==null||a.destroy(),this.dataSourceManager=void 0,this.codeDsl=void 0,this.components.clear(),this.nodeStoreInitialData=void 0}},K(qi,"nodeClassMap",new Map),qi);function prefixNames(o){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return e.map(function(r){return r.split(" ").map(function(s){return s?""+o+s:""}).join(" ")}).join(" ")}function prefixCSS(o,e){return e.replace(/([^}{]*){/gm,function(t,r){return r.replace(/\.([^{,\s\d.]+)/g,"."+o+"$1")+"{"})}function ref(o,e){return function(t){t&&(o[e]=t)}}function refs(o,e,t){return function(r){r&&(o[e][t]=r)}}function Properties(o,e){return function(t){var r=t.prototype;o.forEach(function(s){e(r,s)})}}function withMethods(o,e){return e===void 0&&(e={}),function(t,r){o.forEach(function(s){var a=e[s]||s;a in t||(t[a]=function(){for(var l,c=[],d=0;d<arguments.length;d++)c[d]=arguments[d];var u=(l=this[r])[s].apply(l,c);return u===this[r]?this:u})})}}var RGB="rgb",RGBA="rgba",HSL="hsl",HSLA="hsla",COLOR_MODELS=[RGB,RGBA,HSL,HSLA],FUNCTION="function",PROPERTY="property",ARRAY="array",OBJECT="object",STRING="string",NUMBER="number",UNDEFINED="undefined",IS_WINDOW=typeof window!==UNDEFINED,doc=typeof document!==UNDEFINED&&document,prefixes=["webkit","ms","moz","o"],getCrossBrowserProperty=function(o){if(!doc)return"";var e=(doc.body||doc.documentElement).style,t=prefixes.length;if(typeof e[o]!==UNDEFINED)return o;for(var r=0;r<t;++r){var s="-"+prefixes[r]+"-"+o;if(typeof e[s]!==UNDEFINED)return s}return""},TRANSFORM=getCrossBrowserProperty("transform"),FILTER=getCrossBrowserProperty("filter"),ANIMATION=getCrossBrowserProperty("animation"),KEYFRAMES=ANIMATION.replace("animation","keyframes"),OPEN_CLOSED_CHARACTERS=[{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:'\\"',close:'\\"'},{open:"\\'",close:"\\'"}],TINY_NUM$1=1e-7,DEFAULT_UNIT_PRESETS={cm:function(o){return o*96/2.54},mm:function(o){return o*96/254},in:function(o){return o*96},pt:function(o){return o*96/72},pc:function(o){return o*96/6},"%":function(o,e){return o*e/100},vw:function(o,e){return e===void 0&&(e=window.innerWidth),o/100*e},vh:function(o,e){return e===void 0&&(e=window.innerHeight),o/100*e},vmax:function(o,e){return e===void 0&&(e=Math.max(window.innerWidth,window.innerHeight)),o/100*e},vmin:function(o,e){return e===void 0&&(e=Math.min(window.innerWidth,window.innerHeight)),o/100*e}};function __spreadArrays$4(){for(var o=0,e=0,t=arguments.length;e<t;e++)o+=arguments[e].length;for(var r=Array(o),s=0,e=0;e<t;e++)for(var a=arguments[e],l=0,c=a.length;l<c;l++,s++)r[s]=a[l];return r}function dot$1(o,e,t,r){return(o*r+e*t)/(t+r)}function isUndefined$1(o){return typeof o===UNDEFINED}function isObject$2(o){return o&&typeof o===OBJECT}function isArray$1(o){return Array.isArray(o)}function isString(o){return typeof o===STRING}function isNumber(o){return typeof o===NUMBER}function isFunction$1(o){return typeof o===FUNCTION}function isEqualSeparator(o,e){var t=o===""||o==" ",r=e===""||e==" ";return r&&t||o===e}function findOpen(o,e,t,r,s){var a=findIgnore(o,e,t);return a?t:findClose(o,e,t+1,r,s)}function findIgnore(o,e,t){if(!o.ignore)return null;var r=e.slice(Math.max(t-3,0),t+3).join("");return new RegExp(o.ignore).exec(r)}function findClose(o,e,t,r,s){for(var a=function(u){var g=e[u].trim();if(g===o.close&&!findIgnore(o,e,u))return{value:u};var f=u,m=find$1(s,function(_){var v=_.open;return v===g});if(m&&(f=findOpen(m,e,u,r,s)),f===-1)return l=u,"break";u=f,l=u},l,c=t;c<r;++c){var d=a(c);if(c=l,typeof d=="object")return d.value;if(d==="break")break}return-1}function splitText(o,e){var t=isString(e)?{separator:e}:e,r=t.separator,s=r===void 0?",":r,a=t.isSeparateFirst,l=t.isSeparateOnlyOpenClose,c=t.isSeparateOpenClose,d=c===void 0?l:c,u=t.openCloseCharacters,g=u===void 0?OPEN_CLOSED_CHARACTERS:u,f=g.map(function(k){var D=k.open,I=k.close;return D===I?D:D+"|"+I}).join("|"),m="(\\s*"+s+"\\s*|"+f+"|\\s+)",_=new RegExp(m,"g"),v=o.split(_).filter(function(k){return k&&k!=="undefined"}),b=v.length,C=[],y=[];function S(){return y.length?(C.push(y.join("")),y=[],!0):!1}for(var w=function(k){var D=v[k].trim(),I=k,T=find$1(g,function(N){var A=N.open;return A===D}),M=find$1(g,function(N){var A=N.close;return A===D});if(T){if(I=findOpen(T,v,k,b,g),I!==-1&&d)return S()&&a||(C.push(v.slice(k,I+1).join("")),k=I,a)?(E=k,"break"):(E=k,"continue")}else if(M&&!findIgnore(M,v,k)){var R=__spreadArrays$4(g);return R.splice(g.indexOf(M),1),{value:splitText(o,{separator:s,isSeparateFirst:a,isSeparateOnlyOpenClose:l,isSeparateOpenClose:d,openCloseCharacters:R})}}else if(isEqualSeparator(D,s)&&!l)return S(),a?(E=k,"break"):(E=k,"continue");I===-1&&(I=b-1),y.push(v.slice(k,I+1).join("")),k=I,E=k},E,x=0;x<b;++x){var L=w(x);if(x=E,typeof L=="object")return L.value;if(L==="break")break}return y.length&&C.push(y.join("")),C}function splitSpace(o){return splitText(o,"")}function splitComma(o){return splitText(o,",")}function splitBracket(o){var e=/([^(]*)\(([\s\S]*)\)([\s\S]*)/g.exec(o);return!e||e.length<4?{}:{prefix:e[1],value:e[2],suffix:e[3]}}function splitUnit(o){var e=/^([^\d|e|\-|\+]*)((?:\d|\.|-|e-|e\+)+)(\S*)$/g.exec(o);if(!e)return{prefix:"",unit:"",value:NaN};var t=e[1],r=e[2],s=e[3];return{prefix:t,unit:s,value:parseFloat(r)}}function camelize(o){return o.replace(/[\s-_]+([^\s-_])/g,function(e,t){return t.toUpperCase()})}function decamelize(o,e){return e===void 0&&(e="-"),o.replace(/([a-z])([A-Z])/g,function(t,r,s){return""+r+e+s.toLowerCase()})}function toArray(o){return[].slice.call(o)}function now(){return Date.now?Date.now():new Date().getTime()}function findIndex(o,e,t){t===void 0&&(t=-1);for(var r=o.length,s=0;s<r;++s)if(e(o[s],s,o))return s;return t}function findLastIndex(o,e,t){t===void 0&&(t=-1);for(var r=o.length,s=r-1;s>=0;--s)if(e(o[s],s,o))return s;return t}function findLast(o,e,t){var r=findLastIndex(o,e);return r>-1?o[r]:t}function find$1(o,e,t){var r=findIndex(o,e);return r>-1?o[r]:t}var requestAnimationFrame$1=(function(){var o=now(),e=IS_WINDOW&&(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame);return e?e.bind(window):function(t){var r=now(),s=setTimeout(function(){t(r-o)},1e3/60);return s}})(),cancelAnimationFrame=(function(){var o=IS_WINDOW&&(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.msCancelAnimationFrame);return o?o.bind(window):function(e){clearTimeout(e)}})();function getKeys(o){return Object.keys(o)}function getValues(o){var e=getKeys(o);return e.map(function(t){return o[t]})}function sortOrders(o,e){e===void 0&&(e=[]),o.sort(function(t,r){var s=e.indexOf(t),a=e.indexOf(r);return a===-1&&s===-1?0:s===-1?1:a===-1?-1:s-a})}function convertUnitSize(o,e){var t=splitUnit(o),r=t.value,s=t.unit;if(isObject$2(e)){var a=e[s];if(a){if(isFunction$1(a))return a(r);if(DEFAULT_UNIT_PRESETS[s])return DEFAULT_UNIT_PRESETS[s](r,a)}}else if(s==="%")return r*e/100;return DEFAULT_UNIT_PRESETS[s]?DEFAULT_UNIT_PRESETS[s](r):r}function between(o,e,t){return Math.max(e,Math.min(o,t))}function checkBoundSize(o,e,t,r){return r===void 0&&(r=o[0]/o[1]),[[throttle(e[0],TINY_NUM$1),throttle(e[0]/r,TINY_NUM$1)],[throttle(e[1]*r,TINY_NUM$1),throttle(e[1],TINY_NUM$1)]].filter(function(s){return s.every(function(a,l){var c=e[l],d=throttle(c,TINY_NUM$1);return t?a<=c||a<=d:a>=c||a>=d})})[0]||o}function calculateBoundSize(o,e,t,r){if(!r)return o.map(function(_,v){return between(_,e[v],t[v])});var s=o[0],a=o[1],l=r===!0?s/a:r,c=checkBoundSize(o,e,!1,l),d=c[0],u=c[1],g=checkBoundSize(o,t,!0,l),f=g[0],m=g[1];return s<d||a<u?(s=d,a=u):(s>f||a>m)&&(s=f,a=m),[s,a]}function sum(o){for(var e=o.length,t=0,r=e-1;r>=0;--r)t+=o[r];return t}function average(o){for(var e=o.length,t=0,r=e-1;r>=0;--r)t+=o[r];return e?t/e:0}function getRad$1(o,e){var t=e[0]-o[0],r=e[1]-o[1],s=Math.atan2(r,t);return s>=0?s:s+Math.PI*2}function getCenterPoint(o){return[0,1].map(function(e){return average(o.map(function(t){return t[e]}))})}function getShapeDirection(o){var e=getCenterPoint(o),t=getRad$1(e,o[0]),r=getRad$1(e,o[1]);return t<r&&r-t<Math.PI||t>r&&r-t<-Math.PI?1:-1}function getDist$2(o,e){return Math.sqrt(Math.pow((e?e[0]:0)-o[0],2)+Math.pow((e?e[1]:0)-o[1],2))}function throttle(o,e){if(!e)return o;var t=1/e;return Math.round(o/e)/t}function throttleArray(o,e){return o.forEach(function(t,r){o[r]=throttle(o[r],e)}),o}function counter(o){for(var e=[],t=0;t<o;++t)e.push(t);return e}function flat$2(o){return o.reduce(function(e,t){return e.concat(t)},[])}function pushSet(o,e){o.indexOf(e)===-1&&o.push(e)}function cutHex(o){return o.replace("#","")}function hexToRGBA(o){var e=cutHex(o),t=parseInt(e.substring(0,2),16),r=parseInt(e.substring(2,4),16),s=parseInt(e.substring(4,6),16),a=parseInt(e.substring(6,8),16)/255;return isNaN(a)&&(a=1),[t,r,s,a]}function toFullHex(o){var e=o.charAt(1),t=o.charAt(2),r=o.charAt(3),s=o.charAt(4),a=["#",e,e,t,t,r,r,s,s];return a.join("")}function hslToRGBA(o){var e,t=o[0],r=o[1],s=o[2];t<0&&(t+=Math.floor((Math.abs(t)+360)/360)*360),t%=360;var a=(1-Math.abs(2*s-1))*r,l=a*(1-Math.abs(t/60%2-1)),c=s-a/2,d;return t<60?d=[a,l,0]:t<120?d=[l,a,0]:t<180?d=[0,a,l]:t<240?d=[0,l,a]:t<300?d=[l,0,a]:t<360?d=[a,0,l]:d=[0,0,0],[Math.round((d[0]+c)*255),Math.round((d[1]+c)*255),Math.round((d[2]+c)*255),(e=o[3])!==null&&e!==void 0?e:1]}function stringToRGBA(o){if(o.charAt(0)==="#")return o.length===4||o.length===5?hexToRGBA(toFullHex(o)):hexToRGBA(o);if(o.indexOf("(")!==-1){var e=splitBracket(o),t=e.prefix,r=e.value;if(!t||!r)return;var s=splitComma(r),a=[0,0,0,1],l=s.length;switch(t){case RGB:case RGBA:for(var c=0;c<l;++c)a[c]=parseFloat(s[c]);return a;case HSL:case HSLA:for(var c=0;c<l;++c)s[c].indexOf("%")!==-1?a[c]=parseFloat(s[c])/100:a[c]=parseFloat(s[c]);return hslToRGBA(a)}}}function $(o,e){return doc?e?doc.querySelectorAll(o):doc.querySelector(o):e?[]:null}function hasClass(o,e){return o.classList?o.classList.contains(e):!!o.className.match(new RegExp("(\\s|^)"+e+"(\\s|$)"))}function addClass(o,e){o.classList?o.classList.add(e):o.className+=" "+e}function removeClass(o,e){if(o.classList)o.classList.remove(e);else{var t=new RegExp("(\\s|^)"+e+"(\\s|$)");o.className=o.className.replace(t," ")}}function fromCSS(o,e){if(!o||!e||!e.length)return{};var t;if(o instanceof Element)t=o;else if(o.length)t=o[0];else return{};for(var r={},s=getWindow(t).getComputedStyle(t),a=e.length,l=0;l<a;++l)r[e[l]]=s[e[l]];return r}function addEvent(o,e,t,r){o.addEventListener(e,t,r)}function removeEvent(o,e,t,r){o.removeEventListener(e,t,r)}function getDocument(o){return(o==null?void 0:o.ownerDocument)||doc}function getDocumentElement(o){return getDocument(o).documentElement}function getDocumentBody(o){return getDocument(o).body}function getWindow(o){var e;return((e=o==null?void 0:o.ownerDocument)===null||e===void 0?void 0:e.defaultView)||window}function isWindow(o){return o&&"postMessage"in o&&"blur"in o&&"self"in o}function isNode(o){return isObject$2(o)&&o.nodeName&&o.nodeType&&"ownerDocument"in o}var PolyMap=(function(){function o(){this.keys=[],this.values=[]}var e=o.prototype;return e.get=function(t){return this.values[this.keys.indexOf(t)]},e.set=function(t,r){var s=this.keys,a=this.values,l=s.indexOf(t),c=l===-1?s.length:l;s[c]=t,a[c]=r},o})(),HashMap=(function(){function o(){this.object={}}var e=o.prototype;return e.get=function(t){return this.object[t]},e.set=function(t,r){this.object[t]=r},o})(),SUPPORT_MAP=typeof Map=="function",Link=(function(){function o(){}var e=o.prototype;return e.connect=function(t,r){this.prev=t,this.next=r,t&&(t.next=this),r&&(r.prev=this)},e.disconnect=function(){var t=this.prev,r=this.next;t&&(t.next=r),r&&(r.prev=t)},e.getIndex=function(){for(var t=this,r=-1;t;)t=t.prev,++r;return r},o})();function orderChanged(o,e){var t=[],r=[];return o.forEach(function(s){var a=s[0],l=s[1],c=new Link;t[a]=c,r[l]=c}),t.forEach(function(s,a){s.connect(t[a-1])}),o.filter(function(s,a){return!e[a]}).map(function(s,a){var l=s[0],c=s[1];if(l===c)return[0,0];var d=t[l],u=r[c-1],g=d.getIndex();d.disconnect(),u?d.connect(u,u.next):d.connect(void 0,t[0]);var f=d.getIndex();return[g,f]})}var Result=(function(){function o(t,r,s,a,l,c,d,u){this.prevList=t,this.list=r,this.added=s,this.removed=a,this.changed=l,this.maintained=c,this.changedBeforeAdded=d,this.fixed=u}var e=o.prototype;return Object.defineProperty(e,"ordered",{get:function(){return this.cacheOrdered||this.caculateOrdered(),this.cacheOrdered},enumerable:!0,configurable:!0}),Object.defineProperty(e,"pureChanged",{get:function(){return this.cachePureChanged||this.caculateOrdered(),this.cachePureChanged},enumerable:!0,configurable:!0}),e.caculateOrdered=function(){var t=orderChanged(this.changedBeforeAdded,this.fixed),r=this.changed,s=[];this.cacheOrdered=t.filter(function(a,l){var c=a[0],d=a[1],u=r[l],g=u[0],f=u[1];if(c!==d)return s.push([g,f]),!0}),this.cachePureChanged=s},o})();function diff$1(o,e,t){var r=SUPPORT_MAP?Map:t?HashMap:PolyMap,s=t||function(S){return S},a=[],l=[],c=[],d=o.map(s),u=e.map(s),g=new r,f=new r,m=[],_=[],v={},b=[],C=0,y=0;return d.forEach(function(S,w){g.set(S,w)}),u.forEach(function(S,w){f.set(S,w)}),d.forEach(function(S,w){var E=f.get(S);typeof E>"u"?(++y,l.push(w)):v[E]=y}),u.forEach(function(S,w){var E=g.get(S);typeof E>"u"?(a.push(w),++C):(c.push([E,w]),y=v[w]||0,m.push([E-y,w-C]),_.push(w===E),E!==w&&b.push([E,w]))}),l.reverse(),new Result(o,e,a,l,b,c,m,_)}var ListDiffer=(function(){function o(t,r){t===void 0&&(t=[]),this.findKeyCallback=r,this.list=[].slice.call(t)}var e=o.prototype;return e.update=function(t){var r=[].slice.call(t),s=diff$1(this.list,r,this.findKeyCallback);return this.list=r,s},o})(),extendStatics$b=function(o,e){return extendStatics$b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics$b(o,e)};function __extends$b(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics$b(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign$c=function(){return __assign$c=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$c.apply(this,arguments)};function __rest$2(o,e){var t={};for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&e.indexOf(r)<0&&(t[r]=o[r]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(o);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(o,r[s])&&(t[r[s]]=o[r[s]]);return t}function __spreadArray$4(o,e,t){for(var r=0,s=e.length,a;r<s;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return o.concat(a||Array.prototype.slice.call(e))}function fillKeys(o){var e=0;return o.map(function(t){return t==null?"$compat".concat(++e):"".concat(t)})}function flat$1(o){var e=[];return o.forEach(function(t){e=e.concat(isArray$1(t)?flat$1(t):t)}),e}function fillProps(o,e){if(!e)return o;for(var t in e)isUndefined$1(o[t])&&(o[t]=e[t]);return o}function isDiff(o,e){if(o===e)return!1;for(var t in o)if(!(t in e))return!0;for(var t in e)if(o[t]!==e[t])return!0;return!1}function getAttributes(o){var e=o.className,t=__rest$2(o,["className"]);return e!=null&&(t.class=e),delete t.style,delete t.children,t}function splitProps(o){var e={},t={};for(var r in o)r.indexOf("on")===0?t[r]=o[r]:e[r]=o[r];return[e,t]}function findContainerNode(o){if(!o)return null;var e=o.b;return isNode(e)?e:findContainerNode(o.c)}function removeNode(o){var e=o.parentNode;e&&e.removeChild(o)}function executeHooks(o){o.forEach(function(e){e()})}function renderFunctionComponent(){return this.constructor(this.props,this.context)}var hooksIndex=0,Provider=(function(){function o(t,r,s,a,l,c,d){d===void 0&&(d={}),this.t=t,this.d=r,this.k=s,this.i=a,this.c=l,this.ref=c,this.ps=d,this.typ="prov",this._ps=[],this._cs={},this._hyd=null,this._sel=!1}var e=o.prototype;return e.s=function(){return!0},e.u=function(t,r,s,a,l){var c=this,d=c.d,u=getValues(r).filter(function(v){return v.$_req}),g=flat$1(u.map(function(v){return v.$_subs})),f=find$1(g,function(v){return v.d===d});if(c.b&&!isString(s)&&!l&&!c.s(s.props,a)&&!f){var m=g.reduce(function(v,b){var C=b.d;return v[0]?v[0].d===C&&v.push(b):C>d&&v.push(b),v},[]);return m.forEach(function(v){renderProviders(v,v._ps,[v.o],t,r,!0)}),!1}c.o=s,c.ss(a);var _=c.ps;return isString(s)||(c.ps=s.props,c.ref=s.ref),setCurrentInstance(this),c.r(t,r,c.b?_:{},a),!0},e.md=function(){this.rr()},e.ss=function(){},e.ud=function(){this.rr()},e.rr=function(){var t=this,r=t.ref,s=t.fr;r&&r(s?s.current:t.b)},o})();function getCurrentInstance(){return Object.__CROACT_CURRENT_INSTNACE__}function getHooksIndex(){return hooksIndex}function setHooksInex(o){hooksIndex=o}function setCurrentInstance(o){return Object.__CROACT_CURRENT_INSTNACE__=o,hooksIndex=0,o}var Component$1=(function(){function o(t,r){t===void 0&&(t={}),this.props=t,this.context=r,this.state={},this.$_timer=0,this.$_state={},this.$_subs=[],this.$_cs={}}var e=o.prototype;return e.render=function(){return null},e.shouldComponentUpdate=function(t,r){return this.props!==t||this.state!==r},e.setState=function(t,r,s){var a=this;a.$_timer||(a.$_state={}),clearTimeout(a.$_timer),a.$_timer=0,a.$_state=__assign$c(__assign$c({},a.$_state),t),s?a.$_setState(r,s):a.$_timer=window.setTimeout(function(){a.$_timer=0,a.$_setState(r,s)})},e.forceUpdate=function(t){this.setState({},t,!0)},e.componentDidMount=function(){},e.componentDidUpdate=function(t,r){},e.componentWillUnmount=function(){},e.$_setState=function(t,r){var s=[],a=this.$_p,l=renderProviders(a.c,[a],[a.o],s,a._cs,__assign$c(__assign$c({},this.state),this.$_state),r);l&&(t&&s.push(t),executeHooks(s),setCurrentInstance(null))},o})(),PureComponent=(function(o){__extends$b(e,o);function e(){return o!==null&&o.apply(this,arguments)||this}var t=e.prototype;return t.shouldComponentUpdate=function(r,s){return isDiff(this.props,r)||isDiff(this.state,s)},e})(Component$1);function createRef(o){var e=function(t){e.current=t};return e.current=o,e}function forwardRef(o){return o._fr=!0,o}function createComponent(o,e,t,r){var s,a;return!((s=o==null?void 0:o.prototype)===null||s===void 0)&&s.render?a=new o(e,t):(a=new Component$1(e,t),a.constructor=o,o._fr?(r.fr=createRef(),a.render=function(){return this.constructor(this.props,r.fr)}):a.render=renderFunctionComponent),a.$_p=r,a}var ComponentProvider=(function(o){__extends$b(e,o);function e(r,s,a,l,c,d,u){u===void 0&&(u={});var g=o.call(this,r,s,a,l,c,d,fillProps(u,r.defaultProps))||this;return g.typ="comp",g._usefs=[],g._uefs=[],g._defs=[],g}var t=e.prototype;return t.s=function(r,s){var a=this.b;return a.shouldComponentUpdate(fillProps(r,this.t.defaultProps),s||a.state)!==!1},t.r=function(r,s,a){var l,c,d=this,u=d.t;d.ps=fillProps(d.ps,d.t.defaultProps);var g=d.ps,f=!d.b,m=u.contextType,_=d.b,v=m==null?void 0:m.get(d);d._cs=s,f?(_=createComponent(u,g,v,d),d.b=_):(_.props=g,_.context=v);var b=_.state;d._usefs=[],d._uefs=[];var C=_.render();((c=(l=C==null?void 0:C.props)===null||l===void 0?void 0:l.children)===null||c===void 0?void 0:c.length)===0&&(C.props.children=d.ps.children);var y=__assign$c(__assign$c({},s),_.$_cs);renderProviders(d,d._ps,C?[C]:[],r,y),f?d._uefs.push(function(){m==null||m.register(d),_.componentDidMount()}):d._uefs.push(function(){_.componentDidUpdate(a,b)}),r.push(function(){d._usefs.forEach(function(S){S()}),f?d.md():d.ud(),d._defs=d._uefs.map(function(S){return S()})})},t.ss=function(r){var s=this.b;!s||!r||(s.state=r)},t.un=function(){var r,s=this;s._ps.forEach(function(l){l.un()});var a=s.t;(r=a.contextType)===null||r===void 0||r.unregister(s),clearTimeout(s.b.$_timer),s._defs.forEach(function(l){l&&l()}),s.b.componentWillUnmount()},e})(Provider);function diffAttributes(o,e,t){var r=diffObject(getAttributes(o),getAttributes(e)),s=r.added,a=r.removed,l=r.changed;for(var c in s)t.setAttribute(c,s[c]);for(var d in l)t.setAttribute(d,l[d][1]);for(var u in a)t.removeAttribute(u)}function diffEvents(o,e,t){var r=diffObject(o,e),s=r.added,a=r.removed;for(var l in a)t.e(l,!0);for(var c in s)t.e(c)}function diffObject(o,e){var t=getKeys(o),r=getKeys(e),s=diff$1(t,r,function(d){return d}),a={},l={},c={};return s.added.forEach(function(d){var u=r[d];a[u]=e[u]}),s.removed.forEach(function(d){var u=t[d];l[u]=o[u]}),s.maintained.forEach(function(d){var u=d[0],g=t[u],f=[o[g],e[g]];o[g]!==e[g]&&(c[g]=f)}),{added:a,removed:l,changed:c}}function diffStyle(o,e,t){var r=t.style,s=diffObject(o,e),a=s.added,l=s.removed,c=s.changed;for(var d in a){var u=decamelize(d,"-");r.setProperty(u,a[d])}for(var d in c){var g=decamelize(d,"-");r.setProperty(g,c[d][1])}for(var d in l){var f=decamelize(d,"-");r.removeProperty(f)}}function getNativeEventName(o){return o.replace(/^on/g,"").toLowerCase()}var ElementProvider=(function(o){__extends$b(e,o);function e(){var r=o!==null&&o.apply(this,arguments)||this;return r.typ="elem",r._es={},r._svg=!1,r}var t=e.prototype;return t.e=function(r,s){var a=this,l=a._es,c=a.b,d=getNativeEventName(r);s?(removeEvent(c,d,l[r]),delete l[r]):(l[r]=function(u){var g,f;(f=(g=a.ps)[r])===null||f===void 0||f.call(g,u)},addEvent(c,d,l[r]))},t.s=function(r){return isDiff(this.ps,r)},t.r=function(r,s,a){var l,c=this,d=!c.b,u=c.ps;if(d){var g=findContainerNode(c.c),f=!1;c._svg||c.t==="svg"?f=!0:f=g&&g.ownerSVGElement,c._svg=f;var m=(l=c._hyd)===null||l===void 0?void 0:l.splice(0,1)[0],_=c.t;if(m)c._hyd=[].slice.call(m.children||[]);else{var v=getDocument(g);f?m=v.createElementNS("http://www.w3.org/2000/svg",_):m=v.createElement(_)}c.b=m}renderProviders(c,c._ps,u.children,r,s);var b=c.b,C=splitProps(a),y=C[0],S=C[1],w=splitProps(u),E=w[0],x=w[1];return diffAttributes(y,E,b),diffEvents(S,x,c),diffStyle(a.style||{},u.style||{},b),r.push(function(){d?c.md():c.ud()}),!0},t.un=function(){var r=this,s=r._es,a=r.b;for(var l in s)removeEvent(a,l,s[l]);r._ps.forEach(function(c){c.un()}),r._es={},r._sel||removeNode(a)},e})(Provider);function findDOMNode(o){if(!o||isNode(o))return o;var e=o.$_p._ps;return e.length?findDOMNode(e[0].b):null}function findNodeProvider(o){if(o){if(o.b&&isNode(o.b))return o;var e=o._ps;return e.length?findNodeProvider(e[0]):null}}function createElement(o,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];var s=e||{},a=s.key,l=s.ref,c=__rest$2(s,["key","ref"]);return{type:o,key:a,ref:l,props:__assign$c(__assign$c({},c),{children:flat$2(t).filter(function(d){return d!=null&&d!==!1})})}}var ContainerProvider=(function(o){__extends$b(e,o);function e(r,s){s===void 0&&(s=0);var a=o.call(this,"container",s,"container",0,null)||this;return a.typ="container",a.b=r,a}var t=e.prototype;return t.r=function(){return!0},t.un=function(){},e})(Provider),TextProvider=(function(o){__extends$b(e,o);function e(){var r=o!==null&&o.apply(this,arguments)||this;return r.typ="text",r}var t=e.prototype;return t.r=function(r){var s,a=this,l=!a.b;if(l){var c=findContainerNode(a.c),d=(s=a._hyd)===null||s===void 0?void 0:s.splice(0,1)[0];a.b=d||getDocument(c).createTextNode(a.t.replace("text_",""))}return r.push(function(){l?a.md():a.ud()}),!0},t.un=function(){removeNode(this.b)},e})(Provider);function diffProviders(o,e,t){var r=t.map(function(d){return isString(d)?null:d.key}),s=fillKeys(e.map(function(d){return d.k})),a=fillKeys(r),l=diff$1(s,a,function(d){return d});l.removed.forEach(function(d){e.splice(d,1)[0].un()}),l.ordered.forEach(function(d){var u=d[0],g=d[1],f=e.splice(u,1)[0];e.splice(g,0,f);var m=findDOMNode(f.b),_=findDOMNode(e[g+1]&&e[g+1].b);m&&m.parentNode.insertBefore(m,_)}),l.added.forEach(function(d){e.splice(d,0,createProvider(t[d],r[d],d,o))});var c=l.maintained.filter(function(d){d[0];var u=d[1],g=t[u],f=e[u],m=isString(g)?"text_".concat(g):g.type;return m!==f.t?(f.un(),e.splice(u,1,createProvider(g,r[u],u,o)),!0):(f.i=u,!1)});return __spreadArray$4(__spreadArray$4([],l.added,!0),c.map(function(d){d[0];var u=d[1];return u}))}function getNextSibiling(o,e){for(var t=o._ps,r=t.length,s=e.i+1;s<r;++s){var a=findDOMNode(t[s].b);if(a)return a}return null}function createProvider(o,e,t,r){var s=r.d+1;if(isString(o)||isNumber(o))return new TextProvider("text_".concat(o),s,e,t,r,null,{});var a=o.type,l=typeof a=="string"?ElementProvider:ComponentProvider;return new l(a,s,e,t,r,o.ref,o.props)}function renderProviders(o,e,t,r,s,a,l){var c=diffProviders(o,e,t),d=o._hyd,u=e.filter(function(f,m){return f._hyd=d,f.u(r,s,t[m],a,l)});o.typ==="container"&&o._sel&&e.forEach(function(f){var m=findNodeProvider(f);m&&(m._sel=!0)}),o._hyd=null;var g=findContainerNode(o);return g&&c.reverse().forEach(function(f){var m=e[f],_=findDOMNode(m.b);if(_&&g!==_&&!_.parentNode){var v=getNextSibiling(o,m);g.insertBefore(_,v)}}),u.length>0}function renderProvider(o,e,t,r){t===void 0&&(t=e.__CROACT__),r===void 0&&(r={});var s=!!t;t||(t=new ContainerProvider(e));var a=[];return renderProviders(t,t._ps,o?[o]:[],a,r,void 0,void 0),executeHooks(a),setCurrentInstance(null),s||(e.__CROACT__=t),t}function renderSelf(o,e,t){return!t&&o&&(t=new ContainerProvider(e.parentElement),t._hyd=[e],t._sel=!0),renderProvider(o,e,t),t}function checkHookInfo(o){var e=getCurrentInstance(),t=e._hs||(e._hs=[]),r=getHooksIndex(),s=t[r];if(setHooksInex(r+1),s){if(!isDiff(s.deps,o.deps))return s.updated=!1,s;t[r]=o}else t.push(o);return o.value=o.func(),o.updated=!0,o}function useMemo(o,e){var t=checkHookInfo({func:o,deps:e});return t.value}function useRef(o){return useMemo(function(){return createRef(o)},[])}function useEffect(o,e,t){var r=getCurrentInstance(),s=checkHookInfo({func:function(){return o},deps:e}),a=t?r._usefs:r._uefs;s.updated?a.push(function(){return s.effect&&s.effect(),s.effect=o(),s.effect}):a.push(function(){return s.effect})}function useImperativeHandle(o,e,t){useEffect(function(){o==null||o(e())},t,!0)}function some(o,e){for(var t=o.length,r=0;r<t;++r)if(e(o[r],r))return!0;return!1}function find(o,e){for(var t=o.length,r=0;r<t;++r)if(e(o[r],r))return o[r];return null}function getUserAgentString(o){var e=o;if(typeof e>"u"){if(typeof navigator>"u"||!navigator)return"";e=navigator.userAgent||""}return e.toLowerCase()}function execRegExp(o,e){try{return new RegExp(o,"g").exec(e)}catch(t){return null}}function hasUserAgentData(){if(typeof navigator>"u"||!navigator||!navigator.userAgentData)return!1;var o=navigator.userAgentData,e=o.brands||o.uaList;return!!(e&&e.length)}function findVersion(o,e){var t=execRegExp("("+o+")((?:\\/|\\s|:)([0-9|\\.|_]+))",e);return t?t[3]:""}function convertVersion(o){return o.replace(/_/g,".")}function findPreset(o,e){var t=null,r="-1";return some(o,function(s){var a=execRegExp("("+s.test+")((?:\\/|\\s|:)([0-9|\\.|_]+))?",e);return!a||s.brand?!1:(t=s,r=a[3]||"-1",s.versionAlias?r=s.versionAlias:s.versionTest&&(r=findVersion(s.versionTest.toLowerCase(),e)||r),r=convertVersion(r),!0)}),{preset:t,version:r}}function findPresetBrand(o,e){var t={brand:"",version:"-1"};return some(o,function(r){var s=findBrand(e,r);return s?(t.brand=r.id,t.version=r.versionAlias||s.version,t.version!=="-1"):!1}),t}function findBrand(o,e){return find(o,function(t){var r=t.brand;return execRegExp(""+e.test,r.toLowerCase())})}var BROWSER_PRESETS=[{test:"phantomjs",id:"phantomjs"},{test:"whale",id:"whale"},{test:"edgios|edge|edg",id:"edge"},{test:"msie|trident|windows phone",id:"ie",versionTest:"iemobile|msie|rv"},{test:"miuibrowser",id:"miui browser"},{test:"samsungbrowser",id:"samsung internet"},{test:"samsung",id:"samsung internet",versionTest:"version"},{test:"chrome|crios",id:"chrome"},{test:"firefox|fxios",id:"firefox"},{test:"android",id:"android browser",versionTest:"version"},{test:"safari|iphone|ipad|ipod",id:"safari",versionTest:"version"}],CHROMIUM_PRESETS=[{test:"(?=.*applewebkit/(53[0-7]|5[0-2]|[0-4]))(?=.*\\schrome)",id:"chrome",versionTest:"chrome"},{test:"chromium",id:"chrome"},{test:"whale",id:"chrome",versionAlias:"-1",brand:!0}],WEBKIT_PRESETS=[{test:"applewebkit",id:"webkit",versionTest:"applewebkit|safari"}],WEBVIEW_PRESETS=[{test:"(?=(iphone|ipad))(?!(.*version))",id:"webview"},{test:"(?=(android|iphone|ipad))(?=.*(naver|daum|; wv))",id:"webview"},{test:"webview",id:"webview"}],OS_PRESETS=[{test:"windows phone",id:"windows phone"},{test:"windows 2000",id:"window",versionAlias:"5.0"},{test:"windows nt",id:"window"},{test:"win32|windows",id:"window"},{test:"iphone|ipad|ipod",id:"ios",versionTest:"iphone os|cpu os"},{test:"macos|macintel|mac os x",id:"mac"},{test:"android|linux armv81",id:"android"},{test:"tizen",id:"tizen"},{test:"webos|web0s",id:"webos"}];function isWebView(o){return!!findPreset(WEBVIEW_PRESETS,o).preset}function getLegacyAgent(o){var e=getUserAgentString(o),t=!!/mobi/g.exec(e),r={name:"unknown",version:"-1",majorVersion:-1,webview:isWebView(e),chromium:!1,chromiumVersion:"-1",webkit:!1,webkitVersion:"-1"},s={name:"unknown",version:"-1",majorVersion:-1},a=findPreset(BROWSER_PRESETS,e),l=a.preset,c=a.version,d=findPreset(OS_PRESETS,e),u=d.preset,g=d.version,f=findPreset(CHROMIUM_PRESETS,e);if(r.chromium=!!f.preset,r.chromiumVersion=f.version,!r.chromium){var m=findPreset(WEBKIT_PRESETS,e);r.webkit=!!m.preset,r.webkitVersion=m.version}return u&&(s.name=u.id,s.version=g,s.majorVersion=parseInt(g,10)),l&&(r.name=l.id,r.version=c,r.webview&&s.name==="ios"&&r.name!=="safari"&&(r.webview=!1)),r.majorVersion=parseInt(r.version,10),{browser:r,os:s,isMobile:t,isHints:!1}}function getClientHintsAgent(o){var e=navigator.userAgentData,t=(e.uaList||e.brands).slice(),r=e.mobile||!1,s=t[0],a=(e.platform||navigator.platform).toLowerCase(),l={name:s.brand,version:s.version,majorVersion:-1,webkit:!1,webkitVersion:"-1",chromium:!1,chromiumVersion:"-1",webview:!!findPresetBrand(WEBVIEW_PRESETS,t).brand||isWebView(getUserAgentString())},c={name:"unknown",version:"-1",majorVersion:-1};l.webkit=!l.chromium&&some(WEBKIT_PRESETS,function(m){return findBrand(t,m)});var d=findPresetBrand(CHROMIUM_PRESETS,t);if(l.chromium=!!d.brand,l.chromiumVersion=d.version||"-1",!l.chromium){var u=findPresetBrand(WEBKIT_PRESETS,t);l.webkit=!!u.brand,l.webkitVersion=u.version||"-1"}var g=find(OS_PRESETS,function(m){return new RegExp(""+m.test,"g").exec(a)});c.name=g?g.id:"";{var f=findPresetBrand(BROWSER_PRESETS,t);l.name=f.brand||l.name,l.version=f.brand&&o?o.uaFullVersion:f.version}return l.webkit&&(c.name=r?"ios":"mac"),c.name==="ios"&&l.webview&&(l.version="-1"),c.version=convertVersion(c.version),l.version=convertVersion(l.version),c.majorVersion=parseInt(c.version,10),l.majorVersion=parseInt(l.version,10),{browser:l,os:c,isMobile:r,isHints:!0}}function agent$1(o){return hasUserAgentData()?getClientHintsAgent():getLegacyAgent(o)}function add(o,e,t,r,s,a){for(var l=0;l<s;++l){var c=t+l*s,d=r+l*s;o[c]+=o[d]*a,e[c]+=e[d]*a}}function swap(o,e,t,r,s){for(var a=0;a<s;++a){var l=t+a*s,c=r+a*s,d=o[l],u=e[l];o[l]=o[c],o[c]=d,e[l]=e[c],e[c]=u}}function divide(o,e,t,r,s){for(var a=0;a<r;++a){var l=t+a*r;o[l]/=s,e[l]/=s}}function ignoreDimension(o,e,t){for(var r=o.slice(),s=0;s<t;++s)r[s*t+e-1]=0,r[(e-1)*t+s]=0;return r[(e-1)*(t+1)]=1,r}function invert(o,e){e===void 0&&(e=Math.sqrt(o.length));for(var t=o.slice(),r=createIdentityMatrix(e),s=0;s<e;++s){var a=e*s+s;if(!throttle(t[a],TINY_NUM$1)){for(var l=s+1;l<e;++l)if(t[e*s+l]){swap(t,r,s,l,e);break}}if(!throttle(t[a],TINY_NUM$1))return[];divide(t,r,s,e,t[a]);for(var l=0;l<e;++l){var c=l,d=l+s*e,u=t[d];!throttle(u,TINY_NUM$1)||s===l||add(t,r,c,s,e,-u)}}return r}function transpose(o,e){e===void 0&&(e=Math.sqrt(o.length));for(var t=[],r=0;r<e;++r)for(var s=0;s<e;++s)t[s*e+r]=o[e*r+s];return t}function getOrigin(o,e){e===void 0&&(e=Math.sqrt(o.length));for(var t=[],r=o[e*e-1],s=0;s<e-1;++s)t[s]=o[e*(e-1)+s]/r;return t[e-1]=0,t}function fromTranslation(o,e){for(var t=createIdentityMatrix(e),r=0;r<e-1;++r)t[e*(e-1)+r]=o[r]||0;return t}function convertPositionMatrix(o,e){for(var t=o.slice(),r=o.length;r<e-1;++r)t[r]=0;return t[e-1]=1,t}function convertDimension(o,e,t){if(e===void 0&&(e=Math.sqrt(o.length)),e===t)return o;for(var r=createIdentityMatrix(t),s=Math.min(e,t),a=0;a<s-1;++a){for(var l=0;l<s-1;++l)r[a*t+l]=o[a*e+l];r[(a+1)*t-1]=o[(a+1)*e-1],r[(t-1)*t+a]=o[(e-1)*e+a]}return r[t*t-1]=o[e*e-1],r}function multiplies(o){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var r=createIdentityMatrix(o);return e.forEach(function(s){r=multiply(r,s,o)}),r}function multiply(o,e,t){t===void 0&&(t=Math.sqrt(o.length));var r=[],s=o.length/t,a=e.length/s;if(s){if(!a)return o}else return e;for(var l=0;l<t;++l)for(var c=0;c<a;++c){r[c*t+l]=0;for(var d=0;d<s;++d)r[c*t+l]+=o[d*t+l]*e[c*s+d]}return r}function plus(o,e){for(var t=Math.min(o.length,e.length),r=o.slice(),s=0;s<t;++s)r[s]=r[s]+e[s];return r}function minus(o,e){for(var t=Math.min(o.length,e.length),r=o.slice(),s=0;s<t;++s)r[s]=r[s]-e[s];return r}function convertCSStoMatrix(o,e){return e===void 0&&(e=o.length===6),e?[o[0],o[1],0,o[2],o[3],0,o[4],o[5],1]:o}function convertMatrixtoCSS(o,e){return e===void 0&&(e=o.length===9),e?[o[0],o[1],o[3],o[4],o[6],o[7]]:o}function calculate(o,e,t){t===void 0&&(t=e.length);var r=multiply(o,e,t),s=r[t-1];return r.map(function(a){return a/s})}function rotateX3d(o,e){return multiply(o,[1,0,0,0,0,Math.cos(e),Math.sin(e),0,0,-Math.sin(e),Math.cos(e),0,0,0,0,1],4)}function rotateY3d(o,e){return multiply(o,[Math.cos(e),0,-Math.sin(e),0,0,1,0,0,Math.sin(e),0,Math.cos(e),0,0,0,0,1],4)}function rotateZ3d(o,e){return multiply(o,createRotateMatrix(e,4))}function scale3d(o,e){var t=e[0],r=t===void 0?1:t,s=e[1],a=s===void 0?1:s,l=e[2],c=l===void 0?1:l;return multiply(o,[r,0,0,0,0,a,0,0,0,0,c,0,0,0,0,1],4)}function rotate(o,e){return calculate(createRotateMatrix(e,3),convertPositionMatrix(o,3))}function translate3d(o,e){var t=e[0],r=t===void 0?0:t,s=e[1],a=s===void 0?0:s,l=e[2],c=l===void 0?0:l;return multiply(o,[1,0,0,0,0,1,0,0,0,0,1,0,r,a,c,1],4)}function matrix3d(o,e){return multiply(o,e,4)}function createRotateMatrix(o,e){var t=Math.cos(o),r=Math.sin(o),s=createIdentityMatrix(e);return s[0]=t,s[1]=r,s[e]=-r,s[e+1]=t,s}function createIdentityMatrix(o){for(var e=o*o,t=[],r=0;r<e;++r)t[r]=r%(o+1)?0:1;return t}function createScaleMatrix(o,e){for(var t=createIdentityMatrix(e),r=Math.min(o.length,e-1),s=0;s<r;++s)t[(e+1)*s]=o[s];return t}function createOriginMatrix(o,e){for(var t=createIdentityMatrix(e),r=Math.min(o.length,e-1),s=0;s<r;++s)t[e*(e-1)+s]=o[s];return t}function createWarpMatrix(o,e,t,r,s,a,l,c){var d=o[0],u=o[1],g=e[0],f=e[1],m=t[0],_=t[1],v=r[0],b=r[1],C=s[0],y=s[1],S=a[0],w=a[1],E=l[0],x=l[1],L=c[0],k=c[1],D=[d,0,g,0,m,0,v,0,u,0,f,0,_,0,b,0,1,0,1,0,1,0,1,0,0,d,0,g,0,m,0,v,0,u,0,f,0,_,0,b,0,1,0,1,0,1,0,1,-C*d,-y*d,-S*g,-w*g,-E*m,-x*m,-L*v,-k*v,-C*u,-y*u,-S*f,-w*f,-E*_,-x*_,-L*b,-k*b],I=invert(D,8);if(!I.length)return[];var T=multiply(I,[C,y,S,w,E,x,L,k],8);return T[8]=1,convertDimension(transpose(T),3,4)}var __assign$b=function(){return __assign$b=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$b.apply(this,arguments)};function createMatrix(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function parseMat(o,e){return e===void 0&&(e=0),toMat(parse(o,e))}function calculateMatrixDist(o,e){var t=calculate(o,[e[0],e[1]||0,e[2]||0,1],4),r=t[3]||1;return[t[0]/r,t[1]/r,t[2]/r]}function getDistElementMatrix(o,e){e===void 0&&(e=document.body);for(var t=o,r=createMatrix();t;){var s=getComputedStyle(t).transform;if(r=matrix3d(parseMat(s),r),t===e)break;t=t.parentElement}return r=invert(r,4),r[12]=0,r[13]=0,r[14]=0,r}function toMat(o){var e=createMatrix();return o.forEach(function(t){var r=t.matrixFunction,s=t.functionValue;r&&(e=r(e,s))}),e}function parse(o,e){e===void 0&&(e=0);var t=isArray$1(o)?o:splitSpace(o);return t.map(function(r){var s=splitBracket(r),a=s.prefix,l=s.value,c=null,d=a,u="";if(a==="translate"||a==="translateX"||a==="translate3d"){var g=isObject$2(e)?__assign$b(__assign$b({},e),{"o%":e["%"]}):{"%":e,"o%":e},f=splitComma(l).map(function(N,A){return A===0&&"x%"in g?g["%"]=e["x%"]:A===1&&"y%"in g?g["%"]=e["y%"]:g["%"]=e["o%"],convertUnitSize(N,g)}),m=f[0],_=f[1],v=_===void 0?0:_,b=f[2],C=b===void 0?0:b;c=translate3d,u=[m,v,C]}else if(a==="translateY"){var y=isObject$2(e)?__assign$b({"%":e["y%"]},e):{"%":e},v=convertUnitSize(l,y);c=translate3d,u=[0,v,0]}else if(a==="translateZ"){var C=parseFloat(l);c=translate3d,u=[0,0,C]}else if(a==="scale"||a==="scale3d"){var S=splitComma(l).map(function(N){return parseFloat(N)}),w=S[0],E=S[1],x=E===void 0?w:E,L=S[2],k=L===void 0?1:L;c=scale3d,u=[w,x,k]}else if(a==="scaleX"){var w=parseFloat(l);c=scale3d,u=[w,1,1]}else if(a==="scaleY"){var x=parseFloat(l);c=scale3d,u=[1,x,1]}else if(a==="scaleZ"){var k=parseFloat(l);c=scale3d,u=[1,1,k]}else if(a==="rotate"||a==="rotateZ"||a==="rotateX"||a==="rotateY"){var D=splitUnit(l),I=D.unit,T=D.value,M=I==="rad"?T:T*Math.PI/180;a==="rotate"||a==="rotateZ"?(d="rotateZ",c=rotateZ3d):a==="rotateX"?c=rotateX3d:a==="rotateY"&&(c=rotateY3d),u=M}else if(a==="matrix3d")c=matrix3d,u=splitComma(l).map(function(N){return parseFloat(N)});else if(a==="matrix"){var R=splitComma(l).map(function(N){return parseFloat(N)});c=matrix3d,u=[R[0],R[1],0,0,R[2],R[3],0,0,0,0,1,0,R[4],R[5],0,1]}else d="";return{name:a,functionName:d,value:l,matrixFunction:c,functionValue:u}})}var extendStatics$a=function(o,e){return extendStatics$a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)r.hasOwnProperty(s)&&(t[s]=r[s])},extendStatics$a(o,e)};function __extends$a(o,e){extendStatics$a(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var findKeyCallback=typeof Map=="function"?void 0:(function(){var o=0;return function(e){return e.__DIFF_KEY__||(e.__DIFF_KEY__=++o)}})(),ChildrenDiffer=(function(o){__extends$a(e,o);function e(t){return t===void 0&&(t=[]),o.call(this,t,findKeyCallback)||this}return e})(ListDiffer);function diff(o,e){return diff$1(o,e,findKeyCallback)}var __assign$a=function(){return __assign$a=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$a.apply(this,arguments)};function __spreadArrays$3(){for(var o=0,e=0,t=arguments.length;e<t;e++)o+=arguments[e].length;for(var r=Array(o),s=0,e=0;e<t;e++)for(var a=arguments[e],l=0,c=a.length;l<c;l++,s++)r[s]=a[l];return r}var EventEmitter$2=(function(){function o(){this._events={}}var e=o.prototype;return e.on=function(t,r){if(isObject$2(t))for(var s in t)this.on(s,t[s]);else this._addEvent(t,r,{});return this},e.off=function(t,r){if(!t)this._events={};else if(isObject$2(t))for(var s in t)this.off(s);else if(!r)this._events[t]=[];else{var a=this._events[t];if(a){var l=findIndex(a,function(c){return c.listener===r});l>-1&&a.splice(l,1)}}return this},e.once=function(t,r){var s=this;return r&&this._addEvent(t,r,{once:!0}),new Promise(function(a){s._addEvent(t,a,{once:!0})})},e.emit=function(t,r){var s=this;r===void 0&&(r={});var a=this._events[t];if(!t||!a)return!0;var l=!1;return r.eventType=t,r.stop=function(){l=!0},r.currentTarget=this,__spreadArrays$3(a).forEach(function(c){c.listener(r),c.once&&s.off(t,c.listener)}),!l},e.trigger=function(t,r){return r===void 0&&(r={}),this.emit(t,r)},e._addEvent=function(t,r,s){var a=this._events;a[t]=a[t]||[];var l=a[t];l.push(__assign$a({listener:r},s))},o})();var extendStatics$9=function(o,e){return extendStatics$9=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)r.hasOwnProperty(s)&&(t[s]=r[s])},extendStatics$9(o,e)};function __extends$9(o,e){extendStatics$9(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign$9=function(){return __assign$9=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$9.apply(this,arguments)};function getDefaultScrollPosition$2(o){var e=o.container;return e===document.body?[e.scrollLeft||document.documentElement.scrollLeft,e.scrollTop||document.documentElement.scrollTop]:[e.scrollLeft,e.scrollTop]}function checkDefaultScrollEvent(o,e){return o.addEventListener("scroll",e),function(){o.removeEventListener("scroll",e)}}function getContainerElement$1(o){if(o){if(isString(o))return document.querySelector(o)}else return null;if(isFunction$1(o))return o();if(o instanceof Element)return o;if("current"in o)return o.current;if("value"in o)return o.value}var DragScroll$1=(function(o){__extends$9(e,o);function e(){var r=o!==null&&o.apply(this,arguments)||this;return r._startRect=null,r._startPos=[],r._prevTime=0,r._timer=0,r._prevScrollPos=[0,0],r._isWait=!1,r._flag=!1,r._currentOptions=null,r._lock=!1,r._unregister=null,r._onScroll=function(){var s=r._currentOptions;r._lock||!s||r.emit("scrollDrag",{next:function(a){r.checkScroll({container:s.container,inputEvent:a})}})},r}var t=e.prototype;return t.dragStart=function(r,s){var a=getContainerElement$1(s.container);if(!a){this._flag=!1;return}var l=0,c=0,d=0,u=0;if(a===document.body)d=window.innerWidth,u=window.innerHeight;else{var g=a.getBoundingClientRect();l=g.top,c=g.left,d=g.width,u=g.height}this._flag=!0,this._startPos=[r.clientX,r.clientY],this._startRect={top:l,left:c,width:d,height:u},this._prevScrollPos=this._getScrollPosition([0,0],s),this._currentOptions=s,this._registerScrollEvent(s)},t.drag=function(r,s){if(clearTimeout(this._timer),!!this._flag){var a=r.clientX,l=r.clientY,c=s.threshold,d=c===void 0?0:c,u=this,g=u._startRect,f=u._startPos;this._currentOptions=s;var m=[0,0];return g.top>l-d?(f[1]>g.top||l<f[1])&&(m[1]=-1):g.top+g.height<l+d&&(f[1]<g.top+g.height||l>f[1])&&(m[1]=1),g.left>a-d?(f[0]>g.left||a<f[0])&&(m[0]=-1):g.left+g.width<a+d&&(f[0]<g.left+g.width||a>f[0])&&(m[0]=1),!m[0]&&!m[1]?!1:this._continueDrag(__assign$9(__assign$9({},s),{direction:m,inputEvent:r,isDrag:!0}))}},t.checkScroll=function(r){var s=this;if(this._isWait)return!1;var a=r.prevScrollPos,l=a===void 0?this._prevScrollPos:a,c=r.direction,d=r.throttleTime,u=d===void 0?0:d,g=r.inputEvent,f=r.isDrag,m=this._getScrollPosition(c||[0,0],r),_=m[0]-l[0],v=m[1]-l[1],b=c||[_?Math.abs(_)/_:0,v?Math.abs(v)/v:0];return this._prevScrollPos=m,this._lock=!1,!_&&!v?!1:(this.emit("move",{offsetX:b[0]?_:0,offsetY:b[1]?v:0,inputEvent:g}),u&&f&&(clearTimeout(this._timer),this._timer=window.setTimeout(function(){s._continueDrag(r)},u)),!0)},t.dragEnd=function(){this._flag=!1,this._lock=!1,clearTimeout(this._timer),this._unregisterScrollEvent()},t._getScrollPosition=function(r,s){var a=s.container,l=s.getScrollPosition,c=l===void 0?getDefaultScrollPosition$2:l;return c({container:getContainerElement$1(a),direction:r})},t._continueDrag=function(r){var s=this,a,l=r.container,c=r.direction,d=r.throttleTime,u=r.useScroll,g=r.isDrag,f=r.inputEvent;if(!(!this._flag||g&&this._isWait)){var m=now(),_=Math.max(d+this._prevTime-m,0);if(_>0)return clearTimeout(this._timer),this._timer=window.setTimeout(function(){s._continueDrag(r)},_),!1;this._prevTime=m;var v=this._getScrollPosition(c,r);this._prevScrollPos=v,g&&(this._isWait=!0),u||(this._lock=!0);var b={container:getContainerElement$1(l),direction:c,inputEvent:f};return(a=r.requestScroll)===null||a===void 0||a.call(r,b),this.emit("scroll",b),this._isWait=!1,u||this.checkScroll(__assign$9(__assign$9({},r),{prevScrollPos:v,direction:c,inputEvent:f}))}},t._registerScrollEvent=function(r){this._unregisterScrollEvent();var s=r.checkScrollEvent;if(s){var a=s===!0?checkDefaultScrollEvent:s,l=getContainerElement$1(r.container);s===!0&&(l===document.body||l===document.documentElement)?this._unregister=checkDefaultScrollEvent(window,this._onScroll):this._unregister=a(l,this._onScroll)}},t._unregisterScrollEvent=function(){var r;(r=this._unregister)===null||r===void 0||r.call(this),this._unregister=null},e})(EventEmitter$2);function __spreadArrays$2(){for(var o=0,e=0,t=arguments.length;e<t;e++)o+=arguments[e].length;for(var r=Array(o),s=0,e=0;e<t;e++)for(var a=arguments[e],l=0,c=a.length;l<c;l++,s++)r[s]=a[l];return r}function tinyThrottle(o){return throttle(o,TINY_NUM$1)}function isSameConstants(o,e){return o.every(function(t,r){return tinyThrottle(t-e[r])===0})}function isSamePoint(o,e){return!tinyThrottle(o[0]-e[0])&&!tinyThrottle(o[1]-e[1])}function getAreaSize(o){return o.length<3?0:Math.abs(sum(o.map(function(e,t){var r=o[t+1]||o[0];return e[0]*r[1]-r[0]*e[1]})))/2}function fitPoints(o,e){var t=e.width,r=e.height,s=e.left,a=e.top,l=getMinMaxs(o),c=l.minX,d=l.minY,u=l.maxX,g=l.maxY,f=t/(u-c),m=r/(g-d);return o.map(function(_){return[s+(_[0]-c)*f,a+(_[1]-d)*m]})}function getMinMaxs(o){var e=o.map(function(r){return r[0]}),t=o.map(function(r){return r[1]});return{minX:Math.min.apply(Math,e),minY:Math.min.apply(Math,t),maxX:Math.max.apply(Math,e),maxY:Math.max.apply(Math,t)}}function isInside(o,e,t){var r=o[0],s=o[1],a=getMinMaxs(e),l=a.minX,c=a.maxX,d=[[l,s],[c,s]],u=getLinearConstants(d[0],d[1]),g=convertLines(e),f=[];if(g.forEach(function(v){var b=getLinearConstants(v[0],v[1]),C=v[0];if(isSameConstants(u,b))f.push({pos:o,line:v,type:"line"});else{var y=getPointsOnLines(getIntersectionPointsByConstants(u,b),[d,v]);y.forEach(function(S){v.some(function(w){return isSamePoint(w,S)})?f.push({pos:S,line:v,type:"point"}):tinyThrottle(C[1]-s)!==0&&f.push({pos:S,line:v,type:"intersection"})})}}),find$1(f,function(v){return v[0]===r}))return!0;var m=0,_={};return f.forEach(function(v){var b=v.pos,C=v.type,y=v.line;if(!(b[0]>r))if(C==="intersection")++m;else{if(C==="line")return;if(C==="point"){var S=find$1(y,function(x){return x[1]!==s}),w=_[b[0]],E=S[1]>s?1:-1;w?w!==E&&++m:_[b[0]]=E}}}),m%2===1}function getLinearConstants(o,e){var t=o[0],r=o[1],s=e[0],a=e[1],l=s-t,c=a-r;Math.abs(l)<TINY_NUM$1&&(l=0),Math.abs(c)<TINY_NUM$1&&(c=0);var d=0,u=0,g=0;return l?c?(d=-c/l,u=1,g=-d*t-r):(u=1,g=-r):c&&(d=-1,g=t),[d,u,g]}function getIntersectionPointsByConstants(o,e){var t=o[0],r=o[1],s=o[2],a=e[0],l=e[1],c=e[2],d=t===0&&a===0,u=r===0&&l===0,g=[];if(d&&u)return[];if(d){var f=-s/r,m=-c/l;return f!==m?[]:[[-1/0,f],[1/0,f]]}else if(u){var _=-s/t,v=-c/a;return _!==v?[]:[[_,-1/0],[_,1/0]]}else if(t===0){var b=-s/r,C=-(l*b+c)/a;g=[[C,b]]}else if(a===0){var b=-c/l,C=-(r*b+s)/t;g=[[C,b]]}else if(r===0){var C=-s/t,b=-(a*C+c)/l;g=[[C,b]]}else if(l===0){var C=-c/a,b=-(t*C+s)/r;g=[[C,b]]}else{var C=(r*c-l*s)/(l*t-r*a),b=-(t*C+s)/r;g=[[C,b]]}return g.map(function(y){return[y[0],y[1]]})}function getPointsOnLines(o,e){var t=e.map(function(f){return[0,1].map(function(m){return[Math.min(f[0][m],f[1][m]),Math.max(f[0][m],f[1][m])]})}),r=[];if(o.length===2){var s=o[0],a=s[0],l=s[1];if(tinyThrottle(a-o[1][0])){if(!tinyThrottle(l-o[1][1])){var u=Math.max.apply(Math,t.map(function(f){return f[0][0]})),g=Math.min.apply(Math,t.map(function(f){return f[0][1]}));if(tinyThrottle(u-g)>0)return[];r=[[u,l],[g,l]]}}else{var c=Math.max.apply(Math,t.map(function(f){return f[1][0]})),d=Math.min.apply(Math,t.map(function(f){return f[1][1]}));if(tinyThrottle(c-d)>0)return[];r=[[a,c],[a,d]]}}return r.length||(r=o.filter(function(f){var m=f[0],_=f[1];return t.every(function(v){return 0<=tinyThrottle(m-v[0][0])&&0<=tinyThrottle(v[0][1]-m)&&0<=tinyThrottle(_-v[1][0])&&0<=tinyThrottle(v[1][1]-_)})})),r.map(function(f){return[tinyThrottle(f[0]),tinyThrottle(f[1])]})}function convertLines(o){return __spreadArrays$2(o.slice(1),[o[0]]).map(function(e,t){return[o[t],e]})}function getOverlapPointInfos(o,e){var t=o.slice(),r=e.slice();getShapeDirection(t)===-1&&t.reverse(),getShapeDirection(r)===-1&&r.reverse();var s=convertLines(t),a=convertLines(r),l=s.map(function(g){return getLinearConstants(g[0],g[1])}),c=a.map(function(g){return getLinearConstants(g[0],g[1])}),d=[];l.forEach(function(g,f){var m=s[f],_=[];c.forEach(function(v,b){var C=getIntersectionPointsByConstants(g,v),y=getPointsOnLines(C,[m,a[b]]);_.push.apply(_,y.map(function(S){return{index1:f,index2:b,pos:S,type:"intersection"}}))}),_.sort(function(v,b){return getDist$2(m[0],v.pos)-getDist$2(m[0],b.pos)}),d.push.apply(d,_),isInside(m[1],r)&&d.push({index1:f,index2:-1,pos:m[1],type:"inside"})}),a.forEach(function(g,f){if(isInside(g[1],t)){var m=!1,_=findIndex(d,function(v){var b=v.index2;return b===f?(m=!0,!1):!!m});_===-1&&(m=!1,_=findIndex(d,function(v){var b=v.index1,C=v.index2;return b===-1&&C+1===f?(m=!0,!1):!!m})),_===-1?d.push({index1:-1,index2:f,pos:g[1],type:"inside"}):d.splice(_,0,{index1:-1,index2:f,pos:g[1],type:"inside"})}});var u={};return d.filter(function(g){var f=g.pos,m=f[0]+"x"+f[1];return u[m]?!1:(u[m]=!0,!0)})}function getOverlapPoints(o,e){var t=getOverlapPointInfos(o,e);return t.map(function(r){var s=r.pos;return s})}function getOverlapSize(o,e){var t=getOverlapPoints(o,e);return getAreaSize(t)}var extendStatics$8=function(o,e){return extendStatics$8=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)r.hasOwnProperty(s)&&(t[s]=r[s])},extendStatics$8(o,e)};function __extends$8(o,e){extendStatics$8(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign$8=function(){return __assign$8=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$8.apply(this,arguments)};function getRad(o,e){var t=e[0]-o[0],r=e[1]-o[1],s=Math.atan2(r,t);return s>=0?s:s+Math.PI*2}function getRotatiion(o){return getRad([o[0].clientX,o[0].clientY],[o[1].clientX,o[1].clientY])/Math.PI*180}function isMultiTouch(o){return o.touches&&o.touches.length>=2}function getEventClients(o){return o?o.touches?getClients(o.touches):[getClient(o)]:[]}function isMouseEvent(o){return o&&(o.type.indexOf("mouse")>-1||"button"in o)}function getPosition(o,e,t){var r=t.length,s=getAverageClient(o,r),a=s.clientX,l=s.clientY,c=s.originalClientX,d=s.originalClientY,u=getAverageClient(e,r),g=u.clientX,f=u.clientY,m=getAverageClient(t,r),_=m.clientX,v=m.clientY,b=a-g,C=l-f,y=a-_,S=l-v;return{clientX:c,clientY:d,deltaX:b,deltaY:C,distX:y,distY:S}}function getDist$1(o){return Math.sqrt(Math.pow(o[0].clientX-o[1].clientX,2)+Math.pow(o[0].clientY-o[1].clientY,2))}function getClients(o){for(var e=Math.min(o.length,2),t=[],r=0;r<e;++r)t.push(getClient(o[r]));return t}function getClient(o){return{clientX:o.clientX,clientY:o.clientY}}function getAverageClient(o,e){e===void 0&&(e=o.length);for(var t={clientX:0,clientY:0,originalClientX:0,originalClientY:0},r=Math.min(o.length,e),s=0;s<r;++s){var a=o[s];t.originalClientX+="originalClientX"in a?a.originalClientX:a.clientX,t.originalClientY+="originalClientY"in a?a.originalClientY:a.clientY,t.clientX+=a.clientX,t.clientY+=a.clientY}return e?{clientX:t.clientX/e,clientY:t.clientY/e,originalClientX:t.originalClientX/e,originalClientY:t.originalClientY/e}:t}var ClientStore=(function(){function o(e){this.prevClients=[],this.startClients=[],this.movement=0,this.length=0,this.startClients=e,this.prevClients=e,this.length=e.length}return o.prototype.getAngle=function(e){return e===void 0&&(e=this.prevClients),getRotatiion(e)},o.prototype.getRotation=function(e){return e===void 0&&(e=this.prevClients),getRotatiion(e)-getRotatiion(this.startClients)},o.prototype.getPosition=function(e,t){e===void 0&&(e=this.prevClients);var r=getPosition(e||this.prevClients,this.prevClients,this.startClients),s=r.deltaX,a=r.deltaY;return this.movement+=Math.sqrt(s*s+a*a),this.prevClients=e,r},o.prototype.getPositions=function(e){e===void 0&&(e=this.prevClients);for(var t=this.prevClients,r=this.startClients,s=Math.min(this.length,t.length),a=[],l=0;l<s;++l)a[l]=getPosition([e[l]],[t[l]],[r[l]]);return a},o.prototype.getMovement=function(e){var t=this.movement;if(!e)return t;var r=getAverageClient(e,this.length),s=getAverageClient(this.prevClients,this.length),a=r.clientX-s.clientX,l=r.clientY-s.clientY;return Math.sqrt(a*a+l*l)+t},o.prototype.getDistance=function(e){return e===void 0&&(e=this.prevClients),getDist$1(e)},o.prototype.getScale=function(e){return e===void 0&&(e=this.prevClients),getDist$1(e)/getDist$1(this.startClients)},o.prototype.move=function(e,t){this.startClients.forEach(function(r){r.clientX-=e,r.clientY-=t}),this.prevClients.forEach(function(r){r.clientX-=e,r.clientY-=t})},o})(),INPUT_TAGNAMES=["textarea","input"],Gesto=(function(o){__extends$8(e,o);function e(t,r){r===void 0&&(r={});var s=o.call(this)||this;s.options={},s.flag=!1,s.pinchFlag=!1,s.data={},s.isDrag=!1,s.isPinch=!1,s.clientStores=[],s.targets=[],s.prevTime=0,s.doubleFlag=!1,s._useMouse=!1,s._useTouch=!1,s._useDrag=!1,s._dragFlag=!1,s._isTrusted=!1,s._isMouseEvent=!1,s._isSecondaryButton=!1,s._preventMouseEvent=!1,s._prevInputEvent=null,s._isDragAPI=!1,s._isIdle=!0,s._preventMouseEventId=0,s._window=window,s.onDragStart=function(m,_){if(_===void 0&&(_=!0),!(!s.flag&&m.cancelable===!1)){var v=m.type.indexOf("drag")>=-1;if(!(s.flag&&v)){s._isDragAPI=!0;var b=s.options,C=b.container,y=b.pinchOutside,S=b.preventWheelClick,w=b.preventRightClick,E=b.preventDefault,x=b.checkInput,L=b.dragFocusedInput,k=b.preventClickEventOnDragStart,D=b.preventClickEventOnDrag,I=b.preventClickEventByCondition,T=s._useTouch,M=!s.flag;if(s._isSecondaryButton=m.which===3||m.button===2,S&&(m.which===2||m.button===1)||w&&(m.which===3||m.button===2))return s.stop(),!1;if(M){var R=s._window.document.activeElement,N=m.target;if(N){var A=N.tagName.toLowerCase(),O=INPUT_TAGNAMES.indexOf(A)>-1,P=N.isContentEditable;if(O||P){if(x||!L&&R===N)return!1;if(R&&(R===N||P&&R.isContentEditable&&R.contains(N)))if(L)N.blur();else return!1}else if((E||m.type==="touchstart")&&R){var F=R.tagName.toLowerCase();(R.isContentEditable||INPUT_TAGNAMES.indexOf(F)>-1)&&R.blur()}(k||D||I)&&addEvent(s._window,"click",s._onClick,!0)}s.clientStores=[new ClientStore(getEventClients(m))],s._isIdle=!1,s.flag=!0,s.isDrag=!1,s._isTrusted=_,s._dragFlag=!0,s._prevInputEvent=m,s.data={},s.doubleFlag=now()-s.prevTime<200,s._isMouseEvent=isMouseEvent(m),!s._isMouseEvent&&s._preventMouseEvent&&s._allowMouseEvent();var B=s._preventMouseEvent||s.emit("dragStart",__assign$8(__assign$8({data:s.data,datas:s.data,inputEvent:m,isMouseEvent:s._isMouseEvent,isSecondaryButton:s._isSecondaryButton,isTrusted:_,isDouble:s.doubleFlag},s.getCurrentStore().getPosition()),{preventDefault:function(){m.preventDefault()},preventDrag:function(){s._dragFlag=!1}}));B===!1&&s.stop(),s._isMouseEvent&&s.flag&&E&&m.preventDefault()}if(!s.flag)return!1;var H=0;if(M?(s._attchDragEvent(),T&&y&&(H=setTimeout(function(){addEvent(C,"touchstart",s.onDragStart,{passive:!1})}))):T&&y&&removeEvent(C,"touchstart",s.onDragStart),s.flag&&isMultiTouch(m)){if(clearTimeout(H),M&&m.touches.length!==m.changedTouches.length)return;s.pinchFlag||s.onPinchStart(m)}}}},s.onDrag=function(m,_){if(s.flag){var v=s.options.preventDefault;!s._isMouseEvent&&v&&m.preventDefault(),s._prevInputEvent=m;var b=getEventClients(m),C=s.moveClients(b,m,!1);if(s._dragFlag){if(s.pinchFlag||C.deltaX||C.deltaY){var y=s._preventMouseEvent||s.emit("drag",__assign$8(__assign$8({},C),{isScroll:!!_,inputEvent:m}));if(y===!1){s.stop();return}}s.pinchFlag&&s.onPinch(m,b)}s.getCurrentStore().getPosition(b,!0)}},s.onDragEnd=function(m){if(s.flag){var _=s.options,v=_.pinchOutside,b=_.container,C=_.preventClickEventOnDrag,y=_.preventClickEventOnDragStart,S=_.preventClickEventByCondition,w=s.isDrag;(C||y||S)&&requestAnimationFrame(function(){s._allowClickEvent()}),!S&&!y&&C&&!w&&s._allowClickEvent(),s._useTouch&&v&&removeEvent(b,"touchstart",s.onDragStart),s.pinchFlag&&s.onPinchEnd(m);var E=m!=null&&m.touches?getEventClients(m):[],x=E.length;x===0||!s.options.keepDragging?s.flag=!1:s._addStore(new ClientStore(E));var L=s._getPosition(),k=now(),D=!w&&s.doubleFlag;s._prevInputEvent=null,s.prevTime=w||D?0:k,s.flag||(s._dettachDragEvent(),s._preventMouseEvent||s.emit("dragEnd",__assign$8({data:s.data,datas:s.data,isDouble:D,isDrag:w,isClick:!w,isMouseEvent:s._isMouseEvent,isSecondaryButton:s._isSecondaryButton,inputEvent:m,isTrusted:s._isTrusted},L)),s.clientStores=[],s._isMouseEvent||(s._preventMouseEvent=!0,clearTimeout(s._preventMouseEventId),s._preventMouseEventId=setTimeout(function(){s._preventMouseEvent=!1},200)),s._isIdle=!0)}},s.onBlur=function(){s.onDragEnd()},s._allowClickEvent=function(){removeEvent(s._window,"click",s._onClick,!0)},s._onClick=function(m){s._allowClickEvent(),s._allowMouseEvent();var _=s.options.preventClickEventByCondition;_!=null&&_(m)||(m.stopPropagation(),m.preventDefault())},s._onContextMenu=function(m){var _=s.options;_.preventRightClick?s.onDragEnd(m):m.preventDefault()},s._passCallback=function(){};var a=[].concat(t),l=a[0];s._window=isWindow(l)?l:getWindow(l),s.options=__assign$8({checkInput:!1,container:l&&!("document"in l)?getWindow(l):l,preventRightClick:!0,preventWheelClick:!0,preventClickEventOnDragStart:!1,preventClickEventOnDrag:!1,preventClickEventByCondition:null,preventDefault:!0,checkWindowBlur:!1,keepDragging:!1,pinchThreshold:0,events:["touch","mouse"]},r);var c=s.options,d=c.container,u=c.events,g=c.checkWindowBlur;if(s._useDrag=u.indexOf("drag")>-1,s._useTouch=u.indexOf("touch")>-1,s._useMouse=u.indexOf("mouse")>-1,s.targets=a,s._useDrag&&a.forEach(function(m){addEvent(m,"dragstart",s.onDragStart)}),s._useMouse&&(a.forEach(function(m){addEvent(m,"mousedown",s.onDragStart),addEvent(m,"mousemove",s._passCallback)}),addEvent(d,"contextmenu",s._onContextMenu)),g&&addEvent(getWindow(),"blur",s.onBlur),s._useTouch){var f={passive:!1};a.forEach(function(m){addEvent(m,"touchstart",s.onDragStart,f),addEvent(m,"touchmove",s._passCallback,f)})}return s}return e.prototype.stop=function(){this.isDrag=!1,this.data={},this.clientStores=[],this.pinchFlag=!1,this.doubleFlag=!1,this.prevTime=0,this.flag=!1,this._isIdle=!0,this._allowClickEvent(),this._dettachDragEvent(),this._isDragAPI=!1},e.prototype.getMovement=function(t){return this.getCurrentStore().getMovement(t)+this.clientStores.slice(1).reduce(function(r,s){return r+s.movement},0)},e.prototype.isDragging=function(){return this.isDrag},e.prototype.isIdle=function(){return this._isIdle},e.prototype.isFlag=function(){return this.flag},e.prototype.isPinchFlag=function(){return this.pinchFlag},e.prototype.isDoubleFlag=function(){return this.doubleFlag},e.prototype.isPinching=function(){return this.isPinch},e.prototype.scrollBy=function(t,r,s,a){a===void 0&&(a=!0),this.flag&&(this.clientStores[0].move(t,r),a&&this.onDrag(s,!0))},e.prototype.move=function(t,r){var s=t[0],a=t[1],l=this.getCurrentStore(),c=l.prevClients;return this.moveClients(c.map(function(d){var u=d.clientX,g=d.clientY;return{clientX:u+s,clientY:g+a,originalClientX:u,originalClientY:g}}),r,!0)},e.prototype.triggerDragStart=function(t){this.onDragStart(t,!1)},e.prototype.setEventData=function(t){var r=this.data;for(var s in t)r[s]=t[s];return this},e.prototype.setEventDatas=function(t){return this.setEventData(t)},e.prototype.getCurrentEvent=function(t){return t===void 0&&(t=this._prevInputEvent),__assign$8(__assign$8({data:this.data,datas:this.data},this._getPosition()),{movement:this.getMovement(),isDrag:this.isDrag,isPinch:this.isPinch,isScroll:!1,inputEvent:t})},e.prototype.getEventData=function(){return this.data},e.prototype.getEventDatas=function(){return this.data},e.prototype.unset=function(){var t=this,r=this.targets,s=this.options.container;this.off(),removeEvent(this._window,"blur",this.onBlur),this._useDrag&&r.forEach(function(a){removeEvent(a,"dragstart",t.onDragStart)}),this._useMouse&&(r.forEach(function(a){removeEvent(a,"mousedown",t.onDragStart)}),removeEvent(s,"contextmenu",this._onContextMenu)),this._useTouch&&(r.forEach(function(a){removeEvent(a,"touchstart",t.onDragStart)}),removeEvent(s,"touchstart",this.onDragStart)),this._prevInputEvent=null,this._allowClickEvent(),this._dettachDragEvent()},e.prototype.onPinchStart=function(t){var r=this,s=this.options.pinchThreshold;if(!(this.isDrag&&this.getMovement()>s)){var a=new ClientStore(getEventClients(t));this.pinchFlag=!0,this._addStore(a);var l=this.emit("pinchStart",__assign$8(__assign$8({data:this.data,datas:this.data,angle:a.getAngle(),touches:this.getCurrentStore().getPositions()},a.getPosition()),{inputEvent:t,isTrusted:this._isTrusted,preventDefault:function(){t.preventDefault()},preventDrag:function(){r._dragFlag=!1}}));l===!1&&(this.pinchFlag=!1)}},e.prototype.onPinch=function(t,r){if(!(!this.flag||!this.pinchFlag||r.length<2)){var s=this.getCurrentStore();this.isPinch=!0,this.emit("pinch",__assign$8(__assign$8({data:this.data,datas:this.data,movement:this.getMovement(r),angle:s.getAngle(r),rotation:s.getRotation(r),touches:s.getPositions(r),scale:s.getScale(r),distance:s.getDistance(r)},s.getPosition(r)),{inputEvent:t,isTrusted:this._isTrusted}))}},e.prototype.onPinchEnd=function(t){if(this.pinchFlag){var r=this.isPinch;this.isPinch=!1,this.pinchFlag=!1;var s=this.getCurrentStore();this.emit("pinchEnd",__assign$8(__assign$8({data:this.data,datas:this.data,isPinch:r,touches:s.getPositions()},s.getPosition()),{inputEvent:t}))}},e.prototype.getCurrentStore=function(){return this.clientStores[0]},e.prototype.moveClients=function(t,r,s){var a=this._getPosition(t,s),l=this.isDrag;(a.deltaX||a.deltaY)&&(this.isDrag=!0);var c=!1;return!l&&this.isDrag&&(c=!0),__assign$8(__assign$8({data:this.data,datas:this.data},a),{movement:this.getMovement(t),isDrag:this.isDrag,isPinch:this.isPinch,isScroll:!1,isMouseEvent:this._isMouseEvent,isSecondaryButton:this._isSecondaryButton,inputEvent:r,isTrusted:this._isTrusted,isFirstDrag:c})},e.prototype._addStore=function(t){this.clientStores.splice(0,0,t)},e.prototype._getPosition=function(t,r){var s=this.getCurrentStore(),a=s.getPosition(t,r),l=this.clientStores.slice(1).reduce(function(u,g){var f=g.getPosition();return u.distX+=f.distX,u.distY+=f.distY,u},a),c=l.distX,d=l.distY;return __assign$8(__assign$8({},a),{distX:c,distY:d})},e.prototype._attchDragEvent=function(){var t=this._window,r=this.options.container,s={passive:!1};this._isDragAPI&&(addEvent(r,"dragover",this.onDrag,s),addEvent(t,"dragend",this.onDragEnd)),this._useMouse&&(addEvent(r,"mousemove",this.onDrag),addEvent(t,"mouseup",this.onDragEnd)),this._useTouch&&(addEvent(r,"touchmove",this.onDrag,s),addEvent(t,"touchend",this.onDragEnd,s),addEvent(t,"touchcancel",this.onDragEnd,s))},e.prototype._dettachDragEvent=function(){var t=this._window,r=this.options.container;this._isDragAPI&&(removeEvent(r,"dragover",this.onDrag),removeEvent(t,"dragend",this.onDragEnd)),this._useMouse&&(removeEvent(r,"mousemove",this.onDrag),removeEvent(t,"mouseup",this.onDragEnd)),this._useTouch&&(removeEvent(r,"touchstart",this.onDragStart),removeEvent(r,"touchmove",this.onDrag),removeEvent(t,"touchend",this.onDragEnd),removeEvent(t,"touchcancel",this.onDragEnd))},e.prototype._allowMouseEvent=function(){this._preventMouseEvent=!1,clearTimeout(this._preventMouseEventId)},e})(EventEmitter$2);function hash(o){for(var e=5381,t=o.length;t;)e=e*33^o.charCodeAt(--t);return e>>>0}var stringHash=hash;function getHash(o){return stringHash(o).toString(36)}function getShadowRoot$1(o){if(o&&o.getRootNode){var e=o.getRootNode();if(e.nodeType===11)return e}}function replaceStyle(o,e,t){return t.original?e:e.replace(/([^};{\s}][^};{]*|^\s*){/mg,function(r,s){var a=s.trim();return(a?splitComma(a):[""]).map(function(l){var c=l.trim();return c.indexOf("@")===0?c:c.indexOf(":global")>-1?c.replace(/\:global/g,""):c.indexOf(":host")>-1?"".concat(c.replace(/\:host/g,".".concat(o))):c?".".concat(o," ").concat(c):".".concat(o)}).join(", ")+" {"})}function injectStyle(o,e,t,r,s){var a=getDocument(r),l=a.createElement("style");return l.setAttribute("type","text/css"),l.setAttribute("data-styled-id",o),l.setAttribute("data-styled-count","1"),t.nonce&&l.setAttribute("nonce",t.nonce),l.innerHTML=replaceStyle(o,e,t),(s||a.head||a.body).appendChild(l),l}function styled$1(o){var e="rCS"+getHash(o);return{className:e,inject:function(t,r){r===void 0&&(r={});var s=getShadowRoot$1(t),a=(s||t.ownerDocument||document).querySelector('style[data-styled-id="'.concat(e,'"]'));if(!a)a=injectStyle(e,o,r,t,s);else{var l=parseFloat(a.getAttribute("data-styled-count"))||0;a.setAttribute("data-styled-count","".concat(l+1))}return{destroy:function(){var c,d=parseFloat(a.getAttribute("data-styled-count"))||0;d<=1?(a.remove?a.remove():(c=a.parentNode)===null||c===void 0||c.removeChild(a),a=null):a.setAttribute("data-styled-count","".concat(d-1))}}}}}var __assign$7=function(){return __assign$7=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$7.apply(this,arguments)};function __rest$1(o,e){var t={};for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&e.indexOf(r)<0&&(t[r]=o[r]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(o);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(o,r[s])&&(t[r[s]]=o[r[s]]);return t}function styled(o,e){var t=styled$1(e),r=t.className;return forwardRef(function(s,a){var l=s.className,c=l===void 0?"":l;s.cspNonce;var d=__rest$1(s,["className","cspNonce"]),u=useRef();return useImperativeHandle(a,function(){return u.current},[]),useEffect(function(){var g=t.inject(u.current,{nonce:s.cspNonce});return function(){g.destroy()}},[]),createElement(o,__assign$7({ref:u,"data-styled-id":r,className:"".concat(c," ").concat(r)},d))})}var extendStatics$7=function(o,e){return extendStatics$7=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics$7(o,e)};function __extends$7(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics$7(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign$6=function(){return __assign$6=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$6.apply(this,arguments)};function __rest(o,e){var t={};for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&e.indexOf(r)<0&&(t[r]=o[r]);if(o!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(o);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(o,r[s])&&(t[r[s]]=o[r[s]]);return t}function __decorate$3(o,e,t,r){var s=arguments.length,a=s<3?e:r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a}function __values$1(o){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&o[e],r=0;if(t)return t.call(o);if(o&&typeof o.length=="number")return{next:function(){return o&&r>=o.length&&(o=void 0),{value:o&&o[r++],done:!o}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read$1(o,e){var t=typeof Symbol=="function"&&o[Symbol.iterator];if(!t)return o;var r=t.call(o),s,a=[],l;try{for(;(e===void 0||e-- >0)&&!(s=r.next()).done;)a.push(s.value)}catch(c){l={error:c}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(l)throw l.error}}return a}function __spreadArray$3(o,e,t){if(arguments.length===2)for(var r=0,s=e.length,a;r<s;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return o.concat(a||Array.prototype.slice.call(e))}function makeAble(o,e){return __assign$6({events:[],props:[],name:o},e)}var DIRECTIONS4=["n","w","s","e"],DIRECTIONS=["n","w","s","e","nw","ne","sw","se"];function getSVGCursor(o,e){return'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="'.concat(32*o,'px" height="').concat(32*o,'px" viewBox="0 0 32 32" ><path d="M 16,5 L 12,10 L 14.5,10 L 14.5,22 L 12,22 L 16,27 L 20,22 L 17.5,22 L 17.5,10 L 20, 10 L 16,5 Z" stroke-linejoin="round" stroke-width="1.2" fill="black" stroke="white" style="transform:rotate(').concat(e,'deg);transform-origin: 16px 16px"></path></svg>')}function getCursorCSS(o){var e=getSVGCursor(1,o),t=Math.round(o/45)*45%180,r="ns-resize";return t===135?r="nwse-resize":t===45?r="nesw-resize":t===90&&(r="ew-resize"),"cursor:".concat(r,";cursor: url('").concat(e,"') 16 16, ").concat(r,";")}var agent=agent$1(),IS_WEBKIT=agent.browser.webkit,IS_WEBKIT605=IS_WEBKIT&&(function(){var o=typeof window>"u"?{userAgent:""}:window.navigator,e=/applewebkit\/([^\s]+)/g.exec(o.userAgent.toLowerCase());return e?parseFloat(e[1])<605:!1})(),browserName=agent.browser.name,browserVersion=parseInt(agent.browser.version,10),IS_CHROME=browserName==="chrome",IS_CHROMIUM=agent.browser.chromium,chromiumVersion=parseInt(agent.browser.chromiumVersion,10)||0,IS_CHROMIUM109=IS_CHROME&&browserVersion>=109||IS_CHROMIUM&&chromiumVersion>=109,IS_FIREFOX=browserName==="firefox",IS_SAFARI_ABOVE15=parseInt(agent.browser.webkitVersion,10)>=612||browserVersion>=15,PREFIX$1="moveable-",directionCSS=DIRECTIONS.map(function(o){var e="",t="",r="center",s="center",a="calc(var(--moveable-control-padding, 20) * -1px)";return o.indexOf("n")>-1&&(e="top: ".concat(a,";"),s="bottom"),o.indexOf("s")>-1&&(e="top: 0px;",s="top"),o.indexOf("w")>-1&&(t="left: ".concat(a,";"),r="right"),o.indexOf("e")>-1&&(t="left: 0px;",r="left"),'.around-control[data-direction*="'.concat(o,'"] {\n ').concat(t).concat(e,"\n transform-origin: ").concat(r," ").concat(s,";\n }")}).join("\n"),MOVEABLE_CSS="\n{\nposition: absolute;\nwidth: 1px;\nheight: 1px;\nleft: 0;\ntop: 0;\nz-index: 3000;\n--moveable-color: #4af;\n--zoom: 1;\n--zoompx: 1px;\n--moveable-line-padding: 0;\n--moveable-control-padding: 0;\nwill-change: transform;\noutline: 1px solid transparent;\n}\n.control-box {\nz-index: 0;\n}\n.line, .control {\nposition: absolute;\nleft: 0;\ntop: 0;\nwill-change: transform;\n}\n.control {\nwidth: 14px;\nheight: 14px;\nborder-radius: 50%;\nborder: 2px solid #fff;\nbox-sizing: border-box;\nbackground: #4af;\nbackground: var(--moveable-color);\nmargin-top: -7px;\nmargin-left: -7px;\nborder: 2px solid #fff;\nz-index: 10;\n}\n.around-control {\nposition: absolute;\nwill-change: transform;\nwidth: calc(var(--moveable-control-padding, 20) * 1px);\nheight: calc(var(--moveable-control-padding, 20) * 1px);\nleft: calc(var(--moveable-control-padding, 20) * -0.5px);\ntop: calc(var(--moveable-control-padding, 20) * -0.5px);\nbox-sizing: border-box;\nbackground: transparent;\nz-index: 8;\ncursor: alias;\ntransform-origin: center center;\n}\n".concat(directionCSS,"\n.padding {\nposition: absolute;\ntop: 0px;\nleft: 0px;\nwidth: 100px;\nheight: 100px;\ntransform-origin: 0 0;\n}\n.line {\nwidth: 1px;\nheight: 1px;\nbackground: #4af;\nbackground: var(--moveable-color);\ntransform-origin: 0px 50%;\n}\n.line.edge {\nz-index: 1;\nbackground: transparent;\n}\n.line.dashed {\nbox-sizing: border-box;\nbackground: transparent;\n}\n.line.dashed.horizontal {\nborder-top: 1px dashed #4af;\nborder-top-color: #4af;\nborder-top-color: var(--moveable-color);\n}\n.line.dashed.vertical {\nborder-left: 1px dashed #4af;\nborder-left-color: #4af;\nborder-left-color: var(--moveable-color);\n}\n.line.vertical {\ntransform: translateX(-50%);\n}\n.line.horizontal {\ntransform: translateY(-50%);\n}\n.line.vertical.bold {\nwidth: 2px;\n}\n.line.horizontal.bold {\nheight: 2px;\n}\n\n.control.origin {\nborder-color: #f55;\nbackground: #fff;\nwidth: 12px;\nheight: 12px;\nmargin-top: -6px;\nmargin-left: -6px;\npointer-events: none;\n}\n").concat([0,15,30,45,60,75,90,105,120,135,150,165].map(function(o){return'\n.direction[data-rotation="'.concat(o,'"], :global .view-control-rotation').concat(o," {\n").concat(getCursorCSS(o),"\n}\n")}).join("\n"),'\n\n.line.direction:before {\ncontent: "";\nposition: absolute;\nwidth: 100%;\nheight: calc(var(--moveable-line-padding, 0) * 1px);\nbottom: 0;\nleft: 0;\n}\n.group {\nz-index: -1;\n}\n.area {\nposition: absolute;\n}\n.area-pieces {\nposition: absolute;\ntop: 0;\nleft: 0;\ndisplay: none;\n}\n.area.avoid, .area.pass {\npointer-events: none;\n}\n.area.avoid+.area-pieces {\ndisplay: block;\n}\n.area-piece {\nposition: absolute;\n}\n\n').concat(IS_WEBKIT605?':global svg *:before {\ncontent:"";\ntransform-origin: inherit;\n}':"","\n"),NEARBY_POS=[[0,1,2],[1,0,3],[2,0,3],[3,1,2]],FLOAT_POINT_NUM=1e-4,TINY_NUM=1e-7,MIN_SCALE=1e-9,MAX_NUM=Math.pow(10,10),MIN_NUM=-MAX_NUM,DIRECTION_REGION_TO_DIRECTION={n:[0,-1],e:[1,0],s:[0,1],w:[-1,0],nw:[-1,-1],ne:[1,-1],sw:[-1,1],se:[1,1]},DIRECTION_INDEXES={n:[0,1],e:[1,3],s:[3,2],w:[2,0],nw:[0],ne:[1],sw:[2],se:[3]},DIRECTION_ROTATIONS={n:0,s:180,w:270,e:90,nw:315,ne:45,sw:225,se:135},MOVEABLE_METHODS=["isMoveableElement","updateRect","updateTarget","destroy","dragStart","isInside","hitTest","setState","getRect","request","isDragging","getManager","forceUpdate","waitToChangeTarget","updateSelectors","getTargets","stopDrag","getControlBoxElement","getMoveables","getDragElement"];function setCustomDrag(o,e,t,r,s,a){var l,c;a===void 0&&(a="draggable");var d=(c=(l=e.gestos[a])===null||l===void 0?void 0:l.move(t,o.inputEvent))!==null&&c!==void 0?c:{},u=d.originalDatas||d.datas,g=u[a]||(u[a]={});return __assign$6(__assign$6({},d),{isPinch:!!r,parentEvent:!0,datas:g,originalDatas:o.originalDatas})}var CustomGesto=(function(){function o(e){var t;e===void 0&&(e="draggable"),this.ableName=e,this.prevX=0,this.prevY=0,this.startX=0,this.startY=0,this.isDrag=!1,this.isFlag=!1,this.datas={draggable:{}},this.datas=(t={},t[e]={},t)}return o.prototype.dragStart=function(e,t){this.isDrag=!1,this.isFlag=!1;var r=t.originalDatas;return this.datas=r,r[this.ableName]||(r[this.ableName]={}),__assign$6(__assign$6({},this.move(e,t.inputEvent)),{type:"dragstart"})},o.prototype.drag=function(e,t){return this.move([e[0]-this.prevX,e[1]-this.prevY],t)},o.prototype.move=function(e,t){var r,s,a=!1;if(!this.isFlag)this.prevX=e[0],this.prevY=e[1],this.startX=e[0],this.startY=e[1],r=e[0],s=e[1],this.isFlag=!0;else{var l=this.isDrag;r=this.prevX+e[0],s=this.prevY+e[1],(e[0]||e[1])&&(this.isDrag=!0),!l&&this.isDrag&&(a=!0)}return this.prevX=r,this.prevY=s,{type:"drag",clientX:r,clientY:s,inputEvent:t,isFirstDrag:a,isDrag:this.isDrag,distX:r-this.startX,distY:s-this.startY,deltaX:e[0],deltaY:e[1],datas:this.datas[this.ableName],originalDatas:this.datas,parentEvent:!0,parentGesto:this}},o})();function calculateElementPosition(o,e,t,r){var s=o.length===16,a=s?4:3,l=calculatePoses(o,t,r,a),c=__read$1(l,4),d=__read$1(c[0],2),u=d[0],g=d[1],f=__read$1(c[1],2),m=f[0],_=f[1],v=__read$1(c[2],2),b=v[0],C=v[1],y=__read$1(c[3],2),S=y[0],w=y[1],E=__read$1(calculatePosition(o,e,a),2),x=E[0],L=E[1],k=Math.min(u,m,b,S),D=Math.min(g,_,C,w),I=Math.max(u,m,b,S),T=Math.max(g,_,C,w);u=u-k||0,m=m-k||0,b=b-k||0,S=S-k||0,g=g-D||0,_=_-D||0,C=C-D||0,w=w-D||0,x=x-k||0,L=L-D||0;var M=o[0],R=o[a+1],N=sign(M*R);return{left:k,top:D,right:I,bottom:T,origin:[x,L],pos1:[u,g],pos2:[m,_],pos3:[b,C],pos4:[S,w],direction:N}}function calculatePointerDist(o,e){var t=e.clientX,r=e.clientY,s=e.datas,a=o.state,l=a.moveableClientRect,c=a.rootMatrix,d=a.is3d,u=a.pos1,g=l.left,f=l.top,m=d?4:3,_=__read$1(minus(calculateInversePosition(c,[t-g,r-f],m),u),2),v=_[0],b=_[1],C=__read$1(getDragDist({datas:s,distX:v,distY:b}),2),y=C[0],S=C[1];return[y,S]}function setDragStart(o,e){var t=e.datas,r=o.state,s=r.allMatrix,a=r.beforeMatrix,l=r.is3d,c=r.left,d=r.top,u=r.origin,g=r.offsetMatrix,f=r.targetMatrix,m=r.transformOrigin,_=l?4:3;t.is3d=l,t.matrix=s,t.targetMatrix=f,t.beforeMatrix=a,t.offsetMatrix=g,t.transformOrigin=m,t.inverseMatrix=invert(s,_),t.inverseBeforeMatrix=invert(a,_),t.absoluteOrigin=convertPositionMatrix(plus([c,d],u),_),t.startDragBeforeDist=calculate(t.inverseBeforeMatrix,t.absoluteOrigin,_),t.startDragDist=calculate(t.inverseMatrix,t.absoluteOrigin,_)}function getTransformDirection(o){return calculateElementPosition(o.datas.beforeTransform,[50,50],100,100).direction}function resolveTransformEvent(o,e,t){var r=e.datas,s=e.originalDatas.beforeRenderable,a=r.transformIndex,l=s.nextTransforms,c=l.length,d=s.nextTransformAppendedIndexes,u=-1;a===-1?(t==="translate"?u=0:t==="rotate"&&(u=findIndex(l,function(_){return _.match(/scale\(/g)})),u===-1&&(u=l.length),r.transformIndex=u):find$1(d,function(_){return _.index===a&&_.functionName===t})?u=a:u=a+d.filter(function(_){return _.index<a}).length;var g=convertTransformInfo(l,o.state,u),f=g.targetFunction,m=t==="rotate"?"rotateZ":t;r.beforeFunctionTexts=g.beforeFunctionTexts,r.afterFunctionTexts=g.afterFunctionTexts,r.beforeTransform=g.beforeFunctionMatrix,r.beforeTransform2=g.beforeFunctionMatrix2,r.targetTansform=g.targetFunctionMatrix,r.afterTransform=g.afterFunctionMatrix,r.afterTransform2=g.afterFunctionMatrix2,r.targetAllTransform=g.allFunctionMatrix,f.functionName===m?(r.afterFunctionTexts.splice(0,1),r.isAppendTransform=!1):c>u&&(r.isAppendTransform=!0,s.nextTransformAppendedIndexes=__spreadArray$3(__spreadArray$3([],__read$1(d),!1),[{functionName:t,index:u,isAppend:!0}],!1))}function convertTransformFormat(o,e,t){return"".concat(o.beforeFunctionTexts.join(" ")," ").concat(o.isAppendTransform?t:e," ").concat(o.afterFunctionTexts.join(" "))}function getTransformDist(o){var e=o.datas,t=o.distX,r=o.distY,s=__read$1(getBeforeDragDist({datas:e,distX:t,distY:r}),2),a=s[0],l=s[1],c=getTransfromMatrix(e,fromTranslation([a,l],4));return calculate(c,convertPositionMatrix([0,0,0],4),4)}function getTransfromMatrix(o,e,t){var r=o.beforeTransform,s=o.afterTransform,a=o.beforeTransform2,l=o.afterTransform2,c=o.targetAllTransform,d=t?multiply(c,e,4):multiply(e,c,4),u=multiply(invert(t?a:r,4),d,4),g=multiply(u,invert(t?l:s,4),4);return g}function getBeforeDragDist(o){var e=o.datas,t=o.distX,r=o.distY,s=e.inverseBeforeMatrix,a=e.is3d,l=e.startDragBeforeDist,c=e.absoluteOrigin,d=a?4:3;return minus(calculate(s,plus(c,[t,r]),d),l)}function getDragDist(o,e){var t=o.datas,r=o.distX,s=o.distY,a=t.inverseBeforeMatrix,l=t.inverseMatrix,c=t.is3d,d=t.startDragBeforeDist,u=t.startDragDist,g=t.absoluteOrigin,f=c?4:3;return minus(calculate(e?a:l,plus(g,[r,s]),f),e?d:u)}function getInverseDragDist(o,e){var t=o.datas,r=o.distX,s=o.distY;t.beforeMatrix;var a=t.matrix,l=t.is3d;t.startDragBeforeDist;var c=t.startDragDist,d=t.absoluteOrigin,u=l?4:3;return minus(calculate(a,plus(c,[r,s]),u),d)}function calculateTransformOrigin(o,e,t,r,s,a){return r===void 0&&(r=e),s===void 0&&(s=t),a===void 0&&(a=[0,0]),o?o.map(function(l,c){var d=splitUnit(l),u=d.value,g=d.unit,f=c?s:r,m=c?t:e;if(l==="%"||isNaN(u)){var _=f?a[c]/f:0;return m*_}else if(g!=="%")return u;return m*u/100}):a}function getPosIndexesByDirection(o){var e=[];return o[1]>=0&&(o[0]>=0&&e.push(3),o[0]<=0&&e.push(2)),o[1]<=0&&(o[0]>=0&&e.push(1),o[0]<=0&&e.push(0)),e}function getPosesByDirection(o,e){return getPosIndexesByDirection(e).map(function(t){return o[t]})}function getPosBySingleDirection(o,e){var t=(e+1)/2;return[dot$1(o[0][0],o[1][0],t,1-t),dot$1(o[0][1],o[1][1],t,1-t)]}function getPosByDirection(o,e){var t=getPosBySingleDirection([o[0],o[1]],e[0]),r=getPosBySingleDirection([o[2],o[3]],e[0]);return getPosBySingleDirection([t,r],e[1])}function getDist(o,e,t,r,s,a){var l=calculatePoses(e,t,r,s),c=getPosByDirection(l,a),d=o[0]-c[0],u=o[1]-c[1];return[d,u]}function getNextMatrix(o,e,t,r){return multiply(o,getAbsoluteMatrix(e,r,t),r)}function getNextTransformMatrix(o,e,t,r){var s=o.transformOrigin,a=o.offsetMatrix,l=o.is3d,c=l?4:3,d;if(isString(t)){var u=e.beforeTransform,g=e.afterTransform;r?d=convertDimension(parseMat(t),4,c):d=convertDimension(multiply(multiply(u,parseMat([t]),4),g,4),4,c)}else d=t;return getNextMatrix(a,d,s,c)}function scaleMatrix(o,e){var t=o.transformOrigin,r=o.offsetMatrix,s=o.is3d,a=o.targetMatrix,l=o.targetAllTransform,c=s?4:3;return getNextMatrix(r,multiply(l||a,createScaleMatrix(e,c),c),t,c)}function fillTransformStartEvent(o,e){var t=getBeforeRenderableDatas(e);return{setTransform:function(r,s){s===void 0&&(s=-1),t.startTransforms=isArray$1(r)?r:splitSpace(r),setTransformIndex(o,e,s)},setTransformIndex:function(r){setTransformIndex(o,e,r)}}}function setDefaultTransformIndex(o,e,t){var r=getBeforeRenderableDatas(e),s=r.startTransforms;setTransformIndex(o,e,findIndex(s,function(a){return a.indexOf("".concat(t,"("))===0}))}function setTransformIndex(o,e,t){var r=getBeforeRenderableDatas(e),s=e.datas;if(s.transformIndex=t,t!==-1){var a=r.startTransforms[t];if(a){var l=o.state,c=parse([a],{"x%":function(d){return d/100*l.offsetWidth},"y%":function(d){return d/100*l.offsetHeight}});s.startValue=c[0].functionValue}}}function fillOriginalTransform(o,e){var t=getBeforeRenderableDatas(o);t.nextTransforms=splitSpace(e)}function getBeforeRenderableDatas(o){return o.originalDatas.beforeRenderable}function getNextTransforms(o){var e=o.originalDatas.beforeRenderable;return e.nextTransforms}function getNextTransformText(o){return(getNextTransforms(o)||[]).join(" ")}function getNextStyle(o){return getBeforeRenderableDatas(o).nextStyle}function fillTransformEvent(o,e,t,r,s){fillOriginalTransform(s,e);var a=Draggable.drag(o,setCustomDrag(s,o.state,t,r)),l=a?a.transform:e;return __assign$6(__assign$6({transform:e,drag:a},fillCSSObject({transform:l},s)),{afterTransform:l})}function getTranslateFixedPosition(o,e,t,r,s,a){var l=getNextTransformMatrix(o.state,s,e,a),c=getDirectionOffset(o,t,r,l);return c}function getTranslateDist(o,e,t,r,s,a,l){var c=getTranslateFixedPosition(o,e,t,s,a,l),d=o.state,u=d.left,g=d.top,f=o.props.groupable,m=f?u:0,_=f?g:0,v=minus(r,c);return minus(v,[m,_])}function getScaleDist(o,e,t,r,s,a,l){var c=getTranslateDist(o,e,t,r,s,a,l);return c}function getDirectionByPos(o,e,t){return[e?-1+o[0]/(e/2):0,t?-1+o[1]/(t/2):0]}function getDirectionOffset(o,e,t,r){r===void 0&&(r=o.state.allMatrix);var s=o.state,a=s.width,l=s.height,c=s.is3d,d=c?4:3,u=[a/2*(1+e[0])+t[0],l/2*(1+e[1])+t[1]];return calculatePosition(r,u,d)}function getRotateDist(o,e,t){var r=t.fixedDirection,s=t.fixedPosition,a=t.fixedOffset;return getTranslateDist(o,"rotate(".concat(e,"deg)"),r,s,a,t)}function getResizeDist(o,e,t,r,s,a){var l=o.props.groupable,c=o.state,d=c.transformOrigin,u=c.offsetMatrix,g=c.is3d,f=c.width,m=c.height,_=c.left,v=c.top,b=a.fixedDirection,C=a.nextTargetMatrix||c.targetMatrix,y=g?4:3,S=calculateTransformOrigin(s,e,t,f,m,d),w=l?_:0,E=l?v:0,x=getNextMatrix(u,C,S,y),L=getDist(r,x,e,t,y,b);return minus(L,[w,E])}function getAbsolutePosition$1(o,e){return getPosByDirection(getAbsolutePosesByState(o.state),e)}function getGestoData(o,e){var t=o.targetGesto,r=o.controlGesto,s;return t!=null&&t.isFlag()&&(s=t.getEventData()[e]),!s&&(r!=null&&r.isFlag())&&(s=r.getEventData()[e]),s||{}}function getShadowRoot(o){if(o&&o.getRootNode){var e=o.getRootNode();if(e.nodeType===11)return e}}function getIndividualTransforms(o){var e=o("scale"),t=o("rotate"),r=o("translate"),s=[];return r&&r!=="0px"&&r!=="none"&&s.push("translate(".concat(r.split(/\s+/).join(","),")")),t&&t!=="1"&&t!=="none"&&s.push("rotate(".concat(t,")")),e&&e!=="1"&&e!=="none"&&s.push("scale(".concat(e.split(/\s+/).join(","),")")),s}function getMatrixStackInfo(o,e,t){for(var r=o,s=[],a=getDocumentElement(o)||getDocumentBody(o),l=!t&&o===e||o===a,c=l,d=!1,u=3,g,f,m,_=!1,v=getOffsetInfo(e,e,!0).offsetParent,b=1;r&&!c;){c=l;var C=getCachedStyle(r),y=C("position"),S=getElementTransform(r),w=y==="fixed",E=getIndividualTransforms(C),x=convertCSStoMatrix(getTransformMatrix(S)),L=void 0,k=!1,D=!1,I=0,T=0,M=0,R=0,N={hasTransform:!1,fixedContainer:null};w&&(_=!0,N=getPositionFixedInfo(r),v=N.fixedContainer);var A=x.length;!d&&(A===16||E.length)&&(d=!0,u=4,convert3DMatrixes(s),m&&(m=convertDimension(m,3,4))),d&&A===9&&(x=convertDimension(x,3,4));var O=getOffsetPosInfo(r,o),P=O.tagName,F=O.hasOffset,B=O.isSVG,H=O.origin,V=O.targetOrigin,U=O.offset,j=__read$1(U,2),X=j[0],ee=j[1];P==="svg"&&!r.ownerSVGElement&&m&&(s.push({type:"target",target:r,matrix:getSVGMatrix(r,u)}),s.push({type:"offset",target:r,matrix:createIdentityMatrix(u)}));var Z=parseFloat(C("zoom"))||1;if(w)L=N.fixedContainer,k=!0;else{var J=getOffsetInfo(r,e,!1,!0,C),q=J.offsetZoom;if(L=J.offsetParent,k=J.isEnd,D=J.isStatic,b*=q,(J.isCustomElement||q!==1)&&D)X-=L.offsetLeft,ee-=L.offsetTop;else if(IS_FIREFOX||IS_CHROMIUM109){var Q=J.parentSlotElement;if(Q){for(var re=L,de=0,se=0;re&&getShadowRoot(re);)de+=re.offsetLeft,se+=re.offsetTop,re=re.offsetParent;X-=de,ee-=se}}}if(IS_WEBKIT&&!IS_SAFARI_ABOVE15&&F&&!B&&D&&(y==="relative"||y==="static")&&(X-=L.offsetLeft,ee-=L.offsetTop,l=l||k),w)F&&N.hasTransform&&(M=L.clientLeft,R=L.clientTop);else if(F&&v!==L&&(I=L.clientLeft,T=L.clientTop),F&&L===a){var W=getBodyOffset(r,!1);X+=W[0],ee+=W[1]}if(s.push({type:"target",target:r,matrix:getAbsoluteMatrix(x,u,H)}),E.length&&(s.push({type:"offset",target:r,matrix:createIdentityMatrix(u)}),s.push({type:"target",target:r,matrix:getAbsoluteMatrix(parseMat(E),u,H)})),F){var G=r===o,Y=G?0:r.scrollLeft,ie=G?0:r.scrollTop;s.push({type:"offset",target:r,matrix:createOriginMatrix([X-Y+I-M,ee-ie+T-R],u)})}else s.push({type:"offset",target:r,origin:H});if(Z!==1&&s.push({type:"zoom",target:r,matrix:getAbsoluteMatrix(createScaleMatrix([Z,Z],u),u,[0,0])}),m||(m=x),g||(g=H),f||(f=V),c||w)break;r=L,l=k,(!t||r===a)&&(c=l)}return m||(m=createIdentityMatrix(u)),g||(g=[0,0]),f||(f=[0,0]),{zoom:b,offsetContainer:v,matrixes:s,targetMatrix:m,transformOrigin:g,targetOrigin:f,is3d:d,hasFixed:_}}var cacheStyleMap=null,clientRectStyleMap=null,matrixContainerInfos=null;function setStoreCache(o){o?(window.Map&&(cacheStyleMap=new Map,clientRectStyleMap=new Map),matrixContainerInfos=[]):(cacheStyleMap=null,matrixContainerInfos=null,clientRectStyleMap=null)}function getCachedClientRect(o){var e=clientRectStyleMap==null?void 0:clientRectStyleMap.get(o);if(e)return e;var t=getClientRect(o,!0);return clientRectStyleMap&&clientRectStyleMap.set(o,t),t}function getCachedMatrixContainerInfo(o,e){if(matrixContainerInfos){var t=find$1(matrixContainerInfos,function(s){return s[0][0]==o&&s[0][1]==e});if(t)return t[1]}var r=getMatrixStackInfo(o,e,!0);return matrixContainerInfos&&matrixContainerInfos.push([[o,e],r]),r}function getCachedStyle(o){var e=cacheStyleMap==null?void 0:cacheStyleMap.get(o);if(!e){var t=getWindow(o).getComputedStyle(o);if(!cacheStyleMap)return function(a){return t[a]};e={style:t,cached:{}},cacheStyleMap.set(o,e)}var r=e.cached,s=e.style;return function(a){return a in r||(r[a]=s[a]),r[a]}}function fillChildEvents(o,e,t){var r=t.originalDatas;r.groupable=r.groupable||{};var s=r.groupable;s.childDatas=s.childDatas||[];var a=s.childDatas;return o.moveables.map(function(l,c){return a[c]=a[c]||{},a[c][e]=a[c][e]||{},__assign$6(__assign$6({},t),{isRequestChild:!0,datas:a[c][e],originalDatas:a[c]})})}function triggerChildGesto(o,e,t,r,s,a,l){var c=!!t.match(/Start$/g),d=!!t.match(/End$/g),u=s.isPinch,g=s.datas,f=fillChildEvents(o,e.name,s),m=o.moveables,_=[],v=f.map(function(b,C){var y=m[C],S=y.state,w=S.gestos,E=b;if(c)E=new CustomGesto(l).dragStart(r,b),_.push(E);else{if(w[l]||(w[l]=g.childGestos[C]),!w[l])return;E=setCustomDrag(b,S,r,u,a,l),_.push(E)}var x=e[t](y,__assign$6(__assign$6({},E),{parentFlag:!0}));return d&&(w[l]=null),x});return c&&(g.childGestos=m.map(function(b){return b.state.gestos[l]})),{eventParams:v,childEvents:_}}function triggerChildAbles(o,e,t,r,s,a){s===void 0&&(s=function(g,f){return f});var l=!!t.match(/End$/g),c=fillChildEvents(o,e.name,r),d=o.moveables,u=c.map(function(g,f){var m=d[f],_=g;_=s(m,g);var v=e[t](m,__assign$6(__assign$6({},_),{parentFlag:!0}));return l&&(m.state.gestos={}),v});return u}function startChildDist(o,e,t,r){var s=t.fixedDirection,a=t.fixedPosition,l=r.datas.startPositions||getAbsolutePosesByState(e.state),c=getPosByDirection(l,s),d=__read$1(calculate(createRotateMatrix(-o.rotation/180*Math.PI,3),[c[0]-a[0],c[1]-a[1],1],3),2),u=d[0],g=d[1];return r.datas.originalX=u,r.datas.originalY=g,r}function renderDirectionControlsByInfos(o,e,t,r){var s=o.getState(),a=s.renderPoses,l=s.rotation,c=s.direction,d=getProps(o.props,e).zoom,u=absDegree(l/Math.PI*180),g={},f=o.renderState;f.renderDirectionMap||(f.renderDirectionMap={});var m=f.renderDirectionMap;t.forEach(function(v){var b=v.dir;g[b]=!0});var _=sign(c);return t.map(function(v){var b=v.data,C=v.classNames,y=v.dir,S=DIRECTION_INDEXES[y];if(!S||!g[y])return null;m[y]=!0;var w=(throttle(u,15)+_*DIRECTION_ROTATIONS[y]+720)%180,E={};return getKeys(b).forEach(function(x){E["data-".concat(x)]=b[x]}),r.createElement("div",__assign$6({className:prefix$1.apply(void 0,__spreadArray$3(["control","direction",y,e],__read$1(C),!1)),"data-rotation":w,"data-direction":y},E,{key:"direction-".concat(y),style:getControlTransform.apply(void 0,__spreadArray$3([l,d],__read$1(S.map(function(x){return a[x]})),!1))}))})}function renderDirectionControls(o,e,t,r){var s=getProps(o.props,t),a=s.renderDirections,l=a===void 0?e:a,c=s.displayAroundControls;if(!l)return[];var d=l===!0?DIRECTIONS:l;return __spreadArray$3(__spreadArray$3([],__read$1(c?renderAroundControls(o,r,t,d):[]),!1),__read$1(renderDirectionControlsByInfos(o,t,d.map(function(u){return{data:{},classNames:[],dir:u}}),r)),!1)}function renderLine(o,e,t,r,s,a){for(var l=[],c=6;c<arguments.length;c++)l[c-6]=arguments[c];var d=getRad$1(t,r),u=e?throttle(d/Math.PI*180,15)%180:-1;return o.createElement("div",{key:"line-".concat(a),className:prefix$1.apply(void 0,__spreadArray$3(["line","direction",e?"edge":"",e],__read$1(l),!1)),"data-rotation":u,"data-line-key":a,"data-direction":e,style:getLineStyle(t,r,s,d)})}function renderEdgeLines(o,e,t,r,s){var a=t===!0?DIRECTIONS4:t;return a.map(function(l,c){var d=__read$1(DIRECTION_INDEXES[l],2),u=d[0],g=d[1];if(g!=null)return renderLine(o,l,r[u],r[g],s,"".concat(e,"Edge").concat(c),e)}).filter(Boolean)}function getRenderDirections(o){return function(e,t){var r=getProps(e.props,o).edge;return r&&(r===!0||r.length)?__spreadArray$3(__spreadArray$3([],__read$1(renderEdgeLines(t,o,r,e.getState().renderPoses,e.props.zoom)),!1),__read$1(renderDiagonalDirections(e,o,t)),!1):renderAllDirections(e,o,t)}}function renderAllDirections(o,e,t){return renderDirectionControls(o,DIRECTIONS,e,t)}function renderDiagonalDirections(o,e,t){return renderDirectionControls(o,["nw","ne","sw","se"],e,t)}function renderAroundControls(o,e,t,r){var s=o.renderState;s.renderDirectionMap||(s.renderDirectionMap={});var a=o.getState(),l=a.renderPoses,c=a.rotation,d=a.direction,u=s.renderDirectionMap,g=o.props.zoom,f=sign(d),m=c/Math.PI*180;return(r||getKeys(u)).map(function(_){var v=DIRECTION_INDEXES[_];if(!v)return null;var b=(throttle(m,15)+f*DIRECTION_ROTATIONS[_]+720)%180,C=["around-control"];return t&&C.push("direction",t),e.createElement("div",{className:prefix$1.apply(void 0,__spreadArray$3([],__read$1(C),!1)),"data-rotation":b,"data-direction":_,key:"direction-around-".concat(_),style:getControlTransform.apply(void 0,__spreadArray$3([c,g],__read$1(v.map(function(y){return l[y]})),!1))})})}function checkBoundPoses(o,e,t){var r=o||{},s=r.position,a=s===void 0?"client":s,l=r.left,c=l===void 0?-1/0:l,d=r.top,u=d===void 0?-1/0:d,g=r.right,f=g===void 0?1/0:g,m=r.bottom,_=m===void 0?1/0:m,v={position:a,left:c,top:u,right:f,bottom:_};return{vertical:checkBounds(v,e,!0),horizontal:checkBounds(v,t,!1)}}function getBounds(o,e){var t=o.state,r=t.containerClientRect,s=r.clientHeight,a=r.clientWidth,l=r.clientLeft,c=r.clientTop,d=t.snapOffset,u=d.left,g=d.top,f=d.right,m=d.bottom,_=e||o.props.bounds||{},v=_.position||"client",b=v==="css",C=_.left,y=C===void 0?-1/0:C,S=_.top,w=S===void 0?-1/0:S,E=_.right,x=E===void 0?b?-1/0:1/0:E,L=_.bottom,k=L===void 0?b?-1/0:1/0:L;return b&&(x=a+f-u-x,k=s+m-g-k),{left:y+u-l,right:x+u-l,top:w+g-c,bottom:k+g-c}}function checkBoundKeepRatio(o,e,t){var r=getBounds(o),s=r.left,a=r.top,l=r.right,c=r.bottom,d=__read$1(t,2),u=d[0],g=d[1],f=__read$1(minus(t,e),2),m=f[0],_=f[1];abs(m)<TINY_NUM&&(m=0),abs(_)<TINY_NUM&&(_=0);var v=_>0,b=m>0,C={isBound:!1,offset:0,pos:0},y={isBound:!1,offset:0,pos:0};if(m===0&&_===0)return{vertical:C,horizontal:y};if(m===0)v?c<g&&(y.pos=c,y.offset=g-c):a>g&&(y.pos=a,y.offset=g-a);else if(_===0)b?l<u&&(C.pos=l,C.offset=u-l):s>u&&(C.pos=s,C.offset=u-s);else{var S=_/m,w=t[1]-S*u,E=0,x=0,L=!1;b&&l<=u?(E=S*l+w,x=l,L=!0):!b&&u<=s&&(E=S*s+w,x=s,L=!0),L&&(E<a||E>c)&&(L=!1),L||(v&&c<=g?(E=c,x=(E-w)/S,L=!0):!v&&g<=a&&(E=a,x=(E-w)/S,L=!0)),L&&(C.isBound=!0,C.pos=x,C.offset=u-x,y.isBound=!0,y.pos=E,y.offset=g-E)}return{vertical:C,horizontal:y}}function checkBounds(o,e,t){var r=o[t?"left":"top"],s=o[t?"right":"bottom"],a=Math.min.apply(Math,__spreadArray$3([],__read$1(e),!1)),l=Math.max.apply(Math,__spreadArray$3([],__read$1(e),!1)),c=[];return r+1>a&&c.push({direction:"start",isBound:!0,offset:a-r,pos:r}),s-1<l&&c.push({direction:"end",isBound:!0,offset:l-s,pos:s}),c.length||c.push({isBound:!1,offset:0,pos:0}),c.sort(function(d,u){return abs(u.offset)-abs(d.offset)})}function isBoundRotate$1(o,e,t){var r=t?o.map(function(s){return rotate(s,t)}):o;return r.some(function(s){return s[0]<e.left&&abs(s[0]-e.left)>.1||s[0]>e.right&&abs(s[0]-e.right)>.1||s[1]<e.top&&abs(s[1]-e.top)>.1||s[1]>e.bottom&&abs(s[1]-e.bottom)>.1})}function boundRotate(o,e,t){var r=getDistSize(o),s=Math.sqrt(r*r-e*e)||0;return[s,-s].sort(function(a,l){return abs(a-o[t?0:1])-abs(l-o[t?0:1])}).map(function(a){return getRad$1([0,0],t?[a,e]:[e,a])})}function checkRotateBounds(o,e,t,r,s){if(!o.props.bounds)return[];var a=s*Math.PI/180,l=getBounds(o),c=l.left,d=l.top,u=l.right,g=l.bottom,f=c-r[0],m=u-r[0],_=d-r[1],v=g-r[1],b={left:f,top:_,right:m,bottom:v};if(!isBoundRotate$1(t,b,0))return[];var C=[];return[[f,0],[m,0],[_,1],[v,1]].forEach(function(y){var S=__read$1(y,2),w=S[0],E=S[1];t.forEach(function(x){var L=getRad$1([0,0],x);C.push.apply(C,__spreadArray$3([],__read$1(boundRotate(x,w,E).map(function(k){return a+k-L}).filter(function(k){return!isBoundRotate$1(e,b,k)}).map(function(k){return throttle(k*180/Math.PI,TINY_NUM)})),!1))})}),C}var VERTICAL_NAMES=["left","right","center"],HORIZONTAL_NAMES=["top","bottom","middle"],SNAP_SKIP_NAMES_MAP={left:"start",right:"end",center:"center",top:"start",bottom:"end",middle:"center"},VERTICAL_NAMES_MAP={start:"left",end:"right",center:"center"},HORIZONTAL_NAMES_MAP={start:"top",end:"bottom",center:"middle"};function getInitialBounds(){return{left:!1,top:!1,right:!1,bottom:!1}}function hasGuidelines(o,e){var t=o.props,r=t.snappable,s=t.bounds,a=t.innerBounds,l=t.verticalGuidelines,c=t.horizontalGuidelines,d=t.snapGridWidth,u=t.snapGridHeight,g=o.state,f=g.guidelines,m=g.enableSnap;return!r||!m||e&&r!==!0&&r.indexOf(e)<0?!1:!!(d||u||s||a||f&&f.length||l&&l.length||c&&c.length)}function getSnapDirections(o){return o===!1?{}:o===!0||!o?{left:!0,right:!0,top:!0,bottom:!0}:o}function mapSnapDirectionPoses(o,e){var t=getSnapDirections(o),r={};for(var s in t)s in e&&t[s]&&(r[s]=e[s]);return r}function splitSnapDirectionPoses(o,e){var t=mapSnapDirectionPoses(o,e),r=HORIZONTAL_NAMES.filter(function(a){return a in t}),s=VERTICAL_NAMES.filter(function(a){return a in t});return{horizontalNames:r,verticalNames:s,horizontal:r.map(function(a){return t[a]}),vertical:s.map(function(a){return t[a]})}}function calculateContainerPos(o,e,t){var r=calculatePosition(o,[e.clientLeft,e.clientTop],t);return[e.left+r[0],e.top+r[1]]}function solveLineConstants(o){var e=__read$1(o,2),t=e[0],r=e[1],s=r[0]-t[0],a=r[1]-t[1];Math.abs(s)<TINY_NUM$1&&(s=0),Math.abs(a)<TINY_NUM$1&&(a=0);var l=0,c=0,d=0;return s?a?(l=-a/s,c=1,d=l*t[0]-t[1]):(c=1,d=-t[1]):(l=-1,d=t[0]),[l,c,d].map(function(u){return throttle(u,TINY_NUM$1)})}var NAME_snapRotationThreshold="snapRotationThreshold",NAME_snapRotationDegrees="snapRotationDegrees",NAME_snapHorizontalThreshold="snapHorizontalThreshold",NAME_snapVerticalThreshold="snapVerticalThreshold";function checkMoveableSnapPoses(o,e,t,r,s,a,l){var c;r===void 0&&(r=[]),s===void 0&&(s=[]);var d=o.props,u=((c=o.state.snapThresholdInfo)===null||c===void 0?void 0:c.multiples)||[1,1],g=selectValue(l,d[NAME_snapHorizontalThreshold],5),f=selectValue(a,d[NAME_snapVerticalThreshold],5);return checkSnapPoses(o.state.guidelines,e,t,r,s,g,f,u)}function checkSnapPoses(o,e,t,r,s,a,l,c){return{vertical:checkSnap(o,"vertical",e,l*c[0],r),horizontal:checkSnap(o,"horizontal",t,a*c[1],s)}}function checkSnapKeepRatio(o,e,t){var r=__read$1(t,2),s=r[0],a=r[1],l=__read$1(e,2),c=l[0],d=l[1],u=__read$1(minus(t,e),2),g=u[0],f=u[1],m=f>0,_=g>0;g=getTinyDist(g),f=getTinyDist(f);var v={isSnap:!1,offset:0,pos:0},b={isSnap:!1,offset:0,pos:0};if(g===0&&f===0)return{vertical:v,horizontal:b};var C=checkMoveableSnapPoses(o,g?[s]:[],f?[a]:[],[],[],void 0,void 0),y=C.vertical,S=C.horizontal;y.posInfos.filter(function(P){var F=P.pos;return _?F>=c:F<=c}),S.posInfos.filter(function(P){var F=P.pos;return m?F>=d:F<=d}),y.isSnap=y.posInfos.length>0,S.isSnap=S.posInfos.length>0;var w=getNearestSnapGuidelineInfo(y),E=w.isSnap,x=w.guideline,L=getNearestSnapGuidelineInfo(S),k=L.isSnap,D=L.guideline,I=k?D.pos[1]:0,T=E?x.pos[0]:0;if(g===0)k&&(b.isSnap=!0,b.pos=D.pos[1],b.offset=a-b.pos);else if(f===0)E&&(v.isSnap=!0,v.pos=T,v.offset=s-T);else{var M=f/g,R=t[1]-M*s,N=0,A=0,O=!1;E?(A=T,N=M*A+R,O=!0):k&&(N=I,A=(N-R)/M,O=!0),O&&(v.isSnap=!0,v.pos=A,v.offset=s-A,b.isSnap=!0,b.pos=N,b.offset=a-N)}return{vertical:v,horizontal:b}}function getStringDirection(o){var e="";return o===-1||o==="top"||o==="left"?e="start":o===0||o==="center"||o==="middle"?e="center":(o===1||o==="right"||o==="bottom")&&(e="end"),e}function checkSnaps(o,e,t,r){var s=splitSnapDirectionPoses(o.props.snapDirections,e),a=checkMoveableSnapPoses(o,s.vertical,s.horizontal,s.verticalNames.map(function(d){return getStringDirection(d)}),s.horizontalNames.map(function(d){return getStringDirection(d)}),t,r),l=getStringDirection(s.horizontalNames[a.horizontal.index]),c=getStringDirection(s.verticalNames[a.vertical.index]);return{vertical:__assign$6(__assign$6({},a.vertical),{direction:c}),horizontal:__assign$6(__assign$6({},a.horizontal),{direction:l})}}function getNearestSnapGuidelineInfo(o){var e=o.isSnap;if(!e)return{isSnap:!1,offset:0,dist:-1,pos:0,guideline:null};var t=o.posInfos[0],r=t.guidelineInfos[0],s=r.offset,a=r.dist,l=r.guideline;return{isSnap:e,offset:s,dist:a,pos:t.pos,guideline:l}}function checkSnap(o,e,t,r,s){var a,l;if(s===void 0&&(s=[]),!o||!o.length)return{isSnap:!1,index:-1,direction:"",posInfos:[]};var c=e==="vertical",d=c?0:1,u=t.map(function(f,m){var _=s[m]||"",v=o.map(function(b){var C=b.pos,y=f-C[d];return{offset:y,dist:abs(y),guideline:b,direction:_}}).filter(function(b){var C=b.guideline,y=b.dist,S=C.type;return!(S!==e||y>r)}).sort(function(b,C){return b.dist-C.dist});return{pos:f,index:m,guidelineInfos:v,direction:_}}).filter(function(f){return f.guidelineInfos.length>0}).sort(function(f,m){return f.guidelineInfos[0].dist-m.guidelineInfos[0].dist}),g=u.length>0;return{isSnap:g,index:g?u[0].index:-1,direction:(l=(a=u[0])===null||a===void 0?void 0:a.direction)!==null&&l!==void 0?l:"",posInfos:u}}function getSnapInfosByDirection(o,e,t,r,s){var a=[];t[0]&&t[1]?a=[t,[-t[0],t[1]],[t[0],-t[1]]]:!t[0]&&!t[1]?[[-1,-1],[1,-1],[1,1],[-1,1]].forEach(function(m,_,v){var b=v[_+1]||v[0];a.push(m),a.push([(m[0]+b[0])/2,(m[1]+b[1])/2])}):o.props.keepRatio?a.push([-1,-1],[-1,1],[1,-1],[1,1],t):(a.push.apply(a,__spreadArray$3([],__read$1(getPosesByDirection([[-1,-1],[1,-1],[-1,-1],[1,1]],t)),!1)),a.length>1&&a.push([(a[0][0]+a[1][0])/2,(a[0][1]+a[1][1])/2]));var l=a.map(function(m){return getPosByDirection(e,m)}),c=l.map(function(m){return m[0]}),d=l.map(function(m){return m[1]}),u=checkMoveableSnapPoses(o,c,d,a.map(function(m){return getStringDirection(m[0])}),a.map(function(m){return getStringDirection(m[1])}),r,s),g=getStringDirection(a.map(function(m){return m[0]})[u.vertical.index]),f=getStringDirection(a.map(function(m){return m[1]})[u.horizontal.index]);return{vertical:__assign$6(__assign$6({},u.vertical),{direction:g}),horizontal:__assign$6(__assign$6({},u.horizontal),{direction:f})}}function checkSnapBoundPriority(o,e){var t=abs(o.offset),r=abs(e.offset);return o.isBound&&e.isBound?r-t:o.isBound?-1:e.isBound?1:o.isSnap&&e.isSnap?r-t:o.isSnap?-1:e.isSnap||t<TINY_NUM?1:r<TINY_NUM?-1:t-r}function getNearOffsetInfo(o,e){return o.slice().sort(function(t,r){var s=t.sign[e],a=r.sign[e],l=t.offset[e],c=r.offset[e];if(s){if(!a)return-1}else return 1;return checkSnapBoundPriority({isBound:t.isBound,isSnap:t.isSnap,offset:l},{isBound:r.isBound,isSnap:r.isSnap,offset:c})})[0]}function getCheckSnapDirections(o,e,t){var r=[];if(t)abs(e[0])!==1||abs(e[1])!==1?r.push([e,[-1,-1]],[e,[-1,1]],[e,[1,-1]],[e,[1,1]]):r.push([e,[o[0],-o[1]]],[e,[-o[0],o[1]]]),r.push([e,o]);else if(o[0]&&o[1]||!o[0]&&!o[1]){var s=o[0]?o:[1,1];[1,-1].forEach(function(l){[1,-1].forEach(function(c){var d=[l*s[0],c*s[1]];e[0]===d[0]&&e[1]===d[1]||r.push([e,d])})})}else if(o[0]){var a=abs(e[0])===1?[1]:[1,-1];a.forEach(function(l){r.push([[e[0],-1],[l*o[0],-1]],[[e[0],0],[l*o[0],0]],[[e[0],1],[l*o[0],1]])})}else if(o[1]){var a=abs(e[1])===1?[1]:[1,-1];a.forEach(function(c){r.push([[-1,e[1]],[-1,c*o[1]]],[[0,e[1]],[0,c*o[1]]],[[1,e[1]],[1,c*o[1]]])})}return r}function isStartLine(o,e){var t=average([e[0][0],e[1][0]]),r=average([e[0][1],e[1][1]]);return{vertical:t<=o[0],horizontal:r<=o[1]}}function hitTestLine(o,e){var t=__read$1(e,2),r=t[0],s=t[1],a=s[0]-r[0],l=s[1]-r[1];abs(a)<TINY_NUM&&(a=0),abs(l)<TINY_NUM&&(l=0);var c,d;if(!a)c=r[0],d=o[0];else if(!l)c=r[1],d=o[1];else{var u=l/a;c=u*(o[0]-r[0])+r[1],d=o[1]}return c-d}function isSameStartLine(o,e,t,r){return r===void 0&&(r=TINY_NUM),o.every(function(s){var a=hitTestLine(s,e),l=a<=0;return l===t||abs(a)<=r})}function checkInnerBoundDot(o,e,t,r,s){return s===void 0&&(s=0),r&&e-s<=o||!r&&o<=t+s?{isBound:!0,offset:r?e-o:t-o}:{isBound:!1,offset:0}}function checkInnerBound(o,e){var t=e.line,r=e.centerSign,s=e.verticalSign,a=e.horizontalSign,l=e.lineConstants,c=o.props.innerBounds;if(!c)return{isAllBound:!1,isBound:!1,isVerticalBound:!1,isHorizontalBound:!1,offset:[0,0]};var d=c.left,u=c.top,g=c.width,f=c.height,m=[[d,u],[d,u+f]],_=[[d,u],[d+g,u]],v=[[d+g,u],[d+g,u+f]],b=[[d,u+f],[d+g,u+f]];if(isSameStartLine([[d,u],[d+g,u],[d,u+f],[d+g,u+f]],t,r))return{isAllBound:!1,isBound:!1,isVerticalBound:!1,isHorizontalBound:!1,offset:[0,0]};var C=checkLineBoundCollision(t,l,_,s),y=checkLineBoundCollision(t,l,b,s),S=checkLineBoundCollision(t,l,m,a),w=checkLineBoundCollision(t,l,v,a),E=C.isBound&&y.isBound,x=C.isBound||y.isBound,L=S.isBound&&w.isBound,k=S.isBound||w.isBound,D=maxOffset(C.offset,y.offset),I=maxOffset(S.offset,w.offset),T=[0,0],M=!1,R=!1;return abs(I)<abs(D)?(T=[D,0],M=x,R=E):(T=[0,I],M=k,R=L),{isAllBound:R,isVerticalBound:x,isHorizontalBound:k,isBound:M,offset:T}}function checkLineBoundCollision(o,e,t,r,s,a){var l=__read$1(e,2),c=l[0],d=l[1],u=o[0],g=t[0],f=t[1],m=getTinyDist(f[1]-g[1]),_=getTinyDist(f[0]-g[0]),v=d,b=c,C=-c/d;if(_){if(!m){if(a&&!v)return{isBound:!1,offset:0};if(b){var E=(g[1]-u[1])/C+u[0];return checkInnerBoundDot(E,g[0],f[0],r,s)}else{var S=g[1]-u[1],w=abs(S)<=(s||0);return{isBound:w,offset:w?S:0}}}}else{if(a&&!b)return{isBound:!1,offset:0};if(v){var y=C*(g[0]-u[0])+u[1];return checkInnerBoundDot(y,g[1],f[1],r,s)}else{var S=g[0]-u[0],w=abs(S)<=(s||0);return{isBound:w,offset:w?S:0}}}return{isBound:!1,offset:0}}function getInnerBoundInfo(o,e,t){return e.map(function(r){var s=checkInnerBound(o,r),a=s.isBound,l=s.offset,c=s.isVerticalBound,d=s.isHorizontalBound,u=r.multiple,g=getDragDist({datas:t,distX:l[0],distY:l[1]}).map(function(f,m){return f*(u[m]?2/u[m]:0)});return{sign:u,isBound:a,isVerticalBound:c,isHorizontalBound:d,isSnap:!1,offset:g}})}function getInnerBoundDragInfo(o,e,t){var r,s=getCheckInnerBoundLineInfos(o,e,[0,0],!1).map(function(m){return __assign$6(__assign$6({},m),{multiple:m.multiple.map(function(_){return abs(_)*2})})}),a=getInnerBoundInfo(o,s,t),l=getNearOffsetInfo(a,0),c=getNearOffsetInfo(a,1),d=0,u=0,g=l.isVerticalBound||c.isVerticalBound,f=l.isHorizontalBound||c.isHorizontalBound;return(g||f)&&(r=__read$1(getInverseDragDist({datas:t,distX:-l.offset[0],distY:-c.offset[1]}),2),d=r[0],u=r[1]),{vertical:{isBound:g,offset:d},horizontal:{isBound:f,offset:u}}}function getCheckSnapLineDirections(o,e){var t=[],r=o[0],s=o[1];return r&&s?t.push([[0,s*2],o,[-r,s]],[[r*2,0],o,[r,-s]]):r?(t.push([[r*2,0],[r,1],[r,-1]]),e&&t.push([[0,-1],[r,-1],[-r,-1]],[[0,1],[r,1],[-r,1]])):s?(t.push([[0,s*2],[1,s],[-1,s]]),e&&t.push([[-1,0],[-1,s],[-1,-s]],[[1,0],[1,s],[1,-s]])):t.push([[-1,0],[-1,-1],[-1,1]],[[1,0],[1,-1],[1,1]],[[0,-1],[-1,-1],[1,-1]],[[0,1],[-1,1],[1,1]]),t}function getCheckInnerBoundLineInfos(o,e,t,r){var s=o.state,a=s.allMatrix,l=s.is3d,c=calculatePoses(a,100,100,l?4:3),d=getPosByDirection(c,[0,0]);return getCheckSnapLineDirections(t,r).map(function(u){var g=__read$1(u,3),f=g[0],m=g[1],_=g[2],v=[getPosByDirection(c,m),getPosByDirection(c,_)],b=solveLineConstants(v),C=isStartLine(d,v),y=C.vertical,S=C.horizontal,w=hitTestLine(d,v)<=0;return{multiple:f,centerSign:w,verticalSign:y,horizontalSign:S,lineConstants:b,line:[getPosByDirection(e,m),getPosByDirection(e,_)]}})}function isBoundRotate(o,e,t,r){var s=r?o.map(function(a){return rotate(a,r)}):o;return[[s[0],s[1]],[s[1],s[3]],[s[3],s[2]],[s[2],s[0]]].some(function(a){var l=hitTestLine(t,a)<=0;return!isSameStartLine(e,a,l)})}function getDistPointLine(o){var e=__read$1(o,2),t=e[0],r=e[1],s=r[0]-t[0],a=r[1]-t[1];if(!s)return abs(t[0]);if(!a)return abs(t[1]);var l=a/s;return abs((-l*t[0]+t[1])/Math.sqrt(Math.pow(l,2)+1))}function solveReverseLine(o){var e=__read$1(o,2),t=e[0],r=e[1],s=r[0]-t[0],a=r[1]-t[1];if(!s)return[t[0],0];if(!a)return[0,t[1]];var l=a/s,c=-l*t[0]+t[1];return[-c/(l+1/l),c/(l*l+1)]}function checkRotateInnerBounds(o,e,t,r,s){var a=o.props.innerBounds,l=s*Math.PI/180;if(!a)return[];var c=a.left,d=a.top,u=a.width,g=a.height,f=c-r[0],m=c+u-r[0],_=d-r[1],v=d+g-r[1],b=[[f,_],[m,_],[f,v],[m,v]],C=getPosByDirection(t,[0,0]);if(!isBoundRotate(t,b,C,0))return[];var y=[],S=b.map(function(w){return[getDistSize(w),getRad$1([0,0],w)]});return[[t[0],t[1]],[t[1],t[3]],[t[3],t[2]],[t[2],t[0]]].forEach(function(w){var E=getRad$1([0,0],solveReverseLine(w)),x=getDistPointLine(w);y.push.apply(y,__spreadArray$3([],__read$1(S.filter(function(L){var k=__read$1(L,1),D=k[0];return D&&x<=D}).map(function(L){var k=__read$1(L,2),D=k[0],I=k[1],T=Math.acos(D?x/D:0),M=I+T,R=I-T;return[l+M-E,l+R-E]}).reduce(function(L,k){return L.push.apply(L,__spreadArray$3([],__read$1(k),!1)),L},[]).filter(function(L){return!isBoundRotate(e,b,C,L)}).map(function(L){return throttle(L*180/Math.PI,TINY_NUM)})),!1))}),y}function checkInnerBoundPoses(o){var e=o.props.innerBounds,t=getInitialBounds();if(!e)return{boundMap:t,vertical:[],horizontal:[]};var r=o.getRect(),s=r.pos1,a=r.pos2,l=r.pos3,c=r.pos4,d=[s,a,l,c],u=getPosByDirection(d,[0,0]),g=e.left,f=e.top,m=e.width,_=e.height,v=[[g,f],[g,f+_]],b=[[g,f],[g+m,f]],C=[[g+m,f],[g+m,f+_]],y=[[g,f+_],[g+m,f+_]],S=getCheckInnerBoundLineInfos(o,d,[0,0],!1),w=[],E=[];return S.forEach(function(x){var L=x.line,k=x.lineConstants,D=isStartLine(u,L),I=D.horizontal,T=D.vertical,M=checkLineBoundCollision(L,k,b,T,1,!0),R=checkLineBoundCollision(L,k,y,T,1,!0),N=checkLineBoundCollision(L,k,v,I,1,!0),A=checkLineBoundCollision(L,k,C,I,1,!0);M.isBound&&!t.top&&(w.push(f),t.top=!0),R.isBound&&!t.bottom&&(w.push(f+_),t.bottom=!0),N.isBound&&!t.left&&(E.push(g),t.left=!0),A.isBound&&!t.right&&(E.push(g+m),t.right=!0)}),{boundMap:t,horizontal:w,vertical:E}}function solveEquation(o,e,t,r){var s=e[0]-o[0],a=e[1]-o[1];if(abs(s)<TINY_NUM$1&&(s=0),abs(a)<TINY_NUM$1&&(a=0),!s)return r?[0,0]:[0,t];if(!a)return r?[t,0]:[0,0];var l=a/s,c=o[1]-l*o[0];if(r){var d=l*(e[0]+t)+c;return[t,d-e[1]]}else{var u=(e[1]+t-c)/l;return[u-e[0],t]}}function solveNextOffset(o,e,t,r,s){var a=solveEquation(o,e,t,r);if(!a)return{isOutside:!1,offset:[0,0]};var l=getDist$2(o,e),c=getDist$2(a,o),d=getDist$2(a,e),u=c>l||d>l,g=__read$1(getDragDist({datas:s,distX:a[0],distY:a[1]}),2),f=g[0],m=g[1];return{offset:[f,m],isOutside:u}}function getSnapBound(o,e){return o.isBound?o.offset:e.isSnap?getNearestSnapGuidelineInfo(e).offset:0}function checkThrottleDragRotate(o,e,t,r,s){var a=__read$1(e,2),l=a[0],c=a[1],d=__read$1(t,2),u=d[0],g=d[1],f=__read$1(r,2),m=f[0],_=f[1],v=__read$1(s,2),b=v[0],C=v[1],y=-b,S=-C;if(o&&l&&c){y=0,S=0;var w=[];if(u&&g?w.push([0,C],[b,0]):u?w.push([b,0]):g?w.push([0,C]):m&&_?w.push([0,C],[b,0]):m?w.push([b,0]):_&&w.push([0,C]),w.length){w.sort(function(k,D){return getDistSize(minus([l,c],k))-getDistSize(minus([l,c],D))});var E=w[0];if(E[0]&&abs(l)>TINY_NUM$1)y=-E[0],S=c*abs(l+y)/abs(l)-c;else if(E[1]&&abs(c)>TINY_NUM$1){var x=c;S=-E[1],y=l*abs(c+S)/abs(x)-l}if(o&&g&&u)if(abs(y)>TINY_NUM$1&&abs(y)<abs(b)){var L=abs(b)/abs(y);y*=L,S*=L}else if(abs(S)>TINY_NUM$1&&abs(S)<abs(C)){var L=abs(C)/abs(S);y*=L,S*=L}else y=maxOffset(-b,y),S=maxOffset(-C,S)}}else y=l||u?-b:0,S=c||g?-C:0;return[y,S]}function checkSnapBoundsDrag(o,e,t,r,s,a){if(!hasGuidelines(o,"draggable"))return[{isSnap:!1,isBound:!1,offset:0},{isSnap:!1,isBound:!1,offset:0}];var l=getAbsolutePoses(a.absolutePoses,[e,t]),c=getRect(l),d=c.left,u=c.right,g=c.top,f=c.bottom,m={horizontal:l.map(function(A){return A[1]}),vertical:l.map(function(A){return A[0]})},_=getSnapDirections(o.props.snapDirections),v=splitSnapDirectionPoses(_,{left:d,right:u,top:g,bottom:f,center:(d+u)/2,middle:(g+f)/2}),b=checkMoveableSnapBounds(o,s,v,m),C=b.vertical,y=b.horizontal,S=getInnerBoundDragInfo(o,l,a),w=S.vertical,E=S.horizontal,x=C.isSnap,L=y.isSnap,k=C.isBound||w.isBound,D=y.isBound||E.isBound,I=maxOffset(C.offset,w.offset),T=maxOffset(y.offset,E.offset),M=__read$1(checkThrottleDragRotate(r,[e,t],[k,D],[x,L],[I,T]),2),R=M[0],N=M[1];return[{isBound:k,isSnap:x,offset:R},{isBound:D,isSnap:L,offset:N}]}function checkMoveableSnapBounds(o,e,t,r){r===void 0&&(r=t);var s=checkBoundPoses(getBounds(o),r.vertical,r.horizontal),a=s.horizontal,l=s.vertical,c=e?{horizontal:{isSnap:!1,index:-1},vertical:{isSnap:!1,index:-1}}:checkMoveableSnapPoses(o,t.vertical,t.horizontal,void 0,void 0,void 0,void 0),d=c.horizontal,u=c.vertical,g=getSnapBound(a[0],d),f=getSnapBound(l[0],u),m=abs(g),_=abs(f);return{horizontal:{isBound:a[0].isBound,isSnap:d.isSnap,snapIndex:d.index,offset:g,dist:m,bounds:a,snap:d},vertical:{isBound:l[0].isBound,isSnap:u.isSnap,snapIndex:u.index,offset:f,dist:_,bounds:l,snap:u}}}function checkSnapBounds(o,e,t,r,s,a,l){l===void 0&&(l=[1,1]);var c=checkBoundPoses(e,t,r),d=c.horizontal,u=c.vertical,g=checkSnapPoses(o,t,r,[],[],s,a,l),f=g.horizontal,m=g.vertical,_=getSnapBound(d[0],f),v=getSnapBound(u[0],m),b=abs(_),C=abs(v);return{horizontal:{isBound:d[0].isBound,isSnap:f.isSnap,snapIndex:f.index,offset:_,dist:b,bounds:d,snap:f},vertical:{isBound:u[0].isBound,isSnap:m.isSnap,snapIndex:m.index,offset:v,dist:C,bounds:u,snap:m}}}function checkSnapRightLine(o,e,t,r){var s=getRad$1(o,e)/Math.PI*180,a=t.vertical,l=a.isBound,c=a.isSnap,d=a.dist,u=t.horizontal,g=u.isBound,f=u.isSnap,m=u.dist,_=s%180,v=_<3||_>177,b=_>87&&_<93;return m<d&&(l||c&&!b&&(!r||!v))?"vertical":g||f&&!v&&(!r||!b)?"horizontal":""}function getSnapBoundInfo(o,e,t,r,s,a){return t.map(function(l){var c=__read$1(l,2),d=c[0],u=c[1],g=getPosByDirection(e,d),f=getPosByDirection(e,u),m=r?checkSnapBoundsKeepRatio(o,g,f,s):checkMoveableSnapBounds(o,s,{vertical:[f[0]],horizontal:[f[1]]}),_=m.horizontal,v=_.offset,b=_.isBound,C=_.isSnap,y=m.vertical,S=y.offset,w=y.isBound,E=y.isSnap,x=minus(u,d);if(!S&&!v)return{isBound:w||b,isSnap:E||C,sign:x,offset:[0,0]};var L=checkSnapRightLine(g,f,m,r);if(!L)return{sign:x,isBound:!1,isSnap:!1,offset:[0,0]};var k=L==="vertical",D=[0,0];return!r&&abs(u[0])===1&&abs(u[1])===1&&d[0]!==u[0]&&d[1]!==u[1]?D=getDragDist({datas:a,distX:-S,distY:-v}):D=solveNextOffset(g,f,-(k?S:v),k,a).offset,D=D.map(function(I,T){return I*(x[T]?2/x[T]:0)}),{sign:x,isBound:k?w:b,isSnap:k?E:C,offset:D}})}function getSnapBoundOffset(o,e){return o.isBound?o.offset:e.isSnap?e.offset:0}function checkSnapBoundsKeepRatio(o,e,t,r){var s=checkBoundKeepRatio(o,e,t),a=s.horizontal,l=s.vertical,c=r?{horizontal:{isSnap:!1},vertical:{isSnap:!1}}:checkSnapKeepRatio(o,e,t),d=c.horizontal,u=c.vertical,g=getSnapBoundOffset(a,d),f=getSnapBoundOffset(l,u),m=abs(g),_=abs(f);return{horizontal:{isBound:a.isBound,isSnap:d.isSnap,offset:g,dist:m},vertical:{isBound:l.isBound,isSnap:u.isSnap,offset:f,dist:_}}}function checkMaxBounds(o,e,t,r,s){var a=[-t[0],-t[1]],l=o.state,c=l.width,d=l.height,u=o.props.bounds,g=1/0,f=1/0;if(u){var m=[[t[0],-t[1]],[-t[0],t[1]]],_=u.left,v=_===void 0?-1/0:_,b=u.top,C=b===void 0?-1/0:b,y=u.right,S=y===void 0?1/0:y,w=u.bottom,E=w===void 0?1/0:w;m.forEach(function(x){var L=x[0]!==a[0],k=x[1]!==a[1],D=getPosByDirection(e,x),I=getRad$1(r,D)*360/Math.PI;if(k){var T=D.slice();(abs(I-360)<2||abs(I-180)<2)&&(T[1]=r[1]);var M=solveNextOffset(r,T,(r[1]<D[1]?E:C)-D[1],!1,s),R=__read$1(M.offset,2),N=R[1],A=M.isOutside;isNaN(N)||(f=d+(A?1:-1)*abs(N))}if(L){var T=D.slice();(abs(I-90)<2||abs(I-270)<2)&&(T[0]=r[0]);var O=solveNextOffset(r,T,(r[0]<D[0]?S:v)-D[0],!0,s),P=__read$1(O.offset,1),F=P[0],B=O.isOutside;isNaN(F)||(g=c+(B?1:-1)*abs(F))}})}return{maxWidth:g,maxHeight:f}}var Draggable={name:"draggable",props:["draggable","throttleDrag","throttleDragRotate","hideThrottleDragRotateLine","startDragRotate","edgeDraggable"],events:["dragStart","drag","dragEnd","dragGroupStart","dragGroup","dragGroupEnd"],requestStyle:function(){return["left","top","right","bottom"]},requestChildStyle:function(){return["left","top","right","bottom"]},render:function(o,e){var t=o.props,r=t.hideThrottleDragRotateLine,s=t.throttleDragRotate,a=t.zoom,l=o.getState(),c=l.dragInfo,d=l.beforeOrigin;if(r||!s||!c)return[];var u=c.dist;if(!u[0]&&!u[1])return[];var g=getDistSize(u),f=getRad$1(u,[0,0]);return[e.createElement("div",{className:prefix$1("line","horizontal","dragline","dashed"),key:"dragRotateGuideline",style:{width:"".concat(g,"px"),transform:"translate(".concat(d[0],"px, ").concat(d[1],"px) rotate(").concat(f,"rad) scaleY(").concat(a,")")}})]},dragStart:function(o,e){var t=e.datas,r=e.parentEvent,s=e.parentGesto,a=o.state,l=a.gestos,c=a.style;if(l.draggable)return!1;l.draggable=s||o.targetGesto,t.datas={},t.left=parseFloat(c.left||"")||0,t.top=parseFloat(c.top||"")||0,t.bottom=parseFloat(c.bottom||"")||0,t.right=parseFloat(c.right||"")||0,t.startValue=[0,0],setDragStart(o,e),setDefaultTransformIndex(o,e,"translate"),startCheckSnapDrag(o,t),t.prevDist=[0,0],t.prevBeforeDist=[0,0],t.isDrag=!1,t.deltaOffset=[0,0];var d=fillParams(o,e,__assign$6({set:function(g){t.startValue=g}},fillTransformStartEvent(o,e))),u=r||triggerEvent(o,"onDragStart",d);return u!==!1?(t.isDrag=!0,o.state.dragInfo={startRect:o.getRect(),dist:[0,0]}):(l.draggable=null,t.isPinch=!1),t.isDrag?d:!1},drag:function(o,e){if(e){resolveTransformEvent(o,e,"translate");var t=e.datas,r=e.parentEvent,s=e.parentFlag,a=e.isPinch,l=e.deltaOffset,c=e.useSnap,d=e.isRequest,u=e.isGroup,g=e.parentThrottleDrag,f=e.distX,m=e.distY,_=t.isDrag,v=t.prevDist,b=t.prevBeforeDist,C=t.startValue;if(_){l&&(f+=l[0],m+=l[1]);var y=o.props,S=y.parentMoveable,w=u?0:y.throttleDrag||g||0,E=r?0:y.throttleDragRotate||0,x=0,L=!1,k=!1,D=!1,I=!1;if(!r&&E>0&&(f||m)){var T=y.startDragRotate||0,M=throttle(T+getRad$1([0,0],[f,m])*180/Math.PI,E)-T,R=m*Math.abs(Math.cos((M-90)/180*Math.PI)),N=f*Math.abs(Math.cos(M/180*Math.PI)),A=getDistSize([N,R]);x=M*Math.PI/180,f=A*Math.cos(x),m=A*Math.sin(x)}if(!a&&!r&&!s){var O=__read$1(checkSnapBoundsDrag(o,f,m,E,!c&&d||l,t),2),P=O[0],F=O[1];L=P.isSnap,k=P.isBound,D=F.isSnap,I=F.isBound;var B=P.offset,H=F.offset;f+=B,m+=H}var V=plus(getBeforeDragDist({datas:t,distX:f,distY:m}),C),U=plus(getTransformDist({datas:t,distX:f,distY:m}),C);throttleArray(U,TINY_NUM),throttleArray(V,TINY_NUM),E||(!L&&!k&&(U[0]=throttle(U[0],w),V[0]=throttle(V[0],w)),!D&&!I&&(U[1]=throttle(U[1],w),V[1]=throttle(V[1],w)));var j=minus(V,C),X=minus(U,C),ee=minus(X,v),Z=minus(j,b);t.prevDist=X,t.prevBeforeDist=j,t.passDelta=ee,t.passDist=X;var J=t.left+j[0],q=t.top+j[1],Q=t.right-j[0],re=t.bottom-j[1],de=convertTransformFormat(t,"translate(".concat(U[0],"px, ").concat(U[1],"px)"),"translate(".concat(X[0],"px, ").concat(X[1],"px)"));if(fillOriginalTransform(e,de),o.state.dragInfo.dist=r?[0,0]:X,!(!r&&!S&&ee.every(function(ie){return!ie})&&Z.some(function(ie){return!ie}))){var se=o.state,W=se.width,G=se.height,Y=fillParams(o,e,__assign$6({transform:de,dist:X,delta:ee,translate:U,beforeDist:j,beforeDelta:Z,beforeTranslate:V,left:J,top:q,right:Q,bottom:re,width:W,height:G,isPinch:a},fillCSSObject({transform:de},e)));return!r&&triggerEvent(o,"onDrag",Y),Y}}}},dragAfter:function(o,e){var t=e.datas,r=t.deltaOffset;return r[0]||r[1]?(t.deltaOffset=[0,0],this.drag(o,__assign$6(__assign$6({},e),{deltaOffset:r}))):!1},dragEnd:function(o,e){var t=e.parentEvent,r=e.datas;if(o.state.dragInfo=null,!!r.isDrag){r.isDrag=!1;var s=fillEndParams(o,e,{});return!t&&triggerEvent(o,"onDragEnd",s),s}},dragGroupStart:function(o,e){var t,r,s=e.datas,a=e.clientX,l=e.clientY,c=this.dragStart(o,e);if(!c)return!1;var d=triggerChildGesto(o,this,"dragStart",[a||0,l||0],e,!1,"draggable"),u=d.childEvents,g=d.eventParams,f=__assign$6(__assign$6({},c),{targets:o.props.targets,events:g}),m=triggerEvent(o,"onDragGroupStart",f);s.isDrag=m!==!1;var _=(r=(t=u[0])===null||t===void 0?void 0:t.datas.startValue)!==null&&r!==void 0?r:[0,0];return s.throttleOffset=[_[0]%1,_[1]%1],s.isDrag?c:!1},dragGroup:function(o,e){var t=e.datas;if(t.isDrag){var r=this.drag(o,__assign$6(__assign$6({},e),{parentThrottleDrag:o.props.throttleDrag})),s=e.datas.passDelta,a=triggerChildGesto(o,this,"drag",s,e,!1,"draggable").eventParams;if(r){var l=__assign$6({targets:o.props.targets,events:a},r);return triggerEvent(o,"onDragGroup",l),l}}},dragGroupEnd:function(o,e){var t=e.isDrag,r=e.datas;if(r.isDrag){this.dragEnd(o,e);var s=triggerChildGesto(o,this,"dragEnd",[0,0],e,!1,"draggable").eventParams;return triggerEvent(o,"onDragGroupEnd",fillEndParams(o,e,{targets:o.props.targets,events:s})),t}},request:function(o){var e={},t=o.getRect(),r=0,s=0,a=!1;return{isControl:!1,requestStart:function(l){return a=l.useSnap,{datas:e,useSnap:a}},request:function(l){return"x"in l?r=l.x-t.left:"deltaX"in l&&(r+=l.deltaX),"y"in l?s=l.y-t.top:"deltaY"in l&&(s+=l.deltaY),{datas:e,distX:r,distY:s,useSnap:a}},requestEnd:function(){return{datas:e,isDrag:!0,useSnap:a}}}},unset:function(o){o.state.gestos.draggable=null,o.state.dragInfo=null}};function getFixedDirectionInfo(o,e){var t=getPosByDirection(o,e),r=[0,0];return{fixedPosition:t,fixedDirection:e,fixedOffset:r}}function getOffsetFixedDirectionInfo(o,e){var t=o.allMatrix,r=o.is3d,s=o.width,a=o.height,l=r?4:3,c=[s/2*(1+e[0]),a/2*(1+e[1])],d=calculatePosition(t,c,l),u=[0,0];return{fixedPosition:d,fixedDirection:e,fixedOffset:u}}function getOffsetFixedPositionInfo(o,e){var t=o.allMatrix,r=o.is3d,s=o.width,a=o.height,l=r?4:3,c=getDirectionByPos(e,s,a),d=calculatePosition(t,e,l),u=[s?0:e[0],a?0:e[1]];return{fixedPosition:d,fixedDirection:c,fixedOffset:u}}var directionCondition$2=getDirectionCondition("resizable"),Resizable={name:"resizable",ableGroup:"size",canPinch:!0,props:["resizable","throttleResize","renderDirections","displayAroundControls","keepRatio","resizeFormat","keepRatioFinally","edge","checkResizableError"],events:["resizeStart","beforeResize","resize","resizeEnd","resizeGroupStart","beforeResizeGroup","resizeGroup","resizeGroupEnd"],render:getRenderDirections("resizable"),dragControlCondition:directionCondition$2,viewClassName:getDirectionViewClassName("resizable"),dragControlStart:function(o,e){var t,r=e.inputEvent,s=e.isPinch,a=e.isGroup,l=e.parentDirection,c=e.parentGesto,d=e.datas,u=e.parentFixedDirection,g=e.parentEvent,f=getTotalDirection(l,s,r,d),m=o.state,_=m.target,v=m.width,b=m.height,C=m.gestos;if(!f||!_||C.resizable)return!1;C.resizable=c||o.controlGesto,!s&&setDragStart(o,e),d.datas={},d.direction=f,d.startOffsetWidth=v,d.startOffsetHeight=b,d.prevWidth=0,d.prevHeight=0,d.minSize=[0,0],d.startWidth=m.inlineCSSWidth||m.cssWidth,d.startHeight=m.inlineCSSHeight||m.cssHeight,d.maxSize=[1/0,1/0],a||(d.minSize=[m.minOffsetWidth,m.minOffsetHeight],d.maxSize=[m.maxOffsetWidth,m.maxOffsetHeight]);var y=o.props.transformOrigin||"% %";d.transformOrigin=isString(y)?y.split(" "):y,d.startOffsetMatrix=m.offsetMatrix,d.startTransformOrigin=m.transformOrigin,d.isWidth=(t=e==null?void 0:e.parentIsWidth)!==null&&t!==void 0?t:!f[0]&&!f[1]||f[0]||!f[1];function S(I){d.ratio=I&&isFinite(I)?I:0}d.startPositions=getAbsolutePosesByState(o.state);function w(I){var T=getFixedDirectionInfo(d.startPositions,I);d.fixedDirection=T.fixedDirection,d.fixedPosition=T.fixedPosition,d.fixedOffset=T.fixedOffset}function E(I){var T=getOffsetFixedPositionInfo(o.state,I);d.fixedDirection=T.fixedDirection,d.fixedPosition=T.fixedPosition,d.fixedOffset=T.fixedOffset}function x(I){d.minSize=[convertUnitSize("".concat(I[0]),0)||0,convertUnitSize("".concat(I[1]),0)||0]}function L(I){var T=[I[0]||1/0,I[1]||1/0];(!isNumber(T[0])||isFinite(T[0]))&&(T[0]=convertUnitSize("".concat(T[0]),0)||1/0),(!isNumber(T[1])||isFinite(T[1]))&&(T[1]=convertUnitSize("".concat(T[1]),0)||1/0),d.maxSize=T}S(v/b),w(u||[-f[0],-f[1]]),d.setFixedDirection=w,d.setFixedPosition=E,d.setMin=x,d.setMax=L;var k=fillParams(o,e,{direction:f,startRatio:d.ratio,set:function(I){var T=__read$1(I,2),M=T[0],R=T[1];d.startWidth=M,d.startHeight=R},setMin:x,setMax:L,setRatio:S,setFixedDirection:w,setFixedPosition:E,setOrigin:function(I){d.transformOrigin=I},dragStart:Draggable.dragStart(o,new CustomGesto().dragStart([0,0],e))}),D=g||triggerEvent(o,"onResizeStart",k);return d.startFixedDirection=d.fixedDirection,d.startFixedPosition=d.fixedPosition,D!==!1&&(d.isResize=!0,o.state.snapRenderInfo={request:e.isRequest,direction:f}),d.isResize?k:!1},dragControl:function(o,e){var t,r=e.datas,s=e.parentFlag,a=e.isPinch,l=e.parentKeepRatio,c=e.dragClient,d=e.parentDist,u=e.useSnap,g=e.isRequest,f=e.isGroup,m=e.parentEvent,_=e.resolveMatrix,v=r.isResize,b=r.transformOrigin,C=r.startWidth,y=r.startHeight,S=r.prevWidth,w=r.prevHeight,E=r.minSize,x=r.maxSize,L=r.ratio,k=r.startOffsetWidth,D=r.startOffsetHeight,I=r.isWidth;if(!v)return;if(_){var T=o.state.is3d,M=r.startOffsetMatrix,R=r.startTransformOrigin,N=T?4:3,A=parseMat(getNextTransforms(e)),O=Math.sqrt(A.length);N!==O&&(A=convertDimension(A,O,N));var P=getNextMatrix(M,A,R,N),F=calculatePoses(P,k,D,N);r.startPositions=F,r.nextTargetMatrix=A,r.nextAllMatrix=P}var B=getProps(o.props,"resizable"),H=B.resizeFormat,V=B.throttleResize,U=V===void 0?s?0:1:V,j=B.parentMoveable,X=B.keepRatioFinally,ee=r.direction,Z=ee,J=0,q=0;!ee[0]&&!ee[1]&&(Z=[1,1]);var Q=L&&(l!=null?l:B.keepRatio)||!1;function re(){var fe=r.fixedDirection,pe=getOffsetSizeDist(Z,Q,r,e);J=pe.distWidth,q=pe.distHeight;var ye=Z[0]-fe[0]||Q?Math.max(k+J,TINY_NUM):k,we=Z[1]-fe[1]||Q?Math.max(D+q,TINY_NUM):D;return Q&&k&&D&&(I?we=ye/L:ye=we*L),[ye,we]}var de=__read$1(re(),2),se=de[0],W=de[1];m||(r.setFixedDirection(r.fixedDirection),triggerEvent(o,"onBeforeResize",fillParams(o,e,{startFixedDirection:r.startFixedDirection,startFixedPosition:r.startFixedPosition,setFixedDirection:function(fe){var pe;return r.setFixedDirection(fe),pe=__read$1(re(),2),se=pe[0],W=pe[1],[se,W]},setFixedPosition:function(fe){var pe;return r.setFixedPosition(fe),pe=__read$1(re(),2),se=pe[0],W=pe[1],[se,W]},boundingWidth:se,boundingHeight:W,setSize:function(fe){var pe;pe=__read$1(fe,2),se=pe[0],W=pe[1]}},!0)));var G=c;c||(!s&&a?G=getAbsolutePosition$1(o,[0,0]):G=r.fixedPosition);var Y=[0,0];a||(Y=checkSnapResize(o,se,W,ee,G,!u&&g,r)),d&&(!d[0]&&(Y[0]=0),!d[1]&&(Y[1]=0));function ie(){var fe;H&&(fe=__read$1(H([se,W]),2),se=fe[0],W=fe[1]),se=throttle(se,U),W=throttle(W,U)}if(Q){Z[0]&&Z[1]&&Y[0]&&Y[1]&&(abs(Y[0])>abs(Y[1])?Y[1]=0:Y[0]=0);var ne=!Y[0]&&!Y[1];ne&&ie(),Z[0]&&!Z[1]||Y[0]&&!Y[1]||ne&&I?(se+=Y[0],W=se/L):(!Z[0]&&Z[1]||!Y[0]&&Y[1]||ne&&!I)&&(W+=Y[1],se=W*L)}else se+=Y[0],W+=Y[1],se=Math.max(0,se),W=Math.max(0,W);t=__read$1(calculateBoundSize([se,W],E,x,Q?L:!1),2),se=t[0],W=t[1],ie(),Q&&(f||X)&&(I?W=se/L:se=W*L),J=se-k,q=W-D;var oe=[J-S,q-w];r.prevWidth=J,r.prevHeight=q;var ue=getResizeDist(o,se,W,G,b,r);if(!(!j&&oe.every(function(fe){return!fe})&&ue.every(function(fe){return!fe}))){var ae=Draggable.drag(o,setCustomDrag(e,o.state,ue,!!a,!1,"draggable")),le=ae.transform,ce=C+J,ve=y+q,he=fillParams(o,e,__assign$6({width:ce,height:ve,offsetWidth:Math.round(se),offsetHeight:Math.round(W),startRatio:L,boundingWidth:se,boundingHeight:W,direction:ee,dist:[J,q],delta:oe,isPinch:!!a,drag:ae},fillAfterTransform({style:{width:"".concat(ce,"px"),height:"".concat(ve,"px")},transform:le},ae,e)));return!m&&triggerEvent(o,"onResize",he),he}},dragControlAfter:function(o,e){var t=e.datas,r=t.isResize,s=t.startOffsetWidth,a=t.startOffsetHeight,l=t.prevWidth,c=t.prevHeight;if(!(!r||o.props.checkResizableError===!1)){var d=o.state,u=d.width,g=d.height,f=u-(s+l),m=g-(a+c),_=abs(f)>3,v=abs(m)>3;if(_&&(t.startWidth+=f,t.startOffsetWidth+=f,t.prevWidth+=f),v&&(t.startHeight+=m,t.startOffsetHeight+=m,t.prevHeight+=m),_||v)return this.dragControl(o,e)}},dragControlEnd:function(o,e){var t=e.datas,r=e.parentEvent;if(t.isResize){t.isResize=!1;var s=fillEndParams(o,e,{});return!r&&triggerEvent(o,"onResizeEnd",s),s}},dragGroupControlCondition:directionCondition$2,dragGroupControlStart:function(o,e){var t=e.datas,r=this.dragControlStart(o,__assign$6(__assign$6({},e),{isGroup:!0}));if(!r)return!1;var s=fillChildEvents(o,"resizable",e),a=t.startOffsetWidth,l=t.startOffsetHeight;function c(){var _=t.minSize;s.forEach(function(v){var b=v.datas,C=b.minSize,y=b.startOffsetWidth,S=b.startOffsetHeight,w=a*(y?C[0]/y:0),E=l*(S?C[1]/S:0);_[0]=Math.max(_[0],w),_[1]=Math.max(_[1],E)})}function d(){var _=t.maxSize;s.forEach(function(v){var b=v.datas,C=b.maxSize,y=b.startOffsetWidth,S=b.startOffsetHeight,w=a*(y?C[0]/y:0),E=l*(S?C[1]/S:0);_[0]=Math.min(_[0],w),_[1]=Math.min(_[1],E)})}var u=triggerChildAbles(o,this,"dragControlStart",e,function(_,v){return startChildDist(o,_,t,v)});c(),d();var g=function(_){r.setFixedDirection(_),u.forEach(function(v,b){v.setFixedDirection(_),startChildDist(o,v.moveable,t,s[b])})};t.setFixedDirection=g;var f=__assign$6(__assign$6({},r),{targets:o.props.targets,events:u.map(function(_){return __assign$6(__assign$6({},_),{setMin:function(v){_.setMin(v),c()},setMax:function(v){_.setMax(v),d()}})}),setFixedDirection:g,setMin:function(_){r.setMin(_),c()},setMax:function(_){r.setMax(_),d()}}),m=triggerEvent(o,"onResizeGroupStart",f);return t.isResize=m!==!1,t.isResize?r:!1},dragGroupControl:function(o,e){var t=e.datas;if(t.isResize){var r=getProps(o.props,"resizable");catchEvent(o,"onBeforeResize",function(_){triggerEvent(o,"onBeforeResizeGroup",fillParams(o,e,__assign$6(__assign$6({},_),{targets:r.targets}),!0))});var s=this.dragControl(o,__assign$6(__assign$6({},e),{isGroup:!0}));if(s){var a=s.boundingWidth,l=s.boundingHeight,c=s.dist,d=r.keepRatio,u=[a/(a-c[0]),l/(l-c[1])],g=t.fixedPosition,f=triggerChildAbles(o,this,"dragControl",e,function(_,v){var b=__read$1(calculate(createRotateMatrix(o.rotation/180*Math.PI,3),[v.datas.originalX*u[0],v.datas.originalY*u[1],1],3),2),C=b[0],y=b[1];return __assign$6(__assign$6({},v),{parentDist:null,parentScale:u,dragClient:plus(g,[C,y]),parentKeepRatio:d})}),m=__assign$6({targets:r.targets,events:f},s);return triggerEvent(o,"onResizeGroup",m),m}}},dragGroupControlEnd:function(o,e){var t=e.isDrag,r=e.datas;if(r.isResize){this.dragControlEnd(o,e);var s=triggerChildAbles(o,this,"dragControlEnd",e),a=fillEndParams(o,e,{targets:o.props.targets,events:s});return triggerEvent(o,"onResizeGroupEnd",a),t}},request:function(o){var e={},t=0,r=0,s=!1,a=o.getRect();return{isControl:!0,requestStart:function(l){var c;return s=l.useSnap,{datas:e,parentDirection:l.direction||[1,1],parentIsWidth:(c=l==null?void 0:l.horizontal)!==null&&c!==void 0?c:!0,useSnap:s}},request:function(l){return"offsetWidth"in l?t=l.offsetWidth-a.offsetWidth:"deltaWidth"in l&&(t+=l.deltaWidth),"offsetHeight"in l?r=l.offsetHeight-a.offsetHeight:"deltaHeight"in l&&(r+=l.deltaHeight),{datas:e,parentDist:[t,r],parentKeepRatio:l.keepRatio,useSnap:s}},requestEnd:function(){return{datas:e,isDrag:!0,useSnap:s}}}},unset:function(o){o.state.gestos.resizable=null}};function setRotateStartInfo(o,e,t,r,s){var a=o.props.groupable,l=o.state,c=l.is3d?4:3,d=e.origin,u=calculatePosition(o.state.rootMatrix,minus([d[0],d[1]],a?[0,0]:[l.left,l.top]),c),g=plus([s.left,s.top],u);e.startAbsoluteOrigin=g,e.prevDeg=getRad$1(g,[t,r])/Math.PI*180,e.defaultDeg=e.prevDeg,e.prevSnapDeg=0,e.loop=0,e.startDist=getDist$2(g,[t,r])}function getAbsoluteDist(o,e,t){var r=t.defaultDeg,s=t.prevDeg,a=s%360,l=Math.floor(s/360);a<0&&(a+=360),a>o&&a>270&&o<90?++l:a<o&&a<90&&o>270&&--l;var c=e*(l*360+o-r);return t.prevDeg=r+c,c}function getAbsoluteDistByClient(o,e,t,r){return getAbsoluteDist(getRad$1(r.startAbsoluteOrigin,[o,e])/Math.PI*180,t,r)}function getRotateInfo(o,e,t,r,s,a){var l=o.props.throttleRotate,c=l===void 0?0:l,d=t.prevSnapDeg,u=0,g=!1;if(a){var f=checkSnapRotate(o,e,r,s+r);g=f.isSnap,u=s+f.dist}g||(u=throttle(s+r,c));var m=u-s;return t.prevSnapDeg=m,[m-d,m,u]}function getRotationPositions(o,e,t){var r=__read$1(e,4),s=r[0],a=r[1],l=r[2],c=r[3];if(o==="none")return[];if(isArray$1(o))return o.map(function(C){return getRotationPositions(C,[s,a,l,c],t)[0]});var d=__read$1((o||"top").split("-"),2),u=d[0],g=d[1],f=[s,a];u==="left"?f=[l,s]:u==="right"?f=[a,c]:u==="bottom"&&(f=[c,l]);var m=[(f[0][0]+f[1][0])/2,(f[0][1]+f[1][1])/2],_=getRotationRad(f,t);if(g){var v=g==="top"||g==="left",b=u==="bottom"||u==="left";m=f[v&&!b||!v&&b?0:1]}return[[m,_]]}function dragControlCondition(o,e){if(e.isRequest)return e.requestAble==="rotatable";var t=e.inputEvent.target;if(hasClass(t,prefix$1("rotation-control"))||o.props.rotateAroundControls&&hasClass(t,prefix$1("around-control"))||hasClass(t,prefix$1("control"))&&hasClass(t,prefix$1("rotatable")))return!0;var r=o.props.rotationTarget;return r?getRefTargets(r,!0).some(function(s){return s?t===s||t.contains(s):!1}):!1}var css=".rotation {\nposition: absolute;\nheight: 40px;\nwidth: 1px;\ntransform-origin: 50% 100%;\nheight: calc(40px * var(--zoom));\ntop: auto;\nleft: 0;\nbottom: 100%;\nwill-change: transform;\n}\n.rotation .rotation-line {\ndisplay: block;\nwidth: 100%;\nheight: 100%;\ntransform-origin: 50% 50%;\n}\n.rotation .rotation-control {\nborder-color: #4af;\nborder-color: var(--moveable-color);\nbackground:#fff;\ncursor: alias;\n}\n:global .view-rotation-dragging, .rotatable.direction.control {\ncursor: alias;\n}\n.rotatable.direction.control.move {\ncursor: move;\n}\n",Rotatable={name:"rotatable",canPinch:!0,props:["rotatable","rotationPosition","throttleRotate","renderDirections","rotationTarget","rotateAroundControls","edge","resolveAblesWithRotatable","displayAroundControls"],events:["rotateStart","beforeRotate","rotate","rotateEnd","rotateGroupStart","beforeRotateGroup","rotateGroup","rotateGroupEnd"],css:[css],viewClassName:function(o){return o.isDragging("rotatable")?prefix$1("view-rotation-dragging"):""},render:function(o,e){var t=getProps(o.props,"rotatable"),r=t.rotatable,s=t.rotationPosition,a=t.zoom,l=t.renderDirections,c=t.rotateAroundControls,d=t.resolveAblesWithRotatable,u=o.getState(),g=u.renderPoses,f=u.direction;if(!r)return null;var m=getRotationPositions(s,g,f),_=[];if(m.forEach(function(y,S){var w=__read$1(y,2),E=w[0],x=w[1];_.push(e.createElement("div",{key:"rotation".concat(S),className:prefix$1("rotation"),style:{transform:"translate(-50%) translate(".concat(E[0],"px, ").concat(E[1],"px) rotate(").concat(x,"rad)")}},e.createElement("div",{className:prefix$1("line rotation-line"),style:{transform:"scaleX(".concat(a,")")}}),e.createElement("div",{className:prefix$1("control rotation-control"),style:{transform:"translate(0.5px) scale(".concat(a,")")}})))}),l){var v=getKeys(d||{}),b={};v.forEach(function(y){d[y].forEach(function(S){b[S]=y})});var C=[];isArray$1(l)&&(C=l.map(function(y){var S=b[y];return{data:S?{resolve:S}:{},classNames:S?["move"]:[],dir:y}})),_.push.apply(_,__spreadArray$3([],__read$1(renderDirectionControlsByInfos(o,"rotatable",C,e)),!1))}return c&&_.push.apply(_,__spreadArray$3([],__read$1(renderAroundControls(o,e)),!1)),_},dragControlCondition,dragControlStart:function(o,e){var t,r,s=e.datas,a=e.clientX,l=e.clientY,c=e.parentRotate,d=e.parentFlag,u=e.isPinch,g=e.isRequest,f=o.state,m=f.target,_=f.left,v=f.top,b=f.direction,C=f.beforeDirection,y=f.targetTransform,S=f.moveableClientRect,w=f.offsetMatrix,E=f.targetMatrix,x=f.allMatrix,L=f.width,k=f.height;if(!g&&!m)return!1;var D=o.getRect();s.rect=D,s.transform=y,s.left=_,s.top=v;var I=function(Z){var J=getOffsetFixedPositionInfo(o.state,Z);s.fixedDirection=J.fixedDirection,s.fixedOffset=J.fixedOffset,s.fixedPosition=J.fixedPosition,U&&U.setFixedPosition(Z)},T=function(Z){var J=getOffsetFixedDirectionInfo(o.state,Z);s.fixedDirection=J.fixedDirection,s.fixedOffset=J.fixedOffset,s.fixedPosition=J.fixedPosition,U&&U.setFixedDirection(Z)},M=a,R=l;if(g||u||d){var N=c||0;s.beforeInfo={origin:D.beforeOrigin,prevDeg:N,defaultDeg:N,prevSnapDeg:0,startDist:0},s.afterInfo=__assign$6(__assign$6({},s.beforeInfo),{origin:D.origin}),s.absoluteInfo=__assign$6(__assign$6({},s.beforeInfo),{origin:D.origin,startValue:N})}else{var A=(r=e.inputEvent)===null||r===void 0?void 0:r.target;if(A){var O=A.getAttribute("data-direction")||"",P=DIRECTION_REGION_TO_DIRECTION[O];if(P){s.isControl=!0,s.isAroundControl=hasClass(A,prefix$1("around-control")),s.controlDirection=P;var F=A.getAttribute("data-resolve");F&&(s.resolveAble=F);var B=calculateMoveableClientPositions(f.rootMatrix,f.renderPoses,S);t=__read$1(getPosByDirection(B,P),2),M=t[0],R=t[1]}}s.beforeInfo={origin:D.beforeOrigin},s.afterInfo={origin:D.origin},s.absoluteInfo={origin:D.origin,startValue:D.rotation};var H=I;I=function(Z){var J=f.is3d?4:3,q=__read$1(plus(getOrigin(E,J),Z),2),Q=q[0],re=q[1],de=calculate(w,convertPositionMatrix([Q,re],J)),se=calculate(x,convertPositionMatrix([Z[0],Z[1]],J));H(Z);var W=f.posDelta;s.beforeInfo.origin=minus(de,W),s.afterInfo.origin=minus(se,W),s.absoluteInfo.origin=minus(se,W),setRotateStartInfo(o,s.beforeInfo,M,R,S),setRotateStartInfo(o,s.afterInfo,M,R,S),setRotateStartInfo(o,s.absoluteInfo,M,R,S)},T=function(Z){var J=getPosByDirection([[0,0],[L,0],[0,k],[L,k]],Z);I(J)}}s.startClientX=M,s.startClientY=R,s.direction=b,s.beforeDirection=C,s.startValue=0,s.datas={},setDefaultTransformIndex(o,e,"rotate");var V=!1,U=!1;if(s.isControl&&s.resolveAble){var j=s.resolveAble;j==="resizable"&&(U=Resizable.dragControlStart(o,__assign$6(__assign$6({},new CustomGesto("resizable").dragStart([0,0],e)),{parentPosition:s.controlPosition,parentFixedPosition:s.fixedPosition})))}U||(V=Draggable.dragStart(o,new CustomGesto().dragStart([0,0],e))),I(getTotalOrigin(o));var X=fillParams(o,e,__assign$6(__assign$6({set:function(Z){s.startValue=Z*Math.PI/180},setFixedDirection:T,setFixedPosition:I},fillTransformStartEvent(o,e)),{dragStart:V,resizeStart:U})),ee=triggerEvent(o,"onRotateStart",X);return s.isRotate=ee!==!1,f.snapRenderInfo={request:e.isRequest},s.isRotate?X:!1},dragControl:function(o,e){var t,r,s,a=e.datas,l=e.clientDistX,c=e.clientDistY,d=e.parentRotate,u=e.parentFlag,g=e.isPinch,f=e.groupDelta,m=e.resolveMatrix,_=a.beforeDirection,v=a.beforeInfo,b=a.afterInfo,C=a.absoluteInfo,y=a.isRotate,S=a.startValue,w=a.rect,E=a.startClientX,x=a.startClientY;if(y){resolveTransformEvent(o,e,"rotate");var L=getTransformDirection(e),k=_*L,D=o.props.parentMoveable,I=0,T,M,R=0,N,A,O=0,P,F,B=180/Math.PI*S,H=C.startValue,V=!1,U=E+l,j=x+c;if(!u&&"parentDist"in e){var X=e.parentDist;T=X,N=X,P=X}else g||u?(T=getAbsoluteDist(d,_,v),N=getAbsoluteDist(d,k,b),P=getAbsoluteDist(d,k,C)):(T=getAbsoluteDistByClient(U,j,_,v),N=getAbsoluteDistByClient(U,j,k,b),P=getAbsoluteDistByClient(U,j,k,C),V=!0);if(M=B+T,A=B+N,F=H+P,triggerEvent(o,"onBeforeRotate",fillParams(o,e,{beforeRotation:M,rotation:A,absoluteRotation:F,setRotation:function(G){N=G-B,T=N,P=N}},!0)),t=__read$1(getRotateInfo(o,w,v,T,B,V),3),I=t[0],T=t[1],M=t[2],r=__read$1(getRotateInfo(o,w,b,N,B,V),3),R=r[0],N=r[1],A=r[2],s=__read$1(getRotateInfo(o,w,C,P,H,V),3),O=s[0],P=s[1],F=s[2],!(!O&&!R&&!I&&!D&&!m)){var ee=convertTransformFormat(a,"rotate(".concat(A,"deg)"),"rotate(".concat(N,"deg)"));m&&(a.fixedPosition=getTranslateFixedPosition(o,a.targetAllTransform,a.fixedDirection,a.fixedOffset,a));var Z=getRotateDist(o,N,a),J=minus(plus(f||[0,0],Z),a.prevInverseDist||[0,0]);a.prevInverseDist=Z,a.requestValue=null;var q=fillTransformEvent(o,ee,J,g,e),Q=q,re=getDist$2([U,j],C.startAbsoluteOrigin)-C.startDist,de=void 0;if(a.resolveAble==="resizable"){var se=Resizable.dragControl(o,__assign$6(__assign$6({},setCustomDrag(e,o.state,[e.deltaX,e.deltaY],!!g,!1,"resizable")),{resolveMatrix:!0,parentDistance:re}));se&&(de=se,Q=fillAfterTransform(Q,se,e))}var W=fillParams(o,e,__assign$6(__assign$6({delta:R,dist:N,rotate:A,rotation:A,beforeDist:T,beforeDelta:I,beforeRotate:M,beforeRotation:M,absoluteDist:P,absoluteDelta:O,absoluteRotate:F,absoluteRotation:F,isPinch:!!g,resize:de},q),Q));return triggerEvent(o,"onRotate",W),W}}},dragControlEnd:function(o,e){var t=e.datas;if(t.isRotate){t.isRotate=!1;var r=fillEndParams(o,e,{});return triggerEvent(o,"onRotateEnd",r),r}},dragGroupControlCondition:dragControlCondition,dragGroupControlStart:function(o,e){var t=e.datas,r=o.state,s=r.left,a=r.top,l=r.beforeOrigin,c=this.dragControlStart(o,e);if(!c)return!1;c.set(t.beforeDirection*o.rotation);var d=triggerChildAbles(o,this,"dragControlStart",e,function(f,m){var _=f.state,v=_.left,b=_.top,C=_.beforeOrigin,y=plus(minus([v,b],[s,a]),minus(C,l));return m.datas.startGroupClient=y,m.datas.groupClient=y,__assign$6(__assign$6({},m),{parentRotate:0})}),u=__assign$6(__assign$6({},c),{targets:o.props.targets,events:d}),g=triggerEvent(o,"onRotateGroupStart",u);return t.isRotate=g!==!1,t.isRotate?c:!1},dragGroupControl:function(o,e){var t=e.datas;if(t.isRotate){catchEvent(o,"onBeforeRotate",function(u){triggerEvent(o,"onBeforeRotateGroup",fillParams(o,e,__assign$6(__assign$6({},u),{targets:o.props.targets}),!0))});var r=this.dragControl(o,e);if(r){var s=t.beforeDirection,a=r.beforeDist,l=a/180*Math.PI,c=triggerChildAbles(o,this,"dragControl",e,function(u,g){var f=g.datas.startGroupClient,m=__read$1(g.datas.groupClient,2),_=m[0],v=m[1],b=__read$1(rotate(f,l*s),2),C=b[0],y=b[1],S=[C-_,y-v];return g.datas.groupClient=[C,y],__assign$6(__assign$6({},g),{parentRotate:a,groupDelta:S})});o.rotation=s*r.beforeRotation;var d=__assign$6({targets:o.props.targets,events:c,set:function(u){o.rotation=u},setGroupRotation:function(u){o.rotation=u}},r);return triggerEvent(o,"onRotateGroup",d),d}}},dragGroupControlEnd:function(o,e){var t=e.isDrag,r=e.datas;if(r.isRotate){this.dragControlEnd(o,e);var s=triggerChildAbles(o,this,"dragControlEnd",e),a=fillEndParams(o,e,{targets:o.props.targets,events:s});return triggerEvent(o,"onRotateGroupEnd",a),t}},request:function(o){var e={},t=0,r=o.getRotation();return{isControl:!0,requestStart:function(){return{datas:e}},request:function(s){return"deltaRotate"in s?t+=s.deltaRotate:"rotate"in s&&(t=s.rotate-r),{datas:e,parentDist:t}},requestEnd:function(){return{datas:e,isDrag:!0}}}}};function renderGuideline(o,e){var t,r=o.direction,s=o.classNames,a=o.size,l=o.pos,c=o.zoom,d=o.key,u=r==="horizontal",g=u?"Y":"X";return e.createElement("div",{key:d,className:s.join(" "),style:(t={},t[u?"width":"height"]="".concat(a),t.transform="translate(".concat(l[0],", ").concat(l[1],") translate").concat(g,"(-50%) scale").concat(g,"(").concat(c,")"),t)})}function renderInnerGuideline(o,e){return renderGuideline(__assign$6(__assign$6({},o),{classNames:__spreadArray$3([prefix$1("line","guideline",o.direction)],__read$1(o.classNames),!1).filter(function(t){return t}),size:o.size||"".concat(o.sizeValue,"px"),pos:o.pos||o.posValue.map(function(t){return"".concat(throttle(t,.1),"px")})}),e)}function renderSnapPoses(o,e,t,r,s,a,l,c){var d=o.props.zoom;return t.map(function(u,g){var f=u.type,m=u.pos,_=[0,0];return _[l]=r,_[l?0:1]=-s+m,renderInnerGuideline({key:"".concat(e,"TargetGuideline").concat(g),classNames:[prefix$1("target","bold",f)],posValue:_,sizeValue:a,zoom:d,direction:e},c)})}function renderGuidelines(o,e,t,r,s,a){var l=o.props,c=l.zoom,d=l.isDisplayInnerSnapDigit,u=e==="horizontal"?VERTICAL_NAMES_MAP:HORIZONTAL_NAMES_MAP,g=s[u.start],f=s[u.end];return t.filter(function(m){var _=m.hide,v=m.elementRect;if(_)return!1;if(d&&v){var b=v.rect;if(b[u.start]<=g&&f<=b[u.end])return!1}return!0}).map(function(m,_){var v=m.pos,b=m.size,C=m.element,y=m.className,S=[-r[0]+v[0],-r[1]+v[1]];return renderInnerGuideline({key:"".concat(e,"-default-guideline-").concat(_),classNames:C?[prefix$1("bold"),y]:[prefix$1("normal"),y],direction:e,posValue:S,sizeValue:b,zoom:c},a)})}function renderDigitLine(o,e,t,r,s,a,l,c){var d,u=o.props,g=u.snapDigit,f=g===void 0?0:g,m=u.isDisplaySnapDigit,_=m===void 0?!0:m,v=u.snapDistFormat,b=v===void 0?function(x,L){return x}:v,C=u.zoom,y=e==="horizontal"?"X":"Y",S=e==="vertical"?"height":"width",w=Math.abs(s),E=_?parseFloat(w.toFixed(f)):0;return c.createElement("div",{key:"".concat(e,"-").concat(t,"-guideline-").concat(r),className:prefix$1("guideline-group",e),style:(d={left:"".concat(a[0],"px"),top:"".concat(a[1],"px")},d[S]="".concat(w,"px"),d)},renderInnerGuideline({direction:e,classNames:[prefix$1(t),l],size:"100%",posValue:[0,0],sizeValue:w,zoom:C},c),c.createElement("div",{className:prefix$1("size-value","gap"),style:{transform:"translate".concat(y,"(-50%) scale(").concat(C,")")}},E>0?b(E,e):""))}function groupByElementGuidelines(o,e,t,r){var s=o==="vertical"?0:1,a=o==="vertical"?1:0,l=s?VERTICAL_NAMES_MAP:HORIZONTAL_NAMES_MAP,c=t[l.start],d=t[l.end];return groupBy(e,function(u){return u.pos[s]}).map(function(u){var g=[],f=[],m=[];return u.forEach(function(_){var v,b,C=_.element,y=_.elementRect.rect;if(y[l.end]<c)g.push(_);else if(d<y[l.start])f.push(_);else if(y[l.start]<=c&&d<=y[l.end]&&r){var S=_.pos,w={element:C,rect:__assign$6(__assign$6({},y),(v={},v[l.end]=y[l.start],v))},E={element:C,rect:__assign$6(__assign$6({},y),(b={},b[l.start]=y[l.end],b))},x=[0,0],L=[0,0];x[s]=S[s],x[a]=S[a],L[s]=S[s],L[a]=S[a]+_.size,g.push({type:o,pos:x,size:0,elementRect:w,direction:"",elementDirection:"end"}),f.push({type:o,pos:L,size:0,elementRect:E,direction:"",elementDirection:"start"})}}),g.sort(function(_,v){return v.pos[a]-_.pos[a]}),f.sort(function(_,v){return _.pos[a]-v.pos[a]}),{total:u,start:g,end:f,inner:m}})}function renderDashedGuidelines(o,e,t,r,s){var a=o.props.isDisplayInnerSnapDigit,l=[];return["vertical","horizontal"].forEach(function(c){var d=e.filter(function(C){return C.type===c}),u=c==="vertical"?1:0,g=u?0:1,f=groupByElementGuidelines(c,d,r,a),m=u?HORIZONTAL_NAMES_MAP:VERTICAL_NAMES_MAP,_=u?VERTICAL_NAMES_MAP:HORIZONTAL_NAMES_MAP,v=r[m.start],b=r[m.end];f.forEach(function(C){var y=C.total,S=C.start,w=C.end,E=C.inner,x=t[g]+y[0].pos[g]-r[_.start],L=r;S.forEach(function(k){var D=k.elementRect.rect,I=L[m.start]-D[m.end];if(I>0){var T=[0,0];T[u]=t[u]+L[m.start]-v-I,T[g]=x,l.push(renderDigitLine(o,c,"dashed",l.length,I,T,k.className,s))}L=D}),L=r,w.forEach(function(k){var D=k.elementRect.rect,I=D[m.start]-L[m.end];if(I>0){var T=[0,0];T[u]=t[u]+L[m.end]-v,T[g]=x,l.push(renderDigitLine(o,c,"dashed",l.length,I,T,k.className,s))}L=D}),E.forEach(function(k){var D=k.elementRect.rect,I=v-D[m.start],T=D[m.end]-b,M=[0,0],R=[0,0];M[u]=t[u]-I,M[g]=x,R[u]=t[u]+b-v,R[g]=x,l.push(renderDigitLine(o,c,"dashed",l.length,I,M,k.className,s)),l.push(renderDigitLine(o,c,"dashed",l.length,T,R,k.className,s))})})}),l}function renderGapGuidelines(o,e,t,r,s){var a=[];return["horizontal","vertical"].forEach(function(l){var c=e.filter(function(C){return C.type===l}).slice(0,1),d=l==="vertical"?0:1,u=d?0:1,g=d?HORIZONTAL_NAMES_MAP:VERTICAL_NAMES_MAP,f=d?VERTICAL_NAMES_MAP:HORIZONTAL_NAMES_MAP,m=r[g.start],_=r[g.end],v=r[f.start],b=r[f.end];c.forEach(function(C){var y=C.gap,S=C.gapRects,w=Math.max.apply(Math,__spreadArray$3([v],__read$1(S.map(function(L){var k=L.rect;return k[f.start]})),!1)),E=Math.min.apply(Math,__spreadArray$3([b],__read$1(S.map(function(L){var k=L.rect;return k[f.end]})),!1)),x=(w+E)/2;w===E||x===(v+b)/2||S.forEach(function(L){var k=L.rect,D=L.className,I=[t[0],t[1]];if(k[g.end]<m)I[d]+=k[g.end]-m;else if(_<k[g.start])I[d]+=k[g.start]-m-y;else return;I[u]+=x-v,a.push(renderDigitLine(o,d?"vertical":"horizontal","gap",a.length,y,I,D,s))})})}),a}function getTotalGuidelines(o){var e,t,r=o.state,s=r.containerClientRect,a=r.hasFixed,l=s.overflow,c=s.scrollHeight,d=s.scrollWidth,u=s.clientHeight,g=s.clientWidth,f=s.clientLeft,m=s.clientTop,_=o.props,v=_.snapGap,b=v===void 0?!0:v,C=_.verticalGuidelines,y=_.horizontalGuidelines,S=_.snapThreshold,w=S===void 0?5:S,E=_.maxSnapElementGuidelineDistance,x=E===void 0?1/0:E,L=_.isDisplayGridGuidelines,k=getRect(getAbsolutePosesByState(o.state)),D=k.top,I=k.left,T=k.bottom,M=k.right,R={top:D,left:I,bottom:T,right:M,center:(I+M)/2,middle:(D+T)/2},N=getElementGuidelines(o),A=__spreadArray$3([],__read$1(N),!1),O=((t=(e=r.snapThresholdInfo)===null||e===void 0?void 0:e.multiples)!==null&&t!==void 0?t:[1,1]).map(function(H){return H*w});b&&A.push.apply(A,__spreadArray$3([],__read$1(getGapGuidelines(o,R,O)),!1));var P=__assign$6({},r.snapOffset||{left:0,top:0,bottom:0,right:0});if(A.push.apply(A,__spreadArray$3([],__read$1(getGridGuidelines(o,l?d:g,l?c:u,f,m,P,L)),!1)),a){var F=s.left,B=s.top;P.left+=F,P.top+=B,P.right+=F,P.bottom+=B}return A.push.apply(A,__spreadArray$3([],__read$1(getDefaultGuidelines(y||!1,C||!1,l?d:g,l?c:u,f,m,P)),!1)),A=A.filter(function(H){var V=H.element,U=H.elementRect,j=H.type;if(!V||!U)return!0;var X=U.rect;return checkBetweenRects(R,X,j,x)}),A}function getGapGuidelines(o,e,t){var r=o.props,s=r.maxSnapElementGuidelineDistance,a=s===void 0?1/0:s,l=r.maxSnapElementGapDistance,c=l===void 0?1/0:l,d=o.state.elementRects,u=[];return[["vertical",VERTICAL_NAMES_MAP,HORIZONTAL_NAMES_MAP],["horizontal",HORIZONTAL_NAMES_MAP,VERTICAL_NAMES_MAP]].forEach(function(g){var f=__read$1(g,3),m=f[0],_=f[1],v=f[2],b=e[_.start],C=e[_.end],y=e[_.center],S=e[v.start],w=e[v.end],E={left:t[0],top:t[1]};function x(D){var I=D.rect,T=E[_.start];return I[_.end]<b+T?b-I[_.end]:C-T<I[_.start]?I[_.start]-C:-1}var L=d.filter(function(D){var I=D.rect;return I[v.start]>w||I[v.end]<S?!1:x(D)>0}).sort(function(D,I){return x(D)-x(I)}),k=[];L.forEach(function(D){L.forEach(function(I){if(D!==I){var T=D.rect,M=I.rect,R=T[v.start],N=T[v.end],A=M[v.start],O=M[v.end];R>O||A>N||k.push([D,I])}})}),k.forEach(function(D){var I=__read$1(D,2),T=I[0],M=I[1],R=T.rect,N=M.rect,A=R[_.start],O=R[_.end],P=N[_.start],F=N[_.end],B=E[_.start],H=0,V=0,U=!1,j=!1,X=!1;if(O<=b&&C<=P){if(j=!0,H=(P-O-(C-b))/2,V=O+H+(C-b)/2,abs(V-y)>B)return}else if(O<P&&F<b+B){if(U=!0,H=P-O,V=F+H,abs(V-b)>B)return}else if(O<P&&C-B<A){if(X=!0,H=P-O,V=A-H,abs(V-C)>B)return}else return;H&&checkBetweenRects(e,N,m,a)&&(H>c||u.push({type:m,pos:m==="vertical"?[V,0]:[0,V],element:M.element,size:0,className:M.className,isStart:U,isCenter:j,isEnd:X,gap:H,hide:!0,gapRects:[T,M],direction:"",elementDirection:""}))})}),u}function startGridGroupGuidelines(o,e,t,r){var s,a,l=o.props,c=o.state,d=l.snapGridAll,u=l.snapGridWidth,g=u===void 0?0:u,f=l.snapGridHeight,m=f===void 0?0:f,_=c.snapRenderInfo,v=_&&(((s=_.direction)===null||s===void 0?void 0:s[0])||((a=_.direction)===null||a===void 0?void 0:a[1])),b=o.moveables;if(d&&b&&v&&(g||m)){if(c.snapThresholdInfo)return;c.snapThresholdInfo={multiples:[1,1],offset:[0,0]};var C=o.getRect(),y=C.children,S=_.direction;if(y){var w=S.map(function(x,L){var k=L===0?{snapSize:g,posName:"left",sizeName:"width",clientOffset:r.left-e}:{snapSize:m,posName:"top",sizeName:"height",clientOffset:r.top-t},D=k.snapSize,I=k.posName,T=k.sizeName,M=k.clientOffset;if(!D)return{dir:x,multiple:1,snapSize:D,snapOffset:0};var R=C[T],N=C[I],A=flat$2(y.map(function(U){return[U[I]-N,U[T],R-U[T]-U[I]+N]})).filter(function(U){return U}).sort(function(U,j){return U-j}),O=A[0],P=A.map(function(U){return throttle(U/O,.1)*D}),F=1,B=throttle(R/O,.1);for(F=1;F<=10&&!P.every(function(U){return U*F%1===0});++F);var H=(-x+1)/2,V=dot$1(N-M,N-M+R,H,1-H);return{multiple:B*F,dir:x,snapSize:D,snapOffset:Math.round(V/D)}}),E=w.map(function(x){return x.multiple||1});c.snapThresholdInfo.multiples=E,c.snapThresholdInfo.offset=w.map(function(x){return x.snapOffset}),w.forEach(function(x,L){x.snapSize})}}else c.snapThresholdInfo=null}function getGridGuidelines(o,e,t,r,s,a,l){r===void 0&&(r=0),s===void 0&&(s=0);var c=o.props,d=o.state,u=c.snapGridWidth,g=u===void 0?0:u,f=c.snapGridHeight,m=f===void 0?0:f,_=[],v=a.left,b=a.top,C=[0,0];startGridGroupGuidelines(o,r,s,a);var y=d.snapThresholdInfo,S=g,w=m;if(y&&(g*=y.multiples[0]||1,m*=y.multiples[1]||1,C=y.offset),m){for(var E=function(L){_.push({type:"horizontal",pos:[v,throttle(C[1]*w+L-s+b,.1)],className:prefix$1("grid-guideline"),size:e,hide:!l,direction:"",grid:!0})},x=0;x<=t*2;x+=m)E(x);for(var x=-m;x>=-t;x-=m)E(x)}if(g){for(var E=function(k){_.push({type:"vertical",pos:[throttle(C[0]*S+k-r+v,.1),b],className:prefix$1("grid-guideline"),size:t,hide:!l,direction:"",grid:!0})},x=0;x<=e*2;x+=g)E(x);for(var x=-g;x>=-e;x-=g)E(x)}return _}function checkBetweenRects(o,e,t,r){return t==="horizontal"?abs(o.right-e.left)<=r||abs(o.left-e.right)<=r||o.left<=e.right&&e.left<=o.right:t==="vertical"?abs(o.bottom-e.top)<=r||abs(o.top-e.bottom)<=r||o.top<=e.bottom&&e.top<=o.bottom:!0}function getElementGuidelines(o){var e=o.state,t=o.props.elementGuidelines,r=t===void 0?[]:t;if(!r.length)return e.elementRects=[],[];var s=(e.elementRects||[]).filter(function(m){return!m.refresh}),a=r.map(function(m){return isObject$2(m)&&"element"in m?__assign$6(__assign$6({},m),{element:getRefTarget(m.element,!0)}):{element:getRefTarget(m,!0)}}).filter(function(m){return m.element}),l=diff(s.map(function(m){return m.element}),a.map(function(m){return m.element})),c=l.maintained,d=l.added,u=[];c.forEach(function(m){var _=__read$1(m,2),v=_[0],b=_[1];u[b]=s[v]}),getSnapElementRects(o,d.map(function(m){return a[m]})).map(function(m,_){u[d[_]]=m}),e.elementRects=u;var g=getSnapDirections(o.props.elementSnapDirections),f=[];return u.forEach(function(m){var _=m.element,v=m.top,b=v===void 0?g.top:v,C=m.left,y=C===void 0?g.left:C,S=m.right,w=S===void 0?g.right:S,E=m.bottom,x=E===void 0?g.bottom:E,L=m.center,k=L===void 0?g.center:L,D=m.middle,I=D===void 0?g.middle:D,T=m.className,M=m.rect,R=splitSnapDirectionPoses({top:b,right:w,left:y,bottom:x,center:k,middle:I},M),N=R.horizontal,A=R.vertical,O=R.horizontalNames,P=R.verticalNames,F=M.top,B=M.left,H=M.right-B,V=M.bottom-F,U=[H,V];A.forEach(function(j,X){f.push({type:"vertical",element:_,pos:[throttle(j,.1),F],size:V,sizes:U,className:T,elementRect:m,elementDirection:SNAP_SKIP_NAMES_MAP[P[X]]||P[X],direction:""})}),N.forEach(function(j,X){f.push({type:"horizontal",element:_,pos:[B,throttle(j,.1)],size:H,sizes:U,className:T,elementRect:m,elementDirection:SNAP_SKIP_NAMES_MAP[O[X]]||O[X],direction:""})})}),f}function getObjectGuidelines(o,e){return o?o.map(function(t){var r=isObject$2(t)?t:{pos:t},s=r.pos;return isNumber(s)?r:__assign$6(__assign$6({},r),{pos:convertUnitSize(s,e)})}):[]}function getDefaultGuidelines(o,e,t,r,s,a,l){s===void 0&&(s=0),a===void 0&&(a=0),l===void 0&&(l={left:0,top:0,right:0,bottom:0});var c=[],d=l.left,u=l.top,g=l.bottom,f=l.right,m=t+f-d,_=r+g-u;return getObjectGuidelines(o,_).forEach(function(v){c.push({type:"horizontal",pos:[d,throttle(v.pos-a+u,.1)],size:m,className:v.className,direction:""})}),getObjectGuidelines(e,m).forEach(function(v){c.push({type:"vertical",pos:[throttle(v.pos-s+d,.1),u],size:_,className:v.className,direction:""})}),c}function getSnapElementRects(o,e){if(!e.length)return[];var t=o.props.groupable,r=o.state,s=r.containerClientRect,a=r.rootMatrix,l=r.is3d,c=r.offsetDelta,d=l?4:3,u=__read$1(calculateContainerPos(a,s,d),2),g=u[0],f=u[1],m=t?0:c[0],_=t?0:c[1];return e.map(function(v){var b=v.element.getBoundingClientRect(),C=b.left-g-m,y=b.top-f-_,S=y+b.height,w=C+b.width,E=__read$1(calculateInversePosition(a,[C,y],d),2),x=E[0],L=E[1],k=__read$1(calculateInversePosition(a,[w,S],d),2),D=k[0],I=k[1];return __assign$6(__assign$6({},v),{rect:{left:x,right:D,top:L,bottom:I,center:(x+D)/2,middle:(L+I)/2}})})}function checkSnapInfo(o){var e=o.state,t=e.container,r=o.props.snapContainer||t;if(e.snapContainer===r&&e.guidelines&&e.guidelines.length)return!1;var s=e.containerClientRect,a={left:0,top:0,bottom:0,right:0};if(t!==r){var l=getRefTarget(r,!0);if(l){var c=getClientRect(l),d=getDragDistByState(e,[c.left-s.left,c.top-s.top]),u=getDragDistByState(e,[c.right-s.right,c.bottom-s.bottom]);a.left=throttle(d[0],1e-5),a.top=throttle(d[1],1e-5),a.right=throttle(u[0],1e-5),a.bottom=throttle(u[1],1e-5)}}return e.snapContainer=r,e.snapOffset=a,e.guidelines=getTotalGuidelines(o),e.enableSnap=!0,!0}function getNextFixedPoses(o,e,t,r,s,a){var l=calculatePoses(o,e,t,a?4:3),c=getPosByDirection(l,r);return getAbsolutePoses(l,minus(s,c))}function normalized(o){return o?o/abs(o):0}function getSizeOffsetInfo(o,e,t,r,s,a){var l=a.fixedDirection,c=getCheckSnapDirections(t,l,r),d=getCheckInnerBoundLineInfos(o,e,t,r),u=__spreadArray$3(__spreadArray$3([],__read$1(getSnapBoundInfo(o,e,c,r,s,a)),!1),__read$1(getInnerBoundInfo(o,d,a)),!1),g=getNearOffsetInfo(u,0),f=getNearOffsetInfo(u,1);return{width:{isBound:g.isBound,offset:g.offset[0]},height:{isBound:f.isBound,offset:f.offset[1]}}}function recheckSizeByTwoDirection(o,e,t,r,s,a,l,c,d){var u=getPosByDirection(e,l),g=checkMoveableSnapBounds(o,c,{vertical:[u[0]],horizontal:[u[1]]}),f=g.horizontal.offset,m=g.vertical.offset;if(throttle(m,FLOAT_POINT_NUM)||throttle(f,FLOAT_POINT_NUM)){var _=__read$1(getDragDist({datas:d,distX:-m,distY:-f}),2),v=_[0],b=_[1],C=Math.min(s||1/0,t+l[0]*v),y=Math.min(a||1/0,r+l[1]*b);return[C-t,y-r]}return[0,0]}function checkSizeDist(o,e,t,r,s,a,l,c){for(var d=getAbsolutePosesByState(o.state),u=o.props.keepRatio,g=0,f=0,m=0;m<2;++m){var _=e(g,f),v=getSizeOffsetInfo(o,_,s,u,l,c),b=v.width,C=v.height,y=b.isBound,S=C.isBound,w=b.offset,E=C.offset;if(m===1&&(y||(w=0),S||(E=0)),m===0&&l&&!y&&!S)return[0,0];if(u){var x=abs(w)*(t?1/t:1),L=abs(E)*(r?1/r:1),k=y&&S?x<L:S||!y&&x<L;k?w=t*E/r:E=r*w/t}g+=w,f+=E}if(!u&&s[0]&&s[1]){var D=checkMaxBounds(o,d,s,a,c),I=D.maxWidth,T=D.maxHeight,M=__read$1(recheckSizeByTwoDirection(o,e(g,f).map(function(A){return A.map(function(O){return throttle(O,FLOAT_POINT_NUM)})}),t+g,r+f,I,T,s,l,c),2),w=M[0],E=M[1];g+=w,f+=E}return[g,f]}function absDegree(o){return o<0&&(o=o%360+360),o%=360,o}function bumpDegree(o,e){e=absDegree(e);var t=Math.floor(o/360),r=t*360+360-e,s=t*360+e;return abs(o-r)<abs(o-s)?r:s}function getMinDegreeDistance(o,e){o=absDegree(o),e=absDegree(e);var t=absDegree(o-e);return Math.min(t,360-t)}function checkSnapRotate(o,e,t,r){var s,a=o.props,l=(s=a[NAME_snapRotationThreshold])!==null&&s!==void 0?s:5,c=a[NAME_snapRotationDegrees];if(hasGuidelines(o,"rotatable")){var d=e.pos1,u=e.pos2,g=e.pos3,f=e.pos4,m=e.origin,_=t*Math.PI/180,v=[d,u,g,f].map(function(E){return minus(E,m)}),b=v.map(function(E){return rotate(E,_)}),C=__spreadArray$3(__spreadArray$3([],__read$1(checkRotateBounds(o,v,b,m,t)),!1),__read$1(checkRotateInnerBounds(o,v,b,m,t)),!1);C.sort(function(E,x){return abs(E-t)-abs(x-t)});var y=C.length>0;if(y)return{isSnap:y,dist:y?C[0]:t}}if(c!=null&&c.length&&l){var S=c.slice().sort(function(E,x){return getMinDegreeDistance(E,r)-getMinDegreeDistance(x,r)}),w=S[0];if(getMinDegreeDistance(w,r)<=l)return{isSnap:!0,dist:t+bumpDegree(r,w)-r}}return{isSnap:!1,dist:t}}function checkSnapResize(o,e,t,r,s,a,l){if(!hasGuidelines(o,"resizable"))return[0,0];var c=l.fixedDirection,d=l.nextAllMatrix,u=o.state,g=u.allMatrix,f=u.is3d;return checkSizeDist(o,function(m,_){return getNextFixedPoses(d||g,e+m,t+_,c,s,f)},e,t,r,s,a,l)}function checkSnapScale(o,e,t,r,s){if(!hasGuidelines(o,"scalable"))return[0,0];var a=s.startOffsetWidth,l=s.startOffsetHeight,c=s.fixedPosition,d=s.fixedDirection,u=s.is3d,g=checkSizeDist(o,function(f,m){return getNextFixedPoses(scaleMatrix(s,plus(e,[f/a,m/l])),a,l,d,c,u)},a,l,t,c,r,s);return[g[0]/a,g[1]/l]}function startCheckSnapDrag(o,e){e.absolutePoses=getAbsolutePosesByState(o.state)}function getSnapGuidelines(o){var e=[];return o.forEach(function(t){t.guidelineInfos.forEach(function(r){var s=r.guideline;find$1(e,function(a){return a.guideline===s})||(s.direction="",e.push({guideline:s,posInfo:t}))})}),e.map(function(t){var r=t.guideline,s=t.posInfo;return __assign$6(__assign$6({},r),{direction:s.direction})})}function addBoundGuidelines(o,e,t,r,s,a){var l=checkBoundPoses(getBounds(o,a),e,t),c=l.vertical,d=l.horizontal,u=getInitialBounds();c.forEach(function(v){v.isBound&&(v.direction==="start"&&(u.left=!0),v.direction==="end"&&(u.right=!0),r.push({type:"bounds",pos:v.pos}))}),d.forEach(function(v){v.isBound&&(v.direction==="start"&&(u.top=!0),v.direction==="end"&&(u.bottom=!0),s.push({type:"bounds",pos:v.pos}))});var g=checkInnerBoundPoses(o),f=g.boundMap,m=g.vertical,_=g.horizontal;return m.forEach(function(v){findIndex(r,function(b){var C=b.type,y=b.pos;return C==="bounds"&&y===v})>=0||r.push({type:"bounds",pos:v})}),_.forEach(function(v){findIndex(s,function(b){var C=b.type,y=b.pos;return C==="bounds"&&y===v})>=0||s.push({type:"bounds",pos:v})}),{boundMap:u,innerBoundMap:f}}var directionCondition$1=getDirectionCondition("",["resizable","scalable"]),Snappable={name:"snappable",dragRelation:"strong",props:["snappable","snapContainer","snapDirections","elementSnapDirections","snapGap","snapGridWidth","snapGridHeight","isDisplaySnapDigit","isDisplayInnerSnapDigit","isDisplayGridGuidelines","snapDigit","snapThreshold","snapRenderThreshold","snapGridAll",NAME_snapRotationThreshold,NAME_snapRotationDegrees,NAME_snapHorizontalThreshold,NAME_snapVerticalThreshold,"horizontalGuidelines","verticalGuidelines","elementGuidelines","bounds","innerBounds","snapDistFormat","maxSnapElementGuidelineDistance","maxSnapElementGapDistance"],events:["snap","bound"],css:[":host {\n--bounds-color: #d66;\n}\n.guideline {\npointer-events: none;\nz-index: 2;\n}\n.guideline.bounds {\nbackground: #d66;\nbackground: var(--bounds-color);\n}\n.guideline-group {\nposition: absolute;\ntop: 0;\nleft: 0;\n}\n.guideline-group .size-value {\nposition: absolute;\ncolor: #f55;\nfont-size: 12px;\nfont-size: calc(12px * var(--zoom));\nfont-weight: bold;\n}\n.guideline-group.horizontal .size-value {\ntransform-origin: 50% 100%;\ntransform: translateX(-50%);\nleft: 50%;\nbottom: 5px;\nbottom: calc(2px + 3px * var(--zoom));\n}\n.guideline-group.vertical .size-value {\ntransform-origin: 0% 50%;\ntop: 50%;\ntransform: translateY(-50%);\nleft: 5px;\nleft: calc(2px + 3px * var(--zoom));\n}\n.guideline.gap {\nbackground: #f55;\n}\n.size-value.gap {\ncolor: #f55;\n}\n"],render:function(o,e){var t=o.state,r=t.top,s=t.left,a=t.pos1,l=t.pos2,c=t.pos3,d=t.pos4,u=t.snapRenderInfo,g=o.props.snapRenderThreshold,f=g===void 0?1:g;if(!u||!u.render||!hasGuidelines(o,""))return watchValue(o,"boundMap",getInitialBounds(),function(ee){return JSON.stringify(ee)}),watchValue(o,"innerBoundMap",getInitialBounds(),function(ee){return JSON.stringify(ee)}),[];t.guidelines=getTotalGuidelines(o);var m=Math.min(a[0],l[0],c[0],d[0]),_=Math.min(a[1],l[1],c[1],d[1]),v=u.externalPoses||[],b=getAbsolutePosesByState(o.state),C=[],y=[],S=[],w=[],E=[],x=getRect(b),L=x.width,k=x.height,D=x.top,I=x.left,T=x.bottom,M=x.right,R={left:I,right:M,top:D,bottom:T,center:(I+M)/2,middle:(D+T)/2},N=v.length>0,A=N?getRect(v):{};if(!u.request){if(u.direction&&E.push(getSnapInfosByDirection(o,b,u.direction,f,f)),u.snap){var O=getRect(b);u.center&&(O.middle=(O.top+O.bottom)/2,O.center=(O.left+O.right)/2),E.push(checkSnaps(o,O,f,f))}N&&(u.center&&(A.middle=(A.top+A.bottom)/2,A.center=(A.left+A.right)/2),E.push(checkSnaps(o,A,f,f))),E.forEach(function(ee){var Z=ee.vertical.posInfos,J=ee.horizontal.posInfos;C.push.apply(C,__spreadArray$3([],__read$1(Z.filter(function(q){var Q=q.guidelineInfos;return Q.some(function(re){var de=re.guideline;return!de.hide})}).map(function(q){return{type:"snap",pos:q.pos}})),!1)),y.push.apply(y,__spreadArray$3([],__read$1(J.filter(function(q){var Q=q.guidelineInfos;return Q.some(function(re){var de=re.guideline;return!de.hide})}).map(function(q){return{type:"snap",pos:q.pos}})),!1)),S.push.apply(S,__spreadArray$3([],__read$1(getSnapGuidelines(Z)),!1)),w.push.apply(w,__spreadArray$3([],__read$1(getSnapGuidelines(J)),!1))})}var P=addBoundGuidelines(o,[I,M],[D,T],C,y),F=P.boundMap,B=P.innerBoundMap;N&&addBoundGuidelines(o,[A.left,A.right],[A.top,A.bottom],C,y,u.externalBounds);var H=__spreadArray$3(__spreadArray$3([],__read$1(S),!1),__read$1(w),!1),V=H.filter(function(ee){return ee.element&&!ee.gapRects}),U=H.filter(function(ee){return ee.gapRects}).sort(function(ee,Z){return ee.gap-Z.gap});triggerEvent(o,"onSnap",{guidelines:H.filter(function(ee){var Z=ee.element;return!Z}),elements:V,gaps:U},!0);var j=watchValue(o,"boundMap",F,function(ee){return JSON.stringify(ee)},getInitialBounds()),X=watchValue(o,"innerBoundMap",B,function(ee){return JSON.stringify(ee)},getInitialBounds());return(F===j||B===X)&&triggerEvent(o,"onBound",{bounds:F,innerBounds:B},!0),__spreadArray$3(__spreadArray$3(__spreadArray$3(__spreadArray$3(__spreadArray$3(__spreadArray$3([],__read$1(renderDashedGuidelines(o,V,[m,_],R,e)),!1),__read$1(renderGapGuidelines(o,U,[m,_],R,e)),!1),__read$1(renderGuidelines(o,"horizontal",w,[s,r],R,e)),!1),__read$1(renderGuidelines(o,"vertical",S,[s,r],R,e)),!1),__read$1(renderSnapPoses(o,"horizontal",y,m,r,L,0,e)),!1),__read$1(renderSnapPoses(o,"vertical",C,_,s,k,1,e)),!1)},dragStart:function(o,e){o.state.snapRenderInfo={request:e.isRequest,snap:!0,center:!0},checkSnapInfo(o)},drag:function(o){var e=o.state;checkSnapInfo(o)||(e.guidelines=getTotalGuidelines(o)),e.snapRenderInfo&&(e.snapRenderInfo.render=!0)},pinchStart:function(o){this.unset(o)},dragEnd:function(o){this.unset(o)},dragControlCondition:function(o,e){if(directionCondition$1(o,e)||dragControlCondition(o,e))return!0;if(!e.isRequest&&e.inputEvent)return hasClass(e.inputEvent.target,prefix$1("snap-control"))},dragControlStart:function(o){o.state.snapRenderInfo=null,checkSnapInfo(o)},dragControl:function(o){this.drag(o)},dragControlEnd:function(o){this.unset(o)},dragGroupStart:function(o,e){this.dragStart(o,e)},dragGroup:function(o){this.drag(o)},dragGroupEnd:function(o){this.unset(o)},dragGroupControlStart:function(o){o.state.snapRenderInfo=null,checkSnapInfo(o)},dragGroupControl:function(o){this.drag(o)},dragGroupControlEnd:function(o){this.unset(o)},unset:function(o){var e=o.state;e.enableSnap=!1,e.guidelines=[],e.snapRenderInfo=null,e.elementRects=[]}};function multiply2(o,e){return[o[0]*e[0],o[1]*e[1]]}function prefix$1(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];return prefixNames.apply(void 0,__spreadArray$3([PREFIX$1],__read$1(o),!1))}function defaultSync(o){o()}function getTransformMatrix(o){return!o||o==="none"?[1,0,0,1,0,0]:isObject$2(o)?o:parseMat(o)}function getAbsoluteMatrix(o,e,t){return multiplies(e,createOriginMatrix(t,e),o,createOriginMatrix(t.map(function(r){return-r}),e))}function measureSVGSize(o,e,t){if(e==="%"){var r=getSVGViewBox(o.ownerSVGElement);return r[t?"width":"height"]/100}return 1}function getBeforeTransformOrigin(o){var e=getTransformOrigin(getComputedStyle$1(o,":before"));return e.map(function(t,r){var s=splitUnit(t),a=s.value,l=s.unit;return a*measureSVGSize(o,l,r===0)})}function getTransformOriginArray(o){return o?o.split(" "):["0","0"]}function getTransformOrigin(o){return getTransformOriginArray(o.transformOrigin)}function getElementTransform(o){var e=getCachedStyle(o),t=e("transform");if(t&&t!=="none")return t;if("transform"in o){var r=o.transform,s=r.baseVal;if(!s)return"";var a=s.length;if(!a)return"";for(var l=[],c=function(u){var g=s[u].matrix;l.push("matrix(".concat(["a","b","c","d","e","f"].map(function(f){return g[f]}).join(", "),")"))},d=0;d<a;++d)c(d);return l.join(" ")}return""}function getOffsetInfo(o,e,t,r,s){var a,l,c=getDocumentElement(o)||getDocumentBody(o),d=!1,u,g;if(!o||t)u=o;else{var f=(a=o==null?void 0:o.assignedSlot)===null||a===void 0?void 0:a.parentElement,m=o.parentElement;f?(d=!0,g=m,u=f):u=m}for(var _=!1,v=o===e||u===e,b="relative",C=1,y=parseFloat(s==null?void 0:s("zoom"))||1,S=s==null?void 0:s("position");u&&u!==c;){e===u&&(v=!0);var w=getCachedStyle(u),E=u.tagName.toLowerCase(),x=getElementTransform(u),L=w("willChange"),k=parseFloat(w("zoom"))||1;if(b=w("position"),r&&k!==1){C=k;break}if(!t&&r&&y!==1&&S&&S!=="absolute"||E==="svg"||E==="foreignobject"||b!=="static"||x&&x!=="none"||L==="transform")break;var D=(l=o==null?void 0:o.assignedSlot)===null||l===void 0?void 0:l.parentNode,I=u.parentNode;D&&(d=!0,g=I);var T=I;if(T&&T.nodeType===11){u=T.host,_=!0,b=getCachedStyle(u)("position");break}u=T,b="relative"}return{offsetZoom:C,hasSlot:d,parentSlotElement:g,isCustomElement:_,isStatic:b==="static",isEnd:v||!u||u===c,offsetParent:u||c}}function getOffsetPosInfo(o,e){var t,r=o.tagName.toLowerCase(),s=o.offsetLeft,a=o.offsetTop,l=getCachedStyle(o),c=isUndefined$1(s),d=!c,u,g;return!d&&(r!=="svg"||o.ownerSVGElement)?(u=IS_WEBKIT605?getBeforeTransformOrigin(o):getTransformOriginArray(l("transformOrigin")).map(function(f){return parseFloat(f)}),g=u.slice(),d=!0,r==="svg"?(s=0,a=0):(t=__read$1(getSVGGraphicsOffset(o,u,o===e&&e.tagName.toLowerCase()==="g"),4),s=t[0],a=t[1],u[0]=t[2],u[1]=t[3])):(u=getTransformOriginArray(l("transformOrigin")).map(function(f){return parseFloat(f)}),g=u.slice()),{tagName:r,isSVG:c,hasOffset:d,offset:[s||0,a||0],origin:u,targetOrigin:g}}function getBodyOffset(o,e){var t=getCachedStyle(o),r=getCachedStyle(getDocumentBody(o)),s=r("position");if(!e&&(!s||s==="static"))return[0,0];var a=parseInt(r("marginLeft"),10),l=parseInt(r("marginTop"),10);return t("position")==="absolute"&&((t("top")!=="auto"||t("bottom")!=="auto")&&(l=0),(t("left")!=="auto"||t("right")!=="auto")&&(a=0)),[a,l]}function convert3DMatrixes(o){o.forEach(function(e){var t=e.matrix;t&&(e.matrix=convertDimension(t,3,4))})}function getPositionFixedInfo(o){for(var e=o.parentElement,t=!1,r=getDocumentBody(o);e;){var s=getComputedStyle$1(e).transform;if(s&&s!=="none"){t=!0;break}if(e===r)break;e=e.parentElement}return{fixedContainer:e||r,hasTransform:t}}function makeMatrixCSS(o,e){return e===void 0&&(e=o.length>9),"".concat(e?"matrix3d":"matrix","(").concat(convertMatrixtoCSS(o,!e).join(","),")")}function getSVGViewBox(o){var e=o.clientWidth,t=o.clientHeight;if(!o)return{x:0,y:0,width:0,height:0,clientWidth:e,clientHeight:t};var r=o.viewBox,s=r&&r.baseVal||{x:0,y:0,width:0,height:0};return{x:s.x,y:s.y,width:s.width||e,height:s.height||t,clientWidth:e,clientHeight:t}}function getSVGMatrix(o,e){var t,r=getSVGViewBox(o),s=r.width,a=r.height,l=r.clientWidth,c=r.clientHeight,d=l/s,u=c/a,g=o.preserveAspectRatio.baseVal,f=g.align,m=g.meetOrSlice,_=[0,0],v=[d,u],b=[0,0];if(f!==1){var C=(f-2)%3,y=Math.floor((f-2)/3);_[0]=s*C/2,_[1]=a*y/2;var S=m===2?Math.max(u,d):Math.min(d,u);v[0]=S,v[1]=S,b[0]=(l-s)/2*C,b[1]=(c-a)/2*y}var w=createScaleMatrix(v,e);return t=__read$1(b,2),w[e*(e-1)]=t[0],w[e*(e-1)+1]=t[1],getAbsoluteMatrix(w,e,_)}function getSVGGraphicsOffset(o,e,t){var r=o.tagName.toLowerCase();if(!o.getBBox||!t&&r==="g")return[0,0,0,0];var s=getCachedStyle(o),a=s("transform-box")==="fill-box",l=o.getBBox(),c=getSVGViewBox(o.ownerSVGElement),d=l.x,u=l.y;r==="foreignobject"&&!d&&!u&&(d=parseFloat(o.getAttribute("x"))||0,u=parseFloat(o.getAttribute("y"))||0);var g=d-c.x,f=u-c.y,m=a?e[0]:e[0]-g,_=a?e[1]:e[1]-f;return[g,f,m,_]}function calculatePosition(o,e,t){return calculate(o,convertPositionMatrix(e,t),t)}function calculatePoses(o,e,t,r){return[[0,0],[e,0],[0,t],[e,t]].map(function(s){return calculatePosition(o,s,r)})}function getRect(o){var e=o.map(function(u){return u[0]}),t=o.map(function(u){return u[1]}),r=Math.min.apply(Math,__spreadArray$3([],__read$1(e),!1)),s=Math.min.apply(Math,__spreadArray$3([],__read$1(t),!1)),a=Math.max.apply(Math,__spreadArray$3([],__read$1(e),!1)),l=Math.max.apply(Math,__spreadArray$3([],__read$1(t),!1)),c=a-r,d=l-s;return{left:r,top:s,right:a,bottom:l,width:c,height:d}}function calculateRect(o,e,t,r){var s=calculatePoses(o,e,t,r);return getRect(s)}function getSVGOffset(o,e,t,r,s){var a,l=o.target,c=o.origin,d=e.matrix,u=getSize(l),g=u.offsetWidth,f=u.offsetHeight,m=t.getBoundingClientRect(),_=[0,0];t===getDocumentBody(t)&&(_=getBodyOffset(l,!0));for(var v=l.getBoundingClientRect(),b=v.left-m.left+t.scrollLeft-(t.clientLeft||0)+_[0],C=v.top-m.top+t.scrollTop-(t.clientTop||0)+_[1],y=v.width,S=v.height,w=multiplies(r,s,d),E=calculateRect(w,g,f,r),x=E.left,L=E.top,k=E.width,D=E.height,I=calculatePosition(w,c,r),T=minus(I,[x,L]),M=[b+T[0]*y/k,C+T[1]*S/D],R=[0,0],N=0;++N<10;){var A=invert(s,r);a=__read$1(minus(calculatePosition(A,M,r),calculatePosition(A,I,r)),2),R[0]=a[0],R[1]=a[1];var O=multiplies(r,s,createOriginMatrix(R,r),d),P=calculateRect(O,g,f,r),F=P.left,B=P.top,H=F-b,V=B-C;if(abs(H)<2&&abs(V)<2)break;M[0]-=H,M[1]-=V}return R.map(function(U){return Math.round(U)})}function calculateMoveableClientPositions(o,e,t){var r=o.length===16,s=r?4:3,a=e.map(function(d){return calculatePosition(o,d,s)}),l=t.left,c=t.top;return a.map(function(d){return[d[0]+l,d[1]+c]})}function getDistSize(o){return Math.sqrt(o[0]*o[0]+o[1]*o[1])}function getDiagonalSize(o,e){return getDistSize([e[0]-o[0],e[1]-o[1]])}function getLineStyle(o,e,t,r){t===void 0&&(t=1),r===void 0&&(r=getRad$1(o,e));var s=getDiagonalSize(o,e);return{transform:"translateY(-50%) translate(".concat(o[0],"px, ").concat(o[1],"px) rotate(").concat(r,"rad) scaleY(").concat(t,")"),width:"".concat(s,"px")}}function getControlTransform(o,e){for(var t=[],r=2;r<arguments.length;r++)t[r-2]=arguments[r];var s=t.length,a=t.reduce(function(c,d){return c+d[0]},0)/s,l=t.reduce(function(c,d){return c+d[1]},0)/s;return{transform:"translateZ(0px) translate(".concat(a,"px, ").concat(l,"px) rotate(").concat(o,"rad) scale(").concat(e,")")}}function getProps(o,e){var t=o[e];return isObject$2(t)?__assign$6(__assign$6({},o),t):o}function getSize(o){var e=o&&!isUndefined$1(o.offsetWidth),t=0,r=0,s=0,a=0,l=0,c=0,d=0,u=0,g=0,f=0,m=0,_=0,v=1/0,b=1/0,C=1/0,y=1/0,S=0,w=0,E=!1;if(o)if(!e&&o.ownerSVGElement){var x=o.getBBox();E=!0,t=x.width,r=x.height,l=t,c=r,d=t,u=r,s=t,a=r}else{var L=getCachedStyle(o),k=o.style,D=L("boxSizing")==="border-box",I=parseFloat(L("borderLeftWidth"))||0,T=parseFloat(L("borderRightWidth"))||0,M=parseFloat(L("borderTopWidth"))||0,R=parseFloat(L("borderBottomWidth"))||0,N=parseFloat(L("paddingLeft"))||0,A=parseFloat(L("paddingRight"))||0,O=parseFloat(L("paddingTop"))||0,P=parseFloat(L("paddingBottom"))||0,F=N+A,B=O+P,H=I+T,V=M+R,U=F+H,j=B+V,X=L("position"),ee=0,Z=0;if("clientLeft"in o){var J=null;if(X==="absolute"){var q=getOffsetInfo(o,getDocumentBody(o));J=q.offsetParent}else J=o.parentElement;if(J){var Q=getCachedStyle(J);ee=parseFloat(Q("width")),Z=parseFloat(Q("height"))}}g=Math.max(F,convertUnitSize(L("minWidth"),ee)||0),f=Math.max(B,convertUnitSize(L("minHeight"),Z)||0),v=convertUnitSize(L("maxWidth"),ee),b=convertUnitSize(L("maxHeight"),Z),isNaN(v)&&(v=1/0),isNaN(b)&&(b=1/0),S=convertUnitSize(k.width,0)||0,w=convertUnitSize(k.height,0)||0,l=parseFloat(L("width"))||0,c=parseFloat(L("height"))||0,d=abs(l-S)<1?between(g,S||l,v):l,u=abs(c-w)<1?between(f,w||c,b):c,t=d,r=u,s=d,a=u,D?(C=v,y=b,m=g,_=f,d=t-U,u=r-j):(C=v+U,y=b+j,m=g+U,_=f+j,t=d+U,r=u+j),s=d+F,a=u+B}return{svg:E,offsetWidth:t,offsetHeight:r,clientWidth:s,clientHeight:a,contentWidth:d,contentHeight:u,inlineCSSWidth:S,inlineCSSHeight:w,cssWidth:l,cssHeight:c,minWidth:g,minHeight:f,maxWidth:v,maxHeight:b,minOffsetWidth:m,minOffsetHeight:_,maxOffsetWidth:C,maxOffsetHeight:y}}function getRotationRad(o,e){return getRad$1(e>0?o[0]:o[1],e>0?o[1]:o[0])}function resetClientRect(){return{left:0,top:0,width:0,height:0,right:0,bottom:0,clientLeft:0,clientTop:0,clientWidth:0,clientHeight:0,scrollWidth:0,scrollHeight:0}}function getExtendsRect(o,e){var t=o===getDocumentBody(o)||o===getDocumentElement(o),r={clientLeft:o.clientLeft,clientTop:o.clientTop,clientWidth:o.clientWidth,clientHeight:o.clientHeight,scrollWidth:o.scrollWidth,scrollHeight:o.scrollHeight,overflow:!1};return t&&(r.clientHeight=Math.max(e.height,r.clientHeight),r.scrollHeight=Math.max(e.height,r.scrollHeight)),r.overflow=getCachedStyle(o)("overflow")!=="visible",__assign$6(__assign$6({},e),r)}function getClientRectByPosition(o,e,t,r){var s=o.left,a=o.right,l=o.top,c=o.bottom,d=e.top,u=e.left,g={left:u+s,top:d+l,right:u+a,bottom:d+c,width:a-s,height:c-l};return t&&r?getExtendsRect(t,g):g}function getClientRect(o,e){var t=0,r=0,s=0,a=0;if(o){var l=o.getBoundingClientRect();t=l.left,r=l.top,s=l.width,a=l.height}var c={left:t,top:r,width:s,height:a,right:t+s,bottom:r+a};return o&&e?getExtendsRect(o,c):c}function getTotalOrigin(o){var e=o.props,t=e.groupable,r=e.svgOrigin,s=o.getState(),a=s.offsetWidth,l=s.offsetHeight,c=s.svg,d=s.transformOrigin;return!t&&c&&r?convertTransformOriginArray(r,a,l):d}function getTotalDirection(o,e,t,r){var s;if(o)s=o;else if(e)s=[0,0];else{var a=t.target;s=getDirection(a,r)}return s}function getDirection(o,e){if(o){var t=o.getAttribute("data-rotation")||"",r=o.getAttribute("data-direction");if(e.deg=t,!!r){var s=[0,0];return r.indexOf("w")>-1&&(s[0]=-1),r.indexOf("e")>-1&&(s[0]=1),r.indexOf("n")>-1&&(s[1]=-1),r.indexOf("s")>-1&&(s[1]=1),s}}}function getAbsolutePoses(o,e){return[plus(e,o[0]),plus(e,o[1]),plus(e,o[2]),plus(e,o[3])]}function getAbsolutePosesByState(o){var e=o.left,t=o.top,r=o.pos1,s=o.pos2,a=o.pos3,l=o.pos4;return getAbsolutePoses([r,s,a,l],[e,t])}function unsetAbles(o,e){o[e?"controlAbles":"targetAbles"].forEach(function(t){t.unset&&t.unset(o)})}function unsetGesto(o,e){var t=e?"controlGesto":"targetGesto",r=o[t];(r==null?void 0:r.isIdle())===!1&&unsetAbles(o,e),r==null||r.unset(),o[t]=null}function fillCSSObject(o,e){if(e){var t=getBeforeRenderableDatas(e);t.nextStyle=__assign$6(__assign$6({},t.nextStyle),o)}return{style:o,cssText:getKeys(o).map(function(r){return"".concat(decamelize(r,"-"),": ").concat(o[r],";")}).join("")}}function fillAfterTransform(o,e,t){var r=e.afterTransform||e.transform;return __assign$6(__assign$6({},fillCSSObject(__assign$6(__assign$6(__assign$6({},o.style),e.style),{transform:r}),t)),{afterTransform:r,transform:o.transform})}function fillParams(o,e,t,r){var s=e.datas;s.datas||(s.datas={});var a=__assign$6(__assign$6({},t),{target:o.state.target,clientX:e.clientX,clientY:e.clientY,inputEvent:e.inputEvent,currentTarget:o,moveable:o,datas:s.datas,isRequest:e.isRequest,isRequestChild:e.isRequestChild,isFirstDrag:!!e.isFirstDrag,isTrusted:e.isTrusted!==!1,stopAble:function(){s.isEventStart=!1},stopDrag:function(){var l;(l=e.stop)===null||l===void 0||l.call(e)}});return s.isStartEvent?r||(s.lastEvent=a):s.isStartEvent=!0,a}function fillEndParams(o,e,t){var r=e.datas,s="isDrag"in t?t.isDrag:e.isDrag;return r.datas||(r.datas={}),__assign$6(__assign$6({isDrag:s},t),{moveable:o,target:o.state.target,clientX:e.clientX,clientY:e.clientY,inputEvent:e.inputEvent,currentTarget:o,lastEvent:r.lastEvent,isDouble:e.isDouble,datas:r.datas,isFirstDrag:!!e.isFirstDrag})}function catchEvent(o,e,t){o._emitter.on(e,t)}function triggerEvent(o,e,t,r,s){return o.triggerEvent(e,t,r,s)}function getComputedStyle$1(o,e){return getWindow(o).getComputedStyle(o,e)}function filterAbles(o,e,t){var r={},s={};return o.filter(function(a){var l=a.name;if(r[l]||!e.some(function(c){return a[c]}))return!1;if(!t&&a.ableGroup){if(s[a.ableGroup])return!1;s[a.ableGroup]=!0}return r[l]=!0,!0})}function equals(o,e){return o===e||o==null&&e==null}function selectValue(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];for(var t=o.length-1,r=0;r<t;++r){var s=o[r];if(!isUndefined$1(s))return s}return o[t]}function groupBy(o,e){var t=[],r=[];return o.forEach(function(s,a){var l=e(s,a,o),c=r.indexOf(l),d=t[c]||[];c===-1&&(r.push(l),t.push(d)),d.push(s)}),t}function groupByMap(o,e){var t=[],r={};return o.forEach(function(s,a){var l=e(s,a,o),c=r[l];c||(c=[],r[l]=c,t.push(c)),c.push(s)}),t}function flat(o){return o.reduce(function(e,t){return e.concat(t)},[])}function maxOffset(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];return o.sort(function(t,r){return abs(r)-abs(t)}),o[0]}function calculateInversePosition(o,e,t){return calculate(invert(o,t),convertPositionMatrix(e,t),t)}function convertDragDist(o,e){var t,r=o.is3d,s=o.rootMatrix,a=r?4:3;return t=__read$1(calculateInversePosition(s,[e.distX,e.distY],a),2),e.distX=t[0],e.distY=t[1],e}function calculatePadding(o,e,t,r){if(!t[0]&&!t[1])return e;var s=calculatePosition(o,[normalized(t[0]||1),0],r),a=calculatePosition(o,[0,normalized(t[1]||1)],r),l=calculatePosition(o,[t[0]/getDistSize(s),t[1]/getDistSize(a)],r);return plus(e,l)}function convertCSSSize(o,e,t){return t?"".concat(o/e*100,"%"):"".concat(o,"px")}function getTinyDist(o){return abs(o)<=TINY_NUM?0:o}function getDirectionViewClassName(o){return function(e){if(!e.isDragging(o))return"";var t=getGestoData(e,o),r=t.deg;return r?prefix$1("view-control-rotation".concat(r)):""}}function getDirectionCondition(o,e){return e===void 0&&(e=[o]),function(t,r){if(r.isRequest)return e.some(function(a){return r.requestAble===a})?r.parentDirection:!1;var s=r.inputEvent.target;return hasClass(s,prefix$1("direction"))&&(!o||hasClass(s,prefix$1(o)))}}function convertTransformInfo(o,e,t){var r,s=parse(o,{"x%":function(x){return x/100*e.offsetWidth},"y%":function(x){return x/100*e.offsetHeight}}),a=o.slice(0,t<0?void 0:t),l=o.slice(0,t<0?void 0:t+1),c=o[t]||"",d=t<0?[]:o.slice(t),u=t<0?[]:o.slice(t+1),g=s.slice(0,t<0?void 0:t),f=s.slice(0,t<0?void 0:t+1),m=(r=s[t])!==null&&r!==void 0?r:parse([""])[0],_=t<0?[]:s.slice(t),v=t<0?[]:s.slice(t+1),b=m?[m]:[],C=toMat(g),y=toMat(f),S=toMat(_),w=toMat(v),E=multiply(C,S,4);return{transforms:o,beforeFunctionMatrix:C,beforeFunctionMatrix2:y,targetFunctionMatrix:toMat(b),afterFunctionMatrix:S,afterFunctionMatrix2:w,allFunctionMatrix:E,beforeFunctions:g,beforeFunctions2:f,targetFunction:b[0],afterFunctions:_,afterFunctions2:v,beforeFunctionTexts:a,beforeFunctionTexts2:l,targetFunctionText:c,afterFunctionTexts:d,afterFunctionTexts2:u}}function isArrayFormat(o){return!o||!isObject$2(o)||isNode(o)?!1:isArray$1(o)||"length"in o}function getRefTarget(o,e){return o?isNode(o)?o:isString(o)?e?document.querySelector(o):o:isFunction$1(o)?o():isWindow(o)?o:"current"in o?o.current:o:null}function getRefTargets(o,e){if(!o)return[];var t=isArrayFormat(o)?[].slice.call(o):[o];return t.reduce(function(r,s){return isString(s)&&e?__spreadArray$3(__spreadArray$3([],__read$1(r),!1),__read$1([].slice.call(document.querySelectorAll(s))),!1):(isArray$1(s)?r.push(getRefTargets(s,e)):r.push(getRefTarget(s,e)),r)},[])}function getAbsoluteRotation(o,e,t){var r=getRad$1(o,e)/Math.PI*180;return r=t>=0?r:180-r,r=r>=0?r:360+r,r}function getDragDistByState(o,e){var t=o.rootMatrix,r=o.is3d,s=r?4:3,a=invert(t,s);return r||(a=convertDimension(a,3,4)),a[12]=0,a[13]=0,a[14]=0,calculateMatrixDist(a,e)}function getSizeDistByDist(o,e,t,r,s){var a=__read$1(o,2),l=a[0],c=a[1],d=0,u=0;if(s&&l&&c){var g=getRad$1([0,0],e),f=getRad$1([0,0],r),m=getDistSize(e),_=Math.cos(g-f)*m;if(!r[0])u=_,d=u*t;else if(!r[1])d=_,u=d/t;else{var v=r[0]*l,b=r[1]*c,C=Math.atan2(v+e[0],b+e[1]),y=Math.atan2(v,b);C<0&&(C+=Math.PI*2),y<0&&(y+=Math.PI*2);var S=0;abs(C-y)<Math.PI/2||abs(C-y)>Math.PI/2*3||(y+=Math.PI),S=C-y,S>Math.PI*2?S-=Math.PI*2:S>Math.PI?S=2*Math.PI-S:S<-Math.PI&&(S=-2*Math.PI-S);var w=getDistSize([v+e[0],b+e[1]])*Math.cos(S);d=w*Math.sin(y)-v,u=w*Math.cos(y)-b,r[0]<0&&(d*=-1),r[1]<0&&(u*=-1)}}else d=r[0]*e[0],u=r[1]*e[1];return[d,u]}function getOffsetSizeDist(o,e,t,r){var s,a=t.ratio,l=t.startOffsetWidth,c=t.startOffsetHeight,d=0,u=0,g=r.distX,f=r.distY,m=r.pinchScale,_=r.parentDistance,v=r.parentDist,b=r.parentScale,C=t.fixedDirection,y=[0,1].map(function(k){return abs(o[k]-C[k])}),S=[0,1].map(function(k){var D=y[k];return D!==0&&(D=2/D),D});if(v)d=v[0],u=v[1],e&&(d?u||(u=d/a):d=u*a);else if(isNumber(m))d=(m-1)*l,u=(m-1)*c;else if(b)d=(b[0]-1)*l,u=(b[1]-1)*c;else if(_){var w=l*y[0],E=c*y[1],x=getDistSize([w,E]);d=_/x*w*S[0],u=_/x*E*S[1]}else{var L=getDragDist({datas:t,distX:g,distY:f});L=S.map(function(k,D){return L[D]*k}),s=__read$1(getSizeDistByDist([l,c],L,a,o,e),2),d=s[0],u=s[1]}return{distWidth:d,distHeight:u}}function convertTransformUnit(o,e){if(e){if(o==="left")return{x:"0%",y:"50%"};if(o==="top")return{x:"50%",y:"50%"};if(o==="center")return{x:"50%",y:"50%"};if(o==="right")return{x:"100%",y:"50%"};if(o==="bottom")return{x:"50%",y:"100%"};var t=__read$1(o.split(" "),2),r=t[0],s=t[1],a=convertTransformUnit(r||""),l=convertTransformUnit(s||""),c=__assign$6(__assign$6({},a),l),d={x:"50%",y:"50%"};return c.x&&(d.x=c.x),c.y&&(d.y=c.y),c.value&&(c.x&&!c.y&&(d.y=c.value),!c.x&&c.y&&(d.x=c.value)),d}return o==="left"?{x:"0%"}:o==="right"?{x:"100%"}:o==="top"?{y:"0%"}:o==="bottom"?{y:"100%"}:o?o==="center"?{value:"50%"}:{value:o}:{}}function convertTransformOriginArray(o,e,t){var r=convertTransformUnit(o,!0),s=r.x,a=r.y;return[convertUnitSize(s,e)||0,convertUnitSize(a,t)||0]}function rotatePosesInfo(o,e,t){var r=o.map(function(a){return minus(a,e)}),s=r.map(function(a){return rotate(a,t)});return{prev:r,next:s,result:s.map(function(a){return plus(a,e)})}}function isDeepArrayEquals(o,e){return o.length===e.length&&o.every(function(t,r){var s=e[r],a=isArray$1(t),l=isArray$1(s);return a&&l?isDeepArrayEquals(t,s):!a&&!l?t===s:!1})}function watchValue(o,e,t,r,s){var a=o._store,l=a[e];if(!(e in a))if(s!=null)a[e]=s,l=s;else return a[e]=t,t;return l===t||r(l)===r(t)?l:(a[e]=t,t)}function sign(o){return o>=0?1:-1}function abs(o){return Math.abs(o)}function countEach(o,e){return counter(o).map(function(t){return e(t)})}function getPaddingBox(o){return isNumber(o)?{top:o,left:o,right:o,bottom:o}:{left:o.left||0,top:o.top||0,right:o.right||0,bottom:o.bottom||0}}var Pinchable=makeAble("pinchable",{props:["pinchable"],events:["pinchStart","pinch","pinchEnd","pinchGroupStart","pinchGroup","pinchGroupEnd"],dragStart:function(){return!0},pinchStart:function(o,e){var t=e.datas,r=e.targets,s=e.angle,a=e.originalDatas,l=o.props,c=l.pinchable,d=l.ables;if(!c)return!1;var u="onPinch".concat(r?"Group":"","Start"),g="drag".concat(r?"Group":"","ControlStart"),f=(c===!0?o.controlAbles:d.filter(function(b){return c.indexOf(b.name)>-1})).filter(function(b){return b.canPinch&&b[g]}),m=fillParams(o,e,{});r&&(m.targets=r);var _=triggerEvent(o,u,m);t.isPinch=_!==!1,t.ables=f;var v=t.isPinch;return v?(f.forEach(function(b){if(a[b.name]=a[b.name]||{},!!b[g]){var C=__assign$6(__assign$6({},e),{datas:a[b.name],parentRotate:s,isPinch:!0});b[g](o,C)}}),o.state.snapRenderInfo={request:e.isRequest,direction:[0,0]},v):!1},pinch:function(o,e){var t=e.datas,r=e.scale,s=e.distance,a=e.originalDatas,l=e.inputEvent,c=e.targets,d=e.angle;if(t.isPinch){var u=s*(1-1/r),g=fillParams(o,e,{});c&&(g.targets=c);var f="onPinch".concat(c?"Group":"");triggerEvent(o,f,g);var m=t.ables,_="drag".concat(c?"Group":"","Control");return m.forEach(function(v){v[_]&&v[_](o,__assign$6(__assign$6({},e),{datas:a[v.name],inputEvent:l,resolveMatrix:!0,pinchScale:r,parentDistance:u,parentRotate:d,isPinch:!0}))}),g}},pinchEnd:function(o,e){var t=e.datas,r=e.isPinch,s=e.inputEvent,a=e.targets,l=e.originalDatas;if(t.isPinch){var c="onPinch".concat(a?"Group":"","End"),d=fillEndParams(o,e,{isDrag:r});a&&(d.targets=a),triggerEvent(o,c,d);var u=t.ables,g="drag".concat(a?"Group":"","ControlEnd");return u.forEach(function(f){f[g]&&f[g](o,__assign$6(__assign$6({},e),{isDrag:r,datas:l[f.name],inputEvent:s,isPinch:!0}))}),r}},pinchGroupStart:function(o,e){return this.pinchStart(o,__assign$6(__assign$6({},e),{targets:o.props.targets}))},pinchGroup:function(o,e){return this.pinch(o,__assign$6(__assign$6({},e),{targets:o.props.targets}))},pinchGroupEnd:function(o,e){return this.pinchEnd(o,__assign$6(__assign$6({},e),{targets:o.props.targets}))}}),directionCondition=getDirectionCondition("scalable"),Scalable={name:"scalable",ableGroup:"size",canPinch:!0,props:["scalable","throttleScale","renderDirections","keepRatio","edge","displayAroundControls"],events:["scaleStart","beforeScale","scale","scaleEnd","scaleGroupStart","beforeScaleGroup","scaleGroup","scaleGroupEnd"],render:getRenderDirections("scalable"),dragControlCondition:directionCondition,viewClassName:getDirectionViewClassName("scalable"),dragControlStart:function(o,e){var t=e.datas,r=e.isPinch,s=e.inputEvent,a=e.parentDirection,l=getTotalDirection(a,r,s,t),c=o.state,d=c.width,u=c.height,g=c.targetTransform,f=c.target,m=c.pos1,_=c.pos2,v=c.pos4;if(!l||!f)return!1;r||setDragStart(o,e),t.datas={},t.transform=g,t.prevDist=[1,1],t.direction=l,t.startOffsetWidth=d,t.startOffsetHeight=u,t.startValue=[1,1];var b=!l[0]&&!l[1]||l[0]||!l[1];setDefaultTransformIndex(o,e,"scale"),t.isWidth=b;function C(L){t.ratio=L&&isFinite(L)?L:0}t.startPositions=getAbsolutePosesByState(o.state);function y(L){var k=getFixedDirectionInfo(t.startPositions,L);t.fixedDirection=k.fixedDirection,t.fixedPosition=k.fixedPosition,t.fixedOffset=k.fixedOffset}t.setFixedDirection=y,C(getDist$2(m,_)/getDist$2(_,v)),y([-l[0],-l[1]]);var S=function(L){t.minScaleSize=L},w=function(L){t.maxScaleSize=L};S([-1/0,-1/0]),w([1/0,1/0]);var E=fillParams(o,e,__assign$6(__assign$6({direction:l,set:function(L){t.startValue=L},setRatio:C,setFixedDirection:y,setMinScaleSize:S,setMaxScaleSize:w},fillTransformStartEvent(o,e)),{dragStart:Draggable.dragStart(o,new CustomGesto().dragStart([0,0],e))})),x=triggerEvent(o,"onScaleStart",E);return t.startFixedDirection=t.fixedDirection,x!==!1&&(t.isScale=!0,o.state.snapRenderInfo={request:e.isRequest,direction:l}),t.isScale?E:!1},dragControl:function(o,e){resolveTransformEvent(o,e,"scale");var t=e.datas,r=e.parentKeepRatio,s=e.parentFlag,a=e.isPinch,l=e.dragClient,c=e.isRequest,d=e.useSnap,u=e.resolveMatrix,g=t.prevDist,f=t.direction,m=t.startOffsetWidth,_=t.startOffsetHeight,v=t.isScale,b=t.startValue,C=t.isWidth,y=t.ratio;if(!v)return!1;var S=o.props,w=S.throttleScale,E=S.parentMoveable,x=f;!f[0]&&!f[1]&&(x=[1,1]);var L=y&&(r!=null?r:S.keepRatio)||!1,k=o.state,D=[b[0],b[1]];function I(){var se=getOffsetSizeDist(x,L,t,e),W=se.distWidth,G=se.distHeight,Y=m?(m+W)/m:1,ie=_?(_+G)/_:1;b[0]||(D[0]=W/m),b[1]||(D[1]=G/_);var ne=(x[0]||L?Y:1)*D[0],oe=(x[1]||L?ie:1)*D[1];return ne===0&&(ne=sign(g[0])*MIN_SCALE),oe===0&&(oe=sign(g[1])*MIN_SCALE),[ne,oe]}var T=I();if(!a&&o.props.groupable){var M=k.snapRenderInfo||{},R=M.direction;isArray$1(R)&&(R[0]||R[1])&&(k.snapRenderInfo={direction:f,request:e.isRequest})}triggerEvent(o,"onBeforeScale",fillParams(o,e,{scale:T,setFixedDirection:function(se){return t.setFixedDirection(se),T=I(),T},startFixedDirection:t.startFixedDirection,setScale:function(se){T=se}},!0));var N=[T[0]/D[0],T[1]/D[1]],A=l,O=[0,0],P=sign(N[0]*N[1]),F=!l&&!s&&a;if(F||u?A=getTranslateFixedPosition(o,t.targetAllTransform,[0,0],[0,0],t):l||(A=t.fixedPosition),a||(O=checkSnapScale(o,N,f,!d&&c,t)),L){x[0]&&x[1]&&O[0]&&O[1]&&(Math.abs(O[0]*m)>Math.abs(O[1]*_)?O[1]=0:O[0]=0);var B=!O[0]&&!O[1];if(B&&(C?N[0]=throttle(N[0]*D[0],w)/D[0]:N[1]=throttle(N[1]*D[1],w)/D[1]),x[0]&&!x[1]||O[0]&&!O[1]||B&&C){N[0]+=O[0];var H=m*N[0]*D[0]/y;N[1]=sign(P*N[0])*abs(H/_/D[1])}else if(!x[0]&&x[1]||!O[0]&&O[1]||B&&!C){N[1]+=O[1];var V=_*N[1]*D[1]*y;N[0]=sign(P*N[1])*abs(V/m/D[0])}}else N[0]+=O[0],N[1]+=O[1],O[0]||(N[0]=throttle(N[0]*D[0],w)/D[0]),O[1]||(N[1]=throttle(N[1]*D[1],w)/D[1]);N[0]===0&&(N[0]=sign(g[0])*MIN_SCALE),N[1]===0&&(N[1]=sign(g[1])*MIN_SCALE),T=multiply2(N,[D[0],D[1]]);var U=[m,_],j=[m*T[0],_*T[1]];j=calculateBoundSize(j,t.minScaleSize,t.maxScaleSize,L?y:!1),T=countEach(2,function(se){return U[se]?j[se]/U[se]:j[se]}),N=countEach(2,function(se){return T[se]/D[se]});var X=countEach(2,function(se){return g[se]?N[se]/g[se]:N[se]}),ee="scale(".concat(N.join(", "),")"),Z="scale(".concat(T.join(", "),")"),J=convertTransformFormat(t,Z,ee),q=!b[0]||!b[1],Q=getScaleDist(o,q?Z:ee,t.fixedDirection,A,t.fixedOffset,t,q),re=F?Q:minus(Q,t.prevInverseDist||[0,0]);if(t.prevDist=N,t.prevInverseDist=Q,T[0]===g[0]&&T[1]===g[1]&&re.every(function(se){return!se})&&!E&&!F)return!1;var de=fillParams(o,e,__assign$6({offsetWidth:m,offsetHeight:_,direction:f,scale:T,dist:N,delta:X,isPinch:!!a},fillTransformEvent(o,J,re,a,e)));return triggerEvent(o,"onScale",de),de},dragControlEnd:function(o,e){var t=e.datas;if(!t.isScale)return!1;t.isScale=!1;var r=fillEndParams(o,e,{});return triggerEvent(o,"onScaleEnd",r),r},dragGroupControlCondition:directionCondition,dragGroupControlStart:function(o,e){var t=e.datas,r=this.dragControlStart(o,e);if(!r)return!1;var s=fillChildEvents(o,"resizable",e);t.moveableScale=o.scale;var a=triggerChildAbles(o,this,"dragControlStart",e,function(u,g){return startChildDist(o,u,t,g)}),l=function(u){r.setFixedDirection(u),a.forEach(function(g,f){g.setFixedDirection(u),startChildDist(o,g.moveable,t,s[f])})};t.setFixedDirection=l;var c=__assign$6(__assign$6({},r),{targets:o.props.targets,events:a,setFixedDirection:l}),d=triggerEvent(o,"onScaleGroupStart",c);return t.isScale=d!==!1,t.isScale?c:!1},dragGroupControl:function(o,e){var t=e.datas;if(t.isScale){catchEvent(o,"onBeforeScale",function(g){triggerEvent(o,"onBeforeScaleGroup",fillParams(o,e,__assign$6(__assign$6({},g),{targets:o.props.targets}),!0))});var r=this.dragControl(o,e);if(r){var s=r.dist,a=t.moveableScale;o.scale=[s[0]*a[0],s[1]*a[1]];var l=o.props.keepRatio,c=t.fixedPosition,d=triggerChildAbles(o,this,"dragControl",e,function(g,f){var m=__read$1(calculate(createRotateMatrix(o.rotation/180*Math.PI,3),[f.datas.originalX*s[0],f.datas.originalY*s[1],1],3),2),_=m[0],v=m[1];return __assign$6(__assign$6({},f),{parentDist:null,parentScale:s,parentKeepRatio:l,dragClient:plus(c,[_,v])})}),u=__assign$6({targets:o.props.targets,events:d},r);return triggerEvent(o,"onScaleGroup",u),u}}},dragGroupControlEnd:function(o,e){var t=e.isDrag,r=e.datas;if(r.isScale){this.dragControlEnd(o,e);var s=triggerChildAbles(o,this,"dragControlEnd",e),a=fillEndParams(o,e,{targets:o.props.targets,events:s});return triggerEvent(o,"onScaleGroupEnd",a),t}},request:function(){var o={},e=0,t=0,r=!1;return{isControl:!0,requestStart:function(s){return r=s.useSnap,{datas:o,parentDirection:s.direction||[1,1],useSnap:r}},request:function(s){return e+=s.deltaWidth,t+=s.deltaHeight,{datas:o,parentDist:[e,t],parentKeepRatio:s.keepRatio,useSnap:r}},requestEnd:function(){return{datas:o,isDrag:!0,useSnap:r}}}}};function getMiddleLinePos(o,e){return o.map(function(t,r){return dot$1(t,e[r],1,2)})}function getTriangleRad(o,e,t){var r=getRad$1(o,e),s=getRad$1(o,t),a=s-r;return a>=0?a:a+2*Math.PI}function isValidPos(o,e){var t=getTriangleRad(o[0],o[1],o[2]),r=getTriangleRad(e[0],e[1],e[2]),s=Math.PI;return!(t>=s&&r<=s||t<=s&&r>=s)}var Warpable={name:"warpable",ableGroup:"size",props:["warpable","renderDirections","edge","displayAroundControls"],events:["warpStart","warp","warpEnd"],viewClassName:getDirectionViewClassName("warpable"),render:function(o,e){var t=o.props,r=t.resizable,s=t.scalable,a=t.warpable,l=t.zoom;if(r||s||!a)return[];var c=o.state,d=c.pos1,u=c.pos2,g=c.pos3,f=c.pos4,m=getMiddleLinePos(d,u),_=getMiddleLinePos(u,d),v=getMiddleLinePos(d,g),b=getMiddleLinePos(g,d),C=getMiddleLinePos(g,f),y=getMiddleLinePos(f,g),S=getMiddleLinePos(u,f),w=getMiddleLinePos(f,u);return __spreadArray$3([e.createElement("div",{className:prefix$1("line"),key:"middeLine1",style:getLineStyle(m,C,l)}),e.createElement("div",{className:prefix$1("line"),key:"middeLine2",style:getLineStyle(_,y,l)}),e.createElement("div",{className:prefix$1("line"),key:"middeLine3",style:getLineStyle(v,S,l)}),e.createElement("div",{className:prefix$1("line"),key:"middeLine4",style:getLineStyle(b,w,l)})],__read$1(renderAllDirections(o,"warpable",e)),!1)},dragControlCondition:function(o,e){if(e.isRequest)return!1;var t=e.inputEvent.target;return hasClass(t,prefix$1("direction"))&&hasClass(t,prefix$1("warpable"))},dragControlStart:function(o,e){var t=e.datas,r=e.inputEvent,s=o.props.target,a=r.target,l=getDirection(a,t);if(!l||!s)return!1;var c=o.state,d=c.transformOrigin,u=c.is3d,g=c.targetTransform,f=c.targetMatrix,m=c.width,_=c.height,v=c.left,b=c.top;t.datas={},t.targetTransform=g,t.warpTargetMatrix=u?f:convertDimension(f,3,4),t.targetInverseMatrix=ignoreDimension(invert(t.warpTargetMatrix,4),3,4),t.direction=l,t.left=v,t.top=b,t.poses=[[0,0],[m,0],[0,_],[m,_]].map(function(S){return minus(S,d)}),t.nextPoses=t.poses.map(function(S){var w=__read$1(S,2),E=w[0],x=w[1];return calculate(t.warpTargetMatrix,[E,x,0,1],4)}),t.startValue=createIdentityMatrix(4),t.prevMatrix=createIdentityMatrix(4),t.absolutePoses=getAbsolutePosesByState(c),t.posIndexes=getPosIndexesByDirection(l),setDragStart(o,e),setDefaultTransformIndex(o,e,"matrix3d"),c.snapRenderInfo={request:e.isRequest,direction:l};var C=fillParams(o,e,__assign$6({set:function(S){t.startValue=S}},fillTransformStartEvent(o,e))),y=triggerEvent(o,"onWarpStart",C);return y!==!1&&(t.isWarp=!0),t.isWarp},dragControl:function(o,e){var t=e.datas,r=e.isRequest,s=e.distX,a=e.distY,l=t.targetInverseMatrix,c=t.prevMatrix,d=t.isWarp,u=t.startValue,g=t.poses,f=t.posIndexes,m=t.absolutePoses;if(!d)return!1;if(resolveTransformEvent(o,e,"matrix3d"),hasGuidelines(o,"warpable")){var _=f.map(function(I){return m[I]});_.length>1&&_.push([(_[0][0]+_[1][0])/2,(_[0][1]+_[1][1])/2]);var v=checkMoveableSnapBounds(o,r,{horizontal:_.map(function(I){return I[1]+a}),vertical:_.map(function(I){return I[0]+s})}),b=v.horizontal,C=v.vertical;a-=b.offset,s-=C.offset}var y=getDragDist({datas:t,distX:s,distY:a},!0),S=t.nextPoses.slice();if(f.forEach(function(I){S[I]=plus(S[I],y)}),!NEARBY_POS.every(function(I){return isValidPos(I.map(function(T){return g[T]}),I.map(function(T){return S[T]}))}))return!1;var w=createWarpMatrix(g[0],g[2],g[1],g[3],S[0],S[2],S[1],S[3]);if(!w.length)return!1;var E=multiply(l,w,4),x=getTransfromMatrix(t,E,!0),L=multiply(invert(c,4),x,4);t.prevMatrix=x;var k=multiply(u,x,4),D=convertTransformFormat(t,"matrix3d(".concat(k.join(", "),")"),"matrix3d(".concat(x.join(", "),")"));return fillOriginalTransform(e,D),triggerEvent(o,"onWarp",fillParams(o,e,__assign$6({delta:L,matrix:k,dist:x,multiply,transform:D},fillCSSObject({transform:D},e)))),!0},dragControlEnd:function(o,e){var t=e.datas,r=e.isDrag;return t.isWarp?(t.isWarp=!1,triggerEvent(o,"onWarpEnd",fillEndParams(o,e,{})),r):!1}},AREA_PIECES=prefix$1("area-pieces"),AREA_PIECE=prefix$1("area-piece"),AVOID=prefix$1("avoid"),VIEW_DRAGGING=prefix$1("view-dragging");function restoreStyle(o){var e=o.areaElement;if(e){var t=o.state,r=t.width,s=t.height;removeClass(e,AVOID),e.style.cssText+="left: 0px; top: 0px; width: ".concat(r,"px; height: ").concat(s,"px")}}function renderPieces(o){return o.createElement("div",{key:"area_pieces",className:AREA_PIECES},o.createElement("div",{className:AREA_PIECE}),o.createElement("div",{className:AREA_PIECE}),o.createElement("div",{className:AREA_PIECE}),o.createElement("div",{className:AREA_PIECE}))}var DragArea={name:"dragArea",props:["dragArea","passDragArea"],events:["click","clickGroup"],render:function(o,e){var t=o.props,r=t.target,s=t.dragArea,a=t.groupable,l=t.passDragArea,c=o.getState(),d=c.width,u=c.height,g=c.renderPoses,f=l?prefix$1("area","pass"):prefix$1("area");if(a)return[e.createElement("div",{key:"area",ref:ref(o,"areaElement"),className:f}),renderPieces(e)];if(!r||!s)return[];var m=createWarpMatrix([0,0],[d,0],[0,u],[d,u],g[0],g[1],g[2],g[3]),_=m.length?makeMatrixCSS(m,!0):"none";return[e.createElement("div",{key:"area",ref:ref(o,"areaElement"),className:f,style:{top:"0px",left:"0px",width:"".concat(d,"px"),height:"".concat(u,"px"),transformOrigin:"0 0",transform:_}}),renderPieces(e)]},dragStart:function(o,e){var t=e.datas,r=e.clientX,s=e.clientY,a=e.inputEvent;if(!a)return!1;t.isDragArea=!1;var l=o.areaElement,c=o.state,d=c.moveableClientRect,u=c.renderPoses,g=c.rootMatrix,f=c.is3d,m=d.left,_=d.top,v=getRect(u),b=v.left,C=v.top,y=v.width,S=v.height,w=f?4:3,E=__read$1(calculateInversePosition(g,[r-m,s-_],w),2),x=E[0],L=E[1];x-=b,L-=C;var k=[{left:b,top:C,width:y,height:L-10},{left:b,top:C,width:x-10,height:S},{left:b,top:C+L+10,width:y,height:S-L-10},{left:b+x+10,top:C,width:y-x-10,height:S}],D=[].slice.call(l.nextElementSibling.children);k.forEach(function(I,T){D[T].style.cssText="left: ".concat(I.left,"px;top: ").concat(I.top,"px; width: ").concat(I.width,"px; height: ").concat(I.height,"px;")}),addClass(l,AVOID),c.disableNativeEvent=!0},drag:function(o,e){var t=e.datas,r=e.inputEvent;if(this.enableNativeEvent(o),!r)return!1;t.isDragArea||(t.isDragArea=!0,restoreStyle(o))},dragEnd:function(o,e){this.enableNativeEvent(o);var t=e.inputEvent,r=e.datas;if(!t)return!1;r.isDragArea||restoreStyle(o)},dragGroupStart:function(o,e){return this.dragStart(o,e)},dragGroup:function(o,e){return this.drag(o,e)},dragGroupEnd:function(o,e){return this.dragEnd(o,e)},unset:function(o){restoreStyle(o),o.state.disableNativeEvent=!1},enableNativeEvent:function(o){var e=o.state;e.disableNativeEvent&&requestAnimationFrame$1(function(){e.disableNativeEvent=!1})}},Origin=makeAble("origin",{props:["origin","svgOrigin"],render:function(o,e){var t=o.props,r=t.zoom,s=t.svgOrigin,a=t.groupable,l=o.getState(),c=l.beforeOrigin,d=l.rotation,u=l.svg,g=l.allMatrix,f=l.is3d,m=l.left,_=l.top,v=l.offsetWidth,b=l.offsetHeight,C;if(!a&&u&&s){var y=__read$1(convertTransformOriginArray(s,v,b),2),S=y[0],w=y[1],E=f?4:3,x=calculatePosition(g,[S,w],E);C=getControlTransform(d,r,minus(x,[m,_]))}else C=getControlTransform(d,r,c);return[e.createElement("div",{className:prefix$1("control","origin"),style:C,key:"beforeOrigin"})]}});function getDefaultScrollPosition$1(o){var e=o.scrollContainer;return[e.scrollLeft,e.scrollTop]}var Scrollable={name:"scrollable",canPinch:!0,props:["scrollable","scrollContainer","scrollThreshold","scrollThrottleTime","getScrollPosition","scrollOptions"],events:["scroll","scrollGroup"],dragRelation:"strong",dragStart:function(o,e){var t=o.props,r=t.scrollContainer,s=r===void 0?o.getContainer():r,a=t.scrollOptions,l=new DragScroll$1,c=getRefTarget(s,!0);e.datas.dragScroll=l,o.state.dragScroll=l;var d=e.isControl?"controlGesto":"targetGesto",u=e.targets;l.on("scroll",function(g){var f=g.container,m=g.direction,_=fillParams(o,e,{scrollContainer:f,direction:m}),v=u?"onScrollGroup":"onScroll";u&&(_.targets=u),triggerEvent(o,v,_)}).on("move",function(g){var f=g.offsetX,m=g.offsetY,_=g.inputEvent;o[d].scrollBy(f,m,_.inputEvent,!1)}).on("scrollDrag",function(g){var f=g.next;f(o[d].getCurrentEvent())}),l.dragStart(e,__assign$6({container:c},a))},checkScroll:function(o,e){var t=e.datas.dragScroll;if(t){var r=o.props,s=r.scrollContainer,a=s===void 0?o.getContainer():s,l=r.scrollThreshold,c=l===void 0?0:l,d=r.scrollThrottleTime,u=d===void 0?0:d,g=r.getScrollPosition,f=g===void 0?getDefaultScrollPosition$1:g,m=r.scrollOptions;return t.drag(e,__assign$6({container:a,threshold:c,throttleTime:u,getScrollPosition:function(_){return f({scrollContainer:_.container,direction:_.direction})}},m)),!0}},drag:function(o,e){return this.checkScroll(o,e)},dragEnd:function(o,e){e.datas.dragScroll.dragEnd(),e.datas.dragScroll=null},dragControlStart:function(o,e){return this.dragStart(o,__assign$6(__assign$6({},e),{isControl:!0}))},dragControl:function(o,e){return this.drag(o,e)},dragControlEnd:function(o,e){return this.dragEnd(o,e)},dragGroupStart:function(o,e){return this.dragStart(o,__assign$6(__assign$6({},e),{targets:o.props.targets}))},dragGroup:function(o,e){return this.drag(o,__assign$6(__assign$6({},e),{targets:o.props.targets}))},dragGroupEnd:function(o,e){return this.dragEnd(o,__assign$6(__assign$6({},e),{targets:o.props.targets}))},dragGroupControlStart:function(o,e){return this.dragStart(o,__assign$6(__assign$6({},e),{targets:o.props.targets,isControl:!0}))},dragGroupControl:function(o,e){return this.drag(o,__assign$6(__assign$6({},e),{targets:o.props.targets}))},dragGroupControEnd:function(o,e){return this.dragEnd(o,__assign$6(__assign$6({},e),{targets:o.props.targets}))},unset:function(o){var e,t=o.state;(e=t.dragScroll)===null||e===void 0||e.dragEnd(),t.dragScroll=null}},Default={name:"",props:["target","dragTargetSelf","dragTarget","dragContainer","container","warpSelf","rootContainer","useResizeObserver","useMutationObserver","zoom","dragFocusedInput","transformOrigin","ables","className","pinchThreshold","pinchOutside","triggerAblesSimultaneously","checkInput","cspNonce","translateZ","hideDefaultLines","props","flushSync","stopPropagation","preventClickEventOnDrag","preventClickDefault","viewContainer","persistData","useAccuratePosition","firstRenderState","linePadding","controlPadding","preventDefault","preventRightClick","preventWheelClick","requestStyles"],events:["changeTargets"]},Padding=makeAble("padding",{props:["padding"],render:function(o,e){var t=o.props;if(t.dragArea)return[];var r=getPaddingBox(t.padding||{}),s=r.left,a=r.top,l=r.right,c=r.bottom,d=o.getState(),u=d.renderPoses,g=d.pos1,f=d.pos2,m=d.pos3,_=d.pos4,v=[g,f,m,_],b=[];return s>0&&b.push([0,2]),a>0&&b.push([0,1]),l>0&&b.push([1,3]),c>0&&b.push([2,3]),b.map(function(C,y){var S=__read$1(C,2),w=S[0],E=S[1],x=v[w],L=v[E],k=u[w],D=u[E],I=createWarpMatrix([0,0],[100,0],[0,100],[100,100],x,L,k,D);if(I.length)return e.createElement("div",{key:"padding".concat(y),className:prefix$1("padding"),style:{transform:makeMatrixCSS(I,!0)}})})}}),RADIUS_DIRECTIONS=["nw","ne","se","sw"];function calculateRatio(o,e){var t=o[0]+o[1],r=t>e?e/t:1;return o[0]*=r,o[1]=e-o[1]*r,o}var HORIZONTAL_RADIUS_ORDER=[1,2,5,6],VERTICAL_RADIUS_ORDER=[0,3,4,7],HORIZONTAL_RADIUS_DIRECTIONS=[1,-1,-1,1],VERTICAL_RADIUS_DIRECTIONS=[1,1,-1,-1];function getRadiusStyles(o,e,t,r,s,a,l,c){s===void 0&&(s=0),a===void 0&&(a=0),l===void 0&&(l=t),c===void 0&&(c=r);var d=[],u=!1,g=o.filter(function(m){return!m.virtual}),f=g.map(function(m){var _=m.horizontal,v=m.vertical,b=m.pos;if(v&&!u&&(u=!0,d.push("/")),u){var C=Math.max(0,v===1?b[1]-a:c-b[1]);return d.push(convertCSSSize(C,r,e)),C}else{var C=Math.max(0,_===1?b[0]-s:l-b[0]);return d.push(convertCSSSize(C,t,e)),C}});return{radiusPoses:g,styles:d,raws:f}}function getRadiusRange(o){for(var e=[0,0],t=[0,0],r=o.length,s=0;s<r;++s){var a=o[s];a.sub&&(a.horizontal&&(e[1]===0&&(e[0]=s),e[1]=s-e[0]+1,t[0]=s+1),a.vertical&&(t[1]===0&&(t[0]=s),t[1]=s-t[0]+1))}return{horizontalRange:e,verticalRange:t}}function getRadiusValues(o,e,t,r,s,a,l){var c,d,u,g;a===void 0&&(a=[0,0]),l===void 0&&(l=!1);var f=o.indexOf("/"),m=(f>-1?o.slice(0,f):o).length,_=o.slice(0,m),v=o.slice(m+1),b=_.length,C=v.length,y=C>0,S=__read$1(_,4),w=S[0],E=w===void 0?"0px":w,x=S[1],L=x===void 0?E:x,k=S[2],D=k===void 0?E:k,I=S[3],T=I===void 0?L:I,M=__read$1(v,4),R=M[0],N=R===void 0?E:R,A=M[1],O=A===void 0?y?N:L:A,P=M[2],F=P===void 0?y?N:D:P,B=M[3],H=B===void 0?y?O:T:B,V=[E,L,D,T].map(function(J){return convertUnitSize(J,e)}),U=[N,O,F,H].map(function(J){return convertUnitSize(J,t)}),j=V.slice(),X=U.slice();c=__read$1(calculateRatio([j[0],j[1]],e),2),j[0]=c[0],j[1]=c[1],d=__read$1(calculateRatio([j[3],j[2]],e),2),j[3]=d[0],j[2]=d[1],u=__read$1(calculateRatio([X[0],X[3]],t),2),X[0]=u[0],X[3]=u[1],g=__read$1(calculateRatio([X[1],X[2]],t),2),X[1]=g[0],X[2]=g[1];var ee=l?j:j.slice(0,Math.max(a[0],b)),Z=l?X:X.slice(0,Math.max(a[1],C));return __spreadArray$3(__spreadArray$3([],__read$1(ee.map(function(J,q){var Q=RADIUS_DIRECTIONS[q];return{virtual:q>=b,horizontal:HORIZONTAL_RADIUS_DIRECTIONS[q],vertical:0,pos:[r+J,s+(VERTICAL_RADIUS_DIRECTIONS[q]===-1?t:0)],sub:!0,raw:V[q],direction:Q}})),!1),__read$1(Z.map(function(J,q){var Q=RADIUS_DIRECTIONS[q];return{virtual:q>=C,horizontal:0,vertical:VERTICAL_RADIUS_DIRECTIONS[q],pos:[r+(HORIZONTAL_RADIUS_DIRECTIONS[q]===-1?e:0),s+J],sub:!0,raw:U[q],direction:Q}})),!1)}function removeRadiusPos(o,e,t,r,s){s===void 0&&(s=e.length);var a=getRadiusRange(o.slice(r)),l=a.horizontalRange,c=a.verticalRange,d=t-r,u=0;if(d===0)u=s;else if(d>0&&d<l[1])u=l[1]-d;else if(d>=c[0])u=c[0]+c[1]-d;else return;o.splice(t,u),e.splice(t,u)}function addRadiusPos(o,e,t,r,s,a,l,c,d,u,g){u===void 0&&(u=0),g===void 0&&(g=0);var f=getRadiusRange(o.slice(t)),m=f.horizontalRange,_=f.verticalRange;if(r>-1)for(var v=HORIZONTAL_RADIUS_DIRECTIONS[r]===1?a-u:c-a,b=m[1];b<=r;++b){var C=VERTICAL_RADIUS_DIRECTIONS[b]===1?g:d,y=0;if(r===b?y=a:b===0?y=u+v:HORIZONTAL_RADIUS_DIRECTIONS[b]===-1&&(y=c-(e[t][0]-u)),o.splice(t+b,0,{horizontal:HORIZONTAL_RADIUS_DIRECTIONS[b],vertical:0,pos:[y,C]}),e.splice(t+b,0,[y,C]),b===0)break}else if(s>-1){var S=VERTICAL_RADIUS_DIRECTIONS[s]===1?l-g:d-l;if(m[1]===0&&_[1]===0){var w=[u+S,g];o.push({horizontal:HORIZONTAL_RADIUS_DIRECTIONS[0],vertical:0,pos:w}),e.push(w)}for(var E=_[0],b=_[1];b<=s;++b){var y=HORIZONTAL_RADIUS_DIRECTIONS[b]===1?u:c,C=0;if(s===b?C=l:b===0?C=g+S:VERTICAL_RADIUS_DIRECTIONS[b]===1?C=e[t+E][1]:VERTICAL_RADIUS_DIRECTIONS[b]===-1&&(C=d-(e[t+E][1]-g)),o.push({horizontal:0,vertical:VERTICAL_RADIUS_DIRECTIONS[b],pos:[y,C]}),e.push([y,C]),b===0)break}}}function splitRadiusPoses(o,e){e===void 0&&(e=o.map(function(s){return s.raw}));var t=o.map(function(s,a){return s.horizontal?e[a]:null}).filter(function(s){return s!=null}),r=o.map(function(s,a){return s.vertical?e[a]:null}).filter(function(s){return s!=null});return{horizontals:t,verticals:r}}var CLIP_DIRECTIONS=[[0,-1,"n"],[1,0,"e"]],CLIP_RECT_DIRECTIONS=[[-1,-1,"nw"],[0,-1,"n"],[1,-1,"ne"],[1,0,"e"],[1,1,"se"],[0,1,"s"],[-1,1,"sw"],[-1,0,"w"]];function getClipStyles(o,e,t){var r=o.props.clipRelative,s=o.state,a=s.width,l=s.height,c=e,d=c.type,u=c.poses,g=d==="rect",f=d==="circle";if(d==="polygon")return t.map(function(L){return"".concat(convertCSSSize(L[0],a,r)," ").concat(convertCSSSize(L[1],l,r))});if(g||d==="inset"){var m=t[1][1],_=t[3][0],v=t[7][0],b=t[5][1];if(g)return[m,_,b,v].map(function(L){return"".concat(L,"px")});var C=[m,a-_,l-b,v].map(function(L,k){return convertCSSSize(L,k%2?a:l,r)});if(t.length>8){var y=__read$1(minus(t[4],t[0]),2),S=y[0],w=y[1];C.push.apply(C,__spreadArray$3(["round"],__read$1(getRadiusStyles(u.slice(8).map(function(L,k){return __assign$6(__assign$6({},L),{pos:t[k]})}),r,S,w,v,m,_,b).styles),!1))}return C}else if(f||d==="ellipse"){var E=t[0],x=convertCSSSize(abs(t[1][1]-E[1]),f?Math.sqrt((a*a+l*l)/2):l,r),C=f?[x]:[convertCSSSize(abs(t[2][0]-E[0]),a,r),x];return C.push("at",convertCSSSize(E[0],a,r),convertCSSSize(E[1],l,r)),C}}function getRectPoses(o,e,t,r){var s=[r,(r+e)/2,e],a=[o,(o+t)/2,t];return CLIP_RECT_DIRECTIONS.map(function(l){var c=__read$1(l,3),d=c[0],u=c[1],g=c[2],f=s[d+1],m=a[u+1];return{vertical:abs(u),horizontal:abs(d),direction:g,pos:[f,m]}})}function getControlSize(o){var e=[1/0,-1/0],t=[1/0,-1/0];return o.forEach(function(r){var s=r.pos;e[0]=Math.min(e[0],s[0]),e[1]=Math.max(e[1],s[0]),t[0]=Math.min(t[0],s[1]),t[1]=Math.max(t[1],s[1])}),[abs(e[1]-e[0]),abs(t[1]-t[0])]}function getClipPath(o,e,t,r,s){var a,l,c,d,u,g,f,m,_;if(o){var v=s;if(!v){var b=getCachedStyle(o),C=b("clipPath");v=C!=="none"?C:b("clip")}if(!((!v||v==="none"||v==="auto")&&(v=r,!v))){var y=splitBracket(v),S=y.prefix,w=S===void 0?v:S,E=y.value,x=E===void 0?"":E,L=w==="circle",k=" ";if(w==="polygon"){var D=splitComma(x||"0% 0%, 100% 0%, 100% 100%, 0% 100%");k=",";var I=D.map(function(ce){var ve=__read$1(ce.split(" "),2),he=ve[0],fe=ve[1];return{vertical:1,horizontal:1,pos:[convertUnitSize(he,e),convertUnitSize(fe,t)]}}),T=getMinMaxs(I.map(function(ce){return ce.pos}));return{type:w,clipText:v,poses:I,splitter:k,left:T.minX,right:T.maxX,top:T.minY,bottom:T.maxY}}else if(L||w==="ellipse"){var M="",R="",N=0,A=0,D=splitSpace(x);if(L){var O="";a=__read$1(D,4),l=a[0],O=l===void 0?"50%":l,c=a[2],M=c===void 0?"50%":c,d=a[3],R=d===void 0?"50%":d,N=convertUnitSize(O,Math.sqrt((e*e+t*t)/2)),A=N}else{var P="",F="";u=__read$1(D,5),g=u[0],P=g===void 0?"50%":g,f=u[1],F=f===void 0?"50%":f,m=u[3],M=m===void 0?"50%":m,_=u[4],R=_===void 0?"50%":_,N=convertUnitSize(P,e),A=convertUnitSize(F,t)}var B=[convertUnitSize(M,e),convertUnitSize(R,t)],I=__spreadArray$3([{vertical:1,horizontal:1,pos:B,direction:"nesw"}],__read$1(CLIP_DIRECTIONS.slice(0,L?1:2).map(function(he){return{vertical:abs(he[1]),horizontal:he[0],direction:he[2],sub:!0,pos:[B[0]+he[0]*N,B[1]+he[1]*A]}})),!1);return{type:w,clipText:v,radiusX:N,radiusY:A,left:B[0]-N,top:B[1]-A,right:B[0]+N,bottom:B[1]+A,poses:I,splitter:k}}else if(w==="inset"){var D=splitSpace(x||"0 0 0 0"),H=D.indexOf("round"),V=(H>-1?D.slice(0,H):D).length,U=D.slice(V+1),j=__read$1(D.slice(0,V),4),X=j[0],ee=j[1],Z=ee===void 0?X:ee,J=j[2],q=J===void 0?X:J,Q=j[3],re=Q===void 0?Z:Q,de=__read$1([X,q].map(function(he){return convertUnitSize(he,t)}),2),se=de[0],W=de[1],G=__read$1([re,Z].map(function(he){return convertUnitSize(he,e)}),2),Y=G[0],ie=G[1],ne=e-ie,oe=t-W,ue=getRadiusValues(U,ne-Y,oe-se,Y,se),I=__spreadArray$3(__spreadArray$3([],__read$1(getRectPoses(se,ne,oe,Y)),!1),__read$1(ue),!1);return{type:"inset",clipText:v,poses:I,top:se,left:Y,right:ne,bottom:oe,radius:U,splitter:k}}else if(w==="rect"){var D=splitComma(x||"0px, ".concat(e,"px, ").concat(t,"px, 0px"));k=",";var ae=__read$1(D.map(function(ye){var we=splitUnit(ye).value;return we}),4),le=ae[0],ie=ae[1],W=ae[2],Y=ae[3],I=getRectPoses(le,ie,W,Y);return{type:"rect",clipText:v,poses:I,top:le,right:ie,bottom:W,left:Y,values:D,splitter:k}}}}}function moveControlPos(o,e,t,r,s){var a=o[e],l=a.direction,c=a.sub,d=o.map(function(){return[0,0]}),u=l?l.split(""):[];if(r&&e<8){var g=u.filter(function(N){return N==="w"||N==="e"}),f=u.filter(function(N){return N==="n"||N==="s"}),m=g[0],_=f[0];d[e]=t;var v=__read$1(getControlSize(o),2),b=v[0],C=v[1],y=b&&C?b/C:0;if(y&&s){var S=(e+4)%8,w=o[S].pos,E=[0,0];l.indexOf("w")>-1?E[0]=-1:l.indexOf("e")>-1&&(E[0]=1),l.indexOf("n")>-1?E[1]=-1:l.indexOf("s")>-1&&(E[1]=1);var x=getSizeDistByDist([b,C],t,y,E,!0),L=b+x[0],k=C+x[1],D=w[1],I=w[1],T=w[0],M=w[0];E[0]===-1?T=M-L:E[0]===1?M=T+L:(T=T-L/2,M=M+L/2),E[1]===-1?D=I-k:(E[1]===1||(D=I-k/2),I=D+k);var R=getRectPoses(D,M,I,T);o.forEach(function(N,A){d[A][0]=R[A].pos[0]-N.pos[0],d[A][1]=R[A].pos[1]-N.pos[1]})}else o.forEach(function(N,A){var O=N.direction;O&&(O.indexOf(m)>-1&&(d[A][0]=t[0]),O.indexOf(_)>-1&&(d[A][1]=t[1]))}),m&&(d[1][0]=t[0]/2,d[5][0]=t[0]/2),_&&(d[3][1]=t[1]/2,d[7][1]=t[1]/2)}else l&&!c?u.forEach(function(N){var A=N==="n"||N==="s";o.forEach(function(O,P){var F=O.direction,B=O.horizontal,H=O.vertical;!F||F.indexOf(N)===-1||(d[P]=[A||!B?0:t[0],!A||!H?0:t[1]])})}):d[e]=t;return d}function addClipPath(o,e){var t=__read$1(calculatePointerDist(o,e),2),r=t[0],s=t[1],a=e.datas,l=a.clipPath,c=a.clipIndex,d=l,u=d.type,g=d.poses,f=d.splitter,m=g.map(function(S){return S.pos});if(u==="polygon")m.splice(c,0,[r,s]);else if(u==="inset"){var _=HORIZONTAL_RADIUS_ORDER.indexOf(c),v=VERTICAL_RADIUS_ORDER.indexOf(c),b=g.length;if(addRadiusPos(g,m,8,_,v,r,s,m[4][0],m[4][1],m[0][0],m[0][1]),b===g.length)return}else return;var C=getClipStyles(o,l,m),y="".concat(u,"(").concat(C.join(f),")");triggerEvent(o,"onClip",fillParams(o,e,__assign$6({clipEventType:"added",clipType:u,poses:m,clipStyles:C,clipStyle:y,distX:0,distY:0},fillCSSObject({clipPath:y},e))))}function removeClipPath(o,e){var t=e.datas,r=t.clipPath,s=t.clipIndex,a=r,l=a.type,c=a.poses,d=a.splitter,u=c.map(function(_){return _.pos}),g=u.length;if(l==="polygon")c.splice(s,1),u.splice(s,1);else if(l==="inset"){if(s<8||(removeRadiusPos(c,u,s,8,g),g===c.length))return}else return;var f=getClipStyles(o,r,u),m="".concat(l,"(").concat(f.join(d),")");triggerEvent(o,"onClip",fillParams(o,e,__assign$6({clipEventType:"removed",clipType:l,poses:u,clipStyles:f,clipStyle:m,distX:0,distY:0},fillCSSObject({clipPath:m},e))))}var Clippable={name:"clippable",props:["clippable","defaultClipPath","customClipPath","keepRatio","clipRelative","clipArea","dragWithClip","clipTargetBounds","clipVerticalGuidelines","clipHorizontalGuidelines","clipSnapThreshold"],events:["clipStart","clip","clipEnd"],css:[".control.clip-control {\nbackground: #6d6;\ncursor: pointer;\n}\n.control.clip-control.clip-radius {\nbackground: #d66;\n}\n.line.clip-line {\nbackground: #6e6;\ncursor: move;\nz-index: 1;\n}\n.clip-area {\nposition: absolute;\ntop: 0;\nleft: 0;\n}\n.clip-ellipse {\nposition: absolute;\ncursor: move;\nborder: 1px solid #6d6;\nborder: var(--zoompx) solid #6d6;\nborder-radius: 50%;\ntransform-origin: 0px 0px;\n}",":host {\n--bounds-color: #d66;\n}",".guideline {\npointer-events: none;\nz-index: 2;\n}",".line.guideline.bounds {\nbackground: #d66;\nbackground: var(--bounds-color);\n}"],render:function(o,e){var t=o.props,r=t.customClipPath,s=t.defaultClipPath,a=t.clipArea,l=t.zoom,c=t.groupable,d=o.getState(),u=d.target,g=d.width,f=d.height,m=d.allMatrix,_=d.is3d,v=d.left,b=d.top,C=d.pos1,y=d.pos2,S=d.pos3,w=d.pos4,E=d.clipPathState,x=d.snapBoundInfos,L=d.rotation;if(!u||c)return[];var k=getClipPath(u,g,f,s||"inset",E||r);if(!k)return[];var D=_?4:3,I=k.type,T=k.poses,M=T.map(function(ie){var ne=calculatePosition(m,ie.pos,D);return[ne[0]-v,ne[1]-b]}),R=[],N=[],A=I==="rect",O=I==="inset",P=I==="polygon";if(A||O||P){var F=O?M.slice(0,8):M;N=F.map(function(ie,ne){var oe=ne===0?F[F.length-1]:F[ne-1],ue=getRad$1(oe,ie),ae=getDiagonalSize(oe,ie);return e.createElement("div",{key:"clipLine".concat(ne),className:prefix$1("line","clip-line","snap-control"),"data-clip-index":ne,style:{width:"".concat(ae,"px"),transform:"translate(".concat(oe[0],"px, ").concat(oe[1],"px) rotate(").concat(ue,"rad) scaleY(").concat(l,")")}})})}if(R=M.map(function(ie,ne){return e.createElement("div",{key:"clipControl".concat(ne),className:prefix$1("control","clip-control","snap-control"),"data-clip-index":ne,style:{transform:"translate(".concat(ie[0],"px, ").concat(ie[1],"px) rotate(").concat(L,"rad) scale(").concat(l,")")}})}),O&&R.push.apply(R,__spreadArray$3([],__read$1(M.slice(8).map(function(ie,ne){return e.createElement("div",{key:"clipRadiusControl".concat(ne),className:prefix$1("control","clip-control","clip-radius","snap-control"),"data-clip-index":8+ne,style:{transform:"translate(".concat(ie[0],"px, ").concat(ie[1],"px) rotate(").concat(L,"rad) scale(").concat(l,")")}})})),!1)),I==="circle"||I==="ellipse"){var B=k.left,H=k.top,V=k.radiusX,U=k.radiusY,j=__read$1(minus(calculatePosition(m,[B,H],D),calculatePosition(m,[0,0],D)),2),X=j[0],ee=j[1],Z="none";if(!a){for(var J=Math.max(10,V/5,U/5),q=[],Q=0;Q<=J;++Q){var re=Math.PI*2/J*Q;q.push([V+(V-l)*Math.cos(re),U+(U-l)*Math.sin(re)])}q.push([V,-2]),q.push([-2,-2]),q.push([-2,U*2+2]),q.push([V*2+2,U*2+2]),q.push([V*2+2,-2]),q.push([V,-2]),Z="polygon(".concat(q.map(function(ie){return"".concat(ie[0],"px ").concat(ie[1],"px")}).join(", "),")")}R.push(e.createElement("div",{key:"clipEllipse",className:prefix$1("clip-ellipse","snap-control"),style:{width:"".concat(V*2,"px"),height:"".concat(U*2,"px"),clipPath:Z,transform:"translate(".concat(-v+X,"px, ").concat(-b+ee,"px) ").concat(makeMatrixCSS(m))}}))}if(a){var de=getRect(__spreadArray$3([C,y,S,w],__read$1(M),!1)),se=de.width,W=de.height,G=de.left,Y=de.top;if(P||A||O){var q=O?M.slice(0,8):M;R.push(e.createElement("div",{key:"clipArea",className:prefix$1("clip-area","snap-control"),style:{width:"".concat(se,"px"),height:"".concat(W,"px"),transform:"translate(".concat(G,"px, ").concat(Y,"px)"),clipPath:"polygon(".concat(q.map(function(ne){return"".concat(ne[0]-G,"px ").concat(ne[1]-Y,"px")}).join(", "),")")}}))}}return x&&["vertical","horizontal"].forEach(function(ie){var ne=x[ie],oe=ie==="horizontal";ne.isSnap&&N.push.apply(N,__spreadArray$3([],__read$1(ne.snap.posInfos.map(function(ue,ae){var le=ue.pos,ce=minus(calculatePosition(m,oe?[0,le]:[le,0],D),[v,b]),ve=minus(calculatePosition(m,oe?[g,le]:[le,f],D),[v,b]);return renderLine(e,"",ce,ve,l,"clip".concat(ie,"snap").concat(ae),"guideline")})),!1)),ne.isBound&&N.push.apply(N,__spreadArray$3([],__read$1(ne.bounds.map(function(ue,ae){var le=ue.pos,ce=minus(calculatePosition(m,oe?[0,le]:[le,0],D),[v,b]),ve=minus(calculatePosition(m,oe?[g,le]:[le,f],D),[v,b]);return renderLine(e,"",ce,ve,l,"clip".concat(ie,"bounds").concat(ae),"guideline","bounds","bold")})),!1))}),__spreadArray$3(__spreadArray$3([],__read$1(R),!1),__read$1(N),!1)},dragControlCondition:function(o,e){return e.inputEvent&&(e.inputEvent.target.getAttribute("class")||"").indexOf("clip")>-1},dragStart:function(o,e){var t=o.props,r=t.dragWithClip,s=r===void 0?!0:r;return s?!1:this.dragControlStart(o,e)},drag:function(o,e){return this.dragControl(o,__assign$6(__assign$6({},e),{isDragTarget:!0}))},dragEnd:function(o,e){return this.dragControlEnd(o,e)},dragControlStart:function(o,e){var t=o.state,r=o.props,s=r.defaultClipPath,a=r.customClipPath,l=t.target,c=t.width,d=t.height,u=e.inputEvent?e.inputEvent.target:null,g=u&&u.getAttribute("class")||"",f=e.datas,m=getClipPath(l,c,d,s||"inset",a);if(!m)return!1;var _=m.clipText,v=m.type,b=m.poses,C=triggerEvent(o,"onClipStart",fillParams(o,e,{clipType:v,clipStyle:_,poses:b.map(function(y){return y.pos})}));return C===!1?(f.isClipStart=!1,!1):(f.isControl=g&&g.indexOf("clip-control")>-1,f.isLine=g.indexOf("clip-line")>-1,f.isArea=g.indexOf("clip-area")>-1||g.indexOf("clip-ellipse")>-1,f.clipIndex=u?parseInt(u.getAttribute("data-clip-index"),10):-1,f.clipPath=m,f.isClipStart=!0,t.clipPathState=_,setDragStart(o,e),!0)},dragControl:function(o,e){var t,r,s,a=e.datas,l=e.originalDatas,c=e.isDragTarget;if(!a.isClipStart)return!1;var d=a,u=d.isControl,g=d.isLine,f=d.isArea,m=d.clipIndex,_=d.clipPath;if(!_)return!1;var v=getProps(o.props,"clippable"),b=v.keepRatio,C=0,y=0,S=l.draggable,w=getDragDist(e);c&&S?(t=__read$1(S.prevBeforeDist,2),C=t[0],y=t[1]):(r=__read$1(w,2),C=r[0],y=r[1]);var E=[C,y],x=o.state,L=x.width,k=x.height,D=!f&&!u&&!g,I=_.type,T=_.poses,M=_.splitter,R=T.map(function(Ee){return Ee.pos});D&&(C=-C,y=-y);var N=!u||T[m].direction==="nesw",A=I==="inset"||I==="rect",O=T.map(function(){return[0,0]});if(u&&!N){var P=T[m],F=P.horizontal,B=P.vertical,H=[C*abs(F),y*abs(B)];O=moveControlPos(T,m,H,A,b)}else N&&(O=R.map(function(){return[C,y]}));var V=R.map(function(Ee,$e){return plus(Ee,O[$e])}),U=__spreadArray$3([],__read$1(V),!1);x.snapBoundInfos=null;var j=_.type==="circle",X=_.type==="ellipse";if(j||X){var ee=getRect(V),Z=abs(ee.bottom-ee.top),J=abs(X?ee.right-ee.left:Z),q=V[0][1]+Z,Q=V[0][0]-J,re=V[0][0]+J;j&&(U.push([re,ee.bottom]),O.push([1,0])),U.push([ee.left,q]),O.push([0,1]),U.push([Q,ee.bottom]),O.push([1,0])}var de=getDefaultGuidelines((v.clipHorizontalGuidelines||[]).map(function(Ee){return convertUnitSize("".concat(Ee),k)}),(v.clipVerticalGuidelines||[]).map(function(Ee){return convertUnitSize("".concat(Ee),L)}),L,k),se=[],W=[];if(j||X)se=[U[4][0],U[2][0]],W=[U[1][1],U[3][1]];else if(A){var G=[U[0],U[2],U[4],U[6]],Y=[O[0],O[2],O[4],O[6]];se=G.filter(function(Ee,$e){return Y[$e][0]}).map(function(Ee){return Ee[0]}),W=G.filter(function(Ee,$e){return Y[$e][1]}).map(function(Ee){return Ee[1]})}else se=U.filter(function(Ee,$e){return O[$e][0]}).map(function(Ee){return Ee[0]}),W=U.filter(function(Ee,$e){return O[$e][1]}).map(function(Ee){return Ee[1]});var ie=[0,0],ne=checkSnapBounds(de,v.clipTargetBounds&&{left:0,top:0,right:L,bottom:k},se,W,5,5),oe=ne.horizontal,ue=ne.vertical,ae=oe.offset,le=ue.offset;if(oe.isBound&&(ie[1]+=ae),ue.isBound&&(ie[0]+=le),(X||j)&&O[0][0]===0&&O[0][1]===0){var ee=getRect(V),ce=ee.bottom-ee.top,ve=X?ee.right-ee.left:ce,he=ue.isBound?abs(le):ue.snapIndex===0?-le:le,fe=oe.isBound?abs(ae):oe.snapIndex===0?-ae:ae;ve-=he,ce-=fe,j&&(ce=checkSnapBoundPriority(ue,oe)>0?ce:ve,ve=ce);var pe=U[0];U[1][1]=pe[1]-ce,U[2][0]=pe[0]+ve,U[3][1]=pe[1]+ce,U[4][0]=pe[0]-ve}else if(A&&b&&u){var ye=__read$1(getControlSize(T),2),we=ye[0],xe=ye[1],Te=we&&xe?we/xe:0,Ae=T[m],Oe=Ae.direction||"",Me=U[1][1],q=U[5][1],Q=U[7][0],re=U[3][0];abs(ae)<=abs(le)?ae=sign(ae)*abs(le)/Te:le=sign(le)*abs(ae)*Te,Oe.indexOf("w")>-1?Q-=le:Oe.indexOf("e")>-1?re-=le:(Q+=le/2,re-=le/2),Oe.indexOf("n")>-1?Me-=ae:Oe.indexOf("s")>-1?q-=ae:(Me+=ae/2,q-=ae/2);var Qe=getRectPoses(Me,re,q,Q);U.forEach(function(Ni,Tr){var Re;Re=__read$1(Qe[Tr].pos,2),Ni[0]=Re[0],Ni[1]=Re[1]})}else U.forEach(function(Ee,$e){var ft=O[$e];ft[0]&&(Ee[0]-=le),ft[1]&&(Ee[1]-=ae)});var je=getClipStyles(o,_,V),Le="".concat(I,"(").concat(je.join(M),")");if(x.clipPathState=Le,j||X)se=[U[4][0],U[2][0]],W=[U[1][1],U[3][1]];else if(A){var G=[U[0],U[2],U[4],U[6]];se=G.map(function($e){return $e[0]}),W=G.map(function($e){return $e[1]})}else se=U.map(function(Ee){return Ee[0]}),W=U.map(function(Ee){return Ee[1]});if(x.snapBoundInfos=checkSnapBounds(de,v.clipTargetBounds&&{left:0,top:0,right:L,bottom:k},se,W,1,1),S){var Pe=x.is3d,yt=x.allMatrix,St=Pe?4:3,et=ie;c&&(et=[E[0]+ie[0]-w[0],E[1]+ie[1]-w[1]]),S.deltaOffset=multiply(yt,[et[0],et[1],0,0],St)}return triggerEvent(o,"onClip",fillParams(o,e,__assign$6({clipEventType:"changed",clipType:I,poses:V,clipStyle:Le,clipStyles:je,distX:C,distY:y},fillCSSObject((s={},s[I==="rect"?"clip":"clipPath"]=Le,s),e)))),!0},dragControlEnd:function(o,e){this.unset(o);var t=e.isDrag,r=e.datas,s=e.isDouble,a=r.isLine,l=r.isClipStart,c=r.isControl;return l?(triggerEvent(o,"onClipEnd",fillEndParams(o,e,{})),s&&(c?removeClipPath(o,e):a&&addClipPath(o,e)),s||t):!1},unset:function(o){o.state.clipPathState="",o.state.snapBoundInfos=null}},OriginDraggable={name:"originDraggable",props:["originDraggable","originRelative"],events:["dragOriginStart","dragOrigin","dragOriginEnd"],css:[":host[data-able-origindraggable] .control.origin {\npointer-events: auto;\n}"],dragControlCondition:function(o,e){return e.isRequest?e.requestAble==="originDraggable":hasClass(e.inputEvent.target,prefix$1("origin"))},dragControlStart:function(o,e){var t=e.datas;setDragStart(o,e);var r=fillParams(o,e,{dragStart:Draggable.dragStart(o,new CustomGesto().dragStart([0,0],e))}),s=triggerEvent(o,"onDragOriginStart",r);return t.startOrigin=o.state.transformOrigin,t.startTargetOrigin=o.state.targetOrigin,t.prevOrigin=[0,0],t.isDragOrigin=!0,s===!1?(t.isDragOrigin=!1,!1):r},dragControl:function(o,e){var t=e.datas,r=e.isPinch,s=e.isRequest;if(!t.isDragOrigin)return!1;var a=__read$1(getDragDist(e),2),l=a[0],c=a[1],d=o.state,u=d.width,g=d.height,f=d.offsetMatrix,m=d.targetMatrix,_=d.is3d,v=o.props.originRelative,b=v===void 0?!0:v,C=_?4:3,y=[l,c];if(s){var S=e.distOrigin;(S[0]||S[1])&&(y=S)}var w=plus(t.startOrigin,y),E=plus(t.startTargetOrigin,y),x=minus(y,t.prevOrigin),L=getNextMatrix(f,m,w,C),k=o.getRect(),D=getRect(calculatePoses(L,u,g,C)),I=[k.left-D.left,k.top-D.top];t.prevOrigin=y;var T=[convertCSSSize(E[0],u,b),convertCSSSize(E[1],g,b)].join(" "),M=Draggable.drag(o,setCustomDrag(e,o.state,I,!!r)),R=fillParams(o,e,__assign$6(__assign$6({width:u,height:g,origin:w,dist:y,delta:x,transformOrigin:T,drag:M},fillCSSObject({transformOrigin:T,transform:M.transform},e)),{afterTransform:M.transform}));return triggerEvent(o,"onDragOrigin",R),R},dragControlEnd:function(o,e){var t=e.datas;return t.isDragOrigin?(triggerEvent(o,"onDragOriginEnd",fillEndParams(o,e,{})),!0):!1},dragGroupControlCondition:function(o,e){return this.dragControlCondition(o,e)},dragGroupControlStart:function(o,e){var t=this.dragControlStart(o,e);return!!t},dragGroupControl:function(o,e){var t=this.dragControl(o,e);return t?(o.transformOrigin=t.transformOrigin,!0):!1},request:function(o){var e={},t=o.getRect(),r=0,s=0,a=t.transformOrigin,l=[0,0];return{isControl:!0,requestStart:function(){return{datas:e}},request:function(c){return"deltaOrigin"in c?(l[0]+=c.deltaOrigin[0],l[1]+=c.deltaOrigin[1]):"origin"in c?(l[0]=c.origin[0]-a[0],l[1]=c.origin[1]-a[1]):("x"in c?r=c.x-t.left:"deltaX"in c&&(r+=c.deltaX),"y"in c?s=c.y-t.top:"deltaY"in c&&(s+=c.deltaY)),{datas:e,distX:r,distY:s,distOrigin:l}},requestEnd:function(){return{datas:e,isDrag:!0}}}}};function addBorderRadiusByLine(o,e,t,r){var s=o.filter(function(d){var u=d.virtual,g=d.horizontal;return g&&!u}).length,a=o.filter(function(d){var u=d.virtual,g=d.vertical;return g&&!u}).length,l=-1;if(e===0&&(s===0?l=0:s===1&&(l=1)),e===2&&(s<=2?l=2:s<=3&&(l=3)),e===3&&(a===0?l=4:a<4&&(l=7)),e===1&&(a<=1?l=5:a<=2&&(l=6)),!(l===-1||!o[l].virtual)){var c=o[l];addBorderRadius(o,l),l<4?c.pos[0]=t:c.pos[1]=r}}function addBorderRadius(o,e){e<4?o.slice(0,e+1).forEach(function(t){t.virtual=!1}):(o[0].virtual&&(o[0].virtual=!1),o.slice(4,e+1).forEach(function(t){t.virtual=!1}))}function removeBorderRadius(o,e){e<4?o.slice(e,4).forEach(function(t){t.virtual=!0}):o.slice(e).forEach(function(t){t.virtual=!0})}function getBorderRadius(o,e,t,r,s){r===void 0&&(r=[0,0]);var a=[];return!o||o==="0px"?a=[]:a=splitSpace(o),getRadiusValues(a,e,t,0,0,r,s)}function triggerRoundEvent(o,e,t,r,s){var a=o.state,l=a.width,c=a.height,d=getRadiusStyles(s,o.props.roundRelative,l,c),u=d.raws,g=d.styles,f=d.radiusPoses,m=splitRadiusPoses(f,u),_=m.horizontals,v=m.verticals,b=g.join(" ");a.borderRadiusState=b;var C=fillParams(o,e,__assign$6({horizontals:_,verticals:v,borderRadius:b,width:l,height:c,delta:r,dist:t},fillCSSObject({borderRadius:b},e)));return triggerEvent(o,"onRound",C),C}function getStyleBorderRadius(o){var e,t,r=o.getState().style,s=r.borderRadius||"";if(!s&&o.props.groupable){var a=o.moveables[0],l=o.getTargets()[0];l&&((a==null?void 0:a.props.target)===l?(s=(t=(e=o.moveables[0])===null||e===void 0?void 0:e.state.style.borderRadius)!==null&&t!==void 0?t:"",r.borderRadius=s):(s=getComputedStyle$1(l).borderRadius,r.borderRadius=s))}return s}var Roundable={name:"roundable",props:["roundable","roundRelative","minRoundControls","maxRoundControls","roundClickable","roundPadding","isDisplayShadowRoundControls"],events:["roundStart","round","roundEnd","roundGroupStart","roundGroup","roundGroupEnd"],css:[".control.border-radius {\nbackground: #d66;\ncursor: pointer;\nz-index: 3;\n}",".control.border-radius.vertical {\nbackground: #d6d;\nz-index: 2;\n}",".control.border-radius.virtual {\nopacity: 0.5;\nz-index: 1;\n}",":host.round-line-clickable .line.direction {\ncursor: pointer;\n}"],className:function(o){var e=o.props.roundClickable;return e===!0||e==="line"?prefix$1("round-line-clickable"):""},requestStyle:function(){return["borderRadius"]},requestChildStyle:function(){return["borderRadius"]},render:function(o,e){var t=o.getState(),r=t.target,s=t.width,a=t.height,l=t.allMatrix,c=t.is3d,d=t.left,u=t.top,g=t.borderRadiusState,f=o.props,m=f.minRoundControls,_=m===void 0?[0,0]:m,v=f.maxRoundControls,b=v===void 0?[4,4]:v,C=f.zoom,y=f.roundPadding,S=y===void 0?0:y,w=f.isDisplayShadowRoundControls,E=f.groupable;if(!r)return null;var x=g||getStyleBorderRadius(o),L=c?4:3,k=getBorderRadius(x,s,a,_,!0);if(!k)return null;var D=0,I=0,T=E?[0,0]:[d,u];return k.map(function(M,R){var N=M.horizontal,A=M.vertical,O=M.direction||"",P=__spreadArray$3([],__read$1(M.pos),!1);I+=Math.abs(N),D+=Math.abs(A),N&&O.indexOf("n")>-1&&(P[1]-=S),A&&O.indexOf("w")>-1&&(P[0]-=S),N&&O.indexOf("s")>-1&&(P[1]+=S),A&&O.indexOf("e")>-1&&(P[0]+=S);var F=minus(calculatePosition(l,P,L),T),B=w&&w!=="horizontal",H=M.vertical?D<=b[1]&&(B||!M.virtual):I<=b[0]&&(w||!M.virtual);return e.createElement("div",{key:"borderRadiusControl".concat(R),className:prefix$1("control","border-radius",M.vertical?"vertical":"",M.virtual?"virtual":""),"data-radius-index":R,style:{display:H?"block":"none",transform:"translate(".concat(F[0],"px, ").concat(F[1],"px) scale(").concat(C,")")}})})},dragControlCondition:function(o,e){if(!e.inputEvent||e.isRequest)return!1;var t=e.inputEvent.target.getAttribute("class")||"";return t.indexOf("border-radius")>-1||t.indexOf("moveable-line")>-1&&t.indexOf("moveable-direction")>-1},dragGroupControlCondition:function(o,e){return this.dragControlCondition(o,e)},dragControlStart:function(o,e){var t=e.inputEvent,r=e.datas,s=t.target,a=s.getAttribute("class")||"",l=a.indexOf("border-radius")>-1,c=a.indexOf("moveable-line")>-1&&a.indexOf("moveable-direction")>-1,d=l?parseInt(s.getAttribute("data-radius-index"),10):-1,u=-1;if(c){var g=s.getAttribute("data-line-key")||"";g&&(u=parseInt(g.replace(/render-line-/g,""),10),isNaN(u)&&(u=-1))}if(!l&&!c)return!1;var f=fillParams(o,e,{}),m=triggerEvent(o,"onRoundStart",f);if(m===!1)return!1;r.lineIndex=u,r.controlIndex=d,r.isControl=l,r.isLine=c,setDragStart(o,e);var _=o.props,v=_.roundRelative,b=_.minRoundControls,C=b===void 0?[0,0]:b,y=o.state,S=y.width,w=y.height;r.isRound=!0,r.prevDist=[0,0];var E=getStyleBorderRadius(o),x=getBorderRadius(E||"",S,w,C,!0)||[];return r.controlPoses=x,y.borderRadiusState=getRadiusStyles(x,v,S,w).styles.join(" "),f},dragControl:function(o,e){var t=e.datas,r=t.controlPoses;if(!t.isRound||!t.isControl||!r.length)return!1;var s=t.controlIndex,a=__read$1(getDragDist(e),2),l=a[0],c=a[1],d=[l,c],u=minus(d,t.prevDist),g=o.props.maxRoundControls,f=g===void 0?[4,4]:g,m=o.state,_=m.width,v=m.height,b=r[s],C=b.vertical,y=b.horizontal,S=r.map(function(E){var x=E.horizontal,L=E.vertical,k=[x*y*d[0],L*C*d[1]];if(x){if(f[0]===1)return k;if(f[0]<4&&x!==y)return k}else{if(f[1]===0)return k[1]=L*y*d[0]/_*v,k;if(C){if(f[1]===1)return k;if(f[1]<4&&L!==C)return k}}return[0,0]});S[s]=d;var w=r.map(function(E,x){return __assign$6(__assign$6({},E),{pos:plus(E.pos,S[x])})});return s<4?w.slice(0,s+1).forEach(function(E){E.virtual=!1}):w.slice(4,s+1).forEach(function(E){E.virtual=!1}),t.prevDist=[l,c],triggerRoundEvent(o,e,d,u,w)},dragControlEnd:function(o,e){var t=o.state;t.borderRadiusState="";var r=e.datas,s=e.isDouble;if(!r.isRound)return!1;var a=r.isControl,l=r.controlIndex,c=r.isLine,d=r.lineIndex,u=r.controlPoses,g=u.filter(function(y){var S=y.virtual;return S}).length,f=o.props.roundClickable,m=f===void 0?!0:f;if(s&&m){if(a&&(m===!0||m==="control"))removeBorderRadius(u,l);else if(c&&(m===!0||m==="line")){var _=__read$1(calculatePointerDist(o,e),2),v=_[0],b=_[1];addBorderRadiusByLine(u,d,v,b)}g!==u.filter(function(y){var S=y.virtual;return S}).length&&triggerRoundEvent(o,e,[0,0],[0,0],u)}var C=fillEndParams(o,e,{});return triggerEvent(o,"onRoundEnd",C),t.borderRadiusState="",C},dragGroupControlStart:function(o,e){var t=this.dragControlStart(o,e);if(!t)return!1;var r=o.moveables,s=o.props.targets,a=fillChildEvents(o,"roundable",e),l=__assign$6({targets:o.props.targets,events:a.map(function(c,d){return __assign$6(__assign$6({},c),{target:s[d],moveable:r[d],currentTarget:r[d]})})},t);return triggerEvent(o,"onRoundGroupStart",l),t},dragGroupControl:function(o,e){var t=this.dragControl(o,e);if(!t)return!1;var r=o.moveables,s=o.props.targets,a=fillChildEvents(o,"roundable",e),l=__assign$6({targets:o.props.targets,events:a.map(function(c,d){return __assign$6(__assign$6(__assign$6({},c),{target:s[d],moveable:r[d],currentTarget:r[d]}),fillCSSObject({borderRadius:t.borderRadius},c))})},t);return triggerEvent(o,"onRoundGroup",l),l},dragGroupControlEnd:function(o,e){var t=o.moveables,r=o.props.targets,s=fillChildEvents(o,"roundable",e);catchEvent(o,"onRound",function(c){var d=__assign$6({targets:o.props.targets,events:s.map(function(u,g){return __assign$6(__assign$6(__assign$6({},u),{target:r[g],moveable:t[g],currentTarget:t[g]}),fillCSSObject({borderRadius:c.borderRadius},u))})},c);triggerEvent(o,"onRoundGroup",d)});var a=this.dragControlEnd(o,e);if(!a)return!1;var l=__assign$6({targets:o.props.targets,events:s.map(function(c,d){var u;return __assign$6(__assign$6({},c),{target:r[d],moveable:t[d],currentTarget:t[d],lastEvent:(u=c.datas)===null||u===void 0?void 0:u.lastEvent})})},a);return triggerEvent(o,"onRoundGroupEnd",l),l},unset:function(o){o.state.borderRadiusState=""}};function isIdentityMatrix(o,e){var t=e?4:3,r=createIdentityMatrix(t),s="matrix".concat(e?"3d":"","(").concat(r.join(","),")");return o===s||o==="matrix(1,0,0,1,0,0)"}var BeforeRenderable={isPinch:!0,name:"beforeRenderable",props:[],events:["beforeRenderStart","beforeRender","beforeRenderEnd","beforeRenderGroupStart","beforeRenderGroup","beforeRenderGroupEnd"],dragRelation:"weak",setTransform:function(o,e){var t=o.state,r=t.is3d,s=t.targetMatrix,a=t.inlineTransform,l=r?"matrix3d(".concat(s.join(","),")"):"matrix(".concat(convertMatrixtoCSS(s,!0),")"),c=!a||a==="none"?l:a;e.datas.startTransforms=isIdentityMatrix(c,r)?[]:splitSpace(c)},resetStyle:function(o){var e=o.datas;e.nextStyle={},e.nextTransforms=o.datas.startTransforms,e.nextTransformAppendedIndexes=[]},fillDragStartParams:function(o,e){return fillParams(o,e,{setTransform:function(t){e.datas.startTransforms=isArray$1(t)?t:splitSpace(t)},isPinch:!!e.isPinch})},fillDragParams:function(o,e){return fillParams(o,e,{isPinch:!!e.isPinch})},dragStart:function(o,e){this.setTransform(o,e),this.resetStyle(e),triggerEvent(o,"onBeforeRenderStart",this.fillDragStartParams(o,e))},drag:function(o,e){e.datas.startTransforms||this.setTransform(o,e),this.resetStyle(e),triggerEvent(o,"onBeforeRender",fillParams(o,e,{isPinch:!!e.isPinch}))},dragEnd:function(o,e){e.datas.startTransforms||(this.setTransform(o,e),this.resetStyle(e)),triggerEvent(o,"onBeforeRenderEnd",fillParams(o,e,{isPinch:!!e.isPinch,isDrag:e.isDrag}))},dragGroupStart:function(o,e){var t=this;this.dragStart(o,e);var r=fillChildEvents(o,"beforeRenderable",e),s=o.moveables,a=r.map(function(l,c){var d=s[c];return t.setTransform(d,l),t.resetStyle(l),t.fillDragStartParams(d,l)});triggerEvent(o,"onBeforeRenderGroupStart",fillParams(o,e,{isPinch:!!e.isPinch,targets:o.props.targets,setTransform:function(){},events:a}))},dragGroup:function(o,e){var t=this;this.drag(o,e);var r=fillChildEvents(o,"beforeRenderable",e),s=o.moveables,a=r.map(function(l,c){var d=s[c];return t.resetStyle(l),t.fillDragParams(d,l)});triggerEvent(o,"onBeforeRenderGroup",fillParams(o,e,{isPinch:!!e.isPinch,targets:o.props.targets,events:a}))},dragGroupEnd:function(o,e){this.dragEnd(o,e),triggerEvent(o,"onBeforeRenderGroupEnd",fillParams(o,e,{isPinch:!!e.isPinch,isDrag:e.isDrag,targets:o.props.targets}))},dragControlStart:function(o,e){return this.dragStart(o,e)},dragControl:function(o,e){return this.drag(o,e)},dragControlEnd:function(o,e){return this.dragEnd(o,e)},dragGroupControlStart:function(o,e){return this.dragGroupStart(o,e)},dragGroupControl:function(o,e){return this.dragGroup(o,e)},dragGroupControlEnd:function(o,e){return this.dragGroupEnd(o,e)}},Renderable={name:"renderable",props:[],events:["renderStart","render","renderEnd","renderGroupStart","renderGroup","renderGroupEnd"],dragRelation:"weak",dragStart:function(o,e){triggerEvent(o,"onRenderStart",fillParams(o,e,{isPinch:!!e.isPinch}))},drag:function(o,e){triggerEvent(o,"onRender",this.fillDragParams(o,e))},dragAfter:function(o,e){return this.drag(o,e)},dragEnd:function(o,e){triggerEvent(o,"onRenderEnd",this.fillDragEndParams(o,e))},dragGroupStart:function(o,e){triggerEvent(o,"onRenderGroupStart",fillParams(o,e,{isPinch:!!e.isPinch,targets:o.props.targets}))},dragGroup:function(o,e){var t=this,r=fillChildEvents(o,"beforeRenderable",e),s=o.moveables,a=r.map(function(l,c){var d=s[c];return t.fillDragParams(d,l)});triggerEvent(o,"onRenderGroup",fillParams(o,e,__assign$6(__assign$6({isPinch:!!e.isPinch,targets:o.props.targets,transform:getNextTransformText(e),transformObject:{}},fillCSSObject(getNextStyle(e))),{events:a})))},dragGroupEnd:function(o,e){var t=this,r=fillChildEvents(o,"beforeRenderable",e),s=o.moveables,a=r.map(function(l,c){var d=s[c];return t.fillDragEndParams(d,l)});triggerEvent(o,"onRenderGroupEnd",fillParams(o,e,__assign$6({isPinch:!!e.isPinch,isDrag:e.isDrag,targets:o.props.targets,events:a,transformObject:{},transform:getNextTransformText(e)},fillCSSObject(getNextStyle(e)))))},dragControlStart:function(o,e){return this.dragStart(o,e)},dragControl:function(o,e){return this.drag(o,e)},dragControlAfter:function(o,e){return this.dragAfter(o,e)},dragControlEnd:function(o,e){return this.dragEnd(o,e)},dragGroupControlStart:function(o,e){return this.dragGroupStart(o,e)},dragGroupControl:function(o,e){return this.dragGroup(o,e)},dragGroupControlEnd:function(o,e){return this.dragGroupEnd(o,e)},fillDragParams:function(o,e){var t={};return parse(getNextTransforms(e)||[]).forEach(function(r){t[r.name]=r.functionValue}),fillParams(o,e,__assign$6({isPinch:!!e.isPinch,transformObject:t,transform:getNextTransformText(e)},fillCSSObject(getNextStyle(e))))},fillDragEndParams:function(o,e){var t={};return parse(getNextTransforms(e)||[]).forEach(function(r){t[r.name]=r.functionValue}),fillParams(o,e,__assign$6({isPinch:!!e.isPinch,isDrag:e.isDrag,transformObject:t,transform:getNextTransformText(e)},fillCSSObject(getNextStyle(e))))}};function triggerAble(o,e,t,r,s,a,l){a.clientDistX=a.distX,a.clientDistY=a.distY;var c=s==="Start",d=s==="End",u=s==="After",g=o.state.target,f=a.isRequest,m=r.indexOf("Control")>-1;if(!g||c&&m&&!f&&o.areaElement===a.inputEvent.target)return!1;var _=__spreadArray$3([],__read$1(e),!1);if(f){var v=a.requestAble;_.some(function(R){return R.name===v})||_.push.apply(_,__spreadArray$3([],__read$1(o.props.ables.filter(function(R){return R.name===v})),!1))}if(!_.length||_.every(function(R){return R.dragRelation}))return!1;var b=a.inputEvent,C;d&&b&&(C=document.elementFromPoint(a.clientX,a.clientY)||b.target);var y=!1,S=function(){var R;y=!0,(R=a.stop)===null||R===void 0||R.call(a)},w=c&&(!o.targetGesto||!o.controlGesto||!o.targetGesto.isFlag()||!o.controlGesto.isFlag());w&&o.updateRect(s,!0,!1);var E=a.datas,x=m?"controlGesto":"targetGesto",L=o[x],k=function(R,N,A){if(!(N in R)||L!==o[x])return!1;var O=R.name,P=E[O]||(E[O]={});if(c&&(P.isEventStart=!A||!R[A]||R[A](o,a)),!P.isEventStart)return!1;var F=R[N](o,__assign$6(__assign$6({},a),{stop:S,datas:P,originalDatas:E,inputTarget:C}));return o._emitter.off(),c&&F===!1&&(P.isEventStart=!1),F};w&&_.forEach(function(R){R.unset&&R.unset(o)}),k(BeforeRenderable,"drag".concat(r).concat(s));var D=0,I=0;t.forEach(function(R){if(y)return!1;var N="".concat(R).concat(r).concat(s),A="".concat(R).concat(r,"Condition");s===""&&!f&&convertDragDist(o.state,a);var O=_.filter(function(B){return B[N]});O=O.filter(function(B,H){return B.name&&O.indexOf(B)===H});var P=O.filter(function(B){return k(B,N,A)}),F=P.length;y&&++D,F&&++I,!y&&c&&O.length&&!F&&(D+=O.filter(function(B){var H=B.name,V=E[H];return V.isEventStart?B.dragRelation!=="strong":!1}).length?1:0)}),(!u||I)&&k(Renderable,"drag".concat(r).concat(s));var T=L!==o[x]||D===t.length;if((d||y||T)&&(o.state.gestos={},o.moveables&&o.moveables.forEach(function(R){R.state.gestos={}}),_.forEach(function(R){R.unset&&R.unset(o)})),c&&!T&&!f&&I&&o.props.preventDefault&&(a==null||a.preventDefault()),o.isUnmounted||T)return!1;if(!c&&I&&!l||d){var M=o.props.flushSync||defaultSync;M(function(){o.updateRect(d?s:"",!0,!1),o.forceUpdate()})}return!c&&!d&&!u&&I&&!l&&triggerAble(o,e,t,r,s+"After",a),!0}function checkMoveableTarget(o,e){return function(t,r){var s;r===void 0&&(r=t.inputEvent.target);var a=r,l=o.areaElement,c=o._dragTarget;return!c||!e&&(!((s=o.controlGesto)===null||s===void 0)&&s.isFlag())?!1:a===c||c.contains(a)||a===l||!o.isMoveableElement(a)&&!o.controlBox.contains(a)||hasClass(a,"moveable-area")||hasClass(a,"moveable-padding")||hasClass(a,"moveable-edgeDraggable")}}function getTargetAbleGesto(o,e,t){var r=o.controlBox,s=[],a=o.props,l=a.dragArea,c=o.state.target,d=a.dragTarget;s.push(r),(!l||d)&&s.push(e),!l&&d&&c&&e!==c&&a.dragTargetSelf&&s.push(c);var u=checkMoveableTarget(o);return getAbleGesto(o,s,"targetAbles",t,{dragStart:u,pinchStart:u})}function getControlAbleGesto(o,e){var t=o.controlBox,r=[];r.push(t);var s=checkMoveableTarget(o,!0),a=function(l,c){if(c===void 0&&(c=l.inputEvent.target),c===t)return!0;var d=s(l,c);return!d};return getAbleGesto(o,r,"controlAbles",e,{dragStart:a,pinchStart:a})}function getAbleGesto(o,e,t,r,s){s===void 0&&(s={});var a=t==="targetAbles",l=o.props,c=l.pinchOutside,d=l.pinchThreshold,u=l.preventClickEventOnDrag,g=l.preventClickDefault,f=l.checkInput,m=l.dragFocusedInput,_=l.preventDefault,v=_===void 0?!0:_,b=l.preventRightClick,C=b===void 0?!0:b,y=l.preventWheelClick,S=y===void 0?!0:y,w=l.dragContainer,E=getRefTarget(w,!0),x={preventDefault:v,preventRightClick:C,preventWheelClick:S,container:E||getWindow(o.getControlBoxElement()),pinchThreshold:d,pinchOutside:c,preventClickEventOnDrag:a?u:!1,preventClickEventOnDragStart:a?g:!1,preventClickEventByCondition:a?null:function(D){return o.controlBox.contains(D.target)},checkInput:a?f:!1,dragFocusedInput:m},L=new Gesto(e,x),k=r==="Control";return["drag","pinch"].forEach(function(D){["Start","","End"].forEach(function(I){L.on("".concat(D).concat(I),function(T){var M,R=T.eventType,N=D==="drag"&&T.isPinch;if(s[R]&&!s[R](T)){T.stop();return}if(!N){var A=D==="drag"?[D]:["drag",D],O=__spreadArray$3([],__read$1(o[t]),!1),P=triggerAble(o,O,A,r,I,T);P?(o.props.stopPropagation||I==="Start"&&k)&&((M=T==null?void 0:T.inputEvent)===null||M===void 0||M.stopPropagation()):T.stop()}})})}),L}var EventManager=(function(){function o(e,t,r){var s=this;this.target=e,this.moveable=t,this.eventName=r,this.ables=[],this._onEvent=function(a){var l=s.eventName,c=s.moveable;c.state.disableNativeEvent||s.ables.forEach(function(d){d[l](c,{inputEvent:a})})},e.addEventListener(r.toLowerCase(),this._onEvent)}return o.prototype.setAbles=function(e){this.ables=e},o.prototype.destroy=function(){this.target.removeEventListener(this.eventName.toLowerCase(),this._onEvent),this.target=null,this.moveable=null},o})();function calculateMatrixStack(o,e,t,r){var s;t===void 0&&(t=e);var a=getMatrixStackInfo(o,e),l=a.matrixes,c=a.is3d,d=a.targetMatrix,u=a.transformOrigin,g=a.targetOrigin,f=a.offsetContainer,m=a.hasFixed,_=a.zoom,v=getCachedMatrixContainerInfo(f,t),b=v.matrixes,C=v.is3d,y=v.offsetContainer,S=v.zoom,w=r,E=4,x=o.tagName.toLowerCase()!=="svg"&&"ownerSVGElement"in o,L=d,k=createIdentityMatrix(E),D=createIdentityMatrix(E),I=createIdentityMatrix(E),T=createIdentityMatrix(E),M=l.length,R=b.map(function(H){return __assign$6(__assign$6({},H),{matrix:H.matrix?__spreadArray$3([],__read$1(H.matrix),!1):void 0})}).reverse();l.reverse(),!c&&w&&(L=convertDimension(L,3,4),convert3DMatrixes(l)),!C&&w&&convert3DMatrixes(R),R.forEach(function(H){D=multiply(D,H.matrix,E)});var N=t||getDocumentBody(o),A=((s=R[0])===null||s===void 0?void 0:s.target)||getOffsetInfo(N,N,!0).offsetParent,O=R.slice(1).reduce(function(H,V){return multiply(H,V.matrix,E)},createIdentityMatrix(E));l.forEach(function(H,V){if(M-2===V&&(I=k.slice()),M-1===V&&(T=k.slice()),!H.matrix){var U=l[V+1],j=getSVGOffset(H,U,A,E,multiply(O,k,E));H.matrix=createOriginMatrix(j,E)}k=multiply(k,H.matrix,E)});var P=!x&&c;L||(L=createIdentityMatrix(P?4:3));var F=makeMatrixCSS(x&&L.length===16?convertDimension(L,4,3):L,P),B=D;return D=ignoreDimension(D,E,E),{hasZoom:_!==1||S!==1,hasFixed:m,matrixes:l,rootMatrix:D,originalRootMatrix:B,beforeMatrix:I,offsetMatrix:T,allMatrix:k,targetMatrix:L,targetTransform:F,inlineTransform:o.style.transform,transformOrigin:u,targetOrigin:g,is3d:w,offsetContainer:f,offsetRootContainer:y}}function calculateElementInfo(o,e,t,r){t===void 0&&(t=e);var s=0,a=0,l=0,c={},d=getSize(o);if(o&&(s=d.offsetWidth,a=d.offsetHeight),o){var u=calculateMatrixStack(o,e,t,r),g=calculateElementPosition(u.allMatrix,u.transformOrigin,s,a);c=__assign$6(__assign$6({},u),g);var f=calculateElementPosition(u.allMatrix,[50,50],100,100);l=getRotationRad([f.pos1,f.pos2],f.direction)}var m=4;return __assign$6(__assign$6(__assign$6({hasZoom:!1,width:s,height:a,rotation:l},d),{originalRootMatrix:createIdentityMatrix(m),rootMatrix:createIdentityMatrix(m),beforeMatrix:createIdentityMatrix(m),offsetMatrix:createIdentityMatrix(m),allMatrix:createIdentityMatrix(m),targetMatrix:createIdentityMatrix(m),targetTransform:"",inlineTransform:"",transformOrigin:[0,0],targetOrigin:[0,0],is3d:!0,left:0,top:0,right:0,bottom:0,origin:[0,0],pos1:[0,0],pos2:[0,0],pos3:[0,0],pos4:[0,0],direction:1,hasFixed:!1,offsetContainer:null,offsetRootContainer:null,matrixes:[]}),c)}function getMoveableTargetInfo(o,e,t,r,s,a){a===void 0&&(a=[]);var l=1,c=[0,0],d=resetClientRect(),u=resetClientRect(),g=resetClientRect(),f=resetClientRect(),m=[0,0],_={},v=calculateElementInfo(e,t,s,!0);if(e){var b=getCachedStyle(e);a.forEach(function(R){_[R]=b(R)});var C=v.is3d?4:3,y=calculateElementPosition(v.offsetMatrix,plus(v.transformOrigin,getOrigin(v.targetMatrix,C)),v.width,v.height);l=y.direction,c=plus(y.origin,[y.left-v.left,y.top-v.top]),f=getClientRect(v.offsetRootContainer);var S=getOffsetInfo(r,r,!0).offsetParent||v.offsetRootContainer;if(v.hasZoom){var w=calculateElementPosition(multiply(v.originalRootMatrix,v.allMatrix),v.transformOrigin,v.width,v.height),E=calculateElementPosition(v.originalRootMatrix,getTransformOriginArray(getCachedStyle(S)("transformOrigin")).map(function(R){return parseFloat(R)}),S.offsetWidth,S.offsetHeight);if(d=getClientRectByPosition(w,f),g=getClientRectByPosition(E,f,S,!0),o){var x=w.left,L=w.top;u=getClientRectByPosition({left:x,top:L,bottom:L,right:L},f)}}else{d=getClientRect(e),g=getCachedClientRect(S),o&&(u=getClientRect(o));var k=g.left,D=g.top,I=g.clientLeft,T=g.clientTop,M=[d.left-k,d.top-D];m=minus(calculateInversePosition(v.rootMatrix,M,4),[I+v.left,T+v.top])}}return __assign$6({targetClientRect:d,containerClientRect:g,moveableClientRect:u,rootContainerClientRect:f,beforeDirection:l,beforeOrigin:c,originalBeforeOrigin:c,target:e,style:_,offsetDelta:m},v)}function getPersistState(o){var e=o.pos1,t=o.pos2,r=o.pos3,s=o.pos4;if(!e||!t||!r||!s)return null;var a=getMinMaxs([e,t,r,s]),l=[a.minX,a.minY],c=minus(o.origin,l);return e=minus(e,l),t=minus(t,l),r=minus(r,l),s=minus(s,l),__assign$6(__assign$6({},o),{left:o.left,top:o.top,posDelta:l,pos1:e,pos2:t,pos3:r,pos4:s,origin:c,beforeOrigin:c,isPersisted:!0})}var MoveableManager$1=(function(o){__extends$7(e,o);function e(){var t=o!==null&&o.apply(this,arguments)||this;return t.state=__assign$6({container:null,gestos:{},renderLines:[[[0,0],[0,0]],[[0,0],[0,0]],[[0,0],[0,0]],[[0,0],[0,0]]],renderPoses:[[0,0],[0,0],[0,0],[0,0]],disableNativeEvent:!1,posDelta:[0,0]},getMoveableTargetInfo(null)),t.renderState={},t.enabledAbles=[],t.targetAbles=[],t.controlAbles=[],t.rotation=0,t.scale=[1,1],t.isMoveableMounted=!1,t.isUnmounted=!1,t.events={mouseEnter:null,mouseLeave:null},t._emitter=new EventEmitter$2,t._prevOriginalDragTarget=null,t._originalDragTarget=null,t._prevDragTarget=null,t._dragTarget=null,t._prevPropTarget=null,t._propTarget=null,t._prevDragArea=!1,t._isPropTargetChanged=!1,t._hasFirstTarget=!1,t._reiszeObserver=null,t._observerId=0,t._mutationObserver=null,t._rootContainer=null,t._viewContainer=null,t._viewClassNames=[],t._store={},t.checkUpdateRect=function(){if(!t.isDragging()){var r=t.props.parentMoveable;if(r){r.checkUpdateRect();return}cancelAnimationFrame(t._observerId),t._observerId=requestAnimationFrame$1(function(){t.isDragging()||t.updateRect()})}},t._onPreventClick=function(r){r.stopPropagation(),r.preventDefault()},t}return e.prototype.render=function(){var t=this.props,r=this.getState(),s=t.parentPosition,a=t.className,l=t.target,c=t.zoom,d=t.cspNonce,u=t.translateZ,g=t.cssStyled,f=t.groupable,m=t.linePadding,_=t.controlPadding;this._checkUpdateRootContainer(),this.checkUpdate(),this.updateRenderPoses();var v=__read$1(s||[0,0],2),b=v[0],C=v[1],y=r.left,S=r.top,w=r.target,E=r.direction,x=r.hasFixed,L=r.offsetDelta,k=t.targets,D=this.isDragging(),I={};this.getEnabledAbles().forEach(function(O){I["data-able-".concat(O.name.toLowerCase())]=!0});var T=this._getAbleClassName(),M=k&&k.length&&(w||f)||l||!this._hasFirstTarget&&this.state.isPersisted,R=this.controlBox||this.props.firstRenderState||this.props.persistData,N=[y-b,S-C];!f&&t.useAccuratePosition&&(N[0]+=L[0],N[1]+=L[1]);var A={position:x?"fixed":"absolute",display:M?"block":"none",visibility:R?"visible":"hidden",transform:"translate3d(".concat(N[0],"px, ").concat(N[1],"px, ").concat(u,")"),"--zoom":c,"--zoompx":"".concat(c,"px")};return m&&(A["--moveable-line-padding"]=m),_&&(A["--moveable-control-padding"]=_),createElement(g,__assign$6({cspNonce:d,ref:ref(this,"controlBox"),className:"".concat(prefix$1("control-box",E===-1?"reverse":"",D?"dragging":"")," ").concat(T," ").concat(a)},I,{onClick:this._onPreventClick,style:A}),this.renderAbles(),this._renderLines())},e.prototype.componentDidMount=function(){this.isMoveableMounted=!0,this.isUnmounted=!1;var t=this.props,r=t.parentMoveable,s=t.container;this._checkUpdateRootContainer(),this._checkUpdateViewContainer(),this._updateTargets(),this._updateNativeEvents(),this._updateEvents(),this.updateCheckInput(),this._updateObserver(this.props),!s&&!r&&!this.state.isPersisted&&(this.updateRect("",!1,!1),this.forceUpdate())},e.prototype.componentDidUpdate=function(t){this._checkUpdateRootContainer(),this._checkUpdateViewContainer(),this._updateNativeEvents(),this._updateTargets(),this._updateEvents(),this.updateCheckInput(),this._updateObserver(t)},e.prototype.componentWillUnmount=function(){var t,r;this.isMoveableMounted=!1,this.isUnmounted=!0,this._emitter.off(),(t=this._reiszeObserver)===null||t===void 0||t.disconnect(),(r=this._mutationObserver)===null||r===void 0||r.disconnect();var s=this._viewContainer;s&&this._changeAbleViewClassNames([]),unsetGesto(this,!1),unsetGesto(this,!0);var a=this.events;for(var l in a){var c=a[l];c&&c.destroy()}},e.prototype.getTargets=function(){var t=this.props.target;return t?[t]:[]},e.prototype.getAble=function(t){var r=this.props.ables||[];return find$1(r,function(s){return s.name===t})},e.prototype.getContainer=function(){var t=this.props,r=t.parentMoveable,s=t.wrapperMoveable,a=t.container;return a||s&&s.getContainer()||r&&r.getContainer()||this.controlBox.parentElement},e.prototype.getControlBoxElement=function(){return this.controlBox},e.prototype.getDragElement=function(){return this._dragTarget},e.prototype.isMoveableElement=function(t){var r;return t&&(((r=t.getAttribute)===null||r===void 0?void 0:r.call(t,"class"))||"").indexOf(PREFIX$1)>-1},e.prototype.dragStart=function(t,r){r===void 0&&(r=t.target);var s=this.targetGesto,a=this.controlGesto;return s&&checkMoveableTarget(this)({inputEvent:t},r)?s.isFlag()||s.triggerDragStart(t):a&&this.isMoveableElement(r)&&(a.isFlag()||a.triggerDragStart(t)),this},e.prototype.hitTest=function(t){var r=this.state,s=r.target,a=r.pos1,l=r.pos2,c=r.pos3,d=r.pos4,u=r.targetClientRect;if(!s)return 0;var g;if(isNode(t)){var f=t.getBoundingClientRect();g={left:f.left,top:f.top,width:f.width,height:f.height}}else g=__assign$6({width:0,height:0},t);var m=g.left,_=g.top,v=g.width,b=g.height,C=fitPoints([a,l,d,c],u),y=getOverlapSize(C,[[m,_],[m+v,_],[m+v,_+b],[m,_+b]]),S=getAreaSize(C);return!y||!S?0:Math.min(100,y/S*100)},e.prototype.isInside=function(t,r){var s=this.state,a=s.target,l=s.pos1,c=s.pos2,d=s.pos3,u=s.pos4,g=s.targetClientRect;return a?isInside([t,r],fitPoints([l,c,u,d],g)):!1},e.prototype.updateRect=function(t,r,s){s===void 0&&(s=!0);var a=this.props,l=!a.parentPosition&&!a.wrapperMoveable;l&&setStoreCache(!0);var c=a.parentMoveable,d=this.state,u=d.target||a.target,g=this.getContainer(),f=c?c._rootContainer:this._rootContainer,m=getMoveableTargetInfo(this.controlBox,u,g,g,f||g,this._getRequestStyles());if(!u&&this._hasFirstTarget&&a.persistData){var _=getPersistState(a.persistData);for(var v in _)m[v]=_[v]}l&&setStoreCache(),this.updateState(m,c?!1:s)},e.prototype.isDragging=function(t){var r,s,a=this.targetGesto,l=this.controlGesto;if(a!=null&&a.isFlag()){if(!t)return!0;var c=a.getEventData();return!!(!((r=c[t])===null||r===void 0)&&r.isEventStart)}if(l!=null&&l.isFlag()){if(!t)return!0;var c=l.getEventData();return!!(!((s=c[t])===null||s===void 0)&&s.isEventStart)}return!1},e.prototype.updateTarget=function(t){this.updateRect(t,!0)},e.prototype.getRect=function(){var t=this.state,r=getAbsolutePosesByState(this.state),s=__read$1(r,4),a=s[0],l=s[1],c=s[2],d=s[3],u=getRect(r),g=t.width,f=t.height,m=u.width,_=u.height,v=u.left,b=u.top,C=[t.left,t.top],y=plus(C,t.origin),S=plus(C,t.beforeOrigin),w=t.transformOrigin;return{width:m,height:_,left:v,top:b,pos1:a,pos2:l,pos3:c,pos4:d,offsetWidth:g,offsetHeight:f,beforeOrigin:S,origin:y,transformOrigin:w,rotation:this.getRotation()}},e.prototype.getManager=function(){return this},e.prototype.stopDrag=function(t){if(!t||t==="target"){var r=this.targetGesto;(r==null?void 0:r.isIdle())===!1&&unsetAbles(this,!1),r==null||r.stop()}if(!t||t==="control"){var r=this.controlGesto;(r==null?void 0:r.isIdle())===!1&&unsetAbles(this,!0),r==null||r.stop()}},e.prototype.getRotation=function(){var t=this.state,r=t.pos1,s=t.pos2,a=t.direction;return getAbsoluteRotation(r,s,a)},e.prototype.request=function(t,r,s){r===void 0&&(r={});var a=this,l=a.props,c=l.parentMoveable||l.wrapperMoveable||a,d=c.props.ables,u=l.groupable,g=find$1(d,function(y){return y.name===t});if(this.isDragging()||!g||!g.request)return{request:function(){return this},requestEnd:function(){return this}};var f=g.request(a),m=s||r.isInstant,_=f.isControl?"controlAbles":"targetAbles",v="".concat(u?"Group":"").concat(f.isControl?"Control":""),b=__spreadArray$3([],__read$1(c[_]),!1),C={request:function(y){return triggerAble(a,b,["drag"],v,"",__assign$6(__assign$6({},f.request(y)),{requestAble:t,isRequest:!0}),m),C},requestEnd:function(){return triggerAble(a,b,["drag"],v,"End",__assign$6(__assign$6({},f.requestEnd()),{requestAble:t,isRequest:!0}),m),C}};return triggerAble(a,b,["drag"],v,"Start",__assign$6(__assign$6({},f.requestStart(r)),{requestAble:t,isRequest:!0}),m),m?C.request(r).requestEnd():C},e.prototype.getMoveables=function(){return[this]},e.prototype.destroy=function(){this.componentWillUnmount()},e.prototype.updateRenderPoses=function(){var t=this.getState(),r=this.props,s=r.padding,a=t.originalBeforeOrigin,l=t.transformOrigin,c=t.allMatrix,d=t.is3d,u=t.pos1,g=t.pos2,f=t.pos3,m=t.pos4,_=t.left,v=t.top,b=t.isPersisted,C=r.zoom||1;if(!s&&C<=1){t.renderPoses=[u,g,f,m],t.renderLines=[[u,g],[g,m],[m,f],[f,u]];return}var y=getPaddingBox(s||{}),S=y.left,w=y.top,E=y.bottom,x=y.right,L=d?4:3,k=[];b?k=l:this.controlBox&&r.groupable?k=a:k=plus(a,[_,v]);var D=multiplies(L,createOriginMatrix(k.map(function(A){return-A}),L),c,createOriginMatrix(l,L)),I=calculatePadding(D,u,[-S,-w],L),T=calculatePadding(D,g,[x,-w],L),M=calculatePadding(D,f,[-S,E],L),R=calculatePadding(D,m,[x,E],L);t.renderPoses=[I,T,M,R],t.renderLines=[[I,T],[T,R],[R,M],[M,I]];{var N=C/2;t.renderLines=[[calculatePadding(D,u,[-S-N,-w],L),calculatePadding(D,g,[x+N,-w],L)],[calculatePadding(D,g,[x,-w-N],L),calculatePadding(D,m,[x,E+N],L)],[calculatePadding(D,m,[x+N,E],L),calculatePadding(D,f,[-S-N,E],L)],[calculatePadding(D,f,[-S,E+N],L),calculatePadding(D,u,[-S,-w-N],L)]]}},e.prototype.checkUpdate=function(){this._isPropTargetChanged=!1;var t=this.props,r=t.target,s=t.container,a=t.parentMoveable,l=this.state,c=l.target,d=l.container;if(!(!c&&!r)){this.updateAbles();var u=!equals(c,r),g=u||!equals(d,s);if(g){var f=s||this.controlBox;f&&this.unsetAbles(),this.updateState({target:r,container:s}),!a&&f&&this.updateRect("End",!1,!1),this._isPropTargetChanged=u}}},e.prototype.waitToChangeTarget=function(){return new Promise(function(){})},e.prototype.triggerEvent=function(t,r){var s=this.props;if(this._emitter.trigger(t,r),s.parentMoveable&&r.isRequest&&!r.isRequestChild)return s.parentMoveable.triggerEvent(t,r,!0);var a=s[t];return a&&a(r)},e.prototype.useCSS=function(t,r){var s=this.props.customStyledMap,a=t+r;return s[a]||(s[a]=styled(t,r)),s[a]},e.prototype.getState=function(){var t,r=this.props;(r.target||!((t=r.targets)===null||t===void 0)&&t.length)&&(this._hasFirstTarget=!0);var s=this.controlBox,a=r.persistData,l=r.firstRenderState;if(l&&!s)return l;if(!this._hasFirstTarget&&a){var c=getPersistState(a);if(c)return this.updateState(c,!1),this.state}return this.state.isPersisted=!1,this.state},e.prototype.updateSelectors=function(){},e.prototype.unsetAbles=function(){var t=this;this.targetAbles.forEach(function(r){r.unset&&r.unset(t)})},e.prototype.updateAbles=function(t,r){t===void 0&&(t=this.props.ables),r===void 0&&(r="");var s=this.props,a=s.triggerAblesSimultaneously,l=this.getEnabledAbles(t),c="drag".concat(r,"Start"),d="pinch".concat(r,"Start"),u="drag".concat(r,"ControlStart"),g=filterAbles(l,[c,d],a),f=filterAbles(l,[u],a);this.enabledAbles=l,this.targetAbles=g,this.controlAbles=f},e.prototype.updateState=function(t,r){if(r){if(this.isUnmounted)return;this.setState(t)}else{var s=this.state;for(var a in t)s[a]=t[a]}},e.prototype.getEnabledAbles=function(t){t===void 0&&(t=this.props.ables);var r=this.props;return t.filter(function(s){return s&&(s.always&&r[s.name]!==!1||r[s.name])})},e.prototype.renderAbles=function(){var t=this,r=this.props,s=r.triggerAblesSimultaneously,a={createElement};return this.renderState={},groupByMap(flat(filterAbles(this.getEnabledAbles(),["render"],s).map(function(l){var c=l.render;return c(t,a)||[]})).filter(function(l){return l}),function(l){var c=l.key;return c}).map(function(l){return l[0]})},e.prototype.updateCheckInput=function(){this.targetGesto&&(this.targetGesto.options.checkInput=this.props.checkInput)},e.prototype._getRequestStyles=function(){var t=this.getEnabledAbles().reduce(function(r,s){var a,l,c=(l=(a=s.requestStyle)===null||a===void 0?void 0:a.call(s))!==null&&l!==void 0?l:[];return __spreadArray$3(__spreadArray$3([],__read$1(r),!1),__read$1(c),!1)},__spreadArray$3([],__read$1(this.props.requestStyles||[]),!1));return t},e.prototype._updateObserver=function(t){this._updateResizeObserver(t),this._updateMutationObserver(t)},e.prototype._updateEvents=function(){var t=this.targetAbles.length,r=this.controlAbles.length,s=this._dragTarget,a=!t&&this.targetGesto||this._isTargetChanged(!0);a&&(unsetGesto(this,!1),this.updateState({gestos:{}})),r||unsetGesto(this,!0),s&&t&&!this.targetGesto&&(this.targetGesto=getTargetAbleGesto(this,s,"")),!this.controlGesto&&r&&(this.controlGesto=getControlAbleGesto(this,"Control"))},e.prototype._updateTargets=function(){var t=this.props;this._prevPropTarget=this._propTarget,this._prevDragTarget=this._dragTarget,this._prevOriginalDragTarget=this._originalDragTarget,this._prevDragArea=t.dragArea,this._propTarget=t.target,this._originalDragTarget=t.dragTarget||t.target,this._dragTarget=getRefTarget(this._originalDragTarget,!0)},e.prototype._renderLines=function(){var t=this.props,r=t,s=r.zoom,a=r.hideDefaultLines,l=r.hideChildMoveableDefaultLines,c=r.parentMoveable;if(a||c&&l)return[];var d=this.getState(),u={createElement};return d.renderLines.map(function(g,f){return renderLine(u,"",g[0],g[1],s,"render-line-".concat(f))})},e.prototype._isTargetChanged=function(t){var r=this.props,s=r.dragTarget||r.target,a=this._prevOriginalDragTarget,l=this._prevDragArea,c=r.dragArea,d=!c&&a!==s,u=(t||c)&&l!==c;return d||u||this._prevPropTarget!=this._propTarget},e.prototype._updateNativeEvents=function(){var t=this,r=this.props,s=r.dragArea?this.areaElement:this.state.target,a=this.events,l=getKeys(a);if(this._isTargetChanged())for(var c in a){var d=a[c];d&&d.destroy(),a[c]=null}if(s){var u=this.enabledAbles;l.forEach(function(g){var f=filterAbles(u,[g]),m=f.length>0,_=a[g];if(!m){_&&(_.destroy(),a[g]=null);return}_||(_=new EventManager(s,t,g),a[g]=_),_.setAbles(f)})}},e.prototype._checkUpdateRootContainer=function(){var t=this.props.rootContainer;!this._rootContainer&&t&&(this._rootContainer=getRefTarget(t,!0))},e.prototype._checkUpdateViewContainer=function(){var t=this.props.viewContainer;!this._viewContainer&&t&&(this._viewContainer=getRefTarget(t,!0));var r=this._viewContainer;r&&this._changeAbleViewClassNames(__spreadArray$3(__spreadArray$3([],__read$1(this._getAbleViewClassNames()),!1),[this.isDragging()?VIEW_DRAGGING:""],!1))},e.prototype._changeAbleViewClassNames=function(t){var r=this._viewContainer,s=groupBy(t.filter(Boolean),function(u){return u}).map(function(u){var g=__read$1(u,1),f=g[0];return f}),a=this._viewClassNames,l=diff$1(a,s),c=l.removed,d=l.added;c.forEach(function(u){removeClass(r,a[u])}),d.forEach(function(u){addClass(r,s[u])}),this._viewClassNames=s},e.prototype._getAbleViewClassNames=function(){var t=this;return(this.getEnabledAbles().map(function(r){var s;return((s=r.viewClassName)===null||s===void 0?void 0:s.call(r,t))||""}).join(" ")+" ".concat(this._getAbleClassName("-view"))).split(/\s+/g)},e.prototype._getAbleClassName=function(t){var r=this;t===void 0&&(t="");var s=this.getEnabledAbles(),a=this.targetGesto,l=this.controlGesto,c=a!=null&&a.isFlag()?a.getEventData():{},d=l!=null&&l.isFlag()?l.getEventData():{};return s.map(function(u){var g,f,m,_=u.name,v=((g=u.className)===null||g===void 0?void 0:g.call(u,r))||"";return(!((f=c[_])===null||f===void 0)&&f.isEventStart||!((m=d[_])===null||m===void 0)&&m.isEventStart)&&(v+=" ".concat(prefix$1("".concat(_).concat(t,"-dragging")))),v.trim()}).filter(Boolean).join(" ")},e.prototype._updateResizeObserver=function(t){var r,s=this.props,a=s.target,l=getWindow(this.getControlBoxElement());if(!l.ResizeObserver||!a||!s.useResizeObserver){(r=this._reiszeObserver)===null||r===void 0||r.disconnect();return}if(!(t.target===a&&this._reiszeObserver)){var c=new l.ResizeObserver(this.checkUpdateRect);c.observe(a,{box:"border-box"}),this._reiszeObserver=c}},e.prototype._updateMutationObserver=function(t){var r=this,s,a=this.props,l=a.target,c=getWindow(this.getControlBoxElement());if(!c.MutationObserver||!l||!a.useMutationObserver){(s=this._mutationObserver)===null||s===void 0||s.disconnect();return}if(!(t.target===l&&this._mutationObserver)){var d=new c.MutationObserver(function(u){var g,f;try{for(var m=__values$1(u),_=m.next();!_.done;_=m.next()){var v=_.value;v.type==="attributes"&&v.attributeName==="style"&&r.checkUpdateRect()}}catch(b){g={error:b}}finally{try{_&&!_.done&&(f=m.return)&&f.call(m)}finally{if(g)throw g.error}}});d.observe(l,{attributes:!0}),this._mutationObserver=d}},e.defaultProps={dragTargetSelf:!1,target:null,dragTarget:null,container:null,rootContainer:null,origin:!0,parentMoveable:null,wrapperMoveable:null,isWrapperMounted:!1,parentPosition:null,warpSelf:!1,svgOrigin:"",dragContainer:null,useResizeObserver:!1,useMutationObserver:!1,preventDefault:!0,preventRightClick:!0,preventWheelClick:!0,linePadding:0,controlPadding:0,ables:[],pinchThreshold:20,dragArea:!1,passDragArea:!1,transformOrigin:"",className:"",zoom:1,triggerAblesSimultaneously:!1,padding:{},pinchOutside:!0,checkInput:!1,dragFocusedInput:!1,groupable:!1,hideDefaultLines:!1,cspNonce:"",translateZ:0,cssStyled:null,customStyledMap:{},props:{},stopPropagation:!1,preventClickDefault:!1,preventClickEventOnDrag:!0,flushSync:defaultSync,firstRenderState:null,persistData:null,viewContainer:null,requestStyles:[],useAccuratePosition:!1},e})(PureComponent),Groupable={name:"groupable",props:["defaultGroupRotate","useDefaultGroupRotate","defaultGroupOrigin","groupable","groupableProps","targetGroups","hideChildMoveableDefaultLines"],events:[],render:function(o,e){var t,r=o.props,s=r.targets||[],a=o.getState(),l=a.left,c=a.top,d=a.isPersisted,u=r.zoom||1,g=o.renderGroupRects,f=((t=r.persistData)===null||t===void 0?void 0:t.children)||[];d?s=f.map(function(){return null}):f=[];var m=watchValue(o,"parentPosition",[l,c],function(v){return v.join(",")}),_=watchValue(o,"requestStyles",o.getRequestChildStyles(),function(v){return v.join(",")});return o.moveables=o.moveables.slice(0,s.length),__spreadArray$3(__spreadArray$3([],__read$1(s.map(function(v,b){return e.createElement(MoveableManager$1,{key:"moveable"+b,ref:refs(o,"moveables",b),target:v,origin:!1,requestStyles:_,cssStyled:r.cssStyled,customStyledMap:r.customStyledMap,useResizeObserver:r.useResizeObserver,useMutationObserver:r.useMutationObserver,hideChildMoveableDefaultLines:r.hideChildMoveableDefaultLines,parentMoveable:o,parentPosition:[l,c],persistData:f[b],zoom:u})})),!1),__read$1(flat(g.map(function(v,b){var C=v.pos1,y=v.pos2,S=v.pos3,w=v.pos4,E=[C,y,S,w];return[[0,1],[1,3],[3,2],[2,0]].map(function(x,L){var k=__read$1(x,2),D=k[0],I=k[1];return renderLine(e,"",minus(E[D],m),minus(E[I],m),u,"group-rect-".concat(b,"-").concat(L))})}))),!1)}},Clickable=makeAble("clickable",{props:["clickable"],events:["click","clickGroup"],always:!0,dragRelation:"weak",dragStart:function(){},dragControlStart:function(){},dragGroupStart:function(o,e){e.datas.inputTarget=e.inputEvent&&e.inputEvent.target},dragEnd:function(o,e){var t=o.props.target,r=e.inputEvent,s=e.inputTarget,a=o.isMoveableElement(s),l=!a&&o.controlBox.contains(s);if(!(!r||!s||e.isDrag||o.isMoveableElement(s)||l)){var c=t.contains(s);triggerEvent(o,"onClick",fillParams(o,e,{isDouble:e.isDouble,inputTarget:s,isTarget:t===s,moveableTarget:o.props.target,containsTarget:c}))}},dragGroupEnd:function(o,e){var t=e.inputEvent,r=e.inputTarget;if(!(!t||!r||e.isDrag||o.isMoveableElement(r)||e.datas.inputTarget===r)){var s=o.props.targets,a=s.indexOf(r),l=a>-1,c=!1;a===-1&&(a=findIndex(s,function(d){return d.contains(r)}),c=a>-1),triggerEvent(o,"onClickGroup",fillParams(o,e,{isDouble:e.isDouble,targets:s,inputTarget:r,targetIndex:a,isTarget:l,containsTarget:c,moveableTarget:s[a]}))}},dragControlEnd:function(o,e){this.dragEnd(o,e)},dragGroupControlEnd:function(o,e){this.dragEnd(o,e)}});function getDraggableEvent(o){var e=o.originalDatas.draggable;return e||(o.originalDatas.draggable={},e=o.originalDatas.draggable),__assign$6(__assign$6({},o),{datas:e})}var edgeDraggable=makeAble("edgeDraggable",{css:[".edge.edgeDraggable.line {\ncursor: move;\n}"],render:function(o,e){var t=o.props,r=t.edgeDraggable;return r?renderEdgeLines(e,"edgeDraggable",r,o.getState().renderPoses,t.zoom):[]},dragCondition:function(o,e){var t,r=o.props,s=(t=e.inputEvent)===null||t===void 0?void 0:t.target;return!r.edgeDraggable||!s?!1:!r.draggable&&hasClass(s,prefix$1("direction"))&&hasClass(s,prefix$1("edge"))&&hasClass(s,prefix$1("edgeDraggable"))},dragStart:function(o,e){return Draggable.dragStart(o,getDraggableEvent(e))},drag:function(o,e){return Draggable.drag(o,getDraggableEvent(e))},dragEnd:function(o,e){return Draggable.dragEnd(o,getDraggableEvent(e))},dragGroupCondition:function(o,e){var t,r=o.props,s=(t=e.inputEvent)===null||t===void 0?void 0:t.target;return!r.edgeDraggable||!s?!1:!r.draggable&&hasClass(s,prefix$1("direction"))&&hasClass(s,prefix$1("line"))},dragGroupStart:function(o,e){return Draggable.dragGroupStart(o,getDraggableEvent(e))},dragGroup:function(o,e){return Draggable.dragGroup(o,getDraggableEvent(e))},dragGroupEnd:function(o,e){return Draggable.dragGroupEnd(o,getDraggableEvent(e))},unset:function(o){return Draggable.unset(o)}}),IndividualGroupable={name:"individualGroupable",props:["individualGroupable","individualGroupableProps"],events:[]},MOVEABLE_ABLES=[BeforeRenderable,Default,Snappable,Pinchable,Draggable,edgeDraggable,Resizable,Scalable,Warpable,Rotatable,Scrollable,Padding,Origin,OriginDraggable,Clippable,Roundable,Groupable,IndividualGroupable,Clickable,DragArea,Renderable],MOVEABLE_EVENTS=MOVEABLE_ABLES.reduce(function(o,e){return(e.events||[]).forEach(function(t){pushSet(o,t)}),o},[]),MOVEABLE_PROPS=MOVEABLE_ABLES.reduce(function(o,e){return(e.props||[]).forEach(function(t){pushSet(o,t)}),o},[]);function solveConstantsDistance(o,e){var t=__read$1(o,3),r=t[0],s=t[1],a=t[2];return(r*e[0]+s*e[1]+a)/Math.sqrt(r*r+s*s)}function solveC(o,e){var t=__read$1(o,2),r=t[0],s=t[1];return-r*e[0]-s*e[1]}function getMaxPos(o,e){return Math.max.apply(Math,__spreadArray$3([],__read$1(o.map(function(t){var r=__read$1(t,4),s=r[0],a=r[1],l=r[2],c=r[3];return Math.max(s[e],a[e],l[e],c[e])})),!1))}function getMinPos(o,e){return Math.min.apply(Math,__spreadArray$3([],__read$1(o.map(function(t){var r=__read$1(t,4),s=r[0],a=r[1],l=r[2],c=r[3];return Math.min(s[e],a[e],l[e],c[e])})),!1))}function getGroupRect(o,e){var t,r,s,a=[0,0],l=[0,0],c=[0,0],d=[0,0],u=0,g=0;if(!o.length)return{pos1:a,pos2:l,pos3:c,pos4:d,minX:0,minY:0,maxX:0,maxY:0,width:u,height:g,rotation:e};var f=throttle(e,TINY_NUM);if(f%90){var m=f/180*Math.PI,_=Math.tan(m),v=-1/_,b=[MAX_NUM,MIN_NUM],C=[[0,0],[0,0]],y=[MAX_NUM,MIN_NUM],S=[[0,0],[0,0]];o.forEach(function(X){X.forEach(function(ee){var Z=solveConstantsDistance([-_,1,0],ee),J=solveConstantsDistance([-v,1,0],ee);b[0]>Z&&(C[0]=ee,b[0]=Z),b[1]<Z&&(C[1]=ee,b[1]=Z),y[0]>J&&(S[0]=ee,y[0]=J),y[1]<J&&(S[1]=ee,y[1]=J)})});var w=__read$1(C,2),E=w[0],x=w[1],L=__read$1(S,2),k=L[0],D=L[1],I=[-_,1,solveC([-_,1],E)],T=[-_,1,solveC([-_,1],x)],M=[-v,1,solveC([-v,1],k)],R=[-v,1,solveC([-v,1],D)];t=__read$1([[I,M],[I,R],[T,M],[T,R]].map(function(X){var ee=__read$1(X,2),Z=ee[0],J=ee[1];return getIntersectionPointsByConstants(Z,J)[0]}),4),a=t[0],l=t[1],c=t[2],d=t[3],u=y[1]-y[0],g=b[1]-b[0]}else{var N=getMinPos(o,0),A=getMinPos(o,1),O=getMaxPos(o,0),P=getMaxPos(o,1);if(a=[N,A],l=[O,A],c=[N,P],d=[O,P],u=O-N,g=P-A,f%180){var F=[c,a,d,l];r=__read$1(F,4),a=r[0],l=r[1],c=r[2],d=r[3],u=P-A,g=O-N}}if(f%360>180){var F=[d,c,l,a];s=__read$1(F,4),a=s[0],l=s[1],c=s[2],d=s[3]}var B=getMinMaxs([a,l,c,d]),H=B.minX,V=B.minY,U=B.maxX,j=B.maxY;return{pos1:a,pos2:l,pos3:c,pos4:d,width:u,height:g,minX:H,minY:V,maxX:U,maxY:j,rotation:e}}function findMoveableGroups(o,e){var t=e.map(function(r){if(isArray$1(r)){var s=findMoveableGroups(o,r),a=s.length;return a>1?s:a===1?s[0]:null}else{var l=find$1(o,function(c){var d=c.manager;return d.props.target===r});return l?(l.finded=!0,l.manager):null}}).filter(Boolean);return t.length===1&&isArray$1(t[0])?t[0]:t}var MoveableGroup=(function(o){__extends$7(e,o);function e(){var t=o!==null&&o.apply(this,arguments)||this;return t.differ=new ChildrenDiffer,t.moveables=[],t.transformOrigin="50% 50%",t.renderGroupRects=[],t._targetGroups=[],t._hasFirstTargets=!1,t}return e.prototype.componentDidMount=function(){o.prototype.componentDidMount.call(this)},e.prototype.checkUpdate=function(){this._isPropTargetChanged=!1,this.updateAbles()},e.prototype.getTargets=function(){return this.props.targets},e.prototype.updateRect=function(t,r,s){var a;s===void 0&&(s=!0);var l=this.state;if(!this.controlBox||l.isPersisted)return;setStoreCache(!0),this.moveables.forEach(function(Q){Q.updateRect(t,!1,!1)});var c=this.props,d=this.moveables,u=l.target||c.target,g=d.map(function(Q){return{finded:!1,manager:Q}}),f=this.props.targetGroups||[],m=findMoveableGroups(g,f),_=c.useDefaultGroupRotate;m.push.apply(m,__spreadArray$3([],__read$1(g.filter(function(Q){var re=Q.finded;return!re}).map(function(Q){var re=Q.manager;return re})),!1));var v=[],b=!r||t!==""&&c.updateGroup,C=c.defaultGroupRotate||0;if(!this._hasFirstTargets){var y=(a=c.persistData)===null||a===void 0?void 0:a.rotation;y!=null&&(C=y)}function S(Q,re,de){var se=Q.map(function(ue){if(isArray$1(ue)){var ae=S(ue,re),le=[ae.pos1,ae.pos2,ae.pos3,ae.pos4];return v.push(ae),{poses:le,rotation:ae.rotation}}else return{poses:getAbsolutePosesByState(ue.state),rotation:ue.getRotation()}}),W=se.map(function(ue){var ae=ue.rotation;return ae}),G=0,Y=W[0],ie=W.every(function(ue){return Math.abs(Y-ue)<.1});b?G=!_&&ie?Y:C:G=!_&&!de&&ie?Y:re;var ne=se.map(function(ue){var ae=ue.poses;return ae}),oe=getGroupRect(ne,G);return oe}var w=S(m,this.rotation,!0);b&&(this.rotation=w.rotation,this.transformOrigin=c.defaultGroupOrigin||"50% 50%",this.scale=[1,1]),this._targetGroups=f,this.renderGroupRects=v;var E=this.transformOrigin,x=this.rotation,L=this.scale,k=w.width,D=w.height,I=w.minX,T=w.minY,M=rotatePosesInfo([[0,0],[k,0],[0,D],[k,D]],convertTransformOriginArray(E,k,D),this.rotation/180*Math.PI),R=getMinMaxs(M.result),N=R.minX,A=R.minY,O=" rotate(".concat(x,"deg)")+" scale(".concat(sign(L[0]),", ").concat(sign(L[1]),")"),P="translate(".concat(-N,"px, ").concat(-A,"px)").concat(O);this.controlBox.style.transform="translate3d(".concat(I,"px, ").concat(T,"px, ").concat(this.props.translateZ||0,")"),u.style.cssText+="left:0px;top:0px;"+"transform-origin:".concat(E,";")+"width:".concat(k,"px;height:").concat(D,"px;")+"transform: ".concat(P),l.width=k,l.height=D;var F=this.getContainer(),B=getMoveableTargetInfo(this.controlBox,u,this.controlBox,this.getContainer(),this._rootContainer||F,[]),H=[B.left,B.top],V=__read$1(getAbsolutePosesByState(B),4),U=V[0],j=V[1],X=V[2],ee=V[3],Z=getMinMaxs([U,j,X,ee]),J=[Z.minX,Z.minY],q=sign(L[0]*L[1]);B.pos1=minus(U,J),B.pos2=minus(j,J),B.pos3=minus(X,J),B.pos4=minus(ee,J),B.left=I-B.left+J[0],B.top=T-B.top+J[1],B.origin=minus(plus(H,B.origin),J),B.beforeOrigin=minus(plus(H,B.beforeOrigin),J),B.originalBeforeOrigin=plus(H,B.originalBeforeOrigin),B.transformOrigin=minus(plus(H,B.transformOrigin),J),u.style.transform="translate(".concat(-N-J[0],"px, ").concat(-A-J[1],"px)")+O,setStoreCache(),this.updateState(__assign$6(__assign$6({},B),{posDelta:J,direction:q,beforeDirection:q}),s)},e.prototype.getRect=function(){return __assign$6(__assign$6({},o.prototype.getRect.call(this)),{children:this.moveables.map(function(t){return t.getRect()})})},e.prototype.triggerEvent=function(t,r,s){if(s||t.indexOf("Group")>-1)return o.prototype.triggerEvent.call(this,t,r);this._emitter.trigger(t,r)},e.prototype.getRequestChildStyles=function(){var t=this.getEnabledAbles().reduce(function(r,s){var a,l,c=(l=(a=s.requestChildStyle)===null||a===void 0?void 0:a.call(s))!==null&&l!==void 0?l:[];return __spreadArray$3(__spreadArray$3([],__read$1(r),!1),__read$1(c),!1)},[]);return t},e.prototype.getMoveables=function(){return __spreadArray$3([],__read$1(this.moveables),!1)},e.prototype.updateAbles=function(){o.prototype.updateAbles.call(this,__spreadArray$3(__spreadArray$3([],__read$1(this.props.ables),!1),[Groupable],!1),"Group")},e.prototype._updateTargets=function(){o.prototype._updateTargets.call(this),this._originalDragTarget=this.props.dragTarget||this.areaElement,this._dragTarget=getRefTarget(this._originalDragTarget,!0)},e.prototype._updateEvents=function(){var t=this.state,r=this.props,s=this._prevDragTarget,a=r.dragTarget||this.areaElement,l=r.targets,c=this.differ.update(l),d=c.added,u=c.changed,g=c.removed,f=d.length||g.length;(f||this._prevOriginalDragTarget!==this._originalDragTarget)&&(unsetGesto(this,!1),unsetGesto(this,!0),this.updateState({gestos:{}})),s!==a&&(t.target=null),t.target||(t.target=this.areaElement,this.controlBox.style.display="block"),t.target&&(this.targetGesto||(this.targetGesto=getTargetAbleGesto(this,this._dragTarget,"Group")),this.controlGesto||(this.controlGesto=getControlAbleGesto(this,"GroupControl")));var m=!equals(t.container,r.container);m&&(t.container=r.container),(m||f||this.transformOrigin!==(r.defaultGroupOrigin||"50% 50%")||u.length||l.length&&!isDeepArrayEquals(this._targetGroups,r.targetGroups||[]))&&(this.updateRect(),this._hasFirstTargets=!0),this._isPropTargetChanged=!!f},e.prototype._updateObserver=function(){},e.defaultProps=__assign$6(__assign$6({},MoveableManager$1.defaultProps),{transformOrigin:["50%","50%"],groupable:!0,dragArea:!0,keepRatio:!0,targets:[],defaultGroupRotate:0,defaultGroupOrigin:"50% 50%"}),e})(MoveableManager$1),MoveableIndividualGroup=(function(o){__extends$7(e,o);function e(){var t=o!==null&&o.apply(this,arguments)||this;return t.moveables=[],t}return e.prototype.render=function(){var t=this,r,s=this.props,a=s.cspNonce,l=s.cssStyled,c=s.persistData,d=s.targets||[],u=d.length,g=this.isUnmounted||!u,f=(r=c==null?void 0:c.children)!==null&&r!==void 0?r:[];return g&&!u&&f.length?d=f.map(function(){return null}):g||(f=[]),createElement(l,{cspNonce:a,ref:ref(this,"controlBox"),className:prefix$1("control-box")},d.map(function(m,_){var v,b,C=(b=(v=s.individualGroupableProps)===null||v===void 0?void 0:v.call(s,m,_))!==null&&b!==void 0?b:{};return createElement(MoveableManager$1,__assign$6({key:"moveable"+_,ref:refs(t,"moveables",_)},s,C,{target:m,wrapperMoveable:t,isWrapperMounted:t.isMoveableMounted,persistData:f[_]}))}))},e.prototype.componentDidMount=function(){},e.prototype.componentDidUpdate=function(){},e.prototype.getTargets=function(){return this.props.targets},e.prototype.updateRect=function(t,r,s){s===void 0&&(s=!0),setStoreCache(!0),this.moveables.forEach(function(a){a.updateRect(t,r,s)}),setStoreCache()},e.prototype.getRect=function(){return __assign$6(__assign$6({},o.prototype.getRect.call(this)),{children:this.moveables.map(function(t){return t.getRect()})})},e.prototype.request=function(t,r,s){r===void 0&&(r={});var a=this.moveables.map(function(d){return d.request(t,__assign$6(__assign$6({},r),{isInstant:!1}),!1)}),l=s||r.isInstant,c={request:function(d){return a.forEach(function(u){return u.request(d)}),this},requestEnd:function(){return a.forEach(function(d){return d.requestEnd()}),this}};return l?c.request(r).requestEnd():c},e.prototype.dragStart=function(t,r){r===void 0&&(r=t.target);var s=r,a=find$1(this.moveables,function(l){var c=l.getTargets()[0],d=l.getControlBoxElement(),u=l.getDragElement();return!c||!u?!1:u===s||u.contains(s)||u!==c&&c===s||c.contains(s)||d===s||d.contains(s)});return a&&a.dragStart(t,r),this},e.prototype.hitTest=function(){return 0},e.prototype.isInside=function(){return!1},e.prototype.isDragging=function(){return!1},e.prototype.getDragElement=function(){return null},e.prototype.getMoveables=function(){return __spreadArray$3([],__read$1(this.moveables),!1)},e.prototype.updateRenderPoses=function(){},e.prototype.checkUpdate=function(){},e.prototype.triggerEvent=function(){},e.prototype.updateAbles=function(){},e.prototype._updateEvents=function(){},e.prototype._updateObserver=function(){},e})(MoveableManager$1);function getElementTargets(o,e){var t=[];return o.forEach(function(r){if(r){if(isString(r)){e[r]&&t.push.apply(t,__spreadArray$3([],__read$1(e[r]),!1));return}isArray$1(r)?t.push.apply(t,__spreadArray$3([],__read$1(getElementTargets(r,e)),!1)):t.push(r)}}),t}function getTargetGroups(o,e){var t=[];return o.forEach(function(r){if(r){if(isString(r)){e[r]&&t.push.apply(t,__spreadArray$3([],__read$1(e[r]),!1));return}isArray$1(r)?t.push(getTargetGroups(r,e)):t.push(r)}}),t}function compareRefTargets(o,e){return o.length!==e.length||o.some(function(t,r){var s=e[r];return!t&&!s?!1:t!=s?isArray$1(t)&&isArray$1(s)?compareRefTargets(t,s):!0:!1})}var InitialMoveable=(function(o){__extends$7(e,o);function e(){var t=o!==null&&o.apply(this,arguments)||this;return t.refTargets=[],t.selectorMap={},t._differ=new ChildrenDiffer,t._elementTargets=[],t._tmpRefTargets=[],t._tmpSelectorMap={},t._onChangeTargets=null,t}return e.makeStyled=function(){var t={},r=this.getTotalAbles();r.forEach(function(a){var l=a.css;l&&l.forEach(function(c){t[c]=!0})});var s=getKeys(t).join("\n");this.defaultStyled=styled("div",prefixCSS(PREFIX$1,MOVEABLE_CSS+s))},e.getTotalAbles=function(){return __spreadArray$3([Default,Groupable,IndividualGroupable,DragArea],__read$1(this.defaultAbles),!1)},e.prototype.render=function(){var t,r=this.constructor;r.defaultStyled||r.makeStyled();var s=this.props,a=s.ables,l=s.props,c=__rest(s,["ables","props"]),d=__read$1(this._updateRefs(!0),2),u=d[0],g=d[1],f=getElementTargets(u,g),m=f.length>1,_=r.getTotalAbles(),v=__spreadArray$3(__spreadArray$3([],__read$1(_),!1),__read$1(a||[]),!1),b=__assign$6(__assign$6(__assign$6({},c),l||{}),{ables:v,cssStyled:r.defaultStyled,customStyledMap:r.customStyledMap});this._elementTargets=f;var C=null,y=this.moveable,S=c.persistData;if(S!=null&&S.children&&(m=!0),c.individualGroupable)return createElement(MoveableIndividualGroup,__assign$6({key:"individual-group",ref:ref(this,"moveable")},b,{target:null,targets:f}));if(m){var w=getTargetGroups(u,g);if(y&&!y.props.groupable&&!y.props.individualGroupable){var E=y.props.target;E&&f.indexOf(E)>-1&&(C=__assign$6({},y.state))}return createElement(MoveableGroup,__assign$6({key:"group",ref:ref(this,"moveable")},b,(t=c.groupableProps)!==null&&t!==void 0?t:{},{target:null,targets:f,targetGroups:w,firstRenderState:C}))}else{var x=f[0];if(y&&(y.props.groupable||y.props.individualGroupable)){var L=y.moveables||[],k=find$1(L,function(D){return D.props.target===x});k&&(C=__assign$6({},k.state))}return createElement(MoveableManager$1,__assign$6({key:"single",ref:ref(this,"moveable")},b,{target:x,firstRenderState:C}))}},e.prototype.componentDidMount=function(){this._checkChangeTargets()},e.prototype.componentDidUpdate=function(){this._checkChangeTargets()},e.prototype.componentWillUnmount=function(){this.selectorMap={},this.refTargets=[]},e.prototype.getTargets=function(){var t,r;return(r=(t=this.moveable)===null||t===void 0?void 0:t.getTargets())!==null&&r!==void 0?r:[]},e.prototype.updateSelectors=function(){this.selectorMap={},this._updateRefs(),this.forceUpdate()},e.prototype.waitToChangeTarget=function(){var t=this,r;return this._onChangeTargets=function(){t._onChangeTargets=null,r()},new Promise(function(s){r=s})},e.prototype.waitToChangeTargets=function(){return this.waitToChangeTarget()},e.prototype.getManager=function(){return this.moveable},e.prototype.getMoveables=function(){return this.moveable.getMoveables()},e.prototype.getDragElement=function(){return this.moveable.getDragElement()},e.prototype._updateRefs=function(t){var r=this.refTargets,s=getRefTargets(this.props.target||this.props.targets),a=typeof document<"u",l=compareRefTargets(r,s),c=this.selectorMap,d={};return this.refTargets.forEach(function u(g){if(isString(g)){var f=c[g];f?d[g]=c[g]:a&&(l=!0,d[g]=[].slice.call(document.querySelectorAll(g)))}else isArray$1(g)&&g.forEach(u)}),this._tmpRefTargets=s,this._tmpSelectorMap=d,[s,d,!t&&l]},e.prototype._checkChangeTargets=function(){var t,r,s;this.refTargets=this._tmpRefTargets,this.selectorMap=this._tmpSelectorMap;var a=this._differ.update(this._elementTargets),l=a.added,c=a.removed,d=l.length||c.length;d&&((r=(t=this.props).onChangeTargets)===null||r===void 0||r.call(t,{moveable:this.moveable,targets:this._elementTargets}),(s=this._onChangeTargets)===null||s===void 0||s.call(this));var u=__read$1(this._updateRefs(),3),g=u[0],f=u[1],m=u[2];this.refTargets=g,this.selectorMap=f,m&&this.forceUpdate()},e.defaultAbles=[],e.customStyledMap={},e.defaultStyled=null,__decorate$3([withMethods(MOVEABLE_METHODS)],e.prototype,"moveable",void 0),e})(PureComponent),Moveable$1=(function(o){__extends$7(e,o);function e(){return o!==null&&o.apply(this,arguments)||this}return e.defaultAbles=MOVEABLE_ABLES,e})(InitialMoveable),extendStatics$6=function(o,e){return extendStatics$6=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics$6(o,e)};function __extends$6(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics$6(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign$5=function(){return __assign$5=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$5.apply(this,arguments)};function __decorate$2(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a}var InnerMoveable=(function(o){__extends$6(e,o);function e(r){var s=o.call(this,r)||this;return s.state={},s.state=s.props,s}var t=e.prototype;return t.render=function(){return createElement(Moveable$1,__assign$5({ref:ref(this,"moveable")},this.state))},e})(Component$1),PROPERTIES$3=MOVEABLE_PROPS,METHODS$2=MOVEABLE_METHODS,EVENTS$2=MOVEABLE_EVENTS,MoveableManager=(function(o){__extends$6(e,o);function e(r,s){s===void 0&&(s={});var a=o.call(this)||this;a.containerProvider=null,a.selfElement=null,a._warp=!1;var l=__assign$5({},s),c={};EVENTS$2.forEach(function(g){c[camelize("on ".concat(g))]=function(f){return a.trigger(g,f)}});var d;s.warpSelf?(delete s.warpSelf,a._warp=!0,d=r):(d=getDocument(r).createElement("div"),r.appendChild(d)),a.containerProvider=renderSelf(createElement(InnerMoveable,__assign$5({ref:ref(a,"innerMoveable")},l,c)),d),a.selfElement=d;var u=l.target;return isArray$1(u)&&u.length>1&&a.updateRect(),a}var t=e.prototype;return t.setState=function(r,s){this.innerMoveable.setState(r,s)},t.forceUpdate=function(r){this.innerMoveable.forceUpdate(r)},t.dragStart=function(r,s){s===void 0&&(s=r.target);var a=this.innerMoveable;a.$_timer&&this.forceUpdate(),this.getMoveable().dragStart(r,s)},t.destroy=function(){var r,s=this.selfElement;renderSelf(null,s,this.containerProvider),this._warp||(r=s==null?void 0:s.parentElement)===null||r===void 0||r.removeChild(s),this.containerProvider=null,this.off(),this.selfElement=null,this.innerMoveable=null},t.getMoveable=function(){return this.innerMoveable.moveable},e=__decorate$2([Properties(METHODS$2,function(r,s){r[s]||(r[s]=function(){for(var a=[],l=0;l<arguments.length;l++)a[l]=arguments[l];var c=this.getMoveable();if(!(!c||!c[s]))return c[s].apply(c,a)})}),Properties(PROPERTIES$3,function(r,s){Object.defineProperty(r,s,{get:function(){return this.getMoveable().props[s]},set:function(a){var l;this.setState((l={},l[s]=a,l))},enumerable:!0,configurable:!0})})],e),e})(EventEmitter$2),Moveable=(function(o){__extends$6(e,o);function e(){return o!==null&&o.apply(this,arguments)||this}return e})(MoveableManager),extendStatics$5=function(o,e){return extendStatics$5=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics$5(o,e)};function __extends$5(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics$5(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function createCommonjsModule(o,e){return e={exports:{}},o(e,e.exports),e.exports}var keycode=createCommonjsModule(function(o,e){function t(d){if(d&&typeof d=="object"){var u=d.which||d.keyCode||d.charCode;u&&(d=u)}if(typeof d=="number")return l[d];var g=String(d),f=r[g.toLowerCase()];if(f)return f;var f=s[g.toLowerCase()];if(f)return f;if(g.length===1)return g.charCodeAt(0)}t.isEventKey=function(u,g){if(u&&typeof u=="object"){var f=u.which||u.keyCode||u.charCode;if(f==null)return!1;if(typeof g=="string"){var m=r[g.toLowerCase()];if(m)return m===f;var m=s[g.toLowerCase()];if(m)return m===f}else if(typeof g=="number")return g===f;return!1}},e=o.exports=t;var r=e.code=e.codes={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,"pause/break":19,"caps lock":20,esc:27,space:32,"page up":33,"page down":34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,delete:46,command:91,"left command":91,"right command":93,"numpad *":106,"numpad +":107,"numpad -":109,"numpad .":110,"numpad /":111,"num lock":144,"scroll lock":145,"my computer":182,"my calculator":183,";":186,"=":187,",":188,"-":189,".":190,"/":191,"`":192,"[":219,"\\":220,"]":221,"'":222},s=e.aliases={windows:91,"⇧":16,"⌥":18,"⌃":17,"⌘":91,ctl:17,control:17,option:18,pause:19,break:19,caps:20,return:13,escape:27,spc:32,spacebar:32,pgup:33,pgdn:34,ins:45,del:46,cmd:91};for(a=97;a<123;a++)r[String.fromCharCode(a)]=a-32;for(var a=48;a<58;a++)r[a-48]=a;for(a=1;a<13;a++)r["f"+a]=a+111;for(a=0;a<10;a++)r["numpad "+a]=a+96;var l=e.names=e.title={};for(a in r)l[r[a]]=a;for(var c in s)r[c]=s[c]});keycode.code;keycode.codes;keycode.aliases;var keycode_4=keycode.names;keycode.title;var codeData={"+":"plus","left command":"meta","right command":"meta"},keysSort={shift:1,ctrl:2,alt:3,meta:4};function getKey(o,e){var t=(keycode_4[o]||e||"").toLowerCase();for(var r in codeData)t=t.replace(r,codeData[r]);return t.replace(/\s/g,"")}function getCombi(o,e){e===void 0&&(e=getKey(o.keyCode,o.key));var t=getModifierCombi(o);return t.indexOf(e)===-1&&t.push(e),t.filter(Boolean)}function getModifierCombi(o){var e=[o.shiftKey&&"shift",o.ctrlKey&&"ctrl",o.altKey&&"alt",o.metaKey&&"meta"];return e.filter(Boolean)}function getArrangeCombi(o){var e=o.slice();return e.sort(function(t,r){var s=keysSort[t]||5,a=keysSort[r]||5;return s-a}),e}var globalKeyController,KeyController=(function(o){__extends$5(e,o);function e(r){r===void 0&&(r=window);var s=o.call(this)||this;return s.container=r,s.ctrlKey=!1,s.altKey=!1,s.shiftKey=!1,s.metaKey=!1,s.clear=function(){return s.ctrlKey=!1,s.altKey=!1,s.shiftKey=!1,s.metaKey=!1,s},s.keydownEvent=function(a){s.triggerEvent("keydown",a)},s.keyupEvent=function(a){s.triggerEvent("keyup",a)},s.blur=function(){s.clear(),s.trigger("blur")},addEvent(r,"blur",s.blur),addEvent(r,"keydown",s.keydownEvent),addEvent(r,"keyup",s.keyupEvent),s}var t=e.prototype;return Object.defineProperty(e,"global",{get:function(){return globalKeyController||(globalKeyController=new e)},enumerable:!1,configurable:!0}),e.setGlobal=function(){return this.global},t.destroy=function(){var r=this.container;this.clear(),this.off(),removeEvent(r,"blur",this.blur),removeEvent(r,"keydown",this.keydownEvent),removeEvent(r,"keyup",this.keyupEvent)},t.keydown=function(r,s){return this.addEvent("keydown",r,s)},t.offKeydown=function(r,s){return this.removeEvent("keydown",r,s)},t.offKeyup=function(r,s){return this.removeEvent("keyup",r,s)},t.keyup=function(r,s){return this.addEvent("keyup",r,s)},t.addEvent=function(r,s,a){return isArray$1(s)?this.on("".concat(r,".").concat(getArrangeCombi(s).join(".")),a):isString(s)?this.on("".concat(r,".").concat(s),a):this.on(r,s),this},t.removeEvent=function(r,s,a){return isArray$1(s)?this.off("".concat(r,".").concat(getArrangeCombi(s).join(".")),a):isString(s)?this.off("".concat(r,".").concat(s),a):this.off(r,s),this},t.triggerEvent=function(r,s){this.ctrlKey=s.ctrlKey,this.shiftKey=s.shiftKey,this.altKey=s.altKey,this.metaKey=s.metaKey;var a=getKey(s.keyCode,s.key),l=a==="ctrl"||a==="shift"||a==="meta"||a==="alt",c={key:a,isToggle:l,inputEvent:s,keyCode:s.keyCode,ctrlKey:s.ctrlKey,altKey:s.altKey,shiftKey:s.shiftKey,metaKey:s.metaKey};this.trigger(r,c),this.trigger("".concat(r,".").concat(a),c);var d=getCombi(s,a);d.length>1&&this.trigger("".concat(r,".").concat(d.join(".")),c)},e})(EventEmitter$2);function __values(o){var e=typeof Symbol=="function"&&Symbol.iterator,t=e&&o[e],r=0;if(t)return t.call(o);if(o&&typeof o.length=="number")return{next:function(){return o&&r>=o.length&&(o=void 0),{value:o&&o[r++],done:!o}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(o,e){var t=typeof Symbol=="function"&&o[Symbol.iterator];if(!t)return o;var r=t.call(o),s,a=[],l;try{for(;(e===void 0||e-- >0)&&!(s=r.next()).done;)a.push(s.value)}catch(c){l={error:c}}finally{try{s&&!s.done&&(t=r.return)&&t.call(r)}finally{if(l)throw l.error}}return a}function __spread(){for(var o=[],e=0;e<arguments.length;e++)o=o.concat(__read(arguments[e]));return o}var isUndefined=function(o){return typeof o>"u"},ComponentEvent=(function(){function o(t,r){var s,a;if(this._canceled=!1,r)try{for(var l=__values(Object.keys(r)),c=l.next();!c.done;c=l.next()){var d=c.value;this[d]=r[d]}}catch(u){s={error:u}}finally{try{c&&!c.done&&(a=l.return)&&a.call(l)}finally{if(s)throw s.error}}this.eventType=t}var e=o.prototype;return e.stop=function(){this._canceled=!0},e.isCanceled=function(){return this._canceled},o})(),Component=(function(){function o(){this._eventHandler={}}var e=o.prototype;return e.trigger=function(t){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var a=t instanceof ComponentEvent?t.eventType:t,l=__spread(this._eventHandler[a]||[]);return l.length<=0?this:(t instanceof ComponentEvent?(t.currentTarget=this,l.forEach(function(c){c(t)})):l.forEach(function(c){c.apply(void 0,__spread(r))}),this)},e.once=function(t,r){var s=this;if(typeof t=="object"&&isUndefined(r)){var a=t;for(var l in a)this.once(l,a[l]);return this}else if(typeof t=="string"&&typeof r=="function"){var c=function(){for(var d=[],u=0;u<arguments.length;u++)d[u]=arguments[u];r.apply(void 0,__spread(d)),s.off(t,c)};this.on(t,c)}return this},e.hasOn=function(t){return!!this._eventHandler[t]},e.on=function(t,r){if(typeof t=="object"&&isUndefined(r)){var s=t;for(var a in s)this.on(a,s[a]);return this}else if(typeof t=="string"&&typeof r=="function"){var l=this._eventHandler[t];isUndefined(l)&&(this._eventHandler[t]=[],l=this._eventHandler[t]),l.push(r)}return this},e.off=function(t,r){if(isUndefined(t))return this._eventHandler={},this;if(isUndefined(r)){if(typeof t=="string")return delete this._eventHandler[t],this;var s=t;for(var a in s)this.off(a,s[a]);return this}var l=this._eventHandler[t];if(l){for(var c=l.length,d=0;d<c;++d)if(l[d]===r){l.splice(d,1),c<=1&&delete this._eventHandler[t];break}}return this},o.VERSION="3.0.5",o})();function keys(o){return Object.keys(o)}function isObject$1(o){return typeof o=="object"}function isFunction(o){return typeof o=="function"}var OBSERVERS_PATH="__observers__",COMPUTED_PATH="__computed__",CFCS_DETECTED_DEPENDENCIES_VERSION=1,CFCS_DETECTED_DEPENDENCIES="__CFCS_DETECTED_DEPENDENCIES__",extendStatics$4=function(o,e){return extendStatics$4=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics$4(o,e)};function __extends$4(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics$4(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function getDetectedStack(){Object[CFCS_DETECTED_DEPENDENCIES]=Object[CFCS_DETECTED_DEPENDENCIES]||{};var o=Object[CFCS_DETECTED_DEPENDENCIES];return o[CFCS_DETECTED_DEPENDENCIES_VERSION]=o[CFCS_DETECTED_DEPENDENCIES_VERSION]||[],o[CFCS_DETECTED_DEPENDENCIES_VERSION]}function getCurrentDetected(){var o=getDetectedStack();return o[o.length-1]}function detectDependencies(o){var e=getDetectedStack(),t=[],r={host:o,observers:t,push:function(s){o!==s&&t.indexOf(s)===-1&&t.push(s)}};return e.push(r),r}function endDetectDependencies(){var o=getDetectedStack();return o.pop()}var Observer=(function(){function o(t){this._emitter=new Component,this._current=t}var e=o.prototype;return Object.defineProperty(e,"current",{get:function(){var t=getCurrentDetected();return t==null||t.push(this),this._current},set:function(t){this._setCurrent(t)},enumerable:!1,configurable:!0}),e.subscribe=function(t){return this.current,this._emitter.on("update",t),this},e.unsubscribe=function(t){return this._emitter.off("update",t),this},e._setCurrent=function(t){var r=this._current,s=t!==r;this._current=t,s&&this._emitter.trigger("update",t,r)},e.toString=function(){return"".concat(this.current)},e.valueOf=function(){return this.current},o})(),ComputedObserver=(function(o){__extends$4(e,o);function e(r){var s=o.call(this)||this;return s._computedCallback=r,s._registered=[],s._onCheckUpdate=function(){s._setCurrent(s.current)},s._current=s.current,s}var t=e.prototype;return Object.defineProperty(t,"current",{get:function(){var r=this;detectDependencies(this);var s=this._computedCallback(),a=endDetectDependencies();return this._registered.forEach(function(l){l.unsubscribe(r._onCheckUpdate)}),a.observers.forEach(function(l){l.subscribe(r._onCheckUpdate)}),this._registered=a.observers,s},enumerable:!1,configurable:!0}),e})(Observer);function injectObserve(o,e,t){t===void 0&&(t=e);var r={configurable:!0,get:function(){return getObserver(this,t).current},set:function(s){getObserver(this,t,s).current=s}};Object.defineProperty(o,e,r),t!==e&&Object.defineProperty(o,t,{configurable:!0,get:function(){return getObserver(this,t).current}})}function Observe(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];return o.length>1?injectObserve(o[0],o[1]):function(t,r){return injectObserve(t,r,o[0])}}function injectReactiveSubscribe(o){o.subscribe=function(e,t){this[e],getObserver(this,e).subscribe(t)},o.unsubscribe=function(e,t){var r=this;if(!e){keys(getObservers(this)).forEach(function(s){r.unsubscribe(s)});return}e in this&&getObserver(this,e).unsubscribe(t)}}function makeReactiveObject(o,e){var t=isFunction(o)?o():o,r={};return defineObservers(r),keys(t).forEach(function(s){var a=t[s];isObserver(a)?setObserver(r,s,a):setObserver(r,s,observe(a)),Observe(s)(r,s)}),injectReactiveSubscribe(r),r}function reactive(o){return makeReactiveObject(o)}function partialReactive(o){return makeReactiveObject(o)}function observe(o){return new Observer(o)}function computed(o){return new ComputedObserver(o)}function defineObservers(o){var e={};return Object.defineProperty(o,OBSERVERS_PATH,{get:function(){return e}}),e}function getObservers(o,e){var t,r;o[OBSERVERS_PATH]||defineObservers(o);var s=o[OBSERVERS_PATH];{var a=(r=(t=o==null?void 0:o.constructor)===null||t===void 0?void 0:t.prototype)===null||r===void 0?void 0:r[COMPUTED_PATH];a&&a.forEach(function(l){!(l in s)&&l in o&&o[l]})}return s}function getObserver(o,e,t){var r=getObservers(o);return r[e]||(r[e]=observe(t)),r[e]}function setObserver(o,e,t){var r=getObservers(o);r[e]=t}function isObserver(o){return o&&isObject$1(o)&&"current"in o&&"subscribe"in o&&"unsubscribe"in o}function __spreadArray$2(o,e,t){if(t||arguments.length===2)for(var r=0,s=e.length,a;r<s;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return o.concat(a||Array.prototype.slice.call(e))}var OrderMap=(function(){function o(e){this.separator=e,this.orderMap={}}return o.prototype.getFullName=function(e){return e.join(this.separator)},o.prototype.get=function(e){return this.orderMap[this.getFullName(e)]},o.prototype.hasName=function(e){var t=e.length;if(!t)return!1;var r=e[t-1],s=this.get(e.slice(0,t-1));return s?s.indexOf(r)>=0:!1},o.prototype.gets=function(e,t){t===void 0&&(t=!0);var r=[],s=this;function a(l,c){var d=s.get(l);if(d)return d.forEach(function(u){var g=__spreadArray$2(__spreadArray$2([],c,!0),[u],!1),f=a(__spreadArray$2(__spreadArray$2([],l,!0),[u],!1),g);(!f||!f.length)&&r.push(__spreadArray$2(__spreadArray$2([],c,!0),[u],!1))}),d}return a(e,t?e:[]),r},o.prototype.set=function(e,t){var r=this;return e.forEach(function(s,a){r.addName(e.slice(0,a),s)}),this.orderMap[this.getFullName(e)]=t,t},o.prototype.add=function(e){var t=e.length;return t?this.addName(e.slice(0,-1),e[t-1]):[]},o.prototype.addName=function(e,t){var r=this.get(e)||this.set(e,[]);return r.indexOf(t)===-1&&r.push(t),r},o.prototype.findIndex=function(e,t){var r=this.orderMap[this.getFullName(e)];return r?r.indexOf(t):-1},o.prototype.remove=function(e){var t=this.getFullName(e),r=this.orderMap;for(var s in r)s.indexOf(t)===0&&delete r[s];var a=e.length;if(a){var l=e.slice(0,-1),c=e[a-1];this.splice(l,this.findIndex(l,c),1)}return this},o.prototype.filter=function(e,t,r){r===void 0&&(r=!0);var s=this.gets(e,r).filter(t),a=new o(this.separator),l=r?[]:e;return s.forEach(function(c){a.add(__spreadArray$2(__spreadArray$2([],l,!0),c,!0))}),a},o.prototype.splice=function(e,t,r){for(var s=[],a=3;a<arguments.length;a++)s[a-3]=arguments[a];var l=this.get(e)||this.set(e,[]);return l.splice.apply(l,__spreadArray$2([t,r],s,!1)),this},o.prototype.clear=function(){this.orderMap={}},o.prototype.setObject=function(e){var t=this.orderMap;for(var r in e)t[r]=e[r].slice()},o.prototype.getObject=function(){var e={},t=this.orderMap;for(var r in t)e[r]=t[r].slice();return e},o.prototype.clone=function(){var e=new o(this.separator);return e.setObject(e.orderMap),e},o})(),extendStatics$3=function(o,e){return extendStatics$3=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics$3(o,e)};function __extends$3(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics$3(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign$4=function(){return __assign$4=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$4.apply(this,arguments)};function __decorate$1(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a}function __spreadArray$1(o,e,t){if(t||arguments.length===2)for(var r=0,s=e.length,a;r<s;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return o.concat(a||Array.prototype.slice.call(e))}function cubic(o,e,t){var r=1-t;return t*t*t+3*t*t*r*e+3*t*r*r*o}function solveFromX(o,e,t){for(var r=t,s=t,a=1;Math.abs(a)>1/1e3;){if(s=cubic(o,e,r),a=s-t,Math.abs(a)<1/1e3)return r;r-=a/2}return r}function bezier(o,e,t,r){var s=function(a){var l=solveFromX(o,t,between(a,0,1));return cubic(e,r,l)};return s.easingName="cubic-bezier(".concat(o,",").concat(e,",").concat(t,",").concat(r,")"),s}function steps(o,e){var t=function(r){var s=1/o;return r>=1?1:(e==="start"?s:0)+Math.floor(r/s)*s};return t.easingName="steps(".concat(o,", ").concat(e,")"),t}var STEP_START=steps(1,"start"),STEP_END=steps(1,"end"),LINEAR=bezier(0,0,1,1),EASE=bezier(.25,.1,.25,1),EASE_IN=bezier(.42,0,1,1),EASE_OUT=bezier(0,0,.58,1),EASE_IN_OUT=bezier(.42,0,.58,1),_a,PREFIX="__SCENEJS_",DATA_SCENE_ID="data-scene-id",TIMING_FUNCTION="animation-timing-function",ROLES={transform:{},filter:{},attribute:{},html:!0},ALIAS={easing:[TIMING_FUNCTION]},FIXED=(_a={},_a[TIMING_FUNCTION]=!0,_a.contents=!0,_a.html=!0,_a),MAXIMUM=1e6,THRESHOLD=1e-6,DURATION="duration",FILL_MODE="fillMode",DIRECTION="direction",ITERATION_COUNT="iterationCount",DELAY="delay",EASING="easing",PLAY_SPEED="playSpeed",EASING_NAME="easingName",ITERATION_TIME="iterationTime",PAUSED="paused",ENDED="ended",TIMEUPDATE="timeupdate",PLAY="play",RUNNING="running",ITERATION="iteration",START_ANIMATION="startAnimation",PAUSE_ANIMATION="pauseAnimation",ALTERNATE="alternate",REVERSE="reverse",ALTERNATE_REVERSE="alternate-reverse",NORMAL="normal",INFINITE="infinite",PLAY_STATE="playState",PLAY_CSS="playCSS",PREV_TIME="prevTime",TICK_TIME="tickTime",CURRENT_TIME="currentTime",SELECTOR="selector",TRANSFORM_NAME="transform",EASINGS={linear:LINEAR,ease:EASE,"ease-in":EASE_IN,"ease-out":EASE_OUT,"ease-in-out":EASE_IN_OUT,"step-start":STEP_START,"step-end":STEP_END},NAME_SEPARATOR="_///_",OPTIONS=[DURATION,FILL_MODE,DIRECTION,ITERATION_COUNT,DELAY,EASING,PLAY_SPEED],PropertyObject=(function(){function o(e,t){this.prefix="",this.suffix="",this.model="",this.type="",this.separator=",",t&&this.setOptions(t),this.value=isString(e)?e.split(this.separator):e}return o.prototype.setOptions=function(e){for(var t in e)this[t]=e[t];return this},o.prototype.size=function(){return this.value.length},o.prototype.get=function(e){return this.value[e]},o.prototype.set=function(e,t){return this.value[e]=t,this},o.prototype.clone=function(){var e=this,t=e.separator,r=e.prefix,s=e.suffix,a=e.model,l=e.type,c=this.value.map(function(d){return isPropertyObject(d)?d.clone():d});return new o(c,{separator:t,prefix:r,suffix:s,model:a,type:l})},o.prototype.toValue=function(){return this.prefix+this.join()+this.suffix},o.prototype.join=function(){return this.value.map(function(e){return isPropertyObject(e)?e.toValue():e}).join(this.separator)},o.prototype.forEach=function(e){return this.value.forEach(e),this},o})();function splitStyle(o){for(var e=splitText(o,";"),t={},r=e.length,s=r,a=0;a<r;++a){var l=splitText(e[a],":");if(l.length<2||!l[1]){--s;continue}t[l[0].trim()]=toPropertyObject(l[1].trim())}return{styles:t,length:s}}function arrayToColorObject(o){var e=RGBA;return o.length===3&&(o[3]=1),new PropertyObject(o,{model:e,separator:",",type:"color",prefix:"".concat(e,"("),suffix:")"})}function stringToBracketObject(o){var e=splitBracket(o),t=e.prefix,r=e.value,s=e.suffix;if(typeof r>"u")return o;if(COLOR_MODELS.indexOf(t)>-1)return arrayToColorObject(stringToRGBA(o));var a=toPropertyObject(r,t),l=[r],c=",",d="".concat(t,"("),u=")".concat(s);return isPropertyObject(a)&&(c=a.separator,l=a.value,d+=a.prefix,u=a.suffix+u),new PropertyObject(l,{separator:c,model:t,prefix:d,suffix:u})}function arrayToPropertyObject(o,e){return new PropertyObject(o,{type:"array",separator:e})}function stringToColorObject(o){var e=stringToRGBA(o);return e?arrayToColorObject(e):o}function toPropertyObject(o,e){if(!isString(o))return isArray$1(o)?arrayToPropertyObject(o,","):o;var t=splitComma(o);return t.length>1?arrayToPropertyObject(t.map(function(r){return toPropertyObject(r)}),","):(t=splitSpace(o),t.length>1?arrayToPropertyObject(t.map(function(r){return toPropertyObject(r)})," "):(t=/^(['"])([^'"]*)(['"])$/g.exec(o),t&&t[1]===t[3]?new PropertyObject([toPropertyObject(t[2])],{prefix:t[1],suffix:t[1]}):o.indexOf("(")!==-1?stringToBracketObject(o):o.charAt(0)==="#"&&e!=="url"?stringToColorObject(o):o))}function toObject(o,e){e===void 0&&(e={});var t=o.model;if(t){o.setOptions({model:"",suffix:"",prefix:""});var r=o.size()>1?o:o.get(0);e[t]=r}else o.forEach(function(s){toObject(s,e)});return e}function getType(o){var e=typeof o;if(e===OBJECT){if(isArray$1(o))return ARRAY;if(isPropertyObject(o))return PROPERTY}else if(e===STRING||e===NUMBER)return"value";return e}function isPureObject(o){return isObject$2(o)&&o.constructor===Object}function getNames(o,e){var t=[];if(isPureObject(o))for(var r in o)e.push(r),t=t.concat(getNames(o[r],e)),e.pop();else t.push(e.slice());return t}function updateFrame(o,e){for(var t in e){var r=e[t];if(!isPureObject(r)){o[t]=!0;continue}isObject$2(o[t])||(o[t]={}),updateFrame(o[t],e[t])}return o}function toFixed(o){return Math.round(o*MAXIMUM)/MAXIMUM}function getValueByNames(o,e,t){t===void 0&&(t=o.length);for(var r=e,s=0;s<t;++s){if(!isObject$2(r)||r==null)return;r=r[o[s]]}return r}function isInProperties(o,e,t){var r=e.length,s=o;if(r===0)return!1;for(var a=0;a<r;++a)if(s===!0||(s=s[e[a]],!s||!t&&s===!0))return!1;return!0}function isRole(o,e){return isInProperties(ROLES,o,e)}function isFixed$1(o){return isInProperties(FIXED,o,!0)}function setPlayCSS(o,e){o.state[PLAY_CSS]=e}function isPausedCSS(o){return o.state[PLAY_CSS]&&o.isPaused()}function isEndedCSS(o){return!o.isEnded()&&o.state[PLAY_CSS]}function makeId(o){for(;;){var e="".concat(Math.floor(Math.random()*1e7));if(!IS_WINDOW||!o)return e;var t=$('[data-scene-id="'.concat(e,'"]'));if(!t)return e}}function getRealId(o){return o.getId()||o.setId(makeId(!1)).getId()}function toId(o){return"".concat(o).match(/[0-9a-zA-Z]+/g).join("")}function playCSS(o,e,t,r){if(r===void 0&&(r={}),!(!ANIMATION||o.getPlayState()===RUNNING)){var s=t||START_ANIMATION;if(isPausedCSS(o))o.addPlayClass(!0,s,r);else{o.isEnded()&&o.setTime(0),e&&o.exportCSS({className:s});var a=o.addPlayClass(!1,s,r);if(!a)return;addAnimationEvent(o,a),setPlayCSS(o,!0)}o.setPlayState(RUNNING)}}function addAnimationEvent(o,e){var t=o.state,r=o.getDuration(),s=!r||!isFinite(r),a=function(){setPlayCSS(o,!1),o.finish()},l=function(){o.trigger(PLAY),addEvent(e,"animationcancel",a),addEvent(e,"animationend",a),addEvent(e,"animationiteration",c)};o.once(ENDED,function(){removeEvent(e,"animationcancel",a),removeEvent(e,"animationend",a),removeEvent(e,"animationiteration",c),removeEvent(e,"animationstart",l)});var c=function(d){var u=d.elapsedTime,g=u,f=s?0:g/r;t[CURRENT_TIME]=g,o.setIteration(f)};addEvent(e,"animationstart",l)}function getEasing(o){var e;if(isString(o))if(o in EASINGS)e=EASINGS[o];else{var t=toPropertyObject(o);if(isString(t))return 0;if(t.model==="cubic-bezier")o=t.value.map(function(r){return parseFloat(r)}),e=bezier(o[0],o[1],o[2],o[3]);else if(t.model==="steps")e=steps(parseFloat(t.value[0]),t.value[1]);else return 0}else isArray$1(o)?e=bezier(o[0],o[1],o[2],o[3]):e=o;return e}function isPropertyObject(o){if(!o)return!1;var e=o.constructor.prototype;return!!(e.clone&&e.get&&e.setOptions)}function isScene(o){return o&&!!o.constructor.prototype.getItem}function isSceneItem(o){return o&&!!o.constructor.prototype.getFrame}function isFrame(o){return o&&!!o.constructor.prototype.toCSSText}function flatSceneObject(o,e){var t={};for(var r in o){var s=o[r];if(isFrame(s))t[r]=s;else if(isObject$2(s)){var a=flatSceneObject(s,e);for(var l in a)t["".concat(r).concat(e).concat(l)]=a[l]}}return t}function isArrayLike(o){return"length"in o&&o.length>=0}function GetterSetter(o,e,t){return function(r){var s=r.prototype;o.forEach(function(a){s[camelize("get ".concat(a))]=function(){return this[t][a]}}),e.forEach(function(a){s[camelize("set ".concat(a))]=function(l){return this[t][a]=l,this}})}}function isDirectionReverse(o,e,t){return t===REVERSE?!0:e!==INFINITE&&o===e&&e%1===0?t===(o%2>=1?ALTERNATE_REVERSE:ALTERNATE):t===(o%2>=1?ALTERNATE:ALTERNATE_REVERSE)}var ANIMATOR_SETTERS=["id",ITERATION_COUNT,DELAY,FILL_MODE,DIRECTION,PLAY_SPEED,DURATION,PLAY_SPEED,ITERATION_TIME,PLAY_STATE],ANIMATOR_GETTERS=__spreadArray$1(__spreadArray$1([],ANIMATOR_SETTERS,!0),[EASING,EASING_NAME],!1),Animator=(function(o){__extends$3(e,o);function e(t){var r=o.call(this)||this;return r.timerId=0,r.state=reactive({id:"",easing:0,easingName:"linear",iterationCount:1,delay:0,fillMode:"forwards",direction:NORMAL,playSpeed:1,currentTime:0,iterationTime:-1,iteration:0,tickTime:0,prevTime:0,playState:PAUSED,duration:0}),r.setOptions(t),r}return e.prototype.setEasing=function(t){var r=getEasing(t),s=r&&r[EASING_NAME]||"linear",a=this.state;return a[EASING]=r,a[EASING_NAME]=s,this},e.prototype.setOptions=function(t){t===void 0&&(t={});for(var r in t){var s=t[r];if(r===EASING){this.setEasing(s);continue}else if(r===DURATION){s&&this.setDuration(s);continue}OPTIONS.indexOf(r)>-1&&(this.state[r]=s)}return this},e.prototype.getTotalDuration=function(){return this.getActiveDuration(!0)},e.prototype.getActiveDuration=function(t){var r=this.state,s=r[ITERATION_COUNT];return s===INFINITE?1/0:(t?r[DELAY]:0)+this.getDuration()*s},e.prototype.isEnded=function(){return this.state[TICK_TIME]===0&&this.state[PLAY_STATE]===PAUSED?!0:!(this.getTime()<this.getActiveDuration())},e.prototype.isPaused=function(){return this.state[PLAY_STATE]===PAUSED},e.prototype.start=function(t){t===void 0&&(t=this.state[DELAY]);var r=this.state;return r[PLAY_STATE]=RUNNING,r[TICK_TIME]>=t?(this.trigger(PLAY),!0):!1},e.prototype.play=function(t){var r=this,s=this.state,a=s[DELAY],l=this.getTime();return s[PLAY_STATE]=RUNNING,this.isEnded()&&(l===0||l>=this.getActiveDuration())&&this.setTime(-a,!0),this.timerId=requestAnimationFrame$1(function(c){s[PREV_TIME]=c,r.tick(c,t)}),this.start(),this},e.prototype.pause=function(){var t=this.state;return t[PLAY_STATE]!==PAUSED&&(t[PLAY_STATE]=PAUSED,this.trigger(PAUSED)),cancelAnimationFrame(this.timerId),this},e.prototype.finish=function(){return this.setTime(0),this.state[TICK_TIME]=0,this.end(),this},e.prototype.end=function(){return this.pause(),this.trigger(ENDED),this},e.prototype.setTime=function(t,r,s,a){var l=this.getActiveDuration(),c=this.state,d=c[TICK_TIME],u=c[DELAY],g=r?t:this.getUnitTime(t);c[TICK_TIME]=u+g,g<0?g=0:g>l&&(g=l),c[CURRENT_TIME]=g,this.calculate();var f=r&&!s,m=c[TICK_TIME],_=isString(t)?parseFloat(t):t;return f&&d<u&&_>=0&&this.start(0),a==null||a(),f&&(m<d||this.isEnded())?(this.end(),this):this.isDelay()?this:(this.trigger(TIMEUPDATE,{currentTime:g,time:this.getIterationTime(),iterationCount:c[ITERATION]}),this)},e.prototype.getTime=function(){return this.state[CURRENT_TIME]},e.prototype.getUnitTime=function(t){if(isString(t)){var r=this.getDuration()||100;if(t==="from")return 0;if(t==="to")return r;var s=splitUnit(t),a=s.unit,l=s.value;return a==="%"?(!this.getDuration()&&this.setDuration(r),toFixed(parseFloat(t)/100*r)):a===">"?l+THRESHOLD:l}else return toFixed(t)},e.prototype.isDelay=function(){var t=this.state,r=t[DELAY],s=t[TICK_TIME];return r>0&&s<r},e.prototype.setIteration=function(t){var r=this.state,s=Math.floor(t),a=r[ITERATION_COUNT]===INFINITE?1/0:r[ITERATION_COUNT];return r[ITERATION]<s&&s<a&&this.trigger(ITERATION,{currentTime:r[CURRENT_TIME],iterationCount:s}),r[ITERATION]=t,this},e.prototype.calculate=function(){var t=this.state,r=t[ITERATION_COUNT],s=t[FILL_MODE],a=t[DIRECTION],l=this.getDuration(),c=this.getTime(),d=l===0?0:c/l,u=l?c%l:0;if(!l)return this.setIterationTime(0),this;this.setIteration(d);var g=isDirectionReverse(d,r,a),f=isFinite(l);if(f&&g&&(u=l-u),f&&r!==INFINITE){var m=s==="both"||s==="forwards";d>=r&&(u=l*(m?r%1||1:0),g&&(u=l-u))}return this.setIterationTime(u),this},e.prototype.tick=function(t,r){var s=this;if(!this.isPaused()){var a=this.state,l=a[PLAY_SPEED],c=a[PREV_TIME],d=a[DELAY],u=a[TICK_TIME],g=u+Math.min(1e3,t-c)/1e3*l;a[PREV_TIME]=t,r&&r>=g?(this.setTime(r-d,!0),this.pause()):this.setTime(g-d,!0),a[PLAY_STATE]!==PAUSED&&(this.timerId=requestAnimationFrame$1(function(f){s.tick(f,r)}))}},e=__decorate$1([GetterSetter(ANIMATOR_GETTERS,ANIMATOR_SETTERS,"state")],e),e})(EventEmitter$2);function toInnerProperties(o,e){if(e===void 0&&(e=[]),!o)return"";var t=[],r=getKeys(o);return sortOrders(r,e),r.forEach(function(s){t.push("".concat(s.replace(/\d$/g,""),"(").concat(o[s],")"))}),t.join(" ")}function clone(o,e){return e===void 0&&(e=!1),merge({},o,e)}function merge(o,e,t){t===void 0&&(t=!1);for(var r in e){var s=e[r],a=getType(s);a===PROPERTY?o[r]=t?s.toValue():s.clone():a===FUNCTION?o[r]=t?getValue([r],s):s:a===ARRAY?o[r]=s.slice():a===OBJECT?isObject$2(o[r])&&!isPropertyObject(o[r])?merge(o[r],s,t):o[r]=clone(s,t):o[r]=e[r]}return o}function getPropertyName(o){return o[0]in ALIAS?ALIAS[o[0]]:o}function getValue(o,e){var t=getType(e);if(t===PROPERTY)return e.toValue();if(t===FUNCTION){if(o[0]!==TIMING_FUNCTION)return getValue(o,e())}else if(t===OBJECT)return clone(e,!0);return e}var Frame=(function(o){__extends$3(e,o);function e(t){t===void 0&&(t={});var r=o.call(this)||this;return r.properties={},r.orderMap=new OrderMap(NAME_SEPARATOR),r.properties={},r.set(t),r}return e.prototype.get=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var s=this.raw.apply(this,t);return getValue(getPropertyName(t),s)},e.prototype.getOrders=function(t){return this.orderMap.get(t)},e.prototype.setOrders=function(t,r){var s=this.orderMap.set(t,r);return this._update(),s},e.prototype.getOrderObject=function(){return this.orderMap.getObject()},e.prototype.setOrderObject=function(t){this.orderMap.setObject(t),this._update()},e.prototype.getKeys=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var s=this.raw.apply(this,t),a=getType(s)===OBJECT?getKeys(s):[];return sortOrders(a,this.orderMap.get(t)),a},e.prototype.gets=function(){for(var t=this,r=[],s=0;s<arguments.length;s++)r[s]=arguments[s];var a=this.get.apply(this,r),l=this.getKeys.apply(this,r);return l.map(function(c){var d=a[c];return{key:c,value:d,children:t.gets.apply(t,__spreadArray$1(__spreadArray$1([],r,!1),[c],!1))}})},e.prototype.raw=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return getValueByNames(getPropertyName(t),this.properties)},e.prototype.remove=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var s=getPropertyName(t),a=s.length;if(!a)return this;this.orderMap.remove(s);var l=getValueByNames(s,this.properties,a-1);return isObject$2(l)&&delete l[s[a-1]],this._update(),this},e.prototype.set=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return this._set.apply(this,t),this._update(),this},e.prototype.getNames=function(){return getNames(this.properties,[])},e.prototype.has=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var s=getPropertyName(t),a=s.length;return a?!isUndefined$1(getValueByNames(s,this.properties,a)):!1},e.prototype.clone=function(){var t=new e;return t.setOrderObject(this.orderMap.orderMap),t.merge(this)},e.prototype.merge=function(t){var r=this.properties,s=t.properties;return s&&merge(r,s),this},e.prototype.toCSSObject=function(t){var r=this.get(),s={};for(var a in r)if(!isRole([a],!0)){var l=r[a];a===TIMING_FUNCTION&&(a=TIMING_FUNCTION.replace("animation",ANIMATION),l=(isString(l)?l:l[EASING_NAME])||"initial"),t&&(a=camelize(a.replace(/^[-]+/g,""))),s[a]=l}var c=toInnerProperties(r[TRANSFORM_NAME],this.orderMap.get([TRANSFORM_NAME])),d=toInnerProperties(r.filter,this.orderMap.get([FILTER]));return TRANSFORM&&c&&(s[TRANSFORM]=c),FILTER&&d&&(s[FILTER]=d),s},e.prototype.toCSSText=function(){var t=this.toCSSObject(),r=[],s=getKeys(t);return sortOrders(s,this.orderMap.get([])),s.forEach(function(a){r.push("".concat(decamelize(a,"-"),":").concat(t[a],";"))}),r.join("")},e.prototype.toCSS=function(){var t=this.toCSSObject(),r=[],s=getKeys(t);return sortOrders(s,this.orderMap.get([])),s.forEach(function(a){r.push("".concat(a,":").concat(t[a],";"))}),r.join("")},e.prototype.clear=function(){return this.properties={},this.orderMap.clear(),this},e.prototype._set=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var s=this,a=t.length,l=t.slice(0,-1),c=t[a-1],d=l[0];if(a===1&&isFrame(c))s.merge(c);else if(d in ALIAS)s._setByPath(ALIAS[d],c);else if(a===2&&isArray$1(d))s._setByPath(d,c);else if(isPropertyObject(c))isRole(l)?s._set.apply(s,__spreadArray$1(__spreadArray$1([],l,!1),[toObject(c)],!1)):s._setByPath(l,c);else if(isArray$1(c))s._setByPath(l,c);else if(isObject$2(c)){!s.has.apply(s,l)&&isRole(l)&&s._setByPath(l,{});for(var u in c)s._set.apply(s,__spreadArray$1(__spreadArray$1([],l,!1),[u,c[u]],!1))}else if(isString(c)){if(isRole(l,!0)){if(isFixed$1(l)||!isRole(l))this._setByPath(l,c);else{var g=toPropertyObject(c);isObject$2(g)&&s._set.apply(s,__spreadArray$1(__spreadArray$1([],l,!1),[g],!1))}return this}else{var f=splitStyle(c),m=f.styles,_=f.length;for(var v in m)s._set.apply(s,__spreadArray$1(__spreadArray$1([],l,!1),[v,m[v]],!1));if(_)return this}s._setByPath(l,c)}else s._setByPath(l,c)},e.prototype._setByPath=function(t,r){for(var s=this.properties,a=t.length,l=0;l<a-1;++l){var c=t[l];!(c in s)&&(s[c]={}),s=s[c]}if(a){var d=t[a-1];this.orderMap.add(t),a===1&&d===TIMING_FUNCTION?s[d]=getEasing(r):s[d]=isString(r)&&!isFixed$1(t)?toPropertyObject(r,d):r}},e.prototype._update=function(){this.emit("update")},e})(EventEmitter$2);function dotArray(o,e,t,r){var s=e.length;return o.map(function(a,l){return l>=s?a:dot(a,e[l],t,r)})}function dotColor(o,e,t,r){var s=o.value,a=e.value,l=o.model,c=e.model;if(l!==c)return dot(o.toValue(),e.toValue(),t,r);s.length===3&&(s[3]=1),a.length===3&&(a[3]=1);for(var d=dotArray(s,a,t,r),u=l,g=0;g<3;++g)d[g]=parseInt(d[g],10);var f=new PropertyObject(d,{type:"color",model:u,prefix:"".concat(u,"("),suffix:")"});return f}function dotObject(o,e,t,r){var s=o.type;if(s==="color")return dotColor(o,e,t,r);var a=o.value,l=e.value,c=dotArray(a,l,t,r);return new PropertyObject(c,{type:s,separator:o.separator||e.separator,prefix:o.prefix||e.prefix,suffix:o.suffix||e.suffix,model:o.model||e.model})}function dot(o,e,t,r){if(r===0)return e;if(t===0||t+r===0)return o;var s=getType(o),a=getType(e),l=s===FUNCTION,c=a===FUNCTION;if(l||c)return function(){return dot(l?toPropertyObject(o()):o,c?toPropertyObject(e()):e,t,r)};if(s===a){if(s===PROPERTY)return dotObject(o,e,t,r);if(s===ARRAY)return dotArray(o,e,t,r);if(s!=="value")return o}else return o;var d=splitUnit("".concat(o)),u=splitUnit("".concat(e)),g;if(isNaN(d.value)||isNaN(u.value))return o;g=dot$1(d.value,u.value,t,r);var f=d.prefix||u.prefix,m=d.unit||u.unit;return!f&&!m?g:f+g+m}function dotValue(o,e,t,r,s,a){if(o===e)return r;if(o===t)return s;if(!a)return dot(r,s,o-e,t-o);var l=a((o-e)/(t-e)),c=dot(r,s,l,1-l);return c}function getNearTimeIndex(o,e){for(var t=o.length,r=0;r<t;++r){if(o[r]===e)return[r,r];if(o[r]>e)return[r>0?r-1:0,r]}return[t-1,t-1]}function makeAnimationProperties(o){var e=[];for(var t in o)e.push("".concat(ANIMATION,"-").concat(decamelize(t),":").concat(o[t],";"));return e.join("")}function addTime(o,e){for(var t=o.length,r=0;r<t;++r)if(e<o[r]){o.splice(r,0,e);return}o[t]=e}function addEntry(o,e,t){var r=o[o.length-1];(!r||r[0]!==e||r[1]!==t)&&o.push([toFixed(e),toFixed(t)])}function getEntries(o,e){var t=o.map(function(s){return[s,s]}),r=[];return e.forEach(function(s){for(var a=s[ITERATION_COUNT],l=s[DELAY],c=s[PLAY_SPEED],d=s[DIRECTION],u=Math.ceil(a),g=t[t.length-1][0],f=t.length,m=g*a,_=0;_<u;++_)for(var v=d===REVERSE||d===ALTERNATE&&_%2||d===ALTERNATE_REVERSE&&!(_%2),b=0;b<f;++b){var C=t[v?f-b-1:b],y=C[1],S=g*_+(v?g-C[0]:C[0]),w=t[v?f-b:b-1];if(S>m){if(b!==0){var E=g*_+(v?g-w[0]:w[0]),x=dot$1(w[1],y,m-E,S-m);addEntry(r,(l+g*a)/c,x)}break}else if(S===m&&r.length&&r[r.length-1][0]===m+l)break;addEntry(r,(l+S)/c,y)}l&&r.unshift([0,r[0][1]]),t=r,r=[]}),t}var SceneItem=(function(o){__extends$3(e,o);function e(t,r){var s=o.call(this)||this;return s.times=[],s.items={},s.nameMap=new OrderMap(NAME_SEPARATOR),s.elements=[],s.needUpdate=!0,s.registeredElement=!1,s.load(t,r),s}return e.prototype.getDuration=function(){var t=this.times,r=t.length;return(r===0?0:t[r-1])||this.state[DURATION]},e.prototype.size=function(){return this.times.length},e.prototype.setDuration=function(t){if(!t)return this;var r=this.getDuration();if(r>0){var s=t/r,a=this,l=a.times,c=a.items,d={};this.times=l.map(function(u){var g=toFixed(u*s);return d[g]=c[u],g}),this.items=d}else this.newFrame(t);return this},e.prototype.setId=function(t){var r=this.state,s=this.elements,a=s.length;if(r.id=t||makeId(!!a),a&&!r[SELECTOR]){var l=toId(this.getId());r[SELECTOR]="[".concat(DATA_SCENE_ID,'="').concat(l,'"]'),s.forEach(function(c){c.setAttribute(DATA_SCENE_ID,l)})}return this},e.prototype.set=function(t){for(var r=this,s=[],a=1;a<arguments.length;a++)s[a-1]=arguments[a];if(isSceneItem(t))return this.set(0,t);if(isArray$1(t))for(var l=t.length,c=0;c<l;++c){var d=l===1?0:this.getUnitTime("".concat(c/(l-1)*100,"%"));this.set(d,t[c])}else if(isObject$2(t)){var u=function(f){var m=t[f];splitComma(f).forEach(function(_){var v=r.getUnitTime(_);isNaN(v)?getNames(m,[_]).forEach(function(b){for(var C,y=getValueByNames(b.slice(1),m),S=isArray$1(y)?y:[getValueByNames(b,r.target),y],w=S.length,E=0;E<w;++E)(C=r.newFrame("".concat(E/(w-1)*100,"%"))).set.apply(C,__spreadArray$1(__spreadArray$1([],b,!1),[S[E]],!1))}):r.set(v,m)})};for(var d in t)u(d)}else if(!isUndefined$1(t)){var g=s[0];splitComma(t+"").forEach(function(f){var m=r.getUnitTime(f);if(isSceneItem(g)){var _=g.getDelay(),v=g.toObject(!r.hasFrame(m+_)),b=g.getDuration(),C=g.getDirection(),y=C.indexOf("reverse")>-1;for(var S in v){var w=y?b-parseFloat(S):parseFloat(S);r.set(m+w,v[S])}}else if(s.length===1&&isArray$1(g))g.forEach(function(x){r.set(m,x)});else{var E=r.newFrame(m);E.set.apply(E,s)}})}return this.needUpdate=!0,this},e.prototype.get=function(t){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var a=this.getFrame(t);return a&&a.get.apply(a,r)},e.prototype.getOrders=function(t){return this.needUpdate&&this.update(),this.nameMap.get(t)},e.prototype.setOrders=function(t,r){this.needUpdate&&this.update();var s=this.nameMap.set(t,r);return this.updateFrameOrders(),s},e.prototype.getOrderObject=function(){return this.nameMap.getObject()},e.prototype.setOrderObject=function(t){this.nameMap.setObject(t),this.updateFrameOrders()},e.prototype.remove=function(t){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];if(r.length){var a=this.getFrame(t);a&&a.remove.apply(a,r)}else this.removeFrame(t);return this.needUpdate=!0,this},e.prototype.append=function(t){return isSceneItem(t)?this.set(this.getDuration(),t):this.append(new e(t)),this},e.prototype.prepend=function(t){if(isSceneItem(t)){var r=t.getDuration()+t.getDelay(),s=this.getFrame(0);this.removeFrame(0),this.unshift(r),this.set(0,t),this.set(r+THRESHOLD,s)}else this.prepend(new e(t));return this},e.prototype.unshift=function(t){var r=this,s=r.times,a=r.items,l={};return this.times=s.map(function(c){var d=toFixed(t+c);return l[d]=a[c],d}),this.items=l,this},e.prototype.toObject=function(t){t===void 0&&(t=!0);var r={},s=this.getDelay();return this.forEach(function(a,l){r[(!l&&!t?THRESHOLD:0)+s+l]=a.clone()}),r},e.prototype.setSelector=function(t){return this.setElement(t),this},e.prototype.getElements=function(){return this.elements},e.prototype.setElements=function(t){return this.setElement(t)},e.prototype.setElement=function(t){t!==!0&&this.registeredElement!==t&&(this.registeredElement=t);var r=this.state,s=this.registeredElement,a=t,l=[];if(isFunction$1(s)&&(a=s(this.getId(),0)),a){if(a===!0||isString(a)){var c=isString(r[SELECTOR])&&r[SELECTOR]||"".concat(r.id),d=a===!0?c:a,u=/([\s\S]+)(:+[a-zA-Z]+)$/g.exec(d);try{l=toArray($(u?u[1]:d,!0))}catch(f){l=[]}r[SELECTOR]=d}else if(isArrayLike(a))l=toArray(a);else if(a instanceof Element)l=[a];else if("current"in a||"value"in a){var g=a.current||a.value;g?l=[g]:l=[]}}else return this;return l.length?(this.elements=l,this.setId(this.getId()),this.target=l[0].style,this.targetFunc=function(f){var m=f.get("attribute");if(m){var _=function(y){l.forEach(function(S){S.setAttribute(y,m[y])})};for(var v in m)_(v)}if(f.has("html")){var b=f.get("html");l.forEach(function(y){y.innerHTML=b})}var C=f.toCSSText();if(r.cssText!==C)return r.cssText=C,l.forEach(function(y){y.style.cssText+=C}),f},this):this},e.prototype.setTarget=function(t){return this.target=t,this.targetFunc=function(r){var s=r.get();for(var a in s)t[a]=s[a]},this},e.prototype.setCSS=function(t,r){return r===void 0&&(r=[]),this.set(t,fromCSS(this.elements,r)),this},e.prototype.setTime=function(t,r,s,a){var l=this;return o.prototype.setTime.call(this,t,r,s,function(){var c=l.getIterationTime(),d=l.getEasing()||a,u=l.getNowFrame(c,d),g=l.getTime();l.temp=u,l.trigger("animate",{frame:u,currentTime:g,time:c}),l.targetFunc&&l.targetFunc(u)}),this},e.prototype.update=function(){var t=this.nameMap,r={};this.forEach(function(l){updateFrame(r,l.properties)});var s=new OrderMap(NAME_SEPARATOR);function a(l,c){var d=getKeys(l);sortOrders(d,t.get(c)),s.set(c,d),d.forEach(function(u){var g=l[u];isObject$2(g)&&a(g,__spreadArray$1(__spreadArray$1([],c,!0),[u],!1))})}return a(r,[]),this.nameMap=s,this.forEach(function(l){l.setOrderObject(s.orderMap)}),this.needUpdate=!1,this},e.prototype.newFrame=function(t){var r=this.getFrame(t);return r||(r=new Frame,this.setFrame(t,r),r)},e.prototype.setFrame=function(t,r){var s=this.getUnitTime(t);return this.items[s]=r,addTime(this.times,s),this.needUpdate=!0,this},e.prototype.getFrame=function(t){return this.items[this.getUnitTime(t)]},e.prototype.removeFrame=function(t){var r=this.getUnitTime(t),s=this.items,a=this.times.indexOf(r);return delete s[r],a>-1&&this.times.splice(a,1),this.needUpdate=!0,this},e.prototype.hasFrame=function(t){return this.getUnitTime(t)in this.items},e.prototype.hasName=function(t){return this.needUpdate&&this.update(),!!this.nameMap.hasName(t)},e.prototype.mergeFrame=function(t,r){if(r){var s=this.newFrame(t);s.merge(r)}return this},e.prototype.getNowFrame=function(t,r,s){var a=this;this.needUpdate&&this.update();var l=new Frame,c=getNearTimeIndex(this.times,t),d=c[0],u=c[1],g=this.getEasing()||r,f=this.nameMap;if(this.hasName([TIMING_FUNCTION])){var m=this.getNowValue(t,[TIMING_FUNCTION],d,u,!1,0,!0);isFunction$1(m)&&(g=m)}if(s){var _=this.getFrame(t),v=_.orderMap.filter([],function(S){return _.has.apply(_,S)});for(var b in ROLES){var C=f.get([b]);v.get([b])&&C&&v.set([b],C)}f=v}var y=f.gets([]);return l.setOrderObject(f.orderMap),y.forEach(function(S){var w=a.getNowValue(t,S,d,u,s,g,isFixed$1(S));isUndefined$1(w)||l.set(S,w)}),l},e.prototype.getCurrentFrame=function(t,r){var s=this.getIterationTime(),a=t||this.needUpdate||!this.temp?this.getComputedFrame(s,r):this.temp;return this.temp=a,a},e.prototype.getComputedFrame=function(t,r,s){return this.getNowFrame(t,r,s)},e.prototype.load=function(t,r){var s;if(t===void 0&&(t={}),r===void 0&&(r=t.options),r&&this.setOptions(r),isArray$1(t))this.set(t);else if(t.keyframes)this.set(t.keyframes);else for(var a in t)a!=="options"&&this.set((s={},s[a]=t[a],s));return r&&r[DURATION]&&this.setDuration(r[DURATION]),this},e.prototype.clone=function(){var t=new e;return t.setOptions(this.state),t.setOrderObject(this.nameMap.orderMap),this.forEach(function(r,s){t.setFrame(s,r.clone())}),t},e.prototype.forEach=function(t){var r=this.times,s=this.items;return r.forEach(function(a){t(s[a],a,s)}),this},e.prototype.setOptions=function(t){t===void 0&&(t={}),o.prototype.setOptions.call(this,t);var r=t.id,s=t.selector,a=t.elements,l=t.element,c=t.target;return r&&this.setId(r),c?this.setTarget(c):s&&!this.state.noRegisterElement?this.setSelector(s):(a||l)&&this.setElement(a||l),this},e.prototype.toCSS=function(t,r,s){t===void 0&&(t={className:START_ANIMATION}),r===void 0&&(r=this.getDuration()),s===void 0&&(s=[]);var a=this.state,l=a[SELECTOR];if(!l)return"";var c=this.getDuration();a[DURATION]=c,s.push(a);var d=toArray(s).reverse(),u=toId(getRealId(this)),g=s[0],f=findIndex(d,function(D){return D[ITERATION_COUNT]===INFINITE||!isFinite(D[DURATION])},s.length-1),m=d.slice(0,f),_=r||m.reduce(function(D,I){return(I[DELAY]+D*I[ITERATION_COUNT])/I[PLAY_SPEED]},c),v=d.slice(f).reduce(function(D,I){return(D+I[DELAY])/I[PLAY_SPEED]},0),b=find$1(d,function(D){return D[EASING]&&D[EASING_NAME]},a)[EASING_NAME],C=d[f][ITERATION_COUNT],y=g[FILL_MODE],S=d[f][DIRECTION],w=makeAnimationProperties({fillMode:y,direction:S,iterationCount:C,delay:"".concat(v,"s"),name:"".concat(PREFIX,"KEYFRAMES_").concat(u),duration:"".concat(_/g[PLAY_SPEED],"s"),timingFunction:b}),E=splitComma(l).map(function(D){var I=/([\s\S]+)(:+[a-zA-Z]+)$/g.exec(D);return I?[I[1],I[2]]:[D,""]}),x=t.className,L=t.selector,k=isFunction$1(L)?L(this,l):L;return"\n ".concat(k||E.map(function(D){var I=D[0],T=D[1];return"".concat(I,".").concat(x).concat(T)})," {").concat(w,"}\n ").concat(E.map(function(D){var I=D[0],T=D[1];return"".concat(I,".").concat(PAUSE_ANIMATION).concat(T)})," {").concat(ANIMATION,"-play-state: paused;}\n @").concat(KEYFRAMES," ").concat(PREFIX,"KEYFRAMES_").concat(u,"{").concat(this._toKeyframes(_,m,S),"}")},e.prototype.exportCSS=function(t,r,s){if(!this.elements.length)return"";var a=this.toCSS(t,r,s),l=s&&!isUndefined$1(s[ITERATION_COUNT]);return l||(this.styledInjector&&(this.styledInjector.destroy(),this.styledInjector=null),this.styled=styled$1(a),this.styledInjector=this.styled.inject(this.getAnimationElement(),{original:!0})),this},e.prototype.pause=function(){return o.prototype.pause.call(this),isPausedCSS(this)&&this.pauseCSS(),this},e.prototype.pauseCSS=function(){return this.elements.forEach(function(t){addClass(t,PAUSE_ANIMATION)}),this},e.prototype.endCSS=function(){return this.elements.forEach(function(t){removeClass(t,PAUSE_ANIMATION),removeClass(t,START_ANIMATION)}),setPlayCSS(this,!1),this},e.prototype.end=function(){return isEndedCSS(this)&&this.endCSS(),o.prototype.end.call(this),this},e.prototype.playCSS=function(t,r,s){return t===void 0&&(t=!0),s===void 0&&(s={}),playCSS(this,t,r,s),this},e.prototype.getAnimationElement=function(){return this.elements[0]},e.prototype.addPlayClass=function(t,r,s){s===void 0&&(s={});var a=this.elements,l=a.length,c=makeAnimationProperties(s);if(l)return t?a.forEach(function(d){removeClass(d,PAUSE_ANIMATION)}):(a.forEach(function(d){d.style.cssText+=c,hasClass(d,START_ANIMATION)&&removeClass(d,START_ANIMATION)}),a.forEach(function(d){d.clientWidth}),a.forEach(function(d){addClass(d,START_ANIMATION)})),a[0]},e.prototype.clear=function(){return this.times=[],this.items={},this.nameMap=new OrderMap(NAME_SEPARATOR),this.styledInjector&&this.styledInjector.destroy(),this.styled=null,this.styledInjector=null,this.temp=null,this.needUpdate=!0,this},e.prototype.getNowValue=function(t,r,s,a,l,c,d){var u=this.times,g=u.length,f,m,_,v,b=isUndefined$1(s),C=isUndefined$1(a);if(b||C){var y=getNearTimeIndex(u,t);b&&(s=y[0]),C&&(a=y[1])}for(var S=s;S>=0;--S){var w=this.getFrame(u[S]);if(w.has.apply(w,r)){f=u[S],_=w;break}}var E=_&&_.raw.apply(_,r);if(l&&!isRole([r[0]]))return f===t?E:void 0;if(d)return E;for(var S=a;S<g;++S){var w=this.getFrame(u[S]);if(w.has.apply(w,r)){m=u[S],v=w;break}}var x=v&&v.raw.apply(v,r);return!_||isUndefined$1(E)?x:!v||isUndefined$1(x)||E===x?E:dotValue(t,Math.max(f,0),m,E,x,c)},e.prototype._toKeyframes=function(t,r,s){var a=this,l={},c=this.times.slice();if(!c.length)return"";var d=this.getDuration();!this.getFrame(0)&&c.unshift(0),!this.getFrame(d)&&c.push(d);var u=getEntries(c,r),g=u[u.length-1];g[0]<t&&addEntry(u,t,g[1]);var f=-1;return u.map(function(m){var _=m[0],v=m[1];l[v]||(l[v]=(!a.hasFrame(v)||v===0||v===d?a.getNowFrame(v):a.getNowFrame(v,0,!0)).toCSSText());var b=_/t*100;return b-f<THRESHOLD&&(b+=THRESHOLD),f=b,"".concat(Math.min(b,100),"%{\n ").concat(_===0&&!isDirectionReverse(0,1,s)?"":l[v],"\n }")}).join("")},e.prototype.updateFrameOrders=function(){var t=this.nameMap.orderMap;this.forEach(function(r){r.setOrderObject(t)})},e})(Animator),Scene=(function(o){__extends$3(e,o);function e(t,r){var s=o.call(this)||this;return s.items={},s.orderMap=new OrderMap(NAME_SEPARATOR),s.load(t,r),s}return e.prototype.getDuration=function(){var t=0;return this.forEach(function(r){t=Math.max(t,r.getTotalDuration()/r.getPlaySpeed())}),t||this.state[DURATION]},e.prototype.setDuration=function(t){this.items;var r=this.getDuration();if(t===0||!isFinite(r))return this;if(r===0)this.forEach(function(a){a.setDuration(t)});else{var s=t/r;this.forEach(function(a){a.setDelay(a.getDelay()*s),a.setDuration(a.getDuration()*s)})}return o.prototype.setDuration.call(this,t),this},e.prototype.getItem=function(t){return this.items[t]},e.prototype.newItem=function(t,r){if(r===void 0&&(r={}),this.items[t])return this.items[t];var s=new SceneItem;return this.setItem(t,s),s.setOptions(r),s},e.prototype.removeItem=function(t){return delete this.items[t],this.orderMap.remove([t]),this},e.prototype.setItem=function(t,r){return r.setId(t),this.items[t]=r,this.orderMap.add([t]),this},e.prototype.getCurrentFrames=function(t,r){var s=this.getEasing()||r,a={};return this.forEach(function(l){var c=l.getId();isScene(l)?a[c]=l.getCurrentFrames(t,s):a[c]=l.getCurrentFrame(t,s)}),this.temp=a,a},e.prototype.getCurrentFlattedFrames=function(t,r){var s=this.getCurrentFrames(t,r);return flatSceneObject(s,NAME_SEPARATOR)},e.prototype.setTime=function(t,r,s,a){var l=this;return o.prototype.setTime.call(this,t,r,s,function(){var c=l.getIterationTime(),d=l.getEasing()||a;l.forEach(function(g){g.setTime(c*g.getPlaySpeed()-g.getDelay(),r,!0,d)});var u=l.getCurrentFrames(!1,a);l.trigger("animate",{frames:u,currentTime:l.getTime(),time:c})}),this},e.prototype.forEach=function(t){var r=this.items;return this.getOrders().forEach(function(s,a){t(r[s],s,a,r)}),this},e.prototype.toCSS=function(t,r,s){r===void 0&&(r=this.getDuration()),s===void 0&&(s=[]);var a=!r||!isFinite(r)?0:r,l=[],c=this.state;return c[DURATION]=this.getDuration(),this.forEach(function(d){l.push(d.toCSS(t,a,s.concat(c)))}),l.join("")},e.prototype.exportCSS=function(t,r,s){var a=this.toCSS(t,r,s);return(!s||!s.length)&&(this.styledInjector&&(this.styledInjector.destroy(),this.styledInjector=null),this.styled=styled$1(a),this.styledInjector=this.styled.inject(this.getAnimationElement(),{original:!0})),this},e.prototype.append=function(t){t.setDelay(t.getDelay()+this.getDuration()),this.setItem(getRealId(t),t)},e.prototype.pauseCSS=function(){return this.forEach(function(t){t.pauseCSS()})},e.prototype.pause=function(){return o.prototype.pause.call(this),isPausedCSS(this)&&this.pauseCSS(),this.forEach(function(t){t.pause()}),this},e.prototype.endCSS=function(){this.forEach(function(t){t.endCSS()}),setPlayCSS(this,!1)},e.prototype.end=function(){return isEndedCSS(this)&&this.endCSS(),o.prototype.end.call(this),this},e.prototype.getOrders=function(){return this.orderMap.get([])||[]},e.prototype.setOrders=function(t){return this.orderMap.set([],t)},e.prototype.getAnimationElement=function(){var t;return this.forEach(function(r){var s=r.getAnimationElement();!t&&(t=s)}),t},e.prototype.addPlayClass=function(t,r,s){s===void 0&&(s={});var a;return this.forEach(function(l){var c=l.addPlayClass(t,r,s);!a&&(a=c)}),a},e.prototype.playCSS=function(t,r,s){return t===void 0&&(t=!0),s===void 0&&(s={}),playCSS(this,t,r,s),this},e.prototype.set=function(t){return this.load(t),this},e.prototype.clear=function(){this.finish(),this.items={},this.orderMap=new OrderMap(NAME_SEPARATOR),this.styledInjector&&this.styledInjector.destroy(),this.styled=null,this.styledInjector=null},e.prototype.load=function(t,r){if(t===void 0&&(t={}),r===void 0&&(r=t.options),!t)return this;this.setOptions(r);var s=r&&r[SELECTOR]||this.state[SELECTOR],a=function(d){if(d==="options")return"continue";var u=t[d],g=void 0;if(isScene(u)||isSceneItem(u))l.setItem(d,u),g=u;else if(isFunction$1(u)){var f=[];s&&IS_WINDOW&&(l.state.noRegisterElement||(f=$("".concat(isFunction$1(s)?s(d):d),!0)));for(var m=f.length,_=m||u.defaultCount||0,v=new e,b=[],C=0;C<_;++C){var y=f[C],S=v.newItem(C);S.setId().load(u(C,f[C])),b.push(S.getId()),y&&S.setElement(y)}if(!m){var w=[];v.state[SELECTOR]=function(E){return w.length||(w=$("".concat(isFunction$1(s)?s(d):d),!0)),w[b.indexOf(E)]}}return l.setItem(d,v),"continue"}else g=l.newItem(d,{noRegisterElement:!0}),g.load(u);l.state.noRegisterElement||s&&g.setSelector(s)},l=this;for(var c in t)a(c)},e.prototype.setOptions=function(t){t===void 0&&(t={}),o.prototype.setOptions.call(this,t);var r=t.selector;return r&&(this.state[SELECTOR]=r),this},e.prototype.setSelector=function(t){var r=this.state,s=t===!0?r[SELECTOR]||!0:t;r[SELECTOR]=s;var a=isFunction$1(t);return s&&this.forEach(function(l,c){l.setSelector(a?t(c):s)}),this},e.prototype.start=function(t){t===void 0&&(t=this.state[DELAY]);var r=o.prototype.start.call(this,t);return r?this.forEach(function(s){s.start(0)}):this.forEach(function(s){s.setPlayState(RUNNING)}),r},e.VERSION="1.10.3",e})(Animator);function getMethodNames(o){var e=o.prototype;return getKeys(e).filter(function(t){var r=Object.getOwnPropertyDescriptor(e,t);return t==="constructor"?!1:!r.get&&!r.set&&isFunction$1(r.value||e[t])})}var EMITTER_METHODS=getMethodNames(EventEmitter$2),ANIMATOR_METHODS=__spreadArray$1(__spreadArray$1([],EMITTER_METHODS,!0),getMethodNames(Animator),!0);__spreadArray$1(__spreadArray$1([],ANIMATOR_METHODS,!0),getMethodNames(Scene),!0);__spreadArray$1(__spreadArray$1([],ANIMATOR_METHODS,!0),getMethodNames(Scene),!0);var FRAME_METHODS=__spreadArray$1(__spreadArray$1([],ANIMATOR_METHODS,!0),getMethodNames(Frame),!0),FRAME_REACTIVE={methods:FRAME_METHODS,created:function(o){var e=isFunction$1(o)?o():o,t=observe(0),r;isObserver(e)?r=e:r=observe(isFrame(e)?e:new Frame(e));var s=computed(function(){return r.current,t.current,r.current.toCSSText()}),a=computed(function(){return r.current,s.current,r.current.toCSSObject()}),l=computed(function(){return r.current,s.current,r.current.toCSSObject(!0)}),c=function(){++t.current};r.subscribe(function(u,g){g.off("update",c),u.on("update",c)});var d=partialReactive(__assign$4({cssText:s,cssObject:a,camelCasedCSSObject:l,onUpdate:c},FRAME_METHODS.reduce(function(u,g){return u[g]=function(){for(var f,m=[],_=0;_<arguments.length;_++)m[_]=arguments[_];var v=r.current;return v==null?void 0:(f=v[g]).call.apply(f,__spreadArray$1([v],m,!1))},u},{})));return d},destroy:function(o){o.off("update",o.onUpdate)}};__assign$4(__assign$4({},FRAME_REACTIVE),{created:function(o){var e=isFunction$1(o)?o():o,t=observe(new Frame);return e.on("animate",function(r){t.current=r.frame}),FRAME_REACTIVE.created(t)}});var __assign$3=function(){return __assign$3=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$3.apply(this,arguments)};function getOrderIndex(o,e){var t=o.getOrders(["transform"])||[];return t.indexOf(e)}var MoveableHelper=(function(){function o(t){var r=this;t===void 0&&(t={}),this.map=new Map,this.onBeforeRenderStart=function(s){var a=r.testFrame(s);s.setTransform(a.toCSSObject().transform||"")},this.onBeforeRenderGroupStart=function(s){s.events.forEach(function(a){r.onBeforeRenderStart(a)})},this.onDragStart=function(s){var a=r.testFrame(s);if(!a)return!1;r.setTranasform(s,a,"translate")},this.onDrag=function(s){r.testDrag(s),r.testRender(s.target)},this.onDragGroupStart=function(s){s.events.forEach(function(a){r.onDragStart(a)})},this.onDragGroup=function(s){s.events.forEach(function(a){r.onDrag(a)})},this.onResizeStart=function(s){s.dragStart&&r.onDragStart(s.dragStart),s.setOrigin(["%","%"])},this.onResize=function(s){r.testResize(s),r.testRender(s.target)},this.onResizeGroupStart=function(s){s.events.forEach(function(a){r.onResizeStart(a)})},this.onResizeGroup=function(s){s.events.forEach(function(a){r.onResize(a)})},this.onScaleStart=function(s){var a=r.testFrame(s);if(!a)return!1;r.setTranasform(s,a,"scale"),s.dragStart&&r.onDragStart(s.dragStart)},this.onScale=function(s){r.testScale(s),r.testRender(s.target)},this.onScaleGroupStart=function(s){s.events.forEach(function(a){r.onScaleStart(a)})},this.onScaleGroup=function(s){s.events.forEach(function(a){r.onScale(a)})},this.onRotateStart=function(s){var a=r.testFrame(s);if(!a)return!1;r.setTranasform(s,a,"rotate"),s.dragStart&&r.onDragStart(s.dragStart)},this.onRotate=function(s){r.testRotate(s),r.testRender(s.target)},this.onRotateGroupStart=function(s){s.events.forEach(function(a){r.onRotateStart(a)})},this.onRotateGroup=function(s){s.events.forEach(function(a){r.onRotate(a)})},this.onClip=function(s){var a=r.testFrame(s);s.clipType==="rect"?a.set("clip",s.clipStyle):a.set("clip-path",s.clipStyle),r.testRender(s.target)},this.onDragOriginStart=function(s){s.dragStart&&r.onDragStart(s.dragStart)},this.onDragOrigin=function(s){var a=r.testFrame(s);a.set("transform-origin",s.transformOrigin),r.testDrag(s.drag),r.testRender(s.target)},this.onRound=function(s){var a=r.testFrame(s);a.set("border-radius",s.borderRadius),r.testRender(s.target)},this.onWarpStart=function(s){var a=r.testFrame(s);if(!a)return!1;r.setTranasform(s,a,"matrix3d")},this.onWarp=function(s){var a=r.testFrame(s);a.set("transform","matrix3d",s.matrix.join(", ")),r.testRender(s.target)},this.onRender=function(s){var a=s.target,l=r.getFrame(a);!a||!l||r.render(a,l)},this.options=__assign$3({useBeforeRender:!1,useRender:!1,createAuto:!0},t)}var e=o.prototype;return o.create=function(t){return new o(t)},e.render=function(t,r){if(r===void 0&&(r=this.getFrame(t)),t.style.cssText+=r.toCSS(),"ownerSVGElement"in t&&t.tagName.toLowerCase()!=="svg"){var s=r.getOrders(["transform"]);t.setAttribute("transform",s.map(function(a){var l=r.get("transform",a);return a+"("+l.split(",").map(function(c){return parseFloat(c)}).join(", ")+")"}).join(" "))}},e.clear=function(){this.map.clear()},e.getTargets=function(){return this.map.keys()},e.getFrames=function(){return this.map.values()},e.getFrame=function(t){return this.map.get(t)},e.setFrame=function(t,r){return this.map.set(t,r)},e.removeFrame=function(t){this.map.delete(t)},e.createFrame=function(t,r){r===void 0&&(r={});var s=new Frame({transform:{translate:"0px, 0px",rotate:"0deg",scale:"1, 1"}});return s.set(r),this.map.set(t,s),s},e.setElements=function(t){for(var r=isString(t)?document.querySelectorAll(t):t,s=r.length,a=this.map,l=0;l<s;++l){var c=r[l];a.has(c)||this.createFrame(c)}},e.testFrame=function(t){var r=t.target,s=this.getFrame(r);if(s)return s;if(!this.options.createAuto&&t.stop){t.stop();return}return this.createFrame(r)},e.testDrag=function(t){var r=t.target,s=t.translate,a=this.getFrame(r),l=s[0]+"px",c=s[1]+"px";a.has("transform","translate")?a.set("transform","translate",l+","+c):(a.set("transform","translateX",l),a.set("transform","translateY",c))},e.testResize=function(t){var r=t.target,s=this.getFrame(r);s.set("width",t.width+"px"),s.set("height",t.height+"px"),this.testDrag(t.drag)},e.testScale=function(t){var r=this.testFrame(t),s=t.scale;this.testDrag(t.drag),r.set("transform","scale",s[0]+","+s[1])},e.testRotate=function(t){var r=this.testFrame(t),s=t.rotate;this.testDrag(t.drag),r.set("transform","rotate",s+"deg")},e.testRender=function(t,r){r===void 0&&(r=this.getFrame(t)),this.options.useRender||this.render(t,r)},e.setTranasform=function(t,r,s){var a=getOrderIndex(r,s);this.options.useBeforeRender?t.setTransformIndex(a):t.setTransform(r.toCSSObject().transform||[],a)},o})(),extendStatics$2=function(o,e){return extendStatics$2=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics$2(o,e)};function __extends$2(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics$2(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var Ruler=(function(o){__extends$2(e,o);function e(){var r=o!==null&&o.apply(this,arguments)||this;return r.state={scrollPos:0},r.width=0,r.height=0,r._zoom=0,r._rulerScale=0,r._observer=null,r._checkResize=function(){r.resize()},r}var t=e.prototype;return t.render=function(){var r=this.props;return this._zoom=r.zoom,createElement("canvas",{ref:ref(this,"canvasElement"),style:this.props.style})},t.componentDidMount=function(){var r=this.props;this.state.scrollPos=r.defaultScrollPos||0;var s=this.canvasElement,a=s.getContext("2d",{alpha:!0});this.canvasContext=a,r.useResizeObserver?(this._observer=new ResizeObserver(this._checkResize),this._observer.observe(s,{box:"border-box"})):this.resize()},t.componentDidUpdate=function(){this.resize()},t.componentWillUnmount=function(){var r;this.state.scrollPos=0,(r=this._observer)===null||r===void 0||r.disconnect()},t.getScrollPos=function(){return this.state.scrollPos},t.scroll=function(r,s){this.draw({scrollPos:r,zoom:s})},t.resize=function(r){var s=this.canvasElement,a=this.props,l=a.width,c=a.height,d=a.scrollPos,u=this._getRulerScale();this.width=l||s.offsetWidth,this.height=c||s.offsetHeight,s.width=this.width*u,s.height=this.height*u,this.draw({scrollPos:d,zoom:r})},t.draw=function(r){r===void 0&&(r={});var s=this.props,a=r.zoom,l=a===void 0?this._zoom:a,c=r.scrollPos,d=c===void 0?this.state.scrollPos:c,u=r.marks,g=u===void 0?s.marks:u,f=r.selectedRanges,m=f===void 0?s.selectedRanges:f,_=r.segment,v=_===void 0?s.segment||10:_,b=r.unit,C=b===void 0?s.unit:b;this._zoom=l;var y=s,S=y.type,w=y.backgroundColor,E=y.lineColor,x=y.textColor,L=y.textBackgroundColor,k=y.direction,D=y.negativeRuler,I=D===void 0?!0:D,T=y.textFormat,M=y.range,R=M===void 0?[-1/0,1/0]:M,N=y.rangeBackgroundColor,A=y.selectedBackgroundColor,O=y.lineWidth,P=O===void 0?1:O,F=y.selectedRangesText,B=y.selectedRangesTextColor,H=B===void 0?"#44aaff":B,V=y.selectedRangesTextOffset,U=V===void 0?[0,0]:V,j=y.markColor,X=j===void 0?"#ff5":j,ee=this._getRulerScale(),Z=this.width,J=this.height,q=this.state;q.scrollPos=d;var Q=this.canvasContext,re=S==="horizontal",de=I!==!1,se=s.font||"10px sans-serif",W=s.textAlign||"left",G=s.textOffset||[0,0],Y=re?J:Z,ie=convertUnitSize("".concat(s.mainLineSize||"100%"),Y),ne=convertUnitSize("".concat(s.longLineSize||10),Y),oe=convertUnitSize("".concat(s.shortLineSize||7),Y),ue=s.lineOffset||[0,0];switch(w==="transparent"?Q.clearRect(0,0,Z*ee,J*ee):(Q.rect(0,0,Z*ee,J*ee),Q.fillStyle=w,Q.fill()),Q.save(),Q.scale(ee,ee),Q.strokeStyle=E,Q.lineWidth=P,Q.font=se,Q.fillStyle=x,Q.textAlign=W,k){case"start":Q.textBaseline="top";break;case"center":Q.textBaseline="middle";break;case"end":Q.textBaseline="bottom";break}Q.translate(.5,0),Q.beginPath();for(var ae=re?Z:J,le=l*C,ce=Math.floor(d*l/le),ve=Math.ceil((d*l+ae)/le),he=ve-ce,fe=Math.max(["left","center","right"].indexOf(W)-1,-1),pe=re?J:Z,ye=[],we=0;we<=he;++we){var xe=(we+ce)*C,Te="".concat(xe);T&&(Te=T(xe));var Ae=Q.measureText(Te).width;ye.push({color:x,offset:G,backgroundColor:L,value:xe,text:Te,textSize:Ae})}if(A!=="transparent"&&(m!=null&&m.length)&&m.forEach(function(Fe){var it=Math.max(Fe[0],R[0],I?-1/0:0),nt=Math.min(Fe[1],R[1]),lt=(it-d)*l,pt=(nt-it)*l;F&&Fe.forEach(function(ct){var mt="".concat(ct);T&&(mt=T(ct));var ze=Q.measureText(mt).width,Ye=ct*l,Ai=Ye+ze;findLast(ye,function(Kt,Gt){var Tt=Kt.value,wt=Kt.textSize,Rr=Tt*l,no=Rr+wt;Rr<=Ai&&Ye<=no&&ye.splice(Gt,1)}),ye.push({value:ct,color:H,offset:U,text:mt,textSize:ze})}),!(pt<=0)&&(Q.save(),Q.fillStyle=A,re?Q.fillRect(lt,0,pt,pe):Q.fillRect(0,lt,pe,pt),Q.restore())}),N!=="transparent"&&R[0]!==-1/0&&R[1]!==1/0){var Oe=(R[0]-d)*l,Me=(R[1]-R[0])*l;Q.save(),Q.fillStyle=N,re?Q.fillRect(Oe,0,Me,pe):Q.fillRect(0,Oe,pe,Me),Q.restore()}for(var we=0;we<=he;++we){var xe=we+ce;if(!(!de&&xe<0))for(var Qe=xe*C,je=(Qe-d)*l,Le=0;Le<v;++Le){var Pe=je+Le/v*le,yt=Qe+Le/v*C;if(!(Pe<0||Pe>=ae||yt<R[0]||yt>R[1])){var St=Le===0?ie:Le%2===0?ne:oe,et=0;switch(k){case"start":et=0;break;case"center":et=pe/2-St/2;break;case"end":et=pe-St;break}var Ee=re?[Pe+ue[0],et+ue[1]]:[et+ue[0],Pe+ue[1]],$e=Ee[0],ft=Ee[1],Ni=re?[$e,ft+St]:[$e+St,ft],Tr=Ni[0],Re=Ni[1];Q.moveTo($e+ue[0],ft+ue[1]),Q.lineTo(Tr+ue[0],Re+ue[1])}}}Q.stroke(),Q.beginPath(),Q.strokeStyle=X,Q.lineWidth=1,(g||[]).forEach(function(Fe){var it=(-d+Fe)*l;if(!(it<0||it>=ae||Fe<R[0]||Fe>R[1])){var nt=re?[it+ue[0],ue[1]]:[ue[0],it+ue[1]],lt=nt[0],pt=nt[1],ct=re?[lt,pt+Y]:[lt+Y,pt],mt=ct[0],ze=ct[1];Q.moveTo(lt+ue[0],pt+ue[1]),Q.lineTo(mt+ue[0],ze+ue[1])}}),Q.stroke(),ye.forEach(function(Fe){var it=Fe.value,nt=Fe.offset,lt=Fe.backgroundColor,pt=Fe.color,ct=Fe.text,mt=Fe.textSize;if(!(!de&&it<0)){var ze=(it-d)*l;if(!(ze<-le||ze>=ae+C*l||it<R[0]||it>R[1])){var Ye=0;switch(k){case"start":Ye=17;break;case"center":Ye=pe/2;break;case"end":Ye=pe-17;break}var Ai=re?[ze+fe*-3,Ye]:[Ye,ze+fe*3],Kt=Ai[0],Gt=Ai[1];if(lt){var Tt=0;switch(W){case"left":Tt=0;break;case"center":Tt=-mt/2;break;case"right":Tt=-mt;break}Q.save(),Q.fillStyle=lt,re?Q.fillRect(Kt+nt[0]+Tt,0,mt,ie):(Q.translate(0,Gt+nt[1]),Q.rotate(-Math.PI/2),Q.fillRect(Tt,0,mt,ie)),Q.restore()}Q.save(),Q.fillStyle=pt,re?Q.fillText(ct,Kt+nt[0],Gt+nt[1]):(Q.translate(Kt+nt[0],Gt+nt[1]),Q.rotate(-Math.PI/2),Q.fillText(ct,0,0)),Q.restore()}}}),Q.restore()},t._getRulerScale=function(){var r=this.props.defaultPixelScale||2;if(!this._rulerScale){var s=window.devicePixelRatio>1;if(!s&&window.matchMedia){var a=window.matchMedia("only screen and (min--moz-device-pixel-ratio: 1.3), only screen and (-o-min-device-pixel-ratio: 2.6/2), only screen and (-webkit-min-device-pixel-ratio: 1.3), only screen and (min-device-pixel-ratio: 1.3), only screen and (min-resolution: 1.3dppx)");s=a&&a.matches}this._rulerScale=s?3:r}return this._rulerScale},e.defaultProps={type:"horizontal",zoom:1,width:0,height:0,unit:50,negativeRuler:!0,mainLineSize:"100%",longLineSize:10,shortLineSize:7,segment:10,direction:"end",style:{width:"100%",height:"100%"},backgroundColor:"#333333",font:"10px sans-serif",textColor:"#ffffff",textBackgroundColor:"transparent",lineColor:"#777777",range:[-1/0,1/0],rangeBackgroundColor:"transparent",lineWidth:1,selectedBackgroundColor:"#555555",defaultScrollPos:0,markColor:"#f55",marks:[]},e})(PureComponent),PROPERTIES$2=["type","width","height","unit","zoom","direction","textAlign","font","segment","mainLineSize","longLineSize","shortLineSize","lineOffset","textOffset","negativeRuler","range","scrollPos","defaultScrollPos","style","backgroundColor","rangeBackgroundColor","lineColor","textColor","textBackgroundColor","textFormat","warpSelf","selectedBackgroundColor","selectedRanges","defaultPixelScale","useResizeObserver","selectedRangesText","selectedRangesTextColor","selectedRangesTextOffset","marks","markColor"];var __assign$2=function(){return __assign$2=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$2.apply(this,arguments)};function __spreadArrays$1(){for(var o=0,e=0,t=arguments.length;e<t;e++)o+=arguments[e].length;for(var r=Array(o),s=0,e=0;e<t;e++)for(var a=arguments[e],l=0,c=a.length;l<c;l++,s++)r[s]=a[l];return r}var EventEmitter$1=(function(){function o(){this._events={}}var e=o.prototype;return e.on=function(t,r){if(isObject$2(t))for(var s in t)this.on(s,t[s]);else this._addEvent(t,r,{});return this},e.off=function(t,r){if(!t)this._events={};else if(isObject$2(t))for(var s in t)this.off(s);else if(!r)this._events[t]=[];else{var a=this._events[t];if(a){var l=findIndex(a,function(c){return c.listener===r});l>-1&&a.splice(l,1)}}return this},e.once=function(t,r){var s=this;return r&&this._addEvent(t,r,{once:!0}),new Promise(function(a){s._addEvent(t,a,{once:!0})})},e.emit=function(t,r){var s=this;r===void 0&&(r={});var a=this._events[t];if(!t||!a)return!0;var l=!1;return r.eventType=t,r.stop=function(){l=!0},r.currentTarget=this,__spreadArrays$1(a).forEach(function(c){c.listener(r),c.once&&s.off(t,c.listener)}),!l},e.trigger=function(t,r){return r===void 0&&(r={}),this.emit(t,r)},e._addEvent=function(t,r,s){var a=this._events;a[t]=a[t]||[];var l=a[t];l.push(__assign$2({listener:r},s))},o})();var extendStatics$1=function(o,e){return extendStatics$1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)r.hasOwnProperty(s)&&(t[s]=r[s])},extendStatics$1(o,e)};function __extends$1(o,e){extendStatics$1(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign$1$1=function(){return __assign$1$1=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$1$1.apply(this,arguments)};function getDefaultScrollPosition(o){var e=o.container;return e===document.body?[e.scrollLeft||document.documentElement.scrollLeft,e.scrollTop||document.documentElement.scrollTop]:[e.scrollLeft,e.scrollTop]}function getContainerElement(o){if(o){if(isString(o))return document.querySelector(o)}else return null;if(isFunction$1(o))return o();if(o instanceof Element)return o;if("current"in o)return o.current;if("value"in o)return o.value}var DragScroll=(function(o){__extends$1(e,o);function e(){var r=o!==null&&o.apply(this,arguments)||this;return r._startRect=null,r._startPos=[],r._prevTime=0,r._timer=0,r._prevScrollPos=[0,0],r._isWait=!1,r._flag=!1,r}var t=e.prototype;return t.dragStart=function(r,s){var a=getContainerElement(s.container);if(!a){this._flag=!1;return}var l=0,c=0,d=0,u=0;if(a===document.body)d=window.innerWidth,u=window.innerHeight;else{var g=a.getBoundingClientRect();l=g.top,c=g.left,d=g.width,u=g.height}this._flag=!0,this._startPos=[r.clientX,r.clientY],this._startRect={top:l,left:c,width:d,height:u},this._prevScrollPos=this._getScrollPosition([0,0],s)},t.drag=function(r,s){if(clearTimeout(this._timer),!!this._flag){var a=r.clientX,l=r.clientY,c=s.threshold,d=c===void 0?0:c,u=this,g=u._startRect,f=u._startPos,m=[0,0];return g.top>l-d?(f[1]>g.top||l<f[1])&&(m[1]=-1):g.top+g.height<l+d&&(f[1]<g.top+g.height||l>f[1])&&(m[1]=1),g.left>a-d?(f[0]>g.left||a<f[0])&&(m[0]=-1):g.left+g.width<a+d&&(f[0]<g.left+g.width||a>f[0])&&(m[0]=1),!m[0]&&!m[1]?!1:this._continueDrag(__assign$1$1(__assign$1$1({},s),{direction:m,inputEvent:r,isDrag:!0}))}},t.checkScroll=function(r){var s=this;if(this._isWait)return!1;var a=r.prevScrollPos,l=a===void 0?this._prevScrollPos:a,c=r.direction,d=r.throttleTime,u=d===void 0?0:d,g=r.inputEvent,f=r.isDrag,m=this._getScrollPosition(c||[0,0],r),_=m[0]-l[0],v=m[1]-l[1],b=c||[_?Math.abs(_)/_:0,v?Math.abs(v)/v:0];return this._prevScrollPos=m,!_&&!v?!1:(this.trigger("move",{offsetX:b[0]?_:0,offsetY:b[1]?v:0,inputEvent:g}),u&&f&&(clearTimeout(this._timer),this._timer=window.setTimeout(function(){s._continueDrag(r)},u)),!0)},t.dragEnd=function(){this._flag=!1,clearTimeout(this._timer)},t._getScrollPosition=function(r,s){var a=s.container,l=s.getScrollPosition,c=l===void 0?getDefaultScrollPosition:l;return c({container:getContainerElement(a),direction:r})},t._continueDrag=function(r){var s=this,a,l,c=r.container,d=r.direction,u=r.throttleTime,g=r.useScroll,f=r.isDrag,m=r.inputEvent;if(!(!this._flag||f&&this._isWait)){var _=now(),v=Math.max(u+this._prevTime-_,0);if(v>0)return clearTimeout(this._timer),this._timer=window.setTimeout(function(){s._continueDrag(r)},v),!1;this._prevTime=_;var b=this._getScrollPosition(d,r);this._prevScrollPos=b,f&&(this._isWait=!0);var C={container:getContainerElement(c),direction:d,inputEvent:m};return(l=(a=r).requestScroll)===null||l===void 0||l.call(a,C),this.trigger("scroll",C),this._isWait=!1,g||this.checkScroll(__assign$1$1(__assign$1$1({},r),{prevScrollPos:b,direction:d,inputEvent:m}))}},e})(EventEmitter$1),extendStatics$1$1=function(o,e){return extendStatics$1$1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics$1$1(o,e)};function __extends$1$1(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics$1$1(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign$2$1=function(){return __assign$2$1=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$2$1.apply(this,arguments)};function __spreadArray(o,e,t){if(t||arguments.length===2)for(var r=0,s=e.length,a;r<s;r++)(a||!(r in e))&&(a||(a=Array.prototype.slice.call(e,0,r)),a[r]=e[r]);return o.concat(a||Array.prototype.slice.call(e))}function prefix(){for(var o=[],e=0;e<arguments.length;e++)o[e]=arguments[e];return prefixNames.apply(void 0,__spreadArray(["scena-guides-"],o,!1))}var ADDER=prefix("guide","adder"),GUIDES=prefix("guides"),GUIDE=prefix("guide"),DRAGGING=prefix("dragging"),DISPLAY_DRAG=prefix("display-drag"),GUIDES_CSS=prefixCSS("scena-guides-",'\n{\n position: relative;\n width: 100%;\n height: 100%;\n}\ncanvas {\n position: relative;\n}\n.guide-origin {\n position: absolute;\n width: 1px;\n height: 1px;\n top: 0;\n left: 0;\n opacity: 0;\n}\n.guides {\n position: absolute;\n bottom: 0;\n right: 0;\n will-change: transform;\n z-index: 2000;\n}\n.guide-pos {\n position: absolute;\n font-weight: bold;\n font-size: 12px;\n color: #f33;\n}\n.horizontal .guide-pos {\n bottom: 100%;\n left: 50%;\n transform: translate(-50%);\n}\n.vertical .guide-pos {\n left: calc(100% + 2px);\n top: 50%;\n transform: translateY(-50%);\n}\n.display-drag {\n position: absolute;\n will-change: transform;\n z-index: 2000;\n font-weight: bold;\n font-size: 12px;\n display: none;\n left: 20px;\n top: -20px;\n color: #f33;\n}\n:host.horizontal .guides {\n width: 100%;\n height: 0;\n}\n:host.vertical .guides {\n height: 100%;\n width: 0;\n}\n:host.horizontal canvas {\n cursor: ns-resize;\n}\n:host.vertical canvas {\n cursor: ew-resize;\n}\n.guide {\n position: absolute;\n background: #f33;\n z-index: 2;\n}\n.guide.dragging:before {\n position: absolute;\n content: "";\n width: 100%;\n height: 100%;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n}\n:host.horizontal .guide {\n width: 100%;\n height: 1px;\n cursor: row-resize;\n}\n:host.vertical .guide {\n width: 1px;\n height: 100%;\n cursor: col-resize;\n}\n.mobile :host.horizontal .guide {\n transform: scale(1, 2);\n}\n.mobile :host.vertical .guide {\n transform: scale(2, 1);\n}\n:host.horizontal .guide:before {\n height: 20px;\n}\n:host.vertical .guide:before {\n width: 20px;\n}\n.adder {\n display: none;\n}\n.adder.dragging {\n display: block;\n}\n'),PROPERTIES$1=__spreadArray(["className","rulerStyle","snapThreshold","snaps","displayDragPos","cspNonce","dragPosFormat","defaultGuides","showGuides","scrollOptions","guideStyle","guidesOffset","digit","defaultGuidesPos","dragGuideStyle","displayGuidePos","guidePosFormat","guidePosStyle","lockGuides","guidesZoom"],PROPERTIES$2,!0),METHODS$1=["getGuides","loadGuides","scroll","scrollGuides","resize","getElement","getRulerElement","forceUpdate","getRulerScrollPos","getGuideScrollPos","zoomTo","drawRuler"],EVENTS$1=["changeGuides","requestScroll","dragStart","drag","dragEnd","clickRuler"],GuidesElement=styled("div",GUIDES_CSS),Guides$2=(function(o){__extends$1$1(e,o);function e(r){var s=o.call(this,r)||this;return s.state={guides:[]},s.scrollPos=0,s.managerRef=createRef(),s.guideElements=[],s._isFirstMove=!1,s._zoom=1,s._guidesZoom=1,s._observer=null,s.onDragStart=function(a){var l=a.datas,c=a.inputEvent;s._isFirstMove=!0,s.movePos(a),s.props.onDragStart(__assign$2$1(__assign$2$1({},a),{dragElement:l.target})),s.gesto.isFlag()&&(c.stopPropagation(),c.preventDefault(),s._startDragScroll(a))},s._onDrag=function(a){s._isFirstMove&&(s._isFirstMove=!1,addClass(a.datas.target,DRAGGING));var l=s.movePos(a);if(s.props.onDrag(__assign$2$1(__assign$2$1({},a),{dragElement:a.datas.target})),!s.gesto.isFlag()){s._endDragScroll(a);return}return s._dragScroll(a),l},s.onDragEnd=function(a){var l=a.datas,c=a.isDouble,d=a.distX,u=a.distY,g=s.movePos(a),f=s.state.guides,m=s.props,_=m.onChangeGuides,v=m.displayDragPos,b=m.digit,C=m.lockGuides,y=m.guidesOffset,S=s._guidesZoom,w=parseFloat((g/S).toFixed(b||0)),E=s.scrollPos-(y||0);if(v&&(s.displayElement.style.cssText+="display: none;"),removeClass(l.target,DRAGGING),s.props.onDragEnd(__assign$2$1(__assign$2$1({},a),{dragElement:l.target})),s._endDragScroll(a),l.fromRuler)s._isFirstMove&&s.props.onClickRuler(__assign$2$1(__assign$2$1({},a),{pos:0})),w>=E&&f.indexOf(w)<0&&s.setState({guides:__spreadArray(__spreadArray([],f,!0),[w],!1)},function(){_({guides:s.state.guides,distX:d,distY:u,index:f.length,isAdd:!0,isRemove:!1,isChange:!1})});else{var x=parseFloat(l.target.getAttribute("data-index")),L=!1,k=!1;f=__spreadArray([],f,!0);var D=f.indexOf(w);if(c||w<E||D>-1&&D!==x){if(C&&(C===!0||C.indexOf("remove")>-1))return;f.splice(x,1),L=!0}else{if(D>-1)return;if(C&&(C===!0||C.indexOf("change")>-1))return;f[x]=w,k=!0}s.setState({guides:f},function(){var I=s.state.guides;_({distX:d,distY:u,guides:I,isAdd:!1,index:x,isChange:k,isRemove:L})})}},s._onCheck=function(){s.resize()},s.state.guides=r.defaultGuides||[],s.scrollPos=r.defaultGuidesPos||0,s}var t=e.prototype;return t.render=function(){var r=this.props,s=r.className,a=r.type,l=r.zoom,c=r.guidesZoom,d=r.style,u=r.rulerStyle,g=r.displayDragPos,f=r.cspNonce,m=r.dragGuideStyle,_=r.guidePosStyle,v=_===void 0?{}:_,b=this.props,C=this.getTranslateName(),y={};return PROPERTIES$2.forEach(function(S){S==="style"||S==="warpSelf"||S==="useResizeObserver"||(y[S]=b[S])}),this._zoom=l,this._guidesZoom=c||l,createElement(GuidesElement,{ref:this.managerRef,cspNonce:f,className:"".concat(prefix("manager",a)," ").concat(s),style:d},createElement("div",{className:prefix("guide-origin"),ref:ref(this,"originElement")}),createElement(Ruler,__assign$2$1({ref:ref(this,"ruler"),style:u},y)),createElement("div",{className:GUIDES,ref:ref(this,"guidesElement"),style:{transform:"".concat(C,"(").concat(-this.scrollPos*this._guidesZoom,"px)")}},g&&createElement("div",{className:DISPLAY_DRAG,ref:ref(this,"displayElement"),style:v||{}}),createElement("div",{className:ADDER,ref:ref(this,"adderElement"),style:m}),this.renderGuides()))},t.drawRuler=function(r){this.ruler.draw(r)},t.renderGuides=function(){var r=this,s=this.props,a=s,l=a.type,c=a.showGuides,d=a.guideStyle,u=a.displayGuidePos,g=a.guidePosStyle,f=g===void 0?{}:g,m=a.guidesOffset,_=this._guidesZoom,v=this.getTranslateName(),b=this.state.guides,C=s.guidePosFormat||s.dragPosFormat||function(y){return y};if(this.guideElements=[],c)return b.map(function(y,S){var w=y+(m||0);return createElement("div",{className:prefix("guide",l),ref:refs(r,"guideElements",S),key:S,"data-index":S,"data-pos":y,style:__assign$2$1(__assign$2$1({},d),{transform:"".concat(v,"(").concat(w*_,"px) translateZ(0px)")})},u&&createElement("div",{className:prefix("guide-pos"),style:f||{}},C(y)))})},t.componentDidMount=function(){var r=this;this.gesto=new Gesto(this.managerRef.current,{container:document.body}).on("dragStart",function(s){var a=r.props,l=a.type,c=a.lockGuides,d=r._guidesZoom;if(c===!0){s.stop();return}var u=s.inputEvent,g=u.target,f=s.datas,m=r.ruler.canvasElement,_=r.guidesElement,v=l==="horizontal",b=r.originElement.getBoundingClientRect(),C=getDistElementMatrix(r.managerRef.current),y=calculateMatrixDist(C,[s.clientX-b.left,s.clientY-b.top]);y[0]-=_.offsetLeft,y[1]-=_.offsetTop,y[v?1:0]+=r.scrollPos*d,f.offsetPos=y,f.matrix=C;var S=c&&c.indexOf("add")>-1,w=c&&c.indexOf("remove")>-1,E=c&&c.indexOf("change")>-1;if(g===m){if(S){s.stop();return}f.fromRuler=!0,f.target=r.adderElement}else if(hasClass(g,GUIDE)){if(w&&E){s.stop();return}f.target=g}else return s.stop(),!1;r.onDragStart(s)}).on("drag",this._onDrag).on("dragEnd",this.onDragEnd),this.props.useResizeObserver?(this._observer=new ResizeObserver(this._onCheck),this._observer.observe(this.guidesElement,{box:"border-box"}),this._observer.observe(this.getRulerElement(),{box:"border-box"})):this._onCheck()},t.componentWillUnmount=function(){var r;this.gesto.unset(),(r=this._observer)===null||r===void 0||r.disconnect()},t.componentDidUpdate=function(r){var s=this.props.defaultGuides;r.defaultGuides!==s&&this.setState({guides:s||[]})},t.loadGuides=function(r){this.setState({guides:r})},t.getGuides=function(){return this.state.guides},t.scrollGuides=function(r,s){s===void 0&&(s=this._guidesZoom),this._setZoom({guidesZoom:s});var a=this.getTranslateName(),l=this.guidesElement;this.scrollPos=r,l.style.transform="".concat(a,"(").concat(-r*s,"px)");var c=this.state.guides,d=this.props.guidesOffset||0;this.guideElements.forEach(function(u,g){if(u){var f=c[g]+(d||0);u.style.transform="".concat(a,"(").concat(f*s,"px) translateZ(0px)"),u.style.display=-r+f<0?"none":"block"}})},t.zoomTo=function(r,s){s===void 0&&(s=r),this.scroll(this.getRulerScrollPos(),r),this.scrollGuides(this.getGuideScrollPos(),s)},t.getElement=function(){return this.managerRef.current},t.getRulerElement=function(){return this.ruler.canvasElement},t.getGuideScrollPos=function(){return this.scrollPos},t.getRulerScrollPos=function(){return this.ruler.getScrollPos()},t.scroll=function(r,s){s===void 0&&(s=this._zoom),this._setZoom({zoom:s}),this.ruler.scroll(r,s)},t.resize=function(r){r===void 0&&(r=this._zoom),this._setZoom({zoom:r}),this.ruler.resize(r)},t.movePos=function(r){var s=r.datas,a=r.distX,l=r.distY,c=this.props,d=c.type,u=c.snaps,g=c.snapThreshold,f=c.displayDragPos,m=c.digit,_=c.guidesOffset||0,v=this._guidesZoom,b=c.dragPosFormat||function(M){return M},C=d==="horizontal",y=calculateMatrixDist(s.matrix,[a,l]),S=s.offsetPos,w=y[0]+S[0],E=y[1]+S[1],x=_*v,L=Math.round(C?E:w)-_,k=parseFloat((L/v).toFixed(m||0)),D=u.slice().sort(function(M,R){return Math.abs(k-M)-Math.abs(k-R)});if(D.length&&Math.abs(D[0]*v-L)<g&&(k=D[0],L=k*v),!s.fromRuler||!this._isFirstMove){if(f){var I=d==="horizontal"?[w,L+x]:[L+x,E];this.displayElement.style.cssText+="display: block;transform: translate(-50%, -50%) "+"translate(".concat(I.map(function(M){return"".concat(M,"px")}).join(", "),")"),this.displayElement.innerHTML="".concat(b(k))}var T=s.target;T.setAttribute("data-pos",k),T.style.transform="".concat(this.getTranslateName(),"(").concat(L+_*v,"px)")}return L},t.getTranslateName=function(){return this.props.type==="horizontal"?"translateY":"translateX"},t._startDragScroll=function(r){var s=this,a=this.props.scrollOptions;if(a){var l=r.datas,c=new DragScroll;l.dragScroll=c,c.on("scroll",function(d){var u,g,f=d.container,m=d.direction;(g=(u=s.props).onRequestScroll)===null||g===void 0||g.call(u,{container:f,direction:m})}).on("move",function(d){var u=d.offsetX,g=d.offsetY,f=d.inputEvent;s.gesto.scrollBy(u,g,f.inputEvent,!0)}),c.dragStart(r,{container:a.container})}},t._dragScroll=function(r){var s=this.props.scrollOptions;if(s){var a=r.datas.dragScroll;a.drag(r,s)}},t._endDragScroll=function(r){var s;(s=r.datas.dragScroll)===null||s===void 0||s.dragEnd(),r.datas.dragScroll=null},t._setZoom=function(r){var s=r.zoom,a=r.guidesZoom;this.props.zoom;var l=!!this.props.guidesZoom;l?a&&(this._guidesZoom=a):(a&&(this._zoom=a,this._guidesZoom=a),s&&(this._guidesZoom=s)),s&&(this._zoom=s)},e.defaultProps={className:"",type:"horizontal",zoom:1,guidesZoom:0,style:{},snapThreshold:5,snaps:[],digit:0,onClickRuler:function(){},onChangeGuides:function(){},onRequestScroll:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},displayDragPos:!1,dragPosFormat:function(r){return r},defaultGuides:[],lockGuides:!1,showGuides:!0,guideStyle:{},dragGuideStyle:{},guidePosStyle:{},defaultGuidesPos:0},e})(PureComponent),extendStatics=function(o,e){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])},extendStatics(o,e)};function __extends(o,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");extendStatics(o,e);function t(){this.constructor=o}o.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var __assign=function(){return __assign=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign.apply(this,arguments)};function __decorate(o,e,t,r){var s=arguments.length,a=s<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,t):r,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(o,e,t,r);else for(var c=o.length-1;c>=0;c--)(l=o[c])&&(a=(s<3?l(a):s>3?l(e,t,a):l(e,t))||a);return s>3&&a&&Object.defineProperty(e,t,a),a}var PROPERTIES=PROPERTIES$1,METHODS=METHODS$1,EVENTS=EVENTS$1,InnerGuides=(function(o){__extends(e,o);function e(r){var s=o.call(this,r)||this;return s.state={},s.state=s.props,s}var t=e.prototype;return t.render=function(){return createElement(Guides$2,__assign({ref:ref(this,"guides")},this.state))},e})(Component$1);var __assign$1=function(){return __assign$1=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++){t=arguments[r];for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},__assign$1.apply(this,arguments)};function __spreadArrays(){for(var o=0,e=0,t=arguments.length;e<t;e++)o+=arguments[e].length;for(var r=Array(o),s=0,e=0;e<t;e++)for(var a=arguments[e],l=0,c=a.length;l<c;l++,s++)r[s]=a[l];return r}var EventEmitter=(function(){function o(){this._events={}}var e=o.prototype;return e.on=function(t,r){if(isObject$2(t))for(var s in t)this.on(s,t[s]);else this._addEvent(t,r,{});return this},e.off=function(t,r){if(!t)this._events={};else if(isObject$2(t))for(var s in t)this.off(s);else if(!r)this._events[t]=[];else{var a=this._events[t];if(a){var l=findIndex(a,function(c){return c.listener===r});l>-1&&a.splice(l,1)}}return this},e.once=function(t,r){var s=this;return r&&this._addEvent(t,r,{once:!0}),new Promise(function(a){s._addEvent(t,a,{once:!0})})},e.emit=function(t,r){var s=this;r===void 0&&(r={});var a=this._events[t];if(!t||!a)return!0;var l=!1;return r.eventType=t,r.stop=function(){l=!0},r.currentTarget=this,__spreadArrays(a).forEach(function(c){c.listener(r),c.once&&s.off(t,c.listener)}),!l},e.trigger=function(t,r){return r===void 0&&(r={}),this.emit(t,r)},e._addEvent=function(t,r,s){var a=this._events;a[t]=a[t]||[];var l=a[t];l.push(__assign$1({listener:r},s))},o})(),Guides=(function(o){__extends(e,o);function e(r,s){s===void 0&&(s={});var a=o.call(this)||this;a.containerProvider=null,a.selfElement=null,a._warp=!1;var l={};EVENTS.forEach(function(d){l[camelize("on ".concat(d))]=function(u){return a.trigger(d,u)}});var c;return s.warpSelf?(delete s.warpSelf,a._warp=!0,c=r):(c=document.createElement("div"),r.appendChild(c)),a.containerProvider=renderSelf(createElement(InnerGuides,__assign({ref:ref(a,"innerGuides")},l,s)),c),a}var t=e.prototype;return t.setState=function(r,s){this.innerGuides.setState(r,s)},t.forceUpdate=function(r){this.innerGuides.forceUpdate(r)},t.destroy=function(){var r,s=this.selfElement;renderSelf(null,s,this.containerProvider),this._warp||(r=s==null?void 0:s.parentElement)===null||r===void 0||r.removeChild(s),this.selfElement=null,this.innerGuides=null},t.getInnerGuides=function(){return this.innerGuides.guides},e=__decorate([Properties(METHODS,function(r,s){r[s]||(r[s]=function(){for(var a=[],l=0;l<arguments.length;l++)a[l]=arguments[l];var c=this.getInnerGuides();if(!(!c||!c[s]))return c[s].apply(c,a)})}),Properties(PROPERTIES,function(r,s){Object.defineProperty(r,s,{get:function(){return this.getInnerGuides().props[s]},set:function(a){var l;this.innerGuides.setState((l={},l[s]=a,l))},enumerable:!0,configurable:!0})})],e),e})(EventEmitter),Guides$1=(function(o){__extends(e,o);function e(){return o!==null&&o.apply(this,arguments)||this}return e})(Guides);const GHOST_EL_ID_PREFIX="ghost_el_",DRAG_EL_ID_PREFIX="drag_el_",HIGHLIGHT_EL_ID_PREFIX="highlight_el_",CONTAINER_HIGHLIGHT_CLASS_NAME="tmagic-stage-container-highlight",PAGE_CLASS="magic-ui-page",DEFAULT_ZOOM=1;var GuidesType=(o=>(o.HORIZONTAL="horizontal",o.VERTICAL="vertical",o))(GuidesType||{}),ZIndex=(o=>(o.MASK="99999",o.SELECTED_EL="666",o.GHOST_EL="700",o.DRAG_EL="9",o.HIGHLIGHT_EL="8",o))(ZIndex||{}),MouseButton=(o=>(o[o.LEFT=0]="LEFT",o[o.MIDDLE=1]="MIDDLE",o[o.RIGHT=2]="RIGHT",o))(MouseButton||{}),Mode=(o=>(o.ABSOLUTE="absolute",o.FIXED="fixed",o.SORTABLE="sortable",o))(Mode||{});const SELECTED_CLASS="tmagic-stage-selected-area";var AbleActionEventType=(o=>(o.SELECT_PARENT="select-parent",o.REMOVE="remove",o.RERENDER="rerender",o))(AbleActionEventType||{}),ContainerHighlightType=(o=>(o.DEFAULT="default",o.ALT="alt",o))(ContainerHighlightType||{}),RenderType=(o=>(o.IFRAME="iframe",o.NATIVE="native",o))(RenderType||{}),SelectStatus=(o=>(o.SELECT="select",o.MULTI_SELECT="multiSelect",o))(SelectStatus||{}),StageDragStatus=(o=>(o.START="start",o.ING="ing",o.END="end",o))(StageDragStatus||{});const getParents=(o,e)=>{let t=o.parentElement;const r=[];for(;t&&t!==e;)r.push(t),t=t.parentElement;return r},getOffset=o=>{const e=o,{offsetParent:t}=e,r=e.offsetLeft||0,s=e.offsetTop||0;if(t){const a=getOffset(t);return{left:r+a.left,top:s+a.top}}return{left:r,top:s}},getTargetElStyle=(o,e)=>{const t=getOffset(o),{transform:r,border:s}=getComputedStyle(o);return"\n position: absolute;\n transform: ".concat(r,";\n left: ").concat(t.left,"px;\n top: ").concat(t.top,"px;\n width: ").concat(o.clientWidth,"px;\n height: ").concat(o.clientHeight,"px;\n border: ").concat(s,";\n opacity: 0;\n ").concat(typeof e<"u"?"z-index: ".concat(e,";"):"","\n ")},getAbsolutePosition=(o,{top:e,left:t})=>{const{offsetParent:r}=o;if(r){const s=getOffset(r);return{left:t-s.left,top:e-s.top}}return{left:t,top:e}},isAbsolute=o=>o.position==="absolute",isRelative=o=>o.position==="relative",isStatic=o=>o.position==="static",isFixed=o=>o.position==="fixed",isFixedParent=o=>{let e=!1,t=o;for(;t&&(e=isFixed(getComputedStyle(t)),!e);){const{parentElement:r}=t;if(!r||r.tagName==="BODY")break;t=r}return e},getMode=o=>{if(isFixedParent(o))return Mode.FIXED;const e=getComputedStyle(o);return isStatic(e)||isRelative(e)?Mode.SORTABLE:Mode.ABSOLUTE},getScrollParent=(o,e=!1)=>{let t=getComputedStyle(o);const r=e?/(auto|scroll|hidden)/:/(auto|scroll)/;if(isFixed(t))return null;for(let s=o;s.parentElement;){if(s=s.parentElement,s.tagName==="HTML")return s;if(t=getComputedStyle(s),!(isAbsolute(t)&&isStatic(t))&&r.test(t.overflow+t.overflowY+t.overflowX))return s}return null},removeSelectedClassName=o=>{const e=o.querySelector(".".concat(SELECTED_CLASS));e&&(removeClassName(e,SELECTED_CLASS),e.parentNode&&removeClassName(e.parentNode,"".concat(SELECTED_CLASS,"-parent")),o.querySelectorAll(".".concat(SELECTED_CLASS,"-parents")).forEach(t=>{removeClassName(t,"".concat(SELECTED_CLASS,"-parents"))}))},addSelectedClassName=(o,e)=>{var t;o.classList.add(SELECTED_CLASS),(t=o.parentNode)==null||t.classList.add("".concat(SELECTED_CLASS,"-parent")),getParents(o,e.body).forEach(r=>{r.classList.add("".concat(SELECTED_CLASS,"-parents"))})},down=(o,e)=>{var d,u;let t=0,r=e.clientHeight;const s=Array.from(((d=e.parentNode)==null?void 0:d.children)||[]).filter(g=>{var f;return!((f=getIdFromEl()(g))!=null&&f.startsWith(GHOST_EL_ID_PREFIX))}),a=s.indexOf(e),l=s.slice(a+1);for(let g=0;g<l.length;g++){const f=l[g];if(((u=f.style)==null?void 0:u.position)!=="fixed"){if(r+=f.clientHeight/2,o<=r)break;r+=f.clientHeight/2,t=g}}const c=getIdFromEl()(e)||"";return{src:c,dist:l.length&&t>-1?getIdFromEl()(l[t])||"":c}},up=(o,e)=>{var d;const t=Array.from(((d=e.parentNode)==null?void 0:d.children)||[]).filter(u=>{var g;return!((g=getIdFromEl()(u))!=null&&g.startsWith(GHOST_EL_ID_PREFIX))}),r=t.indexOf(e),s=t.slice(0,r);let a=e.clientHeight,l=s.length-1;for(let u=s.length-1;u>=0;u--){const g=s[u];if(g&&g.style.position!=="fixed"){if(a+=g.clientHeight/2,-o<=a)break;a+=g.clientHeight/2,l=u}}const c=getIdFromEl()(e)||"";return{src:c,dist:s.length&&l>-1?getIdFromEl()(s[l])||"":c}},isMoveableButton=o=>{var e;return o.classList.contains("moveable-button")||((e=o.parentElement)==null?void 0:e.classList.contains("moveable-button"))},getMarginValue=o=>{if(!o)return{marginLeft:0,marginTop:0};const{marginLeft:e,marginTop:t}=getComputedStyle(o),r=parseFloat(e)||0,s=parseFloat(t)||0;return{marginLeft:r,marginTop:s}},getBorderWidth=o=>{if(!o)return{borderLeftWidth:0,borderRightWidth:0,borderTopWidth:0,borderBottomWidth:0};const{borderLeftWidth:e,borderRightWidth:t,borderTopWidth:r,borderBottomWidth:s}=getComputedStyle(o);return{borderLeftWidth:parseFloat(e)||0,borderRightWidth:parseFloat(t)||0,borderTopWidth:parseFloat(r)||0,borderBottomWidth:parseFloat(s)||0}};class TargetShadow{constructor(e){K(this,"el");K(this,"els",[]);K(this,"idPrefix","target_calibrate_".concat(guid()));K(this,"container");K(this,"scrollLeft",0);K(this,"scrollTop",0);K(this,"zIndex");K(this,"updateDragEl");K(this,"scrollHandler",e=>{this.scrollLeft=e.detail.scrollLeft,this.scrollTop=e.detail.scrollTop});this.container=e.container,e.updateDragEl&&(this.updateDragEl=e.updateDragEl),typeof e.zIndex<"u"&&(this.zIndex=e.zIndex),e.idPrefix&&(this.idPrefix="".concat(e.idPrefix,"_").concat(guid())),this.container.addEventListener("customScroll",this.scrollHandler)}update(e){return this.el=this.updateEl(e,this.el),this.el}updateGroup(e){return this.els.length>e.length&&this.els.slice(e.length-1).forEach(t=>{t.remove()}),this.els=e.map((t,r)=>this.updateEl(t,this.els[r])),this.els}destroyEl(){var e;(e=this.el)==null||e.remove(),this.el=void 0}destroyEls(){this.els.forEach(e=>{e.remove()}),this.els=[]}destroy(){this.container.removeEventListener("customScroll",this.scrollHandler),this.destroyEl(),this.destroyEls()}updateEl(e,t){const r=t||globalThis.document.createElement("div");setIdToEl()(r,"".concat(this.idPrefix,"_").concat(getIdFromEl()(e))),r.style.cssText=getTargetElStyle(e,this.zIndex),typeof this.updateDragEl=="function"&&this.updateDragEl(r,e,this.container);const s=isFixedParent(e),a=this.container.dataset.mode||Mode.ABSOLUTE;return s&&a!==Mode.FIXED?r.style.transform="translate3d(".concat(this.scrollLeft,"px, ").concat(this.scrollTop,"px, 0)"):!s&&a===Mode.FIXED&&(r.style.transform="translate3d(".concat(-this.scrollLeft,"px, ").concat(-this.scrollTop,"px, 0)")),getElById()(globalThis.document,getIdFromEl()(r))||this.container.append(r),r}}class DragResizeHelper{constructor(e){K(this,"targetShadow");K(this,"target",null);K(this,"targetList",[]);K(this,"moveableHelper");K(this,"ghostEl");K(this,"frameSnapShot",{left:0,top:0});K(this,"framesSnapShot",[]);K(this,"mode",Mode.ABSOLUTE);this.moveableHelper=MoveableHelper.create({useBeforeRender:!0,useRender:!1,createAuto:!0}),this.targetShadow=new TargetShadow({container:e.container,updateDragEl:e.updateDragEl,zIndex:ZIndex.DRAG_EL,idPrefix:DRAG_EL_ID_PREFIX})}destroy(){this.target=null,this.targetList=[],this.targetShadow.destroy(),this.destroyGhostEl(),this.moveableHelper.clear()}destroyShadowEl(){this.targetShadow.destroyEl()}getShadowEl(){return this.targetShadow.el}updateShadowEl(e){this.destroyGhostEl(),this.target=e,this.targetShadow.update(e)}setMode(e){this.mode=e}onResizeStart(e){this.moveableHelper.onResizeStart(e),this.frameSnapShot.top=this.target.offsetTop,this.frameSnapShot.left=this.target.offsetLeft}onResize(e){const{width:t,height:r,drag:s}=e,{beforeTranslate:a}=s;if(this.mode===Mode.SORTABLE)this.target.style.top="0px",this.targetShadow.el&&(this.targetShadow.el.style.width="".concat(t,"px"),this.targetShadow.el.style.height="".concat(r,"px"));else{this.moveableHelper.onResize(e);const{marginLeft:g,marginTop:f}=getMarginValue(this.target);this.target.style.left="".concat(this.frameSnapShot.left+a[0]-g,"px"),this.target.style.top="".concat(this.frameSnapShot.top+a[1]-f,"px")}const{borderLeftWidth:l,borderRightWidth:c,borderTopWidth:d,borderBottomWidth:u}=getBorderWidth(this.target);this.target.style.width="".concat(t+l+c,"px"),this.target.style.height="".concat(r+d+u,"px")}onDragStart(e){this.moveableHelper.onDragStart(e),this.mode===Mode.SORTABLE&&(this.ghostEl=this.generateGhostEl(this.target)),this.frameSnapShot.top=this.target.offsetTop,this.frameSnapShot.left=this.target.offsetLeft}onDrag(e){if(this.ghostEl){this.ghostEl.style.top="".concat(this.frameSnapShot.top+e.beforeTranslate[1],"px");return}this.moveableHelper.onDrag(e);const{marginLeft:t,marginTop:r}=getMarginValue(this.target);this.target.style.left="".concat(this.frameSnapShot.left+e.beforeTranslate[0]-t,"px"),this.target.style.top="".concat(this.frameSnapShot.top+e.beforeTranslate[1]-r,"px")}onRotateStart(e){this.moveableHelper.onRotateStart(e)}onRotate(e){this.moveableHelper.onRotate(e);const t=this.moveableHelper.getFrame(e.target);this.target.style.transform=(t==null?void 0:t.toCSSObject().transform)||""}onScaleStart(e){this.moveableHelper.onScaleStart(e)}onScale(e){this.moveableHelper.onScale(e);const t=this.moveableHelper.getFrame(e.target);this.target.style.transform=(t==null?void 0:t.toCSSObject().transform)||""}getGhostEl(){return this.ghostEl}destroyGhostEl(){var e;(e=this.ghostEl)==null||e.remove(),this.ghostEl=void 0}clear(){this.moveableHelper.clear()}getFrame(e){return this.moveableHelper.getFrame(e)}getShadowEls(){return this.targetShadow.els}updateGroup(e){this.targetList=e,this.framesSnapShot=[],this.targetShadow.updateGroup(e)}setTargetList(e){this.targetList=e}clearMultiSelectStatus(){this.targetList=[],this.targetShadow.destroyEls()}onResizeGroupStart(e){const{events:t}=e;this.moveableHelper.onResizeGroupStart(e),this.setFramesSnapShot(t)}onResizeGroup(e){const{events:t}=e;this.moveableHelper.onResizeGroup(e),t.forEach(r=>{const{width:s,height:a,beforeTranslate:l}=r.drag,c=this.framesSnapShot.find(g=>{var f;return g.id===((f=getIdFromEl()(r.target))==null?void 0:f.replace(DRAG_EL_ID_PREFIX,""))});if(!c)return;const d=this.targetList.find(g=>{var f;return getIdFromEl()(g)===((f=getIdFromEl()(r.target))==null?void 0:f.replace(DRAG_EL_ID_PREFIX,""))});if(!d)return;if(!this.targetList.find(g=>getIdFromEl()(g)===getIdFromEl()(d.parentElement))){const{marginLeft:g,marginTop:f}=getMarginValue(d);d.style.left="".concat(c.left+l[0]-g,"px"),d.style.top="".concat(c.top+l[1]-f,"px")}d.style.width="".concat(s,"px"),d.style.height="".concat(a,"px")})}onDragGroupStart(e){this.moveableHelper.onDragGroupStart(e);const{events:t}=e;this.setFramesSnapShot(t)}onDragGroup(e){this.moveableHelper.onDragGroup(e);const{events:t}=e;t.forEach(r=>{const s=this.framesSnapShot.find(d=>{var u,g;return((u=getIdFromEl()(r.target))==null?void 0:u.startsWith(DRAG_EL_ID_PREFIX))&&((g=getIdFromEl()(r.target))==null?void 0:g.endsWith(d.id))});if(!s)return;const a=d=>{const u=getIdFromEl(),g=u(r.target),f=u(d);return(g==null?void 0:g.startsWith(DRAG_EL_ID_PREFIX))&&f&&(g==null?void 0:g.endsWith(f))},l=this.targetList.find(a);if(!l)return;if(!this.targetList.find(d=>getIdFromEl()(d)===getIdFromEl()(l.parentElement))){const{marginLeft:d,marginTop:u}=getMarginValue(l);l.style.left="".concat(s.left+r.beforeTranslate[0]-d,"px"),l.style.top="".concat(s.top+r.beforeTranslate[1]-u,"px")}})}getUpdatedElRect(e,t,r){const s=this.mode===Mode.SORTABLE?{left:0,top:0}:{left:e.offsetLeft,top:e.offsetTop},{marginLeft:a,marginTop:l}=getMarginValue(e);let c=calcValueByFontsize(r,s.left)-a,d=calcValueByFontsize(r,s.top)-l;const{borderLeftWidth:u,borderRightWidth:g,borderTopWidth:f,borderBottomWidth:m}=getBorderWidth(e),_=calcValueByFontsize(r,e.clientWidth+u+g),v=calcValueByFontsize(r,e.clientHeight+f+m);let b=this.getShadowEl();const C=this.getShadowEls();if(C.length&&(b=C.find(y=>{var S;return(S=getIdFromEl()(y))==null?void 0:S.endsWith(getIdFromEl()(e)||"")})),t&&this.mode===Mode.ABSOLUTE&&b){const y=b,S=y.offsetLeft||0,w=y.offsetTop||0,E=this.getFrame(b),[x,L]=E==null?void 0:E.properties.transform.translate.value,{left:k,top:D}=getOffset(t);c=calcValueByFontsize(r,S)+parseFloat(x)-calcValueByFontsize(r,k),d=calcValueByFontsize(r,w)+parseFloat(L)-calcValueByFontsize(r,D)}return{width:_,height:v,left:c,top:d}}setFramesSnapShot(e){this.framesSnapShot.length>0||e.forEach(t=>{const r=this.targetList.find(a=>{var l,c;return((l=getIdFromEl()(t.target))==null?void 0:l.startsWith(DRAG_EL_ID_PREFIX))&&((c=getIdFromEl()(t.target))==null?void 0:c.endsWith(getIdFromEl()(a)||""))});if(!r)return;const s=getIdFromEl()(r);s&&this.framesSnapShot.push({left:r.offsetLeft,top:r.offsetTop,id:s})})}generateGhostEl(e){this.ghostEl&&this.destroyGhostEl();const t=document.createElement("div"),{top:r,left:s}=getAbsolutePosition(e,getOffset(e));return setIdToEl()(t,"".concat(GHOST_EL_ID_PREFIX).concat(getIdFromEl()(e))),t.style.cssText="\n z-index: ".concat(ZIndex.GHOST_EL,";\n opacity: .6;\n position: absolute;\n left: ").concat(s,"px;\n top: ").concat(r,"px;\n margin: 0;\n background: blue;\n width: ").concat(e.clientWidth,"px;\n height: ").concat(e.clientHeight,"px;\n "),e.after(t),t}}const ableCss='.moveable-button {\n width: 20px;\n height: 20px;\n background: #4af;\n border-radius: 4px;\n appearance: none;\n border: 0;\n color: white;\n font-size: 12px;\n font-weight: bold;\n margin-left: 2px;\n position: relative;\n cursor: pointer;\n}\n.moveable-remove-button:before, .moveable-remove-button:after {\n content: "";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%) rotate(45deg);\n width: 14px;\n height: 2px;\n background: #fff;\n border-radius: 1px;\n cursor: pointer;\n}\n.moveable-remove-button:after {\n transform: translate(-50%, -50%) rotate(-45deg);\n}\n\n.moveable-select-parent-arrow-top-icon {\n transform: rotateZ(-45deg);\n width: 4px;\n height: 4px;\n border-color: #fff;\n border-width: 2px 2px 0 0;\n border-style: solid;\n position: absolute;\n left: 4px;\n top: 4px;\n}\n\n.moveable-select-parent-arrow-body-icon {\n width: 7px;\n height: 11px;\n border-color: #fff;\n border-width: 0 0 2px 2px;\n border-style: solid;\n}\n\n.moveable-drag-area-button {\n cursor: move;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon {\n width: 2px;\n height: 2px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-top {\n transform: rotateZ(-45deg) translateX(-50%);\n left: 50%;\n top: 3px;\n transform-origin: left;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-bottom {\n transform: rotateZ(135deg) translateX(-50%);\n transform-origin: left;\n left: 50%;\n top: auto;\n bottom: 3px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-right {\n transform: rotateZ(45deg) translateY(-50%);\n transform-origin: top;\n right: 3px;\n left: auto;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-left {\n transform: rotateZ(235deg) translateY(-50%);\n transform-origin: top;\n left: 3px;\n top: 50%;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-horizontal {\n width: 2px;\n height: 11px;\n background-color: #fff;\n position: absolute;\n transform: translateX(-50%);\n left: 50%;\n top: 4px;\n}\n\n.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-vertical {\n width: 11px;\n height: 2px;\n background-color: #fff;\n position: absolute;\n transform: translateY(-50%);\n left: 4px;\n top: 50%;;\n}\n\n.moveable-rerender-button img {\n position: absolute;\n left: 2px;\n top: 2px;\n}\n',MoveableActionsAble=(o,e=[])=>({name:"actions",props:[],always:!0,events:[],render(t,r){const s=t.getRect(),{pos2:a}=t.state,l=t.useCSS("div","\n {\n position: absolute;\n left: 0px;\n top: 0px;\n will-change: transform;\n transform-origin: 60px 28px;\n display: flex;\n }\n ".concat(ableCss,"\n "));return r.createElement(l,{className:"moveable-editable",style:{transform:"translate(".concat(a[0]-(e.length+3)*20,"px, ").concat(a[1]-28,"px) rotate(").concat(s.rotation,"deg)")}},[...e.map(c=>{const d=c(r);return r.createElement("button",d.props||{},...d.children||[])}),r.createElement("button",{className:"moveable-button moveable-rerender-button",title:"重新收集依赖后渲染",onClick:()=>{o(AbleActionEventType.RERENDER)}},r.createElement("img",{src:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb24tdGFibGVyLXJlcGxhY2UiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZT0iI2ZmZmZmZiIgZmlsbD0ibm9uZSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj4KICA8cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICA8cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiByeD0iMSIgLz4KICA8cmVjdCB4PSIxNSIgeT0iMTUiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiAvPgogIDxwYXRoIGQ9Ik0yMSAxMXYtM2EyIDIgMCAwIDAgLTIgLTJoLTZsMyAzbTAgLTZsLTMgMyIgLz4KICA8cGF0aCBkPSJNMyAxM3YzYTIgMiAwIDAgMCAyIDJoNmwtMyAtM20wIDZsMyAtMyIgLz4KPC9zdmc+CgoK",width:"16",height:"16"})),r.createElement("button",{className:"moveable-button",title:"选中父组件",onClick:()=>{o(AbleActionEventType.SELECT_PARENT)}},r.createElement("div",{className:"moveable-select-parent-arrow-top-icon"}),r.createElement("div",{className:"moveable-select-parent-arrow-body-icon"})),r.createElement("button",{className:"moveable-button moveable-remove-button",title:"删除",onClick:()=>{o(AbleActionEventType.REMOVE)}}),r.createElement("button",{className:"moveable-button moveable-drag-area-button",title:"拖动"},r.createElement("div",{className:"moveable-select-parent-arrow-top-icon moveable-select-parent-arrow-top-icon-top"}),r.createElement("div",{className:"moveable-select-parent-arrow-top-icon moveable-select-parent-arrow-top-icon-bottom"}),r.createElement("div",{className:"moveable-select-parent-arrow-top-icon moveable-select-parent-arrow-top-icon-left"}),r.createElement("div",{className:" moveable-select-parent-arrow-top-icon moveable-select-parent-arrow-top-icon-right"}),r.createElement("div",{className:"moveable-select-parent-arrow-body-icon-horizontal"}),r.createElement("div",{className:"moveable-select-parent-arrow-body-icon-vertical"}))])}});class MoveableOptionsManager extends EventEmitter$3{constructor(t){super();K(this,"mode",Mode.ABSOLUTE);K(this,"container");K(this,"options",{});K(this,"horizontalGuidelines",[]);K(this,"verticalGuidelines",[]);K(this,"elementGuidelines",[]);K(this,"customizedOptions");K(this,"getRootContainer");this.customizedOptions=t.moveableOptions,this.container=t.container,this.getRootContainer=t.getRootContainer}getOption(t){return this.options[t]}setGuidelines(t,r){t===GuidesType.HORIZONTAL?this.horizontalGuidelines=r:t===GuidesType.VERTICAL&&(this.verticalGuidelines=r),this.emit("update-moveable")}clearGuides(){this.horizontalGuidelines=[],this.verticalGuidelines=[],this.emit("update-moveable")}setElementGuidelines(t){var s,a,l;this.elementGuidelines.forEach(c=>{c.remove()}),this.elementGuidelines=[];const r=((s=this.getCustomizeOptions())==null?void 0:s.elementGuidelines)||Array.from(((l=(a=t[0])==null?void 0:a.parentElement)==null?void 0:l.children)||[]);this.mode===Mode.ABSOLUTE&&this.container.append(this.createGuidelineElements(t,r))}getOptions(t,r={}){const s=this.getDefaultOptions(t),a=this.getCustomizeOptions()||{};return this.options=merge$1(s,a,r),this.options}getDefaultOptions(t){const r=this.mode===Mode.SORTABLE,s={draggable:!0,resizable:!0,rootContainer:this.getRootContainer(),zoom:1,throttleDrag:0,snappable:!0,horizontalGuidelines:this.horizontalGuidelines,verticalGuidelines:this.verticalGuidelines,elementGuidelines:this.elementGuidelines,bounds:{top:0,left:0,right:this.container.clientWidth,bottom:r?void 0:this.container.clientHeight}},a=t?this.getMultiOptions():this.getSingleOptions();return merge$1(s,a)}getSingleOptions(){const t=this.mode===Mode.ABSOLUTE,r=this.mode===Mode.FIXED;return{origin:!1,dragArea:!1,scalable:!1,rotatable:!1,snapGap:t||r,snapThreshold:5,snapDigit:0,isDisplaySnapDigit:t,snapDirections:{top:t,right:t,bottom:t,left:t,center:t,middle:t},elementSnapDirections:{top:t,right:t,bottom:t,left:t},isDisplayInnerSnapDigit:!0,dragTarget:".moveable-drag-area-button",dragTargetSelf:!0,props:{actions:!0},ables:[MoveableActionsAble(this.actionHandler.bind(this))]}}getMultiOptions(){return{defaultGroupRotate:0,defaultGroupOrigin:"50% 50%",startDragRotate:0,throttleDragRotate:0,origin:!0,padding:{left:0,top:0,right:0,bottom:0}}}getCustomizeOptions(){return typeof this.customizedOptions=="function"?this.customizedOptions():this.customizedOptions}actionHandler(t){this.emit(t)}createGuidelineElements(t,r){const s=globalThis.document.createDocumentFragment();for(const a of r){let l=a.element||a;if(!l||typeof l=="string"||(typeof l=="function"&&(l=l()),this.isInElementList(l,t)))continue;const{width:c,height:d}=l.getBoundingClientRect();if(!c||!d)continue;const{left:u,top:g}=getOffset(l),f=globalThis.document.createElement("div");f.style.cssText="position: absolute;width: ".concat(c,"px;height: ").concat(d,"px;top: ").concat(g,"px;left: ").concat(u,"px"),this.elementGuidelines.push(f),s.append(f)}return s}isInElementList(t,r){for(const s of r)if(t===s)return!0;return!1}}class StageDragResize extends MoveableOptionsManager{constructor(t){super(t);K(this,"target",null);K(this,"moveable");K(this,"dragStatus",StageDragStatus.END);K(this,"dragResizeHelper");K(this,"disabledDragStart");K(this,"getRenderDocument");K(this,"markContainerEnd");K(this,"delayedMarkContainer");this.getRenderDocument=t.getRenderDocument,this.markContainerEnd=t.markContainerEnd,this.delayedMarkContainer=t.delayedMarkContainer,this.disabledDragStart=t.disabledDragStart,this.dragResizeHelper=t.dragResizeHelper,this.on("update-moveable",()=>{this.moveable&&this.updateMoveable()})}getTarget(){return this.target}select(t,r){var s,a;if(!t){(s=this.moveable)==null||s.destroy(),this.moveable=void 0;return}!this.moveable||t!==this.target?this.initMoveable(t):this.updateMoveable(t),r&&!this.disabledDragStart&&((a=this.moveable)==null||a.dragStart(r))}updateMoveable(t=this.target){if(!this.moveable)return;if(!t)throw new Error("未选中任何节点");const r=this.init(t);Object.entries(r).forEach(([s,a])=>{this.moveable[s]=a}),this.moveable.updateRect()}clearSelectStatus(){this.moveable&&(this.dragResizeHelper.destroyShadowEl(),this.moveable.target=null,this.moveable.updateRect())}getDragStatus(){return this.dragStatus}destroy(){var t;this.target=null,(t=this.moveable)==null||t.destroy(),this.dragResizeHelper.destroy(),this.dragStatus=StageDragStatus.END,this.removeAllListeners()}on(t,r){return super.on(t,r)}emit(t,...r){return super.emit(t,...r)}init(t){return/(auto|scroll)/.test(t.style.overflow)&&(t.style.overflow="hidden"),this.target=t,this.mode=getMode(t),this.dragResizeHelper.updateShadowEl(t),this.dragResizeHelper.setMode(this.mode),this.setElementGuidelines([this.target]),this.getOptions(!1,{target:this.dragResizeHelper.getShadowEl()})}initMoveable(t){var s;const r=this.init(t);this.dragResizeHelper.clear(),(s=this.moveable)==null||s.destroy(),this.moveable=new Moveable(this.container,{...r}),this.bindResizeEvent(),this.bindDragEvent(),this.bindRotateEvent(),this.bindScaleEvent()}bindResizeEvent(){if(!this.moveable)throw new Error("moveable 未初始化");this.moveable.on("resizeStart",t=>{this.target&&(this.dragStatus=StageDragStatus.START,this.dragResizeHelper.onResizeStart(t))}).on("resize",t=>{!this.moveable||!this.target||!this.dragResizeHelper.getShadowEl()||(this.dragStatus=StageDragStatus.ING,this.dragResizeHelper.onResize(t))}).on("resizeEnd",()=>{this.dragStatus=StageDragStatus.END,this.update(!0)})}bindDragEvent(){if(!this.moveable)throw new Error("moveable 未初始化");let t;this.moveable.on("dragStart",r=>{if(!this.target)throw new Error("未选中组件");this.dragStatus=StageDragStatus.START,this.dragResizeHelper.onDragStart(r),this.emit("drag-start",r)}).on("drag",r=>{!this.target||!this.dragResizeHelper.getShadowEl()||(t&&(globalThis.clearTimeout(t),t=void 0),t=this.delayedMarkContainer(r.inputEvent,[this.target]),this.dragStatus=StageDragStatus.ING,this.dragResizeHelper.onDrag(r))}).on("dragEnd",()=>{t&&(globalThis.clearTimeout(t),t=void 0);const r=this.markContainerEnd();if(this.dragStatus===StageDragStatus.ING)if(r)this.update(!1,r);else switch(this.mode){case Mode.SORTABLE:this.sort();break;default:this.update()}this.dragStatus=StageDragStatus.END,this.dragResizeHelper.destroyGhostEl()})}bindRotateEvent(){if(!this.moveable)throw new Error("moveable 未初始化");this.moveable.on("rotateStart",t=>{this.dragStatus=StageDragStatus.START,this.dragResizeHelper.onRotateStart(t)}).on("rotate",t=>{!this.target||!this.dragResizeHelper.getShadowEl()||(this.dragStatus=StageDragStatus.ING,this.dragResizeHelper.onRotate(t))}).on("rotateEnd",t=>{var s;this.dragStatus=StageDragStatus.END;const r=(s=this.dragResizeHelper)==null?void 0:s.getFrame(t.target);this.target&&r&&this.emit("update",{data:[{el:this.target,style:{transform:r.get("transform")}}],parentEl:null})})}bindScaleEvent(){if(!this.moveable)throw new Error("moveable 未初始化");this.moveable.on("scaleStart",t=>{this.dragStatus=StageDragStatus.START,this.dragResizeHelper.onScaleStart(t)}).on("scale",t=>{!this.target||!this.dragResizeHelper.getShadowEl()||(this.dragStatus=StageDragStatus.ING,this.dragResizeHelper.onScale(t))}).on("scaleEnd",t=>{this.dragStatus=StageDragStatus.END;const r=this.dragResizeHelper.getFrame(t.target);this.target&&r&&this.emit("update",{data:[{el:this.target,style:{transform:r.get("transform")}}],parentEl:null})})}sort(){if(!this.target||!this.dragResizeHelper.getGhostEl())throw new Error("未知错误");const{top:t}=this.dragResizeHelper.getGhostEl().getBoundingClientRect(),{top:r}=this.target.getBoundingClientRect(),s=t-r;if(Math.abs(s)>=this.target.clientHeight/2)s>0?this.emit("sort",down(s,this.target)):this.emit("sort",up(s,this.target));else{const a=getIdFromEl()(this.target);a&&this.emit("sort",{src:a,dist:a})}}update(t=!1,r=null){if(!this.target)return;const s=this.getRenderDocument();if(!s)return;const a=this.dragResizeHelper.getUpdatedElRect(this.target,r,s);this.emit("update",{data:[{el:this.target,style:t?a:{left:a.left,top:a.top}}],parentEl:r})}}class StageHighlight extends eventsExports.EventEmitter{constructor(t){super();K(this,"container");K(this,"target");K(this,"moveable");K(this,"targetShadow");K(this,"getRootContainer");this.container=t.container,this.getRootContainer=t.getRootContainer,this.targetShadow=new TargetShadow({container:t.container,updateDragEl:t.updateDragEl,zIndex:ZIndex.HIGHLIGHT_EL,idPrefix:HIGHLIGHT_EL_ID_PREFIX})}highlight(t){var r,s;!t||t===this.target||(this.target=t,(r=this.targetShadow)==null||r.update(t),this.moveable?(this.moveable.zoom=2,this.moveable.updateRect()):this.moveable=new Moveable(this.container,{target:(s=this.targetShadow)==null?void 0:s.el,origin:!1,rootContainer:this.getRootContainer(),zoom:2}))}clearHighlight(){!this.moveable||!this.target||(this.moveable.zoom=0,this.moveable.updateRect(),this.target=void 0)}destroy(){var t,r;this.target=void 0,(t=this.moveable)==null||t.destroy(),(r=this.targetShadow)==null||r.destroy(),this.moveable=void 0,this.targetShadow=void 0}}class StageMultiDragResize extends MoveableOptionsManager{constructor(t){const r={container:t.container,moveableOptions:t.moveableOptions,getRootContainer:t.getRootContainer};super(r);K(this,"container");K(this,"targetList",[]);K(this,"moveableForMulti");K(this,"dragStatus",StageDragStatus.END);K(this,"dragResizeHelper");K(this,"getRenderDocument");K(this,"delayedMarkContainer");K(this,"markContainerEnd");this.delayedMarkContainer=t.delayedMarkContainer,this.markContainerEnd=t.markContainerEnd,this.container=t.container,this.getRenderDocument=t.getRenderDocument,this.dragResizeHelper=t.dragResizeHelper,this.on("update-moveable",()=>{this.moveableForMulti&&this.updateMoveable()})}multiSelect(t){var s;if(t.length===0)return;this.mode=getMode(t[0]),this.targetList=t,this.dragResizeHelper.updateGroup(t),this.setElementGuidelines(this.targetList),(s=this.moveableForMulti)==null||s.destroy(),this.dragResizeHelper.clear(),this.moveableForMulti=new Moveable(this.container,this.getOptions(!0,{target:this.dragResizeHelper.getShadowEls()}));let r;this.moveableForMulti.on("resizeGroupStart",a=>{this.dragResizeHelper.onResizeGroupStart(a),this.dragStatus=StageDragStatus.START}).on("resizeGroup",a=>{this.dragResizeHelper.onResizeGroup(a),this.dragStatus=StageDragStatus.ING}).on("resizeGroupEnd",()=>{this.update(!0),this.dragStatus=StageDragStatus.END}).on("dragGroupStart",a=>{this.dragResizeHelper.onDragGroupStart(a),this.dragStatus=StageDragStatus.START}).on("dragGroup",a=>{r&&(globalThis.clearTimeout(r),r=void 0),r=this.delayedMarkContainer(a.inputEvent,this.targetList),this.dragResizeHelper.onDragGroup(a),this.dragStatus=StageDragStatus.ING}).on("dragGroupEnd",()=>{r&&(globalThis.clearTimeout(r),r=void 0);const a=this.markContainerEnd();this.update(!1,a),this.dragStatus=StageDragStatus.END}).on("clickGroup",a=>{var d;const{inputTarget:l,targets:c}=a;if(c.length>1&&c.includes(l)){const u=(d=getIdFromEl()(l))==null?void 0:d.replace(DRAG_EL_ID_PREFIX,"");u&&this.emit("change-to-select",u,a.inputEvent)}})}canSelect(t,r){const s=getMode(t);let a="";return!(s===Mode.SORTABLE||(this.targetList.length===0&&r?a=getMode(r):this.targetList.length>0&&(a=getMode(this.targetList[0])),s!==a))}updateMoveable(t=this.targetList){if(!this.moveableForMulti)return;if(!t)throw new Error("未选中任何节点");this.targetList=t,this.dragResizeHelper.setTargetList(t);const r=this.getOptions(!0,{target:this.dragResizeHelper.getShadowEls()});Object.entries(r).forEach(([s,a])=>{this.moveableForMulti[s]=a}),this.moveableForMulti.updateRect()}clearSelectStatus(){this.moveableForMulti&&(this.dragResizeHelper.clearMultiSelectStatus(),this.moveableForMulti.target=null,this.moveableForMulti.updateTarget(),this.targetList=[])}destroy(){var t;(t=this.moveableForMulti)==null||t.destroy(),this.dragResizeHelper.destroy()}on(t,r){return super.on(t,r)}emit(t,...r){return super.emit(t,...r)}update(t=!1,r=null){if(this.targetList.length===0)return;const s=this.getRenderDocument();if(!s)return;const a=this.targetList.map(l=>{const c=this.dragResizeHelper.getUpdatedElRect(l,r,s);return{el:l,style:t?c:{left:c.left,top:c.top}}});this.emit("update",{data:a,parentEl:r})}}const throttleTime=100,defaultContainerHighlightDuration=800;class ActionManager extends EventEmitter$3{constructor(t){var r;super();K(this,"dr",null);K(this,"multiDr",null);K(this,"highlightLayer",null);K(this,"container");K(this,"selectedEl",null);K(this,"selectedElList",[]);K(this,"highlightedEl");K(this,"isMultiSelectStatus",!1);K(this,"containerHighlightClassName");K(this,"containerHighlightDuration");K(this,"containerHighlightType");K(this,"isAltKeydown",!1);K(this,"getTargetElement");K(this,"getElementsFromPoint");K(this,"canSelect");K(this,"isContainer");K(this,"getRenderDocument");K(this,"disabledMultiSelect",!1);K(this,"config");K(this,"mouseMoveHandler",throttle$2(t=>{(async()=>{var l,c;if((c=(l=t.target)==null?void 0:l.classList)!=null&&c.contains("moveable-direction"))return;const s=await this.getElementFromPoint(t),a=getIdFromEl()(s);if(!a){this.clearHighlight();return}this.emit("mousemove",t),this.highlight(a)})()},throttleTime));K(this,"mouseDownHandler",t=>{(async()=>{if(this.clearHighlight(),t.stopImmediatePropagation(),t.stopPropagation(),!this.isStopTriggerSelect(t)){if(this.container.removeEventListener("mousemove",this.mouseMoveHandler),this.isMultiSelectStatus)await this.beforeMultiSelect(t),this.selectedElList.length>0&&this.emit("before-multi-select",this.selectedElList);else{const s=await this.getElementFromPoint(t);if(!s)return;this.emit("before-select",s,t)}getDocument$2().addEventListener("mouseup",this.mouseUpHandler)}})()});K(this,"mouseUpHandler",t=>{getDocument$2().removeEventListener("mouseup",this.mouseUpHandler),this.container.addEventListener("mousemove",this.mouseMoveHandler),this.isMultiSelectStatus?this.emit("multi-select",this.selectedElList,t):this.emit("select",this.selectedEl,t)});K(this,"mouseLeaveHandler",t=>{setTimeout(()=>this.clearHighlight(),throttleTime),this.emit("mouseleave",t)});K(this,"mouseWheelHandler",()=>{this.clearHighlight()});K(this,"dblclickHandler",t=>{this.emit("dblclick",t)});this.config=t,this.container=t.container,this.containerHighlightClassName=t.containerHighlightClassName||CONTAINER_HIGHLIGHT_CLASS_NAME,this.containerHighlightDuration=t.containerHighlightDuration||defaultContainerHighlightDuration,this.containerHighlightType=t.containerHighlightType,this.disabledMultiSelect=(r=t.disabledMultiSelect)!=null?r:!1,this.getTargetElement=t.getTargetElement,this.getElementsFromPoint=t.getElementsFromPoint,this.canSelect=t.canSelect||(s=>!!getIdFromEl()(s)),this.getRenderDocument=t.getRenderDocument,this.isContainer=t.isContainer,this.dr=this.createDr(t),this.disabledMultiSelect||(this.multiDr=this.createMultiDr(t)),this.highlightLayer=new StageHighlight({container:t.container,updateDragEl:t.updateDragEl,getRootContainer:t.getRootContainer}),this.initMouseEvent(),this.initKeyEvent()}disableMultiSelect(){this.disabledMultiSelect=!0,this.multiDr&&(this.multiDr.destroy(),this.multiDr=null)}enableMultiSelect(){this.disabledMultiSelect=!1,this.multiDr||(this.multiDr=this.createMultiDr(this.config))}setGuidelines(t,r){var s,a;(s=this.dr)==null||s.setGuidelines(t,r),(a=this.multiDr)==null||a.setGuidelines(t,r)}clearGuides(){var t,r;(t=this.dr)==null||t.clearGuides(),(r=this.multiDr)==null||r.clearGuides()}updateMoveable(t){var r,s;(r=this.dr)==null||r.updateMoveable(t),(s=this.multiDr)==null||s.updateMoveable()}isSelectedEl(t){return getIdFromEl()(t)===getIdFromEl()(this.selectedEl)}setSelectedEl(t){this.selectedEl=t}getSelectedEl(){return this.selectedEl}getSelectedElList(){return this.selectedElList}getMoveableOption(t){var r,s;if((r=this.dr)!=null&&r.getTarget())return this.dr.getOption(t);if((s=this.multiDr)!=null&&s.targetList.length)return this.multiDr.getOption(t)}async getElementFromPoint(t){var l;const r=this.getElementsFromPoint(t);this.emit("get-elements-from-point",r);let s=!1;const a=()=>s=!0;for(const c of r)if(!((l=getIdFromEl()(c))!=null&&l.startsWith(GHOST_EL_ID_PREFIX))&&await this.isElCanSelect(c,t,a)){if(s)break;return c}return null}async isElCanSelect(t,r,s){return await this.canSelect(t,r,s)?this.isMultiSelectStatus?this.canMultiSelect(t,s):!0:!1}canMultiSelect(t,r){var a;if(t.className.includes(PAGE_CLASS))return r(),!1;const s=this.getSelectedEl();return s!=null&&s.className.includes(PAGE_CLASS)?!0:((a=this.multiDr)==null?void 0:a.canSelect(t,s))||!1}select(t,r){var s;this.setSelectedEl(t),this.clearSelectStatus(SelectStatus.MULTI_SELECT),(s=this.dr)==null||s.select(t,r)}multiSelect(t){var r;this.selectedElList=[],t.forEach(s=>{const a=this.getTargetElement(s);a&&this.selectedElList.push(a)}),this.clearSelectStatus(SelectStatus.SELECT),(r=this.multiDr)==null||r.multiSelect(this.selectedElList)}getHighlightEl(){return this.highlightedEl}setHighlightEl(t){this.highlightedEl=t}highlight(t){var s,a;let r;try{r=this.getTargetElement(t)}catch(l){this.clearHighlight(),console.warn("getTargetElement error:",l);return}if(r===this.getSelectedEl()||((s=this.multiDr)==null?void 0:s.dragStatus)===StageDragStatus.ING){this.clearHighlight();return}r===this.highlightedEl||!r||((a=this.highlightLayer)==null||a.highlight(r),this.highlightedEl=r,this.emit("highlight",r))}clearHighlight(){var t;this.setHighlightEl(void 0),(t=this.highlightLayer)==null||t.clearHighlight()}clearSelectStatus(t){var r,s;t===SelectStatus.MULTI_SELECT?((r=this.multiDr)==null||r.clearSelectStatus(),this.selectedElList=[]):(s=this.dr)==null||s.clearSelectStatus()}async addContainerHighlightClassName(t,r){var l,c;const s=this.getRenderDocument();if(!s)return;const a=this.getElementsFromPoint(t);for(const d of a)if(!((l=getIdFromEl()(d))!=null&&l.startsWith(GHOST_EL_ID_PREFIX))&&await((c=this.isContainer)==null?void 0:c.call(this,d))&&!r.includes(d)){addClassName(d,s,this.containerHighlightClassName);break}}delayedMarkContainer(t,r=[]){if(this.canAddToContainer())return globalThis.setTimeout(()=>{this.addContainerHighlightClassName(t,r)},this.containerHighlightDuration)}getDragStatus(){var t;return(t=this.dr)==null?void 0:t.getDragStatus()}updateMoveableOptions(){var t,r;(t=this.dr)==null||t.updateMoveable(),(r=this.multiDr)==null||r.updateMoveable()}destroy(){var t,r,s;this.container.removeEventListener("mousedown",this.mouseDownHandler),this.container.removeEventListener("mousemove",this.mouseMoveHandler),this.container.removeEventListener("mouseleave",this.mouseLeaveHandler),this.container.removeEventListener("wheel",this.mouseWheelHandler),this.container.removeEventListener("dblclick",this.dblclickHandler),this.selectedEl=null,this.selectedElList=[],(t=this.dr)==null||t.destroy(),(r=this.multiDr)==null||r.destroy(),(s=this.highlightLayer)==null||s.destroy(),this.dr=null,this.multiDr=null,this.highlightLayer=null}on(t,r){return super.on(t,r)}emit(t,...r){return super.emit(t,...r)}createDr(t){const r=()=>new DragResizeHelper({container:t.container,updateDragEl:t.updateDragEl}),s=new StageDragResize({container:t.container,disabledDragStart:t.disabledDragStart,moveableOptions:t.moveableOptions&&this.changeCallback(t.moveableOptions,!1),dragResizeHelper:r(),getRootContainer:t.getRootContainer,getRenderDocument:t.getRenderDocument,markContainerEnd:this.markContainerEnd.bind(this),delayedMarkContainer:this.delayedMarkContainer.bind(this)});return s.on("update",a=>{setTimeout(()=>this.emit("update",a))}).on("sort",a=>{setTimeout(()=>this.emit("sort",a))}).on(AbleActionEventType.SELECT_PARENT,()=>{this.emit("select-parent")}).on(AbleActionEventType.REMOVE,()=>{var c;const a=(c=this.dr)==null?void 0:c.getTarget();if(!a)return;const l={data:[{el:a}]};this.emit("remove",l)}).on(AbleActionEventType.RERENDER,()=>{this.emit("rerender")}).on("drag-start",a=>{this.emit("drag-start",a)}),s}createMultiDr(t){const r=()=>new DragResizeHelper({container:t.container,updateDragEl:t.updateDragEl}),s=new StageMultiDragResize({container:t.container,moveableOptions:t.moveableOptions&&this.changeCallback(t.moveableOptions,!0),dragResizeHelper:r(),getRootContainer:t.getRootContainer,getRenderDocument:t.getRenderDocument,markContainerEnd:this.markContainerEnd.bind(this),delayedMarkContainer:this.delayedMarkContainer.bind(this)});return s==null||s.on("update",a=>{this.emit("multi-update",a)}).on("change-to-select",(a,l)=>{this.isMultiSelectStatus||this.emit("change-to-select",a,l)}),s}changeCallback(t,r){return typeof t=="function"?()=>{var s;if(typeof t=="function"){const a={targetEl:this.selectedEl,targetElId:getIdFromEl()(this.selectedEl),targetEls:this.selectedElList,targetElIds:(s=this.selectedElList)==null?void 0:s.map(l=>getIdFromEl()(l)||""),isMulti:r,document:this.getRenderDocument()};return t(a)}return t}:t}async beforeMultiSelect(t){const r=await this.getElementFromPoint(t);if(!r)return;this.selectedEl&&!this.selectedEl.className.includes(PAGE_CLASS)&&(this.selectedElList.push(this.selectedEl),this.setSelectedEl(null));const s=this.selectedElList.findIndex(a=>getIdFromEl()(a)===getIdFromEl()(r));s!==-1?this.selectedElList.length>1&&this.selectedElList.splice(s,1):this.selectedElList.push(r)}canAddToContainer(){return this.containerHighlightType===ContainerHighlightType.DEFAULT||this.containerHighlightType===ContainerHighlightType.ALT&&this.isAltKeydown}markContainerEnd(){const t=this.getRenderDocument();return t&&this.canAddToContainer()?removeClassNameByClassName(t,this.containerHighlightClassName):null}initMouseEvent(){this.container.addEventListener("mousedown",this.mouseDownHandler),this.container.addEventListener("mousemove",this.mouseMoveHandler),this.container.addEventListener("mouseleave",this.mouseLeaveHandler),this.container.addEventListener("wheel",this.mouseWheelHandler),this.container.addEventListener("dblclick",this.dblclickHandler)}initKeyEvent(){const{isMac:t}=new Env,r=t?"meta":"ctrl";KeyController.global.keydown(r,s=>{s.inputEvent.preventDefault(),this.disabledMultiSelect||(this.isMultiSelectStatus=!0)}),KeyController.global.on("blur",()=>{this.disabledMultiSelect||(this.isMultiSelectStatus=!1),this.isAltKeydown=!1}),KeyController.global.keyup(r,s=>{s.inputEvent.preventDefault(),this.disabledMultiSelect||(this.isMultiSelectStatus=!1)}),KeyController.global.keydown("alt",s=>{s.inputEvent.preventDefault(),this.isAltKeydown=!0}),KeyController.global.keyup("alt",s=>{s.inputEvent.preventDefault(),this.markContainerEnd(),this.isAltKeydown=!1})}isStopTriggerSelect(t){if(t.button!==MouseButton.LEFT&&t.button!==MouseButton.RIGHT||!t.target)return!0;const r=t.target.classList;return!!(!this.isMultiSelectStatus&&r.contains("moveable-area")||r.contains("moveable-control")||isMoveableButton(t.target))}}const guidesClass="tmagic-stage-guides";class Rule extends EventEmitter$3{constructor(t,r){super();K(this,"hGuides");K(this,"vGuides");K(this,"horizontalGuidelines",[]);K(this,"verticalGuidelines",[]);K(this,"container");K(this,"containerResizeObserver");K(this,"isShowGuides",!0);K(this,"guidesOptions");K(this,"getGuidesStyle",t=>({position:"fixed",zIndex:1,left:t===GuidesType.HORIZONTAL?0:"-30px",top:t===GuidesType.HORIZONTAL?"-30px":0,width:t===GuidesType.HORIZONTAL?"100%":"30px",height:t===GuidesType.HORIZONTAL?"30px":"100%"}));K(this,"createGuides",(t,r=[])=>{if(!this.container)return;const s=new Guides$1(this.container,{type:t,defaultGuides:r,displayDragPos:!0,className:guidesClass,backgroundColor:"#fff",lineColor:"#000",textColor:"#000",style:this.getGuidesStyle(t),showGuides:this.isShowGuides,...this.guidesOptions}),a={[GuidesType.HORIZONTAL]:this.hGuidesChangeGuidesHandler,[GuidesType.VERTICAL]:this.vGuidesChangeGuidesHandler}[t];return a&&s.on("changeGuides",a),s});K(this,"hGuidesChangeGuidesHandler",t=>{this.horizontalGuidelines=t.guides,this.emit("change-guides",{type:GuidesType.HORIZONTAL,guides:this.horizontalGuidelines})});K(this,"vGuidesChangeGuidesHandler",t=>{this.verticalGuidelines=t.guides,this.emit("change-guides",{type:GuidesType.VERTICAL,guides:this.verticalGuidelines})});!(r!=null&&r.disabledRule)&&(this.guidesOptions=(r==null?void 0:r.guidesOptions)||{},this.container=t,this.hGuides=this.createGuides(GuidesType.HORIZONTAL,this.horizontalGuidelines),this.vGuides=this.createGuides(GuidesType.VERTICAL,this.verticalGuidelines),this.containerResizeObserver=new ResizeObserver(()=>{var s,a;(s=this.vGuides)==null||s.resize(),(a=this.hGuides)==null||a.resize()}),this.containerResizeObserver.observe(this.container))}showGuides(t=!0){var r,s;this.isShowGuides=t,(r=this.hGuides)==null||r.setState({showGuides:t}),(s=this.vGuides)==null||s.setState({showGuides:t})}setGuides([t,r]){var s,a;this.horizontalGuidelines=t,this.verticalGuidelines=r,(s=this.hGuides)==null||s.setState({defaultGuides:t}),(a=this.vGuides)==null||a.setState({defaultGuides:r}),this.emit("change-guides",{type:GuidesType.HORIZONTAL,guides:t}),this.emit("change-guides",{type:GuidesType.VERTICAL,guides:r})}clearGuides(){this.setGuides([[],[]])}showRule(t=!0){var r,s;t?(this.destroyGuides(),this.hGuides=this.createGuides(GuidesType.HORIZONTAL,this.horizontalGuidelines),this.vGuides=this.createGuides(GuidesType.VERTICAL,this.verticalGuidelines)):((r=this.hGuides)==null||r.setState({rulerStyle:{visibility:"hidden"}}),(s=this.vGuides)==null||s.setState({rulerStyle:{visibility:"hidden"}}))}scrollRule(t){var r,s,a,l;(r=this.hGuides)==null||r.scrollGuides(t),(s=this.hGuides)==null||s.scroll(0),(a=this.vGuides)==null||a.scrollGuides(0),(l=this.vGuides)==null||l.scroll(t)}destroy(){var t,r,s;this.destroyGuides(),(t=this.hGuides)==null||t.off("changeGuides",this.hGuidesChangeGuidesHandler),(r=this.vGuides)==null||r.off("changeGuides",this.vGuidesChangeGuidesHandler),(s=this.containerResizeObserver)==null||s.disconnect(),this.removeAllListeners()}destroyGuides(){var t,r,s;(t=this.hGuides)==null||t.destroy(),(r=this.vGuides)==null||r.destroy(),(s=this.container)==null||s.querySelectorAll(".".concat(guidesClass)).forEach(a=>{a.remove()}),this.hGuides=void 0,this.vGuides=void 0,this.container=void 0}}const wrapperClassName="editor-mask-wrapper",hideScrollbar=()=>{injectStyle$1(getDocument$2(),".".concat(wrapperClassName,"::-webkit-scrollbar { width: 0 !important; display: none }"))},createContent=()=>createDiv({className:"editor-mask",cssText:"\n position: absolute;\n top: 0;\n left: 0;\n transform: translate3d(0, 0, 0);\n "}),createWrapper=()=>{const o=createDiv({className:wrapperClassName,cssText:"\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n z-index: ".concat(ZIndex.MASK,";\n ")});return hideScrollbar(),o};class StageMask extends Rule{constructor(t){const r=createWrapper();super(r,t);K(this,"content",createContent());K(this,"wrapper");K(this,"page",null);K(this,"scrollTop",0);K(this,"scrollLeft",0);K(this,"width",0);K(this,"height",0);K(this,"wrapperHeight",0);K(this,"wrapperWidth",0);K(this,"maxScrollTop",0);K(this,"maxScrollLeft",0);K(this,"mode",Mode.ABSOLUTE);K(this,"pageScrollParent",null);K(this,"intersectionObserver",null);K(this,"wrapperResizeObserver",null);K(this,"mouseWheelHandler",t=>{if(!this.page)throw new Error("page 未初始化");const{deltaY:r,deltaX:s}=t;this.page.clientHeight<this.wrapperHeight&&r||this.page.clientWidth<this.wrapperWidth&&s||(this.maxScrollTop>0&&(this.scrollTop=this.scrollTop+r),this.maxScrollLeft>0&&(this.scrollLeft=this.scrollLeft+s),this.scroll(),this.emit("scroll",t))});this.wrapper=r,this.content.addEventListener("wheel",this.mouseWheelHandler),this.wrapper.appendChild(this.content)}setMode(t){this.mode=t,this.scroll(),this.content.dataset.mode=t,t===Mode.FIXED?(this.content.style.width="".concat(this.wrapperWidth,"px"),this.content.style.height="".concat(this.wrapperHeight,"px")):(this.content.style.width="".concat(this.width,"px"),this.content.style.height="".concat(this.height,"px"))}observe(t){t&&(this.page=t,this.initObserverIntersection(),this.initObserverWrapper())}pageResize(t){const[r]=t,{clientHeight:s,clientWidth:a}=r.target;this.setHeight(s),this.setWidth(a),this.scroll()}observerIntersection(t){var r;(r=this.intersectionObserver)==null||r.observe(t)}mount(t){if(!this.content)throw new Error("content 不存在");t.appendChild(this.wrapper)}setLayout(t){this.setMode(isFixedParent(t)?Mode.FIXED:Mode.ABSOLUTE)}scrollIntoView(t){if(!this.page||t.getBoundingClientRect().left>=this.page.scrollWidth)return;const r=getScrollParent(t);if(r&&r!==this.pageScrollParent){this.scrollIntoView(r);return}t.scrollIntoView(),this.pageScrollParent&&(this.scrollLeft=this.pageScrollParent.scrollLeft,this.scrollTop=this.pageScrollParent.scrollTop,this.scroll())}destroy(){var t,r;super.destroy(),(t=this.content)==null||t.remove(),this.page=null,this.pageScrollParent=null,(r=this.wrapperResizeObserver)==null||r.disconnect()}on(t,r){return super.on(t,r)}emit(t,...r){return super.emit(t,...r)}initObserverIntersection(){var t;this.pageScrollParent=getScrollParent(this.page)||null,(t=this.intersectionObserver)==null||t.disconnect(),typeof IntersectionObserver<"u"&&(this.intersectionObserver=new IntersectionObserver(r=>{r.forEach(s=>{var c;const{target:a,intersectionRatio:l}=s;l<=0&&this.scrollIntoView(a),(c=this.intersectionObserver)==null||c.unobserve(a)})},{root:this.pageScrollParent,rootMargin:"0px",threshold:1}))}initObserverWrapper(){var t;(t=this.wrapperResizeObserver)==null||t.disconnect(),typeof ResizeObserver<"u"&&(this.wrapperResizeObserver=new ResizeObserver(r=>{const[s]=r,{clientHeight:a,clientWidth:l}=s.target;this.wrapperHeight=a,this.wrapperWidth=l,this.mode===Mode.FIXED&&(this.content.style.width="".concat(this.wrapperWidth,"px"),this.content.style.height="".concat(this.wrapperHeight,"px")),this.setMaxScrollLeft(),this.setMaxScrollTop()}),this.wrapperResizeObserver.observe(this.wrapper))}scroll(){this.fixScrollValue();let{scrollLeft:t,scrollTop:r}=this;this.pageScrollParent&&this.pageScrollParent.scrollTo({top:r,left:t}),this.mode===Mode.FIXED&&(t=0,r=0),this.scrollRule(r),this.scrollTo(t,r)}scrollTo(t,r){this.content.style.transform="translate3d(".concat(-t,"px, ").concat(-r,"px, 0)");const s=new CustomEvent("customScroll",{detail:{scrollLeft:this.scrollLeft,scrollTop:this.scrollTop}});this.content.dispatchEvent(s)}setHeight(t){this.height=t,this.setMaxScrollTop(),this.mode!==Mode.FIXED&&(this.content.style.height="".concat(t,"px"))}setWidth(t){this.width=t,this.setMaxScrollLeft(),this.mode!==Mode.FIXED&&(this.content.style.width="".concat(t,"px"))}setMaxScrollLeft(){this.maxScrollLeft=Math.max(this.width-this.wrapperWidth,0)}setMaxScrollTop(){this.maxScrollTop=Math.max(this.height-this.wrapperHeight,0)}fixScrollValue(){this.scrollTop<0&&(this.scrollTop=0),this.scrollLeft<0&&(this.scrollLeft=0),this.maxScrollTop<this.scrollTop&&(this.scrollTop=this.maxScrollTop),this.maxScrollLeft<this.scrollLeft&&(this.scrollLeft=this.maxScrollLeft)}}const style=".tmagic-stage-container-highlight::after {\n content: '';\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: #000;\n opacity: .1;\n pointer-events: none;\n}\n\n.magic-ui-container.magic-layout-relative {\n min-height: 50px;\n}\n";class StageRender extends eventsExports.EventEmitter{constructor({runtimeUrl:t,zoom:r,customizedRender:s,renderType:a=RenderType.IFRAME}){super();K(this,"contentWindow",null);K(this,"runtime",null);K(this,"iframe");K(this,"nativeContainer");K(this,"runtimeUrl");K(this,"zoom",DEFAULT_ZOOM);K(this,"renderType");K(this,"customizedRender");K(this,"getMagicApi",()=>({id:guid(),onPageElUpdate:t=>{this.emit("page-el-update",t)},onRuntimeReady:t=>{this.runtime||(this.runtime=t,globalThis.runtime=t,this.emit("runtime-ready",t))}}));K(this,"getRuntime",()=>this.runtime?Promise.resolve(this.runtime):new Promise(t=>{const r=s=>{this.off("runtime-ready",r),t(s)};this.on("runtime-ready",r)}));K(this,"iframeLoadHandler",()=>{(async()=>{var r,s,a;if((r=this.contentWindow)!=null&&r.magic||this.postTmagicRuntimeReady(),!!this.contentWindow){if(this.customizedRender){const l=await this.customizedRender();l&&((a=(s=this.contentWindow.document)==null?void 0:s.body)==null||a.appendChild(l))}this.emit("onload"),injectStyle$1(this.contentWindow.document,style)}})()});this.renderType=a,this.runtimeUrl=t||"",this.customizedRender=s,this.setZoom(r),this.renderType===RenderType.IFRAME?this.createIframe():this.renderType===RenderType.NATIVE&&this.createNativeContainer()}async add(t){var s;const r=await this.getRuntime();return(s=r==null?void 0:r.add)==null?void 0:s.call(r,t)}async remove(t){var s;const r=await this.getRuntime();return(s=r==null?void 0:r.remove)==null?void 0:s.call(r,t)}async update(t){var s;const r=await this.getRuntime();(s=r==null?void 0:r.update)==null||s.call(r,t)}async select(t){var s;const r=await this.getRuntime();for(const a of t)await((s=r==null?void 0:r.select)==null?void 0:s.call(r,a)),this.flagSelectedEl(this.getTargetElement(a))}setZoom(t=DEFAULT_ZOOM){this.zoom=t}async mount(t){if(this.iframe){if(!isSameDomain(this.runtimeUrl)&&this.runtimeUrl){let r=await fetch(this.runtimeUrl).then(a=>a.text());const s="".concat(location.protocol,"//").concat(getHost(this.runtimeUrl));r=r.replace("<head>",'<head>\n<base href="'.concat(s,'">')),this.iframe.srcdoc=r}t.appendChild(this.iframe),this.postTmagicRuntimeReady()}else this.nativeContainer&&t.appendChild(this.nativeContainer)}getDocument(){var t;return(t=this.contentWindow)==null?void 0:t.document}getElementsFromPoint(t){var a;let r=t.clientX,s=t.clientY;if(this.iframe){const l=this.iframe.getClientRects()[0];l&&(r=r-l.left,s=s-l.top)}return(a=this.getDocument())==null?void 0:a.elementsFromPoint(r/this.zoom,s/this.zoom)}getTargetElement(t){return getElById()(this.getDocument(),t)}postTmagicRuntimeReady(){var t;this.contentWindow=(t=this.iframe)==null?void 0:t.contentWindow,this.contentWindow.magic=this.getMagicApi(),this.contentWindow.postMessage({tmagicRuntimeReady:!0},"*")}reloadIframe(t){var s;if(this.renderType!==RenderType.IFRAME)return;const r=(s=this.iframe)==null?void 0:s.parentElement;this.destroyIframe(),this.runtimeUrl=t,this.createIframe(),this.mount(r),this.runtime=null}destroyIframe(){var t,r;(t=this.iframe)==null||t.removeEventListener("load",this.iframeLoadHandler),this.contentWindow=null,(r=this.iframe)==null||r.remove(),this.iframe=void 0}destroy(){this.destroyIframe(),globalThis.runtime=void 0,this.removeAllListeners()}on(t,r){return super.on(t,r)}emit(t,...r){return super.emit(t,...r)}createIframe(){return this.iframe=globalThis.document.createElement("iframe"),this.iframe.src=this.runtimeUrl&&isSameDomain(this.runtimeUrl)?this.runtimeUrl:"",this.iframe.style.cssText="\n border: 0;\n width: 100%;\n height: 100%;\n ",this.iframe.addEventListener("load",this.iframeLoadHandler),this.iframe}async createNativeContainer(){if(this.contentWindow=globalThis,this.nativeContainer=globalThis.document.createElement("div"),this.contentWindow.magic=this.getMagicApi(),this.customizedRender){const t=await this.customizedRender();t&&this.nativeContainer.appendChild(t)}}flagSelectedEl(t){const r=this.getDocument();r&&(removeSelectedClassName(r),t&&addSelectedClassName(t,r))}}class StageCore extends eventsExports.EventEmitter{constructor(t){super();K(this,"container");K(this,"renderer",null);K(this,"mask",null);K(this,"actionManager",null);K(this,"pageResizeObserver",null);K(this,"autoScrollIntoView");K(this,"customizedRender");this.autoScrollIntoView=t.autoScrollIntoView,this.customizedRender=t.render,this.renderer=new StageRender({runtimeUrl:t.runtimeUrl,zoom:t.zoom,renderType:t.renderType,customizedRender:async()=>this!=null&&this.customizedRender?await this.customizedRender(this):null}),this.mask=new StageMask({guidesOptions:t.guidesOptions,disabledRule:t.disabledRule}),this.actionManager=new ActionManager(this.getActionManagerConfig(t)),this.initRenderEvent(),this.initActionEvent(),this.initMaskEvent()}async select(t,r){var a,l,c,d,u,g;const s=((a=this.renderer)==null?void 0:a.getTargetElement(t))||null;s!==((l=this.actionManager)==null?void 0:l.getSelectedEl())&&(await((c=this.renderer)==null?void 0:c.select([t])),s&&((d=this.mask)==null||d.setLayout(s)),(u=this.actionManager)==null||u.select(s,r),s&&(this.autoScrollIntoView||s.dataset.autoScrollIntoView)&&((g=this.mask)==null||g.observerIntersection(s)))}async multiSelect(t){var l,c,d,u;const r=t.map(g=>{var f;return(f=this.renderer)==null?void 0:f.getTargetElement(g)}).filter(g=>!!g);if(r.length===0)return;const s=r[r.length-1],a=r.length<this.actionManager.getSelectedElList().length;await((l=this.renderer)==null?void 0:l.select(t)),s&&((c=this.mask)==null||c.setLayout(s)),(d=this.actionManager)==null||d.multiSelect(t),s&&(this.autoScrollIntoView||s.dataset.autoScrollIntoView)&&!a&&((u=this.mask)==null||u.observerIntersection(s))}highlight(t){var r;(r=this.actionManager)==null||r.highlight(t)}clearHighlight(){var t;(t=this.actionManager)==null||t.clearHighlight()}async update(t){var s;const{config:r}=t;await((s=this.renderer)==null?void 0:s.update(t)),setTimeout(()=>{var l,c,d;const a=(l=this.renderer)==null?void 0:l.getTargetElement("".concat(r.id));a&&((c=this.actionManager)!=null&&c.isSelectedEl(a))&&((d=this.mask)==null||d.setLayout(a),this.actionManager.setSelectedEl(a),this.actionManager.updateMoveable(a))})}async add(t){var r;return await((r=this.renderer)==null?void 0:r.add(t))}async remove(t){var r;return await((r=this.renderer)==null?void 0:r.remove(t))}setZoom(t=DEFAULT_ZOOM){var r;(r=this.renderer)==null||r.setZoom(t)}async mount(t){this.container=t;const{mask:r,renderer:s}=this;await(s==null?void 0:s.mount(t)),r==null||r.mount(t),this.emit("mounted")}clearGuides(){var t,r;(t=this.mask)==null||t.clearGuides(),(r=this.actionManager)==null||r.clearGuides()}getAddContainerHighlightClassNameTimeout(t,r=[]){return this.delayedMarkContainer(t,r)}delayedMarkContainer(t,r=[]){var s;return(s=this.actionManager)==null?void 0:s.delayedMarkContainer(t,r)}getMoveableOption(t){var r;return(r=this.actionManager)==null?void 0:r.getMoveableOption(t)}getDragStatus(){var t;return(t=this.actionManager)==null?void 0:t.getDragStatus()}disableMultiSelect(){var t;(t=this.actionManager)==null||t.disableMultiSelect()}enableMultiSelect(){var t;(t=this.actionManager)==null||t.enableMultiSelect()}reloadIframe(t){var r;(r=this.renderer)==null||r.reloadIframe(t)}destroy(){const{mask:t,renderer:r,actionManager:s,pageResizeObserver:a}=this;r==null||r.destroy(),t==null||t.destroy(),s==null||s.destroy(),a==null||a.disconnect(),this.removeAllListeners(),this.container=void 0,this.renderer=null,this.mask=null,this.actionManager=null,this.pageResizeObserver=null}on(t,r){return super.on(t,r)}emit(t,...r){return super.emit(t,...r)}observePageResize(t){this.pageResizeObserver&&this.pageResizeObserver.disconnect(),typeof ResizeObserver<"u"&&(this.pageResizeObserver=new ResizeObserver(r=>{var s,a;(s=this.mask)==null||s.pageResize(r),(a=this.actionManager)==null||a.updateMoveable()}),this.pageResizeObserver.observe(t))}getActionManagerConfig(t){return{containerHighlightClassName:t.containerHighlightClassName,containerHighlightDuration:t.containerHighlightDuration,containerHighlightType:t.containerHighlightType,moveableOptions:t.moveableOptions,container:this.mask.content,disabledDragStart:t.disabledDragStart,disabledMultiSelect:t.disabledMultiSelect,canSelect:t.canSelect,isContainer:t.isContainer,updateDragEl:t.updateDragEl,getRootContainer:()=>this.container,getRenderDocument:()=>this.renderer.getDocument(),getTargetElement:s=>this.renderer.getTargetElement(s),getElementsFromPoint:s=>this.renderer.getElementsFromPoint(s)}}initRenderEvent(){var t,r;(t=this.renderer)==null||t.on("runtime-ready",s=>{this.emit("runtime-ready",s)}),(r=this.renderer)==null||r.on("page-el-update",s=>{var a;(a=this.mask)==null||a.observe(s),this.observePageResize(s),this.emit("page-el-update",s)})}initMaskEvent(){var t;(t=this.mask)==null||t.on("change-guides",r=>{var s;(s=this.actionManager)==null||s.setGuidelines(r.type,r.guides),this.emit("change-guides",r)})}initActionEvent(){this.initActionManagerEvent(),this.initDrEvent(),this.initMulDrEvent(),this.initHighlightEvent(),this.initMouseEvent()}initActionManagerEvent(){var t;(t=this.actionManager)==null||t.on("before-select",(r,s)=>{const a=getIdFromEl()(r);a&&this.select(a,s)}).on("select",(r,s)=>{this.emit("select",r,s)}).on("before-multi-select",r=>{this.multiSelect(r.map(s=>getIdFromEl()(s)).filter(s=>!!s))}).on("multi-select",(r,s)=>{this.emit("multi-select",r,s)}).on("dblclick",r=>{this.emit("dblclick",r)})}initDrEvent(){var t;(t=this.actionManager)==null||t.on("update",r=>{this.emit("update",r)}).on("sort",r=>{this.emit("sort",r)}).on("select-parent",()=>{this.emit("select-parent")}).on("rerender",()=>{this.emit("rerender")}).on("remove",r=>{this.emit("remove",r)})}initMulDrEvent(){var t;(t=this.actionManager)==null||t.on("change-to-select",(r,s)=>{this.select(r),setTimeout(()=>{var l;const a=(l=this.renderer)==null?void 0:l.getTargetElement(r);a&&this.emit("select",a,s)})}).on("multi-update",r=>{this.emit("update",r)})}initHighlightEvent(){var t;(t=this.actionManager)==null||t.on("highlight",r=>{this.emit("highlight",r)})}initMouseEvent(){var t;(t=this.actionManager)==null||t.on("mousemove",r=>{this.emit("mousemove",r)}).on("mouseleave",r=>{this.emit("mouseleave",r)}).on("drag-start",r=>{this.emit("drag-start",r)})}}const isDate=o=>o instanceof Date,isEmpty=o=>Object.keys(o).length===0,isObject=o=>o!=null&&typeof o=="object",hasOwnProperty=(o,...e)=>Object.prototype.hasOwnProperty.call(o,...e),isEmptyObject=o=>isObject(o)&&isEmpty(o),makeObjectWithoutPrototype=()=>Object.create(null),addedDiff=(o,e)=>o===e||!isObject(o)||!isObject(e)?{}:Object.keys(e).reduce((t,r)=>{if(hasOwnProperty(o,r)){const s=addedDiff(o[r],e[r]);return isObject(s)&&isEmpty(s)||(t[r]=s),t}return t[r]=e[r],t},makeObjectWithoutPrototype()),deletedDiff=(o,e)=>o===e||!isObject(o)||!isObject(e)?{}:Object.keys(o).reduce((t,r)=>{if(hasOwnProperty(e,r)){const s=deletedDiff(o[r],e[r]);return isObject(s)&&isEmpty(s)||(t[r]=s),t}return t[r]=void 0,t},makeObjectWithoutPrototype()),updatedDiff=(o,e)=>o===e?{}:!isObject(o)||!isObject(e)?e:isDate(o)||isDate(e)?o.valueOf()==e.valueOf()?{}:e:Object.keys(e).reduce((t,r)=>{if(hasOwnProperty(o,r)){const s=updatedDiff(o[r],e[r]);return isEmptyObject(s)&&!isDate(s)&&(isEmptyObject(o[r])||!isEmptyObject(e[r]))||(t[r]=s),t}return t},makeObjectWithoutPrototype()),detailedDiff=(o,e)=>({added:addedDiff(o,e),deleted:deletedDiff(o,e),updated:updatedDiff(o,e)}),_hoisted_1$$=["src"],_sfc_main$1r=defineComponent({name:"MEditorIcon",__name:"Icon",props:{icon:{}},setup(o){const e=t=>/^(\.|(\.\.)?\/)/.test(t);return(t,r)=>o.icon?typeof o.icon=="string"&&(o.icon.startsWith("http")||e(o.icon))?(openBlock(),createBlock(unref(_sfc_main$n$2),{key:1,class:"magic-editor-icon"},{default:withCtx(()=>[createBaseVNode("img",{src:o.icon},null,8,_hoisted_1$$)]),_:1})):typeof o.icon=="string"?(openBlock(),createElementBlock("i",{key:2,class:normalizeClass(["magic-editor-icon",o.icon])},null,2)):(openBlock(),createBlock(unref(_sfc_main$n$2),{key:3,class:"magic-editor-icon"},{default:withCtx(()=>[(openBlock(),createBlock(resolveDynamicComponent(toRaw(o.icon))))]),_:1})):(openBlock(),createBlock(unref(_sfc_main$n$2),{key:0,class:"magic-editor-icon"},{default:withCtx(()=>[createVNode(unref(edit_default))]),_:1}))}});let $TMAGIC_EDITOR={};const setEditorConfig=o=>{$TMAGIC_EDITOR=o},getEditorConfig=o=>$TMAGIC_EDITOR[o];emmetHTML(monaco);emmetCSS(monaco,["css","scss"]);const _hoisted_1$_={class:normalizeClass("magic-code-editor")},_hoisted_2$o={ref:"codeEditor",class:"magic-code-editor-content"},_sfc_main$1q=defineComponent({name:"MEditorCodeEditor",__name:"CodeEditor",props:{initValues:{default:""},modifiedValues:{},type:{},language:{default:"javascript"},options:{default:()=>({tabSize:2})},height:{},autoSave:{type:Boolean,default:!0},parse:{type:Boolean,default:!1},disabledFullScreen:{type:Boolean,default:!1}},emits:["initd","save"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=(w,E)=>{let x;return typeof w!="string"?E==="json"?x=JSON.stringify(w,null,2):x=serialize(w,{space:2,unsafe:!0}).replace(/"(\w+)":\s/g,"$1: "):x=w,E==="javascript"&&x.startsWith("{")&&x.endsWith("}")&&(x="(".concat(x,")")),x},l=(w,E)=>typeof w!="string"?w:E==="json"?JSON.parse(w):getEditorConfig("parseDSL")(w);let c=null,d=null;const u=ref$1(""),g=ref$1(!1),f=useTemplateRef("codeEditor"),m=new globalThis.ResizeObserver(throttle$2(()=>{c==null||c.layout(),d==null||d.layout()},300)),_=(w,E)=>{if(u.value=a(w,r.language.toLocaleLowerCase()),r.type==="diff"){const k=editor.createModel(u.value,"text/javascript"),D=editor.createModel(a(E,r.language),"text/javascript"),I=d==null?void 0:d.getPosition(),T=d==null?void 0:d.setModel({original:k,modified:D});return I&&(d==null||d.setPosition(I),d==null||d.focus()),T}const x=c==null?void 0:c.getPosition(),L=c==null?void 0:c.setValue(u.value);return x&&(c==null||c.setPosition(x),c==null||c.focus()),L},v=()=>(r.type==="diff"?d==null?void 0:d.getModifiedEditor().getValue():c==null?void 0:c.getValue())||"",b=w=>{if(w.keyCode===83&&(navigator.platform.match("Mac")?w.metaKey:w.ctrlKey)){w.preventDefault(),w.stopPropagation();const E=v();u.value=E,s("save",r.parse?l(E,r.language):E)}},C=async()=>{if(!f.value)return;f.value.clientHeight===0&&await nextTick();const w={value:u.value,language:r.language,theme:"vs-dark",...r.options};r.type==="diff"?d=getEditorConfig("customCreateMonacoDiffEditor")(monaco,f.value,w):c=getEditorConfig("customCreateMonacoEditor")(monaco,f.value,w),_(r.initValues,r.modifiedValues),s("initd",c),f.value.addEventListener("keydown",b),r.type!=="diff"&&r.autoSave&&(c==null||c.onDidBlurEditorWidget(()=>{const E=v();u.value!==E&&(u.value=E,s("save",r.parse?l(E,r.language):E))})),m.observe(f.value)};watch(()=>r.initValues,(w,E)=>{w!==E&&_(r.initValues,r.modifiedValues)},{deep:!0,immediate:!0}),watch(()=>r.options,w=>{c==null||c.updateOptions(w),d==null||d.updateOptions(w)},{deep:!0}),onMounted(async()=>{g.value=!0,await C(),g.value=!1}),onBeforeUnmount(()=>{m.disconnect(),c==null||c.dispose(),d==null||d.dispose(),c=null,d=null}),onUnmounted(()=>{var w;(w=f.value)==null||w.removeEventListener("keydown",b)});const y=ref$1(!1),S=()=>{y.value=!y.value,setTimeout(()=>{c==null||c.focus(),c==null||c.layout(),d==null||d.focus(),d==null||d.layout()})};return e({values:u,getEditor(){return c||d},getVsEditor(){return c},getVsDiffEditor(){return d},setEditorValue:_,getEditorValue:v,focus(){c==null||c.focus(),d==null||d.focus()}}),(w,E)=>(openBlock(),createElementBlock("div",_hoisted_1$_,[(openBlock(),createBlock(Teleport,{to:"body",disabled:!y.value},[createBaseVNode("div",{class:normalizeClass("magic-code-editor-wrapper".concat(y.value?" full-screen":"")),style:normalizeStyle(!y.value&&o.height?"height: ".concat(o.height):"100%")},[o.disabledFullScreen?createCommentVNode("v-if",!0):(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,class:"magic-code-editor-full-screen-icon",circle:"",size:"small",onClick:S},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(full_screen_default)},null,8,["icon"])]),_:1})),createBaseVNode("div",_hoisted_2$o,null,512)],6)],8,["disabled"]))]))}}),_sfc_main$1p=defineComponent({name:"MFieldsVsCode",__name:"Code",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=e,r=s=>{t("change",s)};return(s,a)=>(openBlock(),createBlock(_sfc_main$1q,{height:o.config.height,"init-values":o.model[o.name],language:o.config.language,options:{...o.config.options,readOnly:o.disabled},parse:o.config.parse,onSave:r},null,8,["height","init-values","language","options","parse"]))}}),_sfc_main$1o=defineComponent({name:"MFieldsCodeLink",__name:"CodeLink",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,s=computed$1(()=>{const{codeOptions:c,...d}=t.config;return{...d,text:"",type:"link",form:[{name:t.name,type:"vs-code",options:{tabSize:2,...c||{}}}]}}),a=reactive$1({form:{[t.name]:""}});watch(()=>t.model[t.name],c=>{a.form={[t.name]:serialize(c,{space:2,unsafe:!0}).replace(/"(\w+)":\s/g,"$1: ")}},{immediate:!0});const l=c=>{if(!(!t.name||!t.model))try{const d=getEditorConfig("parseDSL");t.model[t.name]=d("(".concat(c[t.name],")")),r("change",t.model[t.name])}catch(d){console.error(d)}};return(c,d)=>{const u=resolveComponent("m-fields-link");return openBlock(),createBlock(u,{config:s.value,model:a,name:"form",onChange:l},null,8,["config","model"])}}}),useServices=()=>{const o=inject("services");if(!o)throw new Error("services is required");return o},_sfc_main$1n=defineComponent({name:"MFieldsCodeSelect",__name:"CodeSelect",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=e,{dataSourceService:r,codeBlockService:s}=useServices(),a=o,l=computed$1(()=>({type:"group-list",name:"hookData",enableToggleMode:!1,expandAll:!0,title:(d,{model:u,index:g})=>{if(u.codeType===HookCodeType.DATA_SOURCE_METHOD){if(Array.isArray(u.codeId)){if(u.codeId.length<2)return g;const f=r.getDataSourceById(u.codeId[0]);return"".concat(f==null?void 0:f.title," / ").concat(u.codeId[1])}return Array.isArray(u.codeId)?u.codeId.join("/"):g}return u.codeId||g},items:[{type:"row",items:[{type:"select",name:"codeType",span:6,options:[{value:HookCodeType.CODE,text:"代码块"},{value:HookCodeType.DATA_SOURCE_METHOD,text:"数据源方法"}],defaultValue:"code",onChange:(d,u,{setModel:g})=>(u===HookCodeType.DATA_SOURCE_METHOD?g("codeId",[]):g("codeId",""),u)},{type:"code-select-col",name:"codeId",span:18,labelWidth:0,display:(d,{model:u})=>u.codeType!==HookCodeType.DATA_SOURCE_METHOD,notEditable:()=>!s.getEditStatus()},{type:"data-source-method-select",name:"codeId",span:18,labelWidth:0,display:(d,{model:u})=>u.codeType===HookCodeType.DATA_SOURCE_METHOD,notEditable:()=>!r.get("editable")}]}]}));watch(()=>a.model[a.name],d=>{isEmpty$2(d)&&(a.model[a.name]={hookType:HookType.CODE,hookData:[]})},{immediate:!0});const c=(d,u)=>t("change",d,u);return(d,u)=>(openBlock(),createElementBlock("div",{class:normalizeClass(["m-fields-code-select",o.config.className])},[createVNode(unref(_sfc_main$E$1),null,{default:withCtx(()=>[createVNode(unref(_sfc_main$A$1),{config:l.value,size:o.size,prop:o.prop,disabled:o.disabled,lastValues:o.lastValues,model:o.model[o.name],onChange:c},null,8,["config","size","prop","disabled","lastValues","model"])]),_:1})],2))}}),arrayOptions=[{text:"包含",value:"include"},{text:"不包含",value:"not_include"}],eqOptions=[{text:"等于",value:"="},{text:"不等于",value:"!="}],numberOptions=[{text:"大于",value:">"},{text:"大于等于",value:">="},{text:"小于",value:"<"},{text:"小于等于",value:"<="},{text:"在范围内",value:"between"},{text:"不在范围内",value:"not_between"}],styleTabConfig={title:"样式",display:({services:o})=>{var e;return!((e=o.uiService.get("showStylePanel"))==null||e)},items:[{name:"style",labelWidth:"100px",type:"style-setter",items:[{names:["display","flexDirection","justifyContent","alignItems","flexWrap","marginTop","marginRight","marginBottom","marginLeft","paddingTop","paddingRight","paddingBottom","paddingLeft","width","height","overflow","fontSize","lineHeight","fontWeight","color","textAlign","backgroundColor","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","position","zIndex","top","right","bottom","left","borderRadius","borderTopWidth","borderTopStyle","borderTopColor","borderRightColor","borderRightWidth","borderRightStyle","borderRightColor","borderBottomWidth","borderBottomStyle","borderBottomColor","borderLeftStyle","borderLeftWidth","borderLeftColor","borderWidth","borderStyle","borderColor"]}]}]},eventTabConfig={title:"事件",items:[{name:"events",src:"component",labelWidth:"100px",type:"event-select"}]},advancedTabConfig={title:"高级",lazy:!0,items:[{name:NODE_DISABLE_CODE_BLOCK_KEY,text:"禁用代码块",type:"switch",defaultValue:!1,extra:"开启后,配置的代码块将不会被执行"},{name:NODE_DISABLE_DATA_SOURCE_KEY,text:"禁用数据源",type:"switch",defaultValue:!1,extra:"开启后,组件内配置的数据源相关配置将不会被编译,显隐条件将失效"},{name:"created",text:"created",labelPosition:"top",type:"code-select",extra:"组件初始化时执行"},{name:"mounted",text:"mounted",labelPosition:"top",type:"code-select",extra:"组件挂载到dom时执行"},{name:"display",text:"display",extra:"控制组件是否渲染关系的代码块返回值为false时不渲染",labelPosition:"top",type:"code-select"}]},displayTabConfig={title:"显示条件",display:(o,{model:e})=>e.type!=="page",items:[{name:NODE_CONDS_RESULT_KEY,type:"select",text:"条件成立时",defaultValue:!1,options:[{text:"显示",value:!1},{text:"隐藏",value:!0}],extra:(o,{model:e})=>"条件成立时".concat(e[NODE_CONDS_RESULT_KEY]?"隐藏":"显示",",不成立时").concat(e[NODE_CONDS_RESULT_KEY]?"显示":"隐藏","<br />同一条件组内的所有条件配置同时成立时表示该条件组成立,任意一个条件组成立时表示条件成立(条件组内为且的关系,条件组间为或的关系)<br />条件为空时表示成立;")},{type:"display-conds",name:NODE_CONDS_KEY,titlePrefix:"条件组",defaultValue:[]}]},fillConfig$1=(o=[],{labelWidth:e="80px",disabledDataSource:t=!1,disabledCodeBlock:r=!1}={})=>{const s=[];o.find(c=>c.name==="type")||s.push({text:"type",name:"type",type:"hidden"}),o.find(c=>c.name==="id")||s.push({name:"id",text:"ID",type:"text",disabled:!0,append:{type:"button",text:"复制",handler:(c,{model:d})=>{navigator.clipboard.writeText("".concat(d.id)).then(()=>{tMagicMessage.success("已复制")}).catch(()=>{tMagicMessage.error("复制失败")})}}}),o.find(c=>c.name==="name")||s.push({name:"name",text:"组件名称"});const a=advancedTabConfig.items.filter(c=>c.type!=="code-select");a.length>0&&r&&(advancedTabConfig.items=a);const l={type:"tab",labelWidth:e,items:[{title:"属性",items:[...s,...o]},{...styleTabConfig},{...eventTabConfig}]};return r?a.length>0&&l.items.push({...advancedTabConfig}):l.items.push({...advancedTabConfig}),t||l.items.push({...displayTabConfig}),[l]},error=(...o)=>{};var ColumnLayout=(o=>(o.LEFT="left",o.CENTER="center",o.RIGHT="right",o))(ColumnLayout||{}),SideItemKey=(o=>(o.COMPONENT_LIST="component-list",o.LAYER="layer",o.CODE_BLOCK="code-block",o.DATA_SOURCE="data-source",o))(SideItemKey||{}),LayerOffset=(o=>(o.TOP="top",o.BOTTOM="bottom",o))(LayerOffset||{}),Layout=(o=>(o.FLEX="flex",o.FIXED="fixed",o.RELATIVE="relative",o.ABSOLUTE="absolute",o))(Layout||{}),CodeDeleteErrorType=(o=>(o.UNDELETEABLE="undeleteable",o.BIND="bind",o))(CodeDeleteErrorType||{});const CODE_DRAFT_STORAGE_KEY="magicCodeDraft";var KeyBindingCommand=(o=>(o.COPY_NODE="tmagic-system-copy-node",o.PASTE_NODE="tmagic-system-paste-node",o.DELETE_NODE="tmagic-system-delete-node",o.CUT_NODE="tmagic-system-cut-node",o.UNDO="tmagic-system-undo",o.REDO="tmagic-system-redo",o.ZOOM_IN="tmagic-system-zoom-in",o.ZOOM_OUT="tmagic-system-zoom-out",o.ZOOM_RESET="tmagic-system-zoom-reset",o.ZOOM_FIT="tmagic-system-zoom-fit",o.MOVE_UP_1="tmagic-system-move-up-1",o.MOVE_DOWN_1="tmagic-system-move-down-1",o.MOVE_LEFT_1="tmagic-system-move-left-1",o.MOVE_RIGHT_1="tmagic-system-move-right-1",o.MOVE_UP_10="tmagic-system-move-up-10",o.MOVE_DOWN_10="tmagic-system-move-down-10",o.MOVE_LEFT_10="tmagic-system-move-left-10",o.MOVE_RIGHT_10="tmagic-system-move-right-10",o.SWITCH_NODE="tmagic-system-switch-node",o))(KeyBindingCommand||{}),DragType=(o=>(o.COMPONENT_LIST="component-list",o.LAYER_TREE="layer-tree",o))(DragType||{});const COPY_STORAGE_KEY="$MagicEditorCopyData",COPY_CODE_STORAGE_KEY="$MagicEditorCopyCode",COPY_DS_STORAGE_KEY="$MagicEditorCopyDataSource",getPageList=o=>o?Array.isArray(o.items)?o.items.filter(e=>isPage(e)):[]:[],getPageFragmentList=o=>o?Array.isArray(o.items)?o.items.filter(e=>isPageFragment(e)):[]:[],getPageNameList=o=>o.map(e=>e.name||"index"),generatePageName=(o,e)=>{let t=o.length;if(!t)return"".concat(e,"_index");let r="".concat(e,"_").concat(t);for(;o.includes(r);)t+=1,r="".concat(e,"_").concat(t);return r},generatePageNameByApp=(o,e)=>generatePageName(getPageNameList(e==="page"?getPageList(o):getPageFragmentList(o)),e),getNodeIndex=(o,e)=>((e==null?void 0:e.items)||[]).findIndex(r=>"".concat(r.id)==="".concat(o)),getRelativeStyle=(o={})=>({...o,position:"relative",top:0,left:0}),getMiddleTop=(o,e,t)=>{var l,c,d;let r=((l=o.style)==null?void 0:l.height)||0;if(!t||typeof((c=o.style)==null?void 0:c.top)<"u"||!e.style)return(d=o.style)==null?void 0:d.top;isNumber$4(r)||(r=0);const{height:s}=e.style;let a=s;if(t.mask&&t.renderer){const{scrollTop:u=0,wrapperHeight:g}=t.mask;a=calcValueByFontsize(t.renderer.getDocument(),g);const f=calcValueByFontsize(t.renderer.getDocument(),u);if(isPage(e))return(a-r)/2+f}return(Math.min(s,a)-r)/2},getInitPositionStyle=(o={},e)=>{if(e===Layout.ABSOLUTE){const t={...o,position:"absolute"};return typeof t.left>"u"&&typeof t.right>"u"&&(t.left=0),t}return e===Layout.RELATIVE?getRelativeStyle(o):o},setChildrenLayout=(o,e)=>{var t;return(t=o.items)==null||t.forEach(r=>{setLayout(r,e)}),o},setLayout=(o,e)=>{if(isPop(o))return;const t=o.style||{};if(t.position!=="fixed")return e!==Layout.RELATIVE?t.position="absolute":(o.style=getRelativeStyle(t),o.style.right="auto",o.style.bottom="auto"),o},change2Fixed=(o,e)=>{const t=getNodePath(o.id,e.items),r={left:0,top:0};return t.forEach(s=>{var a,l;r.left=r.left+globalThis.parseFloat(((a=s.style)==null?void 0:a.left)||0),r.top=r.top+globalThis.parseFloat(((l=s.style)==null?void 0:l.top)||0)}),{...o.style||{},...r}},Fixed2Other=async(o,e,t)=>{var u,g;const r=getNodePath(o.id,e.items),s=r.pop(),a={left:((u=s==null?void 0:s.style)==null?void 0:u.left)||0,top:((g=s==null?void 0:s.style)==null?void 0:g.top)||0,right:"",bottom:""};r.forEach(f=>{var m,_;a.left=a.left-globalThis.parseFloat(((m=f.style)==null?void 0:m.left)||0),a.top=a.top-globalThis.parseFloat(((_=f.style)==null?void 0:_.top)||0)});const l=o.style||{},c=r.pop();return c&&await t(c)!==Layout.RELATIVE?{...l,...a,position:"absolute"}:getRelativeStyle(l)},getGuideLineFromCache=o=>{if(!o)return[];const e=globalThis.localStorage.getItem(o);if(e)try{return JSON.parse(e)||[]}catch(t){console.error(t)}return[]},fixNodeLeft=(o,e,t)=>{var l,c;if(!t||!o.style||!isNumber$4(o.style.left))return(l=o.style)==null?void 0:l.left;const r=getElById()(t,"".concat(o.id)),s=getElById()(t,"".concat(e.id)),a=Number((c=o.style)==null?void 0:c.left)||0;if(r&&s){const d=calcValueByFontsize(t,s.offsetWidth),u=calcValueByFontsize(t,r.offsetWidth);if(u+a>d)return d-u}return o.style.left},fixNodePosition=(o,e,t)=>{var r,s,a;return((r=o.style)==null?void 0:r.position)!=="absolute"?o.style:{...o.style||{},top:getMiddleTop(o,e,t),left:fixNodeLeft(o,e,(a=(s=t==null?void 0:t.renderer)==null?void 0:s.contentWindow)==null?void 0:a.document)}},moveItemsInContainer=(o,e,t)=>{o.sort((r,s)=>r-s);for(let r=o.length-1;r>=0;r--){const s=o[r];if(s===t)continue;const[a]=e.items.splice(s,1);e.items.splice(s<t?t-1:t,0,a);for(let l=r-1;l>=0;l--)o[l]>=t&&(o[l]+=1)}},isIncludeDataSourceByDiffAddResult=o=>{for(const e of Object.values(o)){if(isValueIncludeDataSource(e))return!0;if(isObject$5(e))return isIncludeDataSourceByDiffAddResult(e)}return!1},isIncludeDataSourceByDiffUpdatedResult=(o,e)=>{for(const[t,r]of Object.entries(o)){if(isValueIncludeDataSource(r)||isValueIncludeDataSource(e[t]))return!0;if(isObject$5(r))return isIncludeDataSourceByDiffUpdatedResult(r,e[t])}return!1},isIncludeDataSource=(o,e)=>{const t=detailedDiff(e,o);let r=!1;return t.updated&&(t.updated[NODE_CONDS_KEY]||(r=isIncludeDataSourceByDiffUpdatedResult(t.updated,e),r))||t.added&&(r=isIncludeDataSourceByDiffAddResult(t.added),r)||t.deleted&&(t.deleted[NODE_CONDS_KEY]||(r=isIncludeDataSourceByDiffAddResult(t.deleted),r))?!0:r},compose=(o,e)=>{if(!Array.isArray(o))throw new TypeError("Middleware 必须是一个数组!");for(const t of o)if(typeof t!="function")throw new TypeError("Middleware 必须由函数组成!");return(t,r)=>{let s=-1;return a(0);function a(l){if(l<=s){const d=new Error("next() 被多次调用");if(e)return Promise.reject(d);throw d}s=l;let c=o[l];if(l===o.length&&r&&(c=r),!c)return e?Promise.resolve():void 0;if(e)try{return Promise.resolve(c(...t,a.bind(null,l+1)))}catch(d){return Promise.reject(d)}try{return c(...t,a.bind(null,l+1))}catch(d){throw d}}}},methodName=(o,e)=>"".concat(o).concat(e[0].toUpperCase()).concat(e.substring(1)),isError=o=>Object.prototype.toString.call(o)==="[object Error]",doAction=(o,e,t,r,s,a)=>{try{let l=o;for(const d of e.pluginOptionsList[r]){if(l=d(...l)||[],isError(l))throw l;Array.isArray(l)||(l=[l])}let c=a(l,t.bind(e));for(const d of e.pluginOptionsList[s])if(c=d(c,...l),isError(c))throw c;return c}catch(l){throw l}},doAsyncAction=async(o,e,t,r,s,a)=>{try{let l=o;for(const d of e.pluginOptionsList[r]){if(l=await d(...l)||[],isError(l))throw l;Array.isArray(l)||(l=[l])}let c=await a(l,t.bind(e));for(const d of e.pluginOptionsList[s])if(c=await d(c,...l),isError(c))throw c;return c}catch(l){throw l}};class BaseService extends eventsExports.EventEmitter{constructor(t=[],r=[]){super();K(this,"pluginOptionsList",{});K(this,"middleware",{});K(this,"taskList",[]);K(this,"doingTask",!1);t.forEach(({name:s,isAsync:a})=>{const l=this,c=l[s],d=methodName("before",s),u=methodName("after",s);this.pluginOptionsList[d]=[],this.pluginOptionsList[u]=[],this.middleware[s]=[];const g=compose(this.middleware[s],a);Object.defineProperty(l,s,{value:a?async(...f)=>{if(!r.includes(s))return doAsyncAction(f,l,c,d,u,g);const m=new Promise((_,v)=>{this.taskList.push(async()=>{try{const b=await doAsyncAction(f,l,c,d,u,g);_(b)}catch(b){v(b)}})});return this.doingTask||this.doTask(),m}:(...f)=>doAction(f,l,c,d,u,g)})})}use(t){for(const[r,s]of Object.entries(t))typeof s=="function"&&this.middleware[r].push(s)}usePlugin(t){for(const[r,s]of Object.entries(t))typeof s=="function"&&!this.pluginOptionsList[r].includes(s)&&this.pluginOptionsList[r].push(s)}removePlugin(t){for(const[r,s]of Object.entries(t))Array.isArray(this.pluginOptionsList[r])&&(this.pluginOptionsList[r]=this.pluginOptionsList[r].filter(a=>a!==s))}removeAllPlugins(){for(const t of Object.keys(this.pluginOptionsList))this.pluginOptionsList[t]=[];for(const t of Object.keys(this.middleware))this.middleware[t]=[]}async doTask(){this.doingTask=!0;let t=this.taskList.shift();for(;t;)await t(),t=this.taskList.shift();this.doingTask=!1}}const canUsePluginMethods$7={async:["setPropsConfig","getPropsConfig","setPropsValue","getPropsValue","fillConfig","getDefaultPropsValue"],sync:["createId","setNewItemId"]};class Props extends BaseService{constructor(){super([...canUsePluginMethods$7.async.map(t=>({name:t,isAsync:!0})),...canUsePluginMethods$7.sync.map(t=>({name:t,isAsync:!1}))]);K(this,"state",reactive$1({propsConfigMap:{},propsValueMap:{},relateIdMap:{},disabledDataSource:!1,disabledCodeBlock:!1}))}setDisabledDataSource(t){this.state.disabledDataSource=t}setDisabledCodeBlock(t){this.state.disabledCodeBlock=t}getDisabledDataSource(){return this.state.disabledDataSource}getDisabledCodeBlock(){return this.state.disabledCodeBlock}setPropsConfigs(t){Object.keys(t).forEach(r=>{this.setPropsConfig(toLine(r),t[r])}),this.emit("props-configs-change")}async fillConfig(t,r){return fillConfig$1(t,{labelWidth:typeof r!="function"?r:"80px",disabledDataSource:this.getDisabledDataSource(),disabledCodeBlock:this.getDisabledCodeBlock()})}async setPropsConfig(t,r){let s=r;typeof r=="function"&&(s=r({editorService})),this.state.propsConfigMap[toLine(t)]=await this.fillConfig(Array.isArray(s)?s:[s])}async getPropsConfig(t){return t==="area"?await this.getPropsConfig("button"):cloneDeep(this.state.propsConfigMap[toLine(t)]||await this.fillConfig([]))}setPropsValues(t){Object.keys(t).forEach(r=>{this.setPropsValue(toLine(r),t[r])})}async setPropsValue(t,r){let s=r;typeof r=="function"&&(s=r({editorService})),this.state.propsValueMap[toLine(t)]=s}async getPropsValue(t,{inputEvent:r,...s}={}){const a=toLine(t);if(a==="area"){const u=await this.getPropsValue("button");return u.className="action-area",u.text="",u.style&&(u.style.backgroundColor="rgba(255, 255, 255, 0)"),u}const l=this.createId(a),c=this.getDefaultPropsValue(a),d=this.setNewItemId(cloneDeep({type:a,...s}));return{id:l,...c,...mergeWith({},cloneDeep(this.state.propsValueMap[a]||{}),d)}}createId(t){return"".concat(t,"_").concat(guid())}setNewItemId(t,r=!0){if(r||editorService.getNodeById(t.id)){const s=this.createId(t.type||"component");this.setRelateId(t.id,s),t.id=s}if(t.items&&Array.isArray(t.items))for(const s of t.items)this.setNewItemId(s);return t}getDefaultPropsValue(t){return["page","container"].includes(t)?{type:t,layout:"absolute",style:{},name:t,items:[]}:{type:t,style:{},name:t}}resetState(){this.state.propsConfigMap={},this.state.propsValueMap={}}replaceRelateId(t,r,s){const a=this.getRelateIdMap();if(Object.keys(a).length===0)return;const l=new Target({...s}),c=new Watcher;c.addTarget(l),c.collect(t,{},!0,s.type),t.forEach(d=>{var m,_;const u=a[d.id],g=getNodePath(u,r),f=g[g.length-1];f&&((_=(m=l.deps[d.id])==null?void 0:m.keys)==null||_.forEach(v=>{const b=getValueByKeyPath(v,d),C=a[b];C&&setValueByKeyPath(v,C,f)}),d.items&&Array.isArray(d.items)&&this.replaceRelateId(d.items,r,s))})}clearRelateId(){this.state.relateIdMap={}}destroy(){this.resetState(),this.removeAllListeners(),this.removeAllPlugins()}usePlugin(t){super.usePlugin(t)}getRelateIdMap(){return this.state.relateIdMap}setRelateId(t,r){this.state.relateIdMap[t]=r}}const propsService=new Props;class UndoRedo{constructor(e=20){K(this,"elementList");K(this,"listCursor");K(this,"listMaxSize");this.elementList=[],this.listCursor=0,this.listMaxSize=e>2?e:2}pushElement(e){this.elementList.splice(this.listCursor,this.elementList.length-this.listCursor,cloneDeep(e)),this.listCursor+=1,this.elementList.length>this.listMaxSize&&(this.elementList.shift(),this.listCursor-=1)}canUndo(){return this.listCursor>1}undo(){return this.canUndo()?(this.listCursor-=1,this.getCurrentElement()):null}canRedo(){return this.elementList.length>this.listCursor}redo(){return this.canRedo()?(this.listCursor+=1,this.getCurrentElement()):null}getCurrentElement(){return this.listCursor<1?null:cloneDeep(this.elementList[this.listCursor-1])}}class History extends BaseService{constructor(){super([]);K(this,"state",reactive$1({pageSteps:{},pageId:void 0,canRedo:!1,canUndo:!1}));this.on("change",this.setCanUndoRedo)}reset(){this.state.pageSteps={},this.resetPage()}resetPage(){this.state.pageId=void 0,this.state.canRedo=!1,this.state.canUndo=!1}changePage(t){if(t){if(this.state.pageId=t.id,!this.state.pageSteps[this.state.pageId]){const r=new UndoRedo;r.pushElement({data:t,modifiedNodeIds:new Map,nodeId:t.id}),this.state.pageSteps[this.state.pageId]=r}this.setCanUndoRedo(),this.emit("page-change",this.state.pageSteps[this.state.pageId])}}resetState(){this.state.pageId=void 0,this.state.pageSteps={},this.state.canRedo=!1,this.state.canUndo=!1}push(t){const r=this.getUndoRedo();return r?(r.pushElement(t),this.emit("change",t),t):null}undo(){const t=this.getUndoRedo();if(!t)return null;const r=t.undo();return this.emit("change",r),r}redo(){const t=this.getUndoRedo();if(!t)return null;const r=t.redo();return this.emit("change",r),r}destroy(){this.resetState(),this.removeAllListeners(),this.removeAllPlugins()}getUndoRedo(){return this.state.pageId?this.state.pageSteps[this.state.pageId]:null}setCanUndoRedo(){const t=this.getUndoRedo();this.state.canRedo=(t==null?void 0:t.canRedo())||!1,this.state.canUndo=(t==null?void 0:t.canUndo())||!1}}const historyService=new History;var Protocol=(o=>(o.OBJECT="object",o.JSON="json",o.STRING="string",o.NUMBER="number",o.BOOLEAN="boolean",o))(Protocol||{});const canUsePluginMethods$6={sync:["getStorage","getNamespace","clear","getItem","removeItem","setItem"]};class WebStorage extends BaseService{constructor(){super(canUsePluginMethods$6.sync.map(t=>({name:t,isAsync:!1})));K(this,"storage",globalThis.localStorage);K(this,"namespace","tmagic")}getStorage(){return this.storage}getNamespace(){return this.namespace}clear(){this.getStorage().clear()}getItem(t,r={}){const s=this.getStorage(),a=this.getNamespace(),{protocol:l=r.protocol,item:c}=this.getValueAndProtocol(s.getItem("".concat(r.namespace||a,":").concat(t)));if(c===null)return null;switch(l){case"object":return getEditorConfig("parseDSL")("(".concat(c,")"));case"json":return JSON.parse(c);case"number":return Number(c);case"boolean":if(c==="true")return!0;if(c==="false")return!1;default:return c}}key(t){return this.getStorage().key(t)}removeItem(t,r={}){const s=this.getStorage(),a=this.getNamespace();s.removeItem("".concat(r.namespace||a,":").concat(t))}setItem(t,r,s={}){const a=this.getStorage(),l=this.getNamespace();let c=r;const d=s.protocol?"".concat(s.protocol,":"):"";typeof r=="string"||typeof r=="number"?c="".concat(d).concat(r):c="".concat(d).concat(serialize(r)),a.setItem("".concat(s.namespace||l,":").concat(t),c)}destroy(){this.removeAllListeners(),this.removeAllPlugins()}usePlugin(t){super.usePlugin(t)}getValueAndProtocol(t){let r="";if(t===null)return{item:t,protocol:r};const s=t.replace(new RegExp("^(".concat(Object.values(Protocol).join("|"),")(:)(.+)")),(a,l,c,d)=>(r=l,d));return{protocol:r,item:s}}}const storageService=new WebStorage,canUsePluginMethods$5={async:["getLayout","highlight","select","multiSelect","doAdd","add","doRemove","remove","doUpdate","update","sort","copy","paste","doPaste","doAlignCenter","alignCenter","moveLayer","moveToContainer","dragTo","undo","redo","move"]};class Editor extends BaseService{constructor(){super(canUsePluginMethods$5.async.map(t=>({name:t,isAsync:!0})),["select","update","moveLayer"]);K(this,"state",reactive$1({root:null,page:null,parent:null,node:null,nodes:[],stage:null,stageLoading:!0,highlightNode:null,modifiedNodeIds:new Map,pageLength:0,pageFragmentLength:0,disabledMultiSelect:!1}));K(this,"isHistoryStateChange",!1)}set(t,r){const s=this.state[t];if(this.state[t]=r,t==="nodes"&&Array.isArray(r)&&this.set("node",r[0]),t==="root"){if(Array.isArray(r))throw new Error("root 不能为数组");if(r&&isObject$5(r)){const a=r;this.state.pageLength=getPageList(a).length||0,this.state.pageFragmentLength=getPageFragmentList(a).length||0,this.state.stageLoading=this.state.pageLength!==0}else this.state.pageLength=0,this.state.pageFragmentLength=0,this.state.stageLoading=!1;this.emit("root-change",r,s)}}get(t){return this.state[t]}getNodeInfo(t,r=!0){let s=this.get("root");return r&&(s=toRaw(s)),getNodeInfo(t,s)}getNodeById(t,r=!0){const{node:s}=this.getNodeInfo(t,r);return s}getParentById(t,r=!0){const{parent:s}=this.getNodeInfo(t,r);return s}async getLayout(t,r){var s;return r&&typeof r!="function"&&isFixed(r.style||{})?Layout.FIXED:t.layout?t.layout:(s=t.style)!=null&&s.position?Layout.ABSOLUTE:Layout.RELATIVE}async select(t){var l,c,d,u,g,f,m;const{node:r,page:s,parent:a}=this.selectedConfigExceptionHandler(t);return this.set("nodes",r?[r]:[]),this.set("page",s),this.set("parent",a),s?historyService.changePage(toRaw(s)):historyService.resetState(),r!=null&&r.id&&((m=(g=(u=(d=(c=(l=this.get("stage"))==null?void 0:l.renderer)==null?void 0:c.runtime)==null?void 0:d.getApp)==null?void 0:u.call(d))==null?void 0:g.page)==null||m.emit("editor:select",{node:r,page:s,parent:a},getNodePath(r.id,(f=this.get("root"))==null?void 0:f.items))),this.emit("select",r),r}async selectNextNode(){var l;const t=toRaw(this.get("node"));if(!t||isPage(t)||t.type===NodeType.ROOT)return t;const r=toRaw(this.getParentById(t.id));if(!r)return t;const s=getNodeIndex(t.id,r),a=r.items[s+1]||r.items[0];return await this.select(a),(l=this.get("stage"))==null||l.select(a.id),a}async selectNextPage(){var l;const t=toRaw(this.get("root")),r=toRaw(this.get("page"));if(!r)throw new Error("page不能为空");if(!t)throw new Error("root不能为空");const s=getNodeIndex(r.id,t),a=t.items[s+1]||t.items[0];return await this.select(a),(l=this.get("stage"))==null||l.select(a.id),a}highlight(t){const{node:r}=this.selectedConfigExceptionHandler(t);this.get("highlightNode")!==r&&this.set("highlightNode",r)}multiSelect(t){const r=[];uniq(t).forEach(a=>{const{node:l}=this.getNodeInfo(a);l&&r.push(l)}),this.set("nodes",r)}selectRoot(){const t=this.get("root");t&&(this.set("nodes",[t]),this.set("parent",null),this.set("page",null),this.set("stage",null),this.set("highlightNode",null))}async doAdd(t,r){var u,g;const s=this.get("root");if(!s)throw new Error("root为空");const a=this.get("node"),l=this.get("stage");if(!a)throw new Error("当前选中节点为空");if((r.type===NodeType.ROOT||(a==null?void 0:a.type)===NodeType.ROOT)&&!(isPage(t)||isPageFragment(t)))throw new Error("app下不能添加组件");if(r.id!==a.id&&!(isPage(t)||isPageFragment(t))){const f=r.items.indexOf(a);(u=r.items)==null||u.splice(f+1,0,t)}else(g=r.items)==null||g.push(t);const c=await this.getLayout(toRaw(r),t);t.style=getInitPositionStyle(t.style,c),await(l==null?void 0:l.add({config:cloneDeep(t),parent:cloneDeep(r),parentId:r.id,root:cloneDeep(s)}));const d=fixNodePosition(t,r,l);return d&&(d.top!==t.style.top||d.left!==t.style.left)&&(t.style=d,await(l==null?void 0:l.update({config:cloneDeep(t),parentId:r.id,root:cloneDeep(s)}))),this.addModifiedNodeId(t.id),t}async add(t,r){const s=this.get("stage"),a=[];if(Array.isArray(t))a.push(...t);else{const{type:c,inputEvent:d,...u}=t;if(!c)throw new Error("组件类型不能为空");a.push({...toRaw(await propsService.getPropsValue(c,u))})}const l=await Promise.all(a.map(c=>{const d=this.get("root");if((isPage(c)||isPageFragment(c))&&d)return this.doAdd(c,d);const u=r&&typeof r!="function"?r:getAddParent(c);if(!u)throw new Error("未找到父元素");return this.doAdd(c,u)}));if(l.length>1){const c=l.map(d=>d.id);s==null||s.multiSelect(c),await this.multiSelect(c)}else await this.select(l[0]),isPage(l[0])?this.state.pageLength+=1:isPageFragment(l[0])?this.state.pageFragmentLength+=1:s==null||s.select(l[0].id);return isPage(l[0])||isPageFragment(l[0])||this.pushHistoryState(),this.emit("add",l),Array.isArray(t)?l:l[0]}async doRemove(t){var g;const r=this.get("root");if(!r)throw new Error("root不能为空");const{parent:s,node:a}=this.getNodeInfo(t.id,!1);if(!s||!a)throw new Error("找不要删除的节点");const l=getNodeIndex(a.id,s);if(typeof l!="number"||l===-1)throw new Error("找不要删除的节点");(g=s.items)==null||g.splice(l,1);const c=this.get("stage");c==null||c.remove({id:t.id,parentId:s.id,root:cloneDeep(r)});const d=async f=>{f[0]?(await this.select(f[0]),c==null||c.select(f[0].id)):(this.selectRoot(),historyService.resetPage())},u=r.items||[];isPage(t)?(this.state.pageLength-=1,await d(u)):isPageFragment(t)?(this.state.pageFragmentLength-=1,await d(u)):(await this.select(s),c==null||c.select(s.id),this.addModifiedNodeId(s.id)),u.length||(this.resetModifiedNodeId(),historyService.reset())}async remove(t){const r=Array.isArray(t)?t:[t];await Promise.all(r.map(s=>this.doRemove(s))),isPage(r[0])||isPageFragment(r[0])||this.pushHistoryState(),this.emit("remove",r)}async doUpdate(t,{changeRecords:r=[]}={}){const s=this.get("root");if(!s)throw new Error("root为空");if(!(t!=null&&t.id))throw new Error("没有配置或者配置缺少id值");const a=this.getNodeInfo(t.id,!1);if(!a.node)throw new Error("获取不到id为".concat(t.id,"的节点"));const l=toRaw(a.node);let c=await this.toggleFixedPosition(toRaw(t),l,s);if(c=mergeWith(cloneDeep(l),c,(b,C,y,S,w)=>{if(typeof C>"u"&&Object.hasOwn(w,y))return"";if(isObject$5(C)&&Array.isArray(b)||Array.isArray(C))return C}),!c.type)throw new Error("配置缺少type值");if(c.type===NodeType.ROOT)return this.set("root",c),{oldNode:l,newNode:c,changeRecords:r};const{parent:d}=a;if(!d)throw new Error("获取不到父级节点");const u=d.items,g=getNodeIndex(c.id,d);if(!u||typeof g>"u"||g===-1)throw new Error("更新的节点未找到");const f=await this.getLayout(c),m=await this.getLayout(l);Array.isArray(c.items)&&f!==m&&(c=setChildrenLayout(c,f)),u[g]=c;const _=this.get("nodes"),v=_.findIndex(b=>"".concat(b.id)==="".concat(c.id));return _.splice(v,1,c),this.set("nodes",[..._]),(isPage(c)||isPageFragment(c))&&this.set("page",c),this.addModifiedNodeId(c.id),{oldNode:l,newNode:c,changeRecords:r}}async update(t,r={}){var l;const s=Array.isArray(t)?t:[t],a=await Promise.all(s.map(c=>this.doUpdate(c,r)));return((l=a[0].oldNode)==null?void 0:l.type)!==NodeType.ROOT&&this.pushHistoryState(),this.emit("update",a),Array.isArray(t)?a.map(c=>c.newNode):a[0].newNode}async sort(t,r){var u;const s=this.get("root");if(!s)throw new Error("root为空");const a=this.get("node");if(!a)throw new Error("当前节点为空");const l=cloneDeep(toRaw(this.get("parent")));if(!l)throw new Error("父节点为空");const c=l.items.findIndex(g=>"".concat(g.id)==="".concat(r));if(c<0)return;const d=l.items.findIndex(g=>"".concat(g.id)==="".concat(t));l.items.splice(c,0,...l.items.splice(d,1)),await this.update(l),await this.select(a),(u=this.get("stage"))==null||u.update({config:cloneDeep(a),parentId:l.id,root:cloneDeep(s)}),this.addModifiedNodeId(l.id),this.pushHistoryState()}copy(t){storageService.setItem(COPY_STORAGE_KEY,Array.isArray(t)?t:[t],{protocol:Protocol.OBJECT})}copyWithRelated(t,r){const s=Array.isArray(t)?t:[t];if(r&&typeof r.isTarget=="function"){const a=new Target({...r}),l=new Watcher;l.addTarget(a),l.collect(s,{},!0,r.type),Object.keys(a.deps).forEach(c=>{const d=this.getNodeById(c);d&&a.deps[c].keys.forEach(u=>{const g=get(d,u);if(!s.find(m=>m.id===g)){const m=this.getNodeById(g);m&&s.push(m)}})})}storageService.setItem(COPY_STORAGE_KEY,s,{protocol:Protocol.OBJECT})}async paste(t={},r){const s=storageService.getItem(COPY_STORAGE_KEY);if(!Array.isArray(s))return;const a=this.get("node");let l=null;s.length===1&&s[0].id===(a==null?void 0:a.id)&&(l=this.get("parent"),(l==null?void 0:l.type)===NodeType.ROOT&&(l=this.get("page")));const c=await this.doPaste(s,t);return r&&typeof r.isTarget=="function"&&propsService.replaceRelateId(s,c,r),this.add(c,l)}async doPaste(t,r={}){var l,c,d;propsService.clearRelateId();const s=(d=(c=(l=this.get("stage"))==null?void 0:l.renderer)==null?void 0:c.contentWindow)==null?void 0:d.document;return beforePaste(r,cloneDeep(t),s)}async doAlignCenter(t){var d,u,g,f;const r=this.getParentById(t.id);if(!r)throw new Error("找不到父节点");const s=cloneDeep(toRaw(t)),a=await this.getLayout(r,s);if(a===Layout.RELATIVE||!s.style)return t;const l=this.get("stage"),c=(u=(d=l==null?void 0:l.renderer)==null?void 0:d.contentWindow)==null?void 0:u.document;if(c){const m=getElById()(c,s.id),_=a===Layout.FIXED?c.body:m==null?void 0:m.offsetParent;_&&m&&(s.style.left=calcValueByFontsize(c,(_.clientWidth-m.clientWidth)/2),s.style.right="")}else r.style&&isNumber$4((g=r.style)==null?void 0:g.width)&&isNumber$4((f=s.style)==null?void 0:f.width)&&(s.style.left=(r.style.width-s.style.width)/2,s.style.right="");return s}async alignCenter(t){const r=Array.isArray(t)?t:[t],s=this.get("stage"),a=await Promise.all(r.map(c=>this.doAlignCenter(c))),l=await this.update(a);return a.length>1?await(s==null?void 0:s.multiSelect(a.map(c=>c.id))):await(s==null?void 0:s.select(a[0].id)),l}async moveLayer(t){var m;const r=this.get("root");if(!r)throw new Error("root为空");const s=this.get("parent");if(!s)throw new Error("父节点为空");const a=this.get("node");if(!a)throw new Error("当前节点为空");const l=s.items||[],c=l.findIndex(_=>"".concat(_.id)==="".concat(a==null?void 0:a.id)),u=await this.getLayout(s,a)===Layout.RELATIVE;let g;if(t===LayerOffset.TOP?g=u?0:l.length:t===LayerOffset.BOTTOM?g=u?l.length:0:g=c+(u?-t:t),g>0&&g>l.length||g<0)return;l.splice(c,1),l.splice(g,0,a);const f=this.getParentById(s.id);(m=this.get("stage"))==null||m.update({config:cloneDeep(toRaw(s)),parentId:f==null?void 0:f.id,root:cloneDeep(r)}),this.addModifiedNodeId(s.id),this.pushHistoryState(),this.emit("move-layer",t)}async moveToContainer(t,r){var u;const s=this.get("root"),{node:a,parent:l}=this.getNodeInfo(t.id,!1),c=this.getNodeById(r,!1),d=this.get("stage");if(s&&a&&l&&d){const g=getNodeIndex(a.id,l);(u=l.items)==null||u.splice(g,1),await d.remove({id:a.id,parentId:l.id,root:cloneDeep(s)});const f=await this.getLayout(c),m=mergeWith(cloneDeep(a),t,(v,b)=>{if(Array.isArray(b))return b});m.style=getInitPositionStyle(m.style,f),c.items.push(m),await d.select(r);const _=this.getParentById(c.id);return await d.update({config:cloneDeep(c),parentId:_==null?void 0:_.id,root:cloneDeep(s)}),await this.select(m),d.select(m.id),this.addModifiedNodeId(c.id),this.addModifiedNodeId(l.id),this.pushHistoryState(),m}}async dragTo(t,r,s){var m;if(!r||!Array.isArray(r.items))return;const a=Array.isArray(t)?t:[t],l=[],c=[],d=await this.getLayout(r);e:for(const _ of a){const{parent:v,node:b}=this.getNodeInfo(_.id,!1);if(!v||!b)continue;const C=getNodePath(b.id,v.items);for(const S of C)if(r.id===S.id)continue e;const y=getNodeIndex(b.id,v);if(v.id===r.id){if(typeof y!="number"||y===-1)return;l.push(y)}else{const S=await this.getLayout(v);d!==S&&setLayout(_,d),(m=v.items)==null||m.splice(y,1),c.push(_),this.addModifiedNodeId(v.id)}}moveItemsInContainer(l,r,s),c.forEach((_,v)=>{var b;(b=r.items)==null||b.splice(s+v,0,_),this.addModifiedNodeId(_.id)});const u=this.get("page"),g=this.get("root"),f=this.get("stage");f&&u&&g&&f.update({config:cloneDeep(u),parentId:g.id,root:cloneDeep(g)}),this.pushHistoryState(),this.emit("drag-to",{targetIndex:s,configs:a,targetParent:r})}async undo(){const t=historyService.undo();return await this.changeHistoryState(t),t}async redo(){const t=historyService.redo();return await this.changeHistoryState(t),t}async move(t,r){const s=toRaw(this.get("node"));if(!s||isPage(s))return;const{style:a,id:l,type:c}=s;if(!a||!["absolute","fixed"].includes(a.position))return;const d=u=>this.update({id:l,type:c,style:u});r&&(isNumber$4(a.top)?d({...a,top:Number(a.top)+Number(r),bottom:""}):isNumber$4(a.bottom)&&d({...a,bottom:Number(a.bottom)-Number(r),top:""})),t&&(isNumber$4(a.left)?d({...a,left:Number(a.left)+Number(t),right:""}):isNumber$4(a.right)&&d({...a,right:Number(a.right)-Number(t),left:""}))}resetState(){this.set("root",null),this.set("node",null),this.set("nodes",[]),this.set("page",null),this.set("parent",null),this.set("stage",null),this.set("highlightNode",null),this.set("modifiedNodeIds",new Map),this.set("pageLength",0)}destroy(){this.removeAllListeners(),this.resetState(),this.removeAllPlugins()}resetModifiedNodeId(){this.get("modifiedNodeIds").clear()}usePlugin(t){super.usePlugin(t)}on(t,r){return super.on(t,r)}once(t,r){return super.once(t,r)}emit(t,...r){return super.emit(t,...r)}addModifiedNodeId(t){this.isHistoryStateChange||this.get("modifiedNodeIds").set(t,t)}pushHistoryState(){const t=cloneDeep(toRaw(this.get("node"))),r=this.get("page");!this.isHistoryStateChange&&t&&r&&historyService.push({data:cloneDeep(toRaw(r)),modifiedNodeIds:this.get("modifiedNodeIds"),nodeId:t.id}),this.isHistoryStateChange=!1}async changeHistoryState(t){t&&(this.isHistoryStateChange=!0,await this.update(t.data),this.set("modifiedNodeIds",t.modifiedNodeIds),setTimeout(()=>{t.nodeId&&this.select(t.nodeId).then(()=>{var r;(r=this.get("stage"))==null||r.select(t.nodeId)})},0),this.emit("history-change",t.data))}async toggleFixedPosition(t,r,s){var l;const a=cloneDeep(t);return!isPop(r)&&((l=a.style)!=null&&l.position)&&(isFixed(a.style)&&!isFixed(r.style||{})?a.style=change2Fixed(a,s):!isFixed(a.style)&&isFixed(r.style||{})&&(a.style=await Fixed2Other(a,s,this.getLayout))),a}selectedConfigExceptionHandler(t){var c;let r;if(typeof t=="string"||typeof t=="number"?r=t:r=t.id,!r)throw new Error("没有ID无法选中");const{node:s,parent:a,page:l}=this.getNodeInfo(r);if(!s)throw new Error("获取不到组件信息");if(s.id===((c=this.state.root)==null?void 0:c.id))throw new Error("不能选根节点");return{node:s,parent:a,page:l}}}const editorService=new Editor,beforePaste=(o,e,t)=>{var c;if(!((c=e[0])!=null&&c.style))return e;const r=editorService.get("node"),{left:s,top:a}=e[0].style;return e.map(d=>{var b,C,y;const{offsetX:u=0,offsetY:g=0,...f}=o;let m=f;!isEmpty$2(m)&&(r!=null&&r.items)&&(m=getPositionInContainer(m,r.id,t)),m.left&&((b=d.style)!=null&&b.left)&&(m.left=d.style.left-s+m.left),m.top&&((C=d.style)!=null&&C.top)&&(m.top=((y=d.style)==null?void 0:y.top)-a+m.top);const _=propsService.setNewItemId(d,!1);if(_.style){const{left:S,top:w}=_.style;(typeof S=="number"||S&&!isNaN(Number(S)))&&(_.style.left=Number(S)+u),(typeof w=="number"||w&&!isNaN(Number(w)))&&(_.style.top=Number(w)+g),_.style={..._.style,...m}}const v=editorService.get("root");return(isPage(_)||isPageFragment(_))&&v&&(_.name=generatePageNameByApp(v,isPage(_)?NodeType.PAGE:NodeType.PAGE_FRAGMENT)),_})},getPositionInContainer=(o={},e,t)=>{var d,u,g;let{left:r=0,top:s=0}=o;const a=(g=(u=(d=editorService.get("stage"))==null?void 0:d.renderer)==null?void 0:u.contentWindow)==null?void 0:g.document,l=a&&getElById()(a,"".concat(e)),c=l==null?void 0:l.getBoundingClientRect();return r=r-calcValueByFontsize(t,(c==null?void 0:c.left)||0),s=s-calcValueByFontsize(t,(c==null?void 0:c.top)||0),{left:r,top:s}},getAddParent=o=>{const e=editorService.get("node");let t;return isPage(o)?t=editorService.get("root"):e!=null&&e.items?t=e:e!=null&&e.id&&(t=editorService.getParentById(e.id,!1)),t},BaseFormConfig=()=>defineFormConfig([{name:"id",type:"hidden"},{name:"type",text:"类型",type:"hidden",defaultValue:"base"},{name:"title",text:"名称",rules:[{required:!0,message:"请输入名称"}]},{name:"description",text:"描述"}]),HttpFormConfig=defineFormConfig([{name:"autoFetch",text:"自动请求",type:"switch",defaultValue:!0},{name:"responseOptions",items:[{name:"dataPath",text:"数据路径"}]},{type:"fieldset",name:"options",legend:"HTTP 配置",items:[{name:"url",text:"URL"},{name:"method",text:"Method",type:"select",options:[{text:"GET",value:"GET"},{text:"POST",value:"POST"},{text:"PUT",value:"PUT"},{text:"DELETE",value:"DELETE"}]},{name:"params",type:"key-value",defaultValue:{},advanced:!0,text:"参数"},{name:"data",type:"key-value",defaultValue:{},advanced:!0,text:"请求体"},{name:"headers",type:"key-value",defaultValue:{},advanced:!0,text:"请求头"}]}]),fillConfig=o=>[...BaseFormConfig(),...o,{type:"tab",items:[{title:"数据定义",items:[{name:"fields",type:"data-source-fields",defaultValue:()=>[]}]},{title:"方法定义",items:[{name:"methods",type:"data-source-methods",defaultValue:()=>[]}]},{title:"事件配置",items:[{name:"events",src:"datasource",type:"event-select"}]},{title:"mock数据",items:[{name:"mocks",type:"data-source-mocks",defaultValue:()=>[]}]},{title:"请求参数裁剪",display:(e,{model:t})=>t.type==="http",items:[{name:"beforeRequest",type:"vs-code",parse:!0,height:"600px"}]},{title:"响应数据裁剪",display:(e,{model:t})=>t.type==="http",items:[{name:"afterResponse",type:"vs-code",parse:!0,height:"600px"}]}]}],getFormConfig=(o,e)=>{switch(o){case"base":return fillConfig([]);case"http":return fillConfig(HttpFormConfig);default:return fillConfig(e[o]||[])}},getFormValue=(o,e)=>o!=="http"?e:{beforeRequest:"(options, context) => {\n /**\n * 用户可以直接编写函数,在原始接口调用之前,会运行该函数,将这个函数的返回值作为该数据源接口的入参\n *\n * options: HttpOptions\n *\n * interface HttpOptions {\n * // 请求链接\n * url: string;\n * // query参数\n * params?: Record<string, string>;\n * // body数据\n * data?: Record<string, any>;\n * // 请求头\n * headers?: Record<string, string>;\n * // 请求方法 GET/POST\n * method?: Method;\n * }\n *\n * context上下文对象\n *\n * interface Content {\n * app: TMagicApp;\n * dataSource: HttpDataSource;\n * }\n *\n * return: HttpOptions\n */\n\n // 此处的返回值会作为这个接口的入参\n return options;\n}",afterResponse:"(response, context) => {\n /**\n * 用户可以直接编写函数,在原始接口返回之后,会运行该函数,将这个函数的返回值作为该数据源接口的返回\n\n * context上下文对象\n *\n * interface Content {\n * app: TMagicApp;\n * dataSource: HttpDataSource;\n * }\n *\n */\n\n // 此处的返回值会作为这个接口的返回值\n return response;\n}",...e},getDisplayField=(o,e)=>{const t=[],r=e.matchAll(dataSourceTemplateRegExp);let s=0;for(const a of r){if(typeof a.index>"u")break;t.push({type:"text",value:e.substring(s,a.index)});let l="",c,d;getKeysArray(a[1]).forEach((u,g)=>{if(g===0){c=o.find(f=>f.id===u),l+=(c==null?void 0:c.title)||u,d=c==null?void 0:c.fields;return}if(isNumber$4(u))l+="[".concat(u,"]");else{const f=d==null?void 0:d.find(m=>m.name===u);d=f==null?void 0:f.fields,l+=".".concat((f==null?void 0:f.title)||u)}}),t.push({type:"var",value:l}),s=a.index+a[0].length}return s<e.length&&t.push({type:"text",value:e.substring(s)}),t},getCascaderOptionsFromFields=(o=[],e=["any"])=>{const t=[];return o.forEach(r=>{e.length||e.push("any");let s=[];r.type&&["any","array","object"].includes(r.type)&&(s=getCascaderOptionsFromFields(r.fields,e));const a={label:"".concat(r.title||r.name,"(").concat(r.type,")"),value:r.name,children:s},l=r.type||"any";if(e.includes("any")||e.includes(l)){t.push(a);return}!e.includes(l)&&!["array","object","any"].includes(l)||!s.length&&["object","array","any"].includes(r.type||"")||t.push(a)}),t},removeDataSourceFieldPrefix=o=>(o==null?void 0:o.replace(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX,""))||"";globalThis.requestIdleCallback=globalThis.requestIdleCallback||function(o){const e=Date.now();return setTimeout(()=>{o({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-e))}})},1)};class IdleTask extends eventsExports.EventEmitter{constructor(){super();K(this,"taskList",[]);K(this,"hightLevelTaskList",[]);K(this,"taskHandle",null);this.setMaxListeners(1e3)}enqueueTask(t,r,s=!1){(s?this.hightLevelTaskList:this.taskList).push({handler:t,data:r}),this.taskHandle||(this.taskHandle=globalThis.requestIdleCallback(this.runTaskQueue.bind(this),{timeout:1e4}))}clearTasks(){this.taskHandle&&globalThis.cancelIdleCallback(this.taskHandle),this.hightLevelTaskList=[],this.taskList=[],this.taskHandle=null,this.emit("update-task-length",{length:this.taskList.length+this.hightLevelTaskList.length,hightLevelLength:this.hightLevelTaskList.length})}on(t,r){return super.on(t,r)}once(t,r){return super.once(t,r)}emit(t,...r){return super.emit(t,...r)}runTaskQueue(t){const{hightLevelTaskList:r,taskList:s}=this;for(;t.timeRemaining()>0&&(s.length||r.length);){const a=t.timeRemaining();let l=0;a<=5?l=10:a<=10?l=100:a<=15?l=300:l=600;for(let c=0;c<l;c++){const d=r.length>0?r.shift():s.shift();if(d&&d.handler(d.data),r.length===0&&s.length===0)break}}r.length||this.emit("hight-level-finish"),r.length||s.length?this.taskHandle=globalThis.requestIdleCallback(this.runTaskQueue.bind(this),{timeout:300}):(this.taskHandle=0,this.emit("finish")),this.emit("update-task-length",{length:s.length+r.length,hightLevelLength:r.length})}}class ScrollViewer extends eventsExports.EventEmitter{constructor(t){super();K(this,"container");K(this,"target");K(this,"zoom",1);K(this,"scrollLeft",0);K(this,"scrollTop",0);K(this,"scrollHeight",0);K(this,"scrollWidth",0);K(this,"width",0);K(this,"height",0);K(this,"translateXCorrectionValue",0);K(this,"translateYCorrectionValue",0);K(this,"correctionScrollSize",{width:0,height:0});K(this,"resizeObserver",new ResizeObserver(()=>{this.setSize(),this.setScrollSize()}));K(this,"wheelHandler",t=>{const{deltaX:r,deltaY:s,currentTarget:a}=t;if(a!==this.container)return;let l;this.scrollHeight>this.height&&(l=this.scrollTop+this.getPos(s,this.scrollTop,this.scrollHeight,this.height));let c;this.scrollWidth>this.width&&(c=this.scrollLeft+this.getPos(r,this.scrollLeft,this.scrollWidth,this.width)),this.scrollTo({left:c,top:l}),this.emit("scroll",{scrollLeft:this.scrollLeft,scrollTop:this.scrollTop,scrollHeight:this.scrollHeight,scrollWidth:this.scrollWidth})});K(this,"setScrollSize",()=>{const t=this.target.getBoundingClientRect();this.scrollWidth=t.width*this.zoom+this.correctionScrollSize.width;const r=Number(this.target.style.marginTop)||0;this.scrollHeight=(t.height+r)*this.zoom+this.correctionScrollSize.height;let s,a;this.scrollWidth<this.width?(s=0,this.translateXCorrectionValue=0):this.translateXCorrectionValue=(this.scrollWidth-this.width)/2,this.scrollHeight<this.height?(a=0,this.translateYCorrectionValue=0):this.translateYCorrectionValue=(this.scrollHeight-this.height)/2,this.scrollTo({left:s,top:a}),this.emit("scroll",{scrollLeft:this.scrollLeft,scrollTop:this.scrollTop,scrollHeight:this.scrollHeight,scrollWidth:this.scrollWidth})});K(this,"setSize",()=>{const{width:t,height:r}=this.container.getBoundingClientRect();this.width=t,this.height=r});this.container=t.container,this.target=t.target,this.zoom=t.zoom,this.correctionScrollSize&&(this.correctionScrollSize={...this.correctionScrollSize,...t.correctionScrollSize}),this.container.addEventListener("wheel",this.wheelHandler,!1),this.setSize(),this.setScrollSize(),this.resizeObserver.observe(this.container),this.resizeObserver.observe(this.target)}destroy(){this.resizeObserver.disconnect(),this.container.removeEventListener("wheel",this.wheelHandler,!1),this.removeAllListeners()}setZoom(t){this.zoom=t,this.setScrollSize()}scrollTo({left:t,top:r}){typeof t<"u"&&(this.scrollLeft=t),typeof r<"u"&&(this.scrollTop=r);const s=-this.scrollLeft+this.translateXCorrectionValue,a=-this.scrollTop+this.translateYCorrectionValue;this.target.style.transform="translate(".concat(s,"px, ").concat(a,"px)")}getPos(t,r,s,a){let l=0;if(t<0)r>0&&(l=Math.max(t,-r));else{const c=s-a-r;c>0&&(l=Math.min(t,c))}return l}}const updateStatus=(o,e,t)=>{const r=o.get(e);r&&getKeys$1(t).forEach(s=>{r[s]!==void 0&&t[s]!==void 0&&(r[s]=!!t[s])})},UI_SELECT_MODE_EVENT_NAME="ui-select",LEFT_COLUMN_WIDTH_STORAGE_KEY="$MagicEditorLeftColumnWidthData",RIGHT_COLUMN_WIDTH_STORAGE_KEY="$MagicEditorRightColumnWidthData",PROPS_PANEL_WIDTH_STORAGE_KEY="$MagicEditorPropsPanelWidthData",DEFAULT_LEFT_COLUMN_WIDTH=310,DEFAULT_RIGHT_COLUMN_WIDTH=480,MIN_LEFT_COLUMN_WIDTH=200,MIN_CENTER_COLUMN_WIDTH=400,MIN_RIGHT_COLUMN_WIDTH=300,H_GUIDE_LINE_STORAGE_KEY="$MagicStageHorizontalGuidelinesData",V_GUIDE_LINE_STORAGE_KEY="$MagicStageVerticalGuidelinesData",_sfc_main$1m=defineComponent({name:"MEditorCodeParams",__name:"CodeParams",props:{model:{},size:{},disabled:{type:Boolean},name:{},paramsConfig:{}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,s=useTemplateRef("form"),a=(d=[])=>[{type:"fieldset",items:d,legend:"参数",labelWidth:"120px",name:t.name}],l=computed$1(()=>a(t.paramsConfig.map(({name:d,text:u,extra:g,...f})=>({type:"data-source-field-select",name:d,text:u,extra:g,fieldConfig:f})))),c=async(d,u)=>{var g;try{const f=await((g=s.value)==null?void 0:g.submitForm(!0));r("change",f,u)}catch(f){error(f)}};return(d,u)=>(openBlock(),createBlock(unref(_sfc_main$g$1),{ref:"form",config:l.value,"init-values":o.model,disabled:o.disabled,size:o.size,"watch-props":!1,onChange:c},null,8,["config","init-values","disabled","size"]))}}),_hoisted_1$Z={class:"m-fields-code-select-col"},_hoisted_2$n={class:"code-select-container"},_sfc_main$1l=defineComponent({name:"MFieldsCodeSelectCol",__name:"CodeSelectCol",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=inject("mForm"),{codeBlockService:r,uiService:s}=useServices(),a=inject("eventBus"),l=e,c=o,d=computed$1(()=>filterFunction(t,c.config.notEditable,c)),u=computed$1(()=>(s.get("sideBarItems")||[]).find(y=>y.$key===SideItemKey.CODE_BLOCK)),g=y=>{var w;if(!f.value||!y)return[];const S=(w=f.value[y])==null?void 0:w.params;return isEmpty$2(S)?[]:S.map(E=>({labelWidth:"100px",text:E.name,...E}))},f=computed$1(()=>r.getCodeDsl()),m=ref$1(g(c.model[c.name]));watch(()=>c.model[c.name],(y,S)=>{y!==S&&(m.value=g(y))});const _={type:"select",name:c.name,disable:c.disabled,options:()=>f.value?map(f.value,(y,S)=>({text:"".concat(y.name,"").concat(S,""),label:"".concat(y.name,"").concat(S,""),value:S})):[]},v=y=>{m.value=g(y);const S=[{propPath:c.prop,value:y}];S.push({propPath:c.prop.replace("".concat(c.name),"params"),value:m.value.length?createValues(t,m.value,{},c.model.params):{}}),l("change",y,{changeRecords:S})},b=(y,S)=>{var w;(w=S.changeRecords)==null||w.forEach(E=>{E.propPath="".concat(c.prop.replace("".concat(c.name),"")).concat(E.propPath)}),l("change",c.model[c.name],S)},C=y=>{a==null||a.emit("edit-code",y)};return(y,S)=>(openBlock(),createElementBlock("div",_hoisted_1$Z,[createBaseVNode("div",_hoisted_2$n,[createCommentVNode(" 代码块下拉框 "),createVNode(unref(_sfc_main$a$1),{class:"select",config:_,name:o.name,model:o.model,size:o.size,prop:o.prop,onChange:v},null,8,["name","model","size","prop"]),createCommentVNode(" 查看/编辑按钮 "),o.model[o.name]&&u.value?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,class:"m-fields-select-action-button",size:o.size,onClick:S[0]||(S[0]=w=>C(o.model[o.name]))},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:d.value?unref(view_default):unref(edit_default)},null,8,["icon"])]),_:1},8,["size"])):createCommentVNode("v-if",!0)]),createCommentVNode(" 参数填写框 "),m.value.length?(openBlock(),createBlock(_sfc_main$1m,{name:"params",key:o.model[o.name],model:o.model,size:o.size,disabled:o.disabled,"params-config":m.value,onChange:b},null,8,["model","size","disabled","params-config"])):createCommentVNode("v-if",!0)]))}}),_sfc_main$1k=defineComponent({name:"MFieldsCondOpSelect",__name:"CondOpSelect",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){var d;const t=e,{dataSourceService:r}=useServices(),s=o,a=(d=getDesignConfig("components"))==null?void 0:d.option,l=computed$1(()=>{const[u,...g]=[...s.config.parentFields||[],...s.model.field],f=r.getDataSourceById(u);let m=(f==null?void 0:f.fields)||[],_="";return(g||[]).forEach(v=>{const b=m.find(C=>C.name===v);m=(b==null?void 0:b.fields)||[],_=(b==null?void 0:b.type)||""}),_==="array"?arrayOptions:_==="boolean"?[{text:"是",value:"is"},{text:"不是",value:"not"}]:_==="number"?[...eqOptions,...numberOptions]:_==="string"?[...arrayOptions,...eqOptions]:[...arrayOptions,...eqOptions,...numberOptions]}),c=u=>{t("change",u)};return(u,g)=>(openBlock(),createBlock(unref(_sfc_main$b$2),{"model-value":o.model[o.name],clearable:"",filterable:"",size:o.size,disabled:o.disabled,onChange:c},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(l.value,f=>{var m,_;return openBlock(),createBlock(resolveDynamicComponent(((m=unref(a))==null?void 0:m.component)||"el-option"),mergeProps({class:"tmagic-design-option",key:f.value},{ref_for:!0},((_=unref(a))==null?void 0:_.props({label:f.text,value:f.value}))||{label:f.text,value:f.value}),null,16)}),128))]),_:1},8,["model-value","size","disabled"]))}}),_hoisted_1$Y={ref:"title",class:"m-editor-float-box-title"},_sfc_main$1j=defineComponent({__name:"FloatingBox",props:mergeModels({position:{default:()=>({left:0,top:0})},title:{default:""},beforeClose:{}},{width:{default:0},widthModifiers:{},height:{default:0},heightModifiers:{},visible:{type:Boolean,default:!1},visibleModifiers:{}}),emits:["update:width","update:height","update:visible"],setup(o,{expose:e}){const t=useModel(o,"width"),r=useModel(o,"height"),s=useModel(o,"visible"),a=o,l=useTemplateRef("target"),c=useTemplateRef("title"),d=useZIndex(),u=ref$1(0),g=ref$1(0),f=computed$1(()=>r.value?r.value-g.value:l.value?l.value.clientHeight-g.value:"auto"),{uiService:m}=useServices(),_=computed$1(()=>m.get("frameworkRect").width||0),v=computed$1(()=>{let{left:x}=a.position;return t.value&&(x=x+t.value>_.value?_.value-t.value:x),{left:"".concat(x,"px"),top:"".concat(a.position.top,"px"),width:t.value?"".concat(t.value,"px"):"auto",height:r.value?"".concat(r.value,"px"):"auto"}});let b=null;const C=()=>{b=new Moveable(globalThis.document.body,{className:"m-editor-floating-box-moveable",target:l.value,draggable:!0,resizable:!0,edge:!0,keepRatio:!1,origin:!1,snappable:!0,dragTarget:c.value,dragTargetSelf:!1,linePadding:10,controlPadding:10,bounds:{left:0,top:0,right:0,bottom:0,position:"css"}}),b.on("drag",x=>{x.target.style.transform=x.transform}),b.on("resize",x=>{t.value=x.width,r.value=x.height,x.target.style.width="".concat(x.width,"px"),x.target.style.height="".concat(x.height,"px"),x.target.style.transform=x.drag.transform})},y=()=>{b==null||b.destroy(),b=null};watch(s,async x=>{var L;if(x){await nextTick(),u.value=d.nextZIndex();const k=(L=l.value)==null?void 0:L.getBoundingClientRect();if(k&&(t.value=k.width,r.value=k.height,C()),c.value){const D=c.value.getBoundingClientRect();g.value=D.height}}else y()},{immediate:!0}),onBeforeUnmount(()=>{y()});const S=x=>{x!==!1&&(s.value=!1)},w=()=>{typeof a.beforeClose=="function"?a.beforeClose(S):S()},E=()=>{u.value=d.nextZIndex()};return provide("parentFloating",l),e({bodyHeight:f,target:l,titleEl:c}),(x,L)=>s.value?(openBlock(),createBlock(Teleport,{key:0,to:"body"},[createBaseVNode("div",{ref:"target",class:"m-editor-float-box",style:normalizeStyle({...v.value,zIndex:u.value}),onMousedown:E},[createBaseVNode("div",_hoisted_1$Y,[renderSlot(x.$slots,"title",{},()=>[createBaseVNode("span",null,toDisplayString(o.title),1)]),createBaseVNode("div",null,[createVNode(unref(_sfc_main$F$1),{link:"",size:"small",onClick:w},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(close_default)},null,8,["icon"])]),_:1})])],512),createBaseVNode("div",{class:"m-editor-float-box-body",style:normalizeStyle({height:"".concat(f.value,"px")})},[renderSlot(x.$slots,"body")],4)],36)])):createCommentVNode("v-if",!0)}}),useCodeBlockEdit=o=>{const e=ref$1(),t=ref$1(),r=useTemplateRef("codeBlockEditor");return{codeId:t,codeConfig:e,codeBlockEditor:r,createCodeBlock:async()=>{var d;e.value={name:"",content:"({app, params, flowState}) => {\n // place your code here\n}",params:[]},t.value=await o.getUniqueId(),await nextTick(),(d=r.value)==null||d.show()},editCode:async d=>{var f;const u=await o.getCodeContentById(d);if(!u){tMagicMessage.error("获取代码块内容失败");return}let g=u.content;typeof g!="string"&&(g=g.toString()),e.value={...cloneDeep(u),content:g},t.value=d,await nextTick(),(f=r.value)==null||f.show()},deleteCode:async d=>{o.deleteCodeDslByIds([d])},submitCodeBlockHandler:async d=>{var u;t.value&&(await o.setCodeDslById(t.value,d),(u=r.value)==null||u.hide())}}},state=shallowReactive({uiSelectMode:!1,showSrc:!1,showStylePanel:!0,zoom:1,stageContainerRect:{width:0,height:0},stageRect:{width:375,height:817},columnWidth:{left:storageService.getItem(LEFT_COLUMN_WIDTH_STORAGE_KEY,{protocol:Protocol.NUMBER})||DEFAULT_LEFT_COLUMN_WIDTH,center:0,right:storageService.getItem(RIGHT_COLUMN_WIDTH_STORAGE_KEY,{protocol:Protocol.NUMBER})||DEFAULT_RIGHT_COLUMN_WIDTH},showGuides:!0,showRule:!0,propsPanelSize:"small",showAddPageButton:!0,showPageListButton:!0,hideSlideBar:!1,sideBarItems:[],navMenuRect:{left:0,top:0,width:0,height:0},frameworkRect:{width:0,height:0,left:0,top:0}}),canUsePluginMethods$4={async:["zoom","calcZoom"]};class Ui extends BaseService{constructor(){super(canUsePluginMethods$4.async.map(e=>({name:e,isAsync:!0})))}set(e,t){var s;const r=(s=editorService.get("stage"))==null?void 0:s.mask;if(e==="stageRect"){this.setStageRect(t);return}e==="showGuides"&&(r==null||r.showGuides(t)),e==="showRule"&&(r==null||r.showRule(t)),state[e]=t}get(e){return state[e]}async zoom(e){this.set("zoom",(this.get("zoom")*100+e*100)/100),this.get("zoom")<.1&&this.set("zoom",.1)}async calcZoom(){const{stageRect:e,stageContainerRect:t}=state,{height:r,width:s}=t;if(!s||!r)return 1;let a=convertToNumber(e.width,s),l=convertToNumber(e.height,r);return a=a+30,l=l+30,s>a&&r>l?1:Math.min((s-60)/a||1,(r-80)/l||1)}resetState(){this.set("showSrc",!1),this.set("uiSelectMode",!1),this.set("zoom",1),this.set("stageContainerRect",{width:0,height:0})}destroy(){this.resetState(),this.removeAllListeners(),this.removeAllPlugins()}usePlugin(e){super.usePlugin(e)}async setStageRect(e){state.stageRect={...state.stageRect,...e},state.zoom=await this.calcZoom()}}const uiService=new Ui,root=computed$1(()=>editorService.get("root")),page=computed$1(()=>editorService.get("page")),zoom=computed$1(()=>uiService.get("zoom")||1),uiSelectMode=computed$1(()=>uiService.get("uiSelectMode")),getGuideLineKey=o=>{var e,t;return"".concat(o,"_").concat((e=root.value)==null?void 0:e.id,"_").concat((t=page.value)==null?void 0:t.id)},useStage=o=>{var t,r;const e=new StageCore({render:o.render,runtimeUrl:o.runtimeUrl,zoom:(t=o.zoom)!=null?t:zoom.value,autoScrollIntoView:o.autoScrollIntoView,isContainer:o.isContainer,containerHighlightClassName:o.containerHighlightClassName,containerHighlightDuration:o.containerHighlightDuration,containerHighlightType:o.containerHighlightType,disabledDragStart:o.disabledDragStart,renderType:o.renderType,canSelect:(s,a,l)=>{var d;if(!o.canSelect)return!0;const c=(d=o.canSelect)==null?void 0:d.call(o,s);return uiSelectMode.value&&c&&a.type==="mousedown"?(document.dispatchEvent(new CustomEvent(UI_SELECT_MODE_EVENT_NAME,{detail:s})),l()):c},moveableOptions:o.moveableOptions,updateDragEl:o.updateDragEl,guidesOptions:o.guidesOptions,disabledMultiSelect:o.disabledMultiSelect,disabledRule:o.disabledRule});return watch(()=>editorService.get("disabledMultiSelect"),s=>{s?e.disableMultiSelect():e.enableMultiSelect()}),(r=e.mask)==null||r.setGuides([getGuideLineFromCache(getGuideLineKey(H_GUIDE_LINE_STORAGE_KEY)),getGuideLineFromCache(getGuideLineKey(V_GUIDE_LINE_STORAGE_KEY))]),e.on("page-el-update",()=>{editorService.set("stageLoading",!1)}),e.on("select",s=>{var l;const a=getIdFromEl()(s);"".concat((l=editorService.get("node"))==null?void 0:l.id)===a&&editorService.get("nodes").length===1||a&&editorService.select(a)}),e.on("highlight",s=>{const a=getIdFromEl()(s);a&&editorService.highlight(a)}),e.on("multi-select",s=>{const a=s.map(l=>getIdFromEl()(l)).filter(l=>!!l);editorService.multiSelect(a)}),e.on("update",s=>{if(s.parentEl){for(const a of s.data){const l=getIdFromEl()(a.el),c=getIdFromEl()(s.parentEl);l&&c&&editorService.moveToContainer({id:l,style:a.style},c)}return}editorService.update(s.data.map(a=>({id:getIdFromEl()(a.el)||"",style:a.style})))}),e.on("sort",s=>{editorService.sort(s.src,s.dist)}),e.on("remove",s=>{const a=s.data.map(({el:l})=>editorService.getNodeById(getIdFromEl()(l)||""));editorService.remove(a.filter(l=>!!l))}),e.on("select-parent",()=>{var a;const s=editorService.get("parent");if(!s)throw new Error("父节点为空");editorService.select(s),(a=editorService.get("stage"))==null||a.select(s.id)}),e.on("change-guides",s=>{if(uiService.set("showGuides",!0),!root.value||!page.value)return;const a=getGuideLineKey(s.type===GuidesType.HORIZONTAL?H_GUIDE_LINE_STORAGE_KEY:V_GUIDE_LINE_STORAGE_KEY);s.guides.length?globalThis.localStorage.setItem(a,JSON.stringify(s.guides)):globalThis.localStorage.removeItem(a)}),e},useFloatBox=o=>{const{uiService:e}=useServices(),t=ref$1(o.value.reduce((g,f)=>({...g,[f]:{status:!1,top:0,left:0}}),{})),r=computed$1(()=>Object.keys(t.value).filter(g=>t.value[g].status)),s={startOffset:{x:0,y:0},isDragging:!1},a=g=>{s.isDragging=!0,s.startOffset.x=g.clientX,s.startOffset.y=g.clientY},l=20,c=(g,f)=>{if(!s.isDragging)return;const{startOffset:m}=s;if(Math.abs(m.x-f.clientX)>l||Math.abs(m.y-f.clientY)>l){const _=e.get("navMenuRect");t.value[g]={left:f.clientX,top:_.top+_.height,status:!0}}s.isDragging=!1},d=g=>{s.isDragging&&g.preventDefault()},u=()=>{s.startOffset.x=0,s.startOffset.y=0,s.isDragging=!1};return globalThis.document.body.addEventListener("dragover",d),globalThis.addEventListener("blur",u),onBeforeUnmount(()=>{globalThis.document.body.removeEventListener("dragover",d),globalThis.removeEventListener("blur",u)}),watch(()=>o.value,g=>{g.forEach(f=>{t.value[f]||(t.value[f]={status:!1,top:0,left:0})})},{deep:!0,immediate:!0}),{dragstartHandler:a,dragendHandler:c,floatBoxStates:t,showingBoxKeys:r}},useWindowRect=()=>{const o=reactive$1({width:globalThis.innerWidth,height:globalThis.innerHeight}),e=()=>{o.width=globalThis.innerWidth,o.height=globalThis.innerHeight};return globalThis.addEventListener("resize",e),onBeforeUnmount(()=>{globalThis.removeEventListener("resize",e)}),{rect:o}},useEditorContentHeight=()=>{const{uiService:o}=useServices(),e=computed$1(()=>o.get("frameworkRect").height),t=computed$1(()=>o.get("navMenuRect").height),r=computed$1(()=>e.value-t.value),s=ref$1(0);return watch(r,()=>{s.value>0&&s.value===r.value||(s.value=r.value)},{immediate:!0}),{height:s}},useFilter=(o,e,t)=>{const r=(a,l)=>{const c=Array.isArray(a)?a:[a];return c.length?c.some(d=>t(d,l)):!0},s=a=>{o.value.length&&o.value.forEach(l=>{traverseNode(l,(c,d)=>{if(!e.value)return;const u=r(a,c);u&&d.length&&d.forEach(g=>{(a||a.length)&&updateStatus(e.value,g.id,{visible:u,expand:!0})}),updateStatus(e.value,c.id,{visible:u})})})};return{filterText:ref$1(""),filterTextChangeHandler(a){s(a)}}},useGetSo=(o,e)=>{let t;const r=ref$1(!1);return onMounted(()=>{o.value&&(t=new Gesto(o.value,{container:window,pinchOutside:!0}).on("drag",s=>{o.value&&e("change",s)}).on("dragStart",()=>{r.value=!0}).on("dragEnd",()=>{r.value=!1}))}),onBeforeUnmount(()=>{t==null||t.unset(),r.value=!1}),{isDragging:r}},useNextFloatBoxPosition=(o,e)=>{const t=ref$1({left:0,top:0});return{boxPosition:t,calcBoxPosition:()=>{var c;const s=o.get("columnWidth"),a=o.get("navMenuRect");let l=(c=s.left)!=null?c:0;if(e!=null&&e.value){const d=e.value.getBoundingClientRect();l=d.left+d.width}t.value={left:l,top:a.top+a.height}}}},createPageNodeStatus$1=(o,e)=>{const t=new Map;return o.forEach(r=>traverseNode(r,s=>{t.set(s.id,(e==null?void 0:e.get(s.id))||{visible:!0,expand:!1,selected:!1,draggable:!1})})),t},useNodeStatus$1=o=>{const e=ref$1(new Map);return watch(o,t=>{e.value=createPageNodeStatus$1(t,e.value)},{immediate:!0,deep:!0}),{nodeStatusMap:e}},_hoisted_1$X={class:"m-editor-data-source-fields"},_hoisted_2$m={class:"m-editor-data-source-fields-footer"},_sfc_main$1i=defineComponent({name:"MFieldsDataSourceFields",__name:"DataSourceFields",props:mergeModels({config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},{width:{default:670},widthModifiers:{},visible:{type:Boolean,default:!1},visibleModifiers:{},visible1:{type:Boolean,default:!1},visible1Modifiers:{}}),emits:mergeModels(["change"],["update:width","update:visible","update:visible1"]),setup(o,{emit:e}){const t=o,r=e,{uiService:s}=useServices(),a=ref$1({}),l=ref$1(""),c=useModel(o,"width"),d=()=>{a.value={},l.value="新增属性",k(),S.value=!0},u=({index:D,...I},T)=>{if(S.value=!1,D>-1)r("change",I,{modifyKey:D,changeRecords:(T.changeRecords||[]).map(M=>({propPath:"".concat(t.prop,".").concat(D,".").concat(M.propPath),value:M.value}))});else{const M=t.model[t.name].length;r("change",I,{modifyKey:M,changeRecords:[{propPath:"".concat(t.prop,".").concat(M),value:I}]})}},g=[{label:"属性名称",prop:"title"},{label:"属性key",prop:"name"},{label:"属性描述",prop:"description"},{label:"默认值",prop:"defaultValue",formatter(D,I){try{return JSON.stringify(I.defaultValue)}catch(T){return error(T),I.defaultValue}}},{label:"操作",fixed:"right",actions:[{text:"编辑",handler:(D,I)=>{a.value={...D,index:I},l.value="编辑".concat(D.title),k(),S.value=!0}},{text:"删除",buttonType:"danger",handler:async(D,I)=>{await tMagicMessageBox.confirm("确定删除".concat(D.title,"(").concat(D.name,")?"),"提示"),t.model[t.name].splice(I,1),r("change",t.model[t.name])}}]}],f=[{name:"index",type:"hidden",filter:"number",defaultValue:-1},{name:"type",text:"数据类型",type:"select",defaultValue:"string",options:[{text:"字符串",value:"string"},{text:"数字",value:"number"},{text:"布尔值",value:"boolean"},{text:"对象",value:"object"},{text:"数组",value:"array"},{text:"null",value:"null"},{text:"any",value:"any"}],onChange:(D,I,{setModel:T})=>(["any","array","object"].includes(I)||T("fields",[]),I)},{name:"name",text:"字段名称",rules:[{required:!0,message:"请输入字段名称"},{validator:({value:D,callback:I},{model:T,parent:M})=>{const R=M.findIndex(N=>N.name===D);if(T.index===-1&&R>-1||T.index>-1&&R>-1&&R!==T.index)return I("属性key".concat(D,")已存在"));I()}}]},{name:"title",text:"展示名称",rules:[{required:!0,message:"请输入展示名称"}]},{name:"description",text:"描述",type:"textarea"},{name:"defaultValue",text:"默认值",height:"200px",parse:!0,type:(D,{model:I})=>I.type==="number"?"number":I.type==="boolean"?"select":I.type==="string"?"text":"vs-code",options:[{text:"true",value:!0},{text:"false",value:!1}]},{name:"enable",text:"是否可用",type:"switch",defaultValue:!0},{name:"fields",type:"data-source-fields",defaultValue:[],display:(D,{model:I})=>I.type==="object"||I.type==="array"}],m=[{name:"data",type:"vs-code",labelWidth:"0",language:"json",height:"600px",options:inject("codeOptions",{})}],_=ref$1({data:{}}),v=()=>{_.value.data=getDefaultValueFromFields(t.model[t.name]),k(),w.value=!0},b=D=>Array.isArray(D)?"array":D===null?"null":typeof D=="object"?"object":typeof D=="number"?"number":typeof D=="boolean"?"boolean":typeof D=="string"?"string":"any",C=(D,I=[])=>{if(!D||typeof D!="object")throw new Error("数据格式错误");const T=[];return Object.entries(D).forEach(([M,R])=>{var P;const N=b(R),A=I.find(F=>F.name===M);let O=[];Array.isArray(R)&&R.length>0?O=C(R[0],A==null?void 0:A.fields):N==="object"&&(O=C(R,A==null?void 0:A.fields)),T.push({name:M,title:(A==null?void 0:A.title)||M,type:N,description:(A==null?void 0:A.description)||"",enable:(P=A==null?void 0:A.enable)!=null?P:!0,defaultValue:R,fields:O})}),T},y=({data:D})=>{try{const I=JSON.parse(D);w.value=!1,r("change",C(I,t.model[t.name]))}catch(I){tMagicMessage.error(I.message)}},S=useModel(o,"visible"),w=useModel(o,"visible1"),{height:E}=useEditorContentHeight(),x=inject("parentFloating",ref$1(null)),{boxPosition:L,calcBoxPosition:k}=useNextFloatBoxPosition(s,x);return(D,I)=>(openBlock(),createElementBlock("div",_hoisted_1$X,[createVNode(unref(_sfc_main$1t),{data:o.model[o.name],columns:g,border:!0},null,8,["data"]),createBaseVNode("div",_hoisted_2$m,[createVNode(unref(_sfc_main$F$1),{size:"small",disabled:o.disabled,plain:"",onClick:I[0]||(I[0]=T=>v())},{default:withCtx(()=>[...I[8]||(I[8]=[createTextVNode("快速添加",-1)])]),_:1},8,["disabled"]),createVNode(unref(_sfc_main$F$1),{size:"small",type:"primary",disabled:o.disabled,plain:"",onClick:I[1]||(I[1]=T=>d())},{default:withCtx(()=>[...I[9]||(I[9]=[createTextVNode("添加",-1)])]),_:1},8,["disabled"])]),createVNode(_sfc_main$1j,{visible:S.value,"onUpdate:visible":I[2]||(I[2]=T=>S.value=T),width:c.value,"onUpdate:width":I[3]||(I[3]=T=>c.value=T),height:unref(E),"onUpdate:height":I[4]||(I[4]=T=>isRef(E)?E.value=T:null),title:l.value,position:unref(L)},{body:withCtx(()=>[createVNode(unref(_sfc_main$1u),{"label-width":"80px",title:l.value,config:f,values:a.value,parentValues:o.model[o.name],disabled:o.disabled,onSubmit:u},null,8,["title","values","parentValues","disabled"])]),_:1},8,["visible","width","height","title","position"]),createVNode(_sfc_main$1j,{visible:w.value,"onUpdate:visible":I[5]||(I[5]=T=>w.value=T),width:c.value,"onUpdate:width":I[6]||(I[6]=T=>c.value=T),height:unref(E),"onUpdate:height":I[7]||(I[7]=T=>isRef(E)?E.value=T:null),title:"快速添加数据定义",position:unref(L)},{body:withCtx(()=>[createVNode(unref(_sfc_main$1u),{config:m,values:_.value,disabled:o.disabled,onSubmit:y},null,8,["values","disabled"])]),_:1},8,["visible","width","height","position"])]))}}),_hoisted_1$W={class:"m-editor-data-source-field-select"},_sfc_main$1h=defineComponent({__name:"FieldSelect",props:mergeModels({value:{},disabled:{type:Boolean},checkStrictly:{type:Boolean},size:{},dataSourceFieldType:{},notEditable:{type:[Boolean,Function]}},{modelValue:{default:[]},modelModifiers:{}}),emits:mergeModels(["change"],["update:modelValue"]),setup(o,{emit:e}){var k;const t=o,r=e,s=useModel(o,"modelValue"),a=(k=getDesignConfig("components"))==null?void 0:k.option,{dataSourceService:l,uiService:c}=useServices(),d=inject("mForm"),u=inject("eventBus"),g=computed$1(()=>l.get("dataSources")||[]),f=computed$1(()=>t.value==="key"),m=computed$1(()=>filterFunction(d,t.notEditable,t)),_=computed$1(()=>g.value.map(D=>({text:D.title||D.id,value:f.value?D.id:"".concat(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX).concat(D.id)}))),v=ref$1(""),b=ref$1([]);watch(s,D=>{if(Array.isArray(D)){const[I,...T]=D;v.value=I,b.value=T}else v.value="",b.value=[]},{immediate:!0});const C=computed$1(()=>{const D=g.value.find(I=>I.id===removeDataSourceFieldPrefix(v.value));return D?getCascaderOptionsFromFields(D.fields,t.dataSourceFieldType):[]}),y=computed$1(()=>{var I;return(((I=g.value)==null?void 0:I.map(T=>({label:T.title||T.id,value:f.value?T.id:"".concat(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX).concat(T.id),children:getCascaderOptionsFromFields(T.fields,t.dataSourceFieldType)})))||[]).filter(T=>T.children.length)}),S=D=>{s.value=[D],r("change",s.value)},w=(D=[])=>{s.value=[v.value,...D],r("change",s.value)},E=(D=[])=>{s.value=D,r("change",D)},x=computed$1(()=>c.get("sideBarItems").find(D=>D.$key===SideItemKey.DATA_SOURCE)),L=D=>{u==null||u.emit("edit-data-source",removeDataSourceFieldPrefix(D))};return(D,I)=>(openBlock(),createElementBlock("div",_hoisted_1$W,[o.checkStrictly?(openBlock(),createElementBlock(Fragment,{key:0},[createVNode(unref(_sfc_main$b$2),{"model-value":v.value,clearable:"",filterable:"",size:o.size,disabled:o.disabled,onChange:S},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(_.value,T=>{var M,R;return openBlock(),createBlock(resolveDynamicComponent(((M=unref(a))==null?void 0:M.component)||"el-option"),mergeProps({class:"tmagic-design-option",key:T.value},{ref_for:!0},((R=unref(a))==null?void 0:R.props({label:T.text,value:T.value,disabled:T.disabled}))||{label:T.text,value:T.value,disabled:T.disabled}),null,16)}),128))]),_:1},8,["model-value","size","disabled"]),createVNode(unref(_sfc_main$D$1),{"model-value":b.value,clearable:"",filterable:"",size:o.size,disabled:o.disabled,options:C.value,props:{checkStrictly:o.checkStrictly},onChange:w},null,8,["model-value","size","disabled","options","props"])],64)):(openBlock(),createBlock(unref(_sfc_main$D$1),{key:1,clearable:"",filterable:"","model-value":s.value,disabled:o.disabled,size:o.size,options:y.value,props:{checkStrictly:o.checkStrictly},onChange:E},null,8,["model-value","disabled","size","options","props"])),v.value&&x.value?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:2,content:m.value?"查看":"编辑"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{class:"m-fields-select-action-button",size:o.size,onClick:I[0]||(I[0]=T=>L(v.value))},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:m.value?unref(view_default):unref(edit_default)},null,8,["icon"])]),_:1},8,["size"])]),_:1},8,["content"])):createCommentVNode("v-if",!0)]))}}),_hoisted_1$V={class:"m-fields-data-source-field-select"},_sfc_main$1g=defineComponent({name:"MFieldsDataSourceFieldSelect",__name:"Index",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=e,r=o,s=ref$1(!1);watch(()=>r.model[r.name],v=>{Array.isArray(v)&&typeof v[0]=="string"&&v[0].startsWith(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX)?s.value=!0:s.value=!1},{immediate:!0});const{dataSourceService:a,propsService:l}=useServices(),c=inject("mForm"),d=computed$1(()=>a.get("dataSources")||[]),u=computed$1(()=>l.getDisabledDataSource()),g=computed$1(()=>{var b;let v=(b=r.config.fieldConfig)==null?void 0:b.type;return typeof v=="function"&&(v=v(c,{model:r.model})),v==="form"||v==="container"?"":(v==null?void 0:v.replace(/([A-Z])/g,"-$1").toLowerCase())||(r.config.items?"":"text")}),f=computed$1(()=>{const v=resolveComponent("m-".concat(r.config.items?"form":"fields","-").concat(g.value));return typeof v!="string"?v:"m-fields-text"}),m=computed$1(()=>{let v;if(typeof r.config.checkStrictly!="function")v=r.config.checkStrictly;else{const b=removeDataSourceFieldPrefix(r.model[0]),C=d.value.find(y=>y.id===b);v=r.config.checkStrictly(c,{values:(c==null?void 0:c.initValues)||{},model:r.model,parent:(c==null?void 0:c.parentValues)||{},formValue:(c==null?void 0:c.values)||r.model,prop:r.prop,config:r.config,dataSource:C})}return v!=null?v:r.config.value==="key"}),_=(v,b)=>{if(!Array.isArray(v)){t("change",v,b);return}const[C,...y]=v,S=d.value.find(L=>L.id===removeDataSourceFieldPrefix(C));if(!S){t("change",v,b);return}let w=S.fields||[],E;(y||[]).forEach(L=>{E=w.find(k=>k.name===L),w=(E==null?void 0:E.fields)||[]});const x=r.config.dataSourceFieldType||["any"];x.length||x.push("any"),!y.length||E!=null&&E.type&&(E.type==="any"||x.includes("any")||x.includes(E.type))?t("change",v,b):(tMagicMessage.error("请选择类型为".concat(x.join("或"),"的字段")),t("change",[C],b))};return(v,b)=>(openBlock(),createElementBlock("div",_hoisted_1$V,[!u.value&&(s.value||!o.config.fieldConfig)?(openBlock(),createBlock(_sfc_main$1h,{key:0,"model-value":o.model[o.name],disabled:o.disabled,size:o.size,value:o.config.value,checkStrictly:m.value,dataSourceFieldType:o.config.dataSourceFieldType,onChange:_},null,8,["model-value","disabled","size","value","checkStrictly","dataSourceFieldType"])):(openBlock(),createBlock(resolveDynamicComponent(f.value),{key:1,config:o.config.fieldConfig,model:o.model,name:o.name,disabled:o.disabled,size:o.size,"last-values":o.lastValues,"init-values":o.initValues,values:o.values,prop:o.prop,onChange:_},null,40,["config","model","name","disabled","size","last-values","init-values","values","prop"])),o.config.fieldConfig&&!u.value?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:2,disabled:s.value,content:"选择数据源"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{type:s.value?"primary":"default",size:o.size,onClick:b[0]||(b[0]=C=>s.value=!s.value)},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(coin_default)},null,8,["icon"])]),_:1},8,["type","size"])]),_:1},8,["disabled"])):createCommentVNode("v-if",!0)]))}}),_hoisted_1$U={style:{display:"flex","flex-direction":"column","line-height":"1.2em"}},_hoisted_2$l={style:{"font-size":"10px",color:"rgba(0, 0, 0, 0.6)"}},_sfc_main$1f=defineComponent({name:"MFieldsDataSourceInput",__name:"DataSourceInput",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,s=getDesignConfig("adapterType"),{dataSourceService:a,propsService:l}=useServices(),c=useTemplateRef("autocomplete"),d=ref$1(!1),u=ref$1(""),g=ref$1([]),f=computed$1(()=>{var R,N;return(N=(R=c.value)==null?void 0:R.inputRef)==null?void 0:N.input}),m=computed$1(()=>a.get("dataSources")),_=computed$1(()=>l.getDisabledDataSource()),v=()=>{g.value=getDisplayField(m.value,u.value)};watch(()=>t.model[t.name],(R="")=>{u.value=R,v()},{immediate:!0});const b=async()=>{var O;const R=globalThis.document.getSelection(),N=(R==null?void 0:R.anchorOffset)||0,A=(R==null?void 0:R.focusOffset)||0;d.value=!0,await nextTick(),(O=c.value)==null||O.focus(),A&&f.value&&f.value.setSelectionRange(N,A)},C=()=>{d.value=!1,v(),r("change",u.value)},y=R=>{r("change",R)};let S="";const w=R=>{R||(S=R)},E=(R=0)=>S.substring(R-1,R)==="}",x=()=>{var N;let R=((N=f.value)==null?void 0:N.selectionStart)||0;return E(R)&&(R-=1),R},L=R=>R>0&&R===x()-1,k=R=>R>-1&&R===x()-1,D=(R,N,A)=>{let O=[];if(L(N))O=m.value;else if(N>0){const P=R.substring(N+1).toLowerCase();O=m.value.filter(F=>{var B;return((B=F.title)==null?void 0:B.toLowerCase().includes(P))||F.id.includes(P)})}A(O.map(P=>({value:P.id,text:P.title,type:"dataSource"})))},I=(R,N,A,O)=>{let P=[];const F=R.substring(N+1,A),B=getKeysArray(F),H=B.shift(),V=m.value.find(X=>X.id===H);if(!V){O([]);return}let U=V.fields||[],j=B.shift();for(;j;){if(isNumber$4(j)){j=B.shift();continue}for(const X of U)if(X.name===j){U=X.fields||[],j=B.shift();break}}if(k(A))P=U||[];else if(A>-1){const X=R.substring(A+1).toLowerCase();P=U.filter(ee=>{var Z,J;return((Z=ee.name)==null?void 0:Z.toLowerCase().includes(X))||((J=ee.title)==null?void 0:J.toLowerCase().includes(X))})||[]}O(P.map(X=>({value:X.name,text:X.title,type:"field"})))},T=(R,N)=>{S=R;const A=x(),O=R.substring(0,A),P=O.lastIndexOf("."),F=O.lastIndexOf("${")+1;P>F?I(O,F,P,N):D(O,F,N)},M=async({value:R,type:N})=>{var j,X;const A=N==="dataSource",O=((j=f.value)==null?void 0:j.selectionStart)||0;let P=S.substring(0,O);const F=P.lastIndexOf("."),B=P.lastIndexOf("${")+1,H=S.substring(O);let V=R;A?(L(B)||(P=P.substring(0,B+1)),E(O+1)||(V="".concat(V,"}"))):k(F)||(P=P.substring(0,F+1)),u.value="".concat(P).concat(V).concat(H),await nextTick();let U=0;A?U=B+V.length:U=F+V.length+1,(X=f.value)==null||X.setSelectionRange(U,U),y(u.value)};return(R,N)=>{var A,O,P;return _.value?(openBlock(),createBlock(unref(_sfc_main$m$2),{key:0,modelValue:u.value,"onUpdate:modelValue":N[0]||(N[0]=F=>u.value=F),disabled:o.disabled,size:o.size,clearable:!0,onChange:y},null,8,["modelValue","disabled","size"])):o.disabled||d.value?(openBlock(),createBlock(resolveDynamicComponent(((A=unref(getDesignConfig)("components"))==null?void 0:A.autocomplete.component)||"el-autocomplete"),mergeProps({key:1,class:"tmagic-design-auto-complete",ref:"autocomplete",modelValue:u.value,"onUpdate:modelValue":N[1]||(N[1]=F=>u.value=F)},((O=unref(getDesignConfig)("components"))==null?void 0:O.autocomplete.props({disabled:o.disabled,size:o.size,fetchSuggestions:T,triggerOnFocus:!1,clearable:!0}))||{},{style:{width:"100%"},onBlur:C,onInput:w,onSelect:M}),{suffix:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(coin_default)},null,8,["icon"])]),default:withCtx(({item:F})=>[createBaseVNode("div",_hoisted_1$U,[createBaseVNode("div",null,toDisplayString(F.text),1),createBaseVNode("span",_hoisted_2$l,toDisplayString(F.value),1)])]),_:1},16,["modelValue"])):(openBlock(),createElementBlock("div",{key:2,class:normalizeClass({"tmagic-data-source-input-text":!0,"el-input":unref(s)==="element-plus",["el-input--".concat(o.size)]:unref(s)==="element-plus","t-input":unref(s)==="tdesign-vue-next",["t-size-".concat((P=o.size)==null?void 0:P[0])]:unref(s)==="tdesign-vue-next"}),onMouseup:b},[createBaseVNode("div",{class:normalizeClass({"tmagic-data-source-input-text-wrapper":!0,"el-input__wrapper":unref(s)==="element-plus","is-focus":d.value})},[createBaseVNode("div",{class:normalizeClass({"el-input__inner":unref(s)==="element-plus",input__inner:unref(s)==="tdesign-vue-next"})},[(openBlock(!0),createElementBlock(Fragment,null,renderList(g.value,(F,B)=>(openBlock(),createElementBlock(Fragment,null,[F.type==="text"?(openBlock(),createElementBlock("span",{key:B,style:{"margin-right":"2px"}},toDisplayString(F.value),1)):createCommentVNode("v-if",!0),F.type==="var"?(openBlock(),createBlock(unref(_sfc_main$4$4),{key:B,size:o.size},{default:withCtx(()=>[createTextVNode(toDisplayString(F.value),1)]),_:2},1032,["size"])):createCommentVNode("v-if",!0)],64))),256)),createVNode(_sfc_main$1r,{class:"tmagic-data-source-input-icon",icon:unref(coin_default)},null,8,["icon"])],2)],2)],34))}}}),_hoisted_1$T={style:{display:"flex","margin-bottom":"10px"}},_hoisted_2$k={style:{flex:"1"}},_hoisted_3$7={style:{flex:"1"}},_hoisted_4$5={class:"dialog-footer"},_sfc_main$1e=defineComponent({name:"MEditorCodeBlockEditor",__name:"CodeBlockEditor",props:mergeModels({content:{},disabled:{type:Boolean},isDataSource:{type:Boolean},dataSourceType:{}},{width:{default:670},widthModifiers:{},visible:{type:Boolean,default:!1},visibleModifiers:{}}),emits:mergeModels(["submit","close","open"],["update:width","update:visible"]),setup(o,{expose:e,emit:t}){const r=useModel(o,"width"),s=useModel(o,"visible"),a=o,l=t,{codeBlockService:c,uiService:d}=useServices(),{height:u}=useEditorContentHeight(),g=ref$1(!1),{rect:f}=useWindowRect(),m=useTemplateRef("magicVsEditor"),_=()=>{var T;!m.value||!((T=S.value)!=null&&T.form)||(S.value.form.values.content=m.value.getEditorValue(),g.value=!1)},v={type:"row",label:"参数类型",items:[{text:"参数类型",labelWidth:"70px",type:"select",name:"type",options:[{text:"数字",label:"数字",value:"number"},{text:"字符串",label:"字符串",value:"text"},{text:"组件",label:"组件",value:"ui-select"}]}]},b=computed$1(()=>[{text:"名称",name:"name",rules:[{required:!0,message:"请输入名称",trigger:"blur"}]},{text:"描述",name:"desc"},{text:"执行时机",name:"timing",type:"select",options:()=>{const T=[{text:"初始化前",value:"beforeInit"},{text:"初始化后",value:"afterInit"}];return a.dataSourceType!=="base"&&(T.push({text:"请求前",value:"beforeRequest"}),T.push({text:"请求后",value:"afterRequest"})),T},display:()=>a.isDataSource},{type:"table",border:!0,text:"参数",enableFullscreen:!1,enableToggleMode:!1,name:"params",dropSort:!1,items:[{type:"text",label:"参数名",name:"name"},{type:"text",label:"描述",name:"extra"},c.getParamsColConfig()||v]},{name:"content",type:"vs-code",options:inject("codeOptions",{}),height:"500px",onChange:(T,M)=>{try{return getEditorConfig("parseDSL")(M),M}catch(R){throw tMagicMessage.error(R.message),R}}}]),C=(T,M)=>{w.value=void 0,l("submit",T,M)},y=T=>{tMagicMessage.error(T.message)},S=useTemplateRef("formBox"),w=ref$1(),E=T=>{w.value=T},x=T=>{if(!w.value){T();return}tMagicMessageBox.confirm("当前代码块已修改,是否保存?","提示",{confirmButtonText:"保存并关闭",cancelButtonText:"不保存并关闭",type:"warning",distinguishCancelAndClose:!0}).then(()=>{var M,R;w.value&&C(w.value,{changeRecords:(R=(M=S.value)==null?void 0:M.form)==null?void 0:R.changeRecords}),T()}).catch(M=>{T(M==="cancel")})},L=()=>{w.value=void 0},k=inject("parentFloating",ref$1(null)),{boxPosition:D,calcBoxPosition:I}=useNextFloatBoxPosition(d,k);return watch(s,T=>{nextTick(()=>{l(T?"open":"close")})}),e({async show(){I(),s.value=!0},async hide(){s.value=!1}}),(T,M)=>(openBlock(),createElementBlock(Fragment,null,[createCommentVNode(" 代码块编辑区 "),createVNode(_sfc_main$1j,{visible:s.value,"onUpdate:visible":M[1]||(M[1]=R=>s.value=R),width:r.value,"onUpdate:width":M[2]||(M[2]=R=>r.value=R),height:unref(u),"onUpdate:height":M[3]||(M[3]=R=>isRef(u)?u.value=R:null),title:o.content.name?"".concat(o.disabled?"查看":"编辑").concat(o.content.name):"新增代码",position:unref(D),"before-close":x},{body:withCtx(()=>[createVNode(unref(_sfc_main$1u),{class:"m-editor-code-block-editor",ref_key:"formBox",ref:S,"label-width":"80px","close-on-press-escape":!1,title:o.content.name,config:b.value,values:o.content,disabled:o.disabled,style:{height:"100%"},onChange:E,onSubmit:C,onError:y,onClosed:L},{left:withCtx(()=>[o.disabled?createCommentVNode("v-if",!0):(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,type:"primary",link:"",onClick:M[0]||(M[0]=R=>g.value=!0)},{default:withCtx(()=>[...M[6]||(M[6]=[createTextVNode("查看修改",-1)])]),_:1}))]),_:1},8,["title","config","values","disabled"])]),_:1},8,["visible","width","height","title","position"]),(openBlock(),createBlock(Teleport,{to:"body"},[createVNode(unref(_sfc_main$v$2),{title:"查看修改",modelValue:g.value,"onUpdate:modelValue":M[5]||(M[5]=R=>g.value=R),fullscreen:"","destroy-on-close":""},{footer:withCtx(()=>[createBaseVNode("span",_hoisted_4$5,[createVNode(unref(_sfc_main$F$1),{size:"small",onClick:M[4]||(M[4]=R=>g.value=!1)},{default:withCtx(()=>[...M[9]||(M[9]=[createTextVNode("取消",-1)])]),_:1}),createVNode(unref(_sfc_main$F$1),{size:"small",type:"primary",onClick:_},{default:withCtx(()=>[...M[10]||(M[10]=[createTextVNode("确定",-1)])]),_:1})])]),default:withCtx(()=>{var R,N;return[createBaseVNode("div",_hoisted_1$T,[createBaseVNode("div",_hoisted_2$k,[createVNode(unref(_sfc_main$4$4),{size:"small",type:"info"},{default:withCtx(()=>[...M[7]||(M[7]=[createTextVNode("修改前",-1)])]),_:1})]),createBaseVNode("div",_hoisted_3$7,[createVNode(unref(_sfc_main$4$4),{size:"small",type:"success"},{default:withCtx(()=>[...M[8]||(M[8]=[createTextVNode("修改后",-1)])]),_:1})])]),createVNode(_sfc_main$1q,{ref:"magicVsEditor",type:"diff",language:"json","disabled-full-screen":!0,initValues:o.content.content,modifiedValues:(N=(R=S.value)==null?void 0:R.form)==null?void 0:N.values.content,height:"".concat(unref(f).height-150,"px")},null,8,["initValues","modifiedValues","height"])]}),_:1},8,["modelValue"])]))],64))}}),_hoisted_1$S={class:"m-editor-data-source-methods"},_hoisted_2$j={class:"m-editor-data-source-methods-footer"},_sfc_main$1d=defineComponent({name:"MFieldsDataSourceMethods",__name:"DataSourceMethods",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,s=ref$1(),a=useTemplateRef("codeBlockEditor");let l=-1;const c=[{label:"名称",prop:"name"},{label:"描述",prop:"desc"},{label:"执行时机",prop:"timing"},{label:"参数",prop:"params",formatter:(g=[])=>g.map(f=>f.name).join(", ")},{label:"操作",fixed:"right",actions:[{text:"编辑",handler:(g,f)=>{let m=g.content||"({ params, dataSource, app }) => {\n // place your code here\n}";typeof m!="string"&&(m=m.toString()),s.value={...cloneDeep(g),content:m},l=f,nextTick(()=>{var _;(_=a.value)==null||_.show()})}},{text:"删除",buttonType:"danger",handler:async(g,f)=>{await tMagicMessageBox.confirm("确定删除".concat(g.name,"?"),"提示"),t.model[t.name].splice(f,1),r("change",t.model[t.name])}}]}],d=()=>{s.value={name:"",content:"({ params, dataSource, app, flowState }) => {\n // place your code here\n}",params:[]},l=-1,nextTick(()=>{var g;(g=a.value)==null||g.show()})},u=(g,f)=>{var m;if(g.content){const _=getEditorConfig("parseDSL");typeof g.content=="string"&&(g.content=_(g.content))}if(l>-1)r("change",g,{modifyKey:l,changeRecords:(f.changeRecords||[]).map(_=>({propPath:"".concat(t.prop,".").concat(l,".").concat(_.propPath),value:_.value}))});else{const _=t.model[t.name].length;r("change",g,{modifyKey:_,changeRecords:[{propPath:"".concat(t.prop,".").concat(_),value:g}]})}l=-1,s.value=void 0,(m=a.value)==null||m.hide()};return(g,f)=>(openBlock(),createElementBlock("div",_hoisted_1$S,[createVNode(unref(_sfc_main$1t),{data:o.model[o.name],columns:c,border:!0},null,8,["data"]),createBaseVNode("div",_hoisted_2$j,[createVNode(unref(_sfc_main$F$1),{size:"small",type:"primary",disabled:o.disabled,plain:"",onClick:d},{default:withCtx(()=>[...f[0]||(f[0]=[createTextVNode("添加",-1)])]),_:1},8,["disabled"])]),s.value?(openBlock(),createBlock(_sfc_main$1e,{key:0,ref:"codeBlockEditor",disabled:o.disabled,content:s.value,"is-data-source":!0,"data-source-type":o.model.type,onSubmit:u},null,8,["disabled","content","data-source-type"])):createCommentVNode("v-if",!0)]))}}),_hoisted_1$R={class:"m-fields-data-source-method-select"},_hoisted_2$i={class:"data-source-method-select-container"},_sfc_main$1c=defineComponent({name:"MFieldsDataSourceMethodSelect",__name:"DataSourceMethodSelect",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const{dataSourceService:t,uiService:r}=useServices(),s=inject("mForm"),a=inject("eventBus"),l=e,c=o,d=computed$1(()=>(r.get("sideBarItems")||[]).find(w=>w.$key===SideItemKey.DATA_SOURCE)),u=computed$1(()=>filterFunction(s,c.config.notEditable,c)),g=computed$1(()=>t.get("dataSources")),f=computed$1(()=>{const[w,E]=c.model[c.name],x=t.getDataSourceById(w);return!!(x!=null&&x.methods.find(L=>L.name===E))}),m=([w,E]=["",""])=>{var L,k,D,I;if(!w)return[];const x=(I=(D=(k=(L=g.value)==null?void 0:L.find(T=>T.id===w))==null?void 0:k.methods)==null?void 0:D.find(T=>T.name===E))==null?void 0:I.params;return x?x.map(T=>({text:T.name,...T})):[]},_=ref$1(m(c.model[c.name||"dataSourceMethod"])),v=computed$1(()=>{var w,E;return((E=(w=g.value)==null?void 0:w.filter(x=>{var L;return((L=x.methods)==null?void 0:L.length)||t.getFormMethod(x.type).length}))==null?void 0:E.map(x=>({label:x.title||x.id,value:x.id,children:[...(t==null?void 0:t.getFormMethod(x.type))||[],...(x.methods||[]).map(L=>({label:L.name,value:L.name}))]})))||[]}),b=computed$1(()=>({type:"cascader",options:v.value})),C=w=>{_.value=m(w);const E=[{propPath:c.prop,value:w}];E.push({propPath:c.prop.replace("".concat(c.name),"params"),value:_.value.length?createValues(s,_.value,{},c.model.params):{}}),l("change",w,{changeRecords:E})},y=(w,E)=>{var x;(x=E.changeRecords)==null||x.forEach(L=>{L.propPath="".concat(c.prop.replace("".concat(c.name),"")).concat(L.propPath)}),l("change",c.model[c.name],E)},S=()=>{const[w]=c.model[c.name];t.getDataSourceById(w)&&(a==null||a.emit("edit-data-source",w))};return(w,E)=>(openBlock(),createElementBlock("div",_hoisted_1$R,[createBaseVNode("div",_hoisted_2$i,[createVNode(unref(_sfc_main$q$1),{class:"select",config:b.value,model:o.model,name:o.name,size:o.size,disabled:o.disabled,prop:o.prop,onChange:C},null,8,["config","model","name","size","disabled","prop"]),o.model[o.name]&&f.value&&d.value?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,content:u.value?"查看":"编辑"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{class:"m-fields-select-action-button",size:o.size,onClick:S},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:u.value?unref(view_default):unref(edit_default)},null,8,["icon"])]),_:1},8,["size"])]),_:1},8,["content"])):createCommentVNode("v-if",!0)]),_.value.length?(openBlock(),createBlock(_sfc_main$1m,{name:"params",key:o.model[o.name],model:o.model,size:o.size,disabled:o.disabled,"params-config":_.value,onChange:y},null,8,["model","size","disabled","params-config"])):createCommentVNode("v-if",!0)]))}}),_hoisted_1$Q={class:"m-editor-data-source-fields"},_hoisted_2$h={class:"m-editor-data-source-fields-footer"},_sfc_main$1b=defineComponent({name:"MFieldsDataSourceMocks",__name:"DataSourceMocks",props:mergeModels({config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},{width:{default:670},widthModifiers:{},visible:{type:Boolean,default:!1},visibleModifiers:{}}),emits:mergeModels(["change"],["update:width","update:visible"]),setup(o,{emit:e}){const t=o,r=e,{uiService:s}=useServices(),a=useModel(o,"width"),l=ref$1(""),c=ref$1({}),d=[{name:"index",type:"hidden",filter:"number",defaultValue:-1},{name:"title",text:"名称",rules:[{required:!0,message:"请输入字段名称"},{required:!0,message:"请输入名称"}]},{name:"description",text:"描述"},{name:"enable",text:"启用",type:"switch"},{name:"useInEditor",text:"编辑器中使用",type:"switch"},{name:"data",text:"mock数据",type:"vs-code",language:"json",options:inject("codeOptions",{}),defaultValue:"{}",height:"400px",onChange:(S,w)=>typeof w!="string"?w:JSON.parse(w),rules:[{validator:({value:S,callback:w})=>{if(typeof S!="string")return w();try{JSON.parse(S),w()}catch(E){w(E)}}}]}],u=[{type:"expand",component:_sfc_main$1q,props:S=>({initValues:S.data,language:"json",height:"150px",options:{readOnly:!0}})},{label:"名称",prop:"title"},{label:"描述",prop:"description"},{label:"是否启用",prop:"enable",type:"component",component:_sfc_main$8$3,props:S=>({modelValue:S.enable,activeValue:!0,inactiveValue:!1}),listeners:(S,w)=>({"update:modelValue":E=>{m(S,"enable",E,w)}})},{label:"编辑器中使用",prop:"useInEditor",type:"component",component:_sfc_main$8$3,props:S=>({modelValue:S.useInEditor,activeValue:!0,inactiveValue:!1}),listeners:(S,w)=>({"update:modelValue":E=>{m(S,"useInEditor",E,w)}})},{label:"操作",fixed:"right",actions:[{text:"编辑",handler:(S,w)=>{c.value={...S,index:w},l.value="编辑".concat(S.title),y(),_.value=!0}},{text:"删除",buttonType:"danger",handler:async(S,w)=>{await tMagicMessageBox.confirm("确定删除".concat(S.title,"?"),"提示"),t.model[t.name].splice(w,1),r("change",t.model[t.name])}}]}],g=()=>{const S=t.model[t.name].length===0;c.value={data:getDefaultValueFromFields(t.model.fields||[]),useInEditor:S,enable:S},l.value="新增Mock",y(),_.value=!0},f=({index:S,...w})=>{S>-1?t.model[t.name][S]=w:t.model[t.name].push(w),_.value=!1,r("change",t.model[t.name])},m=(S,w,E,x)=>{E&&t.model[t.name].forEach(L=>{L[w]=!1}),f({...S,[w]:E,index:x})},_=useModel(o,"visible"),{height:v}=useEditorContentHeight(),b=inject("parentFloating",ref$1(null)),{boxPosition:C,calcBoxPosition:y}=useNextFloatBoxPosition(s,b);return(S,w)=>(openBlock(),createElementBlock("div",_hoisted_1$Q,[createVNode(unref(_sfc_main$1t),{data:o.model[o.name],columns:u},null,8,["data"]),createBaseVNode("div",_hoisted_2$h,[createVNode(unref(_sfc_main$F$1),{size:"small",type:"primary",disabled:o.disabled,plain:"",onClick:w[0]||(w[0]=E=>g())},{default:withCtx(()=>[...w[4]||(w[4]=[createTextVNode("添加",-1)])]),_:1},8,["disabled"])]),createVNode(_sfc_main$1j,{visible:_.value,"onUpdate:visible":w[1]||(w[1]=E=>_.value=E),width:a.value,"onUpdate:width":w[2]||(w[2]=E=>a.value=E),height:unref(v),"onUpdate:height":w[3]||(w[3]=E=>isRef(v)?v.value=E:null),title:l.value,position:unref(C)},{body:withCtx(()=>[createVNode(unref(_sfc_main$1u),{"label-width":"120px",config:d,values:c.value,parentValues:o.model[o.name],disabled:o.disabled,onSubmit:f},null,8,["values","parentValues","disabled"])]),_:1},8,["visible","width","height","title","position"])]))}}),_hoisted_1$P={class:"m-fields-data-source-select"},_sfc_main$1a=defineComponent({name:"MFieldsDataSourceSelect",__name:"DataSourceSelect",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=e,r=o,s=inject("mForm"),{dataSourceService:a,uiService:l}=useServices(),c=inject("eventBus"),d=computed$1(()=>a.get("dataSources")),u=computed$1(()=>filterFunction(s,r.config.notEditable,r)),g=computed$1(()=>l.get("sideBarItems").find(v=>v.$key===SideItemKey.DATA_SOURCE)),f=computed$1(()=>{const{type:v,dataSourceType:b,value:C,...y}=r.config,S=r.config.value==="id";return{...y,type:"select",valueKey:"dataSourceId",options:d.value.filter(w=>!r.config.dataSourceType||w.type===r.config.dataSourceType).map(w=>({value:S?w.id:{isBindDataSource:!0,dataSourceType:w.type,dataSourceId:w.id},text:w.title||w.id}))}}),m=v=>{t("change",v)},_=()=>{const v=r.model[r.name];if(!v)return;const b=typeof v=="string"?v:v.dataSourceId;a.getDataSourceById(b)&&(c==null||c.emit("edit-data-source",b))};return(v,b)=>(openBlock(),createElementBlock("div",_hoisted_1$P,[createVNode(unref(_sfc_main$a$1),{model:o.model,name:o.name,size:o.size,prop:o.prop,disabled:o.disabled,config:f.value,"last-values":o.lastValues,onChange:m},null,8,["model","name","size","prop","disabled","config","last-values"]),o.model[o.name]&&g.value?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,content:u.value?"查看":"编辑"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{class:"m-fields-select-action-button",size:o.size,onClick:_},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:u.value?unref(view_default):unref(edit_default)},null,8,["icon"])]),_:1},8,["size"])]),_:1},8,["content"])):createCommentVNode("v-if",!0)]))}}),_sfc_main$19=defineComponent({name:"m-fields-display-conds",__name:"DisplayConds",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=e,r=o,{dataSourceService:s}=useServices(),a=inject("mForm"),l=computed$1(()=>filterFunction(a,r.config.parentFields,r)||[]),c=computed$1(()=>({type:"groupList",name:r.name,titlePrefix:r.config.titlePrefix,expandAll:!0,items:[{type:"table",name:"cond",operateColWidth:80,enableToggleMode:!1,items:[l.value.length?{type:"cascader",options:()=>{const[u,...g]=l.value,f=s.getDataSourceById(u);if(!f)return[];let m=f.fields||[];return g.forEach(_=>{const v=m.find(b=>b.name===_);m=(v==null?void 0:v.fields)||[]}),getCascaderOptionsFromFields(m,["string","number","boolean","any"])},name:"field",value:"key",label:"字段",checkStrictly:!1}:{type:"data-source-field-select",name:"field",value:"key",label:"字段",checkStrictly:!1,dataSourceFieldType:["string","number","boolean","any"]},{type:"cond-op-select",parentFields:l.value,label:"条件",width:140,name:"op"},{label:"值",width:160,items:[{name:"value",type:(u,{model:g})=>{const[f,...m]=[...l.value,...g.field],_=s.getDataSourceById(f);let v=(_==null?void 0:_.fields)||[],b="";return(m||[]).forEach(C=>{const y=v.find(S=>S.name===C);v=(y==null?void 0:y.fields)||[],b=(y==null?void 0:y.type)||""}),b==="number"?"number":b==="boolean"?"select":"text"},options:[{text:"true",value:!0},{text:"false",value:!1}],display:(u,{model:g})=>!["between","not_between"].includes(g.op)},{name:"range",type:"number-range",display:(u,{model:g})=>["between","not_between"].includes(g.op)}]}]}]})),d=(u,g)=>{Array.isArray(r.model[r.name])||(r.model[r.name]=[]),t("change",u,g)};return(u,g)=>(openBlock(),createBlock(unref(_sfc_main$w$1),{style:{width:"100%"},config:c.value,name:o.name,disabled:o.disabled,model:o.model,"last-values":o.lastValues,prop:o.prop,size:o.size,onChange:d},null,8,["config","name","disabled","model","last-values","prop","size"]))}}),_hoisted_1$O={class:"m-fields-event-select"},_hoisted_2$g={key:1,class:"fullWidth"},_sfc_main$18=defineComponent({name:"MFieldsEventSelect",__name:"EventSelect",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,{editorService:s,dataSourceService:a,eventsService:l,codeBlockService:c,propsService:d}=useServices(),u=computed$1(()=>({...{name:"name",text:"事件",type:(k,{formValue:D})=>t.config.src!=="component"||D.type==="page-fragment-container"&&D.pageFragmentId?"cascader":"select",labelWidth:"40px",checkStrictly:()=>t.config.src!=="component",valueSeparator:".",options:(k,{formValue:D})=>{var T,M;let I=[];if(t.config.src==="component"){if(I=l.getEvent(D.type),D.type==="page-fragment-container"&&D.pageFragmentId){const R=(M=(T=s.get("root"))==null?void 0:T.items)==null?void 0:M.find(N=>N.id===D.pageFragmentId);if(R)return I=[{label:R.name||"页面片容器",value:R.id,children:I}],R.items.forEach(N=>{traverseNode(N,A=>{const O=A.type&&l.getEvent(A.type)||[];I.push({label:"".concat(A.name,"_").concat(A.id),value:"".concat(A.id),children:O})})}),I}return I.map(R=>({text:R.label,value:R.value}))}if(t.config.src==="datasource"){I=a.getFormEvent(D.type);const R=a.getDataSourceById(D.id),N=(R==null?void 0:R.fields)||[];return N.length>0?[...I,{label:"数据变化",value:DATA_SOURCE_FIELDS_CHANGE_EVENT_PREFIX,children:getCascaderOptionsFromFields(N)}]:I}}},...t.config.eventNameConfig})),g=computed$1(()=>({...{name:"actionType",text:"联动类型",type:"select",defaultValue:ActionType.COMP,options:()=>{const k=[{text:"组件",label:"组件",value:ActionType.COMP}];return d.getDisabledCodeBlock()||k.push({text:"代码",label:"代码",disabled:!Object.keys(c.getCodeDsl()||{}).length,value:ActionType.CODE}),d.getDisabledDataSource()||k.push({text:"数据源",label:"数据源",value:ActionType.DATA_SOURCE}),k}},...t.config.actionTypeConfig})),f=computed$1(()=>({...{name:"to",text:"联动组件",type:"ui-select",display:(k,{model:D})=>D.actionType===ActionType.COMP,onChange:(k,D,{setModel:I})=>{I("method","")}},...t.config.targetCompConfig})),m=computed$1(()=>({...{name:"method",text:"动作",type:(k,{model:D})=>{const I=s.getNodeById(D.to);return I&&I.type==="page-fragment-container"&&I.pageFragmentId?"cascader":"select"},checkStrictly:()=>t.config.src!=="component",display:(k,{model:D})=>D.actionType===ActionType.COMP,options:(k,{model:D})=>{var M,R;const I=s.getNodeById(D.to);if(!(I!=null&&I.type))return[];let T=[];if(T=l.getMethod(I.type,D.to),I.type==="page-fragment-container"&&I.pageFragmentId){const N=(R=(M=s.get("root"))==null?void 0:M.items)==null?void 0:R.find(A=>A.id===I.pageFragmentId);if(N)return T=[],N.items.forEach(A=>{traverseNode(A,O=>{const P=O.type&&l.getMethod(O.type,O.id)||[];P.length&&T.push({label:"".concat(O.name,"_").concat(O.id),value:"".concat(O.id),children:P})})}),T}return T.map(N=>({text:N.label,value:N.value}))}},...t.config.compActionConfig})),_=computed$1(()=>({...{type:"code-select-col",text:"代码块",name:"codeId",notEditable:()=>!c.getEditStatus(),display:(k,{model:D})=>D.actionType===ActionType.CODE},...t.config.codeActionConfig})),v=computed$1(()=>({...{type:"data-source-method-select",text:"数据源方法",name:"dataSourceMethod",notEditable:()=>!a.get("editable"),display:(k,{model:D})=>D.actionType===ActionType.DATA_SOURCE},...t.config.dataSourceActionConfig})),b=computed$1(()=>({type:"table",name:"events",items:[{name:"name",label:"事件名",type:u.value.type,options:(L,{formValue:k})=>l.getEvent(k.type).map(D=>({text:D.label,value:D.value}))},{name:"to",label:"联动组件",type:"ui-select"},{name:"method",label:"动作",type:m.value.type,options:(L,{model:k})=>{const D=s.getNodeById(k.to);return D!=null&&D.type?l.getMethod(D.type,k.to).map(I=>({text:I.label,value:I.value})):[]}}]})),C=computed$1(()=>({type:"panel",items:[{type:"group-list",name:"actions",expandAll:!0,enableToggleMode:!1,titlePrefix:"动作",items:[g.value,f.value,m.value,_.value,v.value]}]})),y=computed$1(()=>t.model[t.name].length===0?!1:!has(t.model[t.name][0],"actions")),S=()=>{const L={name:"",actions:[]};t.model[t.name]||(t.model[t.name]=[]),r("change",L,{modifyKey:t.model[t.name].length})},w=L=>{t.name&&(t.model[t.name].splice(L,1),r("change",t.model[t.name]))},E=(L,k)=>{r("change",t.model[t.name],k)},x=(L,k)=>r("change",t.model[t.name],k);return(L,k)=>{const D=resolveComponent("m-form-table");return openBlock(),createElementBlock("div",_hoisted_1$O,[y.value?(openBlock(),createBlock(D,{key:0,name:"events",size:o.size,disabled:o.disabled,model:o.model,config:b.value,onChange:x},null,8,["size","disabled","model","config"])):(openBlock(),createElementBlock("div",_hoisted_2$g,[createVNode(unref(_sfc_main$F$1),{class:"create-button",type:"primary",size:o.size,disabled:o.disabled,onClick:k[0]||(k[0]=I=>S())},{default:withCtx(()=>[...k[1]||(k[1]=[createTextVNode("添加事件",-1)])]),_:1},8,["size","disabled"]),(openBlock(!0),createElementBlock(Fragment,null,renderList(o.model[o.name],(I,T)=>(openBlock(),createBlock(unref(_sfc_main$v$1),{key:T,disabled:o.disabled,size:o.size,prop:"".concat(o.prop,".").concat(T),config:C.value,model:I,"label-width":o.config.labelWidth||"100px",onChange:x},{header:withCtx(()=>[createVNode(unref(_sfc_main$A$1),{class:"fullWidth",config:u.value,model:I,disabled:o.disabled,size:o.size,prop:"".concat(o.prop,".").concat(T),onChange:E},null,8,["config","model","disabled","size","prop"]),createVNode(unref(_sfc_main$F$1),{style:{color:"#f56c6c"},link:"",icon:unref(delete_default),disabled:o.disabled,size:o.size,onClick:M=>w(T)},null,8,["icon","disabled","size","onClick"])]),_:2},1032,["disabled","size","prop","config","model","label-width"]))),128))]))])}}}),_hoisted_1$N={viewBox:"0 0 32 32",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},_sfc_main$17=defineComponent({name:"MEditorCodeIcon",__name:"CodeIcon",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",_hoisted_1$N,[...t[0]||(t[0]=[createStaticVNode('<defs><rect id="path-1" x="0" y="0" width="32" height="32"></rect></defs><g id="组件规范" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g id="03图标" transform="translate(-561.000000, -2356.000000)"><g id="icon/line/Universal/code" transform="translate(561.000000, 2356.000000)"><g id="路径"><mask id="mask-2" fill="white"><use xlink:href="#path-1"></use></mask><use id="蒙版" fill="#D8D8D8" opacity="0" xlink:href="#path-1"></use><path d="M21.9284587,7.9482233 L29.8079004,15.827665 C29.9055315,15.9252961 29.9055315,16.0835874 29.8079004,16.1812184 L21.9284587,24.0606602 C21.8308276,24.1582912 21.6725364,24.1582912 21.5749053,24.0606602 L20.3374684,22.8232233 C20.2419143,22.7276698 20.2398813,22.5740096 20.331369,22.4759832 L20.3374687,22.4696702 L26.8027181,16.0044417 L20.3374687,9.53921328 C20.2398372,9.44158265 20.2398369,9.2832914 20.3374679,9.18566017 L21.5749053,7.9482233 C21.6725364,7.85059223 21.8308276,7.85059223 21.9284587,7.9482233 Z M10.3999684,7.9482233 L11.6374053,9.18566017 C11.7329594,9.28121371 11.7349925,9.43487387 11.6435048,9.53290029 L11.637405,9.53921328 L5.17215562,16.0044417 L11.637405,22.4696702 C11.7329593,22.5652236 11.7349926,22.7188837 11.643505,22.8169103 L11.6374053,22.8232233 L10.3999684,24.0606602 C10.3023374,24.1582912 10.1440461,24.1582912 10.046415,24.0606602 L2.1669733,16.1812184 C2.06934223,16.0835874 2.06934223,15.9252961 2.1669733,15.827665 L10.046415,7.9482233 C10.1440461,7.85059223 10.3023374,7.85059223 10.3999684,7.9482233 Z M17.2612532,9.29310422 L18.9262468,9.83189578 C19.0576112,9.87440526 19.1296423,10.0153579 19.0871328,10.1467222 L15.0848232,22.514807 C15.0423138,22.6461714 14.9013612,22.7182025 14.7699968,22.675693 L13.1050032,22.1369014 C12.9736388,22.0943919 12.9016077,21.9534393 12.9441172,21.822075 L16.9464268,9.45399022 C16.9889362,9.32262585 17.1298888,9.25059474 17.2612532,9.29310422 Z" id="形状" fill="#1D1F24" mask="url(#mask-2)"></path></g></g><g id="icon切图" transform="translate(226.000000, 1782.000000)"></g></g></g>',2)])]))}}),_hoisted_1$M={class:"m-fields-key-value"},_hoisted_2$f={key:0},_sfc_main$16=defineComponent({name:"MFieldsKeyValue",__name:"KeyValue",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,s=ref$1([]),a=ref$1(!1);watchEffect(()=>{if(typeof t.model[t.name]=="function")a.value=!0;else{const m=Object.entries(t.model[t.name]||{});for(const[,_]of m)if(typeof _!="string"){a.value=!0;break}s.value=m}});const l=()=>{const m={};return s.value.forEach(([_,v])=>{_&&(m[_]=v)}),m},c=()=>{r("change",l())},d=()=>{r("change",l())},u=()=>{s.value.push(["",""])},g=m=>{s.value.splice(m,1),r("change",l())},f=m=>{r("change",m)};return(m,_)=>(openBlock(),createElementBlock("div",_hoisted_1$M,[a.value?createCommentVNode("v-if",!0):(openBlock(),createElementBlock("div",_hoisted_2$f,[(openBlock(!0),createElementBlock(Fragment,null,renderList(s.value,(v,b)=>(openBlock(),createElementBlock("div",{class:"m-fields-key-value-item",key:b},[createVNode(unref(_sfc_main$m$2),{placeholder:"key",modelValue:s.value[b][0],"onUpdate:modelValue":C=>s.value[b][0]=C,disabled:o.disabled,size:o.size,onChange:c},null,8,["modelValue","onUpdate:modelValue","disabled","size"]),_[1]||(_[1]=createBaseVNode("span",{class:"m-fields-key-value-delimiter"},":",-1)),createVNode(unref(_sfc_main$m$2),{placeholder:"value",modelValue:s.value[b][1],"onUpdate:modelValue":C=>s.value[b][1]=C,disabled:o.disabled,size:o.size,onChange:d},null,8,["modelValue","onUpdate:modelValue","disabled","size"]),createVNode(unref(_sfc_main$F$1),{class:"m-fields-key-value-delete",type:"danger",size:o.size,disabled:o.disabled,circle:"",plain:"",icon:unref(delete_default),onClick:C=>g(b)},null,8,["size","disabled","icon","onClick"])]))),128)),createVNode(unref(_sfc_main$F$1),{type:"primary",size:o.size,disabled:o.disabled,plain:"",icon:unref(plus_default),onClick:u},{default:withCtx(()=>[..._[2]||(_[2]=[createTextVNode("添加",-1)])]),_:1},8,["size","disabled","icon"])])),o.config.advanced&&a.value?(openBlock(),createBlock(_sfc_main$1q,{key:1,height:"200px","init-values":o.model[o.name],language:"javascript",options:{readOnly:o.disabled},parse:!0,onSave:f},null,8,["init-values","options"])):createCommentVNode("v-if",!0),o.config.advanced?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:2,size:"default",disabled:o.disabled,link:"",icon:_sfc_main$17,onClick:_[0]||(_[0]=v=>a.value=!a.value)},null,8,["disabled"])):createCommentVNode("v-if",!0)]))}}),_hoisted_1$L={class:"m-fields-page-fragment-select"},_hoisted_2$e={class:"page-fragment-select-container"},_sfc_main$15=defineComponent({name:"MFieldsPageFragmentSelect",__name:"PageFragmentSelect",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean,default:!1},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const{editorService:t}=useServices(),r=e,s=computed$1(()=>{var d;return(d=t.get("root"))==null?void 0:d.items.filter(u=>u.type===NodeType.PAGE_FRAGMENT)}),a={type:"select",options:()=>s.value?s.value.map(d=>{var u,g;return{text:"".concat(((u=d.devconfig)==null?void 0:u.tabName)||d.title||d.name,"").concat(d.id,""),label:"".concat(((g=d.devconfig)==null?void 0:g.tabName)||d.title||d.name,"").concat(d.id,""),value:d.id}}):[]},l=d=>{r("change",d)},c=d=>{t.select(d)};return(d,u)=>(openBlock(),createElementBlock("div",_hoisted_1$L,[createBaseVNode("div",_hoisted_2$e,[createCommentVNode(" 页面片下拉框 "),createVNode(unref(_sfc_main$a$1),{class:"select",config:a,model:o.model,name:o.name,size:o.size,prop:o.prop,disabled:o.disabled,onChange:l},null,8,["model","name","size","prop","disabled"]),createCommentVNode(" 编辑按钮 "),o.model[o.name]?(openBlock(),createBlock(_sfc_main$1r,{key:0,class:"icon",icon:unref(edit_default),onClick:u[0]||(u[0]=g=>c(o.model[o.name]))},null,8,["icon"])):createCommentVNode("v-if",!0)])]))}}),_hoisted_1$K={class:"background-position-container"},_hoisted_2$d={class:"presets-value-list"},_hoisted_3$6={class:"custom-value"},_sfc_main$14=defineComponent({__name:"BackgroundPosition",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=e,r=[{value:"left",text:"左"},{value:"center",text:"中"},{value:"right",text:"右"}],a=[{value:"top",text:"上"},{value:"center",text:"中"},{value:"bottom",text:"下"}].map(c=>r.map(d=>({value:"".concat(d.value," ").concat(c.value),tips:"".concat(d.text).concat(c.text),class:"".concat(d.value,"-").concat(c.value)}))).flat(),l=c=>{t("change",c)};return(c,d)=>(openBlock(),createElementBlock("div",_hoisted_1$K,[createBaseVNode("div",_hoisted_2$d,[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(a),(u,g)=>(openBlock(),createBlock(unref(_sfc_main$F$1),{key:g,link:"",class:normalizeClass(o.model[o.name]===u.value&&"btn-active"),disabled:o.disabled,onClick:f=>l(u.value)},{default:withCtx(()=>[createBaseVNode("div",{class:normalizeClass(["position-icon",u.class,o.model[o.name]===u.value&&"active"])},null,2)]),_:2},1032,["class","disabled","onClick"]))),128))]),createBaseVNode("div",_hoisted_3$6,[createVNode(unref(_sfc_main$m$2),{modelValue:o.model[o.name],"onUpdate:modelValue":d[0]||(d[0]=u=>o.model[o.name]=u),placeholder:"自定义背景位置",clearable:"",size:o.size,disabled:o.disabled,onChange:l},null,8,["modelValue","size","disabled"])])]))}}),_export_sfc$1=(o,e)=>{const t=o.__vccOpts||o;for(const[r,s]of e)t[r]=s;return t},_sfc_main$13={},_hoisted_1$J={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$k(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$J,[...e[0]||(e[0]=[createStaticVNode('<path d="M884.736 102.4l-147.456 0c-20.48 0-36.864 16.384-36.864 36.864l0 147.456C696.32 311.296 712.704 327.68 733.184 327.68l147.456 0c20.48 0 36.864-16.384 36.864-36.864L917.504 139.264C921.6 118.784 905.216 102.4 884.736 102.4zM884.736 290.816l-147.456 0L737.28 139.264l147.456 0L884.736 290.816z"></path><path d="M884.736 696.32l-147.456 0c-20.48 0-36.864 16.384-36.864 36.864l0 147.456c0 20.48 16.384 36.864 36.864 36.864l147.456 0c20.48 0 36.864-16.384 36.864-36.864l0-147.456C921.6 712.704 905.216 696.32 884.736 696.32zM884.736 884.736l-147.456 0 0-147.456 147.456 0L884.736 884.736z"></path><path d="M884.736 401.408l-147.456 0c-20.48 0-36.864 16.384-36.864 36.864l0 147.456c0 20.48 16.384 36.864 36.864 36.864l147.456 0c20.48 0 36.864-16.384 36.864-36.864l0-147.456C921.6 417.792 905.216 401.408 884.736 401.408zM884.736 585.728l-147.456 0 0-147.456 147.456 0L884.736 585.728z"></path><path d="M585.728 401.408l-147.456 0c-20.48 0-36.864 16.384-36.864 36.864l0 147.456c0 20.48 16.384 36.864 36.864 36.864l147.456 0c20.48 0 36.864-16.384 36.864-36.864l0-147.456C622.592 417.792 606.208 401.408 585.728 401.408zM585.728 585.728l-147.456 0 0-147.456 147.456 0L585.728 585.728z"></path><path d="M585.728 102.4l-147.456 0c-20.48 0-36.864 16.384-36.864 36.864l0 147.456c0 20.48 16.384 36.864 36.864 36.864l147.456 0c20.48 0 36.864-16.384 36.864-36.864L622.592 139.264C622.592 118.784 606.208 102.4 585.728 102.4zM585.728 290.816l-147.456 0L438.272 139.264l147.456 0L585.728 290.816z"></path><path d="M585.728 696.32l-147.456 0c-20.48 0-36.864 16.384-36.864 36.864l0 147.456c0 20.48 16.384 36.864 36.864 36.864l147.456 0c20.48 0 36.864-16.384 36.864-36.864l0-147.456C622.592 712.704 606.208 696.32 585.728 696.32zM585.728 884.736l-147.456 0 0-147.456 147.456 0L585.728 884.736z"></path><path d="M290.816 696.32 139.264 696.32c-20.48 0-36.864 16.384-36.864 36.864l0 147.456c0 20.48 16.384 36.864 36.864 36.864l147.456 0c20.48 0 36.864-16.384 36.864-36.864l0-147.456C327.68 712.704 311.296 696.32 290.816 696.32zM290.816 884.736 139.264 884.736l0-147.456 147.456 0L286.72 884.736z"></path><path d="M290.816 401.408 139.264 401.408c-20.48 0-36.864 16.384-36.864 36.864l0 147.456c0 20.48 16.384 36.864 36.864 36.864l147.456 0c20.48 0 36.864-16.384 36.864-36.864l0-147.456C327.68 417.792 311.296 401.408 290.816 401.408zM290.816 585.728 139.264 585.728l0-147.456 147.456 0L286.72 585.728z"></path><path d="M290.816 102.4 139.264 102.4c-20.48 0-36.864 16.384-36.864 36.864l0 147.456C102.4 311.296 118.784 327.68 139.264 327.68l147.456 0C311.296 327.68 327.68 311.296 327.68 290.816L327.68 139.264C327.68 118.784 311.296 102.4 290.816 102.4zM290.816 290.816 139.264 290.816 139.264 139.264l147.456 0L286.72 290.816z"></path>',9)])])}const BackgroundRepeat=_export_sfc$1(_sfc_main$13,[["render",_sfc_render$k]]),_sfc_main$12={},_hoisted_1$I={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$j(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$I,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M796.444444 170.666667h-227.555555v682.666666h227.555555V170.666667z m-56.888888 625.777777h-113.777778V227.555556h113.777778v568.888888zM455.111111 170.666667H227.555556v682.666666h227.555555V170.666667zM398.222222 796.444444H284.444444V227.555556h113.777778v568.888888zM910.222222 56.888889h56.888889v910.222222h-56.888889zM56.888889 56.888889h56.888889v910.222222H56.888889z",fill:"#333333"},null,-1)])])}const BackgroundRepeatX=_export_sfc$1(_sfc_main$12,[["render",_sfc_render$j]]),_sfc_main$11={},_hoisted_1$H={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$i(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$H,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M170.666667 227.555556v227.555555h682.666666V227.555556H170.666667z m625.777777 56.888888v113.777778H227.555556V284.444444h568.888888zM170.666667 568.888889v227.555555h682.666666v-227.555555H170.666667z m625.777777 56.888889v113.777778H227.555556v-113.777778h568.888888zM56.888889 56.888889h910.222222v56.888889H56.888889zM56.888889 910.222222h910.222222v56.888889H56.888889z",fill:"#333333"},null,-1)])])}const BackgroundRepeatY=_export_sfc$1(_sfc_main$11,[["render",_sfc_render$i]]),_sfc_main$10={},_hoisted_1$G={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$h(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$G,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M912.526651 867.741144 555.540144 510.712681l356.986507-357.000833c11.171434-11.18576 11.171434-29.257348 0-40.443108-11.20111-11.18576-29.272697-11.18576-40.444131 0L515.096013 470.267527 158.096203 113.267716c-11.187807-11.159154-29.258371-11.159154-40.444131 0-11.186783 11.186783-11.186783 29.286 0 40.47176L474.623229 510.712681 117.623419 867.741144c-11.159154 11.172457-11.159154 29.216415 0 40.443108 11.18576 11.17348 29.284977 11.17348 40.47176 0l357.000833-357.027439 356.985484 357.027439c11.171434 11.17348 29.243021 11.17348 40.444131 0C923.698085 896.957559 923.725714 878.913601 912.526651 867.741144z",fill:"#5D5D5D"},null,-1)])])}const BackgroundNoRepeat=_export_sfc$1(_sfc_main$10,[["render",_sfc_render$h]]),_sfc_main$$=defineComponent({__name:"Background",props:{values:{},disabled:{type:Boolean},size:{}},emits:["change"],setup(o,{emit:e}){const t=e,r={items:[{name:"backgroundColor",text:"背景色",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"colorPicker"}},{name:"backgroundImage",text:"背景图",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"img-upload"}},{name:"backgroundSize",text:"背景尺寸",type:"radioGroup",childType:"button",labelWidth:"68px",options:[{value:"auto",text:"默认",tooltip:"默认 auto"},{value:"contain",text:"等比填充",tooltip:"等比填充 contain"},{value:"cover",text:"等比覆盖",tooltip:"等比覆盖 cover"}]},{name:"backgroundRepeat",text:"重复显示",type:"radioGroup",childType:"button",labelWidth:"68px",options:[{value:"repeat",icon:markRaw(BackgroundRepeat),tooltip:"垂直和水平方向重复 repeat"},{value:"repeat-x",icon:markRaw(BackgroundRepeatX),tooltip:"水平方向重复 repeat-x"},{value:"repeat-y",icon:markRaw(BackgroundRepeatY),tooltip:"垂直方向重复 repeat-y"},{value:"no-repeat",icon:markRaw(BackgroundNoRepeat),tooltip:"不重复 no-repeat"}]},{name:"backgroundPosition",text:"背景定位",type:"component",component:_sfc_main$14,labelWidth:"68px"}]},s=(a,l)=>{t("change",a,l)};return(a,l)=>(openBlock(),createBlock(unref(_sfc_main$A$1),{config:r,model:o.values,size:o.size,disabled:o.disabled,onChange:s},null,8,["model","size","disabled"]))}}),_sfc_main$_={},_hoisted_1$F={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$g(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$F,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M128 810.666667h768v85.333333H128z m0-170.666667h512v85.333333H128z m0-170.666667h768v85.333334H128z m0-341.333333h768v85.333333H128z m0 170.666667h512v85.333333H128z"},null,-1)])])}const AlignLeft=_export_sfc$1(_sfc_main$_,[["render",_sfc_render$g]]),_sfc_main$Z={},_hoisted_1$E={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$f(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$E,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M128 810.666667h768v85.333333H128z m128-170.666667h512v85.333333H256z m-128-170.666667h768v85.333334H128z m0-341.333333h768v85.333333H128z m128 170.666667h512v85.333333H256z"},null,-1)])])}const AlignCenter=_export_sfc$1(_sfc_main$Z,[["render",_sfc_render$f]]),_sfc_main$Y={},_hoisted_1$D={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$e(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$D,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M128 128h768v85.333333H128z m0 682.666667h768v85.333333H128z m213.333333-170.666667h554.666667v85.333333H341.333333z m-213.333333-170.666667h768v85.333334H128z m213.333333-170.666666h554.666667v85.333333H341.333333z"},null,-1)])])}const AlignRight=_export_sfc$1(_sfc_main$Y,[["render",_sfc_render$e]]),_sfc_main$X=defineComponent({__name:"Font",props:{values:{},disabled:{type:Boolean},size:{}},emits:["change"],setup(o,{emit:e}){const t=e,r={items:[{type:"row",items:[{labelWidth:"68px",name:"fontSize",text:"字号",type:"data-source-field-select",fieldConfig:{type:"text"}},{labelWidth:"68px",name:"lineHeight",text:"行高",type:"data-source-field-select",fieldConfig:{type:"text"}}]},{name:"fontWeight",text:"字重",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"select",options:["normal","bold"].concat(Array(7).fill(1).map((a,l)=>"".concat(l+1,"00"))).map(a=>({value:a,text:a}))}},{labelWidth:"68px",name:"color",text:"颜色",type:"data-source-field-select",fieldConfig:{type:"colorPicker"}},{name:"textAlign",text:"对齐",type:"radioGroup",childType:"button",labelWidth:"68px",options:[{value:"left",icon:markRaw(AlignLeft),tooltip:"左对齐 row"},{value:"center",icon:markRaw(AlignCenter),tooltip:"居中对齐 center"},{value:"right",icon:markRaw(AlignRight),tooltip:"右对齐 right"}]}]},s=(a,l)=>{t("change",a,l)};return(a,l)=>(openBlock(),createBlock(unref(_sfc_main$A$1),{config:r,model:o.values,size:o.size,disabled:o.disabled,onChange:s},null,8,["model","size","disabled"]))}}),_hoisted_1$C={class:"layout-box-container"},_hoisted_2$c={key:0,class:"help-txt"},_hoisted_3$5={class:"next-input"},_hoisted_4$4=["model-value","title","disabled","onChange"],_sfc_main$W=defineComponent({__name:"Box",props:{disabled:{type:Boolean},size:{},model:{}},emits:["change"],setup(o,{emit:e}){const t=[{name:"marginTop",class:"outer-top-border"},{name:"marginRight",class:"outer-right-border"},{name:"marginBottom",text:"MARGIN",class:"outer-bottom-border"},{name:"marginLeft",class:"outer-left-border"},{name:"paddingTop",class:"inner-top-border"},{name:"paddingRight",class:"inner-right-border"},{name:"paddingBottom",text:"PADDING",class:"inner-bottom-border"},{name:"paddingLeft",class:"inner-left-border"}],r=e,s=(a,l)=>{r("change",a.target.value,{modifyKey:l})};return(a,l)=>(openBlock(),createElementBlock("div",_hoisted_1$C,[(openBlock(),createElementBlock(Fragment,null,renderList(t,(c,d)=>createBaseVNode("div",{key:d,class:normalizeClass(c.class)},[c.text?(openBlock(),createElementBlock("span",_hoisted_2$c,toDisplayString(c.text),1)):createCommentVNode("v-if",!0),createBaseVNode("span",_hoisted_3$5,[createBaseVNode("input",{"model-value":o.model[c.name],placeholder:"0",title:o.model[c.name],disabled:o.disabled,onChange:u=>s(u,c.name)},null,40,_hoisted_4$4)])],2)),64))]))}}),_sfc_main$V={},_hoisted_1$B={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$d(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$B,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M960 128a64 64 0 0 1 64 64v640a64 64 0 0 1-64 64H64a64 64 0 0 1-64-64V192a64 64 0 0 1 64-64h896z m0 64H64v640h896V192z m-96 64a32 32 0 0 1 32 32v448a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V288a32 32 0 0 1 32-32h704z"},null,-1)])])}const DisplayBlock=_export_sfc$1(_sfc_main$V,[["render",_sfc_render$d]]),_sfc_main$U={},_hoisted_1$A={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$c(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$A,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M960 128a64 64 0 0 1 64 64v640a64 64 0 0 1-64 64H64a64 64 0 0 1-64-64V192a64 64 0 0 1 64-64h896z m0 64H64v640h896V192zM352 256v512H160V256h192z m256 0v512h-192V256h192z m256 0v512h-192V256h192z"},null,-1)])])}const DisplayFlex=_export_sfc$1(_sfc_main$U,[["render",_sfc_render$c]]),_sfc_main$T={},_hoisted_1$z={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$b(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$z,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M787.616 651.36a142.72 142.72 0 0 0 52.864 31.904 205.504 205.504 0 0 0 67.264 10.848 245.76 245.76 0 0 0 38.784-2.4c9.504-1.6 19.36-4 30.208-7.04 8.16-2.24 15.968-5.12 23.36-8.32l23.392-10.816V587.52h-8.736c-3.968 3.424-8.96 7.648-15.104 12.544a190.272 190.272 0 0 1-19.936 13.504 120.32 120.32 0 0 1-27.616 12.544 102.528 102.528 0 0 1-62.72-0.576 80 80 0 0 1-29.824-17.088 89.28 89.28 0 0 1-21.664-32.512c-5.696-13.664-8.64-30.784-8.64-51.296 0-19.744 2.72-36.384 7.968-50.08 5.248-13.664 12.384-24.896 20.992-33.056 9.12-8.832 18.816-14.816 29.632-18.816a101.824 101.824 0 0 1 63.68-0.736c9.408 3.136 18.08 7.04 26.112 11.68 13.024 7.808 25.28 16.768 36.672 26.784H1024v-78.72c-6.08-2.88-13.12-6.08-21.12-9.6a205.984 205.984 0 0 0-57.152-15.36 270.016 270.016 0 0 0-37.056-2.304c-24.864 0-47.744 4-68.704 11.84-20.992 7.776-38.432 18.784-52.64 33.6a144.256 144.256 0 0 0-33.632 54.176 207.68 207.68 0 0 0-12.48 70.176c0 27.84 3.968 52.352 12.16 73.568a146.08 146.08 0 0 0 34.176 53.184l0.064 0.416z m-186.112 34.656a122.912 122.912 0 0 0 42.784-21.504c11.2-8.32 20.224-19.296 26.24-31.936 6.56-13.664 9.888-28.704 9.664-43.904 0-22.784-6.272-41.024-18.912-54.72-12.544-13.92-29.664-23.04-51.104-27.36v-2.304c14.4-6.24 26.688-16.448 35.52-29.408 8.384-12.544 12.544-27.008 12.544-43.52 0-14.24-2.944-26.784-9.12-37.6a65.696 65.696 0 0 0-27.936-26.24 117.44 117.44 0 0 0-36.48-12.096A437.312 437.312 0 0 0 526.656 352h-127.552v340.384h143.392c23.84 0 43.52-2.112 59.008-6.4z m-118.112-271.584h7.968c16.544 0 29.472 0.128 38.656 0.352 9.248 0.576 16.864 1.728 23.04 4a26.24 26.24 0 0 1 14.4 13.12c2.656 5.28 4.064 11.072 4.128 16.96 0.16 6.656-1.056 13.248-3.52 19.392a28.064 28.064 0 0 1-15.04 13.696c-7.04 2.912-14.56 4.48-22.208 4.576-9.472 0.32-20.864 0.544-34.24 0.544h-13.184v-72.64z m6.144 215.52h-6.144v-84.8h18.464c12.64 0 24.736 0 36.384 0.256 9.216-0.16 18.432 0.896 27.36 3.2 9.696 2.848 16.544 7.232 20.512 13.12 4 5.92 6.08 14.24 6.08 25.088 0 8.192-1.728 15.488-4.992 21.824-3.232 6.336-9.696 11.392-18.24 15.392-8.544 4-18.24 5.696-28.48 6.272-10.304 0.224-27.392 0.224-51.328 0.224l0.384-0.576z m-378.56-6.016h124.672l23.36 68.416H348.8L224.32 353.728H124.416L0 692.384h87.52l23.488-68.416-0.064-0.032z m62.336-183.552l41.472 121.44h-82.88l41.408-121.44z"},null,-1)])])}const DisplayInline=_export_sfc$1(_sfc_main$T,[["render",_sfc_render$b]]),_sfc_main$S={},_hoisted_1$y={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$a(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$y,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M960 128a64 64 0 0 1 64 64v640a64 64 0 0 1-64 64H64a64 64 0 0 1-64-64V192a64 64 0 0 1 64-64h896z m0 64H64v640h896V192z m-131.936 158.496c65.984 1.824 109.024 32.512 129.184 92.064l-65.952 15.136-1.856-5.664c-9.984-27.52-30.432-42.112-61.376-43.84-46.72 2.784-71.456 35.296-74.208 97.6 1.856 63.2 26.56 96.64 74.24 100.32 37.536-0.928 59.52-23.36 65.92-67.328L960 559.36l-1.792 7.232c-16.96 63.872-60.352 95.84-130.144 95.84-93.44-4.608-142.464-56.8-147.04-156.672 4.576-98.048 53.6-149.792 147.04-155.296z m-568.928 4.128l114.08 302.336H297.6l-22.016-65.984H160.192L138.24 656.96H64l112.672-302.336h82.464z m278.976 0l7.68 0.32c62.816 3.36 96 27.104 99.52 71.136 0 35.744-19.712 59.552-59.104 71.456 42.144 9.184 65.952 32.544 71.456 70.08 0 59.552-37.568 89.344-112.672 89.344h-148.416v-302.336h141.536z m-4.128 173.152H465.28v81.088h67.328c33.92 0 51.296-13.76 52.224-41.248-2.752-25.632-19.68-38.912-50.848-39.84zM217.92 408.224h-1.376l-0.96 7.36c-1.184 7.232-3.168 13.92-5.92 20.128l-34.336 103.04h87.936l-38.464-104.416-2.624-9.024c-1.6-5.888-3.04-11.584-4.256-17.088z m309.184-2.752H465.28v71.456h61.824c29.344-0.928 44.448-13.76 45.376-38.464-0.96-22.016-16.032-32.992-45.376-32.992z"},null,-1)])])}const DisplayInlineBlock=_export_sfc$1(_sfc_main$S,[["render",_sfc_render$a]]),_sfc_main$R={},_hoisted_1$x={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$9(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$x,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M931.37 477.14c-43.94-69.49-93.39-125.03-147.99-166.35L663.31 441.46c8.79 21.36 13.63 44.91 13.63 69.62 0 96.27-73.84 174.32-164.95 174.32-21.63 0-42.28-4.39-61.32-12.47l-94.09 102.52a455.097 455.097 0 0 0 155.41 26.2c172.62 0 312.43-85.54 419.59-256.63 12.83-20.43 12.72-47.45-0.21-67.88zM795.52 127.99L682.24 252.82C627.73 231 570.1 220.04 512.11 220.5c-171.15 0-310.99 85.66-419.48 256.75-12.93 20.43-13.04 47.33-0.2 67.78 46.95 75.15 100.3 133.68 160.01 175.82L131.9 853.65l38.9 42.36 663.6-725.76-38.88-42.26zM519.68 438.37c-3.72-0.59-7.46-0.81-11.27-0.81-45.63 0-82.43 39.03-82.43 87.16 0 4.97 0.42 9.81 1.14 14.54l-57.15 60.14-5.92 8.33c-13.15-24.94-20.5-53.68-20.5-84.28 0-96.3 73.84-174.45 164.95-174.45 27.2 0 52.76 6.93 75.4 19.29l-64.22 70.08z m52.05 135.53c21.74-23.26 27.17-55.48 16.31-81.39l-96.42 103.16c26.59 9.08 58.38 1.48 80.11-21.77z"},null,-1)])])}const DisplayNone=_export_sfc$1(_sfc_main$R,[["render",_sfc_render$9]]),_sfc_main$Q={},_hoisted_1$w={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$8(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$w,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M896 320H128V0h768v320z m0 320H128v-256h768v256z m-128 192l-256 192-256-192 192-0.032V704h128v128h192z"},null,-1)])])}const FlexDirectionColumn=_export_sfc$1(_sfc_main$Q,[["render",_sfc_render$8]]),_sfc_main$P={},_hoisted_1$v={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$7(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$v,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M896 704H128v320h768V704z m0-320H128v256h768v-256z m-128-192l-256-192-256 192 192 0.032V320h128V192h192z"},null,-1)])])}const FlexDirectionColumnReverse=_export_sfc$1(_sfc_main$P,[["render",_sfc_render$7]]),_sfc_main$O={},_hoisted_1$u={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$6(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$u,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M320 128v768H0V128h320z m320 0v768h-256V128h256z m192 128l192 256-192 256-0.032-192H704v-128h128V256z"},null,-1)])])}const FlexDirectionRow=_export_sfc$1(_sfc_main$O,[["render",_sfc_render$6]]),_sfc_main$N={},_hoisted_1$t={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$5(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$t,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M704 128v768h320V128H704zM384 128v768h256V128h-256zM192 256l-192 256 192 256 0.032-192H320v-128H192V256z"},null,-1)])])}const FlexDirectionRowReverse=_export_sfc$1(_sfc_main$N,[["render",_sfc_render$5]]),_sfc_main$M={},_hoisted_1$s={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$4(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$s,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M480 1024V0h64v1024h-64z m128-64V64h320v896H608zM96 960V64h320v896H96z"},null,-1)])])}const JustifyContentCenter=_export_sfc$1(_sfc_main$M,[["render",_sfc_render$4]]),_sfc_main$L={},_hoisted_1$r={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$3(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$r,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M416 160H96v704h320V160z m384 0H480v704h320V160z m128-160h-64v1024h64V0z"},null,-1)])])}const JustifyContentFlexEnd=_export_sfc$1(_sfc_main$L,[["render",_sfc_render$3]]),_sfc_main$K={},_hoisted_1$q={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$2(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$q,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M608 160h320v704H608V160zM224 160h320v704H224V160zM96 0h64v1024H96V0z"},null,-1)])])}const JustifyContentFlexStart=_export_sfc$1(_sfc_main$K,[["render",_sfc_render$2]]),_sfc_main$J={},_hoisted_1$p={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$1(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$p,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M320 864H192v160H128v-160H0V160h128V0h64v160h128v704z m704 0h-128v160h-64v-160h-128V160h128V0h64v160h128v704z"},null,-1)])])}const JustifyContentSpaceAround=_export_sfc$1(_sfc_main$J,[["render",_sfc_render$1]]),_sfc_main$I={},_hoisted_1$o={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"};function _sfc_render$l(o,e){return openBlock(),createElementBlock("svg",_hoisted_1$o,[...e[0]||(e[0]=[createBaseVNode("path",{d:"M64 1024H0V0h64v1024z m384-160H128V160h320v704z m448 0H576V160h320v704z m128 160h-64V0h64v1024z"},null,-1)])])}const JustifyContentSpaceBetween=_export_sfc$1(_sfc_main$I,[["render",_sfc_render$l]]),_sfc_main$H=defineComponent({__name:"Layout",props:{values:{},disabled:{type:Boolean},size:{}},emits:["change"],setup(o,{emit:e}){const t=e,r={items:[{name:"display",text:"模式",type:"radioGroup",childType:"button",labelWidth:"68px",options:[{value:"inline",icon:markRaw(DisplayInline),tooltip:"内联布局 inline"},{value:"flex",icon:markRaw(DisplayFlex),tooltip:"弹性布局 flex"},{value:"block",icon:markRaw(DisplayBlock),tooltip:"块级布局 block"},{value:"inline-block",icon:markRaw(DisplayInlineBlock),tooltip:"内联块布局 inline-block"},{value:"none",icon:markRaw(DisplayNone),tooltip:"隐藏 none"}]},{name:"flexDirection",text:"主轴方向",type:"radioGroup",childType:"button",labelWidth:"68px",options:[{value:"row",icon:markRaw(FlexDirectionRow),tooltip:"水平方向 起点在左侧 row"},{value:"row-reverse",icon:markRaw(FlexDirectionRowReverse),tooltip:"水平方向 起点在右侧 row-reverse"},{value:"column",icon:markRaw(FlexDirectionColumn),tooltip:"垂直方向 起点在上沿 column"},{value:"column-reverse",icon:markRaw(FlexDirectionColumnReverse),tooltip:"垂直方向 起点在下沿 column-reverse"}],display:(a,{model:l})=>l.display==="flex"},{name:"justifyContent",text:"主轴对齐",type:"radioGroup",childType:"button",labelWidth:"68px",options:[{value:"flex-start",icon:markRaw(JustifyContentFlexStart),tooltip:"左对齐 flex-start"},{value:"flex-end",icon:markRaw(JustifyContentFlexEnd),tooltip:"右对齐 flex-end"},{value:"center",icon:markRaw(JustifyContentCenter),tooltip:"居中 center"},{value:"space-between",icon:markRaw(JustifyContentSpaceBetween),tooltip:"两端对齐 space-between"},{value:"space-around",icon:markRaw(JustifyContentSpaceAround),tooltip:"横向平分 space-around"}],display:(a,{model:l})=>l.display==="flex"},{name:"alignItems",text:"辅轴对齐",type:"radioGroup",childType:"button",labelWidth:"68px",options:[{value:"flex-start",icon:markRaw(JustifyContentFlexStart),tooltip:"左对齐 flex-start"},{value:"flex-end",icon:markRaw(JustifyContentFlexEnd),tooltip:"右对齐 flex-end"},{value:"center",icon:markRaw(JustifyContentCenter),tooltip:"居中 center"},{value:"space-between",icon:markRaw(JustifyContentSpaceBetween),tooltip:"两端对齐 space-between"},{value:"space-around",icon:markRaw(JustifyContentSpaceAround),tooltip:"横向平分 space-around"}],display:(a,{model:l})=>l.display==="flex"},{name:"flexWrap",text:"换行",type:"radioGroup",childType:"button",labelWidth:"68px",options:[{value:"nowrap",text:"不换行",tooltip:"不换行 nowrap"},{value:"wrap",text:"正换行",tooltip:"第一行在上方 wrap"},{value:"wrap-reverse",text:"逆换行",tooltip:"第一行在下方 wrap-reverse"}],display:(a,{model:l})=>l.display==="flex"},{type:"row",items:[{name:"width",text:"宽度",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"text"}},{name:"height",text:"高度",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"text"}}]},{type:"row",items:[{type:"data-source-field-select",text:"overflow",name:"overflow",labelWidth:"68px",checkStrictly:!1,dataSourceFieldType:["string"],fieldConfig:{type:"select",clearable:!0,allowCreate:!0,options:[{text:"visible",value:"visible"},{text:"hidden",value:"hidden"},{text:"clip",value:"clip"},{text:"scroll",value:"scroll"},{text:"auto",value:"auto"},{text:"overlay",value:"overlay"},{text:"initial",value:"initial"}]}},{type:"data-source-field-select",text:"透明度",name:"opacity",labelWidth:"68px",dataSourceFieldType:["string","number"],fieldConfig:{type:"text"}}]}]},s=(a,l)=>{t("change",a,l)};return(a,l)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(unref(_sfc_main$A$1),{config:r,model:o.values,size:o.size,disabled:o.disabled,onChange:s},null,8,["model","size","disabled"]),withDirectives(createVNode(_sfc_main$W,{model:o.values,size:o.size,disabled:o.disabled,onChange:s},null,8,["model","size","disabled"]),[[vShow,!["fixed","absolute"].includes(o.values.position)]])],64))}}),_sfc_main$G=defineComponent({__name:"Position",props:{values:{},disabled:{type:Boolean},size:{}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,s={static:"不定位",relative:"相对定位",absolute:"绝对定位",fixed:"固定定位",sticky:"粘性定位"},a={items:[{name:"position",text:"定位",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"select",options:Object.keys(s).map(c=>({value:c,text:"".concat(c,"(").concat(s[c],")")}))}},{type:"row",labelWidth:"68px",display:()=>t.values.position!=="static",items:[{name:"left",type:"data-source-field-select",text:"left",fieldConfig:{type:"text"}},{name:"top",type:"data-source-field-select",text:"top",fieldConfig:{type:"text"}}]},{type:"row",labelWidth:"68px",display:()=>t.values.position!=="static",items:[{name:"right",type:"data-source-field-select",text:"right",fieldConfig:{type:"text"}},{name:"bottom",type:"data-source-field-select",text:"bottom",fieldConfig:{type:"text"}}]},{labelWidth:"68px",name:"zIndex",text:"zIndex",type:"data-source-field-select",fieldConfig:{type:"text"}}]},l=(c,d)=>{r("change",c,d)};return(c,d)=>(openBlock(),createBlock(unref(_sfc_main$A$1),{config:a,model:o.values,size:o.size,disabled:o.disabled,onChange:l},null,8,["model","size","disabled"]))}}),_hoisted_1$n={class:"border-box-container"},_hoisted_2$b={class:"border-icon-container"},_hoisted_3$4={class:"border-icon-container-row"},_hoisted_4$3={class:"border-icon-container-row"},_hoisted_5$1={class:"border-icon-container-row"},_hoisted_6$1={class:"border-value-container"},_sfc_main$F=defineComponent({__name:"Border",props:{model:{},disabled:{type:Boolean},size:{}},emits:["change"],setup(o,{emit:e}){const t=ref$1(""),r=computed$1(()=>({items:[{name:"border".concat(t.value,"Width"),text:"边框宽度",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"text"}},{name:"border".concat(t.value,"Color"),text:"边框颜色",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"colorPicker"}},{name:"border".concat(t.value,"Style"),text:"边框样式",labelWidth:"68px",type:"data-source-field-select",fieldConfig:{type:"select",options:["solid","dashed","dotted"].map(c=>({value:c,text:c}))}}]})),s=c=>t.value=c||"",a=e,l=(c,d)=>{var u;(u=d.changeRecords)==null||u.forEach(g=>{a("change",g.value,{modifyKey:g.propPath})})};return(c,d)=>(openBlock(),createElementBlock("div",_hoisted_1$n,[createBaseVNode("div",_hoisted_2$b,[createBaseVNode("div",_hoisted_3$4,[createBaseVNode("div",{class:normalizeClass(["border-icon border-icon-top",{active:t.value==="Top"}]),onClick:d[0]||(d[0]=u=>s("Top"))},null,2)]),createBaseVNode("div",_hoisted_4$3,[createBaseVNode("div",{class:normalizeClass(["border-icon border-icon-left",{active:t.value==="Left"}]),onClick:d[1]||(d[1]=u=>s("Left"))},null,2),createBaseVNode("div",{class:normalizeClass(["border-icon",{active:t.value===""}]),onClick:d[2]||(d[2]=u=>s())},null,2),createBaseVNode("div",{class:normalizeClass(["border-icon border-icon-right",{active:t.value==="Right"}]),onClick:d[3]||(d[3]=u=>s("Right"))},null,2)]),createBaseVNode("div",_hoisted_5$1,[createBaseVNode("div",{class:normalizeClass(["border-icon border-icon-bottom",{active:t.value==="Bottom"}]),onClick:d[4]||(d[4]=u=>s("Bottom"))},null,2)])]),createBaseVNode("div",_hoisted_6$1,[createVNode(unref(_sfc_main$A$1),{config:r.value,model:o.model,size:o.size,disabled:o.disabled,onChange:l},null,8,["config","model","size","disabled"])])]))}}),_sfc_main$E=defineComponent({__name:"Border",props:{values:{},disabled:{type:Boolean},size:{}},emits:["change"],setup(o,{emit:e}){const t=e,r={items:[{labelWidth:"68px",name:"borderRadius",text:"圆角",type:"data-source-field-select",fieldConfig:{type:"text"}}]},s=(a,l)=>{t("change",a,l)};return(a,l)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(unref(_sfc_main$A$1),{config:r,model:o.values,size:o.size,disabled:o.disabled,onChange:s},null,8,["model","size","disabled"]),createVNode(_sfc_main$F,{model:o.values,size:o.size,disabled:o.disabled,onChange:s},null,8,["model","size","disabled"])],64))}}),_sfc_main$D=defineComponent({name:"MFieldsStyleSetter",__name:"Index",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,s=[{name:"font",title:"布局",component:_sfc_main$H},{title:"位置",component:_sfc_main$G},{title:"背景",component:_sfc_main$$},{title:"文字",component:_sfc_main$X},{title:"边框与圆角",component:_sfc_main$E}],a=shallowRef(Array(s.length).fill(1).map((c,d)=>"".concat(d))),l=(c,d)=>{var u;(u=d.changeRecords)==null||u.forEach(g=>{g.propPath="".concat(t.name,".").concat(g.propPath)}),r("change",c,d)};return(c,d)=>(openBlock(),createBlock(unref(_sfc_main$z$2),{class:"m-fields-style-setter",modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=u=>a.value=u)},{default:withCtx(()=>[(openBlock(),createElementBlock(Fragment,null,renderList(s,(u,g)=>createVNode(unref(_sfc_main$y$2),{key:g,name:"".concat(g)},{title:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(grid_default)},null,8,["icon"]),createTextVNode(toDisplayString(u.title),1)]),default:withCtx(()=>[u.component?(openBlock(),createBlock(resolveDynamicComponent(u.component),{key:0,values:o.model[o.name],size:o.size,disabled:o.disabled,onChange:l},null,40,["values","size","disabled"])):createCommentVNode("v-if",!0)]),_:2},1032,["name"])),64))]),_:1},8,["modelValue"]))}}),_hoisted_1$m={key:1,class:"m-fields-ui-select",style:{display:"flex"}},_sfc_main$C=defineComponent({name:"MFieldsUISelect",__name:"UISelect",props:{config:{},model:{},initValues:{},values:{},name:{},prop:{},disabled:{type:Boolean},size:{},lastValues:{},isCompare:{type:Boolean}},emits:["change"],setup(o,{emit:e}){const t=o,r=e,{editorService:s,uiService:a,stageOverlayService:l}=useServices(),c=inject("mForm"),d=computed$1(()=>t.model[t.name]),u=ref$1(!1),g=()=>{a.set("uiSelectMode",!1),u.value=!1,globalThis.document.removeEventListener(UI_SELECT_MODE_EVENT_NAME,f)},f=({detail:S})=>{let{id:w}=S;S.nodeType&&(w=getIdFromEl()(S)||w),w&&(r("change",w),c==null||c.$emit("field-change",t.prop,w)),g&&g()},m=computed$1(()=>{const S=s.getNodeById(d.value);return(S==null?void 0:S.name)||""}),_=()=>{a.set("uiSelectMode",!0),u.value=!0,globalThis.document.addEventListener(UI_SELECT_MODE_EVENT_NAME,f)},v=()=>{t.model&&(r("change",""),c==null||c.$emit("field-change",t.prop,""))},b=async S=>{var w,E;await s.select(S),(w=s.get("stage"))==null||w.select(S),(E=l.get("stage"))==null||E.select(S)},C=throttle$2(S=>{var w,E;s.highlight(S),(w=s.get("stage"))==null||w.highlight(S),(E=l.get("stage"))==null||E.highlight(S)},150),y=()=>{var S,w;s.set("highlightNode",null),(S=s.get("stage"))==null||S.clearHighlight(),(w=l.get("stage"))==null||w.clearHighlight()};return(S,w)=>u.value?(openBlock(),createElementBlock("div",{key:0,class:"m-fields-ui-select",onClick:g},[createVNode(unref(_sfc_main$F$1),{type:"danger",icon:unref(delete_default),disabled:o.disabled,size:o.size,link:"",style:{padding:"0"}},{default:withCtx(()=>[...w[2]||(w[2]=[createTextVNode("取消",-1)])]),_:1},8,["icon","disabled","size"])])):(openBlock(),createElementBlock("div",_hoisted_1$m,[d.value?(openBlock(),createElementBlock(Fragment,{key:0},[createVNode(unref(_sfc_main$2$4),{content:"清除",placement:"top"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{style:{padding:"0"},type:"danger",icon:unref(close_default),disabled:o.disabled,size:o.size,link:"",onClick:withModifiers(v,["stop"])},null,8,["icon","disabled","size"])]),_:1}),createVNode(unref(_sfc_main$2$4),{content:"点击选中组件",placement:"top"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{link:"",style:{padding:"0",margin:"0"},disabled:o.disabled,size:o.size,onClick:w[0]||(w[0]=E=>b(d.value)),onMouseenter:w[1]||(w[1]=E=>unref(C)(d.value)),onMouseleave:y},{default:withCtx(()=>[createTextVNode(toDisplayString("".concat(m.value,"_").concat(d.value)),1)]),_:1},8,["disabled","size"])]),_:1})],64)):(openBlock(),createBlock(unref(_sfc_main$2$4),{key:1,content:"点击此处选择",placement:"top"},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{link:"",style:{padding:"0",margin:"0"},disabled:o.disabled,size:o.size,onClick:_},{default:withCtx(()=>[...w[3]||(w[3]=[createTextVNode("点击此处选择",-1)])]),_:1},8,["disabled","size"])]),_:1}))]))}}),_sfc_main$B=defineComponent({name:"MEditorResizer",__name:"Resizer",emits:["change"],setup(o,{emit:e}){const t=e,r=useTemplateRef("target"),{isDragging:s}=useGetSo(r,t);return(a,l)=>(openBlock(),createElementBlock("span",{ref:"target",class:normalizeClass(["m-editor-resizer",{"m-editor-resizer-dragging":unref(s)}])},[renderSlot(a.$slots,"default")],2))}}),_sfc_main$A=defineComponent({name:"MEditorSplitView",__name:"SplitView",props:{width:{},left:{},right:{},minLeft:{default:1},minRight:{default:1},minCenter:{default:5},leftClass:{},rightClass:{},centerClass:{}},emits:["update:left","change","update:right"],setup(o,{expose:e,emit:t}){const r=t,s=o,a=useTemplateRef("target"),l=computed$1(()=>typeof s.left<"u"),c=computed$1(()=>typeof s.right<"u"),d=ref$1(0);let u=0;const g=(v=0,b=0)=>{let C=b>0?b:0,y=v>0?v:0,S=u-y-C;if(S<s.minCenter){const w=s.minCenter-S;S=s.minCenter,C-w<s.minRight?C=s.minRight:C-=w,y=u-C-S,y<s.minLeft&&(y-=w/2,C-=w/2)}return{center:S,left:y,right:C}},f=v=>{if(v<=0)return;u=v;let b=s.left||s.minLeft||0,C=s.right||s.minRight||0;b>u&&(b=u/3),C>u&&(C=u/3);const y=g(b,C);d.value=y.center,r("change",y)};if(typeof s.width!="number"){const v=new ResizeObserver(b=>{for(const{contentRect:C}of b)f(C.width)});onMounted(()=>{a.value&&v.observe(a.value)}),onBeforeUnmount(()=>{v.disconnect()})}else watchEffect(()=>{typeof s.width=="number"&&f(s.width)});const m=({deltaX:v})=>{if(typeof s.left>"u")return;let b=Math.max(s.left+v,s.minLeft)||0;r("update:left",b),u-b-(s.right||0)<=0&&(b=s.left);const C=g(b,s.right||0);d.value=C.center,r("change",{left:C.left,center:d.value,right:C.right})},_=({deltaX:v})=>{if(typeof s.right>"u")return;let b=Math.max(s.right-v,s.minRight)||0;r("update:right",b),u-(s.left||0)-b<=0&&(b=s.right);const C=g(s.left,b);d.value=C.center,r("change",{left:C.left,center:d.value,right:C.right})};return e({updateWidth(){var b,C,y;if(u=(y=(C=s.width)!=null?C:(b=a.value)==null?void 0:b.clientWidth)!=null?y:u,u<=0)return;const v=g(s.left,s.right);r("change",{left:v.left,center:d.value,right:v.right})}}),(v,b)=>(openBlock(),createElementBlock("div",{ref:"target",class:"m-editor-layout",style:normalizeStyle("min-width: ".concat(s.minCenter+s.minLeft+s.minRight,"px"))},[l.value&&v.$slots.left?(openBlock(),createElementBlock(Fragment,{key:0},[createBaseVNode("div",{class:normalizeClass(["m-editor-layout-left",o.leftClass]),style:normalizeStyle("width: ".concat(o.left,"px"))},[renderSlot(v.$slots,"left")],6),createVNode(_sfc_main$B,{onChange:m})],64)):createCommentVNode("v-if",!0),createBaseVNode("div",{class:normalizeClass(["m-editor-layout-center",o.centerClass]),style:normalizeStyle("width: ".concat(d.value,"px"))},[renderSlot(v.$slots,"center")],6),c.value&&v.$slots.right?(openBlock(),createElementBlock(Fragment,{key:1},[createVNode(_sfc_main$B,{onChange:_}),createBaseVNode("div",{class:normalizeClass(["m-editor-layout-right",o.rightClass]),style:normalizeStyle("width: ".concat(o.right,"px"))},[renderSlot(v.$slots,"right")],6)],64)):createCommentVNode("v-if",!0)],4))}}),_hoisted_1$l={key:1,class:"menu-item-text"},_hoisted_2$a={class:"el-dropdown-link menubar-menu-button"},_sfc_main$z=defineComponent({name:"MEditorToolButton",__name:"ToolButton",props:{data:{default:()=>({type:"text",display:!1})},eventType:{default:"click"}},setup(o){const e=o,t=useServices(),r=computed$1(()=>typeof e.data=="string"||e.data.type==="component"?!1:typeof e.data.disabled=="function"?e.data.disabled(t):e.data.disabled),s=computed$1(()=>{var g;return e.data?typeof e.data=="string"?!0:typeof e.data.display=="function"?e.data.display(t):(g=e.data.display)!=null?g:!0:!1}),a=(g,f)=>{var m;r.value||typeof g.handler=="function"&&((m=g.handler)==null||m.call(g,t,f))},l=g=>{g.item.handler&&g.item.handler(t)},c=(g,f)=>{e.eventType==="click"&&g.type==="button"&&a(g,f)},d=(g,f)=>{e.eventType==="mousedown"&&g.type==="button"&&a(g,f)},u=(g,f)=>{e.eventType==="mouseup"&&g.type==="button"&&f.button===0&&a(g,f)};return(g,f)=>s.value?(openBlock(),createElementBlock("div",{key:0,class:normalizeClass(["menu-item","".concat(o.data.type," ").concat(o.data.className||"")]),onClick:f[0]||(f[0]=m=>c(o.data,m)),onMousedown:f[1]||(f[1]=m=>d(o.data,m)),onMouseup:f[2]||(f[2]=m=>u(o.data,m))},[o.data.type==="divider"?(openBlock(),createBlock(unref(_sfc_main$u$2),{key:0,direction:o.data.direction||"vertical"},null,8,["direction"])):o.data.type==="text"?(openBlock(),createElementBlock("div",_hoisted_1$l,toDisplayString(o.data.text),1)):o.data.type==="button"?(openBlock(),createElementBlock(Fragment,{key:2},[o.data.tooltip?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,effect:"dark",placement:"bottom-start",content:o.data.tooltip},{default:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{size:"small",link:"",disabled:r.value},createSlots({_:2},[o.data.icon?{name:"icon",fn:withCtx(()=>[createVNode(_sfc_main$1r,{icon:o.data.icon},null,8,["icon"])]),key:"0"}:void 0,o.data.text?{name:"default",fn:withCtx(()=>[createTextVNode(toDisplayString(o.data.text),1)]),key:"1"}:void 0]),1032,["disabled"])]),_:1},8,["content"])):(openBlock(),createBlock(unref(_sfc_main$F$1),{key:1,size:"small",link:"",disabled:r.value,title:o.data.text},createSlots({_:2},[o.data.icon?{name:"icon",fn:withCtx(()=>[createVNode(_sfc_main$1r,{icon:o.data.icon},null,8,["icon"])]),key:"0"}:void 0,o.data.text?{name:"default",fn:withCtx(()=>[createTextVNode(toDisplayString(o.data.text),1)]),key:"1"}:void 0]),1032,["disabled","title"]))],64)):o.data.type==="dropdown"?(openBlock(),createBlock(unref(_sfc_main$s$2),{key:3,trigger:"click",disabled:r.value,onCommand:l},{dropdown:withCtx(()=>[o.data.items&&o.data.items.length?(openBlock(),createBlock(unref(_sfc_main$q$2),{key:0},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.data.items,(m,_)=>(openBlock(),createBlock(unref(_sfc_main$r$2),{key:_,command:{data:o.data,subItem:m}},{default:withCtx(()=>[createTextVNode(toDisplayString(m.text),1)]),_:2},1032,["command"]))),128))]),_:1})):createCommentVNode("v-if",!0)]),default:withCtx(()=>[createBaseVNode("span",_hoisted_2$a,[createTextVNode(toDisplayString(o.data.text),1),createVNode(unref(_sfc_main$n$2),{class:"el-icon--right"},{default:withCtx(()=>[createVNode(unref(arrow_down_default))]),_:1})])]),_:1},8,["disabled"])):o.data.type==="component"?(openBlock(),createBlock(resolveDynamicComponent(o.data.component),mergeProps({key:4},o.data.props||{},toHandlers(o.data.listeners||{})),null,16)):createCommentVNode("v-if",!0)],34)):createCommentVNode("v-if",!0)}}),_hoisted_1$k={key:0,id:"m-editor-page-bar-add-icon",class:"m-editor-page-bar-item m-editor-page-bar-item-icon"},_hoisted_2$9={key:1,style:{width:"21px"}},_sfc_main$y=defineComponent({name:"MEditorPageBarAddButton",__name:"AddButton",setup(o){const{editorService:e,uiService:t}=useServices(),r=computed$1(()=>t.get("showAddPageButton")),s=a=>{const l=toRaw(e.get("root"));if(!l)throw new Error("root 不能为空");const c={type:a,name:generatePageNameByApp(l,a),items:[]};e.add(c)};return(a,l)=>r.value?(openBlock(),createElementBlock("div",_hoisted_1$k,[createVNode(unref(_sfc_main$h$2),{"popper-class":"data-source-list-panel-add-menu"},{reference:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(plus_default)},null,8,["icon"])]),default:withCtx(()=>[createVNode(_sfc_main$z,{data:{type:"button",text:"页面",handler:()=>{s(unref(NodeType).PAGE)}}},null,8,["data"]),createVNode(_sfc_main$z,{data:{type:"button",text:"页面片",handler:()=>{s(unref(NodeType).PAGE_FRAGMENT)}}},null,8,["data"])]),_:1})])):(openBlock(),createElementBlock("div",_hoisted_2$9))}}),_hoisted_1$j={class:"m-editor-page-bar",ref:"pageBar"},_hoisted_2$8={key:0,class:"m-editor-page-bar-items",ref:"itemsContainer"},_sfc_main$x=defineComponent({name:"MEditorPageBarScrollContainer",__name:"PageBarScrollContainer",props:{pageBarSortOptions:{},length:{}},setup(o,{expose:e}){const t=o,{editorService:r,uiService:s}=useServices(),a=useTemplateRef("itemsContainer"),l=ref$1(!1),c=computed$1(()=>s.get("showAddPageButton")),d=computed$1(()=>s.get("showPageListButton")),u=ref$1(0),g=useTemplateRef("pageBar"),f=()=>{var C;u.value=(((C=g.value)==null?void 0:C.clientWidth)||0)-74-37-(c.value?37:21)-(d.value?37:0),nextTick(()=>{a.value&&(l.value=a.value.scrollWidth-u.value>1)})},m=new ResizeObserver(()=>{f()});onMounted(()=>{g.value&&m.observe(g.value),a.value&&m.observe(a.value)}),onBeforeUnmount(()=>{m.disconnect()});let _=0;const v=C=>{if(!a.value||!l.value)return;const y=a.value.scrollWidth-u.value;C==="left"?b(_+200):C==="right"?b(_-200):C==="start"?b(0):C==="end"&&b(-y)},b=C=>{if(!a.value||!l.value)return;const y=a.value.scrollWidth-u.value;C>=0&&(C=0),-C>y&&(C=-y),_=C,a.value.style.transform="translate(".concat(_,"px, 0px)")};return watch(()=>t.length,(C=0,y=0)=>{setTimeout(()=>{if(f(),nextTick(()=>{C<y||y===0?v("start"):v("end")}),C>1){const S=document.querySelector(".m-editor-page-bar-items");let w=[];const E={dataIdAttr:"data-page-id",onStart:async L=>{var k;typeof((k=t.pageBarSortOptions)==null?void 0:k.beforeStart)=="function"&&await t.pageBarSortOptions.beforeStart(L,x),w=x.toArray()},onUpdate:async L=>{var k;await r.sort(w[L.oldIndex],w[L.newIndex]),typeof((k=t.pageBarSortOptions)==null?void 0:k.afterUpdate)=="function"&&await t.pageBarSortOptions.afterUpdate(L,x)},...t.pageBarSortOptions?t.pageBarSortOptions:{}};if(!S)return;const x=new Sortable(S,E)}})},{immediate:!0}),e({itemsContainerWidth:u,scroll:v,scrollTo:b,getTranslateLeft(){return _}}),(C,y)=>(openBlock(),createElementBlock("div",_hoisted_1$j,[renderSlot(C.$slots,"prepend"),o.length?(openBlock(),createElementBlock("div",_hoisted_2$8,[renderSlot(C.$slots,"default")],512)):createCommentVNode("v-if",!0),l.value?(openBlock(),createElementBlock("div",{key:1,class:"m-editor-page-bar-item m-editor-page-bar-item-icon m-editor-page-bar-item-left-icon",onClick:y[0]||(y[0]=S=>v("left"))},[createVNode(_sfc_main$1r,{icon:unref(arrow_left_bold_default)},null,8,["icon"])])):createCommentVNode("v-if",!0),l.value?(openBlock(),createElementBlock("div",{key:2,class:"m-editor-page-bar-item m-editor-page-bar-item-icon m-editor-page-bar-item-right-icon",onClick:y[1]||(y[1]=S=>v("right"))},[createVNode(_sfc_main$1r,{icon:unref(arrow_right_bold_default)},null,8,["icon"])])):createCommentVNode("v-if",!0)],512))}}),_hoisted_1$i={key:0,id:"m-editor-page-bar-list-icon",class:"m-editor-page-bar-item m-editor-page-bar-item-icon"},_hoisted_2$7={class:"page-bar-popover-wrapper"},_hoisted_3$3={class:"page-bar-popover-inner"},_sfc_main$w=defineComponent({name:"MEditorPageList",__name:"PageList",props:{list:{}},setup(o){const{editorService:e,uiService:t}=useServices(),r=computed$1(()=>t.get("showPageListButton")),s=computed$1(()=>e.get("page")),a=async l=>{await e.select(l)};return(l,c)=>r.value?(openBlock(),createElementBlock("div",_hoisted_1$i,[createVNode(unref(_sfc_main$h$2),{"popper-class":"page-bar-popover",placement:"top",trigger:"hover",width:160,"destroy-on-close":!0},{reference:withCtx(()=>[createVNode(unref(_sfc_main$n$2),{class:"m-editor-page-list-menu-icon"},{default:withCtx(()=>[createVNode(unref(files_default))]),_:1})]),default:withCtx(()=>[createBaseVNode("div",_hoisted_2$7,[createBaseVNode("div",_hoisted_3$3,[renderSlot(l.$slots,"page-list-popover",{list:o.list},()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.list,(d,u)=>{var g,f;return openBlock(),createBlock(_sfc_main$z,{data:{type:"button",text:((g=d.devconfig)==null?void 0:g.tabName)||d.name||d.id,className:d.id===((f=s.value)==null?void 0:f.id)?"active":"",handler:()=>a(d.id)},key:u},null,8,["data"])}),128))])])])]),_:3})])):createCommentVNode("v-if",!0)}}),_hoisted_1$h={class:"m-editor-page-bar-item m-editor-page-bar-item-icon m-editor-page-bar-search"},_sfc_main$v=defineComponent({__name:"Search",props:{query:{},queryModifiers:{}},emits:mergeModels(["search"],["update:query"]),setup(o,{emit:e}){const t=e,r=useModel(o,"query"),s=createForm([{type:"checkbox-group",name:"pageType",options:[{value:NodeType.PAGE,text:"页面"},{value:NodeType.PAGE_FRAGMENT,text:"页面片段"}]},{name:"keyword",type:"text",placeholder:"请输入关键字",clearable:!0}]),a=ref$1(!1),l=c=>{r.value=c,t("search",c)};return(c,d)=>(openBlock(),createElementBlock("div",_hoisted_1$h,[createVNode(_sfc_main$1r,{icon:unref(search_default),onClick:d[0]||(d[0]=u=>a.value=!a.value),class:normalizeClass({"icon-active":a.value})},null,8,["icon","class"]),a.value?(openBlock(),createBlock(Teleport,{key:0,to:".m-editor-page-bar-tabs"},[r.value?(openBlock(),createBlock(unref(_sfc_main$g$1),{key:0,class:"m-editor-page-bar-search-panel",inline:!0,config:unref(s),"init-values":r.value,"prevent-submit-default":!0,onChange:l},null,8,["config","init-values"])):createCommentVNode("v-if",!0)])):createCommentVNode("v-if",!0)]))}}),_hoisted_1$g={class:"m-editor-page-bar-tabs"},_hoisted_2$6=["data-page-id","onClick"],_hoisted_3$2={class:"m-editor-page-bar-title"},_hoisted_4$2=["title"],_sfc_main$u=defineComponent({name:"MEditorPageBar",__name:"PageBar",props:{disabledPageFragment:{type:Boolean},pageBarSortOptions:{},filterFunction:{type:Function,default:(o,e)=>{var t;return((t=o.name)==null?void 0:t.includes(e))||"".concat(o.id).includes(e)}}},setup(o){const e=o,{editorService:t}=useServices(),r=computed$1(()=>t.get("root")),s=computed$1(()=>t.get("page")),a=ref$1({pageType:[NodeType.PAGE,NodeType.PAGE_FRAGMENT],keyword:""}),l=computed$1(()=>{var v;const{pageType:m,keyword:_}=a.value;return m.length===0?[]:(((v=r.value)==null?void 0:v.items)||[]).filter(b=>m.includes(b.type)?_?e.filterFunction(b,_):!0:!1)}),c=m=>{t.select(m)},d=m=>{m&&t.copy(m),t.paste({left:0,top:0})},u=m=>{t.remove(m)},g=useTemplateRef("pageBarScrollContainer"),f=useTemplateRef("pageBarItems");return watch(s,m=>{var b;if(!m||!((b=g.value)!=null&&b.itemsContainerWidth)||!f.value||f.value.length<2)return;const _=f.value[0],v=f.value[f.value.length-1];if(m.id===_.dataset.pageId)g.value.scroll("start");else if(m.id===v.dataset.pageId)g.value.scroll("end");else{const C=f.value.find(L=>L.dataset.pageId===m.id);if(!C)return;const y=C.getBoundingClientRect(),S=y.left-_.getBoundingClientRect().left,{itemsContainerWidth:w}=g.value,E=w-S-y.width,x=g.value.getTranslateLeft();(S+x<0||S+y.width>w-x)&&g.value.scrollTo(E)}}),(m,_)=>(openBlock(),createElementBlock("div",_hoisted_1$g,[createVNode(_sfc_main$x,{ref:"pageBarScrollContainer","page-bar-sort-options":o.pageBarSortOptions,length:l.value.length},{prepend:withCtx(()=>[renderSlot(m.$slots,"page-bar-add-button",{},()=>[createVNode(_sfc_main$y)]),createVNode(_sfc_main$v,{query:a.value,"onUpdate:query":_[0]||(_[0]=v=>a.value=v)},null,8,["query"]),createVNode(_sfc_main$w,{list:l.value},{"page-list-popover":withCtx(({list:v})=>[renderSlot(m.$slots,"page-list-popover",{list:v})]),_:3},8,["list"])]),default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(l.value,v=>{var b;return openBlock(),createElementBlock("div",{class:normalizeClass(["m-editor-page-bar-item",{active:((b=s.value)==null?void 0:b.id)===v.id}]),ref_for:!0,ref:"pageBarItems",key:v.id,"data-page-id":v.id,onClick:C=>c(v.id)},[createBaseVNode("div",_hoisted_3$2,[renderSlot(m.$slots,"page-bar-title",{page:v},()=>[createBaseVNode("span",{title:v.name},toDisplayString(v.name||v.id),9,_hoisted_4$2)])]),createVNode(unref(_sfc_main$h$2),{"popper-class":"page-bar-popover",placement:"top",trigger:"hover",width:160,"destroy-on-close":!0},{reference:withCtx(()=>[createVNode(unref(_sfc_main$n$2),{class:"m-editor-page-bar-menu-icon"},{default:withCtx(()=>[createVNode(unref(caret_bottom_default))]),_:1})]),default:withCtx(()=>[createBaseVNode("div",null,[renderSlot(m.$slots,"page-bar-popover",{page:v},()=>[createVNode(_sfc_main$z,{data:{type:"button",text:"复制",icon:unref(document_copy_default),handler:()=>d(v)}},null,8,["data"]),createVNode(_sfc_main$z,{data:{type:"button",text:"删除",icon:unref(delete_default),handler:()=>u(v)}},null,8,["data"])])])]),_:2},1024)],10,_hoisted_2$6)}),128))]),_:3},8,["page-bar-sort-options","length"])]))}}),_hoisted_1$f={class:"m-editor-empty-panel"},_hoisted_2$5={class:"m-editor-empty-content"},_sfc_main$t=defineComponent({name:"MEditorAddPageBox",__name:"AddPageBox",props:{disabledPageFragment:{type:Boolean}},setup(o){const{editorService:e}=useServices(),t=r=>{const s=toRaw(e.get("root"));if(!s)throw new Error("root 不能为空");e.add({type:r,name:generatePageNameByApp(s,r),items:[]})};return(r,s)=>(openBlock(),createElementBlock("div",_hoisted_1$f,[createBaseVNode("div",_hoisted_2$5,[createBaseVNode("div",{class:"m-editor-empty-button",onClick:s[0]||(s[0]=a=>t(unref(NodeType).PAGE))},[createBaseVNode("div",null,[createVNode(_sfc_main$1r,{icon:unref(plus_default)},null,8,["icon"])]),s[2]||(s[2]=createBaseVNode("p",null,"新增页面",-1))]),o.disabledPageFragment?createCommentVNode("v-if",!0):(openBlock(),createElementBlock("div",{key:0,class:"m-editor-empty-button",onClick:s[1]||(s[1]=a=>t(unref(NodeType).PAGE_FRAGMENT))},[createBaseVNode("div",null,[createVNode(_sfc_main$1r,{icon:unref(plus_default)},null,8,["icon"])]),s[3]||(s[3]=createBaseVNode("p",null,"新增页面片",-1))]))])]))}}),_hoisted_1$e={class:"m-editor",ref:"content",style:{"min-width":"900px"}},_sfc_main$s=defineComponent({name:"MEditorFramework",__name:"Framework",props:{disabledPageFragment:{type:Boolean},pageBarSortOptions:{},pageFilterFunction:{type:Function}},setup(o){const e=inject("codeOptions",{}),{editorService:t,uiService:r,storageService:s}=useServices(),a=useTemplateRef("content"),l=useTemplateRef("splitView"),c=computed$1(()=>t.get("root")),d=computed$1(()=>t.get("page")),u=computed$1(()=>t.get("pageLength")||0),g=computed$1(()=>r.get("showSrc")),f=computed$1(()=>r.get("columnWidth"));watch(u,()=>{var C;(C=l.value)==null||C.updateWidth()}),watch(()=>r.get("hideSlideBar"),C=>{r.set("columnWidth",{...f.value,left:C?0:s.getItem(LEFT_COLUMN_WIDTH_STORAGE_KEY,{protocol:Protocol.NUMBER})||DEFAULT_LEFT_COLUMN_WIDTH})});const m=C=>{s.setItem(LEFT_COLUMN_WIDTH_STORAGE_KEY,C.left,{protocol:Protocol.NUMBER}),s.setItem(RIGHT_COLUMN_WIDTH_STORAGE_KEY,C.right,{protocol:Protocol.NUMBER}),r.set("columnWidth",C)},_=computed$1(()=>r.get("frameworkRect")),v=new ResizeObserver(C=>{const{contentRect:y}=C[0];r.set("frameworkRect",{width:y.width,height:y.height,left:y.left,top:y.top})});onMounted(()=>{a.value&&v.observe(a.value)}),onBeforeUnmount(()=>{v.disconnect()});const b=C=>{try{const y=getEditorConfig("parseDSL");t.set("root",y(C))}catch(y){console.error(y)}};return(C,y)=>(openBlock(),createElementBlock("div",_hoisted_1$e,[renderSlot(C.$slots,"header"),renderSlot(C.$slots,"nav"),renderSlot(C.$slots,"content-before"),g.value?renderSlot(C.$slots,"src-code",{key:0},()=>[createVNode(_sfc_main$1q,{class:"m-editor-content","init-values":c.value,options:unref(e),onSave:b},null,8,["init-values","options"])]):(openBlock(),createBlock(_sfc_main$A,{key:1,ref:"splitView",class:"m-editor-content","left-class":"m-editor-framework-left","center-class":"m-editor-framework-center","right-class":"m-editor-framework-right",left:f.value.left,right:f.value.right,"min-left":unref(MIN_LEFT_COLUMN_WIDTH),"min-right":unref(MIN_RIGHT_COLUMN_WIDTH),"min-center":unref(MIN_CENTER_COLUMN_WIDTH),width:_.value.width,onChange:m},createSlots({left:withCtx(()=>[renderSlot(C.$slots,"sidebar")]),center:withCtx(()=>[d.value?renderSlot(C.$slots,"workspace",{key:0}):renderSlot(C.$slots,"empty",{key:1},()=>[createVNode(_sfc_main$t,{"disabled-page-fragment":o.disabledPageFragment},null,8,["disabled-page-fragment"])]),renderSlot(C.$slots,"page-bar",{},()=>[createVNode(_sfc_main$u,{"disabled-page-fragment":o.disabledPageFragment,"page-bar-sort-options":o.pageBarSortOptions,"filter-function":o.pageFilterFunction},{"page-bar-add-button":withCtx(()=>[renderSlot(C.$slots,"page-bar-add-button")]),"page-bar-title":withCtx(({page:S})=>[renderSlot(C.$slots,"page-bar-title",{page:S})]),"page-bar-popover":withCtx(({page:S})=>[renderSlot(C.$slots,"page-bar-popover",{page:S})]),"page-list-popover":withCtx(({list:S})=>[renderSlot(C.$slots,"page-list-popover",{list:S})]),_:3},8,["disabled-page-fragment","page-bar-sort-options","filter-function"])])]),_:2},[d.value?{name:"right",fn:withCtx(()=>[renderSlot(C.$slots,"props-panel")]),key:"0"}:void 0]),1032,["left","right","min-left","min-right","min-center","width"])),renderSlot(C.$slots,"content-after"),renderSlot(C.$slots,"footer")],512))}}),_sfc_main$r=defineComponent({name:"MEditorNavMenu",__name:"NavMenu",props:{data:{default:()=>({})},height:{default:35}},setup(o){const e=o,{uiService:t,editorService:r,historyService:s}=useServices(),a=computed$1(()=>t.get("columnWidth")),l=Object.values(ColumnLayout),c=computed$1(()=>t.get("showGuides")),d=computed$1(()=>t.get("showRule")),u=computed$1(()=>t.get("zoom")),f=/mac os x/.test(navigator.userAgent.toLowerCase())?"Command":"Ctrl",m=C=>{if(typeof C!="string")return[C];const y=[];switch(C){case"/":y.push({type:"divider",className:"divider"});break;case"zoom":y.push(...m("zoom-out"),...m("".concat(parseInt("".concat(u.value*100),10),"%")),...m("zoom-in"),...m("scale-to-original"),...m("scale-to-fit"));break;case"delete":y.push({type:"button",className:"delete",icon:markRaw(delete_default),tooltip:"刪除(Delete)",disabled:()=>{var S;return((S=r.get("node"))==null?void 0:S.type)===NodeType.PAGE},handler:()=>{const S=r.get("node");S&&r.remove(S)}});break;case"undo":y.push({type:"button",className:"undo",icon:markRaw(back_default),tooltip:"后退(".concat(f,"+z)"),disabled:()=>!s.state.canUndo,handler:()=>r.undo()});break;case"redo":y.push({type:"button",className:"redo",icon:markRaw(right_default),tooltip:"前进(".concat(f,"+Shift+z)"),disabled:()=>!s.state.canRedo,handler:()=>r.redo()});break;case"zoom-in":y.push({type:"button",className:"zoom-in",icon:markRaw(zoom_in_default),tooltip:"放大(".concat(f,"+=)"),handler:()=>t==null?void 0:t.zoom(.1)});break;case"zoom-out":y.push({type:"button",className:"zoom-out",icon:markRaw(zoom_out_default),tooltip:"縮小(".concat(f,"+-)"),handler:()=>t==null?void 0:t.zoom(-.1)});break;case"scale-to-original":y.push({type:"button",className:"scale-to-original",icon:markRaw(scale_to_original_default),tooltip:"缩放到实际大小(".concat(f,"+1)"),handler:()=>t==null?void 0:t.set("zoom",1)});break;case"scale-to-fit":y.push({type:"button",className:"scale-to-fit",icon:markRaw(full_screen_default),tooltip:"缩放以适应(".concat(f,"+0)"),handler:async()=>t==null?void 0:t.set("zoom",await t.calcZoom())});break;case"rule":y.push({type:"button",className:"rule",icon:markRaw(memo_default),tooltip:d.value?"隐藏标尺":"显示标尺",handler:()=>t==null?void 0:t.set("showRule",!d.value)});break;case"guides":y.push({type:"button",className:"guides",icon:markRaw(grid_default),tooltip:c.value?"隐藏参考线":"显示参考线",handler:()=>t==null?void 0:t.set("showGuides",!c.value)});break;default:y.push({type:"text",text:C})}return y},_=computed$1(()=>{const C={[ColumnLayout.LEFT]:[],[ColumnLayout.CENTER]:[],[ColumnLayout.RIGHT]:[]};return l.forEach(y=>{(e.data[y]||[]).forEach(w=>{C[y].push(...m(w))})}),C}),v=useTemplateRef("navMenu"),b=new ResizeObserver(()=>{var y;const C=(y=v.value)==null?void 0:y.getBoundingClientRect();C&&t.set("navMenuRect",{left:C.left,top:C.top,width:C.width,height:C.height})});return onMounted(()=>{v.value&&b.observe(v.value)}),onBeforeUnmount(()=>{b.disconnect()}),(C,y)=>(openBlock(),createElementBlock("div",{class:"m-editor-nav-menu",style:normalizeStyle({height:"".concat(o.height,"px")}),ref:"navMenu"},[(openBlock(!0),createElementBlock(Fragment,null,renderList(unref(l),S=>{var w;return openBlock(),createElementBlock("div",{class:normalizeClass("menu-".concat(S)),key:S,style:normalizeStyle("width: ".concat((w=a.value)==null?void 0:w[S],"px"))},[(openBlock(!0),createElementBlock(Fragment,null,renderList(_.value[S],(E,x)=>(openBlock(),createBlock(_sfc_main$z,{data:E,key:x},null,8,["data"]))),128))],6)}),128))],4))}}),_hoisted_1$d={class:"m-editor-props-form-panel"},_sfc_main$q=defineComponent({name:"MEditorFormPanel",__name:"FormPanel",props:{config:{},values:{},disabledShowSrc:{type:Boolean},labelWidth:{},codeValueKey:{},labelPosition:{},extendState:{type:Function}},emits:["submit","submit-error","form-error","mounted","unmounted"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=useServices(),{editorService:l,uiService:c}=a,d=inject("codeOptions",{}),u=ref$1(!1),g=computed$1(()=>c.get("propsPanelSize")||"small"),{height:f}=useEditorContentHeight(),m=computed$1(()=>l.get("stage")),_=useTemplateRef("configForm");watchEffect(()=>{_.value&&(_.value.formState.stage=m.value,_.value.formState.services=a)});const v=getCurrentInstance$1();onMounted(()=>{s("mounted",v==null?void 0:v.proxy)}),onUnmounted(()=>{s("unmounted")});const b=async(S,w)=>{var E;try{const x=await((E=_.value)==null?void 0:E.submitForm());s("submit",x,w)}catch(x){s("submit-error",x)}},C=S=>{s("form-error",S)},y=S=>{s("submit",r.codeValueKey?{[r.codeValueKey]:S}:S)};return e({configForm:_,submit:b}),(S,w)=>(openBlock(),createElementBlock("div",_hoisted_1$d,[renderSlot(S.$slots,"props-form-panel-header"),createVNode(unref(_sfc_main$c$2),null,{default:withCtx(()=>[createVNode(unref(_sfc_main$g$1),{ref:"configForm",class:normalizeClass(g.value),"popper-class":"m-editor-props-panel-popper ".concat(g.value),"label-width":o.labelWidth,"label-position":o.labelPosition,size:g.value,"init-values":o.values,config:o.config,"extend-state":o.extendState,onChange:b,onError:C},null,8,["class","popper-class","label-width","label-position","size","init-values","config","extend-state"])]),_:1}),o.disabledShowSrc?createCommentVNode("v-if",!0):(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,class:"m-editor-props-panel-src-icon",circle:"",title:"源码",type:u.value?"primary":"",onClick:w[0]||(w[0]=E=>u.value=!u.value)},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(document_default)},null,8,["icon"])]),_:1},8,["type"])),u.value?(openBlock(),createBlock(_sfc_main$1q,{key:1,class:"m-editor-props-panel-src-code",height:"".concat(unref(f),"px"),"init-values":o.codeValueKey?o.values[o.codeValueKey]:o.values,options:unref(d),parse:!0,onSave:y},null,8,["height","init-values","options"])):createCommentVNode("v-if",!0)]))}}),useStylePanel=({uiService:o,storageService:e},t)=>{const r="props-panel-show-style-panel",s=e.getItem(r,{protocol:Protocol.BOOLEAN});typeof s=="boolean"&&o.set("showStylePanel",s);const a=computed$1(()=>{var d;return l.value&&((d=o.get("showStylePanel"))!=null?d:!0)}),l=computed$1(()=>o.get("frameworkRect").width>=1280);watch(()=>o.get("frameworkRect").width,()=>{o.get("columnWidth").right<t.value&&c(!1)});const c=d=>{o.set("showStylePanel",d),e.setItem(r,d,{protocol:Protocol.BOOLEAN});const u={...o.get("columnWidth")};d?(u.right+=t.value,u.center-=t.value):(u.right-=t.value,u.center+=t.value),u.center<0&&(u.right=u.right+u.center-MIN_CENTER_COLUMN_WIDTH,u.center=MIN_CENTER_COLUMN_WIDTH,t.value=u.right/2),e.setItem(RIGHT_COLUMN_WIDTH_STORAGE_KEY,u.right,{protocol:Protocol.NUMBER}),o.set("columnWidth",u)};return{showStylePanel:a,showStylePanelToggleButton:l,toggleStylePanel:c}},_hoisted_1$c={ref:"propsPanel",class:"m-editor-props-panel"},_hoisted_2$4={class:"m-editor-props-style-panel-title"},_sfc_main$p=defineComponent({name:"MEditorPropsPanel",__name:"PropsPanel",props:{disabledShowSrc:{type:Boolean},extendState:{type:Function}},emits:["submit-error","form-error","mounted","unmounted"],setup(o,{expose:e,emit:t}){const r=t,{editorService:s,uiService:a,propsService:l,storageService:c}=useServices(),d=ref$1({}),u=ref$1([]),g=computed$1(()=>s.get("node")),f=computed$1(()=>s.get("nodes")),m=[{tabPosition:"right",items:styleTabConfig.items}],_=async()=>{if(!g.value){u.value=[];return}const I=g.value.type||(g.value.items?"container":"text");u.value=await l.getPropsConfig(I),d.value=g.value};watchEffect(_),l.on("props-configs-change",_),onBeforeUnmount(()=>{l.off("props-configs-change",_)});const v=async(I,T)=>{var M;try{I.id||(I.id=d.value.id);const R={...I,style:{}};I.style&&(Object.entries(I.style).forEach(([N,A])=>{A!==""&&R.style&&(R.style[N]=A)}),(M=T==null?void 0:T.changeRecords)==null||M.forEach(N=>{var A;(A=N.propPath)!=null&&A.startsWith("style")&&N.value===""&&setValueByKeyPath(N.propPath,N.value,R)})),s.update(R,{changeRecords:T==null?void 0:T.changeRecords})}catch(R){r("submit-error",R)}},b=I=>{r("form-error",I)},C=()=>{D.value&&r("mounted",D.value)},y=()=>{r("unmounted")},S=useTemplateRef("propsPanel"),w=ref$1(c.getItem(PROPS_PANEL_WIDTH_STORAGE_KEY,{protocol:Protocol.NUMBER})||300);onMounted(()=>{var I;(I=S.value)==null||I.style.setProperty("--props-style-panel-width","".concat(Math.max(w.value,0),"px"))});const E=({deltaX:I})=>{if(!S.value)return;let M=globalThis.parseFloat(getComputedStyle(S.value).getPropertyValue("--props-style-panel-width"))-I;M>a.get("columnWidth").right&&(M=a.get("columnWidth").right-40),w.value=Math.max(M,0)};watch(w,I=>{var T;(T=S.value)==null||T.style.setProperty("--props-style-panel-width","".concat(I,"px")),c.setItem(PROPS_PANEL_WIDTH_STORAGE_KEY,I,{protocol:Protocol.NUMBER})});const{showStylePanel:x,showStylePanelToggleButton:L,toggleStylePanel:k}=useStylePanel({storageService:c,uiService:a},w),D=useTemplateRef("propertyFormPanel");return e({getFormState(){var I,T;return(T=(I=D.value)==null?void 0:I.configForm)==null?void 0:T.formState},submit:v}),(I,T)=>withDirectives((openBlock(),createElementBlock("div",_hoisted_1$c,[renderSlot(I.$slots,"props-panel-header"),createVNode(_sfc_main$q,{ref:"propertyFormPanel",class:normalizeClass(["m-editor-props-property-panel",{"show-style-panel":unref(x)}]),config:u.value,values:d.value,disabledShowSrc:o.disabledShowSrc,extendState:o.extendState,onSubmit:v,onSubmitError:b,onFormError:b,onMounted:C,onUnmounted:y},null,8,["class","config","values","disabledShowSrc","extendState"]),unref(x)?(openBlock(),createBlock(_sfc_main$B,{key:0,onChange:E})):createCommentVNode("v-if",!0),unref(x)?(openBlock(),createBlock(_sfc_main$q,{key:1,class:"m-editor-props-style-panel","label-position":"top","code-value-key":"style",config:m,values:d.value,disabledShowSrc:o.disabledShowSrc,extendState:o.extendState,onSubmit:v,onSubmitError:b,onFormError:b},{"props-form-panel-header":withCtx(()=>[createBaseVNode("div",_hoisted_2$4,[T[2]||(T[2]=createBaseVNode("span",null,"样式",-1)),createBaseVNode("div",null,[createVNode(unref(_sfc_main$F$1),{link:"",size:"small",onClick:T[0]||(T[0]=M=>unref(k)(!1))},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(close_default)},null,8,["icon"])]),_:1})])])]),_:1},8,["values","disabledShowSrc","extendState"])):createCommentVNode("v-if",!0),unref(L)&&!unref(x)?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:2,class:"m-editor-props-panel-style-icon",circle:"",onClick:T[1]||(T[1]=M=>unref(k)(!0))},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(sugar_default)},null,8,["icon"])]),_:1})):createCommentVNode("v-if",!0)],512)),[[vShow,f.value.length===1]])}}),_sfc_main$o=defineComponent({name:"MEditorContentMenu",__name:"ContentMenu",props:{menuData:{default:()=>[]},isSubMenu:{type:Boolean,default:!1},active:{},autoHide:{type:Boolean,default:!0}},emits:["hide","show","mouseenter"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=useTemplateRef("menu"),l=useTemplateRef("buttons"),c=useTemplateRef("subMenu"),d=ref$1(!1),u=ref$1([]),g=useZIndex(),f=ref$1(0),m=ref$1({left:0,top:0}),_=computed$1(()=>({top:"".concat(m.value.top+2,"px"),left:"".concat(m.value.left+2,"px"),zIndex:f.value})),v=L=>{var k,D;return((k=a.value)==null?void 0:k.contains(L))||((D=c.value)==null?void 0:D.contains(L))},b=()=>{var L;d.value&&(d.value=!1,(L=c.value)==null||L.hide(),s("hide"))},C=L=>{r.autoHide&&L.button===0&&b()},y=L=>{if(!r.autoHide)return;const k=L.target;!d.value||!k||v(k)||b()},S=L=>{var I;const k=((I=a.value)==null?void 0:I.clientHeight)||0;let D=L.clientY;k+L.clientY>document.body.clientHeight&&(D=document.body.clientHeight-k),m.value={top:D,left:L.clientX}},w=L=>{d.value=!0,nextTick(()=>{L&&S(L),f.value=g.nextZIndex(),s("show")})},E=(L,k)=>{const D=L;typeof L=="object"&&(u.value=D.items||[],setTimeout(()=>{var I,T,M;if(d.value&&a.value){let R=a.value.offsetTop;(I=l.value)!=null&&I[k].$el&&(R=((T=l.value)==null?void 0:T[k].$el.getBoundingClientRect()).top),(M=c.value)==null||M.show({clientX:a.value.offsetLeft+a.value.clientWidth-2,clientY:R})}},0))},x=()=>{s("mouseenter")};return onMounted(()=>{r.isSubMenu||globalThis.addEventListener("mousedown",y,!0)}),onBeforeUnmount(()=>{r.isSubMenu||globalThis.removeEventListener("mousedown",y,!0)}),e({menu:a,menuPosition:m,hide:b,show:w,contains:v,setPosition:S}),(L,k)=>{const D=resolveComponent("content-menu",!0);return openBlock(),createBlock(Transition,{name:"fade",persisted:""},{default:withCtx(()=>[withDirectives(createBaseVNode("div",{class:"magic-editor-content-menu",ref:"menu",style:normalizeStyle(_.value),onMouseenter:k[0]||(k[0]=I=>x()),onContextmenu:k[1]||(k[1]=withModifiers(()=>{},["prevent"]))},[renderSlot(L.$slots,"title"),createBaseVNode("div",null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.menuData,(I,T)=>(openBlock(),createBlock(_sfc_main$z,{"event-type":"mouseup",ref_for:!0,ref:"buttons",class:normalizeClass({active:o.active&&I.id===o.active}),data:I,key:T,onMouseup:C,onMouseenter:M=>E(I,T)},null,8,["class","data","onMouseenter"]))),128))]),(openBlock(),createBlock(Teleport,{to:"body"},[u.value.length?(openBlock(),createBlock(D,{key:0,class:"sub-menu",ref:"subMenu",active:o.active,"menu-data":u.value,"is-sub-menu":!0,onHide:b},null,8,["active","menu-data"])):createCommentVNode("v-if",!0)]))],36),[[vShow,d.value]])]),_:3})}}}),_sfc_main$n=defineComponent({name:"MEditorSearchInput",__name:"SearchInput",emits:["search"],setup(o,{emit:e}){const t=e,r=ref$1("");let s=null;const a=()=>{s&&clearTimeout(s),s=setTimeout(()=>{t("search",r.value),s=null},300)};return(l,c)=>(openBlock(),createBlock(unref(_sfc_main$m$2),{modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),class:"search-input",size:"small",placeholder:"输入关键字进行过滤",clearable:"",onInput:a},{prefix:withCtx(()=>[createVNode(unref(_sfc_main$n$2),null,{default:withCtx(()=>[createVNode(unref(search_default))]),_:1})]),_:1},8,["modelValue"]))}}),_hoisted_1$b=["draggable","data-node-id","data-parent-id","data-parents-id","data-is-container"],_hoisted_2$3={class:"tree-node-label"},_hoisted_3$1={class:"tree-node-tool"},_hoisted_4$1={key:0,class:"m-editor-tree-node-children"},_sfc_main$m=defineComponent({name:"MEditorTreeNode",__name:"TreeNode",props:{data:{},parent:{},parentsId:{default:()=>[]},nodeStatusMap:{},indent:{default:0},nextLevelIndentIncrement:{default:11}},emits:["node-dragstart","node-dragleave","node-dragend","node-contextmenu","node-mouseenter","node-click"],setup(o,{emit:e}){const t=inject("treeEmit"),r=o,s=computed$1(()=>{var y;return((y=r.nodeStatusMap)==null?void 0:y.get(r.data.id))||{selected:!1,expand:!1,visible:!1,draggable:!1}}),a=computed$1(()=>s.value.expand),l=computed$1(()=>s.value.selected),c=computed$1(()=>s.value.visible),d=computed$1(()=>s.value.draggable),u=computed$1(()=>Array.isArray(r.data.items)&&r.data.items.some(y=>{var S;return(S=r.nodeStatusMap.get(y.id))==null?void 0:S.visible})),g=y=>{t==null||t("node-dragstart",y,r.data)},f=y=>{t==null||t("node-dragleave",y,r.data)},m=y=>{t==null||t("node-dragend",y,r.data)},_=y=>{t==null||t("node-contextmenu",y,r.data)},v=y=>{t==null||t("node-mouseenter",y,r.data)},b=()=>{updateStatus(r.nodeStatusMap,r.data.id,{expand:!a.value})},C=y=>{t==null||t("node-click",y,r.data)};return(y,S)=>{var E;const w=resolveComponent("TreeNode",!0);return withDirectives((openBlock(),createElementBlock("div",{class:"m-editor-tree-node",draggable:d.value,"data-node-id":o.data.id,"data-parent-id":(E=o.parent)==null?void 0:E.id,"data-parents-id":o.parentsId,"data-is-container":Array.isArray(o.data.items),onDragstart:g,onDragleave:f,onDragend:m},[createBaseVNode("div",{class:normalizeClass(["tree-node",{selected:l.value,expanded:a.value}]),style:normalizeStyle("padding-left: ".concat(o.indent,"px")),onContextmenu:_,onMouseenter:v},[createVNode(_sfc_main$1r,{class:"expand-icon",style:normalizeStyle(u.value?"":"color: transparent; cursor: default"),icon:a.value?unref(arrow_down_default):unref(arrow_right_default),onClick:b},null,8,["style","icon"]),createBaseVNode("div",{class:"tree-node-content",onClick:C},[renderSlot(y.$slots,"tree-node-content",{data:o.data},()=>[createBaseVNode("div",_hoisted_2$3,[renderSlot(y.$slots,"tree-node-label",{data:o.data},()=>[createTextVNode(toDisplayString("".concat(o.data.name," (").concat(o.data.id,")")),1)])]),createBaseVNode("div",_hoisted_3$1,[renderSlot(y.$slots,"tree-node-tool",{data:o.data})])])])],38),u.value&&a.value?(openBlock(),createElementBlock("div",_hoisted_4$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(o.data.items,x=>(openBlock(),createBlock(w,{key:x.id,data:x,parent:o.data,parentsId:[...o.parentsId,o.data.id],"node-status-map":o.nodeStatusMap,indent:o.indent+o.nextLevelIndentIncrement},{"tree-node-content":withCtx(({data:L})=>[renderSlot(y.$slots,"tree-node-content",{data:L})]),"tree-node-label":withCtx(({data:L})=>[renderSlot(y.$slots,"tree-node-label",{data:L})]),"tree-node-tool":withCtx(({data:L})=>[renderSlot(y.$slots,"tree-node-tool",{data:L})]),_:3},8,["data","parent","parentsId","node-status-map","indent"]))),128))])):createCommentVNode("v-if",!0)],40,_hoisted_1$b)),[[vShow,c.value]])}}}),_hoisted_1$a={key:1,class:"m-editor-tree-empty"},_sfc_main$l=defineComponent({name:"MEditorTree",__name:"Tree",props:{data:{},nodeStatusMap:{},indent:{default:0},nextLevelIndentIncrement:{},emptyText:{default:"暂无数据"}},emits:["node-dragover","node-dragstart","node-dragleave","node-dragend","node-contextmenu","node-mouseenter","node-click"],setup(o,{emit:e}){const t=e;provide("treeEmit",t);const r=s=>{t("node-dragover",s)};return(s,a)=>{var l;return openBlock(),createElementBlock("div",{class:"m-editor-tree",onDragover:r},[(l=o.data)!=null&&l.length?(openBlock(!0),createElementBlock(Fragment,{key:0},renderList(o.data,c=>(openBlock(),createBlock(_sfc_main$m,{key:c.id,data:c,indent:o.indent,"next-level-indent-increment":o.nextLevelIndentIncrement,"node-status-map":o.nodeStatusMap},{"tree-node-content":withCtx(({data:d})=>[renderSlot(s.$slots,"tree-node-content",{data:d})]),"tree-node-label":withCtx(({data:d})=>[renderSlot(s.$slots,"tree-node-label",{data:d})]),"tree-node-tool":withCtx(({data:d})=>[renderSlot(s.$slots,"tree-node-tool",{data:d})]),_:3},8,["data","indent","next-level-indent-increment","node-status-map"]))),128)):(openBlock(),createElementBlock("div",_hoisted_1$a,[createBaseVNode("p",null,toDisplayString(o.emptyText),1)]))],32)}}}),_sfc_main$k=defineComponent({name:"MEditorCodeBlockList",__name:"CodeBlockList",props:{indent:{},nextLevelIndentIncrement:{},customError:{type:Function}},emits:["edit","remove","node-contextmenu"],setup(o,{expose:e,emit:t}){const r=o,s=t,{codeBlockService:a,depService:l,editorService:c}=useServices(),d=computed$1(()=>Object.entries(a.getCodeDsl()||{}).map(([S,w])=>{var k,D;const E=l.getTarget(S,DepTargetType.CODE_BLOCK),x=((k=c.get("root"))==null?void 0:k.items.map(I=>{var T;return{name:((T=I.devconfig)==null?void 0:T.tabName)||I.name,type:"node",id:"".concat(S,"_").concat(I.id),key:I.id,items:[]}}))||[];return E&&Object.entries(E.deps).forEach(([I,T])=>{var R;const M=x.find(N=>{var A;return N.key===((A=T.data)==null?void 0:A.pageId)});(R=M==null?void 0:M.items)==null||R.push({name:T.name,type:"node",id:"".concat(M.id,"_").concat(I),key:I,items:T.keys.map(N=>({name:"".concat(N),id:"".concat(E.id,"_").concat(I,"_").concat(N),type:"key"}))})}),{id:S,key:S,name:w.name,type:"code",codeBlockContent:a.getCodeContentById(S),items:x.length>1?x.filter(I=>{var T;return(T=I.items)==null?void 0:T.length}):((D=x[0])==null?void 0:D.items)||[]}})),u=(S,w)=>S?"".concat(w.name).concat(w.id).toLocaleLowerCase().includes(S.toLocaleLowerCase()):!0,{nodeStatusMap:g}=useNodeStatus$1(d),{filterTextChangeHandler:f}=useFilter(d,g,u),m=computed$1(()=>a.getEditStatus()),_=S=>{const w=c.get("stage");c.select(S),w==null||w.select(S)},v=(S,w)=>{w.type==="node"&&_(w.key)},b=S=>{s("edit",S)},C=async S=>{var L;const w=d.value.find(k=>k.id===S),E=!!((L=w==null?void 0:w.items)!=null&&L.length),x=a.getUndeletableList()||[];!E&&!x.includes(S)?(await tMagicMessageBox.confirm("确定删除该代码块吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),s("remove",S)):typeof r.customError=="function"?r.customError(S,E?CodeDeleteErrorType.BIND:CodeDeleteErrorType.UNDELETEABLE):E?tMagicMessage.error("代码块存在绑定关系,不可删除"):tMagicMessage.error("代码块不可删除")},y=(S,w)=>{s("node-contextmenu",S,w)};return e({nodeStatusMap:g,filter:f,deleteCode:C}),(S,w)=>(openBlock(),createBlock(_sfc_main$l,{data:d.value,"node-status-map":unref(g),indent:o.indent,"next-level-indent-increment":o.nextLevelIndentIncrement,onNodeClick:v,onNodeContextmenu:y},{"tree-node-label":withCtx(({data:E})=>[createBaseVNode("div",{class:normalizeClass({code:E.type==="code",hook:E.type==="key",disabled:E.type==="key"||E.type==="code"})},toDisplayString(E.name)+" "+toDisplayString(E.key?"(".concat(E.key,")"):""),3)]),"tree-node-tool":withCtx(({data:E})=>[E.type==="code"?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,effect:"dark",content:m.value?"编辑":"查看",placement:"bottom"},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:m.value?unref(edit_default):unref(view_default),class:"edit-icon",onClick:withModifiers(x=>b("".concat(E.key)),["stop"])},null,8,["icon","onClick"])]),_:2},1032,["content"])):createCommentVNode("v-if",!0),E.type==="code"&&m.value?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:1,effect:"dark",content:"删除",placement:"bottom"},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(close_default),class:"edit-icon",onClick:withModifiers(x=>C("".concat(E.key)),["stop"])},null,8,["icon","onClick"])]),_:2},1024)):createCommentVNode("v-if",!0),renderSlot(S.$slots,"code-block-panel-tool",{id:E.key,data:E})]),_:3},8,["data","node-status-map","indent","next-level-indent-increment"]))}}),useContentMenu$1=o=>{const e=inject("eventBus"),t=useTemplateRef("menu");let r="";return{menuData:[{type:"button",text:"编辑",icon:edit_default,display:({codeBlockService:c})=>c.getEditStatus(),handler:()=>{r&&(e==null||e.emit("edit-code",r))}},{type:"button",text:"复制并粘贴至当前",icon:markRaw(copy_document_default),handler:async({codeBlockService:c})=>{if(!r)return;const d=c.getCodeContentById(r);if(!d)return;const u=await c.getUniqueId();c.setCodeDslById(u,cloneDeep(d))}},{type:"button",text:"删除",icon:delete_default,handler:()=>{r&&o(r)}}],nodeContentMenuHandler:(c,d)=>{var u;c.preventDefault(),d.type==="code"&&((u=t.value)==null||u.show(c),d.id?r="".concat(d.id):r="")},contentMenuHideHandler:()=>{r=""}}},_hoisted_1$9={class:"search-wrapper"},_sfc_main$j=defineComponent({name:"MEditorCodeBlockListPanel",__name:"CodeBlockListPanel",props:{indent:{},nextLevelIndentIncrement:{},customError:{type:Function},customContentMenu:{type:Function}},setup(o){const e=o,t=inject("eventBus"),{codeBlockService:r}=useServices(),s=computed$1(()=>r.getEditStatus()),{codeId:a,codeBlockEditor:l,codeConfig:c,editCode:d,deleteCode:u,createCodeBlock:g,submitCodeBlockHandler:f}=useCodeBlockEdit(r),m=useTemplateRef("codeBlockList"),_=w=>{var E;(E=m.value)==null||E.filter(w)};t==null||t.on("edit-code",w=>{d(w)}),watch(a,()=>{if(m.value)for(const[w,E]of m.value.nodeStatusMap.entries())E.selected=w===a.value});const v=()=>{if(m.value)for(const[,w]of m.value.nodeStatusMap.entries())w.selected=!1},{nodeContentMenuHandler:b,menuData:C,contentMenuHideHandler:y}=useContentMenu$1(w=>{var E;(E=m.value)==null||E.deleteCode(w)}),S=computed$1(()=>e.customContentMenu(C,"code-block"));return(w,E)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(unref(_sfc_main$c$2),{class:"m-editor-code-block-list m-editor-layer-panel"},{default:withCtx(()=>[renderSlot(w.$slots,"code-block-panel-header",{},()=>[createBaseVNode("div",_hoisted_1$9,[createVNode(_sfc_main$n,{onSearch:_}),s.value?(openBlock(),createBlock(unref(_sfc_main$F$1),{key:0,class:"create-code-button",type:"primary",size:"small",onClick:unref(g)},{default:withCtx(()=>[...E[0]||(E[0]=[createTextVNode("新增",-1)])]),_:1},8,["onClick"])):createCommentVNode("v-if",!0),renderSlot(w.$slots,"code-block-panel-search")])]),createCommentVNode(" 代码块列表 "),createVNode(_sfc_main$k,{ref:"codeBlockList","custom-error":o.customError,indent:o.indent,"next-level-indent-increment":o.nextLevelIndentIncrement,onEdit:unref(d),onRemove:unref(u),onNodeContextmenu:unref(b)},{"code-block-panel-tool":withCtx(({id:x,data:L})=>[renderSlot(w.$slots,"code-block-panel-tool",{id:x,data:L})]),_:3},8,["custom-error","indent","next-level-indent-increment","onEdit","onRemove","onNodeContextmenu"])]),_:3}),unref(c)?(openBlock(),createBlock(_sfc_main$1e,{key:0,ref_key:"codeBlockEditor",ref:l,disabled:!s.value,content:unref(c),onSubmit:unref(f),onClose:v},null,8,["disabled","content","onSubmit"])):createCommentVNode("v-if",!0),(openBlock(),createBlock(Teleport,{to:"body"},[S.value.length?(openBlock(),createBlock(_sfc_main$o,{key:0,"menu-data":S.value,ref:"menu",style:{overflow:"initial"},onHide:unref(y)},null,8,["menu-data","onHide"])):createCommentVNode("v-if",!0)]))],64))}}),useDataSourceEdit=o=>{const e=ref$1(""),t=ref$1(),r=ref$1({}),s=computed$1(()=>o.get("editable"));return{dialogTitle:e,editDialog:t,dataSourceValues:r,editable:s,editHandler:c=>{t.value&&(r.value={...o.getDataSourceById(c)||{}},e.value="编辑".concat(r.value.title||""),t.value.show())},submitDataSourceHandler:(c,d)=>{var u;c.id?o.update(c,{changeRecords:d.changeRecords}):o.add(c),(u=t.value)==null||u.hide()}}},_sfc_main$i=defineComponent({name:"MEditorDataSourceConfigPanel",__name:"DataSourceConfigPanel",props:mergeModels({title:{},values:{},disabled:{type:Boolean}},{visible:{type:Boolean,default:!1},visibleModifiers:{},width:{default:670},widthModifiers:{}}),emits:mergeModels(["submit","close","open"],["update:visible","update:width"]),setup(o,{expose:e,emit:t}){const r=o,s=useModel(o,"visible"),a=useModel(o,"width"),l=t,{uiService:c,dataSourceService:d}=useServices(),u=ref$1({}),g=ref$1([]),{height:f}=useEditorContentHeight(),m=inject("parentFloating",ref$1(null)),{boxPosition:_,calcBoxPosition:v}=useNextFloatBoxPosition(c,m);watchEffect(()=>{u.value=r.values,g.value=d.getFormConfig(u.value.type)});const b=(y,S)=>{l("submit",y,S)},C=y=>{tMagicMessage.error(y.message)};return watch(s,y=>{nextTick(()=>{var S;y?(S=u.value)!=null&&S.id&&l("open",u.value.id):l("close")})}),e({show(){v(),s.value=!0},hide(){s.value=!1}}),(y,S)=>(openBlock(),createBlock(_sfc_main$1j,{visible:s.value,"onUpdate:visible":S[0]||(S[0]=w=>s.value=w),width:a.value,"onUpdate:width":S[1]||(S[1]=w=>a.value=w),height:unref(f),"onUpdate:height":S[2]||(S[2]=w=>isRef(f)?f.value=w:null),title:o.title,position:unref(_)},{body:withCtx(()=>[createVNode(unref(_sfc_main$1u),{"label-width":"80px",title:o.title,config:g.value,values:u.value,disabled:o.disabled,style:{height:"100%"},onSubmit:b,onError:C},null,8,["title","config","values","disabled"])]),_:1},8,["visible","width","height","title","position"]))}}),_sfc_main$h=defineComponent({name:"MEditorDataSourceList",__name:"DataSourceList",props:{indent:{},nextLevelIndentIncrement:{}},emits:["edit","remove","node-contextmenu"],setup(o,{expose:e,emit:t}){const r=t,{depService:s,editorService:a,dataSourceService:l}=useServices(),c=computed$1(()=>l.get("editable")),d=computed$1(()=>l.get("dataSources")),u=computed$1(()=>s.getTargets(DepTargetType.DATA_SOURCE)),g=computed$1(()=>s.getTargets(DepTargetType.DATA_SOURCE_METHOD)),f=computed$1(()=>s.getTargets(DepTargetType.DATA_SOURCE_COND)),m=(D,I,T)=>D.keys.map(M=>({name:M,id:"".concat(T,"_").concat(M),type:"key",isMethod:I==="method",isCond:I==="cond"})),_=(D,I,T,M)=>({name:I.name,type:"node",id:"".concat(M,"_").concat(D),key:D,items:m(I,T,"".concat(M,"_").concat(D))}),v=(D,I,T,M)=>{Object.entries(T).forEach(([R,N])=>{const A=I.find(P=>{var F;return P.key===((F=N.data)==null?void 0:F.pageId)}),O=A==null?void 0:A.items.find(P=>P.key===R);O?O.items=O.items.concat(m(N,M,O.key)):A==null||A.items.push(_(R,N,M,A.id))})},b=computed$1(()=>d.value.map(D=>{var N,A,O,P,F;const I=((N=u.value[D.id])==null?void 0:N.deps)||{},T=((A=g.value[D.id])==null?void 0:A.deps)||{},M=((O=f.value[D.id])==null?void 0:O.deps)||{},R=((P=a.get("root"))==null?void 0:P.items.map(B=>{var H;return{name:((H=B.devconfig)==null?void 0:H.tabName)||B.name,type:"node",id:"".concat(D.id,"_").concat(B.id),key:B.id,items:[]}}))||[];return v(D.id,R,I),v(D.id,R,T,"method"),v(D.id,R,M,"cond"),{id:D.id,key:D.id,name:D.title,type:"ds",items:R.length>1?R.filter(B=>B.items.length):((F=R[0])==null?void 0:F.items)||[]}})),C=(D,I)=>D?"".concat(I.name).concat(I.id).toLocaleLowerCase().includes(D.toLocaleLowerCase()):!0,{nodeStatusMap:y}=useNodeStatus$1(b),{filterTextChangeHandler:S}=useFilter(b,y,C),w=D=>{r("edit",D)},E=async D=>{r("remove",D)},x=D=>{const I=a.get("stage");a.select(D),I==null||I.select(D)},L=(D,I)=>{I.type==="node"&&x(I.key)},k=(D,I)=>{r("node-contextmenu",D,I)};return e({nodeStatusMap:y,filter:S}),(D,I)=>(openBlock(),createBlock(_sfc_main$l,{data:b.value,"node-status-map":unref(y),indent:o.indent,"next-level-indent-increment":o.nextLevelIndentIncrement,onNodeClick:L,onNodeContextmenu:k},{"tree-node-label":withCtx(({data:T})=>[createBaseVNode("div",{class:normalizeClass({ds:T.type==="ds",hook:T.type==="key",disabled:T.type==="key"||T.type==="ds"})},toDisplayString(T.name)+" "+toDisplayString(T.key?"(".concat(T.key,")"):""),3)]),"tree-node-tool":withCtx(({data:T})=>[T.type==="ds"?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,effect:"dark",content:c.value?"编辑":"查看",placement:"bottom"},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:c.value?unref(edit_default):unref(view_default),class:"edit-icon",onClick:withModifiers(M=>w("".concat(T.key)),["stop"])},null,8,["icon","onClick"])]),_:2},1032,["content"])):createCommentVNode("v-if",!0),T.type==="ds"&&c.value?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:1,effect:"dark",content:"删除",placement:"bottom"},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(close_default),class:"edit-icon",onClick:withModifiers(M=>E("".concat(T.key)),["stop"])},null,8,["icon","onClick"])]),_:2},1024)):createCommentVNode("v-if",!0),renderSlot(D.$slots,"data-source-panel-tool",{data:T})]),_:3},8,["data","node-status-map","indent","next-level-indent-increment"]))}}),useContentMenu=()=>{const o=inject("eventBus"),e=useTemplateRef("menu");let t="";return{menuData:[{type:"button",text:"编辑",icon:edit_default,display:({dataSourceService:l})=>l.get("editable"),handler:()=>{t&&(o==null||o.emit("edit-data-source",t))}},{type:"button",text:"复制并粘贴至当前",icon:markRaw(copy_document_default),handler:({dataSourceService:l})=>{if(!t)return;const c=l.getDataSourceById(t);c&&l.add(cloneDeep(c))}},{type:"button",text:"删除",icon:delete_default,handler:()=>{t&&(o==null||o.emit("remove-data-source",t))}}],nodeContentMenuHandler:(l,c)=>{var d;l.preventDefault(),c.type==="ds"&&((d=e.value)==null||d.show(l),c.id?t="".concat(c.id):t="")},contentMenuHideHandler:()=>{t=""}}},_hoisted_1$8={class:"search-wrapper"},_sfc_main$g=defineComponent({name:"MEditorDataSourceListPanel",__name:"DataSourceListPanel",props:{indent:{},nextLevelIndentIncrement:{},customContentMenu:{type:Function}},setup(o){const e=o,t=inject("eventBus"),{dataSourceService:r}=useServices(),{editDialog:s,dataSourceValues:a,dialogTitle:l,editable:c,editHandler:d,submitDataSourceHandler:u}=useDataSourceEdit(r),g=()=>{if(v.value)for(const[,E]of v.value.nodeStatusMap.entries())E.selected=!1};watch(a,E=>{if(v.value&&E.id)for(const[x,L]of v.value.nodeStatusMap.entries())L.selected=x===E.id});const f=computed$1(()=>[{text:"基础",type:"base"},{text:"HTTP",type:"http"}].concat(r.get("datasourceTypeList"))),m=E=>{if(!s.value)return;const x=f.value.find(L=>L.type===E);a.value=mergeWith({type:E,title:x==null?void 0:x.text},r.getFormValue(E),(L,k)=>{if(Array.isArray(k))return k}),l.value="新增".concat((x==null?void 0:x.text)||""),s.value.show()},_=async E=>{await tMagicMessageBox.confirm("确定删除?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),r.remove(E)},v=useTemplateRef("dataSourceList"),b=E=>{var x;(x=v.value)==null||x.filter(E)};t==null||t.on("edit-data-source",E=>{d(E)}),t==null||t.on("remove-data-source",E=>{_(E)});const{nodeContentMenuHandler:C,menuData:y,contentMenuHideHandler:S}=useContentMenu(),w=computed$1(()=>e.customContentMenu(y,"data-source"));return(E,x)=>(openBlock(),createElementBlock(Fragment,null,[createVNode(unref(_sfc_main$c$2),{class:"data-source-list-panel m-editor-layer-panel"},{default:withCtx(()=>[createBaseVNode("div",_hoisted_1$8,[createVNode(_sfc_main$n,{onSearch:b}),unref(c)?(openBlock(),createBlock(unref(_sfc_main$h$2),{key:0,placement:"right",trigger:"hover","popper-class":"data-source-list-panel-add-menu","destroy-on-close":!0},{reference:withCtx(()=>[createVNode(unref(_sfc_main$F$1),{type:"primary",size:"small"},{default:withCtx(()=>[...x[0]||(x[0]=[createTextVNode("新增",-1)])]),_:1})]),default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(f.value,(L,k)=>(openBlock(),createBlock(_sfc_main$z,{data:{type:"button",text:L.text,handler:()=>{m(L.type)}},key:k},null,8,["data"]))),128))]),_:1})):createCommentVNode("v-if",!0),renderSlot(E.$slots,"data-source-panel-search")]),createCommentVNode(" 数据源列表 "),createVNode(_sfc_main$h,{ref:"dataSourceList",indent:o.indent,"next-level-indent-increment":o.nextLevelIndentIncrement,onEdit:unref(d),onRemove:_,onNodeContextmenu:unref(C)},null,8,["indent","next-level-indent-increment","onEdit","onNodeContextmenu"])]),_:3}),createVNode(_sfc_main$i,{ref_key:"editDialog",ref:s,disabled:!unref(c),values:unref(a),title:unref(l),onSubmit:unref(u),onClose:g},null,8,["disabled","values","title","onSubmit"]),(openBlock(),createBlock(Teleport,{to:"body"},[w.value.length?(openBlock(),createBlock(_sfc_main$o,{key:0,"menu-data":w.value,ref:"menu",style:{overflow:"initial"},onHide:unref(S)},null,8,["menu-data","onHide"])):createCommentVNode("v-if",!0)]))],64))}}),_hoisted_1$7={width:"1em",height:"1em",viewBox:"0 0 16 16",class:"bi bi-folder-minus",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg"},_sfc_main$f=defineComponent({name:"MEditorFolderMinusIcon",__name:"FolderMinusIcon",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",_hoisted_1$7,[...t[0]||(t[0]=[createBaseVNode("path",{"fill-rule":"evenodd",d:"M9.828 4H2.19a1 1 0 0 0-.996 1.09l.637 7a1 1 0 0 0 .995.91H9v1H2.826a2 2 0 0 1-1.991-1.819l-.637-7a1.99 1.99 0 0 1 .342-1.31L.5 3a2 2 0 0 1 2-2h3.672a2 2 0 0 1 1.414.586l.828.828A2 2 0 0 0 9.828 3h3.982a2 2 0 0 1 1.992 2.181L15.546 8H14.54l.265-2.91A1 1 0 0 0 13.81 4H9.828zm-2.95-1.707L7.587 3H2.19c-.24 0-.47.042-.684.12L1.5 2.98a1 1 0 0 1 1-.98h3.672a1 1 0 0 1 .707.293z"},null,-1),createBaseVNode("path",{"fill-rule":"evenodd",d:"M11 11.5a.5.5 0 0 1 .5-.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 1-.5-.5z"},null,-1)])]))}}),useDeleteMenu=()=>({type:"button",text:"删除",icon:delete_default,display:({editorService:o})=>{const e=o.get("node");return(e==null?void 0:e.type)!==NodeType.ROOT&&!isPage(e)&&!isPageFragment(e)},handler:({editorService:o})=>{const e=o.get("nodes");e&&o.remove(e)}}),useCopyMenu=()=>({type:"button",text:"复制",icon:markRaw(copy_document_default),handler:({editorService:o})=>{const e=o==null?void 0:o.get("nodes");e&&(o==null||o.copy(e))}}),usePasteMenu=o=>({type:"button",text:"粘贴",icon:markRaw(document_copy_default),display:({storageService:e})=>!!e.getItem(COPY_STORAGE_KEY),handler:({editorService:e,uiService:t})=>{var s,a,l,c;const r=e==null?void 0:e.get("nodes");if(!(!r||r.length===0))if((s=o==null?void 0:o.value)!=null&&s.$el){const d=e.get("stage"),u=o.value.$el.getBoundingClientRect(),g=(a=d==null?void 0:d.container)==null?void 0:a.getBoundingClientRect(),f=calcValueByFontsize((l=d==null?void 0:d.renderer)==null?void 0:l.getDocument(),(u.left||0)-((g==null?void 0:g.left)||0))/t.get("zoom"),m=calcValueByFontsize((c=d==null?void 0:d.renderer)==null?void 0:c.getDocument(),(u.top||0)-((g==null?void 0:g.top)||0))/t.get("zoom");e.paste({left:f,top:m})}else e.paste()}}),moveTo=(o,{editorService:e})=>{const t=e.get("nodes")||[],r=e.getNodeById(o);r&&(e.add(t,r),e.remove(t))},useMoveToMenu=({editorService:o})=>{var t;const e=computed$1(()=>o.get("root"));return{type:"button",text:"移动至",display:({editorService:r})=>{const s=r.get("node"),a=r.get("pageLength");return!isPage(s)&&a>1},items:(((t=e.value)==null?void 0:t.items)||[]).filter(r=>{var s;return r.id!==((s=o.get("page"))==null?void 0:s.id)}).map(r=>({text:"".concat(r.name,"(").concat(r.id,")"),type:"button",handler:s=>{moveTo(r.id,s)}}))}},_sfc_main$e=defineComponent({name:"MEditorLayerMenu",__name:"LayerMenu",props:{layerContentMenu:{},customContentMenu:{type:Function}},emits:["collapse-all"],setup(o,{expose:e,emit:t}){const r=o,s=t,a=useServices(),{editorService:l,componentListService:c}=a,d=useTemplateRef("menu"),u=computed$1(()=>l.get("node")),g=computed$1(()=>l.get("nodes")),f=computed$1(()=>c.getList()),m=C=>C.items.map(y=>({text:y.text,type:"button",icon:y.icon,handler:()=>{l.add({name:y.text,type:y.type,...y.data||{}})}})),_=computed$1(()=>{var C,y;return((C=u.value)==null?void 0:C.type)==="tabs"?[{text:"标签页",type:"button",icon:files_default,handler:()=>{l.add({type:"tab-pane"})}}]:(y=u.value)!=null&&y.items?f.value.reduce((S,w,E)=>S.concat(m(w),E<f.value.length-1?[{type:"divider",direction:"horizontal"}]:[]),[])||[]:[]}),v=computed$1(()=>r.customContentMenu([{type:"button",text:"全部折叠",icon:_sfc_main$f,display:()=>isPage(u.value)||isPageFragment(u.value),handler:()=>{s("collapse-all")}},{type:"button",text:"新增",icon:markRaw(plus_default),display:()=>{var C,y;return((C=u.value)==null?void 0:C.items)&&((y=g.value)==null?void 0:y.length)===1},items:_.value},useCopyMenu(),usePasteMenu(),useDeleteMenu(),useMoveToMenu(a),...r.layerContentMenu],"layer"));return e({show:C=>{var y;(y=d.value)==null||y.show(C)}}),(C,y)=>(openBlock(),createBlock(_sfc_main$o,{"menu-data":v.value,ref:"menu",style:{overflow:"initial"}},null,8,["menu-data"]))}}),_sfc_main$d=defineComponent({__name:"LayerNodeTool",props:{data:{}},setup(o){const e=o,{editorService:t}=useServices(),r=s=>{t.update({id:e.data.id,visible:s})};return(s,a)=>o.data.type!=="page"?(openBlock(),createElementBlock(Fragment,{key:0},[o.data.visible===!1?(openBlock(),createBlock(_sfc_main$1r,{key:0,icon:unref(hide_default),onClick:a[0]||(a[0]=withModifiers(l=>r(!0),["stop"])),title:"点击显示"},null,8,["icon"])):(openBlock(),createBlock(_sfc_main$1r,{key:1,icon:unref(view_default),onClick:a[1]||(a[1]=withModifiers(l=>r(!1),["stop"])),class:"node-lock",title:"点击隐藏"},null,8,["icon"]))],64)):createCommentVNode("v-if",!0)}}),useClick=({editorService:o,stageOverlayService:e,uiService:t},r,s,a)=>{const l=computed$1(()=>r.value&&!o.get("disabledMultiSelect")),c=async _=>{var v,b;if(!_.id)throw new Error("没有id");l.value?d(_):(await o.select(_),(v=o.get("stage"))==null||v.select(_.id),(b=e.get("stage"))==null||b.select(_.id))},d=async _=>{var y,S;if(isPage(_)||isPageFragment(_))return;const v=o.get("nodes")||[],b=[];let C=!1;v.forEach(w=>{if(w.id===_.id){C=!0;return}isPage(w)||isPageFragment(w)||b.push(w.id)}),(!C||b.length===0)&&b.push(_.id),await o.multiSelect(b),(y=o.get("stage"))==null||y.multiSelect(b),(S=e.get("stage"))==null||S.multiSelect(b)},g=throttle$2((_,v)=>{f(v)},300),f=_=>{var v,b;o.highlight(_),(v=o.get("stage"))==null||v.highlight(_.id),(b=e.get("stage"))==null||b.highlight(_.id)},m=(_,v)=>{if(s!=null&&s.value){if(t.get("uiSelectMode")){document.dispatchEvent(new CustomEvent(UI_SELECT_MODE_EVENT_NAME,{detail:v}));return}v.items&&v.items.length>0&&!l.value&&updateStatus(s.value,v.id,{expand:!0}),nextTick(()=>{c(v)})}};return{menuRef:a,nodeClickHandler:m,nodeContentMenuHandler(_,v){var C;_.preventDefault();const b=o.get("nodes")||[];(b.length<2||!b.includes(v))&&m(_,v),(C=a.value)==null||C.show(_)},highlightHandler:g}},dragState={dragOverNodeId:"",dropType:"",container:null},getNodeEl=o=>{if(o.dataset.nodeId)return o;if(o.parentElement)return getNodeEl(o.parentElement)},removeStatusClass=o=>{o&&["drag-before","drag-after","drag-inner"].forEach(e=>{o.querySelectorAll(".".concat(e)).forEach(t=>{removeClassName(t,e)})})},useDrag=({editorService:o})=>({handleDragStart:a=>{if(!a.dataTransfer||!a.target||!a.currentTarget)return;const l=getNodeEl(a.target);if(!(!l||l!==a.currentTarget)){a.dataTransfer.effectAllowed="move",dragState.nodeId=l.dataset.nodeId;try{a.dataTransfer.setData("text/json",JSON.stringify({dragType:DragType.LAYER_TREE}))}catch(c){}}},handleDragEnd:(a,l)=>{if(!a.target||!a.currentTarget)return;const c=getNodeEl(a.target);if(!(!c||c!==a.currentTarget)){if(removeStatusClass(dragState.container),l&&dragState.dragOverNodeId&&dragState.dropType){if(dragState.dragOverNodeId===l.id)return;const d=o.getNodeInfo(dragState.dragOverNodeId,!1),u=d.node;let g=d.parent;if(!g||!u)return;let f=-1;Array.isArray(u.items)&&dragState.dropType==="inner"?(f=u.items.length,g=u):f=getNodeIndex(dragState.dragOverNodeId,g),dragState.dropType==="after"&&(f+=1);const m=o.get("nodes");m.find(_=>"".concat(_.id)==="".concat(l.id))?o.dragTo(m,g,f):o.dragTo([l],g,f)}dragState.dragOverNodeId="",dragState.dropType="",dragState.container=null}},handleDragLeave:a=>{if(!a.target||!a.currentTarget)return;const l=getNodeEl(a.target);if(!l||l!==a.currentTarget)return;const c=l.children[0];removeClassName(c,"drag-before","drag-after","drag-inner")},handleDragOver:a=>{var b;if(!a.target)return;const l=getNodeEl(a.target);if(!(l!=null&&l.draggable))return;const c=l.children[0];if(!c)return;removeClassName(c,"drag-before","drag-after","drag-inner");const{top:d,height:u}=c.getBoundingClientRect(),g=a.clientY-d,f=l.dataset.isContainer==="true",m=l.dataset.nodeId,{nodeId:_}=dragState,v=(b=l.dataset.parentsId)==null?void 0:b.split(",");if(m){if(v){let C=-1;for(let y=0,S=v.length;y<S;y++){const w=v[y];if(_===w&&(C=y),v.includes("".concat(_))&&y>=C)return}}g<u/3?(dragState.dropType="before",addClassName(c,globalThis.document,"drag-before")):g>u*2/3?(dragState.dropType="after",addClassName(c,globalThis.document,"drag-after")):f&&(dragState.dropType="inner",addClassName(c,globalThis.document,"drag-inner")),dragState.dropType&&(dragState.dragOverNodeId=m,dragState.container=a.currentTarget,a.preventDefault())}}});var KeyBindingContainerKey=(o=>(o.STAGE="stage",o.LAYER_PANEL="layer-panel",o))(KeyBindingContainerKey||{});const keybindingConfig=[{command:KeyBindingCommand.DELETE_NODE,keybinding:["delete","backspace"],when:[["stage","keyup"],["layer-panel","keydown"]]},{command:KeyBindingCommand.COPY_NODE,keybinding:"ctrl+c",when:[["stage","keydown"],["layer-panel","keydown"]]},{command:KeyBindingCommand.PASTE_NODE,keybinding:"ctrl+v",when:[["stage","keydown"],["layer-panel","keydown"]]},{command:KeyBindingCommand.CUT_NODE,keybinding:"ctrl+x",when:[["stage","keydown"],["layer-panel","keydown"]]},{command:KeyBindingCommand.UNDO,keybinding:"ctrl+z",when:[["stage","keydown"],["layer-panel","keydown"]]},{command:KeyBindingCommand.REDO,keybinding:"ctrl+shift+z",when:[["stage","keydown"],["layer-panel","keydown"]]},{command:KeyBindingCommand.MOVE_UP_1,keybinding:"up",when:[["stage","keydown"]]},{command:KeyBindingCommand.MOVE_DOWN_1,keybinding:"down",when:[["stage","keydown"]]},{command:KeyBindingCommand.MOVE_LEFT_1,keybinding:"left",when:[["stage","keydown"]]},{command:KeyBindingCommand.MOVE_RIGHT_1,keybinding:"right",when:[["stage","keydown"]]},{command:KeyBindingCommand.MOVE_UP_10,keybinding:"ctrl+up",when:[["stage","keydown"]]},{command:KeyBindingCommand.MOVE_DOWN_10,keybinding:"ctrl+down",when:[["stage","keydown"]]},{command:KeyBindingCommand.MOVE_LEFT_10,keybinding:"ctrl+left",when:[["stage","keydown"]]},{command:KeyBindingCommand.MOVE_RIGHT_10,keybinding:"ctrl+right",when:[["stage","keydown"]]},{command:KeyBindingCommand.SWITCH_NODE,keybinding:"tab",when:[["stage","keydown"],["layer-panel","keydown"]]},{command:KeyBindingCommand.ZOOM_IN,keybinding:["ctrl+=","ctrl+numpadplus"],when:[["stage","keydown"]]},{command:KeyBindingCommand.ZOOM_OUT,keybinding:["ctrl+-","ctrl+numpad-"],when:[["stage","keydown"]]},{command:KeyBindingCommand.ZOOM_FIT,keybinding:"ctrl+0",when:[["stage","keydown"]]},{command:KeyBindingCommand.ZOOM_RESET,keybinding:"ctrl+1",when:[["stage","keydown"]]}],useKeybinding=({keybindingService:o},e)=>{const t=ref$1(!1),r=()=>{t.value=!1};return o.registerCommand("layer-panel-global-keyup",()=>{t.value=!1}),o.registerCommand("layer-panel-global-keydown",()=>{t.value=!0}),o.register([{command:"layer-panel-global-keydown",keybinding:"ctrl",when:[["global","keydown"]]},{command:"layer-panel-global-keyup",keybinding:"ctrl",when:[["global","keyup"]]}]),watchEffect(()=>{e.value?(globalThis.addEventListener("blur",r),o.registerEl(KeyBindingContainerKey.LAYER_PANEL,e.value.$el)):(globalThis.removeEventListener("blur",r),o.unregisterEl(KeyBindingContainerKey.LAYER_PANEL))}),{isCtrlKeyDown:t}},createPageNodeStatus=(o,e)=>{const t=new Map;return t.set(o.id,{visible:!0,expand:!0,selected:!0,draggable:!1}),o.items.forEach(r=>traverseNode(r,s=>{t.set(s.id,(e==null?void 0:e.get(s.id))||{visible:!0,expand:!1,selected:!1,draggable:!0})})),t},useNodeStatus=({editorService:o})=>{const e=computed$1(()=>o.get("page")),t=computed$1(()=>o.get("nodes")),r=ref$1(new Map),s=computed$1(()=>e.value?r.value.get(e.value.id):new Map);watch(()=>{var c;return(c=e.value)==null?void 0:c.id},c=>{c&&r.value.set(c,createPageNodeStatus(e.value,r.value.get(c)))},{immediate:!0}),watch(t,c=>{var d;if(s.value)for(const[u,g]of s.value.entries())g.selected=c.some(f=>f.id===u),g.selected&&getNodePath(u,(d=e.value)==null?void 0:d.items).forEach(f=>{updateStatus(s.value,f.id,{expand:!0})})},{immediate:!0});const a=c=>{c.forEach(d=>{isPage(d)||isPageFragment(d)||traverseNode(d,u=>{var g;(g=s.value)==null||g.set(u.id,{visible:!0,expand:Array.isArray(u.items),selected:!0,draggable:!0})})})};o.on("add",a);const l=c=>{c.forEach(d=>{traverseNode(d,u=>{var g;(g=s.value)==null||g.delete(u.id)})})};return o.on("remove",l),onBeforeUnmount(()=>{o.off("remove",l),o.off("add",a)}),{nodeStatusMaps:r,nodeStatusMap:s}},_sfc_main$c=defineComponent({name:"MEditorLayerPanel",__name:"LayerPanel",props:{layerContentMenu:{},indent:{},nextLevelIndentIncrement:{},customContentMenu:{type:Function}},setup(o){const e=useServices(),{editorService:t}=e,r=useTemplateRef("tree"),s=computed$1(()=>t.get("page")),a=computed$1(()=>s.value?[s.value]:[]),{nodeStatusMap:l}=useNodeStatus(e),{isCtrlKeyDown:c}=useKeybinding(e,r),d=(w,E)=>{let x="";return E.name?x=E.name:E.items&&(x="container"),"".concat(E.id).concat(x).concat(E.type).includes(w)},{filterTextChangeHandler:u}=useFilter(a,l,d),g=()=>{if(!s.value||!l.value)return;const w=l.value.entries();for(const[E,x]of w)E!==s.value.id&&(x.expand=!1)},{handleDragStart:f,handleDragEnd:m,handleDragLeave:_,handleDragOver:v}=useDrag(e),b=useTemplateRef("menu"),{nodeClickHandler:C,nodeContentMenuHandler:y,highlightHandler:S}=useClick(e,c,l,b);return(w,E)=>(openBlock(),createBlock(unref(_sfc_main$c$2),{class:"m-editor-layer-panel"},{default:withCtx(()=>[renderSlot(w.$slots,"layer-panel-header"),createVNode(_sfc_main$n,{onSearch:unref(u)},null,8,["onSearch"]),s.value&&unref(l)?(openBlock(),createBlock(_sfc_main$l,{key:0,tabindex:"-1",ref:"tree",data:a.value,"node-status-map":unref(l),indent:o.indent,"next-level-indent-increment":o.nextLevelIndentIncrement,onNodeDragover:unref(v),onNodeDragstart:unref(f),onNodeDragleave:unref(_),onNodeDragend:unref(m),onNodeContextmenu:unref(y),onNodeMouseenter:unref(S),onNodeClick:unref(C)},{"tree-node-content":withCtx(({data:x})=>[renderSlot(w.$slots,"layer-node-content",{data:x})]),"tree-node-tool":withCtx(({data:x})=>[renderSlot(w.$slots,"layer-node-tool",{data:x},()=>[createVNode(_sfc_main$d,{data:x},null,8,["data"])])]),"tree-node-label":withCtx(({data:x})=>[renderSlot(w.$slots,"layer-node-label",{data:x})]),_:3},8,["data","node-status-map","indent","next-level-indent-increment","onNodeDragover","onNodeDragstart","onNodeDragleave","onNodeDragend","onNodeContextmenu","onNodeMouseenter","onNodeClick"])):createCommentVNode("v-if",!0),(openBlock(),createBlock(Teleport,{to:"body"},[createVNode(_sfc_main$e,{ref:"menu","layer-content-menu":o.layerContentMenu,"custom-content-menu":o.customContentMenu,onCollapseAll:g},null,8,["layer-content-menu","custom-content-menu"])]))]),_:3}))}}),_hoisted_1$6=["onClick","onDragstart"],_hoisted_2$2$1=["title"],_sfc_main$b=defineComponent({name:"MEditorComponentListPanel",__name:"ComponentListPanel",setup(o){const e=ref$1(""),t=C=>{e.value=C},{editorService:r,componentListService:s}=useServices(),a=inject("stageOptions"),l=computed$1(()=>r.get("stage")),c=computed$1(()=>s.getList().map(C=>({...C,items:C.items.filter(y=>y.text.includes(e.value))}))),d=ref$1();watch(c,()=>{var C;d.value=Array((C=c.value)==null?void 0:C.length).fill(1).map((y,S)=>"".concat(S))},{immediate:!0});let u,g,f;const m=({text:C,type:y,data:S={}})=>{r.add({name:C,type:y,...S})},_=({text:C,type:y,data:S={}},w)=>{var E;(E=w.dataTransfer)==null||E.setData("text/json",serialize({dragType:DragType.COMPONENT_LIST,data:{name:C,type:y,...S}}))},v=()=>{var y,S;u&&(globalThis.clearTimeout(u),u=void 0);const C=(S=(y=l.value)==null?void 0:y.renderer)==null?void 0:S.getDocument();C&&(a!=null&&a.containerHighlightClassName)&&removeClassNameByClassName(C,a.containerHighlightClassName),g=0,f=0},b=C=>{if(C.clientX!==g||C.clientY!==f){g=C.clientX,f=C.clientY,u&&(globalThis.clearTimeout(u),u=void 0);return}u||!l.value||(u=l.value.delayedMarkContainer(C))};return(C,y)=>(openBlock(),createBlock(unref(_sfc_main$c$2),null,{default:withCtx(()=>[renderSlot(C.$slots,"component-list-panel-header"),createVNode(_sfc_main$n,{onSearch:t}),renderSlot(C.$slots,"component-list",{componentGroupList:c.value},()=>[createVNode(unref(_sfc_main$z$2),{class:"ui-component-panel",modelValue:d.value,"onUpdate:modelValue":y[0]||(y[0]=S=>d.value=S)},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(c.value,(S,w)=>(openBlock(),createElementBlock(Fragment,null,[S.items&&S.items.length?(openBlock(),createBlock(unref(_sfc_main$y$2),{key:w,name:"".concat(w)},{title:withCtx(()=>[createVNode(_sfc_main$1r,{icon:unref(grid_default)},null,8,["icon"]),createTextVNode(toDisplayString(S.title),1)]),default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(S.items,E=>(openBlock(),createElementBlock("div",{class:"component-item",draggable:"true",key:E.type,onClick:x=>m(E),onDragstart:x=>_(E,x),onDragend:v,onDrag:b},[renderSlot(C.$slots,"component-list-item",{component:E},()=>[createVNode(unref(_sfc_main$2$4),{placement:"right",disabled:!E.desc,content:E.desc},{default:withCtx(()=>[createVNode(_sfc_main$1r,{icon:E.icon},null,8,["icon"])]),_:2},1032,["disabled","content"]),createBaseVNode("span",{title:E.text},toDisplayString(E.text),9,_hoisted_2$2$1)])],40,_hoisted_1$6))),128))]),_:2},1032,["name"])):createCommentVNode("v-if",!0)],64))),256))]),_:3},8,["modelValue"])])]),_:3}))}}),_hoisted_1$5={key:0,class:"m-editor-sidebar"},_hoisted_2$1$1={class:"m-editor-sidebar-header"},_hoisted_3$8=["draggable","onClick","onDragend"],_hoisted_4$6={key:1,class:"magic-editor-tab-panel-title"},_hoisted_5={key:0,class:"m-editor-sidebar-tips"},_hoisted_6={class:"m-editor-slide-list-box"},_sfc_main$a=defineComponent({name:"MEditorSidebar",__name:"Sidebar",props:{data:{default:()=>({type:"tabs",status:"组件",items:[SideItemKey.COMPONENT_LIST,SideItemKey.LAYER,SideItemKey.CODE_BLOCK,SideItemKey.DATA_SOURCE]})},layerContentMenu:{},indent:{},nextLevelIndentIncrement:{},customContentMenu:{}},setup(o,{expose:e}){var L;const t=o,{depService:r,uiService:s,propsService:a}=useServices(),l=computed$1(()=>r.get("collecting")),c=computed$1(()=>r.get("taskLength")),d=ref$1(!0),u=computed$1(()=>s.get("columnWidth")[ColumnLayout.LEFT]),{height:g}=useEditorContentHeight(),f=ref$1(0),m=watch(g,k=>{k&&(f.value=k*.5,nextTick().then(()=>{m()}))},{immediate:!0}),_=ref$1((L=t.data)==null?void 0:L.status),v=k=>{const D={[SideItemKey.COMPONENT_LIST]:{$key:SideItemKey.COMPONENT_LIST,type:"component",icon:goods_default,text:"组件",component:_sfc_main$b,slots:{}},layer:{$key:"layer",type:"component",icon:list_default,text:"已选组件",props:{layerContentMenu:t.layerContentMenu,customContentMenu:t.customContentMenu,indent:t.indent,nextLevelIndentIncrement:t.nextLevelIndentIncrement},component:_sfc_main$c,slots:{}},[SideItemKey.CODE_BLOCK]:{$key:"code-block",type:"component",icon:edit_pen_default,text:"代码编辑",component:_sfc_main$j,props:{indent:t.indent,nextLevelIndentIncrement:t.nextLevelIndentIncrement,customContentMenu:t.customContentMenu},slots:{}},[SideItemKey.DATA_SOURCE]:{$key:SideItemKey.DATA_SOURCE,type:"component",icon:coin_default,text:"数据源",component:_sfc_main$g,props:{indent:t.indent,nextLevelIndentIncrement:t.nextLevelIndentIncrement,customContentMenu:t.customContentMenu},slots:{}}};return typeof k=="string"?D[k]:k},b=computed$1(()=>t.data.items.map(k=>v(k)).filter(k=>k.$key===SideItemKey.DATA_SOURCE?!a.getDisabledDataSource():k.$key===SideItemKey.CODE_BLOCK?!a.getDisabledCodeBlock():!0));watch(b,k=>{s.set("sideBarItems",k)},{immediate:!0}),watch(()=>t.data.status,k=>{_.value=k||"0"});const C=computed$1(()=>b.value.map(k=>k.$key)),{dragstartHandler:y,dragendHandler:S,floatBoxStates:w,showingBoxKeys:E}=useFloatBox(C);watch(()=>E.value.length,()=>{if(!E.value.some(I=>{var T;return _.value===((T=b.value.find(M=>M.$key===I))==null?void 0:T.text)})&&_.value)return;const D=b.value.find(I=>!E.value.includes(I.$key));if(!D){_.value="",s.set("hideSlideBar",!0);return}s.set("hideSlideBar",!1),_.value=D==null?void 0:D.text});const x=async(k,D)=>{typeof k.beforeClick=="function"&&await k.beforeClick(k)===!1||(_.value=k.text||k.$key||"".concat(D))};return e({activeTabName:_}),(k,D)=>(openBlock(),createElementBlock(Fragment,null,[o.data.type==="tabs"&&o.data.items.length?(openBlock(),createElementBlock("div",_hoisted_1$5,[createBaseVNode("div",_hoisted_2$1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(b.value,(I,T)=>{var M,R,N;return withDirectives((openBlock(),createElementBlock("div",{class:normalizeClass(["m-editor-sidebar-header-item",{"is-active":_.value===I.text}]),draggable:(M=I.draggable)!=null?M:!0,key:(R=I.$key)!=null?R:T,style:normalizeStyle(I.tabStyle||{}),onClick:A=>x(I,T),onDragstart:D[0]||(D[0]=(...A)=>unref(y)&&unref(y)(...A)),onDragend:A=>unref(S)(I.$key,A)},[I.icon?(openBlock(),createBlock(_sfc_main$1r,{key:0,icon:I.icon},null,8,["icon"])):createCommentVNode("v-if",!0),I.text?(openBlock(),createElementBlock("div",_hoisted_4$6,toDisplayString(I.text),1)):createCommentVNode("v-if",!0)],46,_hoisted_3$8)),[[vShow,!((N=unref(w)[I.$key])!=null&&N.status)]])}),128))]),(openBlock(!0),createElementBlock(Fragment,null,renderList(b.value,(I,T)=>{var M,R,N,A,O,P,F,B,H,V,U,j,X,ee;return withDirectives((openBlock(),createElementBlock("div",{class:normalizeClass(["m-editor-sidebar-content",{"m-editor-dep-collecting":l.value}]),key:(M=I.$key)!=null?M:T},[I!=null&&I.component&&!((R=unref(w)[I.$key])!=null&&R.status)?(openBlock(),createBlock(resolveDynamicComponent(I.component),mergeProps({key:0,ref_for:!0},I.props||{},toHandlers((I==null?void 0:I.listeners)||{})),createSlots({_:2},[I.$key==="component-list"||(N=I.slots)!=null&&N.componentList?{name:"component-list",fn:withCtx(({componentGroupList:Z})=>{var J;return[I.$key==="component-list"?renderSlot(k.$slots,"component-list",{key:0,componentGroupList:Z}):(J=I.slots)!=null&&J.componentList?(openBlock(),createBlock(resolveDynamicComponent(I.slots.componentList),{key:1})):createCommentVNode("v-if",!0)]}),key:"0"}:void 0,I.$key==="component-list"||(A=I.slots)!=null&&A.componentListPanelHeader?{name:"component-list-panel-header",fn:withCtx(()=>{var Z;return[I.$key==="component-list"?renderSlot(k.$slots,"component-list-panel-header",{key:0}):(Z=I.slots)!=null&&Z.componentListPanelHeader?(openBlock(),createBlock(resolveDynamicComponent(I.slots.componentListPanelHeader),{key:1})):createCommentVNode("v-if",!0)]}),key:"1"}:void 0,I.$key==="component-list"||(O=I.slots)!=null&&O.componentListItem?{name:"component-list-item",fn:withCtx(({component:Z})=>{var J;return[I.$key==="component-list"?renderSlot(k.$slots,"component-list-item",{key:0,component:Z}):(J=I.slots)!=null&&J.componentListItem?(openBlock(),createBlock(resolveDynamicComponent(I.slots.componentListItem),{key:1,component:Z},null,8,["component"])):createCommentVNode("v-if",!0)]}),key:"2"}:void 0,I.$key==="layer"||(P=I.slots)!=null&&P.layerPanelHeader?{name:"layer-panel-header",fn:withCtx(()=>{var Z;return[I.$key==="layer"?renderSlot(k.$slots,"layer-panel-header",{key:0}):(Z=I.slots)!=null&&Z.layerPanelHeader?(openBlock(),createBlock(resolveDynamicComponent(I.slots.layerPanelHeader),{key:1})):createCommentVNode("v-if",!0)]}),key:"3"}:void 0,I.$key==="code-block"||(F=I.slots)!=null&&F.codeBlockPanelHeader?{name:"code-block-panel-header",fn:withCtx(()=>{var Z;return[I.$key==="code-block"?renderSlot(k.$slots,"code-block-panel-header",{key:0}):(Z=I.slots)!=null&&Z.codeBlockPanelHeader?(openBlock(),createBlock(resolveDynamicComponent(I.slots.codeBlockPanelHeader),{key:1})):createCommentVNode("v-if",!0)]}),key:"4"}:void 0,I.$key==="code-block"||(B=I.slots)!=null&&B.codeBlockPanelTool?{name:"code-block-panel-tool",fn:withCtx(({id:Z,data:J})=>{var q;return[I.$key==="code-block"?renderSlot(k.$slots,"code-block-panel-tool",{key:0,id:Z,data:J}):(q=I.slots)!=null&&q.codeBlockPanelTool?(openBlock(),createBlock(resolveDynamicComponent(I.slots.codeBlockPanelTool),{key:1})):createCommentVNode("v-if",!0)]}),key:"5"}:void 0,I.$key==="code-block"||(H=I.slots)!=null&&H.codeBlockPanelSearch?{name:"code-block-panel-search",fn:withCtx(()=>{var Z;return[I.$key==="code-block"?renderSlot(k.$slots,"code-block-panel-search",{key:0}):(Z=I.slots)!=null&&Z.codeBlockPanelSearch?(openBlock(),createBlock(resolveDynamicComponent(I.slots.codeBlockPanelSearch),{key:1})):createCommentVNode("v-if",!0)]}),key:"6"}:void 0,I.$key==="layer"||(V=I.slots)!=null&&V.layerNodeContent?{name:"layer-node-content",fn:withCtx(({data:Z})=>{var J;return[I.$key==="layer"?renderSlot(k.$slots,"layer-node-content",{key:0,data:Z}):(J=I.slots)!=null&&J.layerNodeContent?(openBlock(),createBlock(resolveDynamicComponent(I.slots.layerNodeContent),{key:1,data:Z},null,8,["data"])):createCommentVNode("v-if",!0)]}),key:"7"}:void 0,I.$key==="layer"||(U=I.slots)!=null&&U.layerNodeLabel?{name:"layer-node-label",fn:withCtx(({data:Z})=>{var J;return[I.$key==="layer"?renderSlot(k.$slots,"layer-node-label",{key:0,data:Z}):(J=I.slots)!=null&&J.layerNodeLabel?(openBlock(),createBlock(resolveDynamicComponent(I.slots.layerNodeTool),{key:1,data:Z},null,8,["data"])):createCommentVNode("v-if",!0)]}),key:"8"}:void 0,I.$key==="layer"||(j=I.slots)!=null&&j.layerNodeTool?{name:"layer-node-tool",fn:withCtx(({data:Z})=>{var J;return[I.$key==="layer"?renderSlot(k.$slots,"layer-node-tool",{key:0,data:Z}):(J=I.slots)!=null&&J.layerNodeTool?(openBlock(),createBlock(resolveDynamicComponent(I.slots.layerNodeTool),{key:1,data:Z},null,8,["data"])):createCommentVNode("v-if",!0)]}),key:"9"}:void 0,I.$key==="data-source"||(X=I.slots)!=null&&X.dataSourcePanelTool?{name:"data-source-panel-tool",fn:withCtx(({data:Z})=>{var J;return[I.$key==="data-source"?renderSlot(k.$slots,"data-source-panel-tool",{key:0,data:Z}):(J=I.slots)!=null&&J.DataSourcePanelTool?(openBlock(),createBlock(resolveDynamicComponent(I.slots.DataSourcePanelTool),{key:1})):createCommentVNode("v-if",!0)]}),key:"10"}:void 0,I.$key==="data-source"||(ee=I.slots)!=null&&ee.dataSourcePanelSearch?{name:"data-source-panel-search",fn:withCtx(()=>{var Z;return[I.$key==="data-source"?renderSlot(k.$slots,"data-source-panel-search",{key:0}):(Z=I.slots)!=null&&Z.dataSourcePanelSearch?(openBlock(),createBlock(resolveDynamicComponent(I.slots.dataSourcePanelSearch),{key:1})):createCommentVNode("v-if",!0)]}),key:"11"}:void 0]),1040)):createCommentVNode("v-if",!0)],2)),[[vShow,[I.text,I.$key,"".concat(T)].includes(_.value)]])}),128)),d.value&&l.value&&c.value>0?(openBlock(),createElementBlock("div",_hoisted_5,[createBaseVNode("span",null,"依赖收集中(剩余任务:"+toDisplayString(c.value)+")",1),createVNode(_sfc_main$1r,{icon:unref(close_default),class:"close-icon",onClick:D[1]||(D[1]=withModifiers(I=>d.value=!1,["stop"]))},null,8,["icon"])])):createCommentVNode("v-if",!0)])):createCommentVNode("v-if",!0),(openBlock(),createBlock(Teleport,{to:"body"},[(openBlock(!0),createElementBlock(Fragment,null,renderList(b.value,(I,T)=>{var M,R;return openBlock(),createElementBlock(Fragment,null,[(M=unref(w)[I.$key])!=null&&M.status?(openBlock(),createBlock(_sfc_main$1j,{key:(R=I.$key)!=null?R:T,visible:unref(w)[I.$key].status,"onUpdate:visible":N=>unref(w)[I.$key].status=N,height:f.value,"onUpdate:height":D[2]||(D[2]=N=>f.value=N),width:u.value,title:I.text,position:{left:unref(w)[I.$key].left,top:unref(w)[I.$key].top}},{body:withCtx(()=>[createBaseVNode("div",_hoisted_6,[I&&unref(w)[I.$key].status?(openBlock(),createBlock(resolveDynamicComponent(I.component),mergeProps({key:0,ref_for:!0},I.props||{},toHandlers((I==null?void 0:I.listeners)||{})),null,16)):createCommentVNode("v-if",!0)])]),_:2},1032,["visible","onUpdate:visible","height","width","title","position"])):createCommentVNode("v-if",!0)],64)}),256))]))],64))}}),_sfc_main$9=defineComponent({name:"MEditorScrollBar",__name:"ScrollBar",props:{size:{},scrollSize:{},isHorizontal:{type:Boolean},pos:{}},emits:["scroll"],setup(o,{emit:e}){const t=o,r=e,s=useTemplateRef("bar"),a=useTemplateRef("thumb"),l=computed$1(()=>t.size*(t.size/t.scrollSize)),c=computed$1(()=>t.pos/t.scrollSize*t.size),d=computed$1(()=>({[t.isHorizontal?"width":"height"]:"".concat(l.value,"px"),transform:"translate".concat(t.isHorizontal?"X":"Y","(").concat(c.value,"px)")}));let u;onMounted(()=>{var _;a.value&&(u=new Gesto(a.value,{container:window}),u.on("dragStart",v=>{v.inputEvent.stopPropagation(),v.inputEvent.preventDefault()}).on("drag",v=>{m(f(v))}),(_=s.value)==null||_.addEventListener("wheel",g,!1))}),onBeforeUnmount(()=>{var _;u&&u.off(),(_=s.value)==null||_.removeEventListener("wheel",g,!1)});const g=_=>{const v=t.isHorizontal?_.deltaX:_.deltaY;v&&_.preventDefault(),m(v)},f=_=>{const v=(t.isHorizontal?_.deltaX:_.deltaY)/t.size;return t.scrollSize*v},m=_=>{if(_<0)t.pos<=0?r("scroll",0):r("scroll",-Math.min(-_,t.pos));else{const v=t.size-(l.value+c.value);v<=0?r("scroll",0):r("scroll",Math.min(_,v))}};return(_,v)=>(openBlock(),createElementBlock("div",{ref:"bar",class:normalizeClass(["m-editor-scroll-bar",o.isHorizontal?"horizontal":"vertical"])},[createBaseVNode("div",{ref:"thumb",class:"m-editor-scroll-bar-thumb",style:normalizeStyle(d.value)},null,4)],2))}}),_hoisted_1$4={class:"m-editor-scroll-viewer-container",ref:"container"},_sfc_main$8$1=defineComponent({name:"MEditorScrollViewer",__name:"ScrollViewer",props:{width:{default:0},height:{default:0},wrapWidth:{default:0},wrapHeight:{default:0},zoom:{default:1},correctionScrollSize:{default:()=>({width:0,height:0})}},setup(o,{expose:e}){const t=o,r=useTemplateRef("container"),s=useTemplateRef("target"),a=computed$1(()=>"\n width: ".concat(isNumber$4("".concat(t.width))?"".concat(t.width,"px"):t.width,";\n height: ").concat(isNumber$4("".concat(t.height))?"".concat(t.height,"px"):t.height,";\n position: absolute;\n margin-top: 30px;\n ")),l=ref$1(0),c=ref$1(0);let d;onMounted(()=>{!r.value||!s.value||(d=new ScrollViewer({container:r.value,target:s.value,zoom:t.zoom,correctionScrollSize:t.correctionScrollSize}),d.on("scroll",_=>{f.value=_.scrollLeft,u.value=_.scrollTop,l.value=_.scrollWidth,c.value=_.scrollHeight}))}),onBeforeUnmount(()=>{d.destroy()}),watch(()=>t.zoom,()=>{d.setZoom(t.zoom)});const u=ref$1(0),g=_=>{u.value+=_,d.scrollTo({top:u.value})},f=ref$1(0),m=_=>{f.value+=_,d.scrollTo({left:f.value})};return e({container:r}),(_,v)=>(openBlock(),createElementBlock("div",_hoisted_1$4,[createBaseVNode("div",{ref:"target",style:normalizeStyle(a.value)},[renderSlot(_.$slots,"default")],4),renderSlot(_.$slots,"content"),c.value>o.wrapHeight?(openBlock(),createBlock(_sfc_main$9,{key:0,"scroll-size":c.value,pos:u.value,size:o.wrapHeight,onScroll:g},null,8,["scroll-size","pos","size"])):createCommentVNode("v-if",!0),l.value>o.wrapWidth?(openBlock(),createBlock(_sfc_main$9,{key:1,"is-horizontal":!0,"scroll-size":l.value,pos:f.value,size:o.wrapWidth,onScroll:m},null,8,["scroll-size","pos","size"])):createCommentVNode("v-if",!0)],512))}}),_sfc_main$7$1=defineComponent({__name:"NodeListMenu",setup(o){const e=useServices(),{editorService:t}=e,r=ref$1(!1),s=ref$1(!1),a=useTemplateRef("button"),l=useTemplateRef("box"),c=computed$1(()=>t.get("stage")),d=computed$1(()=>t.get("page")),u=computed$1(()=>t.get("nodes")),g=computed$1(()=>d.value?[d.value]:[]),{nodeStatusMap:f}=useNodeStatus(e),m=(y,S)=>S.id===y,{filterTextChangeHandler:_}=useFilter(g,f,m),v=watch(c,y=>{y&&(nextTick(()=>v()),y.on("select",(S,w)=>{var L;const x=(((L=y.renderer)==null?void 0:L.getElementsFromPoint(w))||[]).map(k=>getIdFromEl()(k)).filter(k=>!!k);s.value=x.length>3,_(x)}))},{immediate:!0});watch(u,y=>{if(f.value)for(const[S,w]of f.value.entries())w.selected=y.some(E=>E.id===S)},{immediate:!0});const b=async(y,S)=>{var w;await t.select(S.id),(w=c.value)==null||w.select(S.id)},C=ref$1({left:0,top:0});return watch(r,async y=>{var E,x;if(!a.value||!y)return;await nextTick();const S=a.value.getBoundingClientRect(),w=((x=(E=l.value)==null?void 0:E.target)==null?void 0:x.clientHeight)||0;C.value={left:S.left+S.width+5,top:S.top-w/2+S.height/2}}),(y,S)=>(openBlock(),createElementBlock(Fragment,null,[d.value&&s.value?(openBlock(),createBlock(unref(_sfc_main$2$4),{key:0,content:"点击查看当前位置下的组件"},{default:withCtx(()=>[createBaseVNode("div",{ref:"button",class:"m-editor-stage-float-button",onClick:S[0]||(S[0]=w=>r.value=!0)},"可选组件",512)]),_:1})):createCommentVNode("v-if",!0),d.value&&unref(f)&&s.value?(openBlock(),createBlock(_sfc_main$1j,{key:1,ref:"box",visible:r.value,"onUpdate:visible":S[1]||(S[1]=w=>r.value=w),title:"当前位置下的组件",position:C.value},{body:withCtx(()=>[createVNode(_sfc_main$l,{class:"m-editor-node-list-menu magic-editor-layer-tree",data:g.value,"node-status-map":unref(f),onNodeClick:b},null,8,["data","node-status-map"])]),_:1},8,["visible","position"])):createCommentVNode("v-if",!0)],64))}}),_hoisted_1$3$1={key:0,class:"m-editor-stage-overlay"},_sfc_main$6$1=defineComponent({__name:"StageOverlay",setup(o){const{stageOverlayService:e,editorService:t,uiService:r}=useServices(),s=inject("stageOptions"),a=useTemplateRef("stageOverlay"),l=computed$1(()=>e.get("stageOverlayVisible")),c=computed$1(()=>e.get("wrapWidth")),d=computed$1(()=>e.get("wrapHeight")),u=computed$1(()=>t.get("stage")),g=computed$1(()=>r.get("zoom")),f=computed$1(()=>r.get("columnWidth")),m=computed$1(()=>r.get("frameworkRect")),_=computed$1(()=>({transform:"scale(".concat(g.value,")")}));watch(u,b=>{b?b.on("dblclick",async C=>{var S;const y=await((S=b.actionManager)==null?void 0:S.getElementFromPoint(C))||null;e.openOverlay(y)}):e.closeOverlay()}),watch(g,b=>{const C=e.get("stage");!C||!b||C.setZoom(b)}),watch(a,b=>{const C=e.createStage(s);if(e.set("stage",C),b&&C){C.mount(b);const{mask:y,renderer:S}=C,{contentWindow:w}=S;y==null||y.showRule(!1),e.updateOverlay(),w==null||w.magic.onRuntimeReady({})}}),onBeforeUnmount(()=>{var b;(b=e.get("stage"))==null||b.destroy(),e.set("stage",null)});const v=()=>{e.closeOverlay()};return(b,C)=>l.value?(openBlock(),createElementBlock("div",_hoisted_1$3$1,[createVNode(unref(_sfc_main$n$2),{class:"m-editor-stage-overlay-close",size:"30",onClick:v},{default:withCtx(()=>[createVNode(unref(close_bold_default))]),_:1}),createVNode(_sfc_main$8$1,{class:"m-editor-stage",width:c.value,height:d.value,"wrap-width":f.value.center,"wrap-height":m.value.height,zoom:g.value},{default:withCtx(()=>[createBaseVNode("div",{ref:"stageOverlay",class:"m-editor-stage-container",style:normalizeStyle(_.value)},null,4)]),_:1},8,["width","height","wrap-width","wrap-height","zoom"])])):createCommentVNode("v-if",!0)}}),_hoisted_1$2$1={viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},_sfc_main$5$1=defineComponent({name:"MEditorCenterIcon",__name:"CenterIcon",setup(o){return(e,t)=>(openBlock(),createElementBlock("svg",_hoisted_1$2$1,[...t[0]||(t[0]=[createBaseVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2 4H21V6H2V4Z",fill:"black","fill-opacity":"0.9"},null,-1),createBaseVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M5 11H18V13H5V11Z",fill:"black","fill-opacity":"0.9"},null,-1),createBaseVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2 18H21V20H2V18Z",fill:"black","fill-opacity":"0.9"},null,-1)])]))}}),_sfc_main$4$1=defineComponent({name:"MEditorViewerMenu",__name:"ViewerMenu",props:{isMultiSelect:{type:Boolean,default:!1},stageContentMenu:{},customContentMenu:{}},setup(o,{expose:e}){const t=o,r=useServices(),{editorService:s}=r,a=useTemplateRef("menu"),l=ref$1(!1),c=computed$1(()=>s.get("node")),d=computed$1(()=>s.get("nodes")),u=computed$1(()=>s.get("parent")),g=computed$1(()=>t.customContentMenu([{type:"button",text:"水平居中",icon:markRaw(_sfc_main$5$1),display:()=>l.value,handler:()=>{d.value&&s.alignCenter(d.value)}},useCopyMenu(),usePasteMenu(a),{type:"divider",direction:"horizontal",display:()=>c.value?!isPage(c.value)&&!isPageFragment(c.value):!1},{type:"button",text:"上移一层",icon:markRaw(top_default),display:()=>!isPage(c.value)&&!isPageFragment(c.value)&&!t.isMultiSelect,handler:()=>{s.moveLayer(1)}},{type:"button",text:"下移一层",icon:markRaw(bottom_default),display:()=>!isPage(c.value)&&!isPageFragment(c.value)&&!t.isMultiSelect,handler:()=>{s.moveLayer(-1)}},{type:"button",text:"置顶",icon:markRaw(top_default),display:()=>!isPage(c.value)&&!isPageFragment(c.value)&&!t.isMultiSelect,handler:()=>{s.moveLayer(LayerOffset.TOP)}},{type:"button",text:"置底",icon:markRaw(bottom_default),display:()=>!isPage(c.value)&&!isPageFragment(c.value)&&!t.isMultiSelect,handler:()=>{s.moveLayer(LayerOffset.BOTTOM)}},useMoveToMenu(r),{type:"divider",direction:"horizontal",display:()=>!isPage(c.value)&&!isPageFragment(c.value)&&!t.isMultiSelect},useDeleteMenu(),{type:"divider",direction:"horizontal"},{type:"button",text:"清空参考线",handler:()=>{var m;(m=s.get("stage"))==null||m.clearGuides()}},...t.stageContentMenu],"viewer"));return watch(u,async()=>{var b;if(!u.value)return l.value=!1;const m=await s.getLayout(u.value),_=[Layout.ABSOLUTE,Layout.FIXED].includes(m),v=(b=d.value)==null?void 0:b.every(C=>![NodeType.ROOT,NodeType.PAGE,"pop"].includes("".concat(C==null?void 0:C.type)));l.value=_&&!!v},{immediate:!0}),e({show:m=>{var _;(_=a.value)==null||_.show(m)}}),(m,_)=>(openBlock(),createBlock(_sfc_main$o,{"menu-data":g.value,ref:"menu"},null,8,["menu-data"]))}}),_sfc_main$3$1=defineComponent({name:"MEditorStage",__name:"Stage",props:{stageOptions:{},stageContentMenu:{},disabledStageOverlay:{type:Boolean,default:!1},customContentMenu:{}},setup(o){const e=o;let t=null,r=null;const{editorService:s,uiService:a,keybindingService:l}=useServices(),c=computed$1(()=>s.get("stageLoading")),d=useTemplateRef("stageWrap"),u=useTemplateRef("stageContainer"),g=useTemplateRef("menu"),f=computed$1(()=>s.get("nodes")),m=computed$1(()=>f.value.length>1),_=computed$1(()=>a.get("stageRect")),v=computed$1(()=>a.get("stageContainerRect")),b=computed$1(()=>s.get("root")),C=computed$1(()=>s.get("page")),y=computed$1(()=>a.get("zoom")),S=computed$1(()=>s.get("node"));watchEffect(()=>{var I,T,M;t||!C.value||u.value&&(!((I=e.stageOptions)!=null&&I.runtimeUrl||(T=e.stageOptions)!=null&&T.render)||!b.value||(t=useStage(e.stageOptions),t.on("select",()=>{var R,N;(N=(R=d.value)==null?void 0:R.container)==null||N.focus()}),s.set("stage",markRaw(t)),t.mount(u.value),(M=S.value)!=null&&M.id&&t.on("runtime-ready",R=>{r=R})))}),onBeforeUnmount(()=>{t==null||t.destroy(),s.set("stage",null)}),watch(y,I=>{!t||!I||t.setZoom(I)});let w=null;watch(C,I=>{var T;if(r&&I){s.set("stageLoading",!0),w&&globalThis.clearTimeout(w),w=globalThis.setTimeout(()=>{s.set("stageLoading",!1),w=null},3e3),(T=r.updatePageId)==null||T.call(r,I.id);const M=watch(c,()=>{c.value||nextTick(()=>{t==null||t.select(I.id),M()})},{immediate:!0})}});const E=new globalThis.ResizeObserver(I=>{for(const{contentRect:T}of I)a.set("stageContainerRect",{width:T.width,height:T.height})});onMounted(()=>{var I;(I=d.value)!=null&&I.container&&(E.observe(d.value.container),l.registerEl(KeyBindingContainerKey.STAGE,d.value.container))}),onBeforeUnmount(()=>{t==null||t.destroy(),t=null,E.disconnect(),s.set("stage",null),l.unregisterEl("stage")});const x=getEditorConfig("parseDSL"),L=I=>{var T;I.preventDefault(),(T=g.value)==null||T.show(I)},k=I=>{I.dataTransfer&&(I.preventDefault(),I.dataTransfer.dropEffect="move")},D=async I=>{var P,F,B;if(!I.dataTransfer)return;const T=I.dataTransfer.getData("text/json");if(!T)return;const M=x("(".concat(T,")"));if(!M||M.dragType!==DragType.COMPONENT_LIST)return;I.preventDefault();const R=(F=(P=t==null?void 0:t.renderer)==null?void 0:P.contentWindow)==null?void 0:F.document,N=R==null?void 0:R.querySelector(".".concat((B=e.stageOptions)==null?void 0:B.containerHighlightClassName));let A=C.value;const O=getIdFromEl()(N);if(O&&(A=s.getNodeById(O,!1)),A&&u.value&&t){const H=await s.getLayout(A),V=u.value.getBoundingClientRect(),{scrollTop:U,scrollLeft:j}=t.mask,{style:X={}}=M.data;let ee=0,Z=0,J="relative";if(X.position==="fixed")J="fixed",ee=I.clientY-V.top,Z=I.clientX-V.left;else if(H===Layout.ABSOLUTE&&(J="absolute",ee=I.clientY-V.top+U,Z=I.clientX-V.left+j,N)){const{left:q,top:Q}=getOffset(N);Z=Z-q*y.value,ee=ee-Q*y.value}M.data.style={...X,position:J,top:calcValueByFontsize(R,ee/y.value),left:calcValueByFontsize(R,Z/y.value)},M.data.inputEvent=I,s.add(M.data,A)}};return(I,T)=>{var R,N,A,O;const M=resolveDirective("loading");return withDirectives((openBlock(),createBlock(_sfc_main$8$1,{class:"m-editor-stage",ref:"stageWrap",tabindex:"-1","element-loading-text":"Runtime 加载中...",width:(R=_.value)==null?void 0:R.width,height:(N=_.value)==null?void 0:N.height,"wrap-width":(A=v.value)==null?void 0:A.width,"wrap-height":(O=v.value)==null?void 0:O.height,zoom:y.value,"correction-scroll-size":{width:60,height:50},onClick:T[0]||(T[0]=P=>{var F,B;return(B=(F=d.value)==null?void 0:F.container)==null?void 0:B.focus()})},{content:withCtx(()=>[o.disabledStageOverlay?createCommentVNode("v-if",!0):(openBlock(),createBlock(_sfc_main$6$1,{key:0})),(openBlock(),createBlock(Teleport,{to:"body"},[createVNode(_sfc_main$4$1,{ref:"menu","is-multi-select":m.value,"stage-content-menu":o.stageContentMenu,"custom-content-menu":o.customContentMenu},null,8,["is-multi-select","stage-content-menu","custom-content-menu"])]))]),default:withCtx(()=>[createBaseVNode("div",{class:"m-editor-stage-container",ref:"stageContainer",style:normalizeStyle("transform: scale(".concat(y.value,");")),onContextmenu:L,onDrop:D,onDragover:k},null,36),createVNode(_sfc_main$7$1)]),_:1},8,["width","height","wrap-width","wrap-height","zoom"])),[[M,c.value]])}}}),_hoisted_1$1$1={key:0,class:"m-editor-breadcrumb"},_hoisted_2$p={key:0},_sfc_main$2$1=defineComponent({name:"MEditorBreadcrumb",__name:"Breadcrumb",setup(o){const{editorService:e}=useServices(),t=computed$1(()=>e.get("node")),r=computed$1(()=>e.get("nodes")),s=computed$1(()=>e.get("root")),a=computed$1(()=>{var c,d;return getNodePath(((c=t.value)==null?void 0:c.id)||"",((d=s.value)==null?void 0:d.items)||[])}),l=async c=>{var d;await e.select(c),(d=e.get("stage"))==null||d.select(c.id)};return(c,d)=>r.value.length===1?(openBlock(),createElementBlock("div",_hoisted_1$1$1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(a.value,(u,g)=>{var f;return openBlock(),createElementBlock(Fragment,{key:u.id},[createVNode(unref(_sfc_main$F$1),{link:"",disabled:u.id===((f=t.value)==null?void 0:f.id),onClick:m=>l(u)},{default:withCtx(()=>[createTextVNode(toDisplayString(u.name),1)]),_:2},1032,["disabled","onClick"]),g<a.value.length-1?(openBlock(),createElementBlock("span",_hoisted_2$p,"/")):createCommentVNode("v-if",!0)],64)}),128))])):createCommentVNode("v-if",!0)}}),_hoisted_1$10={class:"m-editor-workspace"},_sfc_main$1$1=defineComponent({name:"MEditorWorkspace",__name:"Workspace",props:{stageContentMenu:{},disabledStageOverlay:{type:Boolean,default:!1},customContentMenu:{}},setup(o){const e=inject("stageOptions"),{editorService:t}=useServices(),r=computed$1(()=>t.get("page"));return(s,a)=>(openBlock(),createElementBlock("div",_hoisted_1$10,[createVNode(_sfc_main$2$1),renderSlot(s.$slots,"stage",{},()=>{var l,c;return[r.value&&((l=unref(e))!=null&&l.render||(c=unref(e))!=null&&c.runtimeUrl)?(openBlock(),createBlock(_sfc_main$3$1,{key:0,"stage-options":unref(e),"disabled-stage-overlay":o.disabledStageOverlay,"stage-content-menu":o.stageContentMenu,"custom-content-menu":o.customContentMenu},null,8,["stage-options","disabled-stage-overlay","stage-content-menu","custom-content-menu"])):createCommentVNode("v-if",!0)]}),renderSlot(s.$slots,"workspace-content")]))}}),canUsePluginMethods$3={async:["setCodeDslById","setEditStatus","setCombineIds","setUndeleteableList","deleteCodeDslByIds"],sync:["setCodeDslByIdSync"]};class CodeBlock extends BaseService{constructor(){super([...canUsePluginMethods$3.async.map(t=>({name:t,isAsync:!0})),...canUsePluginMethods$3.sync.map(t=>({name:t,isAsync:!1}))]);K(this,"state",reactive$1({codeDsl:null,editable:!0,combineIds:[],undeletableList:[],paramsColConfig:void 0}))}async setCodeDsl(t){this.state.codeDsl=t,this.emit("code-dsl-change",this.state.codeDsl)}getCodeDsl(){return this.state.codeDsl}getCodeContentById(t){var s;if(!t)return null;const r=this.getCodeDsl();return r&&(s=r[t])!=null?s:null}async setCodeDslById(t,r){this.setCodeDslByIdSync(t,r,!0)}setCodeDslByIdSync(t,r,s=!0){const a=this.getCodeDsl();if(!a)throw new Error("dsl中没有codeBlocks");if(a[t]&&!s)return;const l=cloneDeep(r);if(l.content){const d=getEditorConfig("parseDSL");typeof l.content=="string"&&(l.content=d(l.content))}const c=a[t]||{};a[t]={...c,...l},this.emit("addOrUpdate",t,a[t])}getCodeDslByIds(t){const r=this.getCodeDsl();return pick(r,t)}getEditStatus(){return this.state.editable}async setEditStatus(t){this.state.editable=t}async setCombineIds(t){this.state.combineIds=t}getCombineIds(){return this.state.combineIds}getUndeletableList(){return this.state.undeletableList}async setUndeleteableList(t){this.state.undeletableList=t}setCodeDraft(t,r){globalThis.localStorage.setItem("".concat(CODE_DRAFT_STORAGE_KEY,"_").concat(t),r)}getCodeDraft(t){return globalThis.localStorage.getItem("".concat(CODE_DRAFT_STORAGE_KEY,"_").concat(t))}removeCodeDraft(t){globalThis.localStorage.removeItem("".concat(CODE_DRAFT_STORAGE_KEY,"_").concat(t))}async deleteCodeDslByIds(t){const r=await this.getCodeDsl();r&&t.forEach(s=>{delete r[s],this.emit("remove",s)})}setParamsColConfig(t){this.state.paramsColConfig=t}getParamsColConfig(){return this.state.paramsColConfig}async getUniqueId(){const t="code_".concat(Math.random().toString(10).substring(2).substring(0,4)),r=await this.getCodeDsl();return keys$1(r).includes(t)?await this.getUniqueId():t}copyWithRelated(t,r){const s=Array.isArray(t)?t:[t],a={};if(r&&typeof r.isTarget=="function"){const l=new Target({...r}),c=new Watcher;c.addTarget(l),c.collect(s,{},!0,r.type),Object.keys(l.deps).forEach(d=>{const u=editorService.getNodeById(d);u&&l.deps[d].keys.forEach(g=>{const f=get(u,g);if(!Object.keys(a).find(_=>_===f)){const _=this.getCodeContentById(f);_&&(a[f]=_)}})})}storageService.setItem(COPY_CODE_STORAGE_KEY,a,{protocol:Protocol.OBJECT})}paste(){const t=storageService.getItem(COPY_CODE_STORAGE_KEY);Object.keys(t).forEach(r=>{this.setCodeDslByIdSync(r,t[r],!1)})}resetState(){this.state.codeDsl=null,this.state.editable=!0,this.state.combineIds=[],this.state.undeletableList=[]}destroy(){this.resetState(),this.removeAllListeners(),this.removeAllPlugins()}usePlugin(t){super.usePlugin(t)}}const codeBlockService=new CodeBlock;class ComponentList extends BaseService{constructor(){super([]);K(this,"state",shallowReactive({list:[]}))}setList(t){this.state.list=t}getList(){return this.state.list}resetState(){this.state.list=[]}destroy(){this.resetState(),this.removeAllListeners(),this.removeAllPlugins()}}const componentListService=new ComponentList,canUsePluginMethods$2={sync:["getFormConfig","setFormConfig","getFormValue","setFormValue","getFormEvent","setFormEvent","getFormMethod","setFormMethod","add","update","remove","createId"]};class DataSource extends BaseService{constructor(){super(canUsePluginMethods$2.sync.map(t=>({name:t,isAsync:!1})));K(this,"state",reactive$1({datasourceTypeList:[],dataSources:[],editable:!0,configs:{},values:{},events:{},methods:{}}))}set(t,r){this.state[t]=r}get(t){return this.state[t]}getFormConfig(t="base"){return getFormConfig(toLine(t),this.get("configs"))}setFormConfig(t,r){this.get("configs")[toLine(t)]=r}getFormValue(t="base"){return getFormValue(toLine(t),this.get("values")[t])}setFormValue(t,r){this.get("values")[toLine(t)]=r}getFormEvent(t="base"){return this.get("events")[toLine(t)]||[]}setFormEvent(t,r=[]){this.get("events")[toLine(t)]=r}getFormMethod(t="base"){return this.get("methods")[toLine(t)]||[]}setFormMethod(t,r=[]){this.get("methods")[toLine(t)]=r}add(t){const r={...t,id:t.id&&!this.getDataSourceById(t.id)?t.id:this.createId()};return this.get("dataSources").push(r),this.emit("add",r),r}update(t,{changeRecords:r=[]}={}){const s=this.get("dataSources"),a=s.findIndex(d=>d.id===t.id),l=s[a],c=cloneDeep(t);return s[a]=c,this.emit("update",c,{oldConfig:l,changeRecords:r}),c}remove(t){const r=this.get("dataSources"),s=r.findIndex(a=>a.id===t);r.splice(s,1),this.emit("remove",t)}createId(){return"ds_".concat(guid())}getDataSourceById(t){return this.get("dataSources").find(r=>r.id===t)}resetState(){this.set("dataSources",[])}destroy(){this.removeAllListeners(),this.resetState(),this.removeAllPlugins()}usePlugin(t){super.usePlugin(t)}copyWithRelated(t,r){const s=Array.isArray(t)?t:[t],a=[];if(r&&typeof r.isTarget=="function"){const l=new Target({...r}),c=new Watcher;c.addTarget(l),c.collect(s,{},!0,r.type),Object.keys(l.deps).forEach(d=>{const u=editorService.getNodeById(d);u&&l.deps[d].keys.forEach(g=>{const[f]=get(u,g);if(!a.find(_=>_.id===f)){const _=this.getDataSourceById(f);_&&a.push(_)}})})}storageService.setItem(COPY_DS_STORAGE_KEY,a,{protocol:Protocol.OBJECT})}paste(){storageService.getItem(COPY_DS_STORAGE_KEY).forEach(r=>{this.getDataSourceById(r.id)||this.add(r)})}}const dataSourceService=new DataSource,jsContent="(function () {\n 'use strict';\n\n var events = {exports: {}};\n\n var hasRequiredEvents;\n\n function requireEvents () {\n if (hasRequiredEvents) return events.exports;\n hasRequiredEvents = 1;\n\n var R = typeof Reflect === 'object' ? Reflect : null;\n var ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n\n function ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n }\n\n var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n };\n\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n events.exports = EventEmitter;\n events.exports.once = once;\n\n // Backwards-compat with node 0.10.x\n EventEmitter.EventEmitter = EventEmitter;\n\n EventEmitter.prototype._events = undefined;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = undefined;\n\n // By default EventEmitters will print a warning if more than 10 listeners are\n // added to it. This is a useful default which helps finding memory leaks.\n var defaultMaxListeners = 10;\n\n function checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n }\n\n Object.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n });\n\n EventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n };\n\n // Obviously not all Emitters should be limited to 10. This function allows\n // that to be increased. Set to zero for unlimited.\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n };\n\n function _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n };\n\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n }\n\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\n EventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n\n EventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n\n EventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n // Emits a 'removeListener' event if and only if the listener was removed.\n EventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\n EventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\n function _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n }\n\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n\n function once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n }\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n }\n\n function eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n }\n return events.exports;\n }\n\n requireEvents();\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n\n let cachedTextEncoder = new TextEncoder(\"utf-8\");\n\n typeof cachedTextEncoder.encodeInto === \"function\"\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n }\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length,\n };\n };\n\n const NODE_CONDS_KEY = \"displayConds\";\n const NODE_DISABLE_DATA_SOURCE_KEY = \"_tmagic_node_disabled_data_source\";\n const NODE_DISABLE_CODE_BLOCK_KEY = \"_tmagic_node_disabled_code_block\";\n var HookType = /* @__PURE__ */ ((HookType2) => {\n HookType2[\"CODE\"] = \"code\";\n return HookType2;\n })(HookType || {});\n\n const isObject = (obj) => Object.prototype.toString.call(obj) === \"[object Object]\";\n const getKeysArray = (keys) => (\n // 将 array[0] 转成 array.0\n `${keys}`.replace(/\\[(\\d+)\\]/g, \".$1\").split(\".\")\n );\n const DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX = \"ds-field::\";\n const dataSourceTemplateRegExp = /\\$\\{([\\s\\S]+?)\\}/g;\n\n var DepTargetType = /* @__PURE__ */ ((DepTargetType2) => {\n DepTargetType2[\"DEFAULT\"] = \"default\";\n DepTargetType2[\"CODE_BLOCK\"] = \"code-block\";\n DepTargetType2[\"DATA_SOURCE\"] = \"data-source\";\n DepTargetType2[\"DATA_SOURCE_METHOD\"] = \"data-source-method\";\n DepTargetType2[\"DATA_SOURCE_COND\"] = \"data-source-cond\";\n return DepTargetType2;\n })(DepTargetType || {});\n\n class Target {\n /**\n * 如何识别目标\n */\n isTarget;\n /**\n * 目标id不可重复\n * 例如目标是代码块则为代码块id\n */\n id;\n /**\n * 目标名称,用于显示在依赖列表中\n */\n name;\n /**\n * 不同的目标可以进行分类例如代码块数据源可以为两个不同的type\n */\n type = DepTargetType.DEFAULT;\n /**\n * 依赖详情\n * 实例:{ 'node_id': { name: 'node_name', keys: [ created, mounted ] } }\n */\n deps = {};\n /**\n * 是否默认收集默认为true当值为false时需要传入type参数给collect方法才会被收集\n */\n isCollectByDefault;\n constructor(options) {\n this.isTarget = options.isTarget;\n this.id = options.id;\n this.name = options.name;\n this.isCollectByDefault = options.isCollectByDefault ?? true;\n if (options.type) {\n this.type = options.type;\n }\n if (options.initialDeps) {\n this.deps = options.initialDeps;\n }\n }\n /**\n * 更新依赖\n * @param option 节点配置\n * @param key 哪个key配置了这个目标的id\n */\n updateDep({ id, name, key, data }) {\n const dep = this.deps[id] || {\n name,\n keys: []\n };\n dep.name = name;\n dep.data = data;\n this.deps[id] = dep;\n if (dep.keys.indexOf(key) === -1) {\n dep.keys.push(key);\n }\n }\n /**\n * 删除依赖\n * @param node 哪个节点的依赖需要移除,如果为空,则移除所有依赖\n * @param key 节点下哪个key需要移除如果为空则移除改节点下的所有依赖key\n * @returns void\n */\n removeDep(id, key) {\n if (typeof id === \"undefined\") {\n Object.keys(this.deps).forEach((depKey) => {\n delete this.deps[depKey];\n });\n return;\n }\n const dep = this.deps[id];\n if (!dep) return;\n if (key) {\n const index = dep.keys.indexOf(key);\n dep.keys.splice(index, 1);\n if (dep.keys.length === 0) {\n delete this.deps[id];\n }\n } else {\n delete this.deps[id];\n }\n }\n /**\n * 判断指定节点下的指定key是否存在在依赖列表中\n * @param node 哪个节点\n * @param key 哪个key\n * @returns boolean\n */\n hasDep(id, key) {\n const dep = this.deps[id];\n return Boolean(dep?.keys.find((d) => d === key));\n }\n destroy() {\n this.deps = {};\n }\n }\n\n const createCodeBlockTarget = (id, codeBlock, initialDeps = {}) => new Target({\n type: DepTargetType.CODE_BLOCK,\n id,\n initialDeps,\n name: codeBlock.name,\n isTarget: (_key, value) => {\n if (id === value) {\n return true;\n }\n if (value?.hookType === HookType.CODE && Array.isArray(value.hookData)) {\n const index = value.hookData.findIndex((item) => item.codeId === id);\n return Boolean(index > -1);\n }\n return false;\n }\n });\n const isIncludeArrayField = (keys, fields) => {\n let f = fields;\n return keys.some((key, index) => {\n const field = f.find(({ name }) => name === key);\n f = field?.fields || [];\n return field?.type === \"array\" && // 不是整数\n /^(?!\\d+$).*$/.test(`${keys[index + 1]}`) && index < keys.length - 1;\n });\n };\n const isDataSourceTemplate = (value, ds, hasArray = false) => {\n const templates = value.match(dataSourceTemplateRegExp) || [];\n if (templates.length <= 0) {\n return false;\n }\n const arrayFieldTemplates = [];\n const fieldTemplates = [];\n templates.forEach((tpl) => {\n const expression = tpl.substring(2, tpl.length - 1);\n const keys = getKeysArray(expression);\n const dsId = keys.shift();\n if (!dsId || dsId !== ds.id) {\n return;\n }\n if (isIncludeArrayField(keys, ds.fields)) {\n arrayFieldTemplates.push(tpl);\n } else {\n fieldTemplates.push(tpl);\n }\n });\n if (hasArray) {\n return arrayFieldTemplates.length > 0;\n }\n return fieldTemplates.length > 0;\n };\n const isSpecificDataSourceTemplate = (value, dsId) => value?.isBindDataSourceField && value.dataSourceId && value.dataSourceId === dsId && typeof value.template === \"string\";\n const isUseDataSourceField = (value, id) => {\n if (!Array.isArray(value) || typeof value[0] !== \"string\") {\n return false;\n }\n const [prefixId] = value;\n const prefixIndex = prefixId.indexOf(DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX);\n if (prefixIndex === -1) {\n return false;\n }\n const dsId = prefixId.substring(prefixIndex + DATA_SOURCE_FIELDS_SELECT_VALUE_PREFIX.length);\n return dsId === id;\n };\n const isDataSourceTarget = (ds, key, value, hasArray = false) => {\n if (!value || ![\"string\", \"object\"].includes(typeof value)) {\n return false;\n }\n if (`${key}`.startsWith(NODE_CONDS_KEY)) {\n return false;\n }\n if (typeof value === \"string\") {\n return isDataSourceTemplate(value, ds, hasArray);\n }\n if (isObject(value) && value?.isBindDataSource && value.dataSourceId && value.dataSourceId === ds.id) {\n return true;\n }\n if (isSpecificDataSourceTemplate(value, ds.id)) {\n return true;\n }\n if (isUseDataSourceField(value, ds.id)) {\n const [, ...keys] = value;\n const includeArray = isIncludeArrayField(keys, ds.fields);\n if (hasArray) {\n return includeArray;\n }\n return !includeArray;\n }\n return false;\n };\n const isDataSourceCondTarget = (ds, key, value, hasArray = false) => {\n if (!Array.isArray(value) || !ds) {\n return false;\n }\n const [dsId, ...keys] = value;\n if (dsId !== ds.id || !`${key}`.startsWith(NODE_CONDS_KEY)) {\n return false;\n }\n if (ds.fields?.find((field) => field.name === keys[0])) {\n const includeArray = isIncludeArrayField(keys, ds.fields);\n if (hasArray) {\n return includeArray;\n }\n return !includeArray;\n }\n return false;\n };\n const createDataSourceTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE,\n id: ds.id,\n initialDeps,\n isTarget: (key, value) => isDataSourceTarget(ds, key, value)\n });\n const createDataSourceCondTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE_COND,\n id: ds.id,\n initialDeps,\n isTarget: (key, value) => isDataSourceCondTarget(ds, key, value)\n });\n const createDataSourceMethodTarget = (ds, initialDeps = {}) => new Target({\n type: DepTargetType.DATA_SOURCE_METHOD,\n id: ds.id,\n initialDeps,\n isTarget: (_key, value) => {\n if (!Array.isArray(value)) {\n return false;\n }\n const [dsId, methodName] = value;\n if (!methodName || dsId !== ds.id) {\n return false;\n }\n if (ds.methods?.find((method) => method.name === methodName)) {\n return true;\n }\n if (ds.fields?.find((field) => field.name === methodName)) {\n return false;\n }\n return true;\n }\n });\n const traverseTarget = (targetsList, cb, type) => {\n for (const targets of Object.values(targetsList)) {\n for (const target of Object.values(targets)) {\n if (type && target.type !== type) {\n continue;\n }\n cb(target);\n }\n }\n };\n\n class Watcher {\n targetsList = {};\n childrenProp = \"items\";\n idProp = \"id\";\n nameProp = \"name\";\n constructor(options) {\n if (options?.initialTargets) {\n this.targetsList = options.initialTargets;\n }\n if (options?.childrenProp) {\n this.childrenProp = options.childrenProp;\n }\n }\n getTargetsList() {\n return this.targetsList;\n }\n /**\n * 获取指定类型中的所有target\n * @param type 分类\n * @returns Target[]\n */\n getTargets(type = DepTargetType.DEFAULT) {\n return this.targetsList[type] || {};\n }\n /**\n * 添加新的目标\n * @param target Target\n */\n addTarget(target) {\n const targets = this.getTargets(target.type) || {};\n this.targetsList[target.type] = targets;\n targets[target.id] = target;\n }\n /**\n * 获取指定id的target\n * @param id target id\n * @returns Target\n */\n getTarget(id, type = DepTargetType.DEFAULT) {\n return this.getTargets(type)[id];\n }\n /**\n * 判断是否存在指定id的target\n * @param id target id\n * @returns boolean\n */\n hasTarget(id, type = DepTargetType.DEFAULT) {\n return Boolean(this.getTarget(id, type));\n }\n /**\n * 判断是否存在指定类型的target\n * @param type target type\n * @returns boolean\n */\n hasSpecifiedTypeTarget(type = DepTargetType.DEFAULT) {\n return Object.keys(this.getTargets(type)).length > 0;\n }\n /**\n * 删除指定id的target\n * @param id target id\n */\n removeTarget(id, type = DepTargetType.DEFAULT) {\n const targets = this.getTargets(type);\n if (targets[id]) {\n targets[id].destroy();\n delete targets[id];\n }\n }\n /**\n * 删除指定分类的所有target\n * @param type 分类\n * @returns void\n */\n removeTargets(type = DepTargetType.DEFAULT) {\n const targets = this.targetsList[type];\n if (!targets) return;\n for (const target of Object.values(targets)) {\n target.destroy();\n }\n delete this.targetsList[type];\n }\n /**\n * 删除所有target\n */\n clearTargets() {\n for (const key of Object.keys(this.targetsList)) {\n delete this.targetsList[key];\n }\n }\n /**\n * 收集依赖\n * @param nodes 需要收集的节点\n * @param deep 是否需要收集子节点\n * @param type 强制收集指定类型的依赖\n */\n collect(nodes, depExtendedData = {}, deep = false, type) {\n this.collectByCallback(nodes, type, ({ node, target }) => {\n this.removeTargetDep(target, node);\n this.collectItem(node, target, depExtendedData, deep);\n });\n }\n collectByCallback(nodes, type, cb) {\n traverseTarget(\n this.targetsList,\n (target) => {\n if (!type && !target.isCollectByDefault) {\n return;\n }\n for (const node of nodes) {\n cb({ node, target });\n }\n },\n type\n );\n }\n /**\n * 清除所有目标的依赖\n * @param nodes 需要清除依赖的节点\n */\n clear(nodes, type) {\n let { targetsList } = this;\n if (type) {\n targetsList = {\n [type]: this.getTargets(type)\n };\n }\n const clearedItemsNodeIds = [];\n traverseTarget(targetsList, (target) => {\n if (nodes) {\n for (const node of nodes) {\n target.removeDep(node[this.idProp]);\n if (Array.isArray(node[this.childrenProp]) && node[this.childrenProp].length && !clearedItemsNodeIds.includes(node[this.idProp])) {\n clearedItemsNodeIds.push(node[this.idProp]);\n this.clear(node[this.childrenProp]);\n }\n }\n } else {\n target.removeDep();\n }\n });\n }\n /**\n * 清除指定类型的依赖\n * @param type 类型\n * @param nodes 需要清除依赖的节点\n */\n clearByType(type, nodes) {\n this.clear(nodes, type);\n }\n collectItem(node, target, depExtendedData = {}, deep = false) {\n const dataSourceTargetTypes = [\n DepTargetType.DATA_SOURCE,\n DepTargetType.DATA_SOURCE_COND,\n DepTargetType.DATA_SOURCE_METHOD\n ];\n if (node[NODE_DISABLE_DATA_SOURCE_KEY] && dataSourceTargetTypes.includes(target.type)) {\n return;\n }\n if (node[NODE_DISABLE_CODE_BLOCK_KEY] && target.type === DepTargetType.CODE_BLOCK) {\n return;\n }\n const collectTarget = (config, prop = \"\") => {\n const doCollect = (key, value) => {\n const keyIsItems = key === this.childrenProp;\n const fullKey = prop ? `${prop}.${key}` : key;\n if (target.isTarget(fullKey, value)) {\n target.updateDep({\n id: node[this.idProp],\n name: `${node[this.nameProp] || node[this.idProp]}`,\n data: depExtendedData,\n key: fullKey\n });\n } else if (!keyIsItems && Array.isArray(value)) {\n for (let i = 0, l = value.length; i < l; i++) {\n const item = value[i];\n if (isObject(item)) {\n collectTarget(item, `${fullKey}[${i}]`);\n }\n }\n } else if (isObject(value)) {\n collectTarget(value, fullKey);\n }\n if (keyIsItems && deep && Array.isArray(value)) {\n for (const child of value) {\n this.collectItem(child, target, depExtendedData, deep);\n }\n }\n };\n for (const [key, value] of Object.entries(config)) {\n if (typeof value === \"undefined\" || value === \"\") continue;\n doCollect(key, value);\n }\n };\n collectTarget(node);\n }\n removeTargetDep(target, node, key) {\n target.removeDep(node[this.idProp], key);\n if (typeof key === \"undefined\" && Array.isArray(node[this.childrenProp]) && node[this.childrenProp].length) {\n for (const item of node[this.childrenProp]) {\n this.removeTargetDep(target, item, key);\n }\n }\n }\n }\n\n const error = (...args) => {\n if (process.env.NODE_ENV === \"development\") {\n console.error(\"magic editor: \", ...args);\n }\n };\n\n onmessage = (e) => {\n const watcher = new Watcher({ initialTargets: {} });\n const { dsl } = e.data;\n try {\n const mApp = eval(`(${dsl})`);\n if (!mApp) {\n postMessage({});\n }\n watcher.clearTargets();\n if (mApp.codeBlocks) {\n for (const [id, code] of Object.entries(mApp.codeBlocks)) {\n watcher.addTarget(createCodeBlockTarget(id, code));\n }\n }\n if (mApp.dataSources) {\n for (const ds of mApp.dataSources) {\n watcher.addTarget(createDataSourceTarget(ds, {}));\n watcher.addTarget(createDataSourceMethodTarget(ds, {}));\n watcher.addTarget(createDataSourceCondTarget(ds, {}));\n }\n }\n watcher.collectByCallback(mApp.items, void 0, ({ node, target }) => {\n watcher.collectItem(node, target, { pageId: node.id }, true);\n });\n const data = {\n [DepTargetType.DATA_SOURCE]: {},\n [DepTargetType.DATA_SOURCE_METHOD]: {},\n [DepTargetType.DATA_SOURCE_COND]: {},\n [DepTargetType.CODE_BLOCK]: {}\n };\n traverseTarget(watcher.getTargetsList(), (target) => {\n data[target.type][target.id] = target.deps;\n });\n postMessage(data);\n } catch (e2) {\n error(e2);\n postMessage({});\n }\n };\n\n})();\n",blob=typeof self<"u"&&self.Blob&&new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);",jsContent],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(o){let e;try{if(e=blob&&(self.URL||self.webkitURL).createObjectURL(blob),!e)throw"";const t=new Worker(e,{name:o==null?void 0:o.name});return t.addEventListener("error",()=>{(self.URL||self.webkitURL).revokeObjectURL(e)}),t}catch(t){return new Worker("data:text/javascript;charset=utf-8,"+encodeURIComponent(jsContent),{name:o==null?void 0:o.name})}}class Dep extends BaseService{constructor(){super();K(this,"state",shallowReactive({collecting:!1,taskLength:0}));K(this,"idleTask",new IdleTask);K(this,"watcher",new Watcher({initialTargets:reactive$1({})}));K(this,"waitingWorker");this.idleTask.on("update-task-length",throttle$2(({length:t})=>{this.set("taskLength",t)},1e3))}set(t,r){this.state[t]=r}get(t){return this.state[t]}removeTargets(t=DepTargetType.DEFAULT){this.watcher.removeTargets(t);const r=this.watcher.getTargets(t);if(r)for(const s of Object.values(r))this.emit("remove-target",s.id,t)}getTargets(t=DepTargetType.DEFAULT){return this.watcher.getTargets(t)}getTarget(t,r=DepTargetType.DEFAULT){return this.watcher.getTarget(t,r)}addTarget(t){this.watcher.addTarget(t),this.emit("add-target",t)}removeTarget(t,r=DepTargetType.DEFAULT){this.watcher.removeTarget(t,r),this.emit("remove-target",t,r)}clearTargets(){this.watcher.clearTargets()}collect(t,r={},s=!1,a){this.set("collecting",!0),this.watcher.collectByCallback(t,a,({node:l,target:c})=>{this.collectNode(l,c,r,s)}),this.set("collecting",!1),this.emit("collected",t,s),this.emit("ds-collected",t,s)}async collectIdle(t,r={},s=!1,a){this.waitingWorker&&await this.waitingWorker,this.set("collecting",!0);let l=!1;return this.watcher.collectByCallback(t,a,({node:c,target:d})=>{l=!0,this.enqueueTask(c,d,r,s)}),new Promise(c=>{if(!l){this.emit("collected",t,s),this.set("collecting",!1),c();return}this.idleTask.once("finish",()=>{this.emit("collected",t,s),this.set("collecting",!1)}),this.idleTask.once("hight-level-finish",()=>{this.emit("ds-collected",t,s),c()})})}collectByWorker(t){this.set("collecting",!0);const{promise:r,resolve:s}=Promise.withResolvers();return this.waitingWorker=r,new Promise(a=>{const l=new WorkerWrapper;l.postMessage({dsl:serialize(t)}),l.onmessage=c=>{a(c.data)},l.onerror=()=>{a({})}}).then(a=>(traverseTarget(this.watcher.getTargetsList(),l=>{var c;(c=a[l.type])!=null&&c[l.id]&&(l.deps=reactive$1(a[l.type][l.id]),l.type===DepTargetType.DATA_SOURCE&&t.dataSourceDeps?t.dataSourceDeps[l.id]=l.deps:l.type===DepTargetType.DATA_SOURCE_COND&&t.dataSourceCondDeps?t.dataSourceCondDeps[l.id]=l.deps:l.type===DepTargetType.DATA_SOURCE_METHOD&&(t.dataSourceMethodDeps[l.id]=l.deps))}),this.set("collecting",!1),this.emit("collected",t.items,!0),this.emit("ds-collected",t.items,!0),s(),a))}collectNode(t,r,s={},a=!1){var l;if(isPage(t))for(const[c,d]of Object.entries(r.deps))(l=d.data)!=null&&l.pageId&&d.data.pageId===s.pageId&&delete r.deps[c];else this.watcher.removeTargetDep(r,t);this.watcher.collectItem(t,r,s,a)}clear(t){return this.watcher.clear(t)}clearByType(t,r){return this.watcher.clearByType(t,r)}hasTarget(t,r=DepTargetType.DEFAULT){return this.watcher.hasTarget(t,r)}hasSpecifiedTypeTarget(t=DepTargetType.DEFAULT){return this.watcher.hasSpecifiedTypeTarget(t)}clearIdleTasks(){this.idleTask.clearTasks()}on(t,r){return super.on(t,r)}once(t,r){return super.once(t,r)}reset(){this.idleTask.clearTasks();for(const t of Object.keys(this.watcher.getTargetsList()))this.removeTargets(t);this.set("collecting",!1)}destroy(){this.idleTask.removeAllListeners(),this.removeAllListeners(),this.reset(),this.removeAllPlugins(),this.idleTask.removeAllListeners()}emit(t,...r){return super.emit(t,...r)}enqueueTask(t,r,s,a){this.idleTask.enqueueTask(({node:l,deep:c,target:d})=>{this.collectNode(l,d,s,c)},{node:t,deep:!1,target:r},r.type===DepTargetType.DATA_SOURCE),a&&Array.isArray(t.items)&&t.items.length&&t.items.forEach(l=>{this.enqueueTask(l,r,s,a)})}}const depService=new Dep,canUsePluginMethods$1={async:[],sync:["setEvent","getEvent","setMethod","getMethod"]};let eventMap=reactive$1({}),methodMap=reactive$1({});class Events extends BaseService{constructor(){super([...canUsePluginMethods$1.async.map(e=>({name:e,isAsync:!0})),...canUsePluginMethods$1.sync.map(e=>({name:e,isAsync:!1}))])}setEvents(e){Object.keys(e).forEach(t=>{this.setEvent(toLine(t),e[t]||[])})}setEvent(e,t){eventMap[toLine(e)]=[...t]}getEvent(e){return cloneDeep(eventMap[toLine(e)])||[]}setMethods(e){Object.keys(e).forEach(t=>{this.setMethod(toLine(t),e[t]||[])})}setMethod(e,t){methodMap[toLine(e)]=[...t]}getMethod(e,t){return cloneDeep(methodMap[toLine(e)])||[]}resetState(){eventMap=reactive$1({}),methodMap=reactive$1({})}destroy(){this.resetState(),this.removeAllListeners(),this.removeAllPlugins()}usePlugin(e){super.usePlugin(e)}}const eventsService=new Events;class Keybinding extends BaseService{constructor(){super(...arguments);K(this,"ctrlKey",/mac os x/.test(navigator.userAgent.toLowerCase())?"meta":"ctrl");K(this,"controllers",new Map);K(this,"bindingList",[]);K(this,"commands",{[KeyBindingCommand.DELETE_NODE]:()=>{const t=editorService.get("nodes");!t||isPage(t[0])||isPageFragment(t[0])||editorService.remove(t)},[KeyBindingCommand.COPY_NODE]:()=>{const t=editorService.get("nodes");t&&editorService.copy(t)},[KeyBindingCommand.CUT_NODE]:()=>{const t=editorService.get("nodes");!t||isPage(t[0])||isPageFragment(t[0])||(editorService.copy(t),editorService.remove(t))},[KeyBindingCommand.PASTE_NODE]:()=>{editorService.get("nodes")&&editorService.paste({offsetX:10,offsetY:10})},[KeyBindingCommand.UNDO]:()=>{editorService.undo()},[KeyBindingCommand.REDO]:()=>{editorService.redo()},[KeyBindingCommand.ZOOM_IN]:()=>{uiService.zoom(.1)},[KeyBindingCommand.ZOOM_OUT]:()=>{uiService.zoom(-.1)},[KeyBindingCommand.ZOOM_RESET]:()=>{uiService.set("zoom",1)},[KeyBindingCommand.ZOOM_FIT]:async()=>{uiService.set("zoom",await uiService.calcZoom())},[KeyBindingCommand.MOVE_UP_1]:()=>{editorService.move(0,-1)},[KeyBindingCommand.MOVE_DOWN_1]:()=>{editorService.move(0,1)},[KeyBindingCommand.MOVE_LEFT_1]:()=>{editorService.move(-1,0)},[KeyBindingCommand.MOVE_RIGHT_1]:()=>{editorService.move(1,0)},[KeyBindingCommand.MOVE_UP_10]:()=>{editorService.move(0,-10)},[KeyBindingCommand.MOVE_DOWN_10]:()=>{editorService.move(0,10)},[KeyBindingCommand.MOVE_LEFT_10]:()=>{editorService.move(-10,0)},[KeyBindingCommand.MOVE_RIGHT_10]:()=>{editorService.move(10,0)},[KeyBindingCommand.SWITCH_NODE]:()=>{editorService.selectNextNode()}})}registerCommand(t,r){this.commands[t]=r}registeCommand(t,r){this.registerCommand(t,r)}unregisterCommand(t){delete this.commands[t]}unregisteCommand(t){this.unregisterCommand(t)}registerEl(t,r){if(t!=="global"&&!r)throw new Error("只有name为global可以不传el");const s=new KeyController(r);this.controllers.set(t,s),this.bind(t)}registeEl(t,r){this.registerEl(t,r)}unregisterEl(t){var r;(r=this.controllers.get(t))==null||r.destroy(),this.controllers.delete(t),this.bindingList.forEach(s=>{s.bound=!1})}unregisteEl(t){this.unregisterEl(t)}register(t){for(const r of t){const{command:s,keybinding:a,when:l}=r;for(const[c="",d="keydown"]of l){const u={type:c,command:s,keybinding:a,eventType:d,bound:!1};this.bindingList.find(g=>g.command===s&&g.eventType===d&&g.type===c&&g.keybinding===a)||this.bindingList.push(u)}}this.bind()}registe(t){this.register(t)}reset(){this.controllers.forEach(t=>{t.destroy()}),this.controllers.clear(),this.bindingList=[]}destroy(){this.reset()}bind(t){for(const r of this.bindingList){const{type:s,eventType:a,command:l,keybinding:c,bound:d}=r;if(t&&t!==s||d)continue;const u=this.controllers.get(s);if(!u)continue;const g=f=>{var m,_;f.inputEvent.preventDefault(),(_=(m=this.commands)[l])==null||_.call(m,f.inputEvent)};this.getKeyconKeys(c).forEach(f=>{f[0]?u[a](f,g):u[a](g)}),r.bound=!0}}getKeyconKeys(t=""){const r=s=>s.split("+").map(a=>a==="ctrl"?this.ctrlKey:a);return Array.isArray(t)?t.map(s=>r(s)):[r(t)]}}const keybindingService=new Keybinding,canUsePluginMethods={sync:["openOverlay","closeOverlay","updateOverlay","createStage"]};class StageOverlay extends BaseService{constructor(){super(canUsePluginMethods.sync.map(t=>({name:t,isAsync:!1})));K(this,"state",shallowReactive({wrapDiv:document.createElement("div"),sourceEl:null,contentEl:null,stage:null,stageOptions:null,wrapWidth:0,wrapHeight:0,stageOverlayVisible:!1}));K(this,"updateHandler",()=>{setTimeout(()=>{this.render(),this.updateOverlay(),this.updateSelectStatus()})});K(this,"addHandler",()=>{this.render(),this.updateOverlay(),this.updateSelectStatus()});K(this,"removeHandler",()=>{this.render(),this.updateOverlay(),this.updateSelectStatus()});this.get("wrapDiv").classList.add("tmagic-editor-sub-stage-wrap")}get(t){return this.state[t]}set(t,r){this.state[t]=r}openOverlay(t){const r=this.get("stageOptions");!t||!r||(this.set("sourceEl",t),this.createContentEl(),this.set("stageOverlayVisible",!0),editorService.on("update",this.updateHandler),editorService.on("add",this.addHandler),editorService.on("remove",this.removeHandler),editorService.on("drag-to",this.updateHandler),editorService.on("move-layer",this.updateHandler))}closeOverlay(){this.set("stageOverlayVisible",!1);const t=this.get("stage"),r=this.get("wrapDiv");t==null||t.destroy();for(let s=0,a=r.children.length;s<a;s++)r.children[s].remove();r.remove(),this.set("stage",null),this.set("sourceEl",null),this.set("contentEl",null),editorService.off("update",this.updateHandler),editorService.off("add",this.addHandler),editorService.off("remove",this.removeHandler),editorService.off("drag-to",this.updateHandler),editorService.off("move-layer",this.updateHandler)}updateOverlay(){const t=this.get("sourceEl");if(!t)return;const{scrollWidth:r,scrollHeight:s}=t;this.set("wrapWidth",r),this.set("wrapHeight",s)}createStage(t={}){return useStage({...t,runtimeUrl:"",autoScrollIntoView:!1,disabledRule:!0,render:async r=>{var l,c;this.copyDocumentElement();const s=(c=(l=r.renderer)==null?void 0:l.getDocument())==null?void 0:c.body.children;s&&Array.from(s).forEach(d=>{["SCRIPT","STYLE"].includes(d.tagName)||d.remove()});const a=this.get("wrapDiv");return await this.render(),a}})}usePlugin(t){super.usePlugin(t)}createContentEl(){const t=this.get("sourceEl");if(!t)return;const r=t.cloneNode(!0);this.set("contentEl",r),r.style.position="static",r.style.overflow="visible"}copyDocumentElement(){var l,c,d;const t=this.get("stage"),r=editorService.get("stage"),s=(l=t==null?void 0:t.renderer)==null?void 0:l.getDocument(),a=(d=(c=r==null?void 0:r.renderer)==null?void 0:c.getDocument())==null?void 0:d.documentElement;s&&a&&s.replaceChild(a.cloneNode(!0),s.documentElement)}async render(){var c;this.createContentEl();const t=this.get("contentEl"),r=this.get("sourceEl"),s=this.get("wrapDiv"),a=this.get("stage"),l=this.get("stageOptions");if(t){s.style.cssText="\n width: ".concat(r==null?void 0:r.scrollWidth,"px;\n height: ").concat(r==null?void 0:r.scrollHeight,"px;\n background-color: #fff;\n ");for(let d=0,u=s.children.length;d<u;d++)s.children[d].remove();if(s.appendChild(t),setTimeout(()=>{var d,u;(u=(d=a==null?void 0:a.renderer)==null?void 0:d.contentWindow)==null||u.magic.onPageElUpdate(s)}),await((c=l==null?void 0:l.canSelect)==null?void 0:c.call(l,t))){const d=getIdFromEl()(t);d&&(a==null||a.select(d))}}}updateSelectStatus(){const t=this.get("stage"),r=editorService.get("nodes");r.length>1?t==null||t.multiSelect(r.map(s=>s.id)):t==null||t.select(r[0].id)}}const stageOverlayService=new StageOverlay,defaultEditorProps={renderType:RenderType.IFRAME,disabledMultiSelect:!1,disabledPageFragment:!1,disabledStageOverlay:!1,containerHighlightClassName:CONTAINER_HIGHLIGHT_CLASS_NAME,containerHighlightDuration:800,containerHighlightType:ContainerHighlightType.DEFAULT,disabledShowSrc:!1,disabledDataSource:!1,disabledCodeBlock:!1,componentGroupList:()=>[],datasourceList:()=>[],menu:()=>({left:[],right:[]}),layerContentMenu:()=>[],stageContentMenu:()=>[],propsConfigs:()=>({}),propsValues:()=>({}),eventMethodList:()=>({}),datasourceValues:()=>({}),datasourceConfigs:()=>({}),canSelect:o=>!!(getIdFromEl()(o)&&!o.dataset.tmagicPageFragmentContainerId),isContainer:o=>o.classList.contains("magic-ui-container"),codeOptions:()=>({}),customContentMenu:o=>o},initServiceState=(o,{editorService:e,historyService:t,componentListService:r,propsService:s,eventsService:a,uiService:l,codeBlockService:c,keybindingService:d,dataSourceService:u,depService:g})=>{watch(()=>o.modelValue,f=>{e.set("root",f||null)},{immediate:!0}),watch(()=>o.disabledMultiSelect,f=>{e.set("disabledMultiSelect",f||!1)},{immediate:!0}),watch(()=>o.componentGroupList,f=>f&&r.setList(f),{immediate:!0}),watch(()=>o.datasourceList,f=>f&&u.set("datasourceTypeList",f),{immediate:!0}),watch(()=>o.propsConfigs,f=>f&&s.setPropsConfigs(f),{immediate:!0}),watch(()=>o.propsValues,f=>f&&s.setPropsValues(f),{immediate:!0}),watch(()=>o.eventMethodList,f=>{const m={},_={};if(f)for(const v of Object.keys(f))m[v]=f[v].events,_[v]=f[v].methods;a.setEvents(m),a.setMethods(_)},{immediate:!0}),watch(()=>o.datasourceConfigs,f=>{if(f)for(const[m,_]of Object.entries(f))u.setFormConfig(m,_)},{immediate:!0}),watch(()=>o.datasourceValues,f=>{if(f)for(const[m,_]of Object.entries(f))u.setFormValue(m,_)},{immediate:!0}),watch(()=>o.datasourceEventMethodList,f=>{const m={},_={};if(f)for(const v of Object.keys(f))m[v]=f[v].events,_[v]=f[v].methods;for(const[v,b]of Object.entries(m))u.setFormEvent(v,b);for(const[v,b]of Object.entries(_))u.setFormMethod(v,b)},{immediate:!0}),watch(()=>o.defaultSelected,f=>f&&e.select(f),{immediate:!0}),watch(()=>o.stageRect,f=>f&&l.set("stageRect",f),{immediate:!0}),watch(()=>o.disabledCodeBlock,f=>s.setDisabledCodeBlock(f!=null?f:!1),{immediate:!0}),watch(()=>o.disabledDataSource,f=>s.setDisabledDataSource(f!=null?f:!1),{immediate:!0}),onBeforeUnmount(()=>{e.resetState(),t.resetState(),s.resetState(),l.resetState(),r.resetState(),c.resetState(),d.reset(),g.reset()})},initServiceEvents=(o,e,{editorService:t,codeBlockService:r,dataSourceService:s,depService:a})=>{let l=null;const c=async()=>{var P,F;const A=await v(),{renderer:O}=A;if(O)return O.runtime?(F=(P=O.runtime).getApp)==null?void 0:F.call(P):l||(l=new Promise(B=>{const H=globalThis.setTimeout(()=>{B(void 0)},1e4);O.once("runtime-ready",()=>{var V,U;H&&globalThis.clearTimeout(H),B((U=(V=O.runtime)==null?void 0:V.getApp)==null?void 0:U.call(V))})}),l)},d=A=>{for(const O of A)u(O)},u=A=>{var P,F;const O=t.get("root");if(O)return(F=t.get("stage"))==null?void 0:F.update({config:cloneDeep(A),parentId:(P=t.getParentById(A.id))==null?void 0:P.id,root:cloneDeep(O)})},g=async()=>{const A=t.get("root"),O=await c();!O||!A||O.dsl&&(O.dsl.dataSources=A.dataSources)},f=()=>{var O;const A=t.get("root");(O=c())==null||O.then(P=>{A&&(P!=null&&P.dsl)&&(P.dsl.dataSourceDeps=A.dataSourceDeps)})},m=A=>{var P;let O;return isPage(A)?O=A.id:O=(P=t.getNodeInfo(A.id).page)==null?void 0:P.id,O},_=(A,O,P)=>Promise.all(A.map(F=>F.type===NodeType.ROOT?Promise.resolve():a.collectIdle([F],{pageId:m(F)},O,P)));watch(()=>t.get("stage"),A=>{A&&A.on("rerender",async()=>{const O=t.get("node");O&&(await _([O],!0,DepTargetType.DATA_SOURCE),u(O))})}),watch(()=>o.runtimeUrl,A=>{var P;if(!A)return;const O=t.get("stage");O&&(O.reloadIframe(A),(P=O.renderer)==null||P.once("runtime-ready",F=>{var V,U;(V=F.updateRootConfig)==null||V.call(F,cloneDeep(toRaw(t.get("root"))));const B=t.get("page"),H=t.get("node");B!=null&&B.id&&((U=F==null?void 0:F.updatePageId)==null||U.call(F,B.id)),setTimeout(()=>{H&&(O==null||O.select(toRaw(H.id)))})}))});const v=()=>{const A=t.get("stage");return A?Promise.resolve(A):new Promise(O=>{const P=watch(()=>t.get("stage"),F=>{F&&(O(F),nextTick(()=>{P()}))})})},b=async A=>{var V,U,j,X;const O=await v(),P=await((V=O.renderer)==null?void 0:V.getRuntime()),F=await c();F!=null&&F.dataSourceManager||(U=P==null?void 0:P.updateRootConfig)==null||U.call(P,cloneDeep(toRaw(A)));const B=t.get("page"),H=t.get("node");if(B!=null&&B.id&&((j=P==null?void 0:P.updatePageId)==null||j.call(P,B.id)),setTimeout(()=>{H&&(O==null||O.select(toRaw(H.id)))}),A){a.clearIdleTasks(),await(typeof Worker>"u"?_(A.items,!0):a.collectByWorker(A));const ee=cloneDeep(toRaw(A));if(ee.dataSources&&ee.dataSourceDeps&&(F!=null&&F.dataSourceManager))for(const Z of getNodes(getDepNodeIds(ee.dataSourceDeps),ee.items))updateNode(F.dataSourceManager.compiledNode(Z),ee);(X=P==null?void 0:P.updateRootConfig)==null||X.call(P,ee)}},C=A=>{a.addTarget(createDataSourceTarget(A,reactive$1({}))),a.addTarget(createDataSourceMethodTarget(A,reactive$1({}))),a.addTarget(createDataSourceCondTarget(A,reactive$1({})))},y=(A,O)=>{if(A){A.codeBlocks=A.codeBlocks||{},A.dataSources=A.dataSources||[],r.setCodeDsl(A.codeBlocks),s.set("dataSources",A.dataSources),a.clearTargets();for(const[P,F]of Object.entries(A.codeBlocks))a.addTarget(createCodeBlockTarget(P,F));for(const P of s.get("dataSources"))C(P);Array.isArray(A.items)?b(A):(a.clear(),delete A.dataSourceDeps,delete A.dataSourceCondDeps),(async()=>{var B,H;const P=((B=t.get("node"))==null?void 0:B.id)||o.defaultSelected;let F;P&&(F=t.getNodeById(P)),F&&F!==A?await t.select(F.id):(H=A.items)!=null&&H.length?await t.select(A.items[0]):A.id&&(t.set("nodes",[A]),t.set("parent",null),t.set("page",null)),toRaw(A)!==toRaw(O)&&e("update:modelValue",A)})()}},S=A=>{_(A,!0).then(()=>{d(A)})},w=A=>{const O=[],P=[];for(const{newNode:F,oldNode:B,changeRecords:H}of A)if(F.type===NodeType.ROOT)P.push(F);else if(H!=null&&H.length)e:for(const V of H){if(!V.propPath){O.push(F);break e}if(new RegExp("".concat(NODE_CONDS_KEY,".(\\d)+.cond")).test(V.propPath)||new RegExp("".concat(NODE_CONDS_KEY,".(\\d)+.cond.(\\d)+.value")).test(V.propPath)||V.propPath===NODE_CONDS_KEY||isValueIncludeDataSource(V.value)){O.push(F);break e}for(const U of Object.values(a.getTargets(DepTargetType.DATA_SOURCE)))if(U.deps[F.id]&&U.deps[F.id].keys.includes(V.propPath)){O.push(F);break e}P.push(F)}else isIncludeDataSource(F,B)?O.push(F):P.push(F);O.length?(async()=>(await _(O,!0,DepTargetType.DATA_SOURCE),await _(O,!0,DepTargetType.DATA_SOURCE_COND),d(O)))():(d(P),Promise.all([_(P,!0,DepTargetType.CODE_BLOCK),_(P,!0,DepTargetType.DATA_SOURCE_METHOD)]))},E=A=>{a.clear(A)},x=A=>{_([A],!0).then(()=>{u(A)})};t.on("history-change",x),t.on("root-change",y),t.on("add",S),t.on("remove",E),t.on("update",w);const L=A=>{(async()=>{C(A);const P=await c();if(!(P!=null&&P.dataSourceManager))return;P.dataSourceManager.addDataSource(A);const F=P.dataSourceManager.get(A.id);F&&P.dataSourceManager.init(F)})()},k=(A,{changeRecords:O})=>{const P=async()=>{var ee,Z;const j=await c();if(!(j!=null&&j.dataSourceManager))return;const X=j.dataSourceManager.get(A.id);X&&(X.setFields(A.fields),X.setData(((Z=(ee=A.mocks)==null?void 0:ee.find(J=>J.useInEditor))==null?void 0:Z.data)||X.getDefaultData()))};let F=!1,B=!1,H=!1,V=!1;for(const j of O)if(j.propPath&&(B=j.propPath==="fields"||/fields.(\d)+.name/.test(j.propPath)||/fields.(\d)+.defaultValue/.test(j.propPath)||/fields.(\d)+$/.test(j.propPath),H=j.propPath==="mocks",V=j.propPath==="methods"||/methods.(\d)+.name/.test(j.propPath)||/methods.(\d)+$/.test(j.propPath),F=B||H||V,F))break;const U=t.get("root");if(F){if(Array.isArray(U==null?void 0:U.items)){a.clearIdleTasks();let j=[];B?(a.removeTarget(A.id,DepTargetType.DATA_SOURCE),a.removeTarget(A.id,DepTargetType.DATA_SOURCE_COND),a.addTarget(createDataSourceTarget(A,reactive$1({}))),a.addTarget(createDataSourceCondTarget(A,reactive$1({}))),j=[_(U.items,!0,DepTargetType.DATA_SOURCE),_(U.items,!0,DepTargetType.DATA_SOURCE_COND)]):H?(a.removeTarget(A.id,DepTargetType.DATA_SOURCE),a.addTarget(createDataSourceTarget(A,reactive$1({}))),j=[_(U.items,!0,DepTargetType.DATA_SOURCE)]):V&&(a.removeTarget(A.id,DepTargetType.DATA_SOURCE_METHOD),a.addTarget(createDataSourceMethodTarget(A,reactive$1({}))),j=[_(U.items,!0,DepTargetType.DATA_SOURCE_METHOD)]),Promise.all(j).then(()=>g()).then(()=>P()).then(()=>d(U.items))}}else U!=null&&U.dataSources&&P()},D=A=>{a.removeTarget(A,DepTargetType.DATA_SOURCE),a.removeTarget(A,DepTargetType.DATA_SOURCE_COND),a.removeTarget(A,DepTargetType.DATA_SOURCE_METHOD)},I=A=>{const O=t.get("root");if(!O)return;(async()=>{var V,U;const F=Object.keys(((V=O.dataSourceDeps)==null?void 0:V[A])||{}),B=getNodes(F,O.items);await Promise.all([_(B,!1,DepTargetType.DATA_SOURCE),_(B,!1,DepTargetType.DATA_SOURCE_COND),_(B,!1,DepTargetType.DATA_SOURCE_METHOD)]),g();const H=await c();(U=H==null?void 0:H.dataSourceManager)==null||U.removeDataSource(A),d(B),D(A)})()};s.on("add",L),s.on("update",k),s.on("remove",I);const T=(A,O)=>{if(a.hasTarget(A,DepTargetType.CODE_BLOCK)){a.getTarget(A,DepTargetType.CODE_BLOCK).name=O.name;return}a.addTarget(createCodeBlockTarget(A,O))},M=A=>{a.removeTarget(A,DepTargetType.CODE_BLOCK)};r.on("addOrUpdate",T),r.on("remove",M);const R=A=>{const O=t.get("root");O&&(A.type===DepTargetType.DATA_SOURCE?(O.dataSourceDeps||(O.dataSourceDeps={}),O.dataSourceDeps[A.id]=A.deps):A.type===DepTargetType.DATA_SOURCE_COND?(O.dataSourceCondDeps||(O.dataSourceCondDeps={}),O.dataSourceCondDeps[A.id]=A.deps):A.type===DepTargetType.DATA_SOURCE_METHOD&&(O.dataSourceMethodDeps||(O.dataSourceMethodDeps={}),O.dataSourceMethodDeps[A.id]=A.deps))},N=(A,O)=>{const P=t.get("root");P&&(P.dataSourceDeps&&O===DepTargetType.DATA_SOURCE&&delete P.dataSourceDeps[A],P.dataSourceCondDeps&&O===DepTargetType.DATA_SOURCE_COND&&delete P.dataSourceCondDeps[A],P.dataSourceMethodDeps&&O===DepTargetType.DATA_SOURCE_METHOD&&delete P.dataSourceMethodDeps[A])};a.on("add-target",R),a.on("remove-target",N),a.on("ds-collected",f),onBeforeUnmount(()=>{a.off("add-target",R),a.off("remove-target",N),a.off("ds-collected",f),t.off("history-change",x),t.off("root-change",y),t.off("add",S),t.off("remove",E),t.off("update",w),r.off("addOrUpdate",T),r.off("remove",M),s.off("add",L),s.off("update",k),s.off("remove",I)})},_sfc_main$1s=defineComponent({name:"MEditor",__name:"Editor",props:mergeDefaults({modelValue:{},componentGroupList:{},datasourceList:{},sidebar:{},menu:{},layerContentMenu:{},stageContentMenu:{},runtimeUrl:{},renderType:{},autoScrollIntoView:{type:Boolean},propsConfigs:{},propsValues:{},eventMethodList:{},datasourceValues:{},datasourceConfigs:{},datasourceEventMethodList:{},moveableOptions:{type:[Function,Object]},defaultSelected:{},containerHighlightClassName:{},containerHighlightDuration:{},containerHighlightType:{},stageRect:{},codeOptions:{},disabledDragStart:{type:Boolean},guidesOptions:{},disabledMultiSelect:{type:Boolean},disabledPageFragment:{type:Boolean},disabledStageOverlay:{type:Boolean},disabledShowSrc:{type:Boolean},disabledDataSource:{type:Boolean},disabledCodeBlock:{type:Boolean},treeIndent:{},treeNextLevelIndentIncrement:{},render:{type:Function},updateDragEl:{type:Function},canSelect:{type:Function},isContainer:{type:Function},customContentMenu:{type:Function},extendFormState:{type:Function},pageBarSortOptions:{},pageFilterFunction:{type:Function}},defaultEditorProps),emits:["props-panel-mounted","props-panel-unmounted","update:modelValue","props-form-error","props-submit-error"],setup(o,{expose:e,emit:t}){const r=t,s=o,a={componentListService,eventsService,historyService,propsService,editorService,uiService,storageService,codeBlockService,depService,dataSourceService,keybindingService,stageOverlayService};initServiceEvents(s,r,a),initServiceState(s,a),keybindingService.register(keybindingConfig),keybindingService.registerEl("global");const l={runtimeUrl:s.runtimeUrl,autoScrollIntoView:s.autoScrollIntoView,render:s.render,moveableOptions:s.moveableOptions,canSelect:s.canSelect,updateDragEl:s.updateDragEl,isContainer:s.isContainer,containerHighlightClassName:s.containerHighlightClassName,containerHighlightDuration:s.containerHighlightDuration,containerHighlightType:s.containerHighlightType,disabledDragStart:s.disabledDragStart,renderType:s.renderType,guidesOptions:s.guidesOptions,disabledMultiSelect:s.disabledMultiSelect};stageOverlayService.set("stageOptions",l),provide("services",a),provide("codeOptions",s.codeOptions),provide("stageOptions",l),provide("eventBus",new eventsExports.EventEmitter);const c=f=>{r("props-panel-mounted",f)},d=()=>{r("props-panel-unmounted")},u=f=>{r("props-submit-error",f)},g=f=>{r("props-form-error",f)};return e(a),(f,m)=>(openBlock(),createBlock(_sfc_main$s,{"disabled-page-fragment":o.disabledPageFragment,"page-bar-sort-options":o.pageBarSortOptions,"page-filter-function":o.pageFilterFunction},{header:withCtx(()=>[renderSlot(f.$slots,"header")]),nav:withCtx(()=>[renderSlot(f.$slots,"nav",{editorService:unref(editorService)},()=>[createVNode(_sfc_main$r,{data:o.menu},null,8,["data"])])]),"content-before":withCtx(()=>[renderSlot(f.$slots,"content-before")]),"src-code":withCtx(()=>[renderSlot(f.$slots,"src-code",{editorService:unref(editorService)})]),sidebar:withCtx(()=>[renderSlot(f.$slots,"sidebar",{editorService:unref(editorService)},()=>[createVNode(_sfc_main$a,{data:o.sidebar,"layer-content-menu":o.layerContentMenu,"custom-content-menu":o.customContentMenu,indent:o.treeIndent,"next-level-indent-increment":o.treeNextLevelIndentIncrement},{"layer-panel-header":withCtx(()=>[renderSlot(f.$slots,"layer-panel-header")]),"layer-node-content":withCtx(({data:_})=>[renderSlot(f.$slots,"layer-node-content",{data:_})]),"layer-node-label":withCtx(({data:_})=>[renderSlot(f.$slots,"layer-node-label",{data:_})]),"layer-node-tool":withCtx(({data:_})=>[renderSlot(f.$slots,"layer-node-tool",{data:_})]),"component-list":withCtx(({componentGroupList:_})=>[renderSlot(f.$slots,"component-list",{componentGroupList:_})]),"component-list-panel-header":withCtx(()=>[renderSlot(f.$slots,"component-list-panel-header")]),"component-list-item":withCtx(({component:_})=>[renderSlot(f.$slots,"component-list-item",{component:_})]),"code-block-panel-header":withCtx(()=>[renderSlot(f.$slots,"code-block-panel-header")]),"code-block-panel-tool":withCtx(({id:_,data:v})=>[renderSlot(f.$slots,"code-block-panel-tool",{id:_,data:v})]),"code-block-panel-search":withCtx(()=>[renderSlot(f.$slots,"code-block-panel-search")]),"data-source-panel-tool":withCtx(({data:_})=>[renderSlot(f.$slots,"data-source-panel-tool",{data:_})]),"data-source-panel-search":withCtx(()=>[renderSlot(f.$slots,"data-source-panel-search")]),_:3},8,["data","layer-content-menu","custom-content-menu","indent","next-level-indent-increment"])])]),workspace:withCtx(()=>[renderSlot(f.$slots,"workspace",{editorService:unref(editorService)},()=>[createVNode(_sfc_main$1$1,{"disabled-stage-overlay":o.disabledStageOverlay,"stage-content-menu":o.stageContentMenu,"custom-content-menu":o.customContentMenu},{stage:withCtx(()=>[renderSlot(f.$slots,"stage")]),"workspace-content":withCtx(()=>[renderSlot(f.$slots,"workspace-content",{editorService:unref(editorService)})]),_:3},8,["disabled-stage-overlay","stage-content-menu","custom-content-menu"])])]),"props-panel":withCtx(()=>[renderSlot(f.$slots,"props-panel",{},()=>[createVNode(_sfc_main$p,{"extend-state":o.extendFormState,"disabled-show-src":o.disabledShowSrc,onMounted:c,onUnmounted:d,onFormError:g,onSubmitError:u},{"props-panel-header":withCtx(()=>[renderSlot(f.$slots,"props-panel-header")]),_:3},8,["extend-state","disabled-show-src"])])]),empty:withCtx(()=>[renderSlot(f.$slots,"empty",{editorService:unref(editorService)})]),"content-after":withCtx(()=>[renderSlot(f.$slots,"content-after")]),footer:withCtx(()=>[renderSlot(f.$slots,"footer")]),"page-bar":withCtx(()=>[renderSlot(f.$slots,"page-bar")]),"page-bar-add-button":withCtx(()=>[renderSlot(f.$slots,"page-bar-add-button")]),"page-bar-title":withCtx(({page:_})=>[renderSlot(f.$slots,"page-bar-title",{page:_})]),"page-bar-popover":withCtx(({page:_})=>[renderSlot(f.$slots,"page-bar-popover",{page:_})]),"page-list-popover":withCtx(({list:_})=>[renderSlot(f.$slots,"page-list-popover",{list:_})]),_:3},8,["disabled-page-fragment","page-bar-sort-options","page-filter-function"]))}}),defaultInstallOpt={parseDSL:dsl=>eval(dsl),customCreateMonacoEditor:(o,e,t)=>o.editor.create(e,t),customCreateMonacoDiffEditor:(o,e,t)=>o.editor.createDiffEditor(e,t)},index$1={install:(o,e)=>{const t=Object.assign(defaultInstallOpt,e||{});o.use(index$6,e||{}),o.use(index$4,e||{}),o.use(index$3),o.config.globalProperties.$TMAGIC_EDITOR=t,setEditorConfig(t),o.component("".concat(_sfc_main$1s.name||"MEditor"),_sfc_main$1s),o.component("magic-code-editor",_sfc_main$1q),o.component("m-fields-ui-select",_sfc_main$C),o.component("m-fields-code-link",_sfc_main$1o),o.component("m-fields-vs-code",_sfc_main$1p),o.component("m-fields-code-select",_sfc_main$1n),o.component("m-fields-code-select-col",_sfc_main$1l),o.component("m-fields-event-select",_sfc_main$18),o.component("m-fields-data-source-fields",_sfc_main$1i),o.component("m-fields-data-source-mocks",_sfc_main$1b),o.component("m-fields-key-value",_sfc_main$16),o.component("m-fields-data-source-input",_sfc_main$1f),o.component("m-fields-data-source-select",_sfc_main$1a),o.component("m-fields-data-source-methods",_sfc_main$1d),o.component("m-fields-data-source-method-select",_sfc_main$1c),o.component("m-fields-data-source-field-select",_sfc_main$1g),o.component("m-fields-page-fragment-select",_sfc_main$15),o.component("m-fields-display-conds",_sfc_main$19),o.component("m-fields-cond-op-select",_sfc_main$1k),o.component("m-form-style-setter",_sfc_main$D)}},_sfc_main$8={name:"App"},_export_sfc=(o,e)=>{const t=o.__vccOpts||o;for(const[r,s]of e)t[r]=s;return t};function _sfc_render(o,e,t,r,s,a){const l=resolveComponent("router-view");return openBlock(),createBlock(l)}const App=_export_sfc(_sfc_main$8,[["render",_sfc_render]]);const isBrowser=typeof document<"u";function isRouteComponent(o){return typeof o=="object"||"displayName"in o||"props"in o||"__vccOpts"in o}function isESModule(o){return o.__esModule||o[Symbol.toStringTag]==="Module"||o.default&&isRouteComponent(o.default)}const assign=Object.assign;function applyToParams(o,e){const t={};for(const r in e){const s=e[r];t[r]=isArray(s)?s.map(o):o(s)}return t}const noop=()=>{},isArray=Array.isArray;function mergeOptions(o,e){const t={};for(const r in o)t[r]=r in e?e[r]:o[r];return t}const HASH_RE=/#/g,AMPERSAND_RE=/&/g,SLASH_RE=/\//g,EQUAL_RE=/=/g,IM_RE=/\?/g,PLUS_RE=/\+/g,ENC_BRACKET_OPEN_RE=/%5B/g,ENC_BRACKET_CLOSE_RE=/%5D/g,ENC_CARET_RE=/%5E/g,ENC_BACKTICK_RE=/%60/g,ENC_CURLY_OPEN_RE=/%7B/g,ENC_PIPE_RE=/%7C/g,ENC_CURLY_CLOSE_RE=/%7D/g,ENC_SPACE_RE=/%20/g;function commonEncode(o){return o==null?"":encodeURI(""+o).replace(ENC_PIPE_RE,"|").replace(ENC_BRACKET_OPEN_RE,"[").replace(ENC_BRACKET_CLOSE_RE,"]")}function encodeHash(o){return commonEncode(o).replace(ENC_CURLY_OPEN_RE,"{").replace(ENC_CURLY_CLOSE_RE,"}").replace(ENC_CARET_RE,"^")}function encodeQueryValue(o){return commonEncode(o).replace(PLUS_RE,"%2B").replace(ENC_SPACE_RE,"+").replace(HASH_RE,"%23").replace(AMPERSAND_RE,"%26").replace(ENC_BACKTICK_RE,"`").replace(ENC_CURLY_OPEN_RE,"{").replace(ENC_CURLY_CLOSE_RE,"}").replace(ENC_CARET_RE,"^")}function encodeQueryKey(o){return encodeQueryValue(o).replace(EQUAL_RE,"%3D")}function encodePath(o){return commonEncode(o).replace(HASH_RE,"%23").replace(IM_RE,"%3F")}function encodeParam(o){return encodePath(o).replace(SLASH_RE,"%2F")}function decode(o){if(o==null)return null;try{return decodeURIComponent(""+o)}catch(e){}return""+o}const TRAILING_SLASH_RE=/\/$/,removeTrailingSlash=o=>o.replace(TRAILING_SLASH_RE,"");function parseURL(o,e,t="/"){let r,s={},a="",l="";const c=e.indexOf("#");let d=e.indexOf("?");return d=c>=0&&d>c?-1:d,d>=0&&(r=e.slice(0,d),a=e.slice(d,c>0?c:e.length),s=o(a.slice(1))),c>=0&&(r=r||e.slice(0,c),l=e.slice(c,e.length)),r=resolveRelativePath(r!=null?r:e,t),{fullPath:r+a+l,path:r,query:s,hash:decode(l)}}function stringifyURL(o,e){const t=e.query?o(e.query):"";return e.path+(t&&"?")+t+(e.hash||"")}function stripBase(o,e){return!e||!o.toLowerCase().startsWith(e.toLowerCase())?o:o.slice(e.length)||"/"}function isSameRouteLocation(o,e,t){const r=e.matched.length-1,s=t.matched.length-1;return r>-1&&r===s&&isSameRouteRecord(e.matched[r],t.matched[s])&&isSameRouteLocationParams(e.params,t.params)&&o(e.query)===o(t.query)&&e.hash===t.hash}function isSameRouteRecord(o,e){return(o.aliasOf||o)===(e.aliasOf||e)}function isSameRouteLocationParams(o,e){if(Object.keys(o).length!==Object.keys(e).length)return!1;for(const t in o)if(!isSameRouteLocationParamsValue(o[t],e[t]))return!1;return!0}function isSameRouteLocationParamsValue(o,e){return isArray(o)?isEquivalentArray(o,e):isArray(e)?isEquivalentArray(e,o):o===e}function isEquivalentArray(o,e){return isArray(e)?o.length===e.length&&o.every((t,r)=>t===e[r]):o.length===1&&o[0]===e}function resolveRelativePath(o,e){if(o.startsWith("/"))return o;if(!o)return e;const t=e.split("/"),r=o.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let a=t.length-1,l,c;for(l=0;l<r.length;l++)if(c=r[l],c!==".")if(c==="..")a>1&&a--;else break;return t.slice(0,a).join("/")+"/"+r.slice(l).join("/")}const START_LOCATION_NORMALIZED={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let NavigationType=(function(o){return o.pop="pop",o.push="push",o})({}),NavigationDirection=(function(o){return o.back="back",o.forward="forward",o.unknown="",o})({});function normalizeBase(o){if(!o)if(isBrowser){const e=document.querySelector("base");o=e&&e.getAttribute("href")||"/",o=o.replace(/^\w+:\/\/[^\/]+/,"")}else o="/";return o[0]!=="/"&&o[0]!=="#"&&(o="/"+o),removeTrailingSlash(o)}const BEFORE_HASH_RE=/^[^#]+#/;function createHref(o,e){return o.replace(BEFORE_HASH_RE,"#")+e}function getElementPosition(o,e){const t=document.documentElement.getBoundingClientRect(),r=o.getBoundingClientRect();return{behavior:e.behavior,left:r.left-t.left-(e.left||0),top:r.top-t.top-(e.top||0)}}const computeScrollPosition=()=>({left:window.scrollX,top:window.scrollY});function scrollToPosition(o){let e;if("el"in o){const t=o.el,r=typeof t=="string"&&t.startsWith("#"),s=typeof t=="string"?r?document.getElementById(t.slice(1)):document.querySelector(t):t;if(!s)return;e=getElementPosition(s,o)}else e=o;"scrollBehavior"in document.documentElement.style?window.scrollTo(e):window.scrollTo(e.left!=null?e.left:window.scrollX,e.top!=null?e.top:window.scrollY)}function getScrollKey(o,e){return(history.state?history.state.position-e:-1)+o}const scrollPositions=new Map;function saveScrollPosition(o,e){scrollPositions.set(o,e)}function getSavedScrollPosition(o){const e=scrollPositions.get(o);return scrollPositions.delete(o),e}function isRouteLocation(o){return typeof o=="string"||o&&typeof o=="object"}function isRouteName(o){return typeof o=="string"||typeof o=="symbol"}let ErrorTypes=(function(o){return o[o.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",o[o.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",o[o.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",o[o.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",o[o.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",o})({});const NavigationFailureSymbol=Symbol("");ErrorTypes.MATCHER_NOT_FOUND+"",ErrorTypes.NAVIGATION_GUARD_REDIRECT+"",ErrorTypes.NAVIGATION_ABORTED+"",ErrorTypes.NAVIGATION_CANCELLED+"",ErrorTypes.NAVIGATION_DUPLICATED+"";function createRouterError(o,e){return assign(new Error,{type:o,[NavigationFailureSymbol]:!0},e)}function isNavigationFailure(o,e){return o instanceof Error&&NavigationFailureSymbol in o&&(e==null||!!(o.type&e))}const propertiesToLog=["params","query","hash"];function stringifyRoute(o){if(typeof o=="string")return o;if(o.path!=null)return o.path;const e={};for(const t of propertiesToLog)t in o&&(e[t]=o[t]);return JSON.stringify(e,null,2)}function parseQuery(o){const e={};if(o===""||o==="?")return e;const t=(o[0]==="?"?o.slice(1):o).split("&");for(let r=0;r<t.length;++r){const s=t[r].replace(PLUS_RE," "),a=s.indexOf("="),l=decode(a<0?s:s.slice(0,a)),c=a<0?null:decode(s.slice(a+1));if(l in e){let d=e[l];isArray(d)||(d=e[l]=[d]),d.push(c)}else e[l]=c}return e}function stringifyQuery(o){let e="";for(let t in o){const r=o[t];if(t=encodeQueryKey(t),r==null){r!==void 0&&(e+=(e.length?"&":"")+t);continue}(isArray(r)?r.map(s=>s&&encodeQueryValue(s)):[r&&encodeQueryValue(r)]).forEach(s=>{s!==void 0&&(e+=(e.length?"&":"")+t,s!=null&&(e+="="+s))})}return e}function normalizeQuery(o){const e={};for(const t in o){const r=o[t];r!==void 0&&(e[t]=isArray(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return e}const matchedRouteKey=Symbol(""),viewDepthKey=Symbol(""),routerKey=Symbol(""),routeLocationKey=Symbol(""),routerViewLocationKey=Symbol("");function useCallbacks(){let o=[];function e(r){return o.push(r),()=>{const s=o.indexOf(r);s>-1&&o.splice(s,1)}}function t(){o=[]}return{add:e,list:()=>o.slice(),reset:t}}function guardToPromiseFn(o,e,t,r,s,a=l=>l()){const l=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((c,d)=>{const u=m=>{m===!1?d(createRouterError(ErrorTypes.NAVIGATION_ABORTED,{from:t,to:e})):m instanceof Error?d(m):isRouteLocation(m)?d(createRouterError(ErrorTypes.NAVIGATION_GUARD_REDIRECT,{from:e,to:m})):(l&&r.enterCallbacks[s]===l&&typeof m=="function"&&l.push(m),c())},g=a(()=>o.call(r&&r.instances[s],e,t,u));let f=Promise.resolve(g);o.length<3&&(f=f.then(u)),f.catch(m=>d(m))})}function extractComponentsGuards(o,e,t,r,s=a=>a()){const a=[];for(const l of o)for(const c in l.components){let d=l.components[c];if(!(e!=="beforeRouteEnter"&&!l.instances[c]))if(isRouteComponent(d)){const u=(d.__vccOpts||d)[e];u&&a.push(guardToPromiseFn(u,t,r,l,c,s))}else{let u=d();a.push(()=>u.then(g=>{if(!g)throw new Error("Couldn't resolve component \"".concat(c,'" at "').concat(l.path,'"'));const f=isESModule(g)?g.default:g;l.mods[c]=g,l.components[c]=f;const m=(f.__vccOpts||f)[e];return m&&guardToPromiseFn(m,t,r,l,c,s)()}))}}return a}function extractChangingRecords(o,e){const t=[],r=[],s=[],a=Math.max(e.matched.length,o.matched.length);for(let l=0;l<a;l++){const c=e.matched[l];c&&(o.matched.find(u=>isSameRouteRecord(u,c))?r.push(c):t.push(c));const d=o.matched[l];d&&(e.matched.find(u=>isSameRouteRecord(u,d))||s.push(d))}return[t,r,s]}let createBaseLocation=()=>location.protocol+"//"+location.host;function createCurrentLocation(o,e){const{pathname:t,search:r,hash:s}=e,a=o.indexOf("#");if(a>-1){let l=s.includes(o.slice(a))?o.slice(a).length:1,c=s.slice(l);return c[0]!=="/"&&(c="/"+c),stripBase(c,"")}return stripBase(t,o)+r+s}function useHistoryListeners(o,e,t,r){let s=[],a=[],l=null;const c=({state:m})=>{const _=createCurrentLocation(o,location),v=t.value,b=e.value;let C=0;if(m){if(t.value=_,e.value=m,l&&l===v){l=null;return}C=b?m.position-b.position:0}else r(_);s.forEach(y=>{y(t.value,v,{delta:C,type:NavigationType.pop,direction:C?C>0?NavigationDirection.forward:NavigationDirection.back:NavigationDirection.unknown})})};function d(){l=t.value}function u(m){s.push(m);const _=()=>{const v=s.indexOf(m);v>-1&&s.splice(v,1)};return a.push(_),_}function g(){if(document.visibilityState==="hidden"){const{history:m}=window;if(!m.state)return;m.replaceState(assign({},m.state,{scroll:computeScrollPosition()}),"")}}function f(){for(const m of a)m();a=[],window.removeEventListener("popstate",c),window.removeEventListener("pagehide",g),document.removeEventListener("visibilitychange",g)}return window.addEventListener("popstate",c),window.addEventListener("pagehide",g),document.addEventListener("visibilitychange",g),{pauseListeners:d,listen:u,destroy:f}}function buildState(o,e,t,r=!1,s=!1){return{back:o,current:e,forward:t,replaced:r,position:window.history.length,scroll:s?computeScrollPosition():null}}function useHistoryStateNavigation(o){const{history:e,location:t}=window,r={value:createCurrentLocation(o,t)},s={value:e.state};s.value||a(r.value,{back:null,current:r.value,forward:null,position:e.length-1,replaced:!0,scroll:null},!0);function a(d,u,g){const f=o.indexOf("#"),m=f>-1?(t.host&&document.querySelector("base")?o:o.slice(f))+d:createBaseLocation()+o+d;try{e[g?"replaceState":"pushState"](u,"",m),s.value=u}catch(_){console.error(_),t[g?"replace":"assign"](m)}}function l(d,u){a(d,assign({},e.state,buildState(s.value.back,d,s.value.forward,!0),u,{position:s.value.position}),!0),r.value=d}function c(d,u){const g=assign({},s.value,e.state,{forward:d,scroll:computeScrollPosition()});a(g.current,g,!0),a(d,assign({},buildState(r.value,d,null),{position:g.position+1},u),!1),r.value=d}return{location:r,state:s,push:c,replace:l}}function createWebHistory(o){o=normalizeBase(o);const e=useHistoryStateNavigation(o),t=useHistoryListeners(o,e.state,e.location,e.replace);function r(a,l=!0){l||t.pauseListeners(),history.go(a)}const s=assign({location:"",base:o,go:r,createHref:createHref.bind(null,o)},e,t);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>e.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>e.state.value}),s}function createWebHashHistory(o){return o=location.host?o||location.pathname+location.search:"",o.includes("#")||(o+="#"),createWebHistory(o)}let TokenType=(function(o){return o[o.Static=0]="Static",o[o.Param=1]="Param",o[o.Group=2]="Group",o})({});var TokenizerState=(function(o){return o[o.Static=0]="Static",o[o.Param=1]="Param",o[o.ParamRegExp=2]="ParamRegExp",o[o.ParamRegExpEnd=3]="ParamRegExpEnd",o[o.EscapeNext=4]="EscapeNext",o})(TokenizerState||{});const ROOT_TOKEN={type:TokenType.Static,value:""},VALID_PARAM_RE=/[a-zA-Z0-9_]/;function tokenizePath(o){if(!o)return[[]];if(o==="/")return[[ROOT_TOKEN]];if(!o.startsWith("/"))throw new Error('Invalid path "'.concat(o,'"'));function e(_){throw new Error("ERR (".concat(t,')/"').concat(u,'": ').concat(_))}let t=TokenizerState.Static,r=t;const s=[];let a;function l(){a&&s.push(a),a=[]}let c=0,d,u="",g="";function f(){u&&(t===TokenizerState.Static?a.push({type:TokenType.Static,value:u}):t===TokenizerState.Param||t===TokenizerState.ParamRegExp||t===TokenizerState.ParamRegExpEnd?(a.length>1&&(d==="*"||d==="+")&&e("A repeatable param (".concat(u,") must be alone in its segment. eg: '/:ids+.")),a.push({type:TokenType.Param,value:u,regexp:g,repeatable:d==="*"||d==="+",optional:d==="*"||d==="?"})):e("Invalid state to consume buffer"),u="")}function m(){u+=d}for(;c<o.length;){if(d=o[c++],d==="\\"&&t!==TokenizerState.ParamRegExp){r=t,t=TokenizerState.EscapeNext;continue}switch(t){case TokenizerState.Static:d==="/"?(u&&f(),l()):d===":"?(f(),t=TokenizerState.Param):m();break;case TokenizerState.EscapeNext:m(),t=r;break;case TokenizerState.Param:d==="("?t=TokenizerState.ParamRegExp:VALID_PARAM_RE.test(d)?m():(f(),t=TokenizerState.Static,d!=="*"&&d!=="?"&&d!=="+"&&c--);break;case TokenizerState.ParamRegExp:d===")"?g[g.length-1]=="\\"?g=g.slice(0,-1)+d:t=TokenizerState.ParamRegExpEnd:g+=d;break;case TokenizerState.ParamRegExpEnd:f(),t=TokenizerState.Static,d!=="*"&&d!=="?"&&d!=="+"&&c--,g="";break;default:e("Unknown state");break}}return t===TokenizerState.ParamRegExp&&e('Unfinished custom RegExp for param "'.concat(u,'"')),f(),l(),s}const BASE_PARAM_PATTERN="[^/]+?",BASE_PATH_PARSER_OPTIONS={sensitive:!1,strict:!1,start:!0,end:!0};var PathScore=(function(o){return o[o._multiplier=10]="_multiplier",o[o.Root=90]="Root",o[o.Segment=40]="Segment",o[o.SubSegment=30]="SubSegment",o[o.Static=40]="Static",o[o.Dynamic=20]="Dynamic",o[o.BonusCustomRegExp=10]="BonusCustomRegExp",o[o.BonusWildcard=-50]="BonusWildcard",o[o.BonusRepeatable=-20]="BonusRepeatable",o[o.BonusOptional=-8]="BonusOptional",o[o.BonusStrict=.7000000000000001]="BonusStrict",o[o.BonusCaseSensitive=.25]="BonusCaseSensitive",o})(PathScore||{});const REGEX_CHARS_RE=/[.+*?^${}()[\]/\\]/g;function tokensToParser(o,e){const t=assign({},BASE_PATH_PARSER_OPTIONS,e),r=[];let s=t.start?"^":"";const a=[];for(const u of o){const g=u.length?[]:[PathScore.Root];t.strict&&!u.length&&(s+="/");for(let f=0;f<u.length;f++){const m=u[f];let _=PathScore.Segment+(t.sensitive?PathScore.BonusCaseSensitive:0);if(m.type===TokenType.Static)f||(s+="/"),s+=m.value.replace(REGEX_CHARS_RE,"\\$&"),_+=PathScore.Static;else if(m.type===TokenType.Param){const{value:v,repeatable:b,optional:C,regexp:y}=m;a.push({name:v,repeatable:b,optional:C});const S=y||BASE_PARAM_PATTERN;if(S!==BASE_PARAM_PATTERN){_+=PathScore.BonusCustomRegExp;try{"".concat(S)}catch(E){throw new Error('Invalid custom RegExp for param "'.concat(v,'" (').concat(S,"): ")+E.message)}}let w=b?"((?:".concat(S,")(?:/(?:").concat(S,"))*)"):"(".concat(S,")");f||(w=C&&u.length<2?"(?:/".concat(w,")"):"/"+w),C&&(w+="?"),s+=w,_+=PathScore.Dynamic,C&&(_+=PathScore.BonusOptional),b&&(_+=PathScore.BonusRepeatable),S===".*"&&(_+=PathScore.BonusWildcard)}g.push(_)}r.push(g)}if(t.strict&&t.end){const u=r.length-1;r[u][r[u].length-1]+=PathScore.BonusStrict}t.strict||(s+="/?"),t.end?s+="$":t.strict&&!s.endsWith("/")&&(s+="(?:/|$)");const l=new RegExp(s,t.sensitive?"":"i");function c(u){const g=u.match(l),f={};if(!g)return null;for(let m=1;m<g.length;m++){const _=g[m]||"",v=a[m-1];f[v.name]=_&&v.repeatable?_.split("/"):_}return f}function d(u){let g="",f=!1;for(const m of o){(!f||!g.endsWith("/"))&&(g+="/"),f=!1;for(const _ of m)if(_.type===TokenType.Static)g+=_.value;else if(_.type===TokenType.Param){const{value:v,repeatable:b,optional:C}=_,y=v in u?u[v]:"";if(isArray(y)&&!b)throw new Error('Provided param "'.concat(v,'" is an array but it is not repeatable (* or + modifiers)'));const S=isArray(y)?y.join("/"):y;if(!S)if(C)m.length<2&&(g.endsWith("/")?g=g.slice(0,-1):f=!0);else throw new Error('Missing required param "'.concat(v,'"'));g+=S}}return g||"/"}return{re:l,score:r,keys:a,parse:c,stringify:d}}function compareScoreArray(o,e){let t=0;for(;t<o.length&&t<e.length;){const r=e[t]-o[t];if(r)return r;t++}return o.length<e.length?o.length===1&&o[0]===PathScore.Static+PathScore.Segment?-1:1:o.length>e.length?e.length===1&&e[0]===PathScore.Static+PathScore.Segment?1:-1:0}function comparePathParserScore(o,e){let t=0;const r=o.score,s=e.score;for(;t<r.length&&t<s.length;){const a=compareScoreArray(r[t],s[t]);if(a)return a;t++}if(Math.abs(s.length-r.length)===1){if(isLastScoreNegative(r))return 1;if(isLastScoreNegative(s))return-1}return s.length-r.length}function isLastScoreNegative(o){const e=o[o.length-1];return o.length>0&&e[e.length-1]<0}const PATH_PARSER_OPTIONS_DEFAULTS={strict:!1,end:!0,sensitive:!1};function createRouteRecordMatcher(o,e,t){const r=tokensToParser(tokenizePath(o.path),t),s=assign(r,{record:o,parent:e,children:[],alias:[]});return e&&!s.record.aliasOf==!e.record.aliasOf&&e.children.push(s),s}function createRouterMatcher(o,e){const t=[],r=new Map;e=mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS,e);function s(f){return r.get(f)}function a(f,m,_){const v=!_,b=normalizeRouteRecord(f);b.aliasOf=_&&_.record;const C=mergeOptions(e,f),y=[b];if("alias"in f){const E=typeof f.alias=="string"?[f.alias]:f.alias;for(const x of E)y.push(normalizeRouteRecord(assign({},b,{components:_?_.record.components:b.components,path:x,aliasOf:_?_.record:b})))}let S,w;for(const E of y){const{path:x}=E;if(m&&x[0]!=="/"){const L=m.record.path,k=L[L.length-1]==="/"?"":"/";E.path=m.record.path+(x&&k+x)}if(S=createRouteRecordMatcher(E,m,C),_?_.alias.push(S):(w=w||S,w!==S&&w.alias.push(S),v&&f.name&&!isAliasRecord(S)&&l(f.name)),isMatchable(S)&&d(S),b.children){const L=b.children;for(let k=0;k<L.length;k++)a(L[k],S,_&&_.children[k])}_=_||S}return w?()=>{l(w)}:noop}function l(f){if(isRouteName(f)){const m=r.get(f);m&&(r.delete(f),t.splice(t.indexOf(m),1),m.children.forEach(l),m.alias.forEach(l))}else{const m=t.indexOf(f);m>-1&&(t.splice(m,1),f.record.name&&r.delete(f.record.name),f.children.forEach(l),f.alias.forEach(l))}}function c(){return t}function d(f){const m=findInsertionIndex(f,t);t.splice(m,0,f),f.record.name&&!isAliasRecord(f)&&r.set(f.record.name,f)}function u(f,m){let _,v={},b,C;if("name"in f&&f.name){if(_=r.get(f.name),!_)throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND,{location:f});C=_.record.name,v=assign(pickParams(m.params,_.keys.filter(w=>!w.optional).concat(_.parent?_.parent.keys.filter(w=>w.optional):[]).map(w=>w.name)),f.params&&pickParams(f.params,_.keys.map(w=>w.name))),b=_.stringify(v)}else if(f.path!=null)b=f.path,_=t.find(w=>w.re.test(b)),_&&(v=_.parse(b),C=_.record.name);else{if(_=m.name?r.get(m.name):t.find(w=>w.re.test(m.path)),!_)throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND,{location:f,currentLocation:m});C=_.record.name,v=assign({},m.params,f.params),b=_.stringify(v)}const y=[];let S=_;for(;S;)y.unshift(S.record),S=S.parent;return{name:C,path:b,params:v,matched:y,meta:mergeMetaFields(y)}}o.forEach(f=>a(f));function g(){t.length=0,r.clear()}return{addRoute:a,resolve:u,removeRoute:l,clearRoutes:g,getRoutes:c,getRecordMatcher:s}}function pickParams(o,e){const t={};for(const r of e)r in o&&(t[r]=o[r]);return t}function normalizeRouteRecord(o){const e={path:o.path,redirect:o.redirect,name:o.name,meta:o.meta||{},aliasOf:o.aliasOf,beforeEnter:o.beforeEnter,props:normalizeRecordProps(o),children:o.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in o?o.components||null:o.component&&{default:o.component}};return Object.defineProperty(e,"mods",{value:{}}),e}function normalizeRecordProps(o){const e={},t=o.props||!1;if("component"in o)e.default=t;else for(const r in o.components)e[r]=typeof t=="object"?t[r]:t;return e}function isAliasRecord(o){for(;o;){if(o.record.aliasOf)return!0;o=o.parent}return!1}function mergeMetaFields(o){return o.reduce((e,t)=>assign(e,t.meta),{})}function findInsertionIndex(o,e){let t=0,r=e.length;for(;t!==r;){const a=t+r>>1;comparePathParserScore(o,e[a])<0?r=a:t=a+1}const s=getInsertionAncestor(o);return s&&(r=e.lastIndexOf(s,r-1)),r}function getInsertionAncestor(o){let e=o;for(;e=e.parent;)if(isMatchable(e)&&comparePathParserScore(o,e)===0)return e}function isMatchable({record:o}){return!!(o.name||o.components&&Object.keys(o.components).length||o.redirect)}function useLink(o){const e=inject(routerKey),t=inject(routeLocationKey),r=computed$1(()=>{const d=unref(o.to);return e.resolve(d)}),s=computed$1(()=>{const{matched:d}=r.value,{length:u}=d,g=d[u-1],f=t.matched;if(!g||!f.length)return-1;const m=f.findIndex(isSameRouteRecord.bind(null,g));if(m>-1)return m;const _=getOriginalPath(d[u-2]);return u>1&&getOriginalPath(g)===_&&f[f.length-1].path!==_?f.findIndex(isSameRouteRecord.bind(null,d[u-2])):m}),a=computed$1(()=>s.value>-1&&includesParams(t.params,r.value.params)),l=computed$1(()=>s.value>-1&&s.value===t.matched.length-1&&isSameRouteLocationParams(t.params,r.value.params));function c(d={}){if(guardEvent(d)){const u=e[unref(o.replace)?"replace":"push"](unref(o.to)).catch(noop);return o.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:computed$1(()=>r.value.href),isActive:a,isExactActive:l,navigate:c}}function preferSingleVNode(o){return o.length===1?o[0]:o}const RouterLinkImpl=defineComponent({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink,setup(o,{slots:e}){const t=reactive$1(useLink(o)),{options:r}=inject(routerKey),s=computed$1(()=>({[getLinkClass(o.activeClass,r.linkActiveClass,"router-link-active")]:t.isActive,[getLinkClass(o.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:t.isExactActive}));return()=>{const a=e.default&&preferSingleVNode(e.default(t));return o.custom?a:h$1("a",{"aria-current":t.isExactActive?o.ariaCurrentValue:null,href:t.href,onClick:t.navigate,class:s.value},a)}}}),RouterLink=RouterLinkImpl;function guardEvent(o){if(!(o.metaKey||o.altKey||o.ctrlKey||o.shiftKey)&&!o.defaultPrevented&&!(o.button!==void 0&&o.button!==0)){if(o.currentTarget&&o.currentTarget.getAttribute){const e=o.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return o.preventDefault&&o.preventDefault(),!0}}function includesParams(o,e){for(const t in e){const r=e[t],s=o[t];if(typeof r=="string"){if(r!==s)return!1}else if(!isArray(s)||s.length!==r.length||r.some((a,l)=>a!==s[l]))return!1}return!0}function getOriginalPath(o){return o?o.aliasOf?o.aliasOf.path:o.path:""}const getLinkClass=(o,e,t)=>o!=null?o:e!=null?e:t,RouterViewImpl=defineComponent({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(o,{attrs:e,slots:t}){const r=inject(routerViewLocationKey),s=computed$1(()=>o.route||r.value),a=inject(viewDepthKey,0),l=computed$1(()=>{let u=unref(a);const{matched:g}=s.value;let f;for(;(f=g[u])&&!f.components;)u++;return u}),c=computed$1(()=>s.value.matched[l.value]);provide(viewDepthKey,computed$1(()=>l.value+1)),provide(matchedRouteKey,c),provide(routerViewLocationKey,s);const d=ref$1();return watch(()=>[d.value,c.value,o.name],([u,g,f],[m,_,v])=>{g&&(g.instances[f]=u,_&&_!==g&&u&&u===m&&(g.leaveGuards.size||(g.leaveGuards=_.leaveGuards),g.updateGuards.size||(g.updateGuards=_.updateGuards))),u&&g&&(!_||!isSameRouteRecord(g,_)||!m)&&(g.enterCallbacks[f]||[]).forEach(b=>b(u))},{flush:"post"}),()=>{const u=s.value,g=o.name,f=c.value,m=f&&f.components[g];if(!m)return normalizeSlot(t.default,{Component:m,route:u});const _=f.props[g],v=_?_===!0?u.params:typeof _=="function"?_(u):_:null,C=h$1(m,assign({},v,e,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(f.instances[g]=null)},ref:d}));return normalizeSlot(t.default,{Component:C,route:u})||C}}});function normalizeSlot(o,e){if(!o)return null;const t=o(e);return t.length===1?t[0]:t}const RouterView=RouterViewImpl;function createRouter(o){const e=createRouterMatcher(o.routes,o),t=o.parseQuery||parseQuery,r=o.stringifyQuery||stringifyQuery,s=o.history,a=useCallbacks(),l=useCallbacks(),c=useCallbacks(),d=shallowRef(START_LOCATION_NORMALIZED);let u=START_LOCATION_NORMALIZED;isBrowser&&o.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const g=applyToParams.bind(null,q=>""+q),f=applyToParams.bind(null,encodeParam),m=applyToParams.bind(null,decode);function _(q,Q){let re,de;return isRouteName(q)?(re=e.getRecordMatcher(q),de=Q):de=q,e.addRoute(de,re)}function v(q){const Q=e.getRecordMatcher(q);Q&&e.removeRoute(Q)}function b(){return e.getRoutes().map(q=>q.record)}function C(q){return!!e.getRecordMatcher(q)}function y(q,Q){if(Q=assign({},Q||d.value),typeof q=="string"){const Y=parseURL(t,q,Q.path),ie=e.resolve({path:Y.path},Q),ne=s.createHref(Y.fullPath);return assign(Y,ie,{params:m(ie.params),hash:decode(Y.hash),redirectedFrom:void 0,href:ne})}let re;if(q.path!=null)re=assign({},q,{path:parseURL(t,q.path,Q.path).path});else{const Y=assign({},q.params);for(const ie in Y)Y[ie]==null&&delete Y[ie];re=assign({},q,{params:f(Y)}),Q.params=f(Q.params)}const de=e.resolve(re,Q),se=q.hash||"";de.params=g(m(de.params));const W=stringifyURL(r,assign({},q,{hash:encodeHash(se),path:de.path})),G=s.createHref(W);return assign({fullPath:W,hash:se,query:r===stringifyQuery?normalizeQuery(q.query):q.query||{}},de,{redirectedFrom:void 0,href:G})}function S(q){return typeof q=="string"?parseURL(t,q,d.value.path):assign({},q)}function w(q,Q){if(u!==q)return createRouterError(ErrorTypes.NAVIGATION_CANCELLED,{from:Q,to:q})}function E(q){return k(q)}function x(q){return E(assign(S(q),{replace:!0}))}function L(q,Q){const re=q.matched[q.matched.length-1];if(re&&re.redirect){const{redirect:de}=re;let se=typeof de=="function"?de(q,Q):de;return typeof se=="string"&&(se=se.includes("?")||se.includes("#")?se=S(se):{path:se},se.params={}),assign({query:q.query,hash:q.hash,params:se.path!=null?{}:q.params},se)}}function k(q,Q){const re=u=y(q),de=d.value,se=q.state,W=q.force,G=q.replace===!0,Y=L(re,de);if(Y)return k(assign(S(Y),{state:typeof Y=="object"?assign({},se,Y.state):se,force:W,replace:G}),Q||re);const ie=re;ie.redirectedFrom=Q;let ne;return!W&&isSameRouteLocation(r,de,re)&&(ne=createRouterError(ErrorTypes.NAVIGATION_DUPLICATED,{to:ie,from:de}),U(de,de,!0,!1)),(ne?Promise.resolve(ne):T(ie,de)).catch(oe=>isNavigationFailure(oe)?isNavigationFailure(oe,ErrorTypes.NAVIGATION_GUARD_REDIRECT)?oe:V(oe):B(oe,ie,de)).then(oe=>{if(oe){if(isNavigationFailure(oe,ErrorTypes.NAVIGATION_GUARD_REDIRECT))return k(assign({replace:G},S(oe.to),{state:typeof oe.to=="object"?assign({},se,oe.to.state):se,force:W}),Q||ie)}else oe=R(ie,de,!0,G,se);return M(ie,de,oe),oe})}function D(q,Q){const re=w(q,Q);return re?Promise.reject(re):Promise.resolve()}function I(q){const Q=ee.values().next().value;return Q&&typeof Q.runWithContext=="function"?Q.runWithContext(q):q()}function T(q,Q){let re;const[de,se,W]=extractChangingRecords(q,Q);re=extractComponentsGuards(de.reverse(),"beforeRouteLeave",q,Q);for(const Y of de)Y.leaveGuards.forEach(ie=>{re.push(guardToPromiseFn(ie,q,Q))});const G=D.bind(null,q,Q);return re.push(G),J(re).then(()=>{re=[];for(const Y of a.list())re.push(guardToPromiseFn(Y,q,Q));return re.push(G),J(re)}).then(()=>{re=extractComponentsGuards(se,"beforeRouteUpdate",q,Q);for(const Y of se)Y.updateGuards.forEach(ie=>{re.push(guardToPromiseFn(ie,q,Q))});return re.push(G),J(re)}).then(()=>{re=[];for(const Y of W)if(Y.beforeEnter)if(isArray(Y.beforeEnter))for(const ie of Y.beforeEnter)re.push(guardToPromiseFn(ie,q,Q));else re.push(guardToPromiseFn(Y.beforeEnter,q,Q));return re.push(G),J(re)}).then(()=>(q.matched.forEach(Y=>Y.enterCallbacks={}),re=extractComponentsGuards(W,"beforeRouteEnter",q,Q,I),re.push(G),J(re))).then(()=>{re=[];for(const Y of l.list())re.push(guardToPromiseFn(Y,q,Q));return re.push(G),J(re)}).catch(Y=>isNavigationFailure(Y,ErrorTypes.NAVIGATION_CANCELLED)?Y:Promise.reject(Y))}function M(q,Q,re){c.list().forEach(de=>I(()=>de(q,Q,re)))}function R(q,Q,re,de,se){const W=w(q,Q);if(W)return W;const G=Q===START_LOCATION_NORMALIZED,Y=isBrowser?history.state:{};re&&(de||G?s.replace(q.fullPath,assign({scroll:G&&Y&&Y.scroll},se)):s.push(q.fullPath,se)),d.value=q,U(q,Q,re,G),V()}let N;function A(){N||(N=s.listen((q,Q,re)=>{if(!Z.listening)return;const de=y(q),se=L(de,Z.currentRoute.value);if(se){k(assign(se,{replace:!0,force:!0}),de).catch(noop);return}u=de;const W=d.value;isBrowser&&saveScrollPosition(getScrollKey(W.fullPath,re.delta),computeScrollPosition()),T(de,W).catch(G=>isNavigationFailure(G,ErrorTypes.NAVIGATION_ABORTED|ErrorTypes.NAVIGATION_CANCELLED)?G:isNavigationFailure(G,ErrorTypes.NAVIGATION_GUARD_REDIRECT)?(k(assign(S(G.to),{force:!0}),de).then(Y=>{isNavigationFailure(Y,ErrorTypes.NAVIGATION_ABORTED|ErrorTypes.NAVIGATION_DUPLICATED)&&!re.delta&&re.type===NavigationType.pop&&s.go(-1,!1)}).catch(noop),Promise.reject()):(re.delta&&s.go(-re.delta,!1),B(G,de,W))).then(G=>{G=G||R(de,W,!1),G&&(re.delta&&!isNavigationFailure(G,ErrorTypes.NAVIGATION_CANCELLED)?s.go(-re.delta,!1):re.type===NavigationType.pop&&isNavigationFailure(G,ErrorTypes.NAVIGATION_ABORTED|ErrorTypes.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),M(de,W,G)}).catch(noop)}))}let O=useCallbacks(),P=useCallbacks(),F;function B(q,Q,re){V(q);const de=P.list();return de.length?de.forEach(se=>se(q,Q,re)):console.error(q),Promise.reject(q)}function H(){return F&&d.value!==START_LOCATION_NORMALIZED?Promise.resolve():new Promise((q,Q)=>{O.add([q,Q])})}function V(q){return F||(F=!q,A(),O.list().forEach(([Q,re])=>q?re(q):Q()),O.reset()),q}function U(q,Q,re,de){const{scrollBehavior:se}=o;if(!isBrowser||!se)return Promise.resolve();const W=!re&&getSavedScrollPosition(getScrollKey(q.fullPath,0))||(de||!re)&&history.state&&history.state.scroll||null;return nextTick().then(()=>se(q,Q,W)).then(G=>G&&scrollToPosition(G)).catch(G=>B(G,q,Q))}const j=q=>s.go(q);let X;const ee=new Set,Z={currentRoute:d,listening:!0,addRoute:_,removeRoute:v,clearRoutes:e.clearRoutes,hasRoute:C,getRoutes:b,resolve:y,options:o,push:E,replace:x,go:j,back:()=>j(-1),forward:()=>j(1),beforeEach:a.add,beforeResolve:l.add,afterEach:c.add,onError:P.add,isReady:H,install(q){q.component("RouterLink",RouterLink),q.component("RouterView",RouterView),q.config.globalProperties.$router=Z,Object.defineProperty(q.config.globalProperties,"$route",{enumerable:!0,get:()=>unref(d)}),isBrowser&&!X&&d.value===START_LOCATION_NORMALIZED&&(X=!0,E(s.location).catch(de=>{}));const Q={};for(const de in START_LOCATION_NORMALIZED)Object.defineProperty(Q,de,{get:()=>d.value[de],enumerable:!0});q.provide(routerKey,Z),q.provide(routeLocationKey,shallowReactive(Q)),q.provide(routerViewLocationKey,d);const re=q.unmount;ee.add(q),q.unmount=function(){ee.delete(q),ee.size<1&&(u=START_LOCATION_NORMALIZED,N&&N(),N=null,d.value=START_LOCATION_NORMALIZED,X=!1,F=!1),re()}}};function J(q){return q.reduce((Q,re)=>Q.then(()=>I(re)),Promise.resolve())}return Z}function useRouter(){return inject(routerKey)}var DeviceType=(o=>(o.Phone="phone",o.Pad="pad",o.PC="pc",o))(DeviceType||{});const uaMap={phone:"Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1",pad:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",pc:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"},_sfc_main$7=defineComponent({__name:"DeviceGroup",props:{modelValue:{default:()=>({width:375,height:817})},modelModifiers:{}},emits:["update:modelValue"],setup(o,{expose:e}){const t=inject("services"),r={phone:817,pad:1024,pc:"100%"},s={phone:375,pad:768,pc:"100%"},a=m=>r[m],l=m=>s[m],c=useModel(o,"modelValue"),d=computed$1(()=>t==null?void 0:t.uiService.get("stageContainerRect")),u=()=>{var v,b,C;if(!t)return;const m=(b=(v=t.editorService.get("stage"))==null?void 0:v.renderer)==null?void 0:b.iframe;if(!(m!=null&&m.contentWindow))return;const _=m.contentWindow.appInstance;if(_)if(_.setEnv(uaMap[g.value]),_.env.isWeb){const y=t.uiService.get("stageRect"),S=convertToNumber(y.width,convertToNumber(((C=d.value)==null?void 0:C.width)||0));_.setDesignWidth(S)}else _.setDesignWidth(375)},g=ref$1(DeviceType.Phone),f=async m=>{const _=l(m),v=a(m);c.value={width:_,height:v},await nextTick(),u()};return e({viewerDevice:g}),(m,_)=>(openBlock(),createBlock(unref(_sfc_main$e$2),{size:"small",modelValue:g.value,"onUpdate:modelValue":_[0]||(_[0]=v=>g.value=v),class:normalizeClass(g.value),onChange:f},{default:withCtx(()=>[createVNode(unref(_sfc_main$f$2),{value:"phone"},{default:withCtx(()=>[..._[1]||(_[1]=[createTextVNode("Phone",-1)])]),_:1}),createVNode(unref(_sfc_main$f$2),{value:"pad"},{default:withCtx(()=>[..._[2]||(_[2]=[createTextVNode("Pad",-1)])]),_:1}),createVNode(unref(_sfc_main$f$2),{value:"pc"},{default:withCtx(()=>[..._[3]||(_[3]=[createTextVNode("PC",-1)])]),_:1})]),_:1},8,["modelValue","class"]))}}),componentGroupList=[{title:"示例容器",items:[{icon:folder_opened_default,text:"组",type:"container"},{icon:folder_opened_default,text:"蒙层",type:"overlay"},{icon:ticket_default,text:"页面片容器",type:"page-fragment-container"},{icon:files_default,text:"迭代器容器",type:"iterator-container"}]},{title:"示例组件",items:[{icon:tickets_default,text:"文本",type:"text"},{icon:switch_button_default,text:"按钮",type:"button"},{icon:picture_filled_default,text:"图片",type:"img"},{icon:grid_default,text:"二维码",type:"qrcode"}]},{title:"组合",items:[{icon:tickets_default,text:"弹窗",data:{type:"overlay",style:{position:"fixed",width:"100%",height:"100%",top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.8)"},name:"弹窗",items:[{type:"container",style:{position:"absolute",width:"80%",height:"400",top:"143.87",left:37.5,backgroundColor:"rgba(255, 255, 255, 1)",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%"},name:"组",items:[],layout:"absolute"}]}}]}],dsl={id:"1",name:"test",type:NodeType.ROOT,codeBlocks:{code_5336:{name:"getData",content:({app:o,params:e})=>{console.log("this is getData function",e,o)},params:[{name:"age",type:"number",tip:"年纪"},{name:"studentName",type:"text",tip:"学生姓名"}]},code_5316:{name:"getList",content:()=>{console.log("this is getList function")},params:[]},code_5317:{name:"code1",content:({flowState:o})=>{console.log("code1: set flowState.name=lisa"),o.name="lisa"},params:[]},code_5318:{name:"code2",content:({flowState:o})=>{console.log("print flowState.name",o.name),o.abort()},params:[]},code_6778:{name:"toOtherPage",desc:"",timing:"",params:[{name:"pageId",extra:"",type:""}],content:({app:o,params:e})=>{o.setPage(e.pageId)}}},items:[{type:NodeType.PAGE,id:"page_299",name:"index",title:"",layout:"absolute",style:{position:"relative",left:0,top:0,right:"",bottom:"",width:"100%",height:"1728",backgroundImage:"",backgroundColor:"rgba(248, 218, 218, 1)",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"",fontWeight:""},events:[{name:"magic:common:events:click",actions:[{actionType:ActionType.CODE,codeId:"code_5336",params:{age:12}}]},{name:"magic:common:events:click",actions:[{actionType:ActionType.CODE,codeId:"code_5316",params:{}}]}],created:{hookType:"code",hookData:[{codeId:"code_5336",params:{studentName:"lisa",age:14}},{codeId:"code_5316",params:{}}]},items:[{type:"text",id:"text_9027",style:{width:"280.75",height:"38.97",position:"absolute",top:"107.90",left:"46.96",right:"",bottom:"",backgroundImage:"",backgroundColor:"",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"20",fontWeight:""},name:"文本",text:"Tmagic editor 营销活动编辑器",multiple:!0,events:[],displayConds:[]},{type:"qrcode",id:"qrcode_4738",style:{position:"absolute",left:"91.92",width:"176",height:"176",top:"565.50",right:"",bottom:"",backgroundImage:"",backgroundColor:"",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"",fontWeight:""},name:"二维码",url:"https://github.com/Tencent/tmagic-editor",events:[],created:[],displayConds:[]},{type:"img",id:"img_3877",style:{position:"absolute",left:"95.91",width:"176",height:"176",top:"325.71",right:"",bottom:"",backgroundImage:"",backgroundColor:"",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"",fontWeight:""},name:"图片",src:"https://vfiles.gtimg.cn/vupload/20210811/388ed01628667545737.png",url:"",events:[],created:[],displayConds:[]},{type:"button",id:"button_430",style:{position:"absolute",width:"270",height:"37.5",border:0,backgroundColor:"#fb6f00",top:"206.82",left:"55.95",right:"",bottom:"",backgroundImage:"",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"",fontWeight:"",borderWidth:"0",borderColor:"",borderStyle:"none",transform:{rotate:"",scale:""}},name:"按钮",text:"${ds_b64c92b5.text}",multiple:!0,events:[{name:"magic:common:events:click",actions:[{actionType:ActionType.COMP,to:"overlay_2159",method:"openOverlay"}]}],created:[],displayConds:[]},{id:"button_1cb163ad",text:"前往page2",multiple:!0,style:{width:"270",height:"37.5",border:0,backgroundColor:"#fb6f00",position:"absolute",left:56,top:266},type:"button",name:"按钮",events:[{name:"magic:common:events:click",actions:[{actionType:ActionType.CODE,codeId:"code_6778",params:{pageId:"page_171ff161"}}]}],displayConds:[]},{type:"overlay",id:"overlay_2159",style:{position:"fixed",width:"100%",height:"100%",top:0,left:0,backgroundColor:"rgba(0, 0, 0, 0.8)"},name:"蒙层",items:[{type:"container",id:"container_607",style:{position:"absolute",width:"80%",height:"400",top:"143.87",left:37.5,right:"",bottom:"",backgroundImage:"",backgroundColor:"rgba(255, 255, 255, 1)",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"",fontWeight:""},name:"组",items:[{type:"button",id:"button_7265",style:{position:"absolute",width:"270",height:"37.5",border:0,backgroundColor:"#fb6f00",top:"322.71",left:"15.99",right:"",bottom:"",backgroundImage:"",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"",fontWeight:"",borderWidth:"0",borderColor:"",borderStyle:"none",transform:{rotate:"",scale:""}},name:"按钮",text:"关闭弹窗",multiple:!0,events:[{name:"magic:common:events:click",actions:[{actionType:"comp",to:"overlay_2159",method:"closeOverlay"}]}],created:[]},{type:"img",id:"img_3291",style:{position:"absolute",left:"63.94",width:"176",height:"176",top:"105.91"},name:"图片",src:"https://puui.qpic.cn/vupload/0/1573555382625_bhp0wud8l6w.png/0",url:""},{type:"text",id:"text_8598",style:{position:"absolute",width:"86.92",height:"37.97",left:"106.90",top:"35.97",right:"",bottom:"",backgroundImage:"",backgroundColor:"",backgroundRepeat:"no-repeat",backgroundSize:"100% 100%",color:"",fontSize:"24",fontWeight:""},name:"文本",text:"Tmagic",multiple:!1,events:[],created:[]}],layout:"absolute",events:[],created:[]}]}]},{id:"page_171ff161",items:[{id:"button_80ca1076",text:"返回",multiple:!0,style:{width:"270",height:"37.5",border:0,backgroundColor:"#fb6f00",position:"absolute",left:48,top:297},type:"button",name:"按钮",events:[{name:"magic:common:events:click",actions:[{actionType:ActionType.CODE,codeId:"code_6778",params:{pageId:"page_299"}}]}],displayConds:[]}],style:{width:"100%",height:"100%",position:"relative",top:0,left:0},type:NodeType.PAGE,name:"page2",title:"",layout:"absolute"}],dataSources:[{id:"ds_b64c92b5",type:"base",title:"button",description:"按钮",fields:[{name:"text",title:"按钮文案",type:"string",description:"",enable:!0,defaultValue:"打开弹窗",fields:[]},{name:"array",title:"array",type:"array",description:"",enable:!0,defaultValue:[{a:1},{a:2}],fields:[{name:"a",title:"a",type:"number",description:"",enable:!0,defaultValue:1,fields:[]}]},{name:"object",title:"object",type:"object",description:"",enable:!0,defaultValue:{a:1},fields:[{name:"a",title:"a",type:"number",description:"",enable:!0,defaultValue:1,fields:[]}]}],methods:[],events:[],mocks:[],beforeRequest:"",afterResponse:""},{id:"ds_d1a460c5",type:"base",title:"style",description:"",fields:[{name:"color",title:"color",type:"string",description:"",enable:!0,defaultValue:"#fff",fields:[]}],methods:[{name:"setCorlor",desc:"",timing:"",params:[],content:({dataSource:o})=>{setTimeout(()=>{o.setData("red","color")},1e3)}}],events:[],mocks:[],beforeRequest:"",afterResponse:""}]},useEditorContentMenuData=()=>{const o={id:"",name:"蒙层",isTarget:(r,s)=>typeof r=="string"&&typeof s=="string"&&r.includes("events")&&s.startsWith("overlay_"),isCollectByDefault:!1},e=r=>({type:"button",text:"粘贴(带关联信息)",icon:markRaw(document_copy_default),display:s=>{var a;return!!((a=s==null?void 0:s.storageService)!=null&&a.getItem(COPY_STORAGE_KEY))},handler:s=>{var l,c,d,u;const a=(l=s==null?void 0:s.editorService)==null?void 0:l.get("nodes");!a||a.length===0||((c=s==null?void 0:s.editorService)==null||c.paste({},o),(d=s==null?void 0:s.codeBlockService)==null||d.paste(),(u=s==null?void 0:s.dataSourceService)==null||u.paste())}});return{contentMenuData:computed$1(()=>[{type:"button",text:"复制(带关联信息)",icon:markRaw(copy_document_default),handler:r=>{var a,l,c,d;const s=(a=r==null?void 0:r.editorService)==null?void 0:a.get("nodes");s&&((l=r==null?void 0:r.editorService)==null||l.copyWithRelated(cloneDeep(s),o)),s&&((c=r==null?void 0:r.codeBlockService)==null||c.copyWithRelated(cloneDeep(s))),s&&((d=r==null?void 0:r.dataSourceService)==null||d.copyWithRelated(cloneDeep(s)))}},e()])}},_sfc_main$6=defineComponent({__name:"AdapterSelect",setup(o){const e=ref$1(sessionStorage.getItem("tmagic-playground-ui-adapter")||"element-plus"),t=r=>{sessionStorage.setItem("tmagic-playground-ui-adapter",r),globalThis.location.reload()};return(r,s)=>(openBlock(),createBlock(unref(_sfc_main$p$2),{size:"small","label-position":"right",style:{"margin-left":"10px"}},{default:withCtx(()=>[createVNode(unref(_sfc_main$o$2),{label:"UI组件库"},{default:withCtx(()=>[createVNode(unref(_sfc_main$b$2),{modelValue:e.value,"onUpdate:modelValue":s[0]||(s[0]=a=>e.value=a),size:"small",onChange:t,style:{width:"150px"}},{default:withCtx(()=>[createVNode(unref(_sfc_main$k$2),{value:"element-plus"},{default:withCtx(()=>[...s[1]||(s[1]=[createTextVNode("element-plus",-1)])]),_:1}),createVNode(unref(_sfc_main$k$2),{value:"tdesign-vue-next"},{default:withCtx(()=>[...s[2]||(s[2]=[createTextVNode("tdesign-vue-next",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),_:1}))}}),useEditorMenu=(o,e)=>{const t=useRouter(),r=shallowRef(),s=shallowRef(),a=ref$1(!1);return{menu:{left:[{type:"text",text:"魔方"},{type:"component",component:_sfc_main$6}],center:["delete","undo","redo","guides","rule","zoom"],right:[{type:"button",text:"Form Playground",handler:()=>t.push("form")},{type:"button",text:"Form Editor Playground",handler:()=>t.push("form-editor")},{type:"button",text:"Table Playground",handler:()=>t.push("table")},"/",{type:"button",text:"预览",icon:connection_default,handler:async c=>{var d,u;if((c==null?void 0:c.editorService.get("modifiedNodeIds").size)>0)try{await tMagicMessageBox.confirm("有修改未保存,是否先保存再预览","提示",{confirmButtonText:"保存并预览",cancelButtonText:"预览",type:"warning"}),e(),tMagicMessage.success("保存成功")}catch(g){console.error(g)}a.value=!0,await nextTick(),!(!((d=s.value)!=null&&d.contentWindow)||!((u=r.value)!=null&&u.viewerDevice))&&Object.defineProperty(s.value.contentWindow.navigator,"userAgent",{value:uaMap[r.value.viewerDevice],writable:!0})}},{type:"button",text:"保存",icon:coin_default,handler:()=>{e(),tMagicMessage.success("保存成功")}},"/",{type:"button",icon:document_default,tooltip:"源码",handler:c=>c==null?void 0:c.uiService.set("showSrc",!(c!=null&&c.uiService.get("showSrc")))}]},deviceGroup:r,iframe:s,previewVisible:a,save:e}},useEditorMoveableOptions=o=>{let e=!1;const t=r=>{var d,u;const s={};if(!o.value)return s;const a=o.value.editorService.get("page"),l=r.targetElIds||[];let c=a&&l.includes("".concat(a.id));if(!c){const g=r.targetElId;if(g){const f=o.value.editorService.getNodeById(g);c=(f==null?void 0:f.type)===NodeType.PAGE}}return s.draggable=!c,s.resizable=!c,s.rotatable=!c,s.keepRatio=e,(u=(d=r==null?void 0:r.targetEl)==null?void 0:d.parentElement)!=null&&u.classList.contains("tmagic-editor-sub-stage-wrap")&&(s.draggable=!1,s.resizable=!1,s.rotatable=!1),s};return onMounted(()=>{if(!o.value)return;const r=()=>{var s;(s=o.value)==null||s.keybindingService.registerCommand("moveable-options-rotatable-endable",()=>{var a,l,c,d;e=!0,(c=(l=(a=o.value)==null?void 0:a.editorService.get("stage"))==null?void 0:l.actionManager)==null||c.updateMoveableOptions(),(d=o.value)==null||d.keybindingService.unregisterCommand("moveable-options-rotatable-endable")})};r(),o.value.keybindingService.registerCommand("moveable-options-rotatable-disable",()=>{var s,a,l;e=!1,(l=(a=(s=o.value)==null?void 0:s.editorService.get("stage"))==null?void 0:a.actionManager)==null||l.updateMoveableOptions(),r()}),o.value.keybindingService.register([{command:"moveable-options-rotatable-endable",keybinding:"shift",when:[["stage","keydown"]]},{command:"moveable-options-rotatable-disable",keybinding:"shift",when:[["stage","keyup"]]}])}),{moveableOptions:t}},__vite_import_meta_env__$1={LEGACY:!1,VITE_ENTRY_PATH:"./entry/vue"},{VITE_ENTRY_PATH}=__vite_import_meta_env__$1,useEditorRes=()=>{const o=ref$1({}),e=ref$1({}),t=ref$1({}),r=ref$1({}),s=ref$1({}),a=ref$1({base:{events:[],methods:[]}});return asyncLoadJs("".concat(VITE_ENTRY_PATH,"/config/index.umd.cjs")).then(()=>{e.value=globalThis.magicPresetConfigs}),asyncLoadJs("".concat(VITE_ENTRY_PATH,"/value/index.umd.cjs")).then(()=>{o.value=globalThis.magicPresetValues}),asyncLoadJs("".concat(VITE_ENTRY_PATH,"/event/index.umd.cjs")).then(()=>{t.value=globalThis.magicPresetEvents}),asyncLoadJs("".concat(VITE_ENTRY_PATH,"/ds-config/index.umd.cjs")).then(()=>{r.value=globalThis.magicPresetDsConfigs}),asyncLoadJs("".concat(VITE_ENTRY_PATH,"/ds-value/index.umd.cjs")).then(()=>{s.value=globalThis.magicPresetDsValues}),{propsValues:o,propsConfigs:e,eventMethodList:t,datasourceConfigs:r,datasourceValues:s,datasourceEventMethodList:a}},__vite_import_meta_env__={LEGACY:!1,VITE_RUNTIME_PATH:"/tmagic-editor/playground/runtime/vue"},_hoisted_1$3={class:"editor-app"},_hoisted_2$2=["height","src"],_sfc_main$5=defineComponent({__name:"Editor",setup(__props){const{VITE_RUNTIME_PATH}=__vite_import_meta_env__,datasourceList=[],runtimeUrl="".concat(VITE_RUNTIME_PATH,"/playground/index.html"),{propsValues,propsConfigs,eventMethodList,datasourceConfigs,datasourceValues,datasourceEventMethodList}=useEditorRes(),{contentMenuData}=useEditorContentMenuData(),editor=shallowRef(),value=ref$1(dsl),defaultSelected=ref$1(dsl.items[0].id),stageRect=ref$1({width:375,height:817}),previewUrl=computed$1(()=>{var o,e;return"".concat(VITE_RUNTIME_PATH,"/page/index.html?localPreview=1&page=").concat((e=(o=editor.value)==null?void 0:o.editorService.get("page"))==null?void 0:e.id)}),{moveableOptions}=useEditorMoveableOptions(editor),save=()=>{var o;localStorage.setItem("magicDSL",serialize(toRaw(value.value),{space:2,unsafe:!0}).replace(/"(\w+)":\s/g,"$1: ")),(o=editor.value)==null||o.editorService.resetModifiedNodeId()},{menu,deviceGroup,iframe,previewVisible}=useEditorMenu(value,save);try{const magicDSL=eval("(".concat(localStorage.getItem("magicDSL"),")"));magicDSL?value.value=magicDSL:save()}catch(o){console.error(o),save()}editorService.usePlugin({beforeDoAdd:(o,e)=>o.type==="overlay"?(o.style={...o.style,left:0,top:0},[o,editorService.get("page")]):[o,e]}),propsService.usePlugin({beforeFillConfig:o=>[o,"100px"]}),onBeforeUnmount(()=>{editorService.removeAllPlugins()});const propsSubmitErrorHandler=async o=>{console.error(o),tMagicMessage.closeAll(),tMagicMessage.error(o.message)};return(o,e)=>{var t;return openBlock(),createElementBlock("div",_hoisted_1$3,[createVNode(unref(_sfc_main$1s),{modelValue:value.value,"onUpdate:modelValue":e[1]||(e[1]=r=>value.value=r),ref_key:"editor",ref:editor,menu:unref(menu),"runtime-url":runtimeUrl,"props-configs":unref(propsConfigs),"props-values":unref(propsValues),"event-method-list":unref(eventMethodList),"datasource-event-method-list":unref(datasourceEventMethodList),"datasource-configs":unref(datasourceConfigs),"datasource-values":unref(datasourceValues),"component-group-list":unref(componentGroupList),"datasource-list":datasourceList,"default-selected":defaultSelected.value,"moveable-options":unref(moveableOptions),"auto-scroll-into-view":!0,"stage-rect":stageRect.value,layerContentMenu:unref(contentMenuData),stageContentMenu:unref(contentMenuData),onPropsSubmitError:propsSubmitErrorHandler},{"workspace-content":withCtx(()=>[createVNode(_sfc_main$7,{ref_key:"deviceGroup",ref:deviceGroup,modelValue:stageRect.value,"onUpdate:modelValue":e[0]||(e[0]=r=>stageRect.value=r)},null,8,["modelValue"])]),_:1},8,["modelValue","menu","props-configs","props-values","event-method-list","datasource-event-method-list","datasource-configs","datasource-values","component-group-list","default-selected","moveable-options","stage-rect","layerContentMenu","stageContentMenu"]),createVNode(unref(_sfc_main$v$2),{modelValue:unref(previewVisible),"onUpdate:modelValue":e[2]||(e[2]=r=>isRef(previewVisible)?previewVisible.value=r:null),"close-onClick-modal":"","destroy-on-close":"",class:"pre-viewer",title:"预览",width:(t=stageRect.value)==null?void 0:t.width},{default:withCtx(()=>{var r;return[unref(previewVisible)?(openBlock(),createElementBlock("iframe",{key:0,ref_key:"iframe",ref:iframe,width:"100%",style:{border:"none"},height:(r=stageRect.value)==null?void 0:r.height,src:previewUrl.value},null,8,_hoisted_2$2)):createCommentVNode("",!0)]}),_:1},8,["modelValue","width"])])}}}),_hoisted_1$2={class:"m-editor-nav-menu"},_sfc_main$4=defineComponent({__name:"NavMenu",props:{data:{}},setup(o){return(e,t)=>(openBlock(),createElementBlock("div",_hoisted_1$2,[createVNode(_sfc_main$6),(openBlock(!0),createElementBlock(Fragment,null,renderList(o.data,(r,s)=>(openBlock(),createElementBlock("div",{key:s,class:"menu-item button"},[createVNode(unref(_sfc_main$F$1),{size:"small",link:"",onClick:r.handler},{default:withCtx(()=>[createVNode(unref(_sfc_main$n$2),null,{default:withCtx(()=>[(openBlock(),createBlock(resolveDynamicComponent(r.icon)))]),_:2},1024),createBaseVNode("span",null,toDisplayString(r.text),1)]),_:2},1032,["onClick"])]))),128))]))}}),NavMenu=_export_sfc(_sfc_main$4,[["__scopeId","data-v-ede6516f"]]),formDsl=createForm([{text:"文本",name:"text",tooltip:(o,{model:e})=>e.text,extra:(o,{model:e})=>"".concat(e.text,"extra"),rules:[{required:!0,message:"请输入活动名称",trigger:"blur"}]},{type:"checkbox",text:"checkbox",name:"option",activeValue:1,inactiveValue:0,defaultValue:1},{type:"link",displayText:"链接",text:"link",name:"link",href:"",tooltip:"element-ui"},{type:"display",text:"展示",name:"display",initValue:"display",tooltip:"hello"},{type:"number",text:"计数器",name:"number"},{type:"textarea",text:"输入框",name:"textarea1"},{type:"datetime",text:"日期",name:"datetime"},{type:"switch",text:"开关",name:"switch",filter:"number",defaultValue:1},{type:"daterange",text:"日期范围",names:["one","two"]},{type:"time",text:"日期选择",name:"time"},{type:"colorPicker",text:"取色器",name:"colorPicker"},{type:"checkbox-group",text:"选项组",name:"checkGroup",options:[{value:1,text:"one"},{value:2,text:"two"}]},{type:"radio-group",text:"单选框",name:"radioGroup",options:[{value:1,text:"one"},{value:2,text:"two"}]},{type:"cascader",text:"级联选择",placeholder:"test",name:"cascader",options:[{value:1,label:"one",children:[{value:3,label:"three",children:[{value:8,label:"eight"}]},{value:4,label:"four"},{value:6,label:"six"}]},{value:2,label:"two",children:[{value:5,label:"five"},{value:7,label:"seven"}]}]},{type:"dynamic-field",name:"dynamic-field",dynamicKey:"textarea",text:"动态表单",returnFields:()=>[{name:"one",label:"number",defaultValue:"yes"}]},{type:"row",items:[{type:"date",text:"日期",name:"date"},{type:"checkbox",text:"多选框",name:"checkbox",tooltip:"分组xxxxxxxxxxxx",extra:"extra"}]},{type:"fieldset",name:"fieldset",legend:"分组",extra:"extra",checkbox:!0,expand:!0,items:[{type:"select",text:"下拉选项",name:"select",options:[{text:"选项1",value:1},{text:"选项2",value:2}]}]},{type:"tab",name:"tab",editable:!0,dynamic:!0,active:"0",tabType:"border-card",items:[{name:"xx",items:[{name:"text",text:"text"}]}]},{type:"table",name:"table",copyable:!0,defautSort:{prop:"name",order:"descending"},extra:"extra",itemExtra:(o,{model:e})=>"".concat(e.text,"itemExtra"),items:[{label:"id",name:"id",sortable:!0,tooltip:"分组xxxxxxxxxxxx",rules:[{required:!0,message:"请输入活动名称",trigger:"blur"}]},{label:"名称",name:"name"}]},{type:"groupList",name:"groupList",extra:"分组xxxxxxxxxxxx",copyable:!0,moveSpecifyLocation:!0,itemExtra:(o,{model:e})=>"".concat(e.name,"extra"),items:[{text:"id",name:"id",rules:[{required:!0,message:"请输入活动名称",trigger:"blur"}]},{text:"名称",name:"name"}]},{type:"panel",title:"panel",extra:"panel",schematic:"https://vfiles.gtimg.cn/vupload/20210329/9712631617027075445.png",items:[{text:"名称",name:"name"}]},{type:"step",items:[{name:"step1",title:"step1",items:[{text:"名称",name:"name"}]},{name:"step2",title:"step2",items:[{text:"名称2",name:"name"}]}]}]),_hoisted_1$1={style:{width:"100%","overflow-y":"auto"}},_hoisted_2$1={class:"diff-form"},_hoisted_3={class:"form-content"},_hoisted_4=["innerHTML"],_sfc_main$3=defineComponent({__name:"Form",setup(__props){const router=useRouter(),resultVisible=ref$1(!1),result=ref$1(""),form=ref$1(),diffFormConfig=ref$1([{type:"tab",items:[{title:"tab1",labelWidth:"80px",items:[{name:"text1",text:"文本字段1"},{name:"text2",text:"文本字段2"},{type:"number",text:"计数器",name:"number"}]},{title:"tab2",labelWidth:"80px",items:[{type:"colorPicker",text:"取色器",name:"colorPicker"}]}]}]),currentVersion=ref$1({text1:"当前版本的文本内容",text2:"你好",number:10,colorPicker:"#ffffff"}),lastVersion=ref$1({text1:"上一版本的文本内容",text2:"你好",number:12,colorPicker:"#000000"}),config=ref$1(formDsl),initValue=ref$1({text:"文本",number:10,fieldset:{select:1},table:[{id:1,name:"a"},{id:2,name:"b"}]}),menu=[{type:"button",text:"Editor Playground",handler:()=>router.push("/")},{type:"button",text:"Form Editor Playground",handler:()=>router.push("form-editor")},{type:"button",text:"Table Playground",handler:()=>router.push("table")},{type:"button",text:"提交",icon:markRaw(coin_default),handler:()=>{submit()}}];async function submit(){var o;try{const e=await((o=form.value)==null?void 0:o.submitForm());resultVisible.value=!0,result.value=JSON.stringify(e,null,2)}catch(e){console.error(e),tMagicMessage.error(e.message)}}function change(value){try{config.value=eval(value),tMagicMessage.success("更新成功")}catch(o){tMagicMessage.error(o.message)}}return(o,e)=>{const t=resolveComponent("magic-code-editor");return openBlock(),createElementBlock(Fragment,null,[createBaseVNode("div",_hoisted_1$1,[createVNode(NavMenu,{data:menu}),createBaseVNode("div",_hoisted_2$1,[e[1]||(e[1]=createBaseVNode("div",null,"开启表单对比功能",-1)),createVNode(unref(_sfc_main$g$1),{ref_key:"form",ref:form,config:diffFormConfig.value,"is-compare":!0,"init-values":currentVersion.value,"last-values":lastVersion.value,size:"small",height:"100%"},null,8,["config","init-values","last-values"])]),e[2]||(e[2]=createBaseVNode("div",{class:"title"},"表单字段展示",-1)),createBaseVNode("div",_hoisted_3,[createVNode(unref(_sfc_main$g$1),{ref_key:"form",ref:form,config:config.value,"init-values":initValue.value,size:"small",height:"100%"},null,8,["config","init-values"]),createVNode(t,{class:"code-editor-content","init-values":config.value,onSave:change},null,8,["init-values"])])]),createVNode(unref(_sfc_main$v$2),{modelValue:resultVisible.value,"onUpdate:modelValue":e[0]||(e[0]=r=>resultVisible.value=r),title:"result","append-to-body":""},{default:withCtx(()=>[createBaseVNode("pre",null,[createBaseVNode("code",{class:"language-javascript hljs",innerHTML:result.value},null,8,_hoisted_4)])]),_:1},8,["modelValue"])],64)}}}),cssStyle='@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--el-color-primary-rgb:64,158,255;--el-color-success-rgb:103,194,58;--el-color-warning-rgb:230,162,60;--el-color-danger-rgb:245,108,108;--el-color-error-rgb:245,108,108;--el-color-info-rgb:144,147,153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:0.3s;--el-transition-duration-fast:0.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(0.645,0.045,0.355,1);--el-transition-function-fast-bezier:cubic-bezier(0.23,1,0.32,1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier),opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px}:root{color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:rgb(121,187,255);--el-color-primary-light-5:rgb(160,207,255);--el-color-primary-light-7:rgb(198,226,255);--el-color-primary-light-8:rgb(217,236,255);--el-color-primary-light-9:rgb(236,245,255);--el-color-primary-dark-2:rgb(51,126,204);--el-color-success:#67c23a;--el-color-success-light-3:rgb(149,212,117);--el-color-success-light-5:rgb(179,225,157);--el-color-success-light-7:rgb(209,237,196);--el-color-success-light-8:rgb(225,243,216);--el-color-success-light-9:rgb(240,249,235);--el-color-success-dark-2:rgb(82,155,46);--el-color-warning:#e6a23c;--el-color-warning-light-3:rgb(238,190,119);--el-color-warning-light-5:rgb(243,209,158);--el-color-warning-light-7:rgb(248,227,197);--el-color-warning-light-8:rgb(250,236,216);--el-color-warning-light-9:rgb(253,246,236);--el-color-warning-dark-2:rgb(184,130,48);--el-color-danger:#f56c6c;--el-color-danger-light-3:rgb(248,152,152);--el-color-danger-light-5:rgb(250,182,182);--el-color-danger-light-7:rgb(252,211,211);--el-color-danger-light-8:rgb(253,226,226);--el-color-danger-light-9:rgb(254,240,240);--el-color-danger-dark-2:rgb(196,86,86);--el-color-error:#f56c6c;--el-color-error-light-3:rgb(248,152,152);--el-color-error-light-5:rgb(250,182,182);--el-color-error-light-7:rgb(252,211,211);--el-color-error-light-8:rgb(253,226,226);--el-color-error-light-9:rgb(254,240,240);--el-color-error-dark-2:rgb(196,86,86);--el-color-info:#909399;--el-color-info-light-3:rgb(177,179,184);--el-color-info-light-5:rgb(200,201,204);--el-color-info-light-7:rgb(222,223,224);--el-color-info-light-8:rgb(233,233,235);--el-color-info-light-9:rgb(244,244,245);--el-color-info-dark-2:rgb(115,118,122);--el-bg-color:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0,0,0,0.04),0px 8px 20px rgba(0,0,0,0.08);--el-box-shadow-light:0px 0px 12px rgba(0,0,0,0.12);--el-box-shadow-lighter:0px 0px 6px rgba(0,0,0,0.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0,0,0,0.08),0px 12px 32px rgba(0,0,0,0.12),0px 8px 16px -8px rgba(0,0,0,0.16);--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:rgba(0,0,0,0.8);--el-overlay-color-light:rgba(0,0,0,0.7);--el-overlay-color-lighter:rgba(0,0,0,0.5);--el-mask-color:rgba(255,255,255,0.9);--el-mask-color-extra-light:rgba(255,255,255,0.3);--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transform:scaleY(1);transform-origin:center top;transition:var(--el-transition-md-fade)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transform:scaleY(1);transform-origin:center bottom;transition:var(--el-transition-md-fade)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transform:scale(1);transform-origin:top left;transition:var(--el-transition-md-fade)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-enter-active,.el-collapse-transition-leave-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-icon{--color:inherit;align-items:center;display:inline-flex;height:1em;justify-content:center;line-height:1em;position:relative;width:1em;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{animation:rotating 2s linear infinite}.el-icon svg{height:1em;width:1em}.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:14px;--el-alert-title-with-description-font-size:16px;--el-alert-description-font-size:14px;--el-alert-close-font-size:16px;--el-alert-close-customed-font-size:14px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;align-items:center;background-color:var(--el-color-white);border-radius:var(--el-alert-border-radius-base);box-sizing:border-box;display:flex;margin:0;opacity:1;overflow:hidden;padding:var(--el-alert-padding);position:relative;transition:opacity var(--el-transition-duration-fast);width:100%}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--primary{--el-alert-bg-color:var(--el-color-primary-light-9)}.el-alert--primary.is-light{background-color:var(--el-alert-bg-color)}.el-alert--primary.is-light,.el-alert--primary.is-light .el-alert__description{color:var(--el-color-primary)}.el-alert--primary.is-dark{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color)}.el-alert--success.is-light,.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color)}.el-alert--info.is-light,.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color)}.el-alert--warning.is-light,.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color)}.el-alert--error.is-light,.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{display:flex;flex-direction:column;gap:4px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);margin-right:8px;width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);margin-right:12px;width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:24px}.el-alert__title.with-description{font-size:var(--el-alert-title-with-description-font-size)}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:0}.el-alert .el-alert__close-btn{cursor:pointer;font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;right:16px;top:12px}.el-alert .el-alert__close-btn.is-customed{font-size:var(--el-alert-close-customed-font-size);font-style:normal;line-height:24px;top:8px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{box-sizing:border-box;flex-shrink:0;overflow:auto;width:var(--el-aside-width,300px)}.el-autocomplete{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;position:relative;width:var(--el-input-width)}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__header{border-bottom:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__footer{border-top:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);line-height:34px;list-style:none;margin:0;overflow:hidden;padding:0 20px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.el-autocomplete-suggestion li:hover{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{border-top:1px solid var(--el-color-black);margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{align-items:center;color:var(--el-text-color-secondary);cursor:default;display:flex;font-size:20px;height:100px;justify-content:center}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size-small:24px;--el-avatar-size:40px;align-items:center;background:var(--el-avatar-bg-color);box-sizing:border-box;color:var(--el-avatar-text-color);display:inline-flex;font-size:var(--el-avatar-text-size);height:var(--el-avatar-size);justify-content:center;outline:none;overflow:hidden;text-align:center;width:var(--el-avatar-size)}.el-avatar>img{display:block;height:100%;width:100%}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);align-items:center;background-color:var(--el-backtop-bg-color);border-radius:50%;box-shadow:var(--el-box-shadow-lighter);color:var(--el-backtop-text-color);cursor:pointer;display:flex;font-size:20px;height:40px;justify-content:center;position:fixed;width:40px;z-index:5}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;display:inline-block;position:relative;vertical-align:middle;width:-moz-fit-content;width:fit-content}.el-badge__content{align-items:center;background-color:var(--el-badge-bg-color);border:1px solid var(--el-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;font-size:var(--el-badge-font-size);height:var(--el-badge-size);justify-content:center;padding:0 var(--el-badge-padding);white-space:nowrap}.el-badge__content.is-fixed{position:absolute;right:calc(1px + var(--el-badge-size)/2);top:0;transform:translateY(-50%) translateX(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;height:8px;padding:0;right:0;width:8px}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{content:"";display:table}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);font-weight:bold;margin:0 9px}.el-breadcrumb__separator.el-icon{font-weight:normal;margin:0 6px}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{align-items:center;display:inline-flex;float:left}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{color:var(--el-text-color-primary);font-weight:bold;text-decoration:none;transition:var(--el-transition-color)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{color:var(--el-text-color-regular);cursor:text;font-weight:normal}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{content:"";display:table}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.el-button-group>.el-button:last-child{border-bottom-left-radius:0;border-top-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-bottom-left-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:rgba(255,255,255,0.5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);align-items:center;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);box-sizing:border-box;color:var(--el-button-text-color);cursor:pointer;display:inline-flex;font-weight:var(--el-button-font-weight);height:32px;justify-content:center;line-height:1;outline:none;text-align:center;transition:.1s;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-button:hover{background-color:var(--el-button-hover-bg-color);border-color:var(--el-button-hover-border-color);color:var(--el-button-hover-text-color);outline:none}.el-button:active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base)}.el-button,.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{background-color:var(--el-button-active-bg-color);border-color:var(--el-button-active-border-color);color:var(--el-button-active-text-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{background-color:var(--el-button-disabled-bg-color);background-image:none;border-color:var(--el-button-disabled-border-color);color:var(--el-button-disabled-text-color);cursor:not-allowed}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{background-color:var(--el-mask-color-extra-light);border-radius:inherit;bottom:-1px;content:"";left:-1px;pointer-events:none;position:absolute;right:-1px;top:-1px;z-index:1}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{border-radius:50%;padding:8px;width:32px}.el-button.is-text{background-color:transparent;border:0 solid transparent;color:var(--el-button-text-color)}.el-button.is-text.is-disabled{background-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset 0s,outline 0s}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{background:transparent;border-color:transparent;color:var(--el-button-text-color);height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button.is-link:not(.is-disabled):hover{background-color:transparent;border-color:transparent}.el-button.is-link:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-button-active-color)}.el-button--text{background:transparent;border-color:transparent;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{background-color:transparent!important;border-color:transparent!important;color:var(--el-button-disabled-text-color)}.el-button--text:not(.is-disabled):hover{background-color:transparent;border-color:transparent;color:var(--el-color-primary-light-3)}.el-button--text:not(.is-disabled):active{background-color:transparent;border-color:transparent;color:var(--el-color-primary-dark-2)}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-link,.el-button--primary.is-plain,.el-button--primary.is-text{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8);color:var(--el-color-primary-light-5)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-link,.el-button--success.is-plain,.el-button--success.is-text{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8);color:var(--el-color-success-light-5)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-link,.el-button--warning.is-plain,.el-button--warning.is-text{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8);color:var(--el-color-warning-light-5)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-link,.el-button--danger.is-plain,.el-button--danger.is-text{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8);color:var(--el-color-danger-light-5)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-link,.el-button--info.is-plain,.el-button--info.is-text{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8);color:var(--el-color-info-light-5)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{border-radius:var(--el-border-radius-base);font-size:var(--el-font-size-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{padding:12px;width:var(--el-button-size)}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:12px;padding:5px 11px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{padding:5px;width:var(--el-button-size)}.el-calendar{--el-calendar-border:var(--el-table-border,1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{border-bottom:var(--el-calendar-header-border-bottom);display:flex;justify-content:space-between;padding:12px 20px}.el-calendar__title{align-self:center;color:var(--el-text-color)}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:var(--el-text-color-regular);font-weight:normal;padding:12px 0}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);transition:background-color var(--el-transition-duration-fast) ease;vertical-align:top}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:var(--el-calendar-cell-width);padding:8px}.el-calendar-table .el-calendar-day:hover{background-color:var(--el-calendar-selected-bg-color);cursor:pointer}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);background-color:var(--el-card-bg-color);border:1px solid var(--el-card-border-color);border-radius:var(--el-card-border-radius);color:var(--el-text-color-primary);overflow:hidden;transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{box-shadow:var(--el-box-shadow-light)}.el-card__header{border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-card__body{padding:var(--el-card-padding)}.el-card__footer{border-top:1px solid var(--el-card-border-color);box-sizing:border-box;padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding)}.el-carousel__item{display:inline-block;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%}.el-carousel__item,.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item--card,.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__item--card-vertical{height:50%;width:100%}.el-carousel__mask{background-color:var(--el-color-white);height:100%;left:0;opacity:.24;position:absolute;top:0;transition:var(--el-transition-duration-fast);width:100%}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31,45,61,0.11);--el-carousel-arrow-hover-background:rgba(31,45,61,0.23);--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal,.el-carousel--vertical{overflow:hidden}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{align-items:center;background-color:var(--el-carousel-arrow-background);border:none;border-radius:50%;color:#ffffff;cursor:pointer;display:inline-flex;font-size:var(--el-carousel-arrow-font-size);height:var(--el-carousel-arrow-size);justify-content:center;margin:0;outline:none;padding:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);transition:var(--el-transition-duration);width:var(--el-carousel-arrow-size);z-index:10}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{list-style:none;margin:0;padding:0;position:absolute;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical)*2);position:static;text-align:center;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--right{right:0}.el-carousel__indicators--labels{left:0;right:0;text-align:center;transform:none}.el-carousel__indicators--labels .el-carousel__button{color:#000000;font-size:12px;height:auto;padding:2px 18px;width:auto}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{height:calc(var(--el-carousel-indicator-width)/2);width:var(--el-carousel-indicator-height)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{background-color:#ffffff;border:none;cursor:pointer;display:block;height:var(--el-carousel-indicator-height);margin:0;opacity:.48;outline:none;padding:0;transition:var(--el-transition-duration);width:var(--el-carousel-indicator-width)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%) translateX(-10px)}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%) translateX(10px)}.el-transitioning{filter:url(#elCarouselHorizontal)}.el-transitioning-vertical{filter:url(#elCarouselVertical)}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);display:flex;font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{border-right:var(--el-cascader-menu-border);box-sizing:border-box;color:var(--el-cascader-menu-text-color);min-width:180px}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;list-style:none;margin:0;min-height:100%;padding:6px 0;position:relative}.el-cascader-menu__hover-zone{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%}.el-cascader-menu__empty-text{align-items:center;color:var(--el-cascader-color-empty);display:flex;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{align-items:center;display:flex;height:34px;line-height:34px;outline:none;padding:0 30px 0 20px;position:relative}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:var(--el-cascader-menu-selected-text-color);font-weight:bold}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{left:10px;position:absolute}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{flex:1;overflow:hidden;padding:0 8px;text-align:left;text-overflow:ellipsis;white-space:nowrap}.el-cascader-node>.el-checkbox{margin-right:0}.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);display:inline-block;font-size:var(--el-font-size-base);line-height:32px;outline:none;position:relative;vertical-align:middle}.el-cascader:not(.is-disabled):hover .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset;cursor:pointer}.el-cascader .el-input{cursor:pointer;display:flex}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:-moz-read-only{cursor:pointer}.el-cascader .el-input .el-input__inner:read-only{cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{font-size:14px;transition:transform var(--el-transition-duration)}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--large .el-cascader__tags{gap:6px;padding:8px}.el-cascader--large .el-cascader__search-input{height:24px;margin-left:7px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader--small .el-cascader__tags{gap:4px;padding:2px}.el-cascader--small .el-cascader__search-input{height:20px;margin-left:5px}.el-cascader.is-disabled .el-cascader__label{color:var(--el-disabled-text-color);z-index:calc(var(--el-index-normal) + 1)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-cascader__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-cascader__tags{box-sizing:border-box;display:flex;flex-wrap:wrap;gap:6px;left:0;line-height:normal;padding:4px;position:absolute;right:30px;text-align:left;top:50%;transform:translateY(-50%)}.el-cascader__tags .el-tag{align-items:center;background:var(--el-cascader-tag-background);display:inline-flex;max-width:100%;text-overflow:ellipsis}.el-cascader__tags .el-tag.el-tag--dark,.el-cascader__tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__tags .el-tag>span{flex:1;line-height:normal;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__tags .el-tag+input{margin-left:0}.el-cascader__tags.is-validate{right:55px}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{align-items:center;background:var(--el-fill-color);display:inline-flex;max-width:100%;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag.el-tag--dark,.el-cascader__collapse-tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__collapse-tags .el-tag>span{flex:1;line-height:normal;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags .el-tag+input{margin-left:0}.el-cascader__collapse-tags .el-tag{margin:2px 0}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{color:var(--el-cascader-menu-text-color);font-size:var(--el-font-size-base);margin:0;max-height:204px;padding:6px 0;text-align:center}.el-cascader__suggestion-item{align-items:center;cursor:pointer;display:flex;height:34px;justify-content:space-between;outline:none;padding:0 15px;text-align:left}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:bold}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{color:var(--el-cascader-color-empty);margin:10px 0}.el-cascader__search-input{background:transparent;border:none;box-sizing:border-box;color:var(--el-cascader-menu-text-color);flex:1;height:24px;margin-left:7px;min-width:60px;outline:none;padding:0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:bold;line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all)}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--primary.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.el-check-tag--primary.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-check-tag.el-check-tag--primary.is-checked.is-disabled{background-color:var(--el-color-primary-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-checked.is-disabled:hover{background-color:var(--el-color-primary-light-8)}.el-check-tag.el-check-tag--primary.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-check-tag.el-check-tag--success.is-checked{background-color:var(--el-color-success-light-8);color:var(--el-color-success)}.el-check-tag.el-check-tag--success.is-checked:hover{background-color:var(--el-color-success-light-7)}.el-check-tag.el-check-tag--success.is-checked.is-disabled{background-color:var(--el-color-success-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-checked.is-disabled:hover{background-color:var(--el-color-success-light-8)}.el-check-tag.el-check-tag--success.is-disabled{background-color:var(--el-color-success-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-disabled:hover{background-color:var(--el-color-success-light-9)}.el-check-tag.el-check-tag--warning.is-checked{background-color:var(--el-color-warning-light-8);color:var(--el-color-warning)}.el-check-tag.el-check-tag--warning.is-checked:hover{background-color:var(--el-color-warning-light-7)}.el-check-tag.el-check-tag--warning.is-checked.is-disabled{background-color:var(--el-color-warning-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-checked.is-disabled:hover{background-color:var(--el-color-warning-light-8)}.el-check-tag.el-check-tag--warning.is-disabled{background-color:var(--el-color-warning-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-disabled:hover{background-color:var(--el-color-warning-light-9)}.el-check-tag.el-check-tag--danger.is-checked{background-color:var(--el-color-danger-light-8);color:var(--el-color-danger)}.el-check-tag.el-check-tag--danger.is-checked:hover{background-color:var(--el-color-danger-light-7)}.el-check-tag.el-check-tag--danger.is-checked.is-disabled{background-color:var(--el-color-danger-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-checked.is-disabled:hover{background-color:var(--el-color-danger-light-8)}.el-check-tag.el-check-tag--danger.is-disabled{background-color:var(--el-color-danger-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-disabled:hover{background-color:var(--el-color-danger-light-9)}.el-check-tag.el-check-tag--error.is-checked{background-color:var(--el-color-error-light-8);color:var(--el-color-error)}.el-check-tag.el-check-tag--error.is-checked:hover{background-color:var(--el-color-error-light-7)}.el-check-tag.el-check-tag--error.is-checked.is-disabled{background-color:var(--el-color-error-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-checked.is-disabled:hover{background-color:var(--el-color-error-light-8)}.el-check-tag.el-check-tag--error.is-disabled{background-color:var(--el-color-error-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-disabled:hover{background-color:var(--el-color-error-light-9)}.el-check-tag.el-check-tag--info.is-checked{background-color:var(--el-color-info-light-8);color:var(--el-color-info)}.el-check-tag.el-check-tag--info.is-checked:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--info.is-checked.is-disabled{background-color:var(--el-color-info-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-checked.is-disabled:hover{background-color:var(--el-color-info-light-8)}.el-check-tag.el-check-tag--info.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary);display:inline-block;position:relative}.el-checkbox-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left-color:transparent;border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;display:inline-block;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);line-height:1;margin:0;outline:none;padding:8px 15px;position:relative;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{margin:0;opacity:0;outline:none;position:absolute;z-index:-1}.el-checkbox-button.is-checked .el-checkbox-button__inner{background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7);color:var(--el-checkbox-button-checked-text-color)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button:first-child .el-checkbox-button__inner{border-bottom-left-radius:var(--el-border-radius-base);border-left:var(--el-border);border-top-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-bottom-right-radius:var(--el-border-radius-base);border-top-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-checkbox-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-checkbox-font-weight);height:var(--el-checkbox-height,32px);margin-right:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox input:focus-visible+.el-checkbox__inner{border-radius:var(--el-checkbox-border-radius);outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px}.el-checkbox__input{cursor:pointer;display:inline-flex;outline:none;position:relative;white-space:nowrap}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-icon-color);cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%) rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-checked-icon-color);content:"";display:block;height:2px;left:0;position:absolute;right:0;top:5px;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{background-color:var(--el-checkbox-bg-color);border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;display:inline-block;height:var(--el-checkbox-input-height);position:relative;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);width:var(--el-checkbox-input-width);z-index:var(--el-index-normal)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{border:1px solid transparent;border-left:0;border-top:0;box-sizing:content-box;content:"";height:7px;left:50%;position:absolute;top:50%;transform:translate(-45%,-60%) rotate(45deg) scaleY(0);transform-origin:center;transition:transform .15s ease-in .05s;width:3px}.el-checkbox__original{height:0;margin:0;opacity:0;outline:none;position:absolute;width:0;z-index:-1}.el-checkbox__label{display:inline-block;font-size:var(--el-checkbox-font-size);line-height:1;padding-left:8px}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{height:14px;width:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox:last-of-type{margin-right:0}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{display:block;min-height:1px}.el-col-0{flex:0 0 0%;max-width:0}.el-col-0,.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0}.el-col-pull-0{position:relative;right:0}.el-col-push-0{left:0;position:relative}.el-col-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-1,.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{left:4.1666666667%;position:relative}.el-col-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-2,.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{left:8.3333333333%;position:relative}.el-col-3{flex:0 0 12.5%;max-width:12.5%}.el-col-3,.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{left:12.5%;position:relative}.el-col-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-4,.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{left:16.6666666667%;position:relative}.el-col-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-5,.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{left:20.8333333333%;position:relative}.el-col-6{flex:0 0 25%;max-width:25%}.el-col-6,.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{left:25%;position:relative}.el-col-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-7,.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{left:29.1666666667%;position:relative}.el-col-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-8,.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{left:33.3333333333%;position:relative}.el-col-9{flex:0 0 37.5%;max-width:37.5%}.el-col-9,.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{left:37.5%;position:relative}.el-col-10{flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-10,.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{left:41.6666666667%;position:relative}.el-col-11{flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-11,.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{left:45.8333333333%;position:relative}.el-col-12{flex:0 0 50%;max-width:50%}.el-col-12,.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%;position:relative}.el-col-13{flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-13,.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{left:54.1666666667%;position:relative}.el-col-14{flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-14,.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{left:58.3333333333%;position:relative}.el-col-15{flex:0 0 62.5%;max-width:62.5%}.el-col-15,.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{left:62.5%;position:relative}.el-col-16{flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-16,.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{left:66.6666666667%;position:relative}.el-col-17{flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-17,.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{left:70.8333333333%;position:relative}.el-col-18{flex:0 0 75%;max-width:75%}.el-col-18,.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{left:75%;position:relative}.el-col-19{flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-19,.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{left:79.1666666667%;position:relative}.el-col-20{flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-20,.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{left:83.3333333333%;position:relative}.el-col-21{flex:0 0 87.5%;max-width:87.5%}.el-col-21,.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{left:87.5%;position:relative}.el-col-22{flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-22,.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{left:91.6666666667%;position:relative}.el-col-23{flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-23,.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{left:95.8333333333%;position:relative}.el-col-24{flex:0 0 100%;max-width:100%}.el-col-24,.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{left:100%;position:relative}@media only screen and (max-width:767px){.el-col-xs-0{display:none;flex:0 0 0%;max-width:0}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{left:0;position:relative}.el-col-xs-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xs-1,.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{left:4.1666666667%;position:relative}.el-col-xs-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xs-2,.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{left:8.3333333333%;position:relative}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xs-3,.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{left:12.5%;position:relative}.el-col-xs-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xs-4,.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{left:16.6666666667%;position:relative}.el-col-xs-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xs-5,.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{left:20.8333333333%;position:relative}.el-col-xs-6{flex:0 0 25%;max-width:25%}.el-col-xs-6,.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{left:25%;position:relative}.el-col-xs-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xs-7,.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{left:29.1666666667%;position:relative}.el-col-xs-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xs-8,.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{left:33.3333333333%;position:relative}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xs-9,.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{left:37.5%;position:relative}.el-col-xs-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{left:41.6666666667%;position:relative}.el-col-xs-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{left:45.8333333333%;position:relative}.el-col-xs-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{left:50%;position:relative}.el-col-xs-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{left:54.1666666667%;position:relative}.el-col-xs-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{left:58.3333333333%;position:relative}.el-col-xs-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{left:62.5%;position:relative}.el-col-xs-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{left:66.6666666667%;position:relative}.el-col-xs-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{left:70.8333333333%;position:relative}.el-col-xs-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{left:75%;position:relative}.el-col-xs-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{left:79.1666666667%;position:relative}.el-col-xs-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{left:83.3333333333%;position:relative}.el-col-xs-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{left:87.5%;position:relative}.el-col-xs-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{left:91.6666666667%;position:relative}.el-col-xs-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{left:95.8333333333%;position:relative}.el-col-xs-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{left:100%;position:relative}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;flex:0 0 0%;max-width:0}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{left:0;position:relative}.el-col-sm-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-sm-1,.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{left:4.1666666667%;position:relative}.el-col-sm-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-sm-2,.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{left:8.3333333333%;position:relative}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%}.el-col-sm-3,.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{left:12.5%;position:relative}.el-col-sm-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-sm-4,.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{left:16.6666666667%;position:relative}.el-col-sm-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-sm-5,.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{left:20.8333333333%;position:relative}.el-col-sm-6{flex:0 0 25%;max-width:25%}.el-col-sm-6,.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{left:25%;position:relative}.el-col-sm-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-sm-7,.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{left:29.1666666667%;position:relative}.el-col-sm-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-sm-8,.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{left:33.3333333333%;position:relative}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%}.el-col-sm-9,.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{left:37.5%;position:relative}.el-col-sm-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{left:41.6666666667%;position:relative}.el-col-sm-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{left:45.8333333333%;position:relative}.el-col-sm-12{display:block;flex:0 0 50%;max-width:50%}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{left:50%;position:relative}.el-col-sm-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{left:54.1666666667%;position:relative}.el-col-sm-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{left:58.3333333333%;position:relative}.el-col-sm-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{left:62.5%;position:relative}.el-col-sm-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{left:66.6666666667%;position:relative}.el-col-sm-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{left:70.8333333333%;position:relative}.el-col-sm-18{display:block;flex:0 0 75%;max-width:75%}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{left:75%;position:relative}.el-col-sm-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{left:79.1666666667%;position:relative}.el-col-sm-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{left:83.3333333333%;position:relative}.el-col-sm-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{left:87.5%;position:relative}.el-col-sm-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{left:91.6666666667%;position:relative}.el-col-sm-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{left:95.8333333333%;position:relative}.el-col-sm-24{display:block;flex:0 0 100%;max-width:100%}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{left:100%;position:relative}}@media only screen and (min-width:992px){.el-col-md-0{display:none;flex:0 0 0%;max-width:0}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{left:0;position:relative}.el-col-md-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-md-1,.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{left:4.1666666667%;position:relative}.el-col-md-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-md-2,.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{left:8.3333333333%;position:relative}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%}.el-col-md-3,.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{left:12.5%;position:relative}.el-col-md-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-md-4,.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{left:16.6666666667%;position:relative}.el-col-md-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-md-5,.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{left:20.8333333333%;position:relative}.el-col-md-6{flex:0 0 25%;max-width:25%}.el-col-md-6,.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{left:25%;position:relative}.el-col-md-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-md-7,.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{left:29.1666666667%;position:relative}.el-col-md-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-md-8,.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{left:33.3333333333%;position:relative}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%}.el-col-md-9,.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{left:37.5%;position:relative}.el-col-md-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{left:41.6666666667%;position:relative}.el-col-md-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{left:45.8333333333%;position:relative}.el-col-md-12{display:block;flex:0 0 50%;max-width:50%}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{left:50%;position:relative}.el-col-md-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{left:54.1666666667%;position:relative}.el-col-md-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{left:58.3333333333%;position:relative}.el-col-md-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{left:62.5%;position:relative}.el-col-md-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{left:66.6666666667%;position:relative}.el-col-md-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{left:70.8333333333%;position:relative}.el-col-md-18{display:block;flex:0 0 75%;max-width:75%}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{left:75%;position:relative}.el-col-md-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{left:79.1666666667%;position:relative}.el-col-md-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{left:83.3333333333%;position:relative}.el-col-md-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{left:87.5%;position:relative}.el-col-md-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{left:91.6666666667%;position:relative}.el-col-md-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{left:95.8333333333%;position:relative}.el-col-md-24{display:block;flex:0 0 100%;max-width:100%}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{left:100%;position:relative}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;flex:0 0 0%;max-width:0}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{left:0;position:relative}.el-col-lg-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-lg-1,.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{left:4.1666666667%;position:relative}.el-col-lg-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-lg-2,.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{left:8.3333333333%;position:relative}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%}.el-col-lg-3,.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{left:12.5%;position:relative}.el-col-lg-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-lg-4,.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{left:16.6666666667%;position:relative}.el-col-lg-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-lg-5,.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{left:20.8333333333%;position:relative}.el-col-lg-6{flex:0 0 25%;max-width:25%}.el-col-lg-6,.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{left:25%;position:relative}.el-col-lg-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-lg-7,.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{left:29.1666666667%;position:relative}.el-col-lg-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-lg-8,.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{left:33.3333333333%;position:relative}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%}.el-col-lg-9,.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{left:37.5%;position:relative}.el-col-lg-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{left:41.6666666667%;position:relative}.el-col-lg-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{left:45.8333333333%;position:relative}.el-col-lg-12{display:block;flex:0 0 50%;max-width:50%}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{left:50%;position:relative}.el-col-lg-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{left:54.1666666667%;position:relative}.el-col-lg-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{left:58.3333333333%;position:relative}.el-col-lg-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{left:62.5%;position:relative}.el-col-lg-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{left:66.6666666667%;position:relative}.el-col-lg-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{left:70.8333333333%;position:relative}.el-col-lg-18{display:block;flex:0 0 75%;max-width:75%}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{left:75%;position:relative}.el-col-lg-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{left:79.1666666667%;position:relative}.el-col-lg-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{left:83.3333333333%;position:relative}.el-col-lg-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{left:87.5%;position:relative}.el-col-lg-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{left:91.6666666667%;position:relative}.el-col-lg-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{left:95.8333333333%;position:relative}.el-col-lg-24{display:block;flex:0 0 100%;max-width:100%}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{left:100%;position:relative}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;flex:0 0 0%;max-width:0}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{left:0;position:relative}.el-col-xl-1{flex:0 0 4.1666666667%;max-width:4.1666666667%}.el-col-xl-1,.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{left:4.1666666667%;position:relative}.el-col-xl-2{flex:0 0 8.3333333333%;max-width:8.3333333333%}.el-col-xl-2,.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{left:8.3333333333%;position:relative}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%}.el-col-xl-3,.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{left:12.5%;position:relative}.el-col-xl-4{flex:0 0 16.6666666667%;max-width:16.6666666667%}.el-col-xl-4,.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{left:16.6666666667%;position:relative}.el-col-xl-5{flex:0 0 20.8333333333%;max-width:20.8333333333%}.el-col-xl-5,.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{left:20.8333333333%;position:relative}.el-col-xl-6{flex:0 0 25%;max-width:25%}.el-col-xl-6,.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{left:25%;position:relative}.el-col-xl-7{flex:0 0 29.1666666667%;max-width:29.1666666667%}.el-col-xl-7,.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{left:29.1666666667%;position:relative}.el-col-xl-8{flex:0 0 33.3333333333%;max-width:33.3333333333%}.el-col-xl-8,.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{left:33.3333333333%;position:relative}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%}.el-col-xl-9,.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{left:37.5%;position:relative}.el-col-xl-10{display:block;flex:0 0 41.6666666667%;max-width:41.6666666667%}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{left:41.6666666667%;position:relative}.el-col-xl-11{display:block;flex:0 0 45.8333333333%;max-width:45.8333333333%}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{left:45.8333333333%;position:relative}.el-col-xl-12{display:block;flex:0 0 50%;max-width:50%}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{left:50%;position:relative}.el-col-xl-13{display:block;flex:0 0 54.1666666667%;max-width:54.1666666667%}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{left:54.1666666667%;position:relative}.el-col-xl-14{display:block;flex:0 0 58.3333333333%;max-width:58.3333333333%}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{left:58.3333333333%;position:relative}.el-col-xl-15{display:block;flex:0 0 62.5%;max-width:62.5%}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{left:62.5%;position:relative}.el-col-xl-16{display:block;flex:0 0 66.6666666667%;max-width:66.6666666667%}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{left:66.6666666667%;position:relative}.el-col-xl-17{display:block;flex:0 0 70.8333333333%;max-width:70.8333333333%}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{left:70.8333333333%;position:relative}.el-col-xl-18{display:block;flex:0 0 75%;max-width:75%}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{left:75%;position:relative}.el-col-xl-19{display:block;flex:0 0 79.1666666667%;max-width:79.1666666667%}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{left:79.1666666667%;position:relative}.el-col-xl-20{display:block;flex:0 0 83.3333333333%;max-width:83.3333333333%}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{left:83.3333333333%;position:relative}.el-col-xl-21{display:block;flex:0 0 87.5%;max-width:87.5%}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{left:87.5%;position:relative}.el-col-xl-22{display:block;flex:0 0 91.6666666667%;max-width:91.6666666667%}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{left:91.6666666667%;position:relative}.el-col-xl-23{display:block;flex:0 0 95.8333333333%;max-width:95.8333333333%}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{left:95.8333333333%;position:relative}.el-col-xl-24{display:block;flex:0 0 100%;max-width:100%}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{left:100%;position:relative}}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-bottom:1px solid var(--el-collapse-border-color);border-top:1px solid var(--el-collapse-border-color)}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{align-items:center;background-color:var(--el-collapse-header-bg-color);border:none;border-bottom:1px solid var(--el-collapse-border-color);color:var(--el-collapse-header-text-color);cursor:pointer;display:flex;font-size:var(--el-collapse-header-font-size);font-weight:500;line-height:var(--el-collapse-header-height);min-height:var(--el-collapse-header-height);outline:none;padding:0;transition:border-bottom-color var(--el-transition-duration);width:100%}.el-collapse-item__arrow{font-weight:300;transition:transform var(--el-transition-duration)}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__title{flex:auto;text-align:left}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{background-color:var(--el-collapse-content-bg-color);border-bottom:1px solid var(--el-collapse-border-color);box-sizing:border-box;overflow:hidden;will-change:height}.el-collapse-item__content{color:var(--el-collapse-content-text-color);font-size:var(--el-collapse-content-font-size);line-height:1.7692307692;padding-bottom:25px}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse-icon-position-left .el-collapse-item__header{gap:8px}.el-collapse-icon-position-left .el-collapse-item__title{order:1}.el-collapse-icon-position-right .el-collapse-item__header{padding-right:8px}.el-color-picker-panel{background:var(--el-bg-color-overlay);box-sizing:content-box;padding:12px;width:300px}.el-color-picker-panel.is-border{border:1px solid var(--el-border-color-lighter);border-radius:4px}.el-color-picker-panel__wrapper{margin-bottom:6px}.el-color-picker-panel__footer{display:flex;justify-content:space-between;margin-top:12px;text-align:right}.el-color-picker-panel__footer .el-input{color:#000000;font-size:12px;line-height:26px;width:160px}.el-color-picker-panel.is-disabled .el-color-hue-slider,.el-color-picker-panel.is-disabled .el-color-svpanel{cursor:not-allowed;opacity:.3}.el-color-picker-panel.is-disabled .el-color-hue-slider__thumb{cursor:not-allowed}.el-color-picker-panel.is-disabled .el-color-alpha-slider,.el-color-picker-panel.is-disabled .el-color-predefine .el-color-predefine__color-selector{cursor:not-allowed;opacity:.3}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap;gap:8px}.el-color-predefine__color-selector{border:none;border-radius:var(--el-border-radius-base);cursor:pointer;height:20px;outline:none;overflow:hidden;padding:0;width:20px}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-color-predefine__color-selector>div{display:flex;height:100%}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{background-color:#f00;box-sizing:border-box;float:right;height:12px;padding:0 2px;position:relative;width:280px}.el-color-hue-slider__bar{background:linear-gradient(90deg,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00);height:100%;position:relative}.el-color-hue-slider__thumb{background:#fff;border:1px solid var(--el-border-color-lighter);border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-hue-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-hue-slider.is-vertical{height:180px;padding:2px 0;width:12px}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(180deg,#f00 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,#f00)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-svpanel{background-image:linear-gradient(0deg,#000,rgba(0,0,0,0)),linear-gradient(90deg,#fff,rgba(255,255,255,0));height:180px;position:relative;width:280px}.el-color-svpanel__cursor{border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);cursor:pointer;height:4px;position:absolute;transform:translate(-2px,-2px);width:4px}.el-color-svpanel__cursor:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-color-alpha-slider{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px;box-sizing:border-box;height:12px;position:relative;width:280px}.el-color-alpha-slider.is-disabled .el-color-alpha-slider__thumb{cursor:not-allowed}.el-color-alpha-slider__bar{background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%;position:relative}.el-color-alpha-slider__thumb{background:#fff;border:1px solid var(--el-border-color-lighter);border-radius:1px;box-shadow:0 0 2px rgba(0,0,0,.6);box-sizing:border-box;cursor:pointer;height:100%;left:0;position:absolute;top:0;width:4px;z-index:1}.el-color-alpha-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-alpha-slider.is-vertical{height:180px;width:20px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(180deg,rgba(255,255,255,0) 0,rgb(255,255,255))}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{height:4px;left:0;top:0;width:100%}.el-color-picker-panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker-panel{--el-color-picker-alpha-bg-a:#333333}.el-color-picker{display:inline-block;height:32px;line-height:normal;outline:none;position:relative;width:32px}.el-color-picker:hover:not(.is-disabled,.is-focused) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{background-color:var(--el-fill-color-light);cursor:not-allowed}.el-color-picker.is-disabled .el-color-picker__color{opacity:.3}.el-color-picker--large{height:40px;width:40px}.el-color-picker--small{height:24px;width:24px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__trigger{align-items:center;border:1px solid var(--el-border-color);border-radius:4px;cursor:pointer;display:inline-flex;font-size:0;justify-content:center;padding:4px}.el-color-picker__color,.el-color-picker__trigger{box-sizing:border-box;height:100%;position:relative;width:100%}.el-color-picker__color{border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);display:block;text-align:center}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px}.el-color-picker__color-inner{align-items:center;display:inline-flex;height:100%;justify-content:center;width:100%}.el-color-picker .el-color-picker__empty{color:var(--el-text-color-secondary);font-size:12px}.el-color-picker .el-color-picker__icon{align-items:center;color:#ffffff;display:inline-flex;font-size:12px;justify-content:center}.el-color-picker__panel{background-color:#ffffff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333333}.el-container{box-sizing:border-box;display:flex;flex:1;flex-basis:auto;flex-direction:row;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;cursor:pointer;height:30px;padding:4px 0;position:relative;text-align:center;width:32px}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;display:block;height:24px;left:50%;line-height:24px;margin:0 auto;position:absolute;transform:translateX(-50%);width:24px}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:bold}.el-date-table td.today.end-date .el-date-table-cell__text,.el-date-table td.today.start-date .el-date-table-cell__text{color:#ffffff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#ffffff}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#ffffff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-bottom-left-radius:15px;border-top-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-bottom-right-radius:15px;border-top-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed;opacity:1}.el-date-table td.selected .el-date-table-cell{border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);border-radius:15px;color:#ffffff}.el-date-table td.week{color:var(--el-datepicker-off-text-color);cursor:default;font-size:80%}.el-date-table td:focus{outline:none}.el-date-table th{border-bottom:1px solid var(--el-border-color-lighter);color:var(--el-datepicker-header-text-color);font-weight:400;padding:5px}.el-date-table th.el-date-table__week-header{padding:0;width:24px}.el-month-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-month-table td{cursor:pointer;padding:8px 0;position:relative;text-align:center;width:68px}.el-month-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:bold}.el-month-table td.today.end-date .el-date-table-cell__text,.el-month-table td.today.start-date .el-date-table-cell__text{color:#ffffff}.el-month-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-month-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-month-table td .el-date-table-cell__text{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;left:50%;line-height:36px;margin:0 auto;position:absolute;transform:translateX(-50%);width:54px}.el-month-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date .el-date-table-cell,.el-month-table td.start-date .el-date-table-cell{color:#ffffff}.el-month-table td.end-date .el-date-table-cell__text,.el-month-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#ffffff}.el-month-table td.start-date .el-date-table-cell{border-bottom-left-radius:24px;border-top-left-radius:24px;margin-left:3px}.el-month-table td.end-date .el-date-table-cell{border-bottom-right-radius:24px;border-top-right-radius:24px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell{border-radius:24px;margin-left:3px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#ffffff}.el-month-table td:focus-visible{outline:none}.el-month-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-year-table{border-collapse:collapse;font-size:12px;margin:-1px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{cursor:pointer;padding:8px 0;position:relative;text-align:center;width:68px}.el-year-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-year-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:bold}.el-year-table td.today.end-date .el-date-table-cell__text,.el-year-table td.today.start-date .el-date-table-cell__text{color:#ffffff}.el-year-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);cursor:not-allowed}.el-year-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-year-table td .el-date-table-cell__text{border-radius:18px;color:var(--el-datepicker-text-color);display:block;height:36px;left:50%;line-height:36px;margin:0 auto;position:absolute;transform:translateX(-50%);width:60px}.el-year-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-year-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-year-table td.end-date .el-date-table-cell,.el-year-table td.start-date .el-date-table-cell{color:#ffffff}.el-year-table td.end-date .el-date-table-cell__text,.el-year-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#ffffff}.el-year-table td.start-date .el-date-table-cell{border-bottom-left-radius:24px;border-top-left-radius:24px}.el-year-table td.end-date .el-date-table-cell{border-bottom-right-radius:24px;border-top-right-radius:24px}.el-year-table td.current:not(.disabled) .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#ffffff}.el-year-table td:focus-visible{outline:none}.el-year-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{display:inline-block;max-height:192px;overflow:auto;position:relative;vertical-align:top;width:50%}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;overflow:hidden;text-align:center}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;height:30px;left:0;line-height:30px;position:absolute;text-align:center;width:100%;z-index:var(--el-index-normal)}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__list{list-style:none;margin:0}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;height:80px;width:100%}.el-time-spinner__item{color:var(--el-text-color-regular);font-size:12px;height:32px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:bold}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;position:relative;text-align:left;vertical-align:middle}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{height:var(--el-input-height,var(--el-component-size));width:var(--el-date-editor-width)}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .clear-icon,.el-date-editor .close-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__icon{color:var(--el-text-color-placeholder);float:left;font-size:14px;height:inherit}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:var(--el-text-color-regular);display:inline-block;font-size:var(--el-font-size-base);height:30px;line-height:30px;margin:0;outline:none;padding:0;text-align:center;width:39%}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{align-items:center;color:var(--el-text-color-primary);display:inline-flex;flex:1;font-size:14px;height:100%;justify-content:center;margin:0;overflow-wrap:break-word;padding:0 5px}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);cursor:pointer;font-size:14px;height:inherit;width:unset}.el-date-editor .el-range__close-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{align-items:center;display:inline-flex;padding:0 10px;vertical-align:middle}.el-range-editor.is-active{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{font-size:14px;height:38px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{font-size:12px;height:22px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{background:var(--el-bg-color-overlay);border-radius:var(--el-popper-border-radius,var(--el-border-radius-base));color:var(--el-text-color-regular);line-height:30px}.el-picker-panel .el-time-panel{background-color:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{clear:both;content:"";display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{background-color:var(--el-bg-color-overlay);border-top:1px solid var(--el-datepicker-inner-border-color);font-size:0;padding:4px 12px;position:relative;text-align:right}.el-picker-panel__shortcut{background-color:transparent;border:0;color:var(--el-datepicker-text-color);cursor:pointer;display:block;font-size:14px;line-height:28px;outline:none;padding-left:12px;text-align:left;width:100%}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{background-color:transparent;border:1px solid var(--el-fill-color-darker);border-radius:2px;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:24px;outline:none;padding:0 20px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{background:transparent;border:0;color:var(--el-datepicker-icon-color);cursor:pointer;font-size:12px;line-height:1;outline:none;padding:1px 6px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn.is-disabled .el-icon{cursor:inherit}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel.is-disabled .el-picker-panel__prev-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__prev-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__prev-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__next-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__next-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__next-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__icon-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__icon-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__icon-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__shortcut{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__shortcut:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__shortcut .el-icon{cursor:inherit}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);bottom:0;box-sizing:border-box;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-picker__header{padding:12px 12px 0;text-align:center}.el-date-picker__header--bordered{border-bottom:1px solid var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{color:var(--el-text-color-regular);cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{cursor:pointer;float:left;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.el-date-picker.is-disabled .el-date-picker__header-label{color:var(--el-text-color-disabled)}.el-date-picker.is-disabled .el-date-picker__header-label:hover{cursor:not-allowed}.el-date-picker.is-disabled .el-date-picker__header-label .el-icon{cursor:inherit}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{height:28px;position:relative;text-align:center}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__header-label{color:var(--el-text-color-regular);cursor:pointer;font-size:16px;font-weight:500;line-height:22px;padding:0 5px;text-align:center}.el-date-range-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-range-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-range-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-range-picker__content{box-sizing:border-box;display:table-cell;margin:0;padding:16px;width:50%}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;display:table;font-size:12px;padding:8px 5px 5px;position:relative;width:100%}.el-date-range-picker__time-header>.el-icon-arrow-right{color:var(--el-datepicker-icon-color);display:table-cell;font-size:20px;vertical-align:middle}.el-date-range-picker__time-picker-wrap{display:table-cell;padding:0 5px;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{background:#ffffff;position:absolute;right:0;top:13px;z-index:1}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-date-range-picker.is-disabled .el-date-range-picker__header-label{color:var(--el-text-color-disabled)}.el-date-range-picker.is-disabled .el-date-range-picker__header-label:hover{cursor:not-allowed}.el-date-range-picker.is-disabled .el-date-range-picker__header-label .el-icon{cursor:inherit}.el-time-range-picker{overflow:visible;width:354px}.el-time-range-picker__content{padding:10px;position:relative;text-align:center;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;display:inline-block;margin:0;padding:4px 7px 7px;width:50%}.el-time-range-picker__header{font-size:14px;margin-bottom:5px;text-align:center}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{border-radius:2px;box-sizing:content-box;left:0;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:180px;z-index:var(--el-index-top)}.el-time-panel__content{font-size:0;overflow:hidden;position:relative}.el-time-panel__content:after,.el-time-panel__content:before{box-sizing:border-box;content:"";height:32px;left:0;margin-top:-16px;padding-top:6px;position:absolute;right:0;text-align:left;top:50%;z-index:-1}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{border-bottom:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6666666667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));box-sizing:border-box;height:36px;line-height:25px;padding:4px;text-align:right}.el-time-panel__btn{background-color:transparent;border:none;color:var(--el-text-color-primary);cursor:pointer;font-size:12px;line-height:28px;margin:0 5px;outline:none;padding:0 5px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}.el-picker-panel.is-border{border:1px solid var(--el-border-color-lighter)}.el-picker-panel.is-border .el-picker-panel__body-wrapper{position:relative}.el-picker-panel.is-border.el-picker-panel [slot=sidebar],.el-picker-panel.is-border.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;height:100%;overflow:auto;padding-top:6px;position:absolute;top:0;width:110px}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;color:var(--el-text-color-primary);font-size:var(--el-font-size-base)}.el-descriptions__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:bold}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;font-size:14px;line-height:23px;text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{background:var(--el-descriptions-item-bordered-label-background);color:var(--el-text-color-regular);font-weight:bold}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:0.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{background:var(--el-popup-modal-bg-color);height:100%;left:0;opacity:var(--el-popup-modal-opacity);position:fixed;top:0;width:100%}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;margin:var(--el-dialog-margin-top,15vh) auto 50px;overflow-wrap:break-word;padding:var(--el-dialog-padding-primary);position:relative;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{bottom:0;left:0;margin:0;overflow:auto;position:fixed;right:0;top:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size, 16px))}.el-dialog__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:48px;outline:none;padding:0;position:absolute;right:0;top:0;width:48px}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{color:var(--el-text-color-primary);font-size:var(--el-dialog-title-font-size);line-height:var(--el-dialog-font-line-height)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{box-sizing:border-box;padding-top:var(--el-dialog-padding-primary);text-align:right}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{bottom:0;left:0;overflow:auto;position:fixed;right:0;top:0}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);display:block;height:1px;margin:24px 0;width:100%}.el-divider--vertical{border-left:1px var(--el-border-color) var(--el-border-style);display:inline-block;height:1em;margin:0 8px;position:relative;vertical-align:middle;width:1px}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);font-size:14px;font-weight:500;padding:0 20px;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-overlay.is-drawer{overflow:hidden}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color,var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary,20px);--el-drawer-dragger-size:8px;background-color:var(--el-drawer-bg-color);box-shadow:var(--el-box-shadow-dark);box-sizing:border-box;display:flex;flex-direction:column;position:absolute;transition:all var(--el-transition-duration)}.el-drawer .btt,.el-drawer .ltr,.el-drawer .rtl,.el-drawer .ttb{transform:translate(0)}.el-drawer__sr-focus:focus{outline:none!important}.el-drawer__header{align-items:center;color:var(--el-text-color-primary);display:flex;margin-bottom:32px;overflow:hidden;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{flex:1;font-size:16px;line-height:inherit;margin:0}.el-drawer__footer{overflow:hidden;padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{background-color:transparent;border:none;color:inherit;cursor:pointer;display:inline-flex;font-size:var(--el-font-size-extra-large);outline:none}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;overflow:auto;padding:var(--el-drawer-padding-primary)}.el-drawer__body>*{box-sizing:border-box}.el-drawer.is-dragging{transition:none}.el-drawer__dragger{background-color:transparent;position:absolute;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-drawer__dragger:before{background-color:transparent;content:"";position:absolute;transition:all .2s}.el-drawer__dragger:hover:before{background-color:var(--el-color-primary)}.el-drawer.ltr,.el-drawer.rtl{bottom:0;height:100%;top:0}.el-drawer.ltr>.el-drawer__dragger,.el-drawer.rtl>.el-drawer__dragger{bottom:0;cursor:ew-resize;height:100%;top:0;width:var(--el-drawer-dragger-size)}.el-drawer.ltr>.el-drawer__dragger:before,.el-drawer.rtl>.el-drawer__dragger:before{bottom:0;top:0;width:3px}.el-drawer.btt,.el-drawer.ttb{left:0;right:0;width:100%}.el-drawer.btt>.el-drawer__dragger,.el-drawer.ttb>.el-drawer__dragger{cursor:ns-resize;height:var(--el-drawer-dragger-size);left:0;right:0;width:100%}.el-drawer.btt>.el-drawer__dragger:before,.el-drawer.ttb>.el-drawer__dragger:before{height:3px;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.ltr>.el-drawer__dragger{right:0}.el-drawer.ltr>.el-drawer__dragger:before{right:-2px}.el-drawer.rtl{right:0}.el-drawer.rtl>.el-drawer__dragger{left:0}.el-drawer.rtl>.el-drawer__dragger:before{left:-2px}.el-drawer.ttb{top:0}.el-drawer.ttb>.el-drawer__dragger{bottom:0}.el-drawer.ttb>.el-drawer__dragger:before{bottom:-2px}.el-drawer.btt{bottom:0}.el-drawer.btt>.el-drawer__dragger{top:0}.el-drawer.btt>.el-drawer__dragger:before{top:-2px}.el-modal-drawer.is-penetrable{pointer-events:none}.el-modal-drawer.is-penetrable .el-drawer{pointer-events:auto}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{background-color:transparent!important}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translateX(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translateX(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);line-height:1;position:relative;vertical-align:top}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:0}.el-dropdown .el-dropdown__caret-button{align-items:center;border-left:none;display:inline-flex;justify-content:center;padding-left:0;padding-right:0;width:32px}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{background:var(--el-overlay-color-lighter);bottom:-1px;content:"";display:block;left:0;position:absolute;top:-1px;width:1px}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;left:0;list-style:none;margin:0;padding:5px 0;position:relative;top:0;z-index:var(--el-dropdown-menu-index)}.el-dropdown-menu__item{align-items:center;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:var(--el-font-size-base);line-height:22px;list-style:none;margin:0;outline:none;padding:5px 16px;white-space:nowrap}.el-dropdown-menu__item:not(.is-disabled):focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid var(--el-border-color-lighter);margin:6px 0}.el-dropdown-menu__item.is-disabled{color:var(--el-text-color-disabled);cursor:not-allowed}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{font-size:14px;line-height:22px;padding:7px 20px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{font-size:12px;line-height:20px;padding:2px 12px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-empty-padding);text-align:center}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{height:100%;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:top;width:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:100%;vertical-align:top;width:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;box-sizing:border-box;flex-shrink:0;height:var(--el-footer-height);padding:var(--el-footer-padding)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{display:inline-flex;margin-right:32px;vertical-align:middle}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{justify-content:flex-start;text-align:left}.el-form-item--label-right .el-form-item__label{justify-content:flex-end;text-align:right}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{display:block;height:auto;line-height:22px;margin-bottom:8px;text-align:left;width:-moz-fit-content;width:fit-content}.el-form-item__label-wrap{display:flex}.el-form-item__label{align-items:flex-start;box-sizing:border-box;color:var(--el-text-color-regular);display:inline-flex;flex:0 0 auto;font-size:var(--el-form-label-font-size);height:32px;line-height:32px;padding:0 12px 0 0}.el-form-item__content{align-items:center;display:flex;flex:1;flex-wrap:wrap;font-size:var(--font-size);line-height:32px;min-width:0;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;left:0;line-height:1;padding-top:2px;position:absolute;top:100%}.el-form-item__error--inline{display:inline-block;left:auto;margin-left:10px;position:relative;top:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before{color:var(--el-color-danger);content:"*";margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{color:var(--el-color-danger);content:"*";margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px transparent}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;box-sizing:border-box;flex-shrink:0;height:var(--el-header-height);padding:var(--el-header-padding)}.el-image-viewer__wrapper{bottom:0;left:0;position:fixed;right:0;top:0}.el-image-viewer__wrapper:focus{outline:none!important}.el-image-viewer__btn{align-items:center;border-radius:50%;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;opacity:.8;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}.el-image-viewer__btn .el-icon{cursor:pointer}.el-image-viewer__close{font-size:40px;height:40px;right:40px;top:40px;width:40px}.el-image-viewer__canvas{align-items:center;display:flex;height:100%;justify-content:center;position:static;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;bottom:30px;height:44px;left:50%;padding:0 23px;transform:translateX(-50%)}.el-image-viewer__actions__inner{align-items:center;color:#fff;cursor:default;display:flex;font-size:23px;gap:22px;height:100%;justify-content:space-around;padding:0 6px;width:100%}.el-image-viewer__actions__divider{margin:0 -6px}.el-image-viewer__progress{bottom:90px;color:#fff;cursor:default;left:50%;transform:translateX(-50%)}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;top:50%;transform:translateY(-50%);width:44px}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__close{background-color:var(--el-text-color-regular);border-color:#fff;color:#fff;font-size:24px;height:44px;width:44px}.el-image-viewer__mask{background:#000;height:100%;left:0;opacity:.5;position:absolute;top:0;width:100%}.el-image-viewer-parent--hidden{overflow:hidden}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translateZ(0)}to{opacity:0;transform:translate3d(0,-20px,0)}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{height:100%;width:100%}.el-image{display:inline-block;overflow:hidden;position:relative}.el-image__inner{opacity:1;vertical-align:top}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{left:0;position:absolute;top:0}.el-image__error,.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{align-items:center;color:var(--el-text-color-placeholder);display:flex;font-size:14px;justify-content:center;vertical-align:middle}.el-image__preview{cursor:pointer}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;display:inline-block;font-size:var(--el-font-size-base);position:relative;vertical-align:bottom;width:100%}.el-textarea__inner{-webkit-appearance:none;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;font-family:inherit;font-size:inherit;line-height:1.5;padding:5px 11px;position:relative;resize:vertical;transition:var(--el-transition-box-shadow);width:100%}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea .el-input__count{background:var(--el-fill-color-blank);bottom:5px;color:var(--el-color-info);font-size:12px;line-height:14px;position:absolute;right:10px}.el-textarea .el-input__count.is-outside{background:transparent;bottom:unset;line-height:1;padding-top:2px;position:absolute;right:0;top:100%}.el-textarea.is-disabled .el-textarea__inner{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);box-sizing:border-box;display:inline-flex;font-size:var(--el-font-size-base);line-height:var(--el-input-height);position:relative;vertical-align:middle;width:var(--el-input-width)}.el-input::-webkit-scrollbar{width:6px;z-index:11}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{align-items:center;color:var(--el-color-info);display:inline-flex;font-size:12px;height:100%}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);display:inline-block;line-height:normal;padding-left:8px}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;right:0;top:100%}.el-input .el-input__count.is-outside .el-input__count-inner{background:transparent;line-height:1;padding-left:0}.el-input__wrapper{align-items:center;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;cursor:text;display:inline-flex;flex-grow:1;justify-content:center;padding:1px 11px;transform:translateZ(0);transition:var(--el-transition-box-shadow)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px)}.el-input__inner{-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:var(--el-input-text-color,var(--el-text-color-regular));flex-grow:1;font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);outline:none;padding:0;width:100%}.el-input__inner:focus{outline:none}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__prefix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:inline-flex;flex-shrink:0;flex-wrap:nowrap;height:100%;line-height:var(--el-input-inner-height);pointer-events:none;text-align:center;transition:all var(--el-transition-duration);white-space:nowrap}.el-input__suffix-inner{align-items:center;display:inline-flex;justify-content:center;pointer-events:all}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{align-items:center;display:flex;height:inherit;justify-content:center;line-height:inherit;margin-left:8px;transition:all var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;cursor:not-allowed}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height, 40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{align-items:stretch;display:inline-flex;width:100%}.el-input-group__append,.el-input-group__prepend{align-items:center;background-color:var(--el-fill-color-light);border-radius:var(--el-input-border-radius);color:var(--el-color-info);display:inline-flex;justify-content:center;min-height:100%;padding:0 20px;position:relative;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;flex:1;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{background-color:transparent;border-color:transparent;color:inherit}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group__append{border-bottom-left-radius:0;border-left:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-group--prepend>.el-input__wrapper{border-bottom-left-radius:0;border-top-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{border-bottom-right-radius:0;border-top-right-radius:0;box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset}.el-input-group--append>.el-input__wrapper{border-bottom-right-radius:0;border-top-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{border-bottom-left-radius:0;border-top-left-radius:0;box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset}.el-input-hidden{display:none!important}.el-input-number{display:inline-flex;line-height:30px;position:relative;vertical-align:middle;width:150px}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;line-height:1;text-align:center}.el-input-number .el-input__inner::-webkit-inner-spin-button,.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__decrease,.el-input-number__increase{align-items:center;background:var(--el-fill-color-light);bottom:1px;color:var(--el-text-color-regular);cursor:pointer;display:flex;font-size:13px;height:auto;justify-content:center;position:absolute;top:1px;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:32px;z-index:1}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-left:var(--el-border);border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{line-height:38px;width:180px}.el-input-number--large .el-input-number__decrease,.el-input-number--large .el-input-number__increase{font-size:14px;width:40px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{line-height:22px;width:120px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{font-size:12px;width:24px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-bottom:var(--el-border);border-radius:0 var(--el-border-radius-base) 0 0;bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;border-right:none;left:auto;right:1px;top:auto}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.el-input-tag{--el-input-tag-border-color-hover:var(--el-border-color-hover);--el-input-tag-placeholder-color:var(--el-text-color-placeholder);--el-input-tag-disabled-color:var(--el-disabled-text-color);--el-input-tag-disabled-border:var(--el-disabled-border-color);--el-input-tag-font-size:var(--el-font-size-base);--el-input-tag-close-hover-color:var(--el-text-color-secondary);--el-input-tag-text-color:var(--el-text-color-regular);--el-input-tag-input-focus-border-color:var(--el-color-primary);--el-input-tag-width:100%;--el-input-tag-mini-height:var(--el-component-size);--el-input-tag-gap:6px;--el-input-tag-padding:4px;--el-input-tag-inner-padding:8px;--el-input-tag-line-height:24px;align-items:center;background-color:var(--el-fill-color-blank);border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;box-sizing:border-box;cursor:pointer;display:flex;font-size:var(--el-input-tag-font-size);line-height:var(--el-input-tag-line-height);min-height:var(--el-input-tag-mini-height);padding:var(--el-input-tag-padding);transform:translateZ(0);transition:var(--el-transition-duration);width:var(--el-input-tag-width)}.el-input-tag.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-tag.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-input-tag.is-disabled{background-color:var(--el-fill-color-light);box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset;cursor:not-allowed}.el-input-tag.is-disabled:hover{box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input-tag.is-disabled .el-input-tag__inner .el-input-tag__input,.el-input-tag.is-disabled .el-input-tag__inner .el-tag{cursor:not-allowed}.el-input-tag__prefix,.el-input-tag__suffix{align-items:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:flex;flex-shrink:0;padding:0 var(--el-input-tag-inner-padding)}.el-input-tag__suffix{gap:8px}.el-input-tag__input-tag-list{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:6px;min-width:0;position:relative}.el-input-tag__input-tag-list.is-near{margin-left:-8px}.el-input-tag__input-tag-list .el-tag{border-color:transparent;cursor:pointer}.el-input-tag__input-tag-list .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__input-tag-list .el-tag .el-tag__content{min-width:0}.el-input-tag__inner{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:var(--el-input-tag-gap);max-width:100%;min-width:0;position:relative}.el-input-tag__inner.is-left-space{margin-left:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-right-space{margin-right:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-draggable .el-tag{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-input-tag__drop-indicator{background-color:var(--el-color-primary);height:var(--el-input-tag-line-height);position:absolute;top:0;width:1px}.el-input-tag__inner .el-tag{border-color:transparent;cursor:pointer;max-width:100%}.el-input-tag__inner .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__inner .el-tag .el-tag__content{line-height:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-input-tag__input-wrapper{flex:1}.el-input-tag__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:var(--el-input-tag-text-color);font-family:inherit;font-size:inherit;line-height:inherit;outline:none;padding:0;width:100%}.el-input-tag__input::-moz-placeholder{color:var(--el-input-tag-placeholder-color)}.el-input-tag__input::placeholder{color:var(--el-input-tag-placeholder-color)}.el-input-tag__input-calculator{left:0;max-width:100%;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:pre}.el-input-tag--large{--el-input-tag-gap:6px;--el-input-tag-padding:8px;--el-input-tag-padding-left:8px;--el-input-tag-font-size:14px}.el-input-tag--small{--el-input-tag-gap:4px;--el-input-tag-padding:2px;--el-input-tag-padding-left:6px;--el-input-tag-font-size:12px;--el-input-tag-line-height:20px;--el-input-tag-mini-height:var(--el-component-size-small)}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);align-items:center;color:var(--el-link-text-color);cursor:pointer;display:inline-flex;flex-direction:row;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);justify-content:center;outline:none;padding:0;position:relative;text-decoration:none;vertical-align:middle}.el-link.is-hover-underline:hover:after{border-bottom:1px solid var(--el-link-hover-text-color);bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link.is-underline:after{border-bottom:1px solid var(--el-link-text-color);bottom:0;content:"";height:0;left:0;position:absolute;right:0}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link:hover:after{border-color:var(--el-link-hover-text-color)}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link__inner{align-items:center;display:inline-flex;justify-content:center}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link.is-disabled:after{border-color:var(--el-link-disabled-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{background-color:var(--el-mask-color);bottom:0;left:0;margin:0;position:absolute;right:0;top:0;transition:opacity var(--el-transition-duration);z-index:2000}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size))/2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size))/2);position:absolute;text-align:center;top:50%;width:100%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);font-size:14px;margin:3px 0}.el-loading-spinner .circular{animation:loading-rotate 2s linear infinite;display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size)}.el-loading-spinner .path{animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(1turn)}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;box-sizing:border-box;display:block;flex:1;flex-basis:auto;overflow:auto;padding:var(--el-main-padding)}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{background-color:var(--el-menu-bg-color);border-right:1px solid var(--el-menu-border-color);box-sizing:border-box;list-style:none;margin:0;padding-left:0;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title{padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level)*var(--el-menu-level-padding));white-space:nowrap}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{border-right:none;display:flex;flex-wrap:nowrap;height:var(--el-menu-horizontal-height)}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:1px solid var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{align-items:center;border-bottom:2px solid transparent;color:var(--el-menu-text-color);display:inline-flex;height:100%;justify-content:center;margin:0}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{border-bottom:2px solid transparent;color:var(--el-menu-text-color);height:100%}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{align-items:center;background-color:var(--el-menu-bg-color);color:var(--el-menu-text-color);display:flex;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{background-color:var(--el-menu-hover-bg-color);color:var(--el-menu-active-color,var(--el-menu-hover-text-color));outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding)*2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{display:inline-block;height:0;overflow:hidden;visibility:hidden;width:0}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{border:none;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light);min-width:200px;padding:5px 0;z-index:100}.el-menu .el-icon{flex-shrink:0}.el-menu-item{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-menu-item [class^=el-icon]{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{align-items:center;box-sizing:border-box;display:inline-flex;height:100%;left:0;padding:0 var(--el-menu-base-level-padding);position:absolute;top:0;width:100%}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{align-items:center;box-sizing:border-box;color:var(--el-menu-text-color);cursor:pointer;display:flex;font-size:var(--el-menu-item-font-size);height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);list-style:none;padding:0 var(--el-menu-base-level-padding);position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);white-space:nowrap}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:none}.el-sub-menu__title.is-disabled{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{background:none!important;cursor:not-allowed;opacity:.25}.el-sub-menu .el-icon{font-size:18px;margin-right:5px;text-align:center;vertical-align:middle;width:var(--el-menu-icon-width)}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{font-size:12px;margin-right:0;margin-top:-6px;position:absolute;right:var(--el-menu-base-level-padding);top:50%;transition:transform var(--el-transition-duration);width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{color:var(--el-text-color-secondary);font-size:12px;line-height:normal;padding:7px 0 7px var(--el-menu-base-level-padding)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{opacity:0;transition:var(--el-transition-duration-fast)}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);backface-visibility:hidden;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);box-shadow:var(--el-messagebox-box-shadow);box-sizing:border-box;display:inline-block;font-size:var(--el-messagebox-font-size);max-width:var(--el-messagebox-width);overflow:hidden;overflow-wrap:break-word;padding:var(--el-messagebox-padding-primary);position:relative;text-align:left;vertical-align:middle;width:100%}.el-message-box:focus{outline:none!important}.is-message-box .el-overlay-message-box{bottom:0;left:0;overflow:auto;padding:16px;position:fixed;right:0;text-align:center;top:0}.is-message-box .el-overlay-message-box:after{content:"";display:inline-block;height:100%;vertical-align:middle;width:0}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size, 16px))}.el-message-box__title{color:var(--el-messagebox-title-color);font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__headerbtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:40px;outline:none;padding:0;position:absolute;right:0;top:0;width:40px}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;display:flex;gap:12px}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{margin:0;min-width:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-end;padding-top:var(--el-messagebox-padding-primary)}.el-message-box--center .el-message-box__title{align-items:center;display:flex;gap:6px;justify-content:center}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);align-items:center;background-color:var(--el-message-bg-color);border-color:var(--el-message-border-color);border-radius:var(--el-border-radius-base);border-style:var(--el-border-style);border-width:var(--el-border-width);box-sizing:border-box;display:flex;gap:8px;max-width:calc(100% - 32px);padding:var(--el-message-padding);position:fixed;transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;width:-moz-fit-content;width:fit-content}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:0;margin:0 auto;right:0}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;right:-8px;top:-8px}.el-message__content{font-size:14px;line-height:1;padding:0}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{color:var(--el-message-close-icon-color);cursor:pointer;font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translateY(-100%)}.el-message-fade-enter-from.is-bottom,.el-message-fade-leave-to.is-bottom{transform:translateY(100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size,16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);background-color:var(--el-bg-color-overlay);border:1px solid var(--el-notification-border-color);border-radius:var(--el-notification-radius);box-shadow:var(--el-notification-shadow);box-sizing:border-box;display:flex;overflow:hidden;overflow-wrap:break-word;padding:var(--el-notification-padding);position:fixed;transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);width:var(--el-notification-width);z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{flex:1;margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right);min-width:0}.el-notification__title{color:var(--el-notification-title-color);font-size:var(--el-notification-title-font-size);font-weight:bold;line-height:var(--el-notification-icon-size);margin:0}.el-notification__content{color:var(--el-notification-content-color);font-size:var(--el-notification-content-font-size);line-height:24px;margin:6px 0 0}.el-notification__content p{margin:0}.el-notification .el-notification__icon{flex-shrink:0;font-size:var(--el-notification-icon-size);height:var(--el-notification-icon-size);width:var(--el-notification-icon-size)}.el-notification .el-notification__closeBtn{color:var(--el-notification-close-color);cursor:pointer;font-size:var(--el-notification-close-font-size);position:absolute;right:15px;top:18px}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--primary{--el-notification-icon-color:var(--el-color-primary);color:var(--el-notification-icon-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translateX(100%)}.el-notification-fade-enter-from.left{left:0;transform:translateX(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{background-color:var(--el-overlay-color-lighter);bottom:0;height:100%;left:0;overflow:auto;position:fixed;right:0;top:0;z-index:2000}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{align-items:center;display:flex;justify-content:space-between;line-height:24px}.el-page-header__left{align-items:center;display:flex;margin-right:40px;position:relative}.el-page-header__back{align-items:center;cursor:pointer;display:flex}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{align-items:center;display:flex;font-size:16px;margin-right:10px}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:var(--el-text-color-primary);font-size:18px}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-button-width-large:40px;--el-pagination-button-height-large:40px;--el-pagination-item-gap:16px;align-items:center;color:var(--el-pagination-text-color);display:flex;font-size:var(--el-pagination-font-size);font-weight:normal;white-space:nowrap}.el-pagination .el-input__inner{-moz-appearance:textfield;text-align:center}.el-pagination .el-select{width:128px}.el-pagination .btn-next,.el-pagination .btn-prev{align-items:center;background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;display:flex;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pagination .btn-next *,.el-pagination .btn-prev *{pointer-events:none}.el-pagination .btn-next:focus,.el-pagination .btn-prev:focus{outline:none}.el-pagination .btn-next:hover,.el-pagination .btn-prev:hover{color:var(--el-pagination-hover-color)}.el-pagination .btn-next.is-active,.el-pagination .btn-prev.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:bold}.el-pagination .btn-next.is-active.is-disabled,.el-pagination .btn-prev.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:bold}.el-pagination .btn-next.is-disabled,.el-pagination .btn-next:disabled,.el-pagination .btn-prev.is-disabled,.el-pagination .btn-prev:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pagination .btn-next:focus-visible,.el-pagination .btn-prev:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:bold;width:inherit}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{color:var(--el-text-color-regular);font-weight:normal;margin-left:var(--el-pagination-item-gap)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{align-items:center;color:var(--el-text-color-regular);display:flex;font-weight:normal;margin-left:var(--el-pagination-item-gap)}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{box-sizing:border-box;text-align:center}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{align-items:center;display:flex;flex:1;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background-color:var(--el-pagination-button-bg-color);margin:0 4px}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{background-color:var(--el-disabled-bg-color);color:var(--el-text-color-placeholder)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active{background-color:var(--el-fill-color-dark);color:var(--el-text-color-secondary)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li{font-size:var(--el-pagination-font-size-small);height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pagination--large .btn-next,.el-pagination--large .btn-prev,.el-pagination--large .el-pager li{height:var(--el-pagination-button-height-large);line-height:var(--el-pagination-button-height-large);min-width:var(--el-pagination-button-width-large)}.el-pagination--large .el-select .el-input{width:160px}.el-pager{font-size:0;list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-pager,.el-pager li{align-items:center;display:flex}.el-pager li{background:var(--el-pagination-bg-color);border:none;border-radius:var(--el-pagination-border-radius);box-sizing:border-box;color:var(--el-pagination-button-color);cursor:pointer;font-size:var(--el-pagination-font-size);height:var(--el-pagination-button-height);justify-content:center;line-height:var(--el-pagination-button-height);min-width:var(--el-pagination-button-width);padding:0 4px;text-align:center}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:none}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:bold}.el-pager li.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:bold}.el-pager li.is-disabled,.el-pager li:disabled{background-color:var(--el-pagination-button-disabled-bg-color);color:var(--el-pagination-button-disabled-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm{outline:none}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{margin-top:8px;text-align:right}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border:1px solid var(--el-popover-border-color);border-radius:var(--el-popover-border-radius);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;color:var(--el-text-color-regular);font-size:var(--el-popover-font-size);line-height:1.4;min-width:150px;overflow-wrap:break-word;padding:var(--el-popover-padding);z-index:var(--el-index-popper)}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{align-items:center;display:flex;line-height:1;position:relative}.el-progress__text{color:var(--el-text-color-regular);font-size:14px;line-height:1;margin-left:5px;min-width:50px}.el-progress__text i{display:block;vertical-align:middle}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{left:0;margin:0;position:absolute;text-align:center;top:50%;transform:translateY(-50%);width:100%}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{display:inline-block;vertical-align:middle}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{display:block;margin-right:0;padding-right:0}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);border-radius:100px;height:6px;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{background-color:var(--el-color-primary);border-radius:100px;height:100%;left:0;line-height:1;position:absolute;text-align:right;top:0;transition:width .6s ease;white-space:nowrap}.el-progress-bar__inner:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{animation:indeterminate 3s infinite;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 0,transparent 50%,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 75%,transparent 0,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{color:#ffffff;display:inline-block;font-size:12px;margin:0 5px;vertical-align:middle}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light)}.el-radio-button,.el-radio-button__inner{display:inline-block;outline:none;position:relative}.el-radio-button__inner{-webkit-appearance:none;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);border-left:0;border-radius:0;box-sizing:border-box;color:var(--el-button-text-color,var(--el-text-color-regular));cursor:pointer;font-size:var(--el-font-size-base);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));line-height:1;margin:0;padding:8px 15px;text-align:center;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;white-space:nowrap}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary));color:var(--el-radio-button-checked-text-color,var(--el-color-white))}.el-radio-button__original-radio{opacity:0;outline:none;position:absolute;z-index:-1}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));border-radius:var(--el-border-radius-base);box-shadow:none;outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2}.el-radio-button__original-radio:disabled+.el-radio-button__inner{background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));background-image:none;border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none;color:var(--el-disabled-text-color);cursor:not-allowed}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{border-radius:0;font-size:var(--el-font-size-base);padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;font-size:12px;padding:5px 11px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{align-items:center;display:inline-flex;flex-wrap:wrap;font-size:0}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);align-items:center;color:var(--el-radio-text-color);cursor:pointer;display:inline-flex;font-size:var(--el-font-size-base);font-weight:var(--el-radio-font-weight);height:32px;margin-right:30px;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border:var(--el-border);border-radius:var(--el-border-radius-base);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{border-color:var(--el-border-color-lighter);cursor:not-allowed}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{cursor:pointer;display:inline-flex;outline:none;position:relative;vertical-align:middle;white-space:nowrap}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{background:var(--el-color-primary);border-color:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{background-color:var(--el-radio-input-bg-color);border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);box-sizing:border-box;cursor:pointer;display:inline-block;height:var(--el-radio-input-height);position:relative;width:var(--el-radio-input-width)}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";height:4px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in;width:4px}.el-radio__original{bottom:0;left:0;margin:0;opacity:0;outline:none;position:absolute;right:0;top:0;z-index:-1}.el-radio__original:focus-visible+.el-radio__inner{border-radius:var(--el-radio-input-border-radius);outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{height:14px;width:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{height:12px;width:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary);--el-rate-outline-color:var(--el-color-primary-light-5);align-items:center;display:inline-flex;height:32px}.el-rate:active,.el-rate:focus{outline:none}.el-rate:focus-visible .el-rate__item .el-rate__icon.is-focus-visible{outline:2px solid var(--el-rate-outline-color);transition:outline-offset 0s,outline 0s}.el-rate__item{color:var(--el-rate-void-color);cursor:pointer;display:inline-block;font-size:0;line-height:normal;position:relative;vertical-align:middle}.el-rate .el-rate__icon{display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);position:relative;transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{left:0;position:absolute;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{color:var(--el-rate-fill-color);display:inline-block;overflow:hidden}.el-rate__decimal,.el-rate__decimal--box{left:0;position:absolute;top:0}.el-rate__text{color:var(--el-rate-text-color);font-size:var(--el-rate-font-size);vertical-align:middle}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{color:var(--el-rate-disabled-void-color);cursor:auto}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px;align-items:center;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;padding:var(--el-result-padding);text-align:center}.el-result__icon svg{height:var(--el-result-icon-font-size);width:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{color:var(--el-text-color-primary);font-size:var(--el-result-title-font-size);line-height:1.3;margin:0}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1.3;margin:0}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-row{box-sizing:border-box;display:flex;flex-wrap:wrap;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}.el-scrollbar{--el-scrollbar-opacity:0.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:0.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;overflow:hidden;position:relative}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));border-radius:inherit;cursor:pointer;display:block;height:0;opacity:var(--el-scrollbar-opacity,.3);position:relative;transition:var(--el-transition-duration) background-color;width:0}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{border-radius:4px;bottom:2px;position:absolute;right:2px;z-index:1}.el-scrollbar__bar.is-vertical{top:2px;width:6px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-select-dropdown{border-radius:var(--el-border-radius-base);box-sizing:border-box;z-index:calc(var(--el-index-top) + 1)}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty,.el-select-dropdown__loading{color:var(--el-text-color-secondary);font-size:var(--el-select-font-size);margin:0;padding:10px 0;text-align:center}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:6px 0}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__item{box-sizing:border-box;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-base);height:34px;line-height:34px;overflow:hidden;padding:0 32px 0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:bold}.el-select-dropdown__item.is-disabled{background-color:unset;color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{background-color:var(--el-color-primary);background-position:50%;background-repeat:no-repeat;border-right:none;border-top:none;content:"";height:12px;mask:url("data:image/svg+xml;utf8,%3Csvg class=\'icon\' width=\'200\' height=\'200\' viewBox=\'0 0 1024 1024\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath fill=\'currentColor\' d=\'M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z\'%3E%3C/path%3E%3C/svg%3E") no-repeat;mask-size:100% 100%;-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class=\'icon\' width=\'200\' height=\'200\' viewBox=\'0 0 1024 1024\' xmlns=\'http://www.w3.org/2000/svg\'%3E%3Cpath fill=\'currentColor\' d=\'M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z\'%3E%3C/path%3E%3C/svg%3E") no-repeat;-webkit-mask-size:100% 100%;position:absolute;right:20px;top:50%;transform:translateY(-50%);width:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{list-style:none;margin:0;padding:0;position:relative}.el-select-group__title{box-sizing:border-box;color:var(--el-color-info);font-size:12px;line-height:34px;overflow:hidden;padding:0 20px;text-overflow:ellipsis;white-space:nowrap}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-color:var(--el-disabled-text-color);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%;display:inline-block;position:relative;vertical-align:middle;width:var(--el-select-width)}.el-select__wrapper{align-items:center;background-color:var(--el-fill-color-blank);border-radius:var(--el-border-radius-base);box-shadow:0 0 0 1px var(--el-border-color) inset;box-sizing:border-box;cursor:pointer;display:flex;font-size:14px;gap:6px;line-height:24px;min-height:32px;padding:4px 12px;position:relative;text-align:left;transform:translateZ(0);transition:var(--el-transition-duration)}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{background-color:var(--el-fill-color-light);box-shadow:0 0 0 1px var(--el-select-disabled-border) inset;color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__selected-item{color:var(--el-select-disabled-color)}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag,.el-select__wrapper.is-disabled input{cursor:not-allowed}.el-select__wrapper.is-disabled .el-select__prefix,.el-select__wrapper.is-disabled .el-select__suffix{pointer-events:none}.el-select__prefix,.el-select__suffix{align-items:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));display:flex;flex-shrink:0;gap:6px}.el-select__caret{color:var(--el-select-input-color);cursor:pointer;font-size:var(--el-select-input-font-size);transform:rotate(0deg);transition:var(--el-transition-duration)}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__clear{cursor:pointer}.el-select__clear:hover{color:var(--el-select-close-hover-color)}.el-select__selection{align-items:center;display:flex;flex:1;flex-wrap:wrap;gap:6px;min-width:0;position:relative}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{border-color:transparent;cursor:pointer}.el-select__selection .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{display:flex;flex-wrap:wrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-select__tags-text{line-height:normal}.el-select__placeholder,.el-select__tags-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select__placeholder{color:var(--el-input-text-color,var(--el-text-color-regular));position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:-1}.el-select__placeholder.is-transparent{color:var(--el-text-color-placeholder);-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-select__input-wrapper{flex:1}.el-select__input-wrapper.is-hidden{opacity:0;position:absolute;z-index:-1}.el-select__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent;border:none;color:var(--el-select-multiple-input-color);font-family:inherit;font-size:inherit;height:24px;outline:none;padding:0;width:100%}.el-select__input-calculator{left:0;max-width:100%;overflow:hidden;position:absolute;top:0;visibility:hidden;white-space:pre}.el-select--large .el-select__wrapper{font-size:14px;gap:6px;line-height:24px;min-height:40px;padding:8px 16px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{font-size:12px;gap:4px;line-height:20px;min-height:24px;padding:2px 8px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);border-radius:var(--el-border-radius-base);display:inline-block;height:16px;width:100%}.el-skeleton__circle{border-radius:50%;height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size);width:var(--el-skeleton-circle-size)}.el-skeleton__button{border-radius:4px;height:40px;width:64px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{height:var(--el-font-size-small);width:100%}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{align-items:center;border-radius:0;display:flex;justify-content:center;width:unset}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;height:22%;width:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@keyframes el-skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:var(--el-skeleton-color);height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{animation:el-skeleton-loading 1.4s ease infinite;background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;display:flex;height:32px;width:100%}.el-slider__runway{background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;height:var(--el-slider-height);position:relative}.el-slider__runway.show-input{margin-right:30px;width:auto}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{background-color:var(--el-slider-main-bg-color);border-bottom-left-radius:var(--el-slider-border-radius);border-top-left-radius:var(--el-slider-border-radius);height:var(--el-slider-height);position:absolute}.el-slider__button-wrapper{background-color:transparent;height:var(--el-slider-button-wrapper-size);line-height:normal;outline:none;position:absolute;text-align:center;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--el-slider-button-wrapper-size);z-index:1}.el-slider__button-wrapper:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{background-color:var(--el-color-white);border:2px solid var(--el-slider-main-bg-color);border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--el-slider-button-size);transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:var(--el-slider-button-size)}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{background-color:var(--el-slider-stop-bg-color);border-radius:var(--el-border-radius-circle);height:var(--el-slider-height);position:absolute;transform:translateX(-50%);width:var(--el-slider-height)}.el-slider__marks{height:100%;left:12px;top:0;width:18px}.el-slider__marks-text{color:var(--el-color-info);font-size:14px;margin-top:15px;position:absolute;transform:translateX(-50%);white-space:pre}.el-slider.is-vertical{display:inline-flex;flex:0;height:100%;position:relative;width:auto}.el-slider.is-vertical .el-slider__runway{height:100%;margin:0 16px;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__bar{border-radius:0 0 3px 3px;height:auto;width:var(--el-slider-height)}.el-slider.is-vertical .el-slider__button-wrapper{left:var(--el-slider-button-wrapper-offset);top:auto;transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{left:15px;margin-top:0;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{animation:rotate 2s linear infinite;height:50px;width:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-grow:0;flex-shrink:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{border-color:var(--el-text-color-primary);color:var(--el-text-color-primary)}.el-step__head.is-wait{border-color:var(--el-text-color-placeholder);color:var(--el-text-color-placeholder)}.el-step__head.is-success{border-color:var(--el-color-success);color:var(--el-color-success)}.el-step__head.is-error{border-color:var(--el-color-danger);color:var(--el-color-danger)}.el-step__head.is-finish{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-step__icon{align-items:center;background:var(--el-bg-color);box-sizing:border-box;display:inline-flex;font-size:14px;height:24px;justify-content:center;position:relative;transition:.15s ease-out;width:24px;z-index:1}.el-step__icon.is-text{border:2px solid;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{color:inherit;display:inline-block;font-weight:bold;line-height:1;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:normal}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:var(--el-text-color-placeholder);border-color:currentColor;position:absolute}.el-step__line-inner{border:1px solid;box-sizing:border-box;display:block;height:0;transition:.15s ease-out;width:0}.el-step__main{text-align:left;white-space:normal}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:var(--el-text-color-primary);font-weight:bold}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{font-size:12px;font-weight:normal;line-height:20px;margin-top:-5px;padding-right:10%}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;left:0;right:0;top:11px}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-left:10px}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{bottom:0;left:11px;top:0;width:2px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-vertical .el-step__description{padding-right:0}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{font-size:0;padding-right:10px;width:auto}.el-step.is-simple .el-step__icon{background:transparent;font-size:12px;height:16px;width:16px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{align-items:stretch;display:flex;flex-grow:1;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;overflow-wrap:break-word}.el-step.is-simple .el-step__arrow{align-items:center;display:flex;flex-grow:1;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{background:var(--el-text-color-placeholder);content:"";display:inline-block;height:15px;position:absolute;width:1px}.el-step.is-simple .el-step__arrow:before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{background:var(--el-fill-color-light);border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);align-items:center;display:inline-flex;font-size:14px;height:32px;line-height:20px;position:relative;vertical-align:middle}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{color:var(--el-text-color-primary);cursor:pointer;display:inline-block;font-size:14px;font-weight:500;height:20px;transition:var(--el-transition-duration-fast);vertical-align:middle}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{display:inline-block;font-size:14px;line-height:1}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{height:0;margin:0;opacity:0;position:absolute;width:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{align-items:center;background:var(--el-switch-off-color);border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:20px;min-width:40px;outline:none;position:relative;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{align-items:center;display:flex;height:16px;justify-content:center;overflow:hidden;padding:0 4px 0 18px;transition:all var(--el-transition-duration);width:100%}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{color:var(--el-color-white);font-size:12px;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.el-switch__core .el-switch__action{align-items:center;background-color:var(--el-color-white);border-radius:var(--el-border-radius-circle);color:var(--el-switch-off-color);display:flex;height:16px;justify-content:center;left:1px;position:absolute;transition:all var(--el-transition-duration);width:16px}.el-switch.is-checked .el-switch__core{background-color:var(--el-switch-on-color);border-color:var(--el-switch-border-color,var(--el-switch-on-color))}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{font-size:14px;height:40px;line-height:24px}.el-switch--large .el-switch__label{font-size:14px;height:24px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;height:24px;min-width:50px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{height:20px;width:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{font-size:12px;height:24px;line-height:16px}.el-switch--small .el-switch__label{font-size:12px;height:16px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;height:16px;min-width:30px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{height:12px;width:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{background-color:#ffffff;border:1px solid var(--el-border-color-lighter);border-radius:2px;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{list-style:none;margin:0;min-width:100px;padding:5px 0}.el-table-filter__list-item{cursor:pointer;font-size:var(--el-font-size-base);line-height:36px;padding:0 10px}.el-table-filter__list-item:hover{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#ffffff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:transparent;border:none;color:var(--el-text-color-regular);cursor:pointer;font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button:focus{outline:none}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{align-items:center;display:flex;height:unset;margin-bottom:12px;margin-left:5px;margin-right:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,0.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,0.15);--el-table-index:var(--el-index-normal);background-color:var(--el-table-bg-color);box-sizing:border-box;color:var(--el-table-text-color);font-size:var(--el-font-size-base);height:-moz-fit-content;height:fit-content;max-width:100%;overflow:hidden;position:relative;width:100%}.el-table__inner-wrapper{display:flex;flex-direction:column;height:100%;position:relative}.el-table__inner-wrapper:before{bottom:0;height:1px;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{align-items:center;display:flex;justify-content:center;left:0;min-height:60px;position:sticky;text-align:center;width:100%}.el-table__empty-text{color:var(--el-text-color-secondary);line-height:60px;width:50%}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table__expand-icon{color:var(--el-text-color-regular);cursor:pointer;font-size:12px;height:20px;position:relative;transition:transform var(--el-transition-duration-fast) ease-in-out}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;min-width:0;padding:8px 0;position:relative;text-align:left;text-overflow:ellipsis;vertical-align:middle;z-index:var(--el-table-index)}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;padding:0;width:15px}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;line-height:23px;overflow:hidden;overflow-wrap:break-word;padding:0 12px;text-overflow:ellipsis;white-space:normal}.el-table .cell.el-tooltip{min-width:50px;white-space:nowrap}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{background:#ff4d51;border-radius:50%;content:"";display:inline-block;height:8px;margin-right:5px;vertical-align:middle;width:8px}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper:after,.el-table--border:after,.el-table--border:before,.el-table__inner-wrapper:before{background-color:var(--el-table-border-color);content:"";position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper:after{height:1px;left:0;top:0;width:100%;z-index:calc(var(--el-table-index) + 2)}.el-table--border:before{height:100%;left:0;top:-1px;width:1px}.el-table--border:after{height:100%;right:0;top:-1px;width:1px}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right,.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background:inherit;position:sticky!important;z-index:calc(var(--el-table-index) + 1)}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{bottom:-1px;box-shadow:none;content:"";overflow-x:hidden;overflow-y:hidden;pointer-events:none;position:absolute;top:0;touch-action:none;width:10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{background:#fff;position:sticky!important;right:0;z-index:calc(var(--el-table-index) + 1)}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body,.el-table__footer,.el-table__header{border-collapse:separate;table-layout:fixed}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{align-items:center;display:inline-flex;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;overflow:hidden;position:relative}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{align-items:center;cursor:pointer;display:inline-flex;flex-direction:column;height:14px;overflow:initial;position:relative;vertical-align:middle;width:24px}.el-table .sort-caret{border:5px solid transparent;height:0;left:7px;position:absolute;width:0}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{position:absolute;visibility:hidden;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{bottom:0;position:sticky;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{border-left:var(--el-table-border);bottom:0;left:200px;position:absolute;top:0;width:0;z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{cursor:pointer;display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{height:100%;top:0;width:1px}.el-table__border-bottom-patch,.el-table__border-left-patch{background-color:var(--el-table-border-color);left:0;position:absolute;z-index:calc(var(--el-table-index) + 2)}.el-table__border-bottom-patch{height:1px}.el-table__border-right-patch{background-color:var(--el-table-border-color);height:100%;position:absolute;top:0;width:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;height:12px;line-height:12px;margin-right:8px;text-align:center;width:12px}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-bg-color);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0,0,0,0.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0,0,0,0.15);--el-table-index:var(--el-index-normal);font-size:var(--el-font-size-base)}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{background-color:var(--el-bg-color);display:flex;flex-direction:column-reverse;left:0;overflow:hidden;position:absolute;top:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{background-color:var(--el-bg-color);box-shadow:2px 0 4px 0 rgba(0,0,0,.06);display:flex;flex-direction:column-reverse;left:0;overflow:hidden;position:absolute;top:0}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{background-color:var(--el-bg-color);box-shadow:-2px 0 4px 0 rgba(0,0,0,.06);display:flex;flex-direction:column-reverse;overflow:hidden;position:absolute;right:0;top:0}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{overflow:hidden;position:relative}.el-table-v2__header .el-checkbox{z-index:0}.el-table-v2__footer{bottom:0;overflow:hidden;right:0}.el-table-v2__empty,.el-table-v2__footer,.el-table-v2__overlay{left:0;position:absolute}.el-table-v2__overlay{bottom:0;right:0;top:0;z-index:9999}.el-table-v2__header-row{border-bottom:var(--el-table-border);display:flex}.el-table-v2__header-cell{align-items:center;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);display:flex;font-weight:bold;height:100%;overflow:hidden;padding:0 8px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{display:none;opacity:.6;transition:opacity,display var(--el-transition-duration)}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{align-items:center;border-bottom:var(--el-table-border);display:flex;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{align-items:center;display:flex;height:100%;overflow:hidden;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{cursor:pointer;margin:0 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{align-items:stretch;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{overflow-wrap:break-word}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{align-items:center;display:flex;justify-content:space-between;margin:0 0 15px;padding:0;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);bottom:0;height:2px;left:0;list-style:none;position:absolute;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);z-index:1}.el-tabs__new-tab{align-items:center;border:1px solid var(--el-border-color);border-radius:3px;color:var(--el-text-color-primary);cursor:pointer;display:flex;flex-shrink:0;font-size:12px;height:20px;justify-content:center;line-height:20px;margin:10px 0 10px 10px;text-align:center;transition:all .15s;width:20px}.el-tabs__new-tab .is-icon-plus{height:inherit;transform:scale(.8);width:inherit}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:1 auto;margin-bottom:-1px;overflow:hidden;position:relative}.el-tabs__nav-wrap:after{background-color:var(--el-border-color-light);bottom:0;content:"";height:2px;left:0;position:absolute;width:100%;z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{color:var(--el-text-color-secondary);cursor:pointer;font-size:12px;line-height:44px;position:absolute;text-align:center;width:20px}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;float:left;position:relative;transition:transform var(--el-transition-duration);white-space:nowrap;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{display:flex;min-width:100%}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{align-items:center;box-sizing:border-box;color:var(--el-text-color-primary);display:flex;font-size:var(--el-font-size-base);font-weight:500;height:var(--el-tabs-header-height);justify-content:center;list-style:none;padding:0 20px;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{border-radius:3px;box-shadow:0 0 2px 2px var(--el-color-primary) inset}.el-tabs__item .is-icon-close{border-radius:50%;margin-left:5px;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#ffffff}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;overflow:hidden;position:relative}.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);box-sizing:border-box;height:var(--el-tabs-header-height)}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{font-size:12px;height:14px;overflow:hidden;position:relative;right:-2px;transform-origin:100% 50%;width:0}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid var(--el-border-color-light);margin-top:-1px;transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{border:1px solid transparent;color:var(--el-text-color-secondary);margin-top:-1px;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{background-color:var(--el-bg-color-overlay);border-left-color:var(--el-border-color);border-right-color:var(--el-border-color);color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-bottom:0;margin-top:-1px}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{bottom:auto;height:auto;top:0;width:2px}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{cursor:pointer;height:30px;line-height:30px;text-align:center;width:100%}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{bottom:auto;height:100%;top:0;width:2px}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-bottom:none;border-left:none;border-right:1px solid var(--el-border-color-light);border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right:1px solid #fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-radius:4px 0 0 4px;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:1px solid #fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:rgb(209,219,229) transparent}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);left:0;position:absolute;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);left:0;position:absolute;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform:translateX(100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInRight-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(100%);transform-origin:0 0}}@keyframes slideInLeft-enter{0%{opacity:0;transform:translateX(-100%);transform-origin:0 0}to{opacity:1;transform:translateX(0);transform-origin:0 0}}@keyframes slideInLeft-leave{0%{opacity:1;transform:translateX(0);transform-origin:0 0}to{opacity:0;transform:translateX(-100%);transform-origin:0 0}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;align-items:center;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);border-radius:var(--el-tag-border-radius);border-style:solid;border-width:1px;box-sizing:border-box;color:var(--el-tag-text-color);display:inline-flex;font-size:var(--el-tag-font-size);height:24px;justify-content:center;line-height:1;padding:0 9px;vertical-align:middle;white-space:nowrap;--el-icon-size:14px}.el-tag,.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{background-color:var(--el-tag-hover-color);color:var(--el-color-white)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--el-tag-text-color:var(--el-color-white)}.el-tag--dark,.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info,.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{height:32px;padding:0 11px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{height:20px;padding:0 7px;--el-icon-size:12px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);align-self:center;color:var(--el-text-color);font-size:var(--el-text-font-size);margin:0;overflow-wrap:break-word;padding:0}.el-text.is-truncated{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{margin:0;max-height:200px}.time-select-item{font-size:14px;line-height:20px;padding:8px 10px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);cursor:pointer;font-weight:bold}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:bold}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{padding-left:28px;position:relative;top:-3px}.el-timeline-item__tail{border-left:2px solid var(--el-timeline-node-color);height:100%;left:4px;position:absolute}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{align-items:center;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;position:absolute}.el-timeline-item__node--normal{height:var(--el-timeline-node-size-normal);left:-1px;width:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{height:var(--el-timeline-node-size-large);left:-2px;width:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{align-items:center;display:flex;justify-content:center;position:absolute}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);font-size:var(--el-font-size-small);line-height:1}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light);font-size:var(--el-font-size-base);list-style:none;margin:0}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{align-items:center;display:flex}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{display:block;height:calc(50% - 10px)}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px;font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;padding:0 30px;vertical-align:middle}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{background:var(--el-bg-color-overlay);box-sizing:border-box;display:inline-block;max-height:100%;overflow:hidden;position:relative;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width)}.el-transfer-panel__body{border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);height:var(--el-transfer-panel-body-height);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{box-sizing:border-box;height:var(--el-transfer-panel-body-height);list-style:none;margin:0;overflow:auto;padding:6px 0}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{display:block!important;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular);margin-right:30px}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{box-sizing:border-box;display:block;line-height:var(--el-transfer-item-height);overflow:hidden;padding-left:22px;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{box-sizing:border-box;padding:15px;text-align:center}.el-transfer-panel__filter .el-input__inner{box-sizing:border-box;display:inline-block;font-size:12px;height:var(--el-transfer-filter-height);width:100%}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{align-items:center;background:var(--el-transfer-panel-header-bg-color);border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black);display:flex;height:var(--el-transfer-panel-header-height);margin:0;padding-left:15px}.el-transfer-panel .el-transfer-panel__header .el-checkbox{align-items:center;display:flex;position:relative;width:100%}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{color:var(--el-text-color-primary);font-size:16px;font-weight:normal}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{color:var(--el-text-color-secondary);font-size:12px;font-weight:normal;position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0)}.el-transfer-panel .el-transfer-panel__footer{background:var(--el-bg-color-overlay);border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);height:var(--el-transfer-panel-footer-height);margin:0;padding:0}.el-transfer-panel .el-transfer-panel__footer:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:var(--el-text-color-regular);padding-left:20px}.el-transfer-panel .el-transfer-panel__empty{color:var(--el-text-color-secondary);height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);margin:0;padding:6px 15px 0;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder);background:var(--el-fill-color-blank);color:var(--el-tree-text-color);cursor:default;font-size:var(--el-font-size-base);position:relative}.el-tree__empty-block{height:100%;min-height:60px;position:relative;text-align:center;width:100%}.el-tree__empty-text{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-tree__drop-indicator{background-color:var(--el-color-primary);height:1px;left:0;position:absolute;right:0}.el-tree-node{outline:none;white-space:nowrap}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);align-items:center;cursor:pointer;display:flex;height:var(--el-tree-node-content-height)}.el-tree-node__content>.el-tree-node__expand-icon{box-sizing:content-box;padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{color:var(--el-tree-expand-icon-color);cursor:pointer;font-size:12px;transform:rotate(0deg);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{color:var(--el-tree-expand-icon-color);font-size:var(--el-font-size-base);margin-right:8px}.el-tree-node>.el-tree-node__children{background-color:transparent;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__list>.el-select-dropdown__item{padding-left:32px}.el-tree-select__popper .el-select-dropdown__item{background:transparent!important;flex:1;height:20px;line-height:20px;padding-left:0}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;align-items:center;cursor:pointer;display:inline-flex;justify-content:center;outline:none}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{border-color:var(--el-border-color-darker);color:inherit}.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{background-color:var(--el-disabled-bg-color);cursor:not-allowed}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);font-size:12px;margin-top:7px}.el-upload iframe{filter:alpha(opacity=0);left:0;opacity:0;position:absolute;top:0;z-index:-1}.el-upload--picture-card{align-items:center;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;cursor:pointer;display:inline-flex;height:var(--el-upload-picture-card-size);justify-content:center;vertical-align:top;width:var(--el-upload-picture-card-size)}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;cursor:pointer;overflow:hidden;padding:var(--el-upload-dragger-padding-horizontal) var(--el-upload-dragger-padding-vertical);position:relative;text-align:center}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);font-size:67px;line-height:50px;margin-bottom:16px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary);padding:calc(var(--el-upload-dragger-padding-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px)}.el-upload-list{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;list-style:none;margin:10px 0 0;padding:0;position:relative}.el-upload-list__item{border-radius:4px;box-sizing:border-box;color:var(--el-text-color-regular);font-size:14px;margin-bottom:5px;position:relative;transition:all .5s cubic-bezier(.55,0,.1,1);width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{color:var(--el-text-color-regular);cursor:pointer;display:none;opacity:.75;position:absolute;right:5px;top:50%;transform:translateY(-50%);transition:opacity var(--el-transition-duration)}.el-upload-list__item .el-icon--close:hover{color:var(--el-color-primary);opacity:1}.el-upload-list__item .el-icon--close-tip{color:var(--el-color-primary);cursor:pointer;display:none;font-size:12px;font-style:normal;opacity:1;position:absolute;right:5px;top:1px}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;flex-direction:column;justify-content:center;margin-left:4px;width:calc(100% - 30px)}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{align-items:center;color:var(--el-text-color-regular);display:inline-flex;font-size:var(--el-font-size-base);padding:0 4px;text-align:center;transition:color var(--el-transition-duration)}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{align-items:center;display:none;height:100%;justify-content:center;line-height:inherit;position:absolute;right:5px;top:0;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{color:var(--el-text-color-regular);display:none;font-size:12px;position:absolute;right:10px;top:0}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:inline-flex;height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;overflow:hidden;padding:0;width:var(--el-upload-list-picture-card-size)}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#ffffff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:block;opacity:0}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{align-items:center;background-color:var(--el-overlay-color-lighter);color:#fff;cursor:default;display:inline-flex;font-size:20px;height:100%;justify-content:center;left:0;opacity:0;position:absolute;top:0;transition:opacity var(--el-transition-duration);width:100%}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{color:inherit;font-size:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{align-items:center;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;display:flex;margin-top:10px;overflow:hidden;padding:10px;z-index:0}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#ffffff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{display:inline-flex;opacity:0}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{align-items:center;background-color:var(--el-color-white);display:inline-flex;height:70px;justify-content:center;-o-object-fit:contain;object-fit:contain;position:relative;width:70px;z-index:1}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);height:26px;position:absolute;right:-17px;text-align:center;top:-7px;transform:rotate(45deg);width:46px}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{cursor:default;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:10}.el-upload-cover:after{content:"";display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;height:100%;width:100%}.el-upload-cover__label{background:var(--el-color-success);height:24px;right:-15px;text-align:center;top:-6px;transform:rotate(45deg);width:40px}.el-upload-cover__label i{color:#fff;font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-cover__progress{display:inline-block;position:static;vertical-align:middle;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{height:100%;left:0;position:absolute;top:0;width:100%}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);bottom:0;height:100%;left:0;position:absolute;text-align:center;width:100%}.el-upload-cover__interact .btn{color:#ffffff;cursor:pointer;display:inline-block;font-size:14px;margin-top:60px;transition:var(--el-transition-md-fade);vertical-align:middle}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#ffffff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{background-color:#ffffff;bottom:0;color:var(--el-text-color-primary);font-size:14px;font-weight:normal;height:36px;left:0;line-height:36px;margin:0;overflow:hidden;padding:0 10px;position:absolute;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar{opacity:1}.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);border-radius:var(--el-popper-border-radius);font-size:12px;line-height:20px;min-width:10px;overflow-wrap:break-word;padding:5px 11px;position:absolute;visibility:visible;word-break:normal;z-index:2000}.el-popper.is-dark{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary);color:var(--el-bg-color)}.el-popper.is-dark>.el-popper__arrow:before{background:var(--el-text-color-primary);border:1px solid var(--el-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{height:10px;position:absolute;width:10px;z-index:-1}.el-popper__arrow:before{background:var(--el-text-color-primary);box-sizing:border-box;content:" ";height:10px;position:absolute;transform:rotate(45deg);width:10px;z-index:-1}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-left-color:transparent!important;border-top-color:transparent!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-right-color:transparent!important;border-top-color:transparent!important}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{color:var(--el-statistic-title-color);font-size:var(--el-statistic-title-font-size);font-weight:var(--el-statistic-title-font-weight);line-height:20px;margin-bottom:4px}.el-statistic__content{color:var(--el-statistic-content-color);font-size:var(--el-statistic-content-font-size);font-weight:var(--el-statistic-content-font-weight)}.el-statistic__value{display:inline-block}.el-statistic__prefix{display:inline-block;margin-right:4px}.el-statistic__suffix{display:inline-block;margin-left:4px}.el-tour{--el-tour-width:520px;--el-tour-padding-primary:12px;--el-tour-font-line-height:var(--el-font-line-height-primary);--el-tour-title-font-size:16px;--el-tour-title-text-color:var(--el-text-color-primary);--el-tour-title-font-weight:400;--el-tour-close-color:var(--el-color-info);--el-tour-font-size:14px;--el-tour-color:var(--el-text-color-primary);--el-tour-bg-color:var(--el-bg-color);--el-tour-border-radius:4px}.el-tour__hollow{transition:all var(--el-transition-duration) ease}.el-tour__content{border-radius:var(--el-tour-border-radius);box-shadow:var(--el-box-shadow-light);outline:none;overflow-wrap:break-word;padding:var(--el-tour-padding-primary);width:var(--el-tour-width)}.el-tour__arrow,.el-tour__content{background:var(--el-tour-bg-color);box-sizing:border-box}.el-tour__arrow{height:10px;pointer-events:none;position:absolute;transform:rotate(45deg);width:10px}.el-tour__content[data-side^=top] .el-tour__arrow{border-left-color:transparent;border-top-color:transparent}.el-tour__content[data-side^=bottom] .el-tour__arrow{border-bottom-color:transparent;border-right-color:transparent}.el-tour__content[data-side^=left] .el-tour__arrow{border-bottom-color:transparent;border-left-color:transparent}.el-tour__content[data-side^=right] .el-tour__arrow{border-right-color:transparent;border-top-color:transparent}.el-tour__content[data-side^=top] .el-tour__arrow{bottom:-5px}.el-tour__content[data-side^=bottom] .el-tour__arrow{top:-5px}.el-tour__content[data-side^=left] .el-tour__arrow{right:-5px}.el-tour__content[data-side^=right] .el-tour__arrow{left:-5px}.el-tour__closebtn{background:transparent;border:none;cursor:pointer;font-size:var(--el-message-close-size,16px);height:40px;outline:none;padding:0;position:absolute;right:0;top:0;width:40px}.el-tour__closebtn .el-tour__close{color:var(--el-tour-close-color);font-size:inherit}.el-tour__closebtn:focus .el-tour__close,.el-tour__closebtn:hover .el-tour__close{color:var(--el-color-primary)}.el-tour__header{padding-bottom:var(--el-tour-padding-primary)}.el-tour__header.show-close{padding-right:calc(var(--el-tour-padding-primary) + var(--el-message-close-size, 16px))}.el-tour__title{color:var(--el-tour-title-text-color);font-size:var(--el-tour-title-font-size);font-weight:var(--el-tour-title-font-weight);line-height:var(--el-tour-font-line-height)}.el-tour__body{color:var(--el-tour-text-color);font-size:var(--el-tour-font-size)}.el-tour__body img,.el-tour__body video{max-width:100%}.el-tour__footer{box-sizing:border-box;display:flex;justify-content:space-between;padding-top:var(--el-tour-padding-primary)}.el-tour__content .el-tour-indicators{display:inline-block;flex:1}.el-tour__content .el-tour-indicator{background:var(--el-color-info-light-9);border-radius:50%;display:inline-block;height:6px;margin-right:6px;width:6px}.el-tour__content .el-tour-indicator.is-active{background:var(--el-color-primary)}.el-tour.el-tour--primary{--el-tour-title-text-color:#fff;--el-tour-text-color:#fff;--el-tour-bg-color:var(--el-color-primary);--el-tour-close-color:#fff}.el-tour.el-tour--primary .el-tour__closebtn:focus .el-tour__close,.el-tour.el-tour--primary .el-tour__closebtn:hover .el-tour__close{color:var(--el-tour-title-text-color)}.el-tour.el-tour--primary .el-button--default{background:#fff;border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-tour.el-tour--primary .el-button--primary{border-color:#fff}.el-tour.el-tour--primary .el-tour-indicator{background:rgba(255,255,255,.15)}.el-tour.el-tour--primary .el-tour-indicator.is-active{background:#fff}.el-tour-parent--hidden{overflow:hidden}.el-anchor{--el-anchor-bg-color:var(--el-bg-color);--el-anchor-padding-indent:14px;--el-anchor-line-height:22px;--el-anchor-font-size:12px;--el-anchor-color:var(--el-text-color-secondary);--el-anchor-active-color:var(--el-color-primary);--el-anchor-marker-bg-color:var(--el-color-primary);background-color:var(--el-anchor-bg-color);position:relative}.el-anchor__marker{background-color:var(--el-anchor-marker-bg-color);border-radius:4px;opacity:0;position:absolute;z-index:0}.el-anchor.el-anchor--vertical .el-anchor__marker{height:14px;left:0;top:8px;transition:top .25s ease-in-out,opacity .25s;width:4px}.el-anchor.el-anchor--vertical .el-anchor__list{padding-left:var(--el-anchor-padding-indent)}.el-anchor.el-anchor--vertical.el-anchor--underline:before{background-color:rgba(5,5,5,.06);content:"";height:100%;left:0;position:absolute;width:2px}.el-anchor.el-anchor--vertical.el-anchor--underline .el-anchor__marker{border-radius:unset;width:2px}.el-anchor.el-anchor--horizontal .el-anchor__marker{bottom:0;height:2px;transition:left .25s ease-in-out,opacity .25s,width .25s;width:20px}.el-anchor.el-anchor--horizontal .el-anchor__list{display:flex;padding-bottom:4px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item{padding-left:16px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item:first-child{padding-left:0}.el-anchor.el-anchor--horizontal.el-anchor--underline:before{background-color:rgba(5,5,5,.06);bottom:0;content:"";height:2px;position:absolute;width:100%}.el-anchor.el-anchor--horizontal.el-anchor--underline .el-anchor__marker{border-radius:unset;height:2px}.el-anchor__item{display:flex;flex-direction:column;overflow:hidden}.el-anchor__link{color:var(--el-anchor-color);cursor:pointer;font-size:var(--el-anchor-font-size);line-height:var(--el-anchor-line-height);max-width:100%;outline:none;overflow:hidden;padding:4px 0;text-decoration:none;text-overflow:ellipsis;transition:color var(--el-transition-duration);white-space:nowrap}.el-anchor__link:focus,.el-anchor__link:hover{color:var(--el-anchor-color)}.el-anchor__link.is-active{color:var(--el-anchor-active-color)}.el-anchor .el-anchor__list .el-anchor__item a{display:inline-block}.el-segmented--vertical{flex-direction:column}.el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented{--el-segmented-color:var(--el-text-color-regular);--el-segmented-bg-color:var(--el-fill-color-light);--el-segmented-padding:2px;--el-segmented-item-selected-color:var(--el-color-white);--el-segmented-item-selected-bg-color:var(--el-color-primary);--el-segmented-item-selected-disabled-bg-color:var(--el-color-primary-light-5);--el-segmented-item-hover-color:var(--el-text-color-primary);--el-segmented-item-hover-bg-color:var(--el-fill-color-dark);--el-segmented-item-active-bg-color:var(--el-fill-color-darker);--el-segmented-item-disabled-color:var(--el-text-color-placeholder);align-items:stretch;background:var(--el-segmented-bg-color);border-radius:var(--el-border-radius-base);box-sizing:border-box;color:var(--el-segmented-color);display:inline-flex;font-size:14px;min-height:32px;padding:var(--el-segmented-padding)}.el-segmented__group{align-items:stretch;display:flex;position:relative;width:100%}.el-segmented__item-selected{background:var(--el-segmented-item-selected-bg-color);border-radius:calc(var(--el-border-radius-base) - 2px);height:100%;left:0;pointer-events:none;position:absolute;top:0;transition:all .3s;width:10px}.el-segmented__item-selected.is-disabled{background:var(--el-segmented-item-selected-disabled-bg-color)}.el-segmented__item-selected.is-focus-visible:before{border-radius:inherit;bottom:0;content:"";left:0;outline:2px solid var(--el-segmented-item-selected-bg-color);outline-offset:1px;position:absolute;right:0;top:0}.el-segmented__item{align-items:center;border-radius:calc(var(--el-border-radius-base) - 2px);cursor:pointer;display:flex;flex:1;padding:0 11px}.el-segmented__item:not(.is-disabled):not(.is-selected):hover{background:var(--el-segmented-item-hover-bg-color);color:var(--el-segmented-item-hover-color)}.el-segmented__item:not(.is-disabled):not(.is-selected):active{background:var(--el-segmented-item-active-bg-color)}.el-segmented__item.is-selected,.el-segmented__item.is-selected.is-disabled{color:var(--el-segmented-item-selected-color)}.el-segmented__item.is-disabled{color:var(--el-segmented-item-disabled-color);cursor:not-allowed}.el-segmented__item-input{height:0;margin:0;opacity:0;pointer-events:none;position:absolute;width:0}.el-segmented__item-label{flex:1;line-height:normal;overflow:hidden;text-align:center;text-overflow:ellipsis;transition:color .3s;white-space:nowrap;z-index:1}.el-segmented.is-block{display:flex}.el-segmented.is-block .el-segmented__item{min-width:0}.el-segmented--large{border-radius:var(--el-border-radius-base);font-size:16px;min-height:40px}.el-segmented--large .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 2px)}.el-segmented--large .el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented--large .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 2px);padding:0 11px}.el-segmented--small{border-radius:calc(var(--el-border-radius-base) - 1px);font-size:14px;min-height:24px}.el-segmented--small .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 3px)}.el-segmented--small .el-segmented--vertical .el-segmented__item{padding:7px}.el-segmented--small .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 3px);padding:0 7px}.el-mention{position:relative;width:100%}.el-mention__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-mention__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-mention__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-left-color:transparent;border-top-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:transparent;border-right-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:transparent;border-left-color:transparent}.el-mention__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-right-color:transparent;border-top-color:transparent}.el-mention-dropdown{--el-mention-font-size:var(--el-font-size-base);--el-mention-bg-color:var(--el-bg-color-overlay);--el-mention-shadow:var(--el-box-shadow-light);--el-mention-border:1px solid var(--el-border-color-light);--el-mention-option-color:var(--el-text-color-regular);--el-mention-option-height:34px;--el-mention-option-min-width:100px;--el-mention-option-hover-background:var(--el-fill-color-light);--el-mention-option-selected-color:var(--el-color-primary);--el-mention-option-disabled-color:var(--el-text-color-placeholder);--el-mention-option-loading-color:var(--el-text-color-secondary);--el-mention-option-loading-padding:10px 0;--el-mention-max-height:174px;--el-mention-padding:6px 0;--el-mention-header-padding:10px;--el-mention-footer-padding:10px}.el-mention-dropdown__item{box-sizing:border-box;color:var(--el-mention-option-color);cursor:pointer;font-size:var(--el-mention-font-size);height:var(--el-mention-option-height);line-height:var(--el-mention-option-height);min-width:var(--el-mention-option-min-width);overflow:hidden;padding:0 20px;position:relative;text-overflow:ellipsis;white-space:nowrap}.el-mention-dropdown__item.is-hovering{background-color:var(--el-mention-option-hover-background)}.el-mention-dropdown__item.is-selected{color:var(--el-mention-option-selected-color);font-weight:bold}.el-mention-dropdown__item.is-disabled{background-color:unset;color:var(--el-mention-option-disabled-color);cursor:not-allowed}.el-mention-dropdown{border-radius:var(--el-border-radius-base);box-sizing:border-box;z-index:calc(var(--el-index-top) + 1)}.el-mention-dropdown__loading{color:var(--el-mention-option-loading-color);font-size:12px;margin:0;min-width:var(--el-mention-option-min-width);padding:10px 0;text-align:center}.el-mention-dropdown__wrap{max-height:var(--el-mention-max-height)}.el-mention-dropdown__list{box-sizing:border-box;list-style:none;margin:0;padding:var(--el-mention-padding)}.el-mention-dropdown__header{border-bottom:var(--el-mention-border);padding:var(--el-mention-header-padding)}.el-mention-dropdown__footer{border-top:var(--el-mention-border);padding:var(--el-mention-footer-padding)}.el-splitter{display:flex;height:100%;margin:0;padding:0;position:relative;width:100%}.el-splitter__mask{bottom:0;left:0;position:absolute;right:0;top:0;z-index:999}.el-splitter__mask-horizontal{cursor:ew-resize}.el-splitter__mask-vertical{cursor:ns-resize}.el-splitter__horizontal{flex-direction:row}.el-splitter__vertical{flex-direction:column}.el-splitter-bar{flex:none;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-splitter-bar__dragger{background:transparent;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1}.el-splitter-bar__dragger:after,.el-splitter-bar__dragger:before{background-color:var(--el-border-color-light);content:"";left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:not(.is-lazy):after{display:none}.el-splitter-bar__dragger:after{opacity:.4}.el-splitter-bar__dragger:hover:not(.is-disabled):before{background-color:var(--el-color-primary-light-5)}.el-splitter-bar__dragger-horizontal:after,.el-splitter-bar__dragger-horizontal:before{height:100%;width:2px}.el-splitter-bar__dragger-vertical:after,.el-splitter-bar__dragger-vertical:before{height:2px;width:100%}.el-splitter-bar__dragger-active:after,.el-splitter-bar__dragger-active:before{background-color:var(--el-color-primary-light-3)}.el-splitter-bar__dragger-active.el-splitter-bar__dragger-horizontal:after{transform:translate(calc(-50% + var(--el-splitter-bar-offset)),-50%)}.el-splitter-bar__dragger-active.el-splitter-bar__dragger-vertical:after{transform:translate(-50%,calc(-50% + var(--el-splitter-bar-offset)))}.el-splitter-bar:hover .el-splitter-bar__collapse-icon{opacity:1}.el-splitter-bar__collapse-icon{align-items:center;background:var(--el-border-color-light);border-radius:2px;cursor:pointer;display:flex;justify-content:center;opacity:0;position:absolute;z-index:9}.el-splitter-bar__collapse-icon:hover{background-color:var(--el-color-primary-light-5);opacity:1}.el-splitter-bar__horizontal-collapse-icon-start{height:24px;left:-12px;top:50%;transform:translate(-50%,-50%);width:16px}.el-splitter-bar__horizontal-collapse-icon-end{height:24px;left:12px;top:50%;transform:translate(-50%,-50%);width:16px}.el-splitter-bar__vertical-collapse-icon-start{height:16px;right:50%;top:-12px;transform:translate(50%,-50%);width:24px}.el-splitter-bar__vertical-collapse-icon-end{height:16px;right:50%;top:12px;transform:translate(50%,-50%);width:24px}.el-splitter-panel{box-sizing:border-box;flex-grow:0;overflow:auto;scrollbar-width:thin}',commonConfig=createForm([{name:"id",type:"hidden"},{name:"type",type:"hidden"},{name:"name",text:"表单key",extra:"字段名"},{name:"text",text:"标签文本",extra:"label 标签的文本"},{name:"labelWidth",text:"标签宽度",extra:'表单域标签的的宽度,例如 "50px"。支持 auto。'},{name:"disabled",text:"是否禁用",type:"switch",defaultValue:!1}]),useFormConfig=o=>{const{contentWindow:e}=o.stage.renderer,t=ref$1(),r=ref$1(),s=ref$1({}),a=ref$1(),l=ref$1(),c=computed$1(()=>{var m,_,v,b;return((_=(m=r.value)==null?void 0:m.items)==null?void 0:_.find(C=>C.id===a.value))||((b=(v=r.value)==null?void 0:v.items)==null?void 0:b[0])}),d=computed$1(()=>{var m;return o.fillConfig(((m=c.value)==null?void 0:m.items)||[],t)});let u=new App$1({ua:e==null?void 0:e.navigator.userAgent,disabledFlexible:!0,platform:"editor"});u.mForm=t;const g=()=>{var m;initValue((m=t.value)==null?void 0:m.formState,{initValues:{},config:d.value}).then(_=>{s.value=_})},f=({data:m})=>{var _;m.tmagicRuntimeReady&&((_=e==null?void 0:e.magic)==null||_.onRuntimeReady({getApp(){return u},updateRootConfig(v){r.value=v,u==null||u.setConfig(v,a.value)},updatePageId(v){a.value=v,u==null||u.setPage(v)},select(v){var C;l.value=v,u!=null&&u.getPage(v)&&((C=this.updatePageId)==null||C.call(this,v));const b=getElById()(document,"".concat(v));return b||nextTick().then(()=>getElById()(document,"".concat(v)))},add({config:v,parentId:b}){var y,S,w,E,x;if(!r.value)throw new Error("error");if(!l.value)throw new Error("error");if(!b)throw new Error("error");const C=getNodePath(b,[r.value]).pop();if(!C)throw new Error("未找到父节点");if(v.type!=="page"){const L=(y=u==null?void 0:u.page)==null?void 0:y.getNode(C.id);L&&((S=u==null?void 0:u.page)==null||S.initNode(v,L))}if(C.id!==l.value){const L=(w=C.items)==null?void 0:w.findIndex(k=>k.id===l.value);(E=C.items)==null||E.splice(L+1,0,v)}else(x=C.items)==null||x.push(v);g()},update({config:v,parentId:b}){var S,w;if(!r.value||!u)throw new Error("error");const C=((S=u.dataSourceManager)==null?void 0:S.compiledNode(v))||v;replaceChildNode(reactive$1(C),[r.value],b);const y=(w=u.page)==null?void 0:w.getNode(v.id);y&&y.setData(v),g()},remove({id:v,parentId:b}){var w,E;if(!r.value)throw new Error("error");const C=getNodePath(v,[r.value]).pop();if(!C)throw new Error("未找到目标元素");const y=getNodePath(b,[r.value]).pop();if(!y)throw new Error("未找到父元素");C.type==="page"?u==null||u.deletePage():(w=u==null?void 0:u.page)==null||w.deleteNode(C.id);const S=(E=y.items)==null?void 0:E.findIndex(x=>x.id===C.id);y.items.splice(S,1),g()}}))};return e==null||e.addEventListener("message",f),onBeforeUnmount(()=>{u==null||u.destroy(),u=void 0,e==null||e.removeEventListener("message",f)}),{mForm:t,config:c,formConfig:d,values:s}},_sfc_main$2=defineComponent({__name:"App",props:{stage:{},fillConfig:{type:Function}},setup(o){const e=o,{mForm:t,formConfig:r,config:s,values:a}=useFormConfig(e);return watch(r,async()=>{setTimeout(()=>{var c,d,u,g;const l=(d=(c=e.stage.renderer)==null?void 0:c.getDocument())==null?void 0:d.querySelector(".m-form");l&&((g=(u=e.stage.renderer)==null?void 0:u.contentWindow)==null||g.magic.onPageElUpdate(l))})}),(l,c)=>{var d,u;return openBlock(),createBlock(unref(_sfc_main$g$1),{ref_key:"mForm",ref:t,key:(d=unref(s))==null?void 0:d.id,"data-tmagic-id":(u=unref(s))==null?void 0:u.id,config:unref(r),"init-values":unref(a)},null,8,["data-tmagic-id","config","init-values"])}}}),checkbox=createForm([{name:"activeValue",text:"选中时的值",defaultValue:!0},{name:"inactiveValue",text:"没有选中时的值",defaultValue:!1}]),display=createForm([]),number=createForm([{type:"number",name:"min",text:"最小值"},{type:"number",name:"max",text:"最大值"},{type:"number",name:"step",text:"步数"},{name:"placeholder",text:"placeholder"}]),switchConfig=createForm([]),text=createForm([{name:"placeholder",text:"placeholder"},{name:"append",legend:"后置按钮",type:"fieldset",labelWidth:"80px",checkbox:!0,expand:!0,items:[{name:"type",type:"hidden",defaultValue:"button"},{name:"text",text:"按钮文案"},{name:"handler",type:"vs-code",height:"400px",text:"点击"}]}]),configs={text,checkbox,display,number,switch:switchConfig},COMPONENT_GROUP_LIST=[{title:"容器",items:[{text:"普通容器",type:"container",data:{items:[]}},{text:"表格",type:"table",data:{items:[]}},{text:"组列表",type:"group-list",data:{items:[]}},{text:"面板",type:"panel",data:{items:[]}},{text:"行",type:"row",data:{items:[]}}]},{title:"表单组件",items:[{text:"输入框",type:"text",data:{text:"输入框",name:"text"}},{text:"数字输入框",type:"number",data:{text:"数字输入框",name:"number"}},{text:"文本域",type:"textarea",data:{text:"文本域",name:"textarea"}},{text:"链接",type:"link",data:{text:"链接",name:"link"}},{text:"日期",type:"datetime",data:{text:"日期",name:"datetime"}},{text:"时间",type:"time",data:{text:"时间",name:"time"}},{text:"选中器",type:"select",data:{text:"选中器",name:"select"}},{text:"级联选择器",type:"cascader",data:{text:"级联选择器",name:"cascader"}},{text:"开关",type:"switch",data:{text:"开关",name:"switch"}},{text:"多选框",type:"checkbox",data:{text:"多选框",name:"checkbox"}},{text:"多选组",type:"checkboxGroup",data:{text:"多选组",name:"checkboxGroup"}},{text:"单选框",type:"radio",data:{text:"单选框",name:"radio"}},{text:"单选组",type:"radioGroup",data:{text:"单选组",name:"radioGroup"}},{text:"取色器",type:"colorPicker",data:{text:"取色器",name:"colorPicker"}}]}],propsConfigs=configs,useRuntime=({plugins:o=[],fillConfig:e=t=>t}={})=>{const t=r=>{var c;const s=(c=r.renderer)==null?void 0:c.getDocument();s&&(injectStyle$1(s,cssStyle),injectStyle$1(s,"html,\n body,\n #app {\n width: 100%;\n height: 100%;\n margin: 0;\n }\n ::-webkit-scrollbar {\n width: 0;\n }\n "));const a=globalThis.document.createElement("div");a.id="app",a.style.overflow="auto";const l=createApp(_sfc_main$2,{stage:r,fillConfig:e});return l.use(index$4),o.forEach(d=>l.use(d)),l.mount(a),setTimeout(()=>{uiService.set("showRule",!1)}),a};return propsService.usePlugin({async afterFillConfig(r,s,a="80px"){return[{type:"tab",items:[{title:"属性",labelWidth:a,items:[...commonConfig,...s]}]}]}}),editorService.usePlugin({async afterGetLayout(){return Layout.RELATIVE}}),onBeforeUnmount(()=>{propsService.removeAllPlugins(),editorService.removeAllPlugins()}),{render:t}},_sfc_main$1=defineComponent({__name:"FormEditor",setup(o){formDsl.forEach(l=>{traverseNode(l,c=>{c.type=c.type||(c.items?"container":"text"),c.id="".concat(c.type,"_").concat(guid()),c.style={left:0,top:0,position:"relative"}})});const e=ref$1({type:NodeType.ROOT,id:"app_form",items:[]}),{render:t}=useRuntime(),r=useRouter(),s={left:[{type:"text",text:"魔方"},{type:"component",component:_sfc_main$6}],center:["delete","undo","redo","zoom"],right:[{type:"button",text:"Editor Playground",handler:()=>r.push("/")},{type:"button",text:"Form Playground",handler:()=>r.push("form")},{type:"button",text:"Table Playground",handler:()=>r.push("table")},"/",{type:"button",icon:document_default,tooltip:"源码",handler:l=>l==null?void 0:l.uiService.set("showSrc",!(l!=null&&l.uiService.get("showSrc")))}]},a={type:"tabs",status:"组件",items:["component-list","layer"]};return(l,c)=>(openBlock(),createBlock(unref(_sfc_main$1s),{modelValue:e.value,"onUpdate:modelValue":c[0]||(c[0]=d=>e.value=d),menu:s,sidebar:a,"component-group-list":unref(COMPONENT_GROUP_LIST),"props-configs":unref(propsConfigs),render:unref(t),"disabled-page-fragment":!0,"disabled-stage-overlay":!0,"stage-rect":{width:"calc(100% - 70px)",height:"100%"},"moveable-options":{resizable:!1}},{"layer-node-label":withCtx(({data:d})=>[createTextVNode(toDisplayString(d.text||d.name||"container"),1)]),_:1},8,["modelValue","component-group-list","props-configs","render"]))}}),_hoisted_1={style:{width:"100%"}},_hoisted_2={class:"table-content"},_sfc_main=defineComponent({__name:"Table",setup(__props){const router=useRouter(),columns=ref$1([{type:"expand",prop:"b",table:[{prop:"a",label:"1"}]},{prop:"a",label:"1231"},{label:"操作",actions:[{type:"delete",buttonType:"danger",disabled:o=>o.a==="a1",display:o=>o.a!=="b1",text:"删除",handler:o=>{console.log(o)}}]}]),data=ref$1([{a:"a1",b:[{a:1}]},{a:"b1",b:[{a:2}]},{a:"c2",b:[{a:3}]}]),menu=[{type:"button",text:"Editor Playground",handler:()=>router.push("/")},{type:"button",text:"Form Editor Playground",handler:()=>router.push("form-editor")},{type:"button",text:"Form Playground",handler:()=>router.push("form")}];function change(value){try{columns.value=eval(value),tMagicMessage.success("更新成功")}catch(o){tMagicMessage.error(o.message)}}function changeData(value){try{data.value=eval(value),tMagicMessage.success("更新成功")}catch(o){tMagicMessage.error(o.message)}}return(o,e)=>(openBlock(),createElementBlock("div",_hoisted_1,[createVNode(NavMenu,{data:menu}),createBaseVNode("div",_hoisted_2,[createVNode(unref(_sfc_main$1t),{class:"left-panel",columns:columns.value,data:data.value,"show-header":!0,"rowkey-name":"a"},null,8,["columns","data"]),createVNode(unref(_sfc_main$i$2),{class:"pagination",total:100,"page-size":10,"current-page":1}),createVNode(unref(_sfc_main$5$4),{class:"right-panel",modelValue:"columns"},{default:withCtx(()=>[createVNode(unref(_sfc_main$6$3),{label:"columns",name:"columns"},{default:withCtx(()=>[createVNode(unref(_sfc_main$1q),{class:"code-editor-content","init-values":columns.value,onSave:change},null,8,["init-values"])]),_:1}),createVNode(unref(_sfc_main$6$3),{label:"data",name:"data"},{default:withCtx(()=>[createVNode(unref(_sfc_main$1q),{class:"code-editor-content","init-values":data.value,onSave:changeData},null,8,["init-values"])]),_:1})]),_:1})])]))}}),routes=[{path:"/",component:_sfc_main$5},{path:"/form",component:_sfc_main$3},{path:"/form-editor",component:_sfc_main$1},{path:"/table",component:_sfc_main}],router=createRouter({history:createWebHashHistory(),routes}),index=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));globalThis.MonacoEnvironment={getWorker(o,e){return e==="json"?new WorkerWrapper$2:e==="css"||e==="scss"||e==="less"?new WorkerWrapper$4:e==="html"||e==="handlebars"||e==="razor"?new WorkerWrapper$3:e==="typescript"||e==="javascript"?new WorkerWrapper$1:new WorkerWrapper$5}};const adapter=sessionStorage.getItem("tmagic-playground-ui-adapter")||"element-plus";let adapterModule;adapter==="tdesign-vue-next"?(__vitePreload(()=>Promise.resolve({}),__vite__mapDeps([6])),adapterModule=__vitePreload(()=>import("./tmagic-tdesign-vue-next-adapter-C4oxi0Ok.js"),__vite__mapDeps([7,8,9]))):(__vitePreload(()=>Promise.resolve().then(()=>index),void 0),adapterModule=__vitePreload(()=>import("./tmagic-element-plus-adapter-BQkreGDv.js"),__vite__mapDeps([10,8])));adapterModule.then(o=>{const e=createApp(App);e.use(router),e.use(index$1,o.default),e.mount("#app")});export{render as $,isFunction$3 as A,isObject$5 as B,isVNode as C,Comment as D,merge$1 as E,Fragment as F,computed$1 as G,ref$1 as H,inject as I,getCurrentInstance$1 as J,h$1 as K,onUpdated as L,watch as M,onBeforeUnmount as N,onMounted as O,onUnmounted as P,readonly as Q,reactive$1 as R,SetCache as S,toRefs as T,nextTick as U,throttle$2 as V,Teleport as W,provide as X,defineComponent as Y,createVNode as Z,mergeProps as _,__vite_legacy_guard,toString as a,cloneVNode as a$,isEqual$1 as a0,onActivated as a1,onDeactivated as a2,onBeforeMount as a3,Text$1 as a4,createPopper as a5,withDirectives as a6,vShow as a7,debounce as a8,Transition as a9,isObject$6 as aA,isString$3 as aB,isRef as aC,hasOwn as aD,warn as aE,isFunction$4 as aF,camelize$1 as aG,NOOP as aH,circle_close_default as aI,circle_check_default as aJ,loading_default as aK,close_default as aL,circle_close_filled_default as aM,warning_filled_default as aN,info_filled_default as aO,success_filled_default as aP,toRef as aQ,useAttrs as aR,useSlots as aS,view_default as aT,hide_default as aU,createCommentVNode as aV,normalizeClass as aW,resolveDynamicComponent as aX,withModifiers as aY,toDisplayString as aZ,normalizeStyle as a_,pick as aa,watchEffect as ab,cloneDeep as ac,get as ad,isEmpty$2 as ae,isPlainObject as af,createTextVNode as ag,set as ah,getCurrentScope as ai,onScopeDispose as aj,unref as ak,resolveDirective as al,Sortable as am,shallowRef as an,createBlock as ao,createSlots as ap,withCtx as aq,useTemplateRef as ar,createElementBlock as as,renderSlot as at,openBlock as au,createBaseVNode as av,baseClone as aw,baseFindIndex as ax,map as ay,isArray$3 as az,arrayIncludes as b,renderList as b0,dayjs as b1,isDate$1 as b2,getDefaultExportFromCjs as b3,triggerRef as b4,toRaw as b5,vModelCheckbox as b6,vModelRadio as b7,check_default as b8,arrow_right_default as b9,zoom_in_default as bA,delete_default as bB,createApp as bC,hyphenate as bD,shallowReactive as bE,markRaw as bF,baseGet as bG,castPath as bH,toKey as bI,flatRest as bJ,copyObject as bK,createWebWorker as bL,languages as bM,editor as bN,Range as bO,Uri as bP,MarkerSeverity as bQ,MarkerTag as bR,typescriptDefaults as bS,onBeforeUpdate as ba,arrow_down_default as bb,withKeys as bc,vModelText as bd,isPromise as be,toHandlers as bf,clock_default as bg,calendar_default as bh,arrow_up_default as bi,union as bj,flatten as bk,d_arrow_left_default as bl,arrow_left_default as bm,d_arrow_right_default as bn,resolveComponent as bo,normalizeProps as bp,guardReactiveProps as bq,TransitionGroup as br,minus_default as bs,plus_default as bt,capitalize$1 as bu,isPlainObject$1 as bv,toHandlerKey as bw,more_filled_default as bx,question_filled_default as by,document_default as bz,arrayIncludesWith as c,cacheHas as d,baseRest as e,baseFlatten as f,isObjectLike as g,isArray$2 as h,isArrayLikeObject as i,baseGetTag as j,arrayMap as k,baseUnary as l,baseIteratee as m,nodeUtil as n,baseForOwn as o,baseAssignValue as p,isSymbol as q,identity$1 as r,getAllKeysIn as s,toNumber as t,basePickBy as u,baseProperty as v,baseToString as w,isIterateeCall as x,baseUniq as y,arrayFilter as z};
//# sourceMappingURL=index-DSSdaNAf.js.map