@latticexyz/explorer 2.2.24-bd97268cd2037f6372211e05367605636b1ee78e → 2.2.24-c41f873202e1f239a54c1ee5a48d86ea40f2f7c2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/packages/explorer/.next/BUILD_ID +1 -1
- package/.next/standalone/packages/explorer/.next/app-build-manifest.json +68 -68
- package/.next/standalone/packages/explorer/.next/app-path-routes-manifest.json +1 -1
- package/.next/standalone/packages/explorer/.next/build-manifest.json +5 -5
- package/.next/standalone/packages/explorer/.next/prerender-manifest.json +1 -1
- package/.next/standalone/packages/explorer/.next/react-loadable-manifest.json +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/decode/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/page.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/interact/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/observe/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/[worldAddress]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/[chainName]/worlds/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/(explorer)/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/_not-found.rsc +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay/page_client-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay.html +1 -1
- package/.next/standalone/packages/explorer/.next/server/app/internal/observer-relay.rsc +1 -1
- package/.next/standalone/packages/explorer/.next/server/app-paths-manifest.json +3 -3
- package/.next/standalone/packages/explorer/.next/server/chunks/2482.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/chunks/3556.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/chunks/8266.js +2 -2
- package/.next/standalone/packages/explorer/.next/server/chunks/9155.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/pages/404.html +1 -1
- package/.next/standalone/packages/explorer/.next/server/pages/500.html +1 -1
- package/.next/standalone/packages/explorer/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/packages/explorer/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/102.24ed6e4d0d32b0ec.js +1 -0
- package/.next/standalone/packages/explorer/.next/static/chunks/170.26a06a99ec2cba44.js +1 -0
- package/.next/standalone/packages/explorer/.next/static/chunks/{4371-32af5efa361e6a25.js → 4371-58af7d8c29ef639d.js} +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/{4433-22ca486eff588b63.js → 4433-c5bf28c492dd050e.js} +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/{5331df31-4f64f325f8f52a23.js → 5331df31-3810623445e9dfc9.js} +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/{5820.8ab8d986b8e1df69.js → 5820.3e93ce514a5a2039.js} +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/{5921-9031ae3e65ad35e5.js → 5921-01fd53220856cdf4.js} +2 -2
- package/.next/standalone/packages/explorer/.next/static/chunks/{626-13f0830d4c824eab.js → 626-35a27f209591c161.js} +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/{8702-e424e97fd25c7efb.js → 8702-8d7c7e04b3be341f.js} +1 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/page-3aa583846ba9ff0c.js +9 -0
- package/.next/standalone/packages/explorer/.next/static/chunks/{webpack-780f2e070446a913.js → webpack-bb847e7f171dfc4d.js} +1 -1
- package/.next/standalone/packages/explorer/.next/static/css/{0a39d79f53acf8be.css → 168f57a1ff2452bc.css} +1 -1
- package/.next/standalone/packages/explorer/.next/static/media/19cfc7226ec3afaa-s.woff2 +0 -0
- package/.next/standalone/packages/explorer/.next/static/media/21350d82a1f187e9-s.woff2 +0 -0
- package/.next/standalone/packages/explorer/.next/static/media/ba9851c3c22cd980-s.woff2 +0 -0
- package/.next/standalone/packages/explorer/.next/static/media/c5fe6dc8356a8c31-s.woff2 +0 -0
- package/package.json +10 -10
- package/.next/standalone/packages/explorer/.next/static/chunks/102.80c8ee0ae4f37c36.js +0 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/170.9429fa7b277a0053.js +0 -1
- package/.next/standalone/packages/explorer/.next/static/chunks/app/(explorer)/[chainName]/worlds/[worldAddress]/explore/page-b8b887fb1d49b943.js +0 -9
- package/.next/standalone/packages/explorer/.next/static/media/26a46d62cd723877-s.woff2 +0 -0
- package/.next/standalone/packages/explorer/.next/static/media/55c55f0601d81cf3-s.woff2 +0 -0
- package/.next/standalone/packages/explorer/.next/static/media/581909926a08bbc8-s.woff2 +0 -0
- package/.next/standalone/packages/explorer/.next/static/media/97e0cb1ae144a2a9-s.woff2 +0 -0
- /package/.next/standalone/packages/explorer/.next/static/{rGWXIzFnv37CasotyB453 → HZmJt20C4vUC7TrQ6oRts}/_buildManifest.js +0 -0
- /package/.next/standalone/packages/explorer/.next/static/{rGWXIzFnv37CasotyB453 → HZmJt20C4vUC7TrQ6oRts}/_ssgManifest.js +0 -0
|
@@ -1074,7 +1074,7 @@ ${e.toString()}`}}class Dy{constructor(e=new DF,t=!1,s,x=!1){this._services=e,th
|
|
|
1074
1074
|
\`\`\`
|
|
1075
1075
|
'top', 'center', 'bottom'
|
|
1076
1076
|
\`\`\`
|
|
1077
|
-
`,constraint:function(e){return!!OR.Kn(e)&&!!((OR.hj(e.lineNumber)||OR.HD(e.lineNumber))&&(OR.o8(e.at)||OR.HD(e.at)))},schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},e.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}}(em||(em={}));class UL{constructor(e){e.addImplementation(1e4,"code-editor",(e,t)=>{let s=e.get(Ot).getFocusedCodeEditor();return!!(s&&s.hasTextFocus())&&this._runEditorCommand(e,s,t)}),e.addImplementation(1e3,"generic-dom-input-textarea",(e,t)=>{let s=RS();return!!(s&&["input","textarea"].indexOf(s.tagName.toLowerCase())>=0)&&(this.runDOMCommand(s),!0)}),e.addImplementation(0,"generic-dom",(e,t)=>{let s=e.get(Ot).getActiveCodeEditor();return!!s&&(s.focus(),this._runEditorCommand(e,s,t))})}_runEditorCommand(e,t,s){let x=this.runEditorCommand(e,t,s);return!x||x}}!function(e){class t extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[dw.moveTo(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)])&&2!==t.revealType&&e.revealAllCursors(t.source,!0,!0))}}e.MoveTo=Og(new t({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=Og(new t({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class s extends Uh{runCoreEditorCommand(e,t){e.model.pushStackElement();let s=this._getColumnSelectResult(e,e.getPrimaryCursorState(),e.getCursorColumnSelectData(),t);null!==s&&(e.setCursorStates(t.source,3,s.viewStates.map(e=>dp.fromViewState(e))),e.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:s.fromLineNumber,fromViewVisualColumn:s.fromVisualColumn,toViewLineNumber:s.toLineNumber,toViewVisualColumn:s.toVisualColumn}),s.reversed?e.revealTopMostCursor(t.source):e.revealBottomMostCursor(t.source))}}e.ColumnSelect=Og(new class extends s{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(e,t,s,x){if(void 0===x.position||void 0===x.viewPosition||void 0===x.mouseColumn)return null;let E=e.model.validatePosition(x.position),a=e.coordinatesConverter.validateViewPosition(new N0.L(x.viewPosition.lineNumber,x.viewPosition.column),E),r=x.doColumnSelect?s.fromViewLineNumber:a.lineNumber,i=x.doColumnSelect?s.fromViewVisualColumn:x.mouseColumn-1;return dg.columnSelect(e.cursorConfig,e,r,i,a.lineNumber,x.mouseColumn-1)}}),e.CursorColumnSelectLeft=Og(new class extends s{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(e,t,s,x){return dg.columnSelectLeft(e.cursorConfig,e,s)}}),e.CursorColumnSelectRight=Og(new class extends s{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(e,t,s,x){return dg.columnSelectRight(e.cursorConfig,e,s)}});class x extends s{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,s,x){return dg.columnSelectUp(e.cursorConfig,e,s,this._isPaged)}}e.CursorColumnSelectUp=Og(new x({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=Og(new x({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3595,linux:{primary:0}}}));class E extends s{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,s,x){return dg.columnSelectDown(e.cursorConfig,e,s,this._isPaged)}}e.CursorColumnSelectDown=Og(new E({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=Og(new E({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3596,linux:{primary:0}}}));class a extends Uh{constructor(){super({id:"cursorMove",precondition:void 0,metadata:ep.metadata})}runCoreEditorCommand(e,t){let s=ep.parse(t);s&&this._runCursorMove(e,t.source,s)}_runCursorMove(e,t,s){e.model.pushStackElement(),e.setCursorStates(t,3,a._move(e,e.getCursorStates(),s)),e.revealAllCursors(t,!0)}static _move(e,t,s){let x=s.select,E=s.value;switch(s.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return dw.simpleMove(e,t,s.direction,x,E,s.unit);case 11:case 13:case 12:case 14:return dw.viewportMove(e,t,s.direction,x,E);default:return null}}}e.CursorMoveImpl=a,e.CursorMove=Og(new a);class r extends Uh{constructor(e){super(e),this._staticArgs=e.args}runCoreEditorCommand(e,t){let s=this._staticArgs;-1===this._staticArgs.value&&(s={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:t.pageSize||e.cursorConfig.pageSize}),e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.simpleMove(e,e.getCursorStates(),s.direction,s.select,s.value,s.unit)),e.revealAllCursors(t.source,!0)}}e.CursorLeft=Og(new r({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=Og(new r({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1039}})),e.CursorRight=Og(new r({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=Og(new r({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1041}})),e.CursorUp=Og(new r({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=Og(new r({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=Og(new r({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:11}})),e.CursorPageUpSelect=Og(new r({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1035}})),e.CursorDown=Og(new r({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=Og(new r({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=Og(new r({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:12}})),e.CursorPageDownSelect=Og(new r({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1036}})),e.CreateCursor=Og(new class extends Uh{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(e,t){let s;if(!t.position)return;s=t.wholeLine?dw.line(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition):dw.moveTo(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition);let x=e.getCursorStates();if(x.length>1){let E=s.modelState?s.modelState.position:null,a=s.viewState?s.viewState.position:null;for(let s=0,r=x.length;s<r;s++){let r=x[s];if((!E||r.modelState.selection.containsPosition(E))&&(!a||r.viewState.selection.containsPosition(a))){x.splice(s,1),e.model.pushStackElement(),e.setCursorStates(t.source,3,x);return}}}x.push(s),e.model.pushStackElement(),e.setCursorStates(t.source,3,x)}}),e.LastCursorMoveToSelect=Og(new class extends Uh{constructor(){super({id:"_lastCursorMoveToSelect",precondition:void 0})}runCoreEditorCommand(e,t){if(!t.position)return;let s=e.getLastAddedCursorIndex(),x=e.getCursorStates(),E=x.slice(0);E[s]=dw.moveTo(e,x[s],!0,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,E)}});class i extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.moveToBeginningOfLine(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorHome=Og(new i({inSelectionMode:!1,id:"cursorHome",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),e.CursorHomeSelect=Og(new i({inSelectionMode:!0,id:"cursorHomeSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));class n extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e.getCursorStates())),e.revealAllCursors(t.source,!0)}_exec(e){let t=[];for(let s=0,x=e.length;s<x;s++){let x=e[s],E=x.modelState.position.lineNumber;t[s]=dp.fromModelState(x.modelState.move(this._inSelectionMode,E,1,0))}return t}}e.CursorLineStart=Og(new n({inSelectionMode:!1,id:"cursorLineStart",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:287}}})),e.CursorLineStartSelect=Og(new n({inSelectionMode:!0,id:"cursorLineStartSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:1311}}}));class _ extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.moveToEndOfLine(e,e.getCursorStates(),this._inSelectionMode,t.sticky||!1)),e.revealAllCursors(t.source,!0)}}e.CursorEnd=Og(new _({inSelectionMode:!1,id:"cursorEnd",precondition:void 0,kbOpts:{args:{sticky:!1},weight:0,kbExpr:eG.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},metadata:{description:"Go to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:ch.NC("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}})),e.CursorEndSelect=Og(new _({inSelectionMode:!0,id:"cursorEndSelect",precondition:void 0,kbOpts:{args:{sticky:!1},weight:0,kbExpr:eG.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},metadata:{description:"Select to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:ch.NC("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}}));class T extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e,e.getCursorStates())),e.revealAllCursors(t.source,!0)}_exec(e,t){let s=[];for(let x=0,E=t.length;x<E;x++){let E=t[x],a=E.modelState.position.lineNumber,r=e.model.getLineMaxColumn(a);s[x]=dp.fromModelState(E.modelState.move(this._inSelectionMode,a,r,0))}return s}}e.CursorLineEnd=Og(new T({inSelectionMode:!1,id:"cursorLineEnd",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:291}}})),e.CursorLineEndSelect=Og(new T({inSelectionMode:!0,id:"cursorLineEndSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:1315}}}));class S extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.moveToBeginningOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorTop=Og(new S({inSelectionMode:!1,id:"cursorTop",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2062,mac:{primary:2064}}})),e.CursorTopSelect=Og(new S({inSelectionMode:!0,id:"cursorTopSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3086,mac:{primary:3088}}}));class R extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.moveToEndOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorBottom=Og(new R({inSelectionMode:!1,id:"cursorBottom",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2061,mac:{primary:2066}}})),e.CursorBottomSelect=Og(new R({inSelectionMode:!0,id:"cursorBottomSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3085,mac:{primary:3090}}}));class O extends Uh{constructor(){super({id:"editorScroll",precondition:void 0,metadata:eB.metadata})}determineScrollMethod(e){return[6].includes(e.unit)&&[4,2].includes(e.direction)?this._runHorizontalEditorScroll.bind(this):[1,2,3,4,5,6].includes(e.unit)&&[1,3].includes(e.direction)?this._runVerticalEditorScroll.bind(this):null}runCoreEditorCommand(e,t){let s=eB.parse(t);if(!s)return;let x=this.determineScrollMethod(s);x&&x(e,t.source,s)}_runVerticalEditorScroll(e,t,s){let x=this._computeDesiredScrollTop(e,s);if(s.revealCursor){let E=e.getCompletelyVisibleViewRangeAtScrollTop(x);e.setCursorStates(t,3,[dw.findPositionInViewportIfOutside(e,e.getPrimaryCursorState(),E,s.select)])}e.viewLayout.setScrollPosition({scrollTop:x},0)}_computeDesiredScrollTop(e,t){let s;if(1===t.unit){let s;let x=e.viewLayout.getFutureViewport(),E=e.getCompletelyVisibleViewRangeAtScrollTop(x.top),a=e.coordinatesConverter.convertViewRangeToModelRange(E);s=1===t.direction?Math.max(1,a.startLineNumber-t.value):Math.min(e.model.getLineCount(),a.startLineNumber+t.value);let r=e.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(s,1));return e.viewLayout.getVerticalOffsetForLineNumber(r.lineNumber)}if(5===t.unit){let s=0;return 3===t.direction&&(s=e.model.getLineCount()-e.cursorConfig.pageSize),e.viewLayout.getVerticalOffsetForLineNumber(s)}s=3===t.unit?e.cursorConfig.pageSize*t.value:4===t.unit?Math.round(e.cursorConfig.pageSize/2)*t.value:t.value;let x=(1===t.direction?-1:1)*s;return e.viewLayout.getCurrentScrollTop()+x*e.cursorConfig.lineHeight}_runHorizontalEditorScroll(e,t,s){let x=this._computeDesiredScrollLeft(e,s);e.viewLayout.setScrollPosition({scrollLeft:x},0)}_computeDesiredScrollLeft(e,t){let s=(4===t.direction?-1:1)*t.value;return e.viewLayout.getCurrentScrollLeft()+s*e.cursorConfig.typicalHalfwidthCharacterWidth}}e.EditorScrollImpl=O,e.EditorScroll=Og(new O),e.ScrollLineUp=Og(new class extends Uh{constructor(){super({id:"scrollLineUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2064,mac:{primary:267}}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Up,by:eB.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollPageUp=Og(new class extends Uh{constructor(){super({id:"scrollPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Up,by:eB.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollEditorTop=Og(new class extends Uh{constructor(){super({id:"scrollEditorTop",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Up,by:eB.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollLineDown=Og(new class extends Uh{constructor(){super({id:"scrollLineDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2066,mac:{primary:268}}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Down,by:eB.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollPageDown=Og(new class extends Uh{constructor(){super({id:"scrollPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Down,by:eB.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollEditorBottom=Og(new class extends Uh{constructor(){super({id:"scrollEditorBottom",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Down,by:eB.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollLeft=Og(new class extends Uh{constructor(){super({id:"scrollLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Left,by:eB.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollRight=Og(new class extends Uh{constructor(){super({id:"scrollRight",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Right,by:eB.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:s.source})}});class A extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[dw.word(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position)]),2!==t.revealType&&e.revealAllCursors(t.source,!0,!0))}}e.WordSelect=Og(new A({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),e.WordSelectDrag=Og(new A({inSelectionMode:!0,id:"_wordSelectDrag",precondition:void 0})),e.LastCursorWordSelect=Og(new class extends Uh{constructor(){super({id:"lastCursorWordSelect",precondition:void 0})}runCoreEditorCommand(e,t){if(!t.position)return;let s=e.getLastAddedCursorIndex(),x=e.getCursorStates(),E=x.slice(0),a=x[s];E[s]=dw.word(e,a,a.modelState.hasSelection(),t.position),e.model.pushStackElement(),e.setCursorStates(t.source,3,E)}});class o extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[dw.line(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),2!==t.revealType&&e.revealAllCursors(t.source,!1,!0))}}e.LineSelect=Og(new o({inSelectionMode:!1,id:"_lineSelect",precondition:void 0})),e.LineSelectDrag=Og(new o({inSelectionMode:!0,id:"_lineSelectDrag",precondition:void 0}));class N extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){if(!t.position)return;let s=e.getLastAddedCursorIndex(),x=e.getCursorStates(),E=x.slice(0);E[s]=dw.line(e,x[s],this._inSelectionMode,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,E)}}e.LastCursorLineSelect=Og(new N({inSelectionMode:!1,id:"lastCursorLineSelect",precondition:void 0})),e.LastCursorLineSelectDrag=Og(new N({inSelectionMode:!0,id:"lastCursorLineSelectDrag",precondition:void 0})),e.CancelSelection=Og(new class extends Uh{constructor(){super({id:"cancelSelection",precondition:eG.hasNonEmptySelection,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[dw.cancelSelection(e,e.getPrimaryCursorState())]),e.revealAllCursors(t.source,!0)}}),e.RemoveSecondaryCursors=Og(new class extends Uh{constructor(){super({id:"removeSecondaryCursors",precondition:eG.hasMultipleSelections,kbOpts:{weight:1,kbExpr:eG.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[e.getPrimaryCursorState()]),e.revealAllCursors(t.source,!0),NP(ch.NC("removedCursor","Removed secondary cursors"))}}),e.RevealLine=Og(new class extends Uh{constructor(){super({id:"revealLine",precondition:void 0,metadata:em.metadata})}runCoreEditorCommand(e,t){let s=t.lineNumber||0,x="number"==typeof s?s+1:parseInt(s)+1;x<1&&(x=1);let E=e.model.getLineCount();x>E&&(x=E);let a=new OQ.e(x,1,x,e.model.getLineMaxColumn(x)),r=0;if(t.at)switch(t.at){case em.RawAtArgument.Top:r=3;break;case em.RawAtArgument.Center:r=1;break;case em.RawAtArgument.Bottom:r=4}let i=e.coordinatesConverter.convertModelRangeToViewRange(a);e.revealRange(t.source,!1,i,r,0)}}),e.SelectAll=new class extends UL{constructor(){super(Ob)}runDOMCommand(e){TY&&(e.focus(),e.select()),e.ownerDocument.execCommand("selectAll")}runEditorCommand(e,t,s){let x=t._getViewModel();x&&this.runCoreEditorCommand(x,s)}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates("keyboard",3,[dw.selectAll(e,e.getPrimaryCursorState())])}},e.SetSelection=Og(new class extends Uh{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(e,t){t.selection&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[dp.fromModelSelection(t.selection)]))}})}(ef||(ef={}));let UC=Oo.Ao.and(eG.textInputFocus,eG.columnSelection);function Ul(e,t){Oh.registerKeybindingRule({id:e,primary:t,when:UC,weight:1})}function Uu(e){return e.register(),e}Ul(ef.CursorColumnSelectLeft.id,1039),Ul(ef.CursorColumnSelectRight.id,1041),Ul(ef.CursorColumnSelectUp.id,1040),Ul(ef.CursorColumnSelectPageUp.id,1035),Ul(ef.CursorColumnSelectDown.id,1042),Ul(ef.CursorColumnSelectPageDown.id,1036),function(e){class t extends Of{runEditorCommand(e,t,s){let x=t._getViewModel();x&&this.runCoreEditingCommand(t,x,s||{})}}e.CoreEditingCommand=t,e.LineBreakInsert=Og(new class extends t{constructor(){super({id:"lineBreakInsert",precondition:eG.writable,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(e,t,s){e.pushUndoStop(),e.executeCommands(this.id,Ue.lineBreakInsert(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection)))}}),e.Outdent=Og(new class extends t{constructor(){super({id:"outdent",precondition:eG.writable,kbOpts:{weight:0,kbExpr:Oo.Ao.and(eG.editorTextFocus,eG.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(e,t,s){e.pushUndoStop(),e.executeCommands(this.id,UN.outdent(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection))),e.pushUndoStop()}}),e.Tab=Og(new class extends t{constructor(){super({id:"tab",precondition:eG.writable,kbOpts:{weight:0,kbExpr:Oo.Ao.and(eG.editorTextFocus,eG.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(e,t,s){e.pushUndoStop(),e.executeCommands(this.id,UN.tab(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection))),e.pushUndoStop()}}),e.DeleteLeft=Og(new class extends t{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(e,t,s){let[x,E]=dv.deleteLeft(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection),t.getCursorAutoClosedCharacters());x&&e.pushUndoStop(),e.executeCommands(this.id,E),t.setPrevEditOperationType(2)}}),e.DeleteRight=Og(new class extends t{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(e,t,s){let[x,E]=dv.deleteRight(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection));x&&e.pushUndoStop(),e.executeCommands(this.id,E),t.setPrevEditOperationType(3)}}),e.Undo=new class extends UL{constructor(){super(OV)}runDOMCommand(e){e.ownerDocument.execCommand("undo")}runEditorCommand(e,t,s){if(t.hasModel()&&!0!==t.getOption(92))return t.getModel().undo()}},e.Redo=new class extends UL{constructor(){super(OX)}runDOMCommand(e){e.ownerDocument.execCommand("redo")}runEditorCommand(e,t,s){if(t.hasModel()&&!0!==t.getOption(92))return t.getModel().redo()}}}(eg||(eg={}));class UD extends OG{constructor(e,t,s){super({id:e,precondition:void 0,metadata:s}),this._handlerId=t}runCommand(e,t){let s=e.get(Ot).getFocusedCodeEditor();s&&s.trigger("keyboard",this._handlerId,t)}}function UM(e,t){Uu(new UD("default:"+e,e)),Uu(new UD(e,e,t))}UM("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),UM("replacePreviousChar"),UM("compositionType"),UM("compositionStart"),UM("compositionEnd"),UM("paste"),UM("cut");class UP{constructor(e,t,s,x){this.configuration=e,this.viewModel=t,this.userInputEvents=s,this.commandDelegate=x}paste(e,t,s,x){this.commandDelegate.paste(e,t,s,x)}type(e){this.commandDelegate.type(e)}compositionType(e,t,s,x){this.commandDelegate.compositionType(e,t,s,x)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){ef.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){let t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new N0.L(e.lineNumber,t):e}_hasMulticursorModifier(e){switch(this.configuration.options.get(78)){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(78)){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){let t=this.configuration.options,s=co.IJ&&t.get(108),x=t.get(22);e.middleButton&&!s?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():3===e.mouseDownCount?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):2===e.mouseDownCount?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):x?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){ef.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){ef.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,s){e=this._validateViewColumn(e),ef.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:s})}_createCursor(e,t){e=this._validateViewColumn(e),ef.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){ef.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){ef.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){ef.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){ef.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){ef.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){ef.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){ef.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){ef.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){ef.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}class Ud{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){let t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new TV.he("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(0===this.getCount())return null;let s=this.getStartLineNumber(),x=this.getEndLineNumber();if(t<s)return this._rendLineNumberStart-=t-e+1,null;if(e>x)return null;let E=0,a=0;for(let r=s;r<=x;r++){let s=r-this._rendLineNumberStart;e<=r&&r<=t&&(0===a?(E=s,a=1):a++)}if(e<s){let x=0;x=t<s?t-e+1:s-e,this._rendLineNumberStart-=x}return this._lines.splice(E,a)}onLinesChanged(e,t){let s=e+t-1;if(0===this.getCount())return!1;let x=this.getStartLineNumber(),E=this.getEndLineNumber(),a=!1;for(let t=e;t<=s;t++)t>=x&&t<=E&&(this._lines[t-this._rendLineNumberStart].onContentChanged(),a=!0);return a}onLinesInserted(e,t){if(0===this.getCount())return null;let s=t-e+1,x=this.getStartLineNumber(),E=this.getEndLineNumber();if(e<=x)return this._rendLineNumberStart+=s,null;if(e>E)return null;if(s+e>E)return this._lines.splice(e-this._rendLineNumberStart,E-e+1);let a=[];for(let e=0;e<s;e++)a[e]=this._lineFactory.createLine();let r=e-this._rendLineNumberStart,i=this._lines.slice(0,r),n=this._lines.slice(r,this._lines.length-s),_=this._lines.slice(this._lines.length-s,this._lines.length);return this._lines=i.concat(a).concat(n),_}onTokensChanged(e){if(0===this.getCount())return!1;let t=this.getStartLineNumber(),s=this.getEndLineNumber(),x=!1;for(let E=0,a=e.length;E<a;E++){let a=e[E];if(a.toLineNumber<t||a.fromLineNumber>s)continue;let r=Math.max(t,a.fromLineNumber),i=Math.min(s,a.toLineNumber);for(let e=r;e<=i;e++){let t=e-this._rendLineNumberStart;this._lines[t].onTokensChanged(),x=!0}}return x}}class UU{constructor(e){this._lineFactory=e,this.domNode=this._createDomNode(),this._linesCollection=new Ud(this._lineFactory)}_createDomNode(){let e=R$(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(146)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){let t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let e=0,s=t.length;e<s;e++){let s=t[e].getDomNode();s?.remove()}return!0}onLinesInserted(e){let t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(let e=0,s=t.length;e<s;e++){let s=t[e].getDomNode();s?.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){let t=this._linesCollection._get(),s=new Up(this.domNode.domNode,this._lineFactory,e),x={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},E=s.render(x,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(E.rendLineNumberStart,E.lines)}}class Up{static{this._ttPolicy=Ok("editorViewLayer",{createHTML:e=>e})}constructor(e,t,s){this._domNode=e,this._lineFactory=t,this._viewportData=s}render(e,t,s,x){let E={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(E.rendLineNumberStart+E.linesLength-1<t||s<E.rendLineNumberStart){E.rendLineNumberStart=t,E.linesLength=s-t+1,E.lines=[];for(let e=t;e<=s;e++)E.lines[e-t]=this._lineFactory.createLine();return this._finishRendering(E,!0,x),E}if(this._renderUntouchedLines(E,Math.max(t-E.rendLineNumberStart,0),Math.min(s-E.rendLineNumberStart,E.linesLength-1),x,t),E.rendLineNumberStart>t){let e=Math.min(s,E.rendLineNumberStart-1);t<=e&&(this._insertLinesBefore(E,t,e,x,t),E.linesLength+=e-t+1)}else if(E.rendLineNumberStart<t){let e=Math.min(E.linesLength,t-E.rendLineNumberStart);e>0&&(this._removeLinesBefore(E,e),E.linesLength-=e)}if(E.rendLineNumberStart=t,E.rendLineNumberStart+E.linesLength-1<s){let e=E.rendLineNumberStart+E.linesLength;e<=s&&(this._insertLinesAfter(E,e,s,x,t),E.linesLength+=s-e+1)}else if(E.rendLineNumberStart+E.linesLength-1>s){let e=Math.max(0,s-E.rendLineNumberStart+1),t=E.linesLength-1-e+1;t>0&&(this._removeLinesAfter(E,t),E.linesLength-=t)}return this._finishRendering(E,!1,x),E}_renderUntouchedLines(e,t,s,x,E){let a=e.rendLineNumberStart,r=e.lines;for(let e=t;e<=s;e++){let t=a+e;r[e].layoutLine(t,x[t-E],this._viewportData.lineHeight)}}_insertLinesBefore(e,t,s,x,E){let a=[],r=0;for(let e=t;e<=s;e++)a[r++]=this._lineFactory.createLine();e.lines=a.concat(e.lines)}_removeLinesBefore(e,t){for(let s=0;s<t;s++){let t=e.lines[s].getDomNode();t?.remove()}e.lines.splice(0,t)}_insertLinesAfter(e,t,s,x,E){let a=[],r=0;for(let e=t;e<=s;e++)a[r++]=this._lineFactory.createLine();e.lines=e.lines.concat(a)}_removeLinesAfter(e,t){let s=e.linesLength-t;for(let x=0;x<t;x++){let t=e.lines[s+x].getDomNode();t?.remove()}e.lines.splice(s,t)}_finishRenderingNewLines(e,t,s,x){Up._ttPolicy&&(s=Up._ttPolicy.createHTML(s));let E=this._domNode.lastChild;t||!E?this._domNode.innerHTML=s:E.insertAdjacentHTML("afterend",s);let a=this._domNode.lastChild;for(let t=e.linesLength-1;t>=0;t--){let s=e.lines[t];x[t]&&(s.setDomNode(a),a=a.previousSibling)}}_finishRenderingInvalidLines(e,t,s){let x=document.createElement("div");Up._ttPolicy&&(t=Up._ttPolicy.createHTML(t)),x.innerHTML=t;for(let t=0;t<e.linesLength;t++){let E=e.lines[t];if(s[t]){let e=x.firstChild,t=E.getDomNode();t.parentNode.replaceChild(e,t),E.setDomNode(e)}}}static{this._sb=new MD.HT(1e5)}_finishRendering(e,t,s){let x=Up._sb,E=e.linesLength,a=e.lines,r=e.rendLineNumberStart,i=[];{x.reset();let n=!1;for(let e=0;e<E;e++){let t=a[e];i[e]=!1,!t.getDomNode()&&t.renderLine(e+r,s[e],this._viewportData.lineHeight,this._viewportData,x)&&(i[e]=!0,n=!0)}n&&this._finishRenderingNewLines(e,t,x.build(),i)}{x.reset();let t=!1,n=[];for(let e=0;e<E;e++){let E=a[e];n[e]=!1,!i[e]&&E.renderLine(e+r,s[e],this._viewportData.lineHeight,this._viewportData,x)&&(n[e]=!0,t=!0)}t&&this._finishRenderingInvalidLines(e,x.build(),n)}}}class UY extends Pd{constructor(e){super(e),this._dynamicOverlays=[],this._isFocused=!1,this._visibleLines=new UU({createLine:()=>new UG(this._dynamicOverlays)}),this.domNode=this._visibleLines.domNode;let t=this._context.configuration.options.get(50);R0(this.domNode,t),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);let t=this._context.configuration.options.get(50);return R0(this.domNode,t),!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){let t=this._dynamicOverlays.filter(e=>e.shouldRender());for(let s=0,x=t.length;s<x;s++){let x=t[s];x.prepareRender(e),x.onDidRender()}}render(e){this._viewOverlaysRender(e),this.domNode.toggleClassName("focused",this._isFocused)}_viewOverlaysRender(e){this._visibleLines.renderLines(e.viewportData)}}class UG{constructor(e){this._dynamicOverlays=e,this._domNode=null,this._renderedContent=null}getDomNode(){return this._domNode?this._domNode.domNode:null}setDomNode(e){this._domNode=R$(e)}onContentChanged(){}onTokensChanged(){}renderLine(e,t,s,x,E){let a="";for(let t=0,s=this._dynamicOverlays.length;t<s;t++)a+=this._dynamicOverlays[t].render(x.startLineNumber,e);return this._renderedContent!==a&&(this._renderedContent=a,E.appendString('<div style="top:'),E.appendString(String(t)),E.appendString("px;height:"),E.appendString(String(s)),E.appendString('px;">'),E.appendString(a),E.appendString("</div>"),!0)}layoutLine(e,t,s){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(s))}}class UB extends UY{constructor(e){super(e);let t=this._context.configuration.options.get(146);this._contentWidth=t.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){let t=this._context.configuration.options.get(146);return this._contentWidth=t.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class Um extends UY{constructor(e){super(e);let t=this._context.configuration.options,s=t.get(146);this._contentLeft=s.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),R0(this.domNode,t.get(50))}onConfigurationChanged(e){let t=this._context.configuration.options;R0(this.domNode,t.get(50));let s=t.get(146);return this._contentLeft=s.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);let t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class Uf{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){this.onKeyDown?.(e)}emitKeyUp(e){this.onKeyUp?.(e)}emitContextMenu(e){this.onContextMenu?.(this._convertViewToModelMouseEvent(e))}emitMouseMove(e){this.onMouseMove?.(this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){this.onMouseLeave?.(this._convertViewToModelMouseEvent(e))}emitMouseDown(e){this.onMouseDown?.(this._convertViewToModelMouseEvent(e))}emitMouseUp(e){this.onMouseUp?.(this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){this.onMouseDrag?.(this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){this.onMouseDrop?.(this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){this.onMouseDropCanceled?.()}emitMouseWheel(e){this.onMouseWheel?.(e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return Uf.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){let s={...e};return s.position&&(s.position=t.convertViewPositionToModelPosition(s.position)),s.range&&(s.range=t.convertViewRangeToModelRange(s.range)),(5===s.type||8===s.type)&&(s.detail=this.convertViewToModelViewZoneData(s.detail,t)),s}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 N0.L(e.afterLineNumber,1)).lineNumber}}}x(98896);class Ug extends Pd{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=R$(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,t=this._context.configuration.options.get(146),s=t.contentWidth-t.verticalScrollbarWidth;this.contentWidth!==s&&(this.contentWidth=s,e=!0);let x=t.contentLeft;return this.contentLeft!==x&&(this.contentLeft=x,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){let t=0;for(let s of e.getDecorationsInViewport()){let x,E;if(!s.options.blockClassName)continue;let a=this.blocks[t];a||(a=this.blocks[t]=R$(document.createElement("div")),this.domNode.appendChild(a)),s.options.blockIsAfterEnd?(x=e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!1),E=e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!0)):(x=e.getVerticalOffsetForLineNumber(s.range.startLineNumber,!0),E=s.range.isEmpty()&&!s.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(s.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!0));let[r,i,n,_]=s.options.blockPadding??[0,0,0,0];a.setClassName("blockDecorations-block "+s.options.blockClassName),a.setLeft(this.contentLeft-_),a.setWidth(this.contentWidth+_+i),a.setTop(x-e.scrollTop-r),a.setHeight(E-x+r+n),t++}for(let e=t;e<this.blocks.length;e++)this.blocks[e].domNode.remove();this.blocks.length=t}}class UF extends Pd{constructor(e,t){super(e),this._viewDomNode=t,this._widgets={},this.domNode=R$(document.createElement("div")),PU.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=R$(document.createElement("div")),PU.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(e){for(let t of Object.keys(this._widgets))this._widgets[t].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(){for(let e of Object.keys(this._widgets))this._widgets[e].updateAnchorViewPosition()}addWidget(e){let t=new UH(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,s,x,E){this._widgets[e.getId()].setPosition(t,s,x,E),this.setShouldRender()}removeWidget(e){let t=e.getId();if(this._widgets.hasOwnProperty(t)){let e=this._widgets[t];delete this._widgets[t];let s=e.domNode.domNode;s.remove(),s.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(e){return!!this._widgets.hasOwnProperty(e)&&this._widgets[e].suppressMouseDown}onBeforeRender(e){for(let t of Object.keys(this._widgets))this._widgets[t].onBeforeRender(e)}prepareRender(e){for(let t of Object.keys(this._widgets))this._widgets[t].prepareRender(e)}render(e){for(let t of Object.keys(this._widgets))this._widgets[t].render(e)}}class UH{constructor(e,t,s){this._primaryAnchor=new Uy(null,null),this._secondaryAnchor=new Uy(null,null),this._context=e,this._viewDomNode=t,this._actual=s,this.domNode=R$(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;let x=this._context.configuration.options,E=x.get(146);this._fixedOverflowWidgets=x.get(42),this._contentWidth=E.contentWidth,this._contentLeft=E.contentLeft,this._lineHeight=x.get(67),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(e){let t=this._context.configuration.options;if(this._lineHeight=t.get(67),e.hasChanged(146)){let e=t.get(146);this._contentLeft=e.contentLeft,this._contentWidth=e.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(e,t,s){function x(e,t,s){if(!e)return new Uy(null,null);let x=t.model.validatePosition(e);return t.coordinatesConverter.modelPositionIsVisible(x)?new Uy(e,t.coordinatesConverter.convertModelPositionToViewPosition(x,s??void 0)):new Uy(e,null)}this._affinity=e,this._primaryAnchor=x(t,this._context.viewModel,this._affinity),this._secondaryAnchor=x(s,this._context.viewModel,this._affinity)}_getMaxWidth(){let e=this.domNode.domNode.ownerDocument,t=e.defaultView;return this.allowEditorOverflow?t?.innerWidth||e.documentElement.offsetWidth||e.body.offsetWidth:this._contentWidth}setPosition(e,t,s,x){this._setPosition(x,e,t),this._preference=s,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,s,x){let E=e.top,a=e.top+e.height,r=x.viewportHeight-a,i=e.left;return i+t>x.scrollLeft+x.viewportWidth&&(i=x.scrollLeft+x.viewportWidth-t),i<x.scrollLeft&&(i=x.scrollLeft),{fitsAbove:E>=s,aboveTop:E-s,fitsBelow:r>=s,belowTop:a,left:i}}_layoutHorizontalSegmentInPage(e,t,s,x){let E=Math.max(15,t.left-x),a=Math.min(t.left+t.width+x,e.width-15),r=this._viewDomNode.domNode.ownerDocument.defaultView,i=t.left+s-(r?.scrollX??0);if(i+x>a){let e=i-(a-x);i-=e,s-=e}if(i<E){let e=i-E;i-=e,s-=e}return[s,i]}_layoutBoxInPage(e,t,s,x){let E=e.top-s,a=e.top+e.height,r=Rx(this._viewDomNode.domNode),i=this._viewDomNode.domNode.ownerDocument,n=i.defaultView,_=r.top+E-(n?.scrollY??0),T=r.top+a-(n?.scrollY??0),S=Re(i.body),[R,O]=this._layoutHorizontalSegmentInPage(S,r,e.left-x.scrollLeft+this._contentLeft,t),A=_>=22,o=T+s<=S.height-22;return this._fixedOverflowWidgets?{fitsAbove:A,aboveTop:Math.max(_,22),fitsBelow:o,belowTop:T,left:O}:{fitsAbove:A,aboveTop:E,fitsBelow:o,belowTop:a,left:R}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new UV(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){return{primary:t(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),secondary:t(this._secondaryAnchor.viewPosition?.lineNumber===this._primaryAnchor.viewPosition?.lineNumber?this._secondaryAnchor.viewPosition:null,this._affinity,this._lineHeight)};function t(t,s,x){if(!t)return null;let E=e.visibleRangeForPosition(t);if(!E)return null;let a=1===t.column&&3===s?0:E.left;return new UX(e.getVerticalOffsetForLineNumber(t.lineNumber)-e.scrollTop,a,x)}}_reduceAnchorCoordinates(e,t,s){if(!t)return e;let x=this._context.configuration.options.get(50),E=t.left;return E=E<e.left?Math.max(E,e.left-s+x.typicalFullwidthCharacterWidth):Math.min(E,e.left+s-x.typicalFullwidthCharacterWidth),new UX(e.top,E,e.height)}_prepareRenderWidget(e){let t;if(!this._preference||0===this._preference.length)return null;let{primary:s,secondary:x}=this._getAnchorsCoordinates(e);if(!s)return{kind:"offViewport",preserveFocus:this.domNode.domNode.contains(this.domNode.domNode.ownerDocument.activeElement)};if(-1===this._cachedDomNodeOffsetWidth||-1===this._cachedDomNodeOffsetHeight){let e=null;if("function"==typeof this._actual.beforeRender&&(e=Ub(this._actual.beforeRender,this._actual)),e)this._cachedDomNodeOffsetWidth=e.width,this._cachedDomNodeOffsetHeight=e.height;else{let e=this.domNode.domNode.getBoundingClientRect();this._cachedDomNodeOffsetWidth=Math.round(e.width),this._cachedDomNodeOffsetHeight=Math.round(e.height)}}let E=this._reduceAnchorCoordinates(s,x,this._cachedDomNodeOffsetWidth);t=this.allowEditorOverflow?this._layoutBoxInPage(E,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e):this._layoutBoxInViewport(E,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e);for(let e=1;e<=2;e++)for(let s of this._preference)if(1===s){if(!t)return null;if(2===e||t.fitsAbove)return{kind:"inViewport",coordinate:new UV(t.aboveTop,t.left),position:1}}else if(2===s){if(!t)return null;if(2===e||t.fitsBelow)return{kind:"inViewport",coordinate:new UV(t.belowTop,t.left),position:2}}else{if(this.allowEditorOverflow)return{kind:"inViewport",coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(new UV(E.top,E.left)),position:0};return{kind:"inViewport",coordinate:new UV(E.top,E.left),position:0}}return null}onBeforeRender(e){this._primaryAnchor.viewPosition&&this._preference&&!(this._primaryAnchor.viewPosition.lineNumber<e.startLineNumber)&&!(this._primaryAnchor.viewPosition.lineNumber>e.endLineNumber)&&this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){if(!this._renderData||"offViewport"===this._renderData.kind){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this._renderData?.kind==="offViewport"&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility("hidden")),"function"==typeof this._actual.afterRender&&Ub(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?this.domNode.setTop(this._renderData.coordinate.top):this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),"function"==typeof this._actual.afterRender&&Ub(this._actual.afterRender,this._actual,this._renderData.position)}}class Uy{constructor(e,t){this.modelPosition=e,this.viewPosition=t}}class UV{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}}class UX{constructor(e,t,s){this.top=e,this.left=t,this.height=s,this._anchorCoordinateBrand=void 0}}function Ub(e,t,...s){try{return e.call(t,...s)}catch{return null}}x(54165);class Uv extends dO{constructor(e){super(),this._context=e;let t=this._context.configuration.options,s=t.get(146);this._renderLineHighlight=t.get(97),this._renderLineHighlightOnlyWhenFocus=t.get(98),this._wordWrap=s.isViewportWrapping,this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new P4.Y(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1,t=new Set;for(let e of this._selections)t.add(e.positionLineNumber);let s=Array.from(t);s.sort((e,t)=>e-t),cO.fS(this._cursorLineNumbers,s)||(this._cursorLineNumbers=s,e=!0);let x=this._selections.every(e=>e.isEmpty());return this._selectionIsEmpty!==x&&(this._selectionIsEmpty=x,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(146);return this._renderLineHighlight=t.get(97),this._renderLineHighlightOnlyWhenFocus=t.get(98),this._wordWrap=s.isViewportWrapping,this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return!!this._renderLineHighlightOnlyWhenFocus&&(this._focused=e.isFocused,!0)}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,x=[];for(let e=t;e<=s;e++)x[e-t]="";if(this._wordWrap){let E=this._renderOne(e,!1);for(let e of this._cursorLineNumbers){let a=this._context.viewModel.coordinatesConverter,r=a.convertViewPositionToModelPosition(new N0.L(e,1)).lineNumber,i=a.convertModelPositionToViewPosition(new N0.L(r,1)).lineNumber,n=a.convertModelPositionToViewPosition(new N0.L(r,this._context.viewModel.model.getLineMaxColumn(r))).lineNumber,_=Math.max(i,t),T=Math.min(n,s);for(let e=_;e<=T;e++)x[e-t]=E}}let E=this._renderOne(e,!0);for(let e of this._cursorLineNumbers)e<t||e>s||(x[e-t]=E);this._renderData=x}render(e,t){if(!this._renderData)return"";let s=t-e;return s>=this._renderData.length?"":this._renderData[s]}_shouldRenderInMargin(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class Uk extends Uv{_renderOne(e,t){let s="current-line"+(this._shouldRenderInMargin()?" current-line-both":"")+(t?" current-line-exact":"");return`<div class="${s}" style="width:${Math.max(e.scrollWidth,this._contentWidth)}px;"></div>`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class Uw extends Uv{_renderOne(e,t){let s="current-line"+(this._shouldRenderInMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"")+(this._shouldRenderInMargin()&&t?" current-line-exact-margin":"");return`<div class="${s}" style="width:${this._contentLeft}px"></div>`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}(0,As.Ic)((e,t)=>{let s=e.getColor(uJ.Kh);if(s&&(t.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${s}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${s}; border: none; }`)),!s||s.isTransparent()||e.defines(uJ.Mm)){let s=e.getColor(uJ.Mm);s&&(t.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${s}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${s}; }`),(0,hg.c3)(e.type)&&(t.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),t.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}}),x(69714);class UW extends dO{constructor(e){super(),this._context=e;let t=this._context.configuration.options;this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){let t=e.getDecorationsInViewport(),s=[],x=0;for(let e=0,E=t.length;e<E;e++){let E=t[e];E.options.className&&(s[x++]=E)}s=s.sort((e,t)=>{if(e.options.zIndex<t.options.zIndex)return -1;if(e.options.zIndex>t.options.zIndex)return 1;let s=e.options.className,x=t.options.className;return s<x?-1:s>x?1:OQ.e.compareRangesUsingStarts(e.range,t.range)});let E=e.visibleRange.startLineNumber,a=e.visibleRange.endLineNumber,r=[];for(let e=E;e<=a;e++)r[e-E]="";this._renderWholeLineDecorations(e,s,r),this._renderNormalDecorations(e,s,r),this._renderResult=r}_renderWholeLineDecorations(e,t,s){let x=e.visibleRange.startLineNumber,E=e.visibleRange.endLineNumber;for(let e=0,a=t.length;e<a;e++){let a=t[e];if(!a.options.isWholeLine)continue;let r='<div class="cdr '+a.options.className+'" style="left:0;width:100%;"></div>',i=Math.max(a.range.startLineNumber,x),n=Math.min(a.range.endLineNumber,E);for(let e=i;e<=n;e++){let t=e-x;s[t]+=r}}}_renderNormalDecorations(e,t,s){let x=e.visibleRange.startLineNumber,E=null,a=!1,r=null,i=!1;for(let n=0,_=t.length;n<_;n++){let _=t[n];if(_.options.isWholeLine)continue;let T=_.options.className,S=!!_.options.showIfCollapsed,R=_.range;if(S&&1===R.endColumn&&R.endLineNumber!==R.startLineNumber&&(R=new OQ.e(R.startLineNumber,R.startColumn,R.endLineNumber-1,this._context.viewModel.getLineMaxColumn(R.endLineNumber-1))),E===T&&a===S&&OQ.e.areIntersectingOrTouching(r,R)){r=OQ.e.plusRange(r,R);continue}null!==E&&this._renderNormalDecoration(e,r,E,i,a,x,s),E=T,a=S,r=R,i=_.options.shouldFillLineOnLineBreak??!1}null!==E&&this._renderNormalDecoration(e,r,E,i,a,x,s)}_renderNormalDecoration(e,t,s,x,E,a,r){let i=e.linesVisibleRangesForRange(t,"findMatch"===s);if(i)for(let e=0,t=i.length;e<t;e++){let t=i[e];if(t.outsideRenderedLine)continue;let n=t.lineNumber-a;if(E&&1===t.ranges.length){let e=t.ranges[0];if(e.width<this._typicalHalfwidthCharacterWidth){let s=Math.max(0,Math.round(Math.round(e.left+e.width/2)-this._typicalHalfwidthCharacterWidth/2));t.ranges[0]=new PB(s,this._typicalHalfwidthCharacterWidth)}}for(let e=0,E=t.ranges.length;e<E;e++){let a=x&&t.continuesOnNextLine&&1===E,i=t.ranges[e],_='<div class="cdr '+s+'" style="left:'+String(i.left)+"px;width:"+(a?"100%;":String(i.width)+"px;")+'"></div>';r[n]+=_}}}render(e,t){if(!this._renderResult)return"";let s=t-e;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}class UK extends Pd{constructor(e,t,s,x){super(e);let E=this._context.configuration.options,a=E.get(104),r=E.get(75),i=E.get(40),n=E.get(107),_={listenOnDomNode:s.domNode,className:"editor-scrollable "+(0,As.m6)(e.theme.type),useShadows:!1,lazyRender:!0,vertical:a.vertical,horizontal:a.horizontal,verticalHasArrows:a.verticalHasArrows,horizontalHasArrows:a.horizontalHasArrows,verticalScrollbarSize:a.verticalScrollbarSize,verticalSliderSize:a.verticalSliderSize,horizontalScrollbarSize:a.horizontalScrollbarSize,horizontalSliderSize:a.horizontalSliderSize,handleMouseWheel:a.handleMouseWheel,alwaysConsumeMouseWheel:a.alwaysConsumeMouseWheel,arrowSize:a.arrowSize,mouseWheelScrollSensitivity:r,fastScrollSensitivity:i,scrollPredominantAxis:n,scrollByPage:a.scrollByPage};this.scrollbar=this._register(new A7(t.domNode,_,this._context.viewLayout.getScrollable())),PU.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=R$(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();let T=(e,t,s)=>{let x={};if(t){let t=e.scrollTop;t&&(x.scrollTop=this._context.viewLayout.getCurrentScrollTop()+t,e.scrollTop=0)}if(s){let t=e.scrollLeft;t&&(x.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+t,e.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(x,1)};this._register(S7(s.domNode,"scroll",e=>T(s.domNode,!0,!0))),this._register(S7(t.domNode,"scroll",e=>T(t.domNode,!0,!1))),this._register(S7(x.domNode,"scroll",e=>T(x.domNode,!0,!1))),this._register(S7(this.scrollbarDomNode.domNode,"scroll",e=>T(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){let e=this._context.configuration.options,t=e.get(146);this.scrollbarDomNode.setLeft(t.contentLeft),"right"===e.get(73).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(104)||e.hasChanged(75)||e.hasChanged(40)){let e=this._context.configuration.options,t=e.get(104),s=e.get(75),x=e.get(40),E=e.get(107),a={vertical:t.vertical,horizontal:t.horizontal,verticalScrollbarSize:t.verticalScrollbarSize,horizontalScrollbarSize:t.horizontalScrollbarSize,scrollByPage:t.scrollByPage,handleMouseWheel:t.handleMouseWheel,mouseWheelScrollSensitivity:s,fastScrollSensitivity:x,scrollPredominantAxis:E};this.scrollbar.updateOptions(a)}return e.hasChanged(146)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+(0,As.m6)(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}x(25097);class UQ{constructor(e,t,s,x,E){this.startLineNumber=e,this.endLineNumber=t,this.className=s,this.tooltip=x,this._decorationToRenderBrand=void 0,this.zIndex=E??0}}class UJ{constructor(e,t,s){this.className=e,this.zIndex=t,this.tooltip=s}}class UZ{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class Uz extends dO{_render(e,t,s){let x=[];for(let s=e;s<=t;s++)x[s-e]=new UZ;if(0===s.length)return x;s.sort((e,t)=>e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className<t.className?-1:1);let E=null,a=0;for(let r=0,i=s.length;r<i;r++){let i=s[r],n=i.className,_=i.zIndex,T=Math.max(i.startLineNumber,e)-e,S=Math.min(i.endLineNumber,t)-e;E===n?(T=Math.max(a+1,T),a=Math.max(a,S)):(E=n,a=S);for(let e=T;e<=a;e++)x[e].add(new UJ(n,_,i.tooltip))}return x}}class Uq extends Pd{constructor(e){super(e),this._widgets={},this._context=e;let t=this._context.configuration.options,s=t.get(146);this.domNode=R$(document.createElement("div")),this.domNode.setClassName("glyph-margin-widgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this._lineHeight=t.get(67),this._glyphMargin=t.get(57),this._glyphMarginLeft=s.glyphMarginLeft,this._glyphMarginWidth=s.glyphMarginWidth,this._glyphMarginDecorationLaneCount=s.glyphMarginDecorationLaneCount,this._managedDomNodes=[],this._decorationGlyphsToRender=[]}dispose(){this._managedDomNodes=[],this._decorationGlyphsToRender=[],this._widgets={},super.dispose()}getWidgets(){return Object.values(this._widgets)}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(146);return this._lineHeight=t.get(67),this._glyphMargin=t.get(57),this._glyphMarginLeft=s.glyphMarginLeft,this._glyphMarginWidth=s.glyphMarginWidth,this._glyphMarginDecorationLaneCount=s.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){let t=R$(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){let s=this._widgets[e.getId()];return!(s.preference.lane===t.lane&&s.preference.zIndex===t.zIndex&&OQ.e.equalsRange(s.preference.range,t.range))&&(s.preference=t,this.setShouldRender(),!0)}removeWidget(e){let t=e.getId();if(this._widgets[t]){let e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.remove(),this.setShouldRender()}}_collectDecorationBasedGlyphRenderRequest(e,t){let s=e.visibleRange.startLineNumber,x=e.visibleRange.endLineNumber;for(let E of e.getDecorationsInViewport()){let e=E.options.glyphMarginClassName;if(!e)continue;let a=Math.max(E.range.startLineNumber,s),r=Math.min(E.range.endLineNumber,x),i=E.options.glyphMargin?.position??Ml.U.Center,n=E.options.zIndex??0;for(let s=a;s<=r;s++){let x=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(s,0)),E=this._context.viewModel.glyphLanes.getLanesAtLine(x.lineNumber).indexOf(i);t.push(new Uj(s,E,n,e))}}}_collectWidgetBasedGlyphRenderRequest(e,t){let s=e.visibleRange.startLineNumber,x=e.visibleRange.endLineNumber;for(let e of Object.values(this._widgets)){let E=e.preference.range,{startLineNumber:a,endLineNumber:r}=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(OQ.e.lift(E));if(!a||!r||r<s||a>x)continue;let i=Math.max(a,s),n=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(i,0)),_=this._context.viewModel.glyphLanes.getLanesAtLine(n.lineNumber).indexOf(e.preference.lane);t.push(new U$(i,_,e.preference.zIndex,e))}}_collectSortedGlyphRenderRequests(e){let t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((e,t)=>{if(e.lineNumber===t.lineNumber){if(e.laneIndex===t.laneIndex)return e.zIndex===t.zIndex?t.type===e.type?0===e.type&&0===t.type?e.className<t.className?-1:1:0:t.type-e.type:t.zIndex-e.zIndex;return e.laneIndex-t.laneIndex}return e.lineNumber-t.lineNumber}),t}prepareRender(e){if(!this._glyphMargin){this._decorationGlyphsToRender=[];return}for(let e of Object.values(this._widgets))e.renderInfo=null;let t=new cO.H9(this._collectSortedGlyphRenderRequests(e)),s=[];for(;t.length>0;){let e=t.peek();if(!e)break;let x=t.takeWhile(t=>t.lineNumber===e.lineNumber&&t.laneIndex===e.laneIndex);if(!x||0===x.length)break;let E=x[0];if(0===E.type){let e=[];for(let t of x){if(t.zIndex!==E.zIndex||t.type!==E.type)break;(0===e.length||e[e.length-1]!==t.className)&&e.push(t.className)}s.push(E.accept(e.join(" ")))}else E.widget.renderInfo={lineNumber:E.lineNumber,laneIndex:E.laneIndex}}this._decorationGlyphsToRender=s}render(e){if(!this._glyphMargin){for(let e of Object.values(this._widgets))e.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){let e=this._managedDomNodes.pop();e?.domNode.remove()}return}let t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(let s of Object.values(this._widgets))if(s.renderInfo){let x=e.viewportData.relativeVerticalOffset[s.renderInfo.lineNumber-e.viewportData.startLineNumber],E=this._glyphMarginLeft+s.renderInfo.laneIndex*this._lineHeight;s.domNode.setDisplay("block"),s.domNode.setTop(x),s.domNode.setLeft(E),s.domNode.setWidth(t),s.domNode.setHeight(this._lineHeight)}else s.domNode.setDisplay("none");for(let s=0;s<this._decorationGlyphsToRender.length;s++){let x;let E=this._decorationGlyphsToRender[s],a=e.viewportData.relativeVerticalOffset[E.lineNumber-e.viewportData.startLineNumber],r=this._glyphMarginLeft+E.laneIndex*this._lineHeight;s<this._managedDomNodes.length?x=this._managedDomNodes[s]:(x=R$(document.createElement("div")),this._managedDomNodes.push(x),this.domNode.appendChild(x)),x.setClassName("cgmr codicon "+E.combinedClassName),x.setPosition("absolute"),x.setTop(a),x.setLeft(r),x.setWidth(t),x.setHeight(this._lineHeight)}for(;this._managedDomNodes.length>this._decorationGlyphsToRender.length;){let e=this._managedDomNodes.pop();e?.domNode.remove()}}}class Uj{constructor(e,t,s,x){this.lineNumber=e,this.laneIndex=t,this.zIndex=s,this.className=x,this.type=0}accept(e){return new U0(this.lineNumber,this.laneIndex,e)}}class U${constructor(e,t,s,x){this.lineNumber=e,this.laneIndex=t,this.zIndex=s,this.widget=x,this.type=1}}class U0{constructor(e,t,s){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=s}}x(95157);var U2=x(4459),U1=x(24576);class U3 extends dO{constructor(e){super(),this._context=e,this._primaryPosition=null;let t=this._context.configuration.options,s=t.get(147),x=t.get(50);this._spaceWidth=x.spaceWidth,this._maxIndentLeft=-1===s.wrappingColumn?-1:s.wrappingColumn*x.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(147),x=t.get(50);return this._spaceWidth=x.spaceWidth,this._maxIndentLeft=-1===s.wrappingColumn?-1:s.wrappingColumn*x.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),!0}onCursorStateChanged(e){let t=e.selections[0].getPosition();return!this._primaryPosition?.equals(t)&&(this._primaryPosition=t,!0)}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onLanguageConfigurationChanged(e){return!0}prepareRender(e){if(!this._bracketPairGuideOptions.indentation&&!1===this._bracketPairGuideOptions.bracketPairs){this._renderResult=null;return}let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,x=e.scrollWidth,E=this._primaryPosition,a=this.getGuidesByLine(t,Math.min(s+1,this._context.viewModel.getLineCount()),E),r=[];for(let E=t;E<=s;E++){let s=E-t,i=a[s],n="",_=e.visibleRangeForPosition(new N0.L(E,1))?.left??0;for(let t of i){let s=-1===t.column?_+(t.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new N0.L(E,t.column)).left;if(s>x||this._maxIndentLeft>0&&s>this._maxIndentLeft)break;let a=t.horizontalLine?t.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",r=t.horizontalLine?(e.visibleRangeForPosition(new N0.L(E,t.horizontalLine.endColumn))?.left??s+this._spaceWidth)-s:this._spaceWidth;n+=`<div class="core-guide ${t.className} ${a}" style="left:${s}px;width:${r}px"></div>`}r[s]=n}this._renderResult=r}getGuidesByLine(e,t,s){let x=!1!==this._bracketPairGuideOptions.bracketPairs?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,s,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:!0===this._bracketPairGuideOptions.bracketPairsHorizontal?U1.s6.Enabled:"active"===this._bracketPairGuideOptions.bracketPairsHorizontal?U1.s6.EnabledForActive:U1.s6.Disabled,includeInactive:!0===this._bracketPairGuideOptions.bracketPairs}):null,E=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null,a=0,r=0,i=0;if(!1!==this._bracketPairGuideOptions.highlightActiveIndentation&&s){let x=this._context.viewModel.getActiveIndentGuide(s.lineNumber,e,t);a=x.startLineNumber,r=x.endLineNumber,i=x.indent}let{indentSize:n}=this._context.viewModel.model.getOptions(),_=[];for(let s=e;s<=t;s++){let t=[];_.push(t);let T=x?x[s-e]:[],S=new cO.H9(T),R=E?E[s-e]:0;for(let e=1;e<=R;e++){let x=(e-1)*n+1,E=("always"===this._bracketPairGuideOptions.highlightActiveIndentation||0===T.length)&&a<=s&&s<=r&&e===i;t.push(...S.takeWhile(e=>e.visibleColumn<x)||[]);let _=S.peek();(!_||_.visibleColumn!==x||_.horizontalLine)&&t.push(new U1.UO(x,-1,`core-guide-indent lvl-${(e-1)%30}`+(E?" indent-active":""),null,-1,-1))}t.push(...S.takeWhile(e=>!0)||[])}return _}render(e,t){if(!this._renderResult)return"";let s=t-e;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}function U7(e){if(!(e&&e.isTransparent()))return e}(0,As.Ic)((e,t)=>{let s=[{bracketColor:uJ.zJ,guideColor:uJ.oV,guideColorActive:uJ.Qb},{bracketColor:uJ.Vs,guideColor:uJ.m$,guideColorActive:uJ.m3},{bracketColor:uJ.CE,guideColor:uJ.DS,guideColorActive:uJ.To},{bracketColor:uJ.UP,guideColor:uJ.lS,guideColorActive:uJ.L7},{bracketColor:uJ.r0,guideColor:uJ.Jn,guideColorActive:uJ.HV},{bracketColor:uJ.m1,guideColor:uJ.YF,guideColorActive:uJ.f9}],x=new U2.W,E=[{indentColor:uJ.gS,indentColorActive:uJ.qe},{indentColor:uJ.Tf,indentColorActive:uJ.Xy},{indentColor:uJ.H_,indentColorActive:uJ.cK},{indentColor:uJ.h1,indentColorActive:uJ.N8},{indentColor:uJ.vP,indentColorActive:uJ.zd},{indentColor:uJ.e9,indentColorActive:uJ.ll}],a=s.map(t=>{let s=e.getColor(t.bracketColor),x=e.getColor(t.guideColor),E=e.getColor(t.guideColorActive),a=U7(U7(x)??s?.transparent(.3)),r=U7(U7(E)??s);if(a&&r)return{guideColor:a,guideColorActive:r}}).filter(OR.$K),r=E.map(t=>{let s=e.getColor(t.indentColor),x=e.getColor(t.indentColorActive),E=U7(s),a=U7(x);if(E&&a)return{indentColor:E,indentColorActive:a}}).filter(OR.$K);if(a.length>0){for(let e=0;e<30;e++){let s=a[e%a.length];t.addRule(`.monaco-editor .${x.getInlineClassNameOfLevel(e).replace(/ /g,".")} { --guide-color: ${s.guideColor}; --guide-color-active: ${s.guideColorActive}; }`)}t.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),t.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),t.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),t.addRule(`.monaco-editor .vertical.${x.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),t.addRule(`.monaco-editor .horizontal-top.${x.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),t.addRule(`.monaco-editor .horizontal-bottom.${x.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(r.length>0){for(let e=0;e<30;e++){let s=r[e%r.length];t.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${e} { --indent-color: ${s.indentColor}; --indent-color-active: ${s.indentColorActive}; }`)}t.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),t.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}}),x(55863);class U5{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;let 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 U4{constructor(){this._currentVisibleRange=new OQ.e(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class U6{constructor(e,t,s,x,E,a,r){this.minimalReveal=e,this.lineNumber=t,this.startColumn=s,this.endColumn=x,this.startScrollTop=E,this.stopScrollTop=a,this.scrollType=r,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class U8{constructor(e,t,s,x,E){this.minimalReveal=e,this.selections=t,this.startScrollTop=s,this.stopScrollTop=x,this.scrollType=E,this.type="selections";let a=t[0].startLineNumber,r=t[0].endLineNumber;for(let e=1,s=t.length;e<s;e++){let s=t[e];a=Math.min(a,s.startLineNumber),r=Math.max(r,s.endLineNumber)}this.minLineNumber=a,this.maxLineNumber=r}}class U9 extends Pd{static{this.HORIZONTAL_EXTRA_PX=30}constructor(e,t){super(e);let s=this._context.configuration,x=this._context.configuration.options,E=x.get(50),a=x.get(147);this._lineHeight=x.get(67),this._typicalHalfwidthCharacterWidth=E.typicalHalfwidthCharacterWidth,this._isViewportWrapping=a.isViewportWrapping,this._revealHorizontalRightPadding=x.get(101),this._cursorSurroundingLines=x.get(29),this._cursorSurroundingLinesStyle=x.get(30),this._canUseLayerHinting=!x.get(32),this._viewLineOptions=new PV(s,this._context.theme.type),this._linesContent=t,this._textRangeRestingSpot=document.createElement("div"),this._visibleLines=new UU({createLine:()=>new PX(this._viewLineOptions)}),this.domNode=this._visibleLines.domNode,PU.write(this.domNode,8),this.domNode.setClassName(`view-lines ${dh}`),R0(this.domNode,E),this._maxLineWidth=0,this._asyncUpdateLineWidths=new T$.pY(()=>{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new T$.pY(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new U4,this._horizontalRevealRequest=null,this._stickyScrollEnabled=x.get(116).enabled,this._maxNumberStickyLines=x.get(116).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(147)&&(this._maxLineWidth=0);let t=this._context.configuration.options,s=t.get(50),x=t.get(147);return this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._isViewportWrapping=x.isViewportWrapping,this._revealHorizontalRightPadding=t.get(101),this._cursorSurroundingLines=t.get(29),this._cursorSurroundingLinesStyle=t.get(30),this._canUseLayerHinting=!t.get(32),this._stickyScrollEnabled=t.get(116).enabled,this._maxNumberStickyLines=t.get(116).maxLineCount,R0(this.domNode,s),this._onOptionsMaybeChanged(),e.hasChanged(146)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){let e=new PV(this._context.configuration,this._context.theme.type);if(!this._viewLineOptions.equals(e)){this._viewLineOptions=e;let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let e=t;e<=s;e++)this._visibleLines.getVisibleLine(e).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber(),x=!1;for(let e=t;e<=s;e++)x=this._visibleLines.getVisibleLine(e).onSelectionChanged()||x;return x}onDecorationsChanged(e){{let e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let s=e;s<=t;s++)this._visibleLines.getVisibleLine(s).onDecorationsChanged()}return!0}onFlushed(e){let t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){let t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(-1===t)return!1;let s=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?s={scrollTop:s.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new U6(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),s.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new U8(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),s.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;let x=Math.abs(this._context.viewLayout.getCurrentScrollTop()-s.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(s,x),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){let t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),s=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>s)&&(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){let s=this._getViewLineDomNode(e);if(null===s)return null;let x=this._getLineNumberFor(s);if(-1===x||x<1||x>this._context.viewModel.getLineCount())return null;if(1===this._context.viewModel.getLineMaxColumn(x))return new N0.L(x,1);let E=this._visibleLines.getStartLineNumber(),a=this._visibleLines.getEndLineNumber();if(x<E||x>a)return null;let r=this._visibleLines.getVisibleLine(x).getColumnOfNodeOffset(e,t),i=this._context.viewModel.getLineMinColumn(x);return r<i&&(r=i),new N0.L(x,r)}_getViewLineDomNode(e){for(;e&&1===e.nodeType;){if(e.className===PX.CLASS_NAME)return e;e=e.parentElement}return null}_getLineNumberFor(e){let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let x=t;x<=s;x++)if(e===this._visibleLines.getVisibleLine(x).getDomNode())return x;return -1}getLineWidth(e){let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(e<t||e>s)return -1;let x=new U5(this.domNode.domNode,this._textRangeRestingSpot),E=this._visibleLines.getVisibleLine(e).getWidth(x);return this._updateLineWidthsSlowIfDomDidLayout(x),E}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;let s=e.endLineNumber,x=OQ.e.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!x)return null;let E=[],a=0,r=new U5(this.domNode.domNode,this._textRangeRestingSpot),i=0;t&&(i=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(x.startLineNumber,1)).lineNumber);let n=this._visibleLines.getStartLineNumber(),_=this._visibleLines.getEndLineNumber();for(let e=x.startLineNumber;e<=x.endLineNumber;e++){if(e<n||e>_)continue;let T=e===x.startLineNumber?x.startColumn:1,S=e!==x.endLineNumber,R=S?this._context.viewModel.getLineMaxColumn(e):x.endColumn,O=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,T,R,r);O&&(t&&e<s&&i!==(i=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(e+1,1)).lineNumber)&&(O.ranges[O.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth),E[a++]=new PG(O.outsideRenderedLine,e,PB.from(O.ranges),S))}return(this._updateLineWidthsSlowIfDomDidLayout(r),0===a)?null:E}_visibleRangesForLineRange(e,t,s){if(this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber())return null;let x=new U5(this.domNode.domNode,this._textRangeRestingSpot),E=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,s,x);return this._updateLineWidthsSlowIfDomDidLayout(x),E}visibleRangeForPosition(e){let t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new Pf(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){let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber(),x=1,E=!0;for(let a=t;a<=s;a++){let t=this._visibleLines.getVisibleLine(a);if(e&&!t.getWidthIsFast()){E=!1;continue}x=Math.max(x,t.getWidth(null))}return E&&1===t&&s===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(x),E}_checkMonospaceFontAssumptions(){let e=-1,t=-1,s=this._visibleLines.getStartLineNumber(),x=this._visibleLines.getEndLineNumber();for(let E=s;E<=x;E++){let s=this._visibleLines.getVisibleLine(E);if(s.needsMonospaceFontCheck()){let x=s.getWidth(null);x>t&&(t=x,e=E)}}if(-1!==e&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let e=s;e<=x;e++)this._visibleLines.getVisibleLine(e).onMonospaceAssumptionsInvalidated()}prepareRender(){throw Error("Not supported")}render(){throw 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){let t=this._horizontalRevealRequest;if(e.startLineNumber<=t.minLineNumber&&t.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();let e=this._computeScrollLeftToReveal(t);e&&(this._isViewportWrapping||this._ensureMaxLineWidth(e.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:e.scrollLeft},t.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),co.IJ&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){let e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let s=e;s<=t;s++)if(this._visibleLines.getVisibleLine(s).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");let t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){let t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth))}_computeScrollTopToRevealRange(e,t,s,x,E,a){let r,i,n,_;let T=e.top,S=e.height,R=T+S;if(E&&E.length>0){let e=E[0].startLineNumber,t=E[0].endLineNumber;for(let s=1,x=E.length;s<x;s++){let x=E[s];e=Math.min(e,x.startLineNumber),t=Math.max(t,x.endLineNumber)}r=!1,i=this._context.viewLayout.getVerticalOffsetForLineNumber(e),n=this._context.viewLayout.getVerticalOffsetForLineNumber(t)+this._lineHeight}else{if(!x)return -1;r=!0,i=this._context.viewLayout.getVerticalOffsetForLineNumber(x.startLineNumber),n=this._context.viewLayout.getVerticalOffsetForLineNumber(x.endLineNumber)+this._lineHeight}let O=("mouse"===t||s)&&"default"===this._cursorSurroundingLinesStyle,A=0,o=0;if(O)s||(A=this._lineHeight);else{let e=Math.min(S/this._lineHeight/2,Math.max(this._cursorSurroundingLines,this._stickyScrollEnabled?this._maxNumberStickyLines:0));A=e*this._lineHeight,o=Math.max(0,e-1)*this._lineHeight}if(s||0!==a&&4!==a||(o+=this._lineHeight),i-=A,(n+=o)-i>S){if(!r)return -1;_=i}else if(5===a||6===a){if(6===a&&T<=i&&n<=R)_=T;else{let e=i-Math.max(5*this._lineHeight,.2*S);_=Math.max(n-S,e)}}else _=1===a||2===a?2===a&&T<=i&&n<=R?T:Math.max(0,(i+n)/2-S/2):this._computeMinimumScrolling(T,R,i,n,3===a,4===a);return _}_computeScrollLeftToReveal(e){let t=this._context.viewLayout.getCurrentViewport(),s=this._context.configuration.options.get(146),x=t.left,E=x+t.width-s.verticalScrollbarWidth,a=1073741824,r=0;if("range"===e.type){let t=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!t)return null;for(let e of t.ranges)a=Math.min(a,Math.round(e.left)),r=Math.max(r,Math.round(e.left+e.width))}else for(let t of e.selections){if(t.startLineNumber!==t.endLineNumber)return null;let e=this._visibleRangesForLineRange(t.startLineNumber,t.startColumn,t.endColumn);if(!e)return null;for(let t of e.ranges)a=Math.min(a,Math.round(t.left)),r=Math.max(r,Math.round(t.left+t.width))}return(e.minimalReveal||(a=Math.max(0,a-U9.HORIZONTAL_EXTRA_PX),r+=this._revealHorizontalRightPadding),"selections"===e.type&&r-a>t.width)?null:{scrollLeft:this._computeMinimumScrolling(x,E,a,r),maxHorizontalOffset:r}}_computeMinimumScrolling(e,t,s,x,E,a){e|=0,t|=0,s|=0,x|=0,E=!!E,a=!!a;let r=t-e;return!(x-s<r)||E?s:a?Math.max(0,x-r):s<e?s:x>t?Math.max(0,x-r):e}}x(65106);class pe extends Uz{constructor(e){super(),this._context=e;let t=this._context.configuration.options.get(146);this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options.get(146);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){let t=e.getDecorationsInViewport(),s=[],x=0;for(let e=0,E=t.length;e<E;e++){let E=t[e],a=E.options.linesDecorationsClassName,r=E.options.zIndex;a&&(s[x++]=new UQ(E.range.startLineNumber,E.range.endLineNumber,a,E.options.linesDecorationsTooltip??null,r));let i=E.options.firstLineDecorationClassName;i&&(s[x++]=new UQ(E.range.startLineNumber,E.range.startLineNumber,i,E.options.linesDecorationsTooltip??null,r))}return s}prepareRender(e){let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,x=this._render(t,s,this._getDecorations(e)),E='" style="left:'+this._decorationsLeft.toString()+"px;width:"+this._decorationsWidth.toString()+'px;"></div>',a=[];for(let e=t;e<=s;e++){let s=e-t,r=x[s].getDecorations(),i="";for(let e of r){let t='<div class="cldr '+e.className;null!==e.tooltip&&(t+='" title="'+e.tooltip),t+=E,i+=t}a[s]=i}this._renderResult=a}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}x(10763);class pt extends Uz{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){let t=e.getDecorationsInViewport(),s=[],x=0;for(let e=0,E=t.length;e<E;e++){let E=t[e],a=E.options.marginClassName,r=E.options.zIndex;a&&(s[x++]=new UQ(E.range.startLineNumber,E.range.endLineNumber,a,null,r))}return s}prepareRender(e){let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,x=this._render(t,s,this._getDecorations(e)),E=[];for(let e=t;e<=s;e++){let s=e-t,a=x[s].getDecorations(),r="";for(let e of a)r+='<div class="cmdr '+e.className+'" style=""></div>';E[s]=r}this._renderResult=E}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}x(44947);class ps{static{this.Empty=new ps(0,0,0,0)}constructor(e,t,s,x){this._rgba8Brand=void 0,this.r=ps._clamp(e),this.g=ps._clamp(t),this.b=ps._clamp(s),this.a=ps._clamp(x)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:0|e}}class px extends TD.JT{static{this._INSTANCE=null}static getInstance(){return this._INSTANCE||(this._INSTANCE=(0,TD.dk)(new px)),this._INSTANCE}constructor(){super(),this._onDidChange=new T0.Q5,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(NA.RW.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){let e=NA.RW.getColorMap();if(!e){this._colors=[ps.Empty],this._backgroundIsLight=!0;return}this._colors=[ps.Empty];for(let t=1;t<e.length;t++){let s=e[t].rgba;this._colors[t]=new ps(s.r,s.g,s.b,Math.round(255*s.a))}let t=e[2].getRelativeLuminance();this._backgroundIsLight=t>=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}let pE=(()=>{let e=[];for(let t=32;t<=126;t++)e.push(t);return e.push(65533),e})(),pa=(e,t)=>(e-=32)<0||e>96?t<=2?(e+96)%96:95:e;var pr=x(21530);class pi{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=pi.soften(e,.8),this.charDataLight=pi.soften(e,50/60)}static soften(e,t){let s=new Uint8ClampedArray(e.length);for(let x=0,E=e.length;x<E;x++)s[x]=(0,pr.K)(e[x]*t);return s}renderChar(e,t,s,x,E,a,r,i,n,_,T){let S=1*this.scale,R=2*this.scale,O=T?1:R;if(t+S>e.width||s+O>e.height){console.warn("bad render request outside image data");return}let A=_?this.charDataLight:this.charDataNormal,o=pa(x,n),N=4*e.width,I=r.r,h=r.g,L=r.b,C=E.r-I,l=E.g-h,u=E.b-L,D=Math.max(a,i),M=e.data,P=o*S*R,d=s*N+4*t;for(let e=0;e<O;e++){let e=d;for(let t=0;t<S;t++){let t=A[P++]/255*(a/255);M[e++]=I+C*t,M[e++]=h+l*t,M[e++]=L+u*t,M[e++]=D}d+=N}}blockRenderChar(e,t,s,x,E,a,r,i){let n=1*this.scale,_=2*this.scale,T=i?1:_;if(t+n>e.width||s+T>e.height){console.warn("bad render request outside image data");return}let S=4*e.width,R=E/255*.5,O=a.r,A=a.g,o=a.b,N=x.r-O,I=x.g-A,h=x.b-o,L=O+N*R,C=A+I*R,l=o+h*R,u=Math.max(E,r),D=e.data,M=s*S+4*t;for(let e=0;e<T;e++){let e=M;for(let t=0;t<n;t++)D[e++]=L,D[e++]=C,D[e++]=l,D[e++]=u;M+=S}}}let pn={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},p_=e=>{let t=new Uint8ClampedArray(e.length/2);for(let s=0;s<e.length;s+=2)t[s>>1]=pn[e[s]]<<4|15&pn[e[s+1]];return t},pc={1:(0,um.M)(()=>p_("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:(0,um.M)(()=>p_("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))};class pT{static create(e,t){let s;return this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily?this.lastCreated:(s=pc[e]?new pi(pc[e](),e):pT.createFromSampleData(pT.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=s,s)}static createSampleData(e){let t=document.createElement("canvas"),s=t.getContext("2d");t.style.height="16px",t.height=16,t.width=960,t.style.width="960px",s.fillStyle="#ffffff",s.font=`bold 16px ${e}`,s.textBaseline="middle";let x=0;for(let e of pE)s.fillText(String.fromCharCode(e),x,8),x+=10;return s.getImageData(0,0,960,16)}static createFromSampleData(e,t){if(61440!==e.length)throw Error("Unexpected source in MinimapCharRenderer");return new pi(pT._downsample(e,t),t)}static _downsampleChar(e,t,s,x,E){let a=1*E,r=2*E,i=x,n=0;for(let x=0;x<r;x++){let E=x/r*16,_=(x+1)/r*16;for(let x=0;x<a;x++){let r=x/a*10,T=(x+1)/a*10,S=0,R=0;for(let s=E;s<_;s++){let x=t+3840*Math.floor(s),E=1-(s-Math.floor(s));for(let t=r;t<T;t++){let s=1-(t-Math.floor(t)),a=x+4*Math.floor(t),r=s*E;R+=r,S+=e[a]*e[a+3]/255*r}}let O=S/R;n=Math.max(n,O),s[i++]=(0,pr.K)(O)}}return n}static _downsample(e,t){let s=2*t*1*t,x=96*s,E=new Uint8ClampedArray(x),a=0,r=0,i=0;for(let x=0;x<96;x++)i=Math.max(i,this._downsampleChar(e,r,E,a,t)),a+=s,r+=40;if(i>0){let e=255/i;for(let t=0;t<x;t++)E[t]*=e}return E}}let pS=co.ED?'"Segoe WPC", "Segoe UI", sans-serif':co.dz?"-apple-system, BlinkMacSystemFont, sans-serif":'system-ui, "Ubuntu", "Droid Sans", sans-serif';class pR{constructor(e,t,s){let x=e.options,E=x.get(144),a=x.get(146),r=a.minimap,i=x.get(50),n=x.get(73);this.renderMinimap=r.renderMinimap,this.size=n.size,this.minimapHeightIsEditorHeight=r.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=x.get(106),this.paddingTop=x.get(84).top,this.paddingBottom=x.get(84).bottom,this.showSlider=n.showSlider,this.autohide=n.autohide,this.pixelRatio=E,this.typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this.lineHeight=x.get(67),this.minimapLeft=r.minimapLeft,this.minimapWidth=r.minimapWidth,this.minimapHeight=a.height,this.canvasInnerWidth=r.minimapCanvasInnerWidth,this.canvasInnerHeight=r.minimapCanvasInnerHeight,this.canvasOuterWidth=r.minimapCanvasOuterWidth,this.canvasOuterHeight=r.minimapCanvasOuterHeight,this.isSampling=r.minimapIsSampling,this.editorHeight=a.height,this.fontScale=r.minimapScale,this.minimapLineHeight=r.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.sectionHeaderFontFamily=pS,this.sectionHeaderFontSize=n.sectionHeaderFontSize*E,this.sectionHeaderLetterSpacing=n.sectionHeaderLetterSpacing,this.sectionHeaderFontColor=pR._getSectionHeaderColor(t,s.getColor(1)),this.charRenderer=(0,um.M)(()=>pT.create(this.fontScale,i.fontFamily)),this.defaultBackgroundColor=s.getColor(2),this.backgroundColor=pR._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=pR._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){let s=e.getColor(AY.kVY);return s?new ps(s.rgba.r,s.rgba.g,s.rgba.b,Math.round(255*s.rgba.a)):t}static _getMinimapForegroundOpacity(e){let t=e.getColor(AY.Itd);return t?ps._clamp(Math.round(255*t.rgba.a)):255}static _getSectionHeaderColor(e,t){let s=e.getColor(AY.NOs);return s?new ps(s.rgba.r,s.rgba.g,s.rgba.b,Math.round(255*s.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 pO{constructor(e,t,s,x,E,a,r,i,n){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=s,this._computedSliderRatio=x,this.sliderTop=E,this.sliderHeight=a,this.topPaddingLineCount=r,this.startLineNumber=i,this.endLineNumber=n}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){let t=Math.max(this.startLineNumber,e.startLineNumber),s=Math.min(this.endLineNumber,e.endLineNumber);return t>s?null:[t,s]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,s,x,E,a,r,i,n,_,T){let S,R;let O=e.pixelRatio,A=e.minimapLineHeight,o=Math.floor(e.canvasInnerHeight/A),N=e.lineHeight;if(e.minimapHeightIsEditorHeight){let t=i*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(t+=Math.max(0,E-e.lineHeight-e.paddingBottom));let s=Math.max(1,Math.floor(E*E/t)),x=Math.max(0,e.minimapHeight-s),a=x/(_-E),T=Math.floor(e.canvasInnerHeight/e.minimapLineHeight);return new pO(n,_,x>0,a,n*a,s,Math.floor(e.paddingTop/e.lineHeight),1,Math.min(r,T))}S=a&&s!==r?Math.floor((s-t+1)*A/O):Math.floor(E/N*A/O);let I=Math.floor(e.paddingTop/N),h=Math.floor(e.paddingBottom/N);e.scrollBeyondLastLine&&(h=Math.max(h,E/N-1)),R=h>0?(I+r+h-E/N-1)*A/O:Math.max(0,(I+r)*A/O-S);let L=(R=Math.min(e.minimapHeight-S,R))/(_-E),C=n*L;if(o>=I+r+h)return new pO(n,_,R>0,L,C,S,I,1,r);{let s,E;let a=Math.max(1,Math.floor((t>1?t+I:Math.max(1,n/N))-C*O/A));a<I?(s=I-a+1,a=1):(s=0,a=Math.max(1,a-I)),T&&T.scrollHeight===_&&(T.scrollTop>n&&(a=Math.min(a,T.startLineNumber),s=Math.max(s,T.topPaddingLineCount)),T.scrollTop<n&&(a=Math.max(a,T.startLineNumber),s=Math.min(s,T.topPaddingLineCount)));let i=Math.min(r,a-s+o-1),R=(n-x)/N;return E=n>=e.paddingTop?(t-a+s+R)*A/O:n/e.paddingTop*(s+R)*A/O,new pO(n,_,!0,L,E,S,s,a,i)}}}class pA{static{this.INVALID=new pA(-1)}constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}class po{constructor(e,t,s){this.renderedLayout=e,this._imageData=t,this._renderedLines=new Ud({createLine:()=>pA.INVALID}),this._renderedLines._set(e.startLineNumber,s)}linesEquals(e){if(!this.scrollEquals(e))return!1;let t=this._renderedLines._get().lines;for(let e=0,s=t.length;e<s;e++)if(-1===t[e].dy)return!1;return!0}scrollEquals(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber}_get(){let 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 pN{constructor(e,t,s,x){this._backgroundFillData=pN._createBackgroundFillData(t,s,x),this._buffers=[e.createImageData(t,s),e.createImageData(t,s)],this._lastUsedBuffer=0}getBuffer(){this._lastUsedBuffer=1-this._lastUsedBuffer;let e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e}static _createBackgroundFillData(e,t,s){let x=s.r,E=s.g,a=s.b,r=s.a,i=new Uint8ClampedArray(e*t*4),n=0;for(let s=0;s<t;s++)for(let t=0;t<e;t++)i[n]=x,i[n+1]=E,i[n+2]=a,i[n+3]=r,n+=4;return i}}class pI{static compute(e,t,s){if(0===e.renderMinimap||!e.isSampling)return[null,[]];let{minimapLineCount:x}=cJ.computeContainedMinimapLineCount({viewLineCount:t,scrollBeyondLastLine:e.scrollBeyondLastLine,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:e.editorHeight,lineHeight:e.lineHeight,pixelRatio:e.pixelRatio}),E=t/x,a=E/2;if(!s||0===s.minimapLines.length){let e=[];if(e[0]=1,x>1){for(let t=0,s=x-1;t<s;t++)e[t]=Math.round(t*E+a);e[x-1]=t}return[new pI(E,e),[]]}let r=s.minimapLines,i=r.length,n=[],_=0,T=0,S=1,R=[],O=null;for(let e=0;e<x;e++){let s;let A=Math.max(S,Math.round(e*E)),o=Math.max(A,Math.round((e+1)*E));for(;_<i&&r[_]<A;){if(R.length<10){let e=_+1+T;O&&"deleted"===O.type&&O._oldIndex===_-1?O.deleteToLineNumber++:(O={type:"deleted",_oldIndex:_,deleteFromLineNumber:e,deleteToLineNumber:e},R.push(O)),T--}_++}if(_<i&&r[_]<=o)s=r[_],_++;else if(s=0===e?1:e+1===x?t:Math.round(e*E+a),R.length<10){let t=_+1+T;O&&"inserted"===O.type&&O._i===e-1?O.insertToLineNumber++:(O={type:"inserted",_i:e,insertFromLineNumber:t,insertToLineNumber:t},R.push(O)),T++}n[e]=s,S=s}if(R.length<10)for(;_<i;){let e=_+1+T;O&&"deleted"===O.type&&O._oldIndex===_-1?O.deleteToLineNumber++:(O={type:"deleted",_oldIndex:_,deleteFromLineNumber:e,deleteToLineNumber:e},R.push(O)),T--,_++}else R=[{type:"flush"}];return[new pI(E,n),R]}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 s=this.modelLineToMinimapLine(e)-1;for(;s>0&&this.minimapLines[s-1]>=e;)s--;let x=this.modelLineToMinimapLine(t)-1;for(;x+1<this.minimapLines.length&&this.minimapLines[x+1]<=t;)x++;if(s===x){let x=this.minimapLines[s];if(x<e||x>t)return null}return[s+1,x+1]}decorationLineRangeToMinimapLineRange(e,t){let s=this.modelLineToMinimapLine(e),x=this.modelLineToMinimapLine(t);return e!==t&&x===s&&(x===this.minimapLines.length?s>1&&s--:x++),[s,x]}onLinesDeleted(e){let t=e.toLineNumber-e.fromLineNumber+1,s=this.minimapLines.length,x=0;for(let E=this.minimapLines.length-1;E>=0&&!(this.minimapLines[E]<e.fromLineNumber);E--)this.minimapLines[E]<=e.toLineNumber?(this.minimapLines[E]=Math.max(1,e.fromLineNumber-1),s=Math.min(s,E),x=Math.max(x,E)):this.minimapLines[E]-=t;return[s,x]}onLinesInserted(e){let t=e.toLineNumber-e.fromLineNumber+1;for(let s=this.minimapLines.length-1;s>=0&&!(this.minimapLines[s]<e.fromLineNumber);s--)this.minimapLines[s]+=t}}class ph extends Pd{constructor(e){super(e),this._sectionHeaderCache=new on.z6(10,1.5),this.tokensColorTracker=px.getInstance(),this._selections=[],this._minimapSelections=null,this.options=new pR(this._context.configuration,this._context.theme,this.tokensColorTracker);let[t]=pI.compute(this.options,this._context.viewModel.getLineCount(),null);this._samplingState=t,this._shouldCheckSampling=!1,this._actual=new pL(e.theme,this)}dispose(){this._actual.dispose(),super.dispose()}getDomNode(){return this._actual.getDomNode()}_onOptionsMaybeChanged(){let e=new pR(this._context.configuration,this._context.theme,this.tokensColorTracker);return!this.options.equals(e)&&(this.options=e,this._recreateLineSampling(),this._actual.onDidChangeOptions(),!0)}onConfigurationChanged(e){return this._onOptionsMaybeChanged()}onCursorStateChanged(e){return this._selections=e.selections,this._minimapSelections=null,this._actual.onSelectionChanged()}onDecorationsChanged(e){return!!e.affectsMinimap&&this._actual.onDecorationsChanged()}onFlushed(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}onLinesChanged(e){if(!this._samplingState)return this._actual.onLinesChanged(e.fromLineNumber,e.count);{let t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.fromLineNumber+e.count-1);return!!t&&this._actual.onLinesChanged(t[0],t[1]-t[0]+1)}}onLinesDeleted(e){if(!this._samplingState)return this._actual.onLinesDeleted(e.fromLineNumber,e.toLineNumber);{let[t,s]=this._samplingState.onLinesDeleted(e);return t<=s&&this._actual.onLinesChanged(t+1,s-t+1),this._shouldCheckSampling=!0,!0}}onLinesInserted(e){return this._samplingState?(this._samplingState.onLinesInserted(e),this._shouldCheckSampling=!0,!0):this._actual.onLinesInserted(e.fromLineNumber,e.toLineNumber)}onScrollChanged(e){return this._actual.onScrollChanged()}onThemeChanged(e){return this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}onTokensChanged(e){if(!this._samplingState)return this._actual.onTokensChanged(e.ranges);{let t=[];for(let s of e.ranges){let e=this._samplingState.modelLineRangeToMinimapLineRange(s.fromLineNumber,s.toLineNumber);e&&t.push({fromLineNumber:e[0],toLineNumber:e[1]})}return!!t.length&&this._actual.onTokensChanged(t)}}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,s=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),s=this._samplingState.modelLineToMinimapLine(s));let x={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:s,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(x)}_recreateLineSampling(){this._minimapSelections=null;let e=!!this._samplingState,[t,s]=pI.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(let e of s)switch(e.type){case"deleted":this._actual.onLinesDeleted(e.deleteFromLineNumber,e.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(e.insertFromLineNumber,e.insertToLineNumber);break;case"flush":this._actual.onFlushed()}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.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,s){if(this._samplingState){let x=[];for(let E=0,a=t-e+1;E<a;E++)s[E]?x[E]=this._context.viewModel.getViewLineData(this._samplingState.minimapLines[e+E-1]):x[E]=null;return x}return this._context.viewModel.getMinimapLinesRenderingData(e,t,s).data}getSelections(){if(null===this._minimapSelections){if(this._samplingState)for(let e of(this._minimapSelections=[],this._selections)){let[t,s]=this._samplingState.decorationLineRangeToMinimapLineRange(e.startLineNumber,e.endLineNumber);this._minimapSelections.push(new P4.Y(t,e.startColumn,s,e.endColumn))}else this._minimapSelections=this._selections}return this._minimapSelections}getMinimapDecorationsInViewport(e,t){let s=this._getMinimapDecorationsInViewport(e,t).filter(e=>!e.options.minimap?.sectionHeaderStyle);if(this._samplingState){let e=[];for(let t of s){if(!t.options.minimap)continue;let s=t.range,x=this._samplingState.modelLineToMinimapLine(s.startLineNumber),E=this._samplingState.modelLineToMinimapLine(s.endLineNumber);e.push(new MK(new OQ.e(x,s.startColumn,E,s.endColumn),t.options))}return e}return s}getSectionHeaderDecorationsInViewport(e,t){let s=this.options.minimapLineHeight,x=this.options.sectionHeaderFontSize;return e=Math.floor(Math.max(1,e-x/s)),this._getMinimapDecorationsInViewport(e,t).filter(e=>!!e.options.minimap?.sectionHeaderStyle)}_getMinimapDecorationsInViewport(e,t){let s;if(this._samplingState){let x=this._samplingState.minimapLines[e-1],E=this._samplingState.minimapLines[t-1];s=new OQ.e(x,1,E,this._context.viewModel.getLineMaxColumn(E))}else s=new OQ.e(e,1,t,this._context.viewModel.getLineMaxColumn(t));return this._context.viewModel.getMinimapDecorationsInRange(s)}getSectionHeaderText(e,t){let s=e.options.minimap?.sectionHeaderText;if(!s)return null;let x=this._sectionHeaderCache.get(s);if(x)return x;let E=t(s);return this._sectionHeaderCache.set(s,E),E}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange("mouse",!1,new OQ.e(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}}class pL extends TD.JT{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=e,this._model=t,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(AY.ov3),this._domNode=R$(document.createElement("div")),PU.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=R$(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=R$(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=R$(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=R$(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=R$(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=S5(this._domNode.domNode,RD.POINTER_DOWN,e=>{if(e.preventDefault(),0===this._model.options.renderMinimap||!this._lastRenderData)return;if("proportional"!==this._model.options.size){if(0===e.button&&this._lastRenderData){let t=Rx(this._slider.domNode),s=t.top+t.height/2;this._startSliderDragging(e,s,this._lastRenderData.renderedLayout)}return}let t=this._model.options.minimapLineHeight,s=Math.floor(this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*e.offsetY/t)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;s=Math.min(s,this._model.getLineCount()),this._model.revealLineNumber(s)}),this._sliderPointerMoveMonitor=new Ay,this._sliderPointerDownListener=S5(this._slider.domNode,RD.POINTER_DOWN,e=>{e.preventDefault(),e.stopPropagation(),0===e.button&&this._lastRenderData&&this._startSliderDragging(e,e.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=AX.addTarget(this._domNode.domNode),this._sliderTouchStartListener=S7(this._domNode.domNode,g.Start,e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(e))},{passive:!1}),this._sliderTouchMoveListener=S7(this._domNode.domNode,g.Change,e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(e)},{passive:!1}),this._sliderTouchEndListener=S5(this._domNode.domNode,g.End,e=>{e.preventDefault(),e.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(e,t,s){if(!e.target||!(e.target instanceof Element))return;let x=e.pageX;this._slider.toggleClassName("active",!0);let E=(e,E)=>{let a=Rx(this._domNode.domNode),r=Math.min(Math.abs(E-x),Math.abs(E-a.left),Math.abs(E-a.left-a.width));if(co.ED&&r>140){this._model.setScrollTop(s.scrollTop);return}this._model.setScrollTop(s.getDesiredScrollTopFromDelta(e-t))};e.pageY!==t&&E(e.pageY,x),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,e=>E(e.pageY,e.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(e){let t=this._domNode.domNode.getBoundingClientRect().top,s=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(s)}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(){let e=["minimap"];return"always"===this._model.options.showSlider?e.push("slider-always"):e.push("slider-mouseover"),this._model.options.autohide&&e.push("autohide"),e.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return!this._buffers&&this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new pN(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e,t)}onLinesDeleted(e,t){return this._lastRenderData?.onLinesDeleted(e,t),!0}onLinesInserted(e,t){return this._lastRenderData?.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(AY.ov3),this._renderDecorations=!0,!0}onTokensChanged(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(0===this._model.options.renderMinimap){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");let t=pO.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(t.sliderNeeded?"block":"none"),this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;let t=this._model.getSelections();t.sort(OQ.e.compareRangesUsingStarts);let s=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);s.sort((e,t)=>(e.options.zIndex||0)-(t.options.zIndex||0));let{canvasInnerWidth:x,canvasInnerHeight:E}=this._model.options,a=this._model.options.minimapLineHeight,r=this._model.options.minimapCharWidth,i=this._model.getOptions().tabSize,n=this._decorationsCanvas.domNode.getContext("2d");n.clearRect(0,0,x,E);let _=new pC(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(n,t,_,e,a),this._renderDecorationsLineHighlights(n,s,_,e,a);let T=new pC(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(n,t,T,e,a,i,r,x),this._renderDecorationsHighlights(n,s,T,e,a,i,r,x),this._renderSectionHeaders(e)}}_renderSelectionLineHighlights(e,t,s,x,E){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let a=0,r=0;for(let i of t){let t=x.intersectWithViewport(i);if(!t)continue;let[n,_]=t;for(let e=n;e<=_;e++)s.set(e,!0);let T=x.getYForLineNumber(n,E),S=x.getYForLineNumber(_,E);r>=T||(r>a&&e.fillRect(8,a,e.canvas.width,r-a),a=T),r=S}r>a&&e.fillRect(8,a,e.canvas.width,r-a)}_renderDecorationsLineHighlights(e,t,s,x,E){let a=new Map;for(let r=t.length-1;r>=0;r--){let i=t[r],n=i.options.minimap;if(!n||1!==n.position)continue;let _=x.intersectWithViewport(i.range);if(!_)continue;let[T,S]=_,R=n.getColor(this._theme.value);if(!R||R.isTransparent())continue;let O=a.get(R.toString());O||(O=R.transparent(.5).toString(),a.set(R.toString(),O)),e.fillStyle=O;for(let t=T;t<=S;t++){if(s.has(t))continue;s.set(t,!0);let a=x.getYForLineNumber(T,E);e.fillRect(8,a,e.canvas.width,E)}}}_renderSelectionsHighlights(e,t,s,x,E,a,r,i){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(let n of t){let t=x.intersectWithViewport(n);if(!t)continue;let[_,T]=t;for(let t=_;t<=T;t++)this.renderDecorationOnLine(e,s,n,this._selectionColor,x,t,E,E,a,r,i)}}_renderDecorationsHighlights(e,t,s,x,E,a,r,i){for(let n of t){let t=n.options.minimap;if(!t)continue;let _=x.intersectWithViewport(n.range);if(!_)continue;let[T,S]=_,R=t.getColor(this._theme.value);if(!(!R||R.isTransparent()))for(let _=T;_<=S;_++)switch(t.position){case 1:this.renderDecorationOnLine(e,s,n.range,R,x,_,E,E,a,r,i);continue;case 2:{let t=x.getYForLineNumber(_,E);this.renderDecoration(e,R,2,t,2,E);continue}}}}renderDecorationOnLine(e,t,s,x,E,a,r,i,n,_,T){let S=E.getYForLineNumber(a,i);if(S+r<0||S>this._model.options.canvasInnerHeight)return;let{startLineNumber:R,endLineNumber:O}=s,A=R===a?s.startColumn:1,o=O===a?s.endColumn:this._model.getLineMaxColumn(a),N=this.getXOffsetForPosition(t,a,A,n,_,T),I=this.getXOffsetForPosition(t,a,o,n,_,T);this.renderDecoration(e,x,N,S,I-N,r)}getXOffsetForPosition(e,t,s,x,E,a){if(1===s)return 8;if((s-1)*E>=a)return a;let r=e.get(t);if(!r){let s=this._model.getLineContent(t);r=[8];let i=8;for(let e=1;e<s.length+1;e++){let t=s.charCodeAt(e-1),n=i+(9===t?x*E:TM.K7(t)?2*E:E);if(n>=a){r[e]=a;break}r[e]=n,i=n}e.set(t,r)}return s-1<r.length?r[s-1]:a}renderDecoration(e,t,s,x,E,a){e.fillStyle=t&&t.toString()||"",e.fillRect(s,x,E,a)}_renderSectionHeaders(e){let t=this._model.options.minimapLineHeight,s=this._model.options.sectionHeaderFontSize,x=this._model.options.sectionHeaderLetterSpacing,E=1.5*s,{canvasInnerWidth:a}=this._model.options,r=this._model.options.backgroundColor,i=`rgb(${r.r} ${r.g} ${r.b} / .7)`,n=this._model.options.sectionHeaderFontColor,_=`rgb(${n.r} ${n.g} ${n.b})`,T=this._decorationsCanvas.domNode.getContext("2d");T.letterSpacing=x+"px",T.font="500 "+s+"px "+this._model.options.sectionHeaderFontFamily,T.strokeStyle=_,T.lineWidth=.2;let S=this._model.getSectionHeaderDecorationsInViewport(e.startLineNumber,e.endLineNumber);S.sort((e,t)=>e.range.startLineNumber-t.range.startLineNumber);let R=pL._fitSectionHeader.bind(null,T,a-8);for(let x of S){let r=e.getYForLineNumber(x.range.startLineNumber,t)+s,n=r-s,S=n+2,O=this._model.getSectionHeaderText(x,R);pL._renderSectionLabel(T,O,x.options.minimap?.sectionHeaderStyle===2,i,_,a,n,E,r,S)}}static _fitSectionHeader(e,t,s){if(!s)return s;let x=e.measureText(s).width,E=e.measureText("…").width;if(x<=t||x<=E)return s;let a=s.length,r=Math.floor((t-E)/(x/s.length))-1,i=Math.ceil(r/2);for(;i>0&&/\s/.test(s[i-1]);)--i;return s.substring(0,i)+"…"+s.substring(a-(r-i))}static _renderSectionLabel(e,t,s,x,E,a,r,i,n,_){t&&(e.fillStyle=x,e.fillRect(0,r,a,i),e.fillStyle=E,e.fillText(t,8,n)),s&&(e.beginPath(),e.moveTo(0,_),e.lineTo(a,_),e.closePath(),e.stroke())}renderLines(e){let t=e.startLineNumber,s=e.endLineNumber,x=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){let t=this._lastRenderData._get();return new po(e,t.imageData,t.lines)}let E=this._getBuffer();if(!E)return null;let[a,r,i]=pL._renderUntouchedLines(E,e.topPaddingLineCount,t,s,x,this._lastRenderData),n=this._model.getMinimapLinesRenderingData(t,s,i),_=this._model.getOptions().tabSize,T=this._model.options.defaultBackgroundColor,S=this._model.options.backgroundColor,R=this._model.options.foregroundAlpha,O=this._model.tokensColorTracker,A=O.backgroundIsLight(),o=this._model.options.renderMinimap,N=this._model.options.charRenderer(),I=this._model.options.fontScale,h=this._model.options.minimapCharWidth,L=(1===o?2:3)*I,C=x>L?Math.floor((x-L)/2):0,l=S.a/255,u=new ps(Math.round((S.r-T.r)*l+T.r),Math.round((S.g-T.g)*l+T.g),Math.round((S.b-T.b)*l+T.b),255),D=e.topPaddingLineCount*x,M=[];for(let e=0,a=s-t+1;e<a;e++)i[e]&&pL._renderLine(E,u,S.a,A,o,h,O,R,N,D,C,_,n[e],I,x),M[e]=new pA(D),D+=x;let P=-1===a?0:a,d=-1===r?E.height:r;return this._canvas.domNode.getContext("2d").putImageData(E,0,0,0,P,E.width,d-P),new po(e,E,M)}static _renderUntouchedLines(e,t,s,x,E,a){let r=[];if(!a){for(let e=0,t=x-s+1;e<t;e++)r[e]=!0;return[-1,-1,r]}let i=a._get(),n=i.imageData.data,_=i.rendLineNumberStart,T=i.lines,S=T.length,R=e.width,O=e.data,A=(x-s+1)*E*R*4,o=-1,N=-1,I=-1,h=-1,L=-1,C=-1,l=t*E;for(let e=s;e<=x;e++){let t=e-s,x=e-_,a=x>=0&&x<S?T[x].dy:-1;if(-1===a){r[t]=!0,l+=E;continue}let i=a*R*4,u=(a+E)*R*4,D=l*R*4,M=(l+E)*R*4;h===i&&C===D?h=u:(-1!==I&&(O.set(n.subarray(I,h),L),-1===o&&0===I&&I===L&&(o=h),-1===N&&h===A&&I===L&&(N=I)),I=i,h=u,L=D),C=M,r[t]=!1,l+=E}return -1!==I&&(O.set(n.subarray(I,h),L),-1===o&&0===I&&I===L&&(o=h),-1===N&&h===A&&I===L&&(N=I)),[-1===o?-1:o/(4*R),-1===N?-1:N/(4*R),r]}static _renderLine(e,t,s,x,E,a,r,i,n,_,T,S,R,O,A){let o=R.content,N=R.tokens,I=e.width-a,h=1===A,L=8,C=0,l=0;for(let R=0,A=N.getCount();R<A;R++){let A=N.getEndOffset(R),u=N.getForeground(R),D=r.getColor(u);for(;C<A;C++){if(L>I)return;let r=o.charCodeAt(C);if(9===r){let e=S-(C+l)%S;l+=e-1,L+=e*a}else if(32===r)L+=a;else{let S=TM.K7(r)?2:1;for(let R=0;R<S;R++)if(2===E?n.blockRenderChar(e,L,_+T,D,i,t,s,h):n.renderChar(e,L,_+T,r,D,i,t,s,O,x,h),(L+=a)>I)return}}}}}class pC{constructor(e,t,s){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=s,this._values=[];for(let e=0,t=this._endLineNumber-this._startLineNumber+1;e<t;e++)this._values[e]=s}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]}}x(23448);class pl extends Pd{constructor(e,t){super(e),this._viewDomNode=t;let s=this._context.configuration.options.get(146);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=R$(document.createElement("div")),PU.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=R$(document.createElement("div")),PU.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){let t=this._context.configuration.options.get(146);return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0}addWidget(e){let t=R$(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),e.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){let s=this._widgets[e.getId()],x=t?t.preference:null,E=t?.stackOridinal;return s.preference===x&&s.stack===E?(this._updateMaxMinWidth(),!1):(s.preference=x,s.stack=E,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){let t=e.getId();if(this._widgets.hasOwnProperty(t)){let e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){let e=0,t=Object.keys(this._widgets);for(let s=0,x=t.length;s<x;s++){let x=t[s],E=this._widgets[x],a=E.widget.getMinContentWidthInPx?.();void 0!==a&&(e=Math.max(e,a))}this._context.viewLayout.setOverlayWidgetsMinWidth(e)}_renderWidget(e,t){let s=e.domNode;if(null===e.preference){s.setTop("");return}let x=2*this._verticalScrollbarWidth+this._minimapWidth;if(0===e.preference||1===e.preference){if(1===e.preference){let e=s.domNode.clientHeight;s.setTop(this._editorHeight-e-2*this._horizontalScrollbarHeight)}else s.setTop(0);void 0!==e.stack?(s.setTop(t[e.preference]),t[e.preference]+=s.domNode.clientWidth):s.setRight(x)}else if(2===e.preference)s.domNode.style.right="50%",void 0!==e.stack?(s.setTop(t[2]),t[2]+=s.domNode.clientHeight):s.setTop(0);else{let{top:t,left:x}=e.preference;if(this._context.configuration.options.get(42)&&e.widget.allowEditorOverflow){let e=this._viewDomNodeRect;s.setTop(t+e.top),s.setLeft(x+e.left),s.setPosition("fixed")}else s.setTop(t),s.setLeft(x),s.setPosition("absolute")}}prepareRender(e){this._viewDomNodeRect=Rx(this._viewDomNode.domNode)}render(e){this._domNode.setWidth(this._editorWidth);let t=Object.keys(this._widgets),s=Array.from({length:3},()=>0);t.sort((e,t)=>(this._widgets[e].stack||0)-(this._widgets[t].stack||0));for(let e=0,x=t.length;e<x;e++){let x=t[e];this._renderWidget(this._widgets[x],s)}}}class pu{constructor(e,t){let s=e.options;this.lineHeight=s.get(67),this.pixelRatio=s.get(144),this.overviewRulerLanes=s.get(83),this.renderBorder=s.get(82);let x=t.getColor(uJ.zw);this.borderColor=x?x.toString():null,this.hideCursor=s.get(59);let E=t.getColor(uJ.n0);this.cursorColorSingle=E?E.transparent(.7).toString():null;let a=t.getColor(uJ.jD);this.cursorColorPrimary=a?a.transparent(.7).toString():null;let r=t.getColor(uJ.x_);this.cursorColorSecondary=r?r.transparent(.7).toString():null,this.themeType=t.type;let i=s.get(73),n=i.enabled,_=i.side,T=t.getColor(uJ.e_),S=NA.RW.getDefaultBackground();T?this.backgroundColor=T:n&&"right"===_?this.backgroundColor=S:this.backgroundColor=null;let R=s.get(146).overviewRuler;this.top=R.top,this.right=R.right,this.domWidth=R.width,this.domHeight=R.height,0===this.overviewRulerLanes?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);let[O,A]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=O,this.w=A}_initLanes(e,t,s){let x=t-e;if(s>=3){let t=Math.floor(x/3),s=Math.floor(x/3),E=x-t-s,a=e+t;return[[0,e,a,e,e+t+E,e,a,e],[0,t,E,t+E,s,t+E+s,E+s,t+E+s]]}if(2!==s)return[[0,e,e,e,e,e,e,e],[0,x,x,x,x,x,x,x]];{let t=Math.floor(x/2),s=x-t;return[[0,e,e,e,e+t,e,e,e],[0,t,t,t,s,t+s,t+s,t+s]]}}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColorSingle===e.cursorColorSingle&&this.cursorColorPrimary===e.cursorColorPrimary&&this.cursorColorSecondary===e.cursorColorSecondary&&this.themeType===e.themeType&&IV.Il.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 pD extends Pd{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=R$(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=NA.RW.onDidChange(e=>{e.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[{position:new N0.L(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){let t=new pu(this._context.configuration,this._context.theme);return!(this._settings&&this._settings.equals(t))&&(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return!!this._updateSettings(!1)&&this._markRenderingIsNeeded()}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,s=e.selections.length;t<s;t++){let x=this._settings.cursorColorSingle;s>1&&(x=0===t?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:e.selections[t].getPosition(),color:x})}return this._cursorPositions.sort((e,t)=>N0.L.compare(e.position,t.position)),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(e){return!!e.affectsOverviewRuler&&this._markRenderingIsMaybeNeeded()}onFlushed(e){return this._markRenderingIsNeeded()}onScrollChanged(e){return!!e.scrollHeightChanged&&this._markRenderingIsNeeded()}onZonesChanged(e){return this._markRenderingIsNeeded()}onThemeChanged(e){return!!this._updateSettings(!1)&&this._markRenderingIsNeeded()}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render(),this._actualShouldRender=0}_render(){let e=this._settings.backgroundColor;if(0===this._settings.overviewRulerLanes){this._domNode.setBackgroundColor(e?IV.Il.Format.CSS.formatHexA(e):""),this._domNode.setDisplay("none");return}let t=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(t.sort(MQ.compareByRenderingProps),1!==this._actualShouldRender||MQ.equalsArr(this._renderedDecorations,t)||(this._actualShouldRender=2),1!==this._actualShouldRender||(0,cO.fS)(this._renderedCursorPositions,this._cursorPositions,(e,t)=>e.position.lineNumber===t.position.lineNumber&&e.color===t.color)||(this._actualShouldRender=2),1===this._actualShouldRender)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");let s=this._settings.canvasWidth,x=this._settings.canvasHeight,E=this._settings.lineHeight,a=this._context.viewLayout,r=x/this._context.viewLayout.getScrollHeight(),i=6*this._settings.pixelRatio|0,n=i/2|0,_=this._domNode.domNode.getContext("2d");e?(e.isOpaque()||_.clearRect(0,0,s,x),_.fillStyle=IV.Il.Format.CSS.formatHexA(e),_.fillRect(0,0,s,x)):_.clearRect(0,0,s,x);let T=this._settings.x,S=this._settings.w;for(let e of t){let t=e.color,s=e.data;_.fillStyle=t;let R=0,O=0,A=0;for(let e=0,t=s.length/3;e<t;e++){let t=s[3*e],o=s[3*e+1],N=s[3*e+2],I=a.getVerticalOffsetForLineNumber(o)*r|0,h=(a.getVerticalOffsetForLineNumber(N)+E)*r|0;if(h-I<i){let e=(I+h)/2|0;e<n?e=n:e+n>x&&(e=x-n),I=e-n,h=e+n}I>A+1||t!==R?(0!==e&&_.fillRect(T[R],O,S[R],A-O),R=t,O=I,A=h):h>A&&(A=h)}_.fillRect(T[R],O,S[R],A-O)}if(!this._settings.hideCursor){let e=2*this._settings.pixelRatio|0,t=e/2|0,s=this._settings.x[7],E=this._settings.w[7],i=-100,n=-100,T=null;for(let S=0,R=this._cursorPositions.length;S<R;S++){let R=this._cursorPositions[S].color;if(!R)continue;let O=this._cursorPositions[S].position,A=a.getVerticalOffsetForLineNumber(O.lineNumber)*r|0;A<t?A=t:A+t>x&&(A=x-t);let o=A-t,N=o+e;o>n+1||R!==T?(0!==S&&T&&_.fillRect(s,i,E,n-i),i=o,n=N):N>n&&(n=N),T=R,_.fillStyle=R}T&&_.fillRect(s,i,E,n-i)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(_.beginPath(),_.lineWidth=1,_.strokeStyle=this._settings.borderColor,_.moveTo(0,0),_.lineTo(0,x),_.moveTo(1,0),_.lineTo(s,0),_.stroke())}}class pM{constructor(e,t,s){this._colorZoneBrand=void 0,this.from=0|e,this.to=0|t,this.colorId=0|s}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 pP{constructor(e,t,s,x){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=s,this.color=x,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 pd{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(pP.compare)}setLineHeight(e){return this._lineHeight!==e&&(this._lineHeight=e,this._colorZonesInvalid=!0,!0)}setPixelRatio(e){this._pixelRatio=e,this._colorZonesInvalid=!0}getDOMWidth(){return this._domWidth}getCanvasWidth(){return this._domWidth*this._pixelRatio}setDOMWidth(e){return this._domWidth!==e&&(this._domWidth=e,this._colorZonesInvalid=!0,!0)}getDOMHeight(){return this._domHeight}getCanvasHeight(){return this._domHeight*this._pixelRatio}setDOMHeight(e){return this._domHeight!==e&&(this._domHeight=e,this._colorZonesInvalid=!0,!0)}getOuterHeight(){return this._outerHeight}setOuterHeight(e){return this._outerHeight!==e&&(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}resolveColorZones(){let e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),s=Math.floor(this.getCanvasHeight()),x=s/Math.floor(this._outerHeight),E=Math.floor(4*this._pixelRatio/2),a=[];for(let r=0,i=this._zones.length;r<i;r++){let i=this._zones[r];if(!e){let e=i.getColorZones();if(e){a.push(e);continue}}let n=this._getVerticalOffsetForLine(i.startLineNumber),_=0===i.heightInLines?this._getVerticalOffsetForLine(i.endLineNumber)+t:n+i.heightInLines*t,T=Math.floor(x*n),S=Math.floor(x*_),R=Math.floor((T+S)/2),O=S-R;O<E&&(O=E),R-O<0&&(R=O),R+O>s&&(R=s-O);let A=i.color,o=this._color2Id[A];o||(o=++this._lastAssignedId,this._color2Id[A]=o,this._id2Color[o]=A);let N=new pM(R-O,R+O,o);i.setColorZone(N),a.push(N)}return this._colorZonesInvalid=!1,a.sort(pM.compare),a}}class pU extends PP{constructor(e,t){super(),this._context=e;let s=this._context.configuration.options;this._domNode=R$(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new pd(e=>this._context.viewLayout.getVerticalOffsetForLineNumber(e)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(s.get(67)),this._zoneManager.setPixelRatio(s.get(144)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return e.hasChanged(67)&&(this._zoneManager.setLineHeight(t.get(67)),this._render()),e.hasChanged(144)&&(this._zoneManager.setPixelRatio(t.get(144)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(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)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(0===this._zoneManager.getOuterHeight())return!1;let e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),s=this._zoneManager.resolveColorZones(),x=this._zoneManager.getId2Color(),E=this._domNode.domNode.getContext("2d");return E.clearRect(0,0,e,t),s.length>0&&this._renderOneLane(E,s,x,e),!0}_renderOneLane(e,t,s,x){let E=0,a=0,r=0;for(let i of t){let t=i.colorId,n=i.from,_=i.to;t!==E?(e.fillRect(0,a,x,r-a),E=t,e.fillStyle=s[E],a=n,r=_):r>=n?r=Math.max(r,_):(e.fillRect(0,a,x,r-a),a=n,r=_)}e.fillRect(0,a,x,r-a)}}x(14982);class pp extends Pd{constructor(e){super(e),this.domNode=R$(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];let t=this._context.configuration.options;this._rulers=t.get(103),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._rulers=t.get(103),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){let e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e<t){let{tabSize:s}=this._context.viewModel.model.getOptions(),x=t-e;for(;x>0;){let e=R$(document.createElement("div"));e.setClassName("view-ruler"),e.setWidth(s),this.domNode.appendChild(e),this._renderedRulers.push(e),x--}return}let s=e-t;for(;s>0;){let e=this._renderedRulers.pop();this.domNode.removeChild(e),s--}}render(e){this._ensureRulersCount();for(let t=0,s=this._rulers.length;t<s;t++){let s=this._renderedRulers[t],x=this._rulers[t];s.setBoxShadow(x.color?`1px 0 0 0 ${x.color} inset`:""),s.setHeight(Math.min(e.scrollHeight,1e6)),s.setLeft(x.column*this._typicalHalfwidthCharacterWidth)}}}x(76332);class pY extends Pd{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;let t=this._context.configuration.options.get(104);this._useShadows=t.useShadows,this._domNode=R$(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true")}dispose(){super.dispose()}_updateShouldShow(){let e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)}getDomNode(){return this._domNode}_updateWidth(){let e=this._context.configuration.options.get(146);0===e.minimap.renderMinimap||e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?this._width=e.width:this._width=e.width-e.verticalScrollbarWidth}onConfigurationChanged(e){let t=this._context.configuration.options.get(104);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}x(86690);class pG{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class pB{constructor(e,t){this.lineNumber=e,this.ranges=t}}function pm(e){return new pG(e)}function pf(e){return new pB(e.lineNumber,e.ranges.map(pm))}class pg extends dO{static{this.SELECTION_CLASS_NAME="selected-text"}static{this.SELECTION_TOP_LEFT="top-left-radius"}static{this.SELECTION_BOTTOM_LEFT="bottom-left-radius"}static{this.SELECTION_TOP_RIGHT="top-right-radius"}static{this.SELECTION_BOTTOM_RIGHT="bottom-right-radius"}static{this.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background"}static{this.ROUNDED_PIECE_WIDTH=10}constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;let t=this._context.configuration.options;this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,s=e.length;t<s;t++)if(e[t].ranges.length>1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,s){let x=this._typicalHalfwidthCharacterWidth/4,E=null,a=null;if(s&&s.length>0&&t.length>0){let x=t[0].lineNumber;if(x===e.startLineNumber)for(let e=0;!E&&e<s.length;e++)s[e].lineNumber===x&&(E=s[e].ranges[0]);let r=t[t.length-1].lineNumber;if(r===e.endLineNumber)for(let e=s.length-1;!a&&e>=0;e--)s[e].lineNumber===r&&(a=s[e].ranges[0]);E&&!E.startStyle&&(E=null),a&&!a.startStyle&&(a=null)}for(let e=0,s=t.length;e<s;e++){let r=t[e].ranges[0],i=r.left,n=r.left+r.width,_={top:0,bottom:0},T={top:0,bottom:0};if(e>0){let s=t[e-1].ranges[0].left,E=t[e-1].ranges[0].left+t[e-1].ranges[0].width;pF(i-s)<x?_.top=2:i>s&&(_.top=1),pF(n-E)<x?T.top=2:s<n&&n<E&&(T.top=1)}else E&&(_.top=E.startStyle.top,T.top=E.endStyle.top);if(e+1<s){let s=t[e+1].ranges[0].left,E=t[e+1].ranges[0].left+t[e+1].ranges[0].width;pF(i-s)<x?_.bottom=2:s<i&&i<E&&(_.bottom=1),pF(n-E)<x?T.bottom=2:n<E&&(T.bottom=1)}else a&&(_.bottom=a.startStyle.bottom,T.bottom=a.endStyle.bottom);r.startStyle=_,r.endStyle=T}}_getVisibleRangesWithStyle(e,t,s){let x=(t.linesVisibleRangesForRange(e,!0)||[]).map(pf);return!this._visibleRangesHaveGaps(x)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,x,s),x}_createSelectionPiece(e,t,s,x,E){return'<div class="cslr '+s+'" style="top:'+e.toString()+"px;bottom:"+t.toString()+"px;left:"+x.toString()+"px;width:"+E.toString()+'px;"></div>'}_actualRenderOneSelection(e,t,s,x){if(0===x.length)return;let E=!!x[0].ranges[0].startStyle,a=x[0].lineNumber,r=x[x.length-1].lineNumber;for(let i=0,n=x.length;i<n;i++){let n=x[i],_=n.lineNumber,T=_-t,S=s&&_===a?1:0,R=s&&_!==a&&_===r?1:0,O="",A="";for(let e=0,t=n.ranges.length;e<t;e++){let t=n.ranges[e];if(E){let e=t.startStyle,s=t.endStyle;if(1===e.top||1===e.bottom){O+=this._createSelectionPiece(S,R,pg.SELECTION_CLASS_NAME,t.left-pg.ROUNDED_PIECE_WIDTH,pg.ROUNDED_PIECE_WIDTH);let s=pg.EDITOR_BACKGROUND_CLASS_NAME;1===e.top&&(s+=" "+pg.SELECTION_TOP_RIGHT),1===e.bottom&&(s+=" "+pg.SELECTION_BOTTOM_RIGHT),O+=this._createSelectionPiece(S,R,s,t.left-pg.ROUNDED_PIECE_WIDTH,pg.ROUNDED_PIECE_WIDTH)}if(1===s.top||1===s.bottom){O+=this._createSelectionPiece(S,R,pg.SELECTION_CLASS_NAME,t.left+t.width,pg.ROUNDED_PIECE_WIDTH);let e=pg.EDITOR_BACKGROUND_CLASS_NAME;1===s.top&&(e+=" "+pg.SELECTION_TOP_LEFT),1===s.bottom&&(e+=" "+pg.SELECTION_BOTTOM_LEFT),O+=this._createSelectionPiece(S,R,e,t.left+t.width,pg.ROUNDED_PIECE_WIDTH)}}let s=pg.SELECTION_CLASS_NAME;if(E){let e=t.startStyle,x=t.endStyle;0===e.top&&(s+=" "+pg.SELECTION_TOP_LEFT),0===e.bottom&&(s+=" "+pg.SELECTION_BOTTOM_LEFT),0===x.top&&(s+=" "+pg.SELECTION_TOP_RIGHT),0===x.bottom&&(s+=" "+pg.SELECTION_BOTTOM_RIGHT)}A+=this._createSelectionPiece(S,R,s,t.left,t.width)}e[T][0]+=O,e[T][1]+=A}}prepareRender(e){let t=[],s=e.visibleRange.startLineNumber,x=e.visibleRange.endLineNumber;for(let e=s;e<=x;e++)t[e-s]=["",""];let E=[];for(let x=0,a=this._selections.length;x<a;x++){let a=this._selections[x];if(a.isEmpty()){E[x]=null;continue}let r=this._getVisibleRangesWithStyle(a,e,this._previousFrameVisibleRangesWithStyle[x]);E[x]=r,this._actualRenderOneSelection(t,s,this._selections.length>1,r)}this._previousFrameVisibleRangesWithStyle=E,this._renderResult=t.map(([e,t])=>e+t)}render(e,t){if(!this._renderResult)return"";let s=t-e;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}function pF(e){return e<0?-e:e}(0,As.Ic)((e,t)=>{let s=e.getColor(AY.yb5);s&&!s.isTransparent()&&t.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${s}; }`)}),x(75580);class pH{constructor(e,t,s,x,E,a,r){this.top=e,this.left=t,this.paddingLeft=s,this.width=x,this.height=E,this.textContent=a,this.textContentClassName=r}}!function(e){e[e.Single=0]="Single",e[e.MultiPrimary=1]="MultiPrimary",e[e.MultiSecondary=2]="MultiSecondary"}(eF||(eF={}));class py{constructor(e,t){this._context=e;let s=this._context.configuration.options,x=s.get(50);this._cursorStyle=s.get(28),this._lineHeight=s.get(67),this._typicalHalfwidthCharacterWidth=x.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(s.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=R$(document.createElement("div")),this._domNode.setClassName(`cursor ${dh}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),R0(this._domNode,x),this._domNode.setDisplay("none"),this._position=new N0.L(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 eF.Single:this._pluralityClass="";break;case eF.MultiPrimary:this._pluralityClass="cursor-primary";break;case eF.MultiSecondary:this._pluralityClass="cursor-secondary"}}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),R0(this._domNode,s),!0}onCursorPositionChanged(e,t){return t?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=e,!0}_getGraphemeAwarePosition(){let{lineNumber:e,column:t}=this._position,s=this._context.viewModel.getLineContent(e),[x,E]=TM.J_(s,t-1);return[new N0.L(e,x+1),s.substring(x,E)]}_prepareRender(e){let t="",s="",[x,E]=this._getGraphemeAwarePosition();if(this._cursorStyle===Y.Line||this._cursorStyle===Y.LineThin){let a;let r=e.visibleRangeForPosition(x);if(!r||r.outsideRenderedLine)return null;let i=SK(this._domNode.domNode);this._cursorStyle===Y.Line?(a=RF(i,this._lineCursorWidth>0?this._lineCursorWidth:2))>2&&(t=E,s=this._getTokenClassName(x)):a=RF(i,1);let n=r.left,_=0;return a>=2&&n>=1&&(n-=_=1),new pH(e.getVerticalOffsetForLineNumber(x.lineNumber)-e.bigNumbersDelta,n,_,a,this._lineHeight,t,s)}let a=e.linesVisibleRangesForRange(new OQ.e(x.lineNumber,x.column,x.lineNumber,x.column+E.length),!1);if(!a||0===a.length)return null;let r=a[0];if(r.outsideRenderedLine||0===r.ranges.length)return null;let i=r.ranges[0],n=" "===E?this._typicalHalfwidthCharacterWidth:i.width<1?this._typicalHalfwidthCharacterWidth:i.width;this._cursorStyle===Y.Block&&(t=E,s=this._getTokenClassName(x));let _=e.getVerticalOffsetForLineNumber(x.lineNumber)-e.bigNumbersDelta,T=this._lineHeight;return(this._cursorStyle===Y.Underline||this._cursorStyle===Y.UnderlineThin)&&(_+=this._lineHeight-2,T=2),new pH(_,i.left,0,n,T,t,s)}_getTokenClassName(e){let t=this._context.viewModel.getViewLineData(e.lineNumber),s=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(s)}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 ${this._pluralityClass} ${dh} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}class pV extends Pd{static{this.BLINK_INTERVAL=500}constructor(e){super(e);let t=this._context.configuration.options;this._readOnly=t.get(92),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new py(this._context,eF.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=R$(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 T$._F,this._cursorFlatBlinkInterval=new S6,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){let t=this._context.configuration.options;this._readOnly=t.get(92),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let t=0,s=this._secondaryCursors.length;t<s;t++)this._secondaryCursors[t].onConfigurationChanged(e);return!0}_onCursorPositionChanged(e,t,s){let x=this._secondaryCursors.length!==t.length||"explicit"===this._cursorSmoothCaretAnimation&&3!==s;if(this._primaryCursor.setPlurality(t.length?eF.MultiPrimary:eF.Single),this._primaryCursor.onCursorPositionChanged(e,x),this._updateBlinking(),this._secondaryCursors.length<t.length){let e=t.length-this._secondaryCursors.length;for(let t=0;t<e;t++){let e=new py(this._context,eF.MultiSecondary);this._domNode.domNode.insertBefore(e.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(e)}}else if(this._secondaryCursors.length>t.length){let e=this._secondaryCursors.length-t.length;for(let t=0;t<e;t++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(let e=0;e<t.length;e++)this._secondaryCursors[e].onCursorPositionChanged(t[e],x)}onCursorStateChanged(e){let t=[];for(let s=0,x=e.selections.length;s<x;s++)t[s]=e.selections[s].getPosition();this._onCursorPositionChanged(t[0],t.slice(1),e.reason);let s=e.selections[0].isEmpty();return this._selectionIsEmpty!==s&&(this._selectionIsEmpty=s,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){let t=t=>{for(let s=0,x=e.ranges.length;s<x;s++)if(e.ranges[s].fromLineNumber<=t.lineNumber&&t.lineNumber<=e.ranges[s].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(let e of this._secondaryCursors)if(t(e.getPosition()))return!0;return!1}onZonesChanged(e){return!0}_getCursorBlinking(){return this._isComposingInput||!this._editorHasFocus?0:this._readOnly?5:this._cursorBlinking}_updateBlinking(){this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();let e=this._getCursorBlinking(),t=0===e;t?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),t||5===e||(1===e?this._cursorFlatBlinkInterval.cancelAndSet(()=>{this._isVisible?this._hide():this._show()},pV.BLINK_INTERVAL,SK(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},pV.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case Y.Line:e+=" cursor-line-style";break;case Y.Block:e+=" cursor-block-style";break;case Y.Underline:e+=" cursor-underline-style";break;case Y.LineThin:e+=" cursor-line-thin-style";break;case Y.BlockOutline:e+=" cursor-block-outline-style";break;case Y.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return("on"===this._cursorSmoothCaretAnimation||"explicit"===this._cursorSmoothCaretAnimation)&&(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0}_hide(){this._primaryCursor.hide();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1}prepareRender(e){this._primaryCursor.prepareRender(e);for(let t=0,s=this._secondaryCursors.length;t<s;t++)this._secondaryCursors[t].prepareRender(e)}render(e){let t=[],s=0,x=this._primaryCursor.render(e);x&&(t[s++]=x);for(let x=0,E=this._secondaryCursors.length;x<E;x++){let E=this._secondaryCursors[x].render(e);E&&(t[s++]=E)}this._renderData=t}getLastRenderData(){return this._renderData}}(0,As.Ic)((e,t)=>{for(let s of[{class:".cursor",foreground:uJ.n0,background:uJ.fY},{class:".cursor-primary",foreground:uJ.jD,background:uJ.s2},{class:".cursor-secondary",foreground:uJ.x_,background:uJ.P0}]){let x=e.getColor(s.foreground);if(x){let E=e.getColor(s.background);E||(E=x.opposite()),t.addRule(`.monaco-editor .cursors-layer ${s.class} { background-color: ${x}; border-color: ${x}; color: ${E}; }`),(0,hg.c3)(e.type)&&t.addRule(`.monaco-editor .cursors-layer.has-selection ${s.class} { border-left: 1px solid ${E}; border-right: 1px solid ${E}; }`)}}});let pX=()=>{throw Error("Invalid change accessor")};class pb extends Pd{constructor(e){super(e);let t=this._context.configuration.options,s=t.get(146);this._lineHeight=t.get(67),this._contentWidth=s.contentWidth,this._contentLeft=s.contentLeft,this.domNode=R$(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=R$(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(){let e=this._context.viewLayout.getWhitespaces(),t=new Map;for(let s of e)t.set(s.id,s);let s=!1;return this._context.viewModel.changeWhitespace(e=>{let x=Object.keys(this._zones);for(let E=0,a=x.length;E<a;E++){let a=x[E],r=this._zones[a],i=this._computeWhitespaceProps(r.delegate);r.isInHiddenArea=i.isInHiddenArea;let n=t.get(a);n&&(n.afterLineNumber!==i.afterViewLineNumber||n.height!==i.heightInPx)&&(e.changeOneWhitespace(a,i.afterViewLineNumber,i.heightInPx),this._safeCallOnComputedHeight(r.delegate,i.heightInPx),s=!0)}}),s}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(146);return this._lineHeight=t.get(67),this._contentWidth=s.contentWidth,this._contentLeft=s.contentLeft,e.hasChanged(67)&&this._recomputeWhitespacesProps(),!0}onLineMappingChanged(e){return this._recomputeWhitespacesProps()}onLinesDeleted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}onLinesInserted(e){return!0}_getZoneOrdinal(e){return e.ordinal??e.afterColumn??1e4}_computeWhitespaceProps(e){let t,s;if(0===e.afterLineNumber)return{isInHiddenArea:!1,afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};if(void 0!==e.afterColumn)t=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{let s=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new N0.L(s,this._context.viewModel.model.getLineMaxColumn(s))}s=t.column===this._context.viewModel.model.getLineMaxColumn(t.lineNumber)?this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber+1,column:1}):this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber,column:t.column+1});let x=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t,e.afterColumnAffinity,!0),E=e.showInHiddenAreas||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(s);return{isInHiddenArea:!E,afterViewLineNumber:x.lineNumber,heightInPx:E?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}changeViewZones(e){let t=!1;return this._context.viewModel.changeWhitespace(s=>{let x={addZone:e=>(t=!0,this._addZone(s,e)),removeZone:e=>{e&&(t=this._removeZone(s,e)||t)},layoutZone:e=>{e&&(t=this._layoutZone(s,e)||t)}};(function(e,t){try{e(t)}catch(e){(0,TV.dL)(e)}})(e,x),x.addZone=pX,x.removeZone=pX,x.layoutZone=pX}),t}_addZone(e,t){let s=this._computeWhitespaceProps(t),x={whitespaceId:e.insertWhitespace(s.afterViewLineNumber,this._getZoneOrdinal(t),s.heightInPx,s.minWidthInPx),delegate:t,isInHiddenArea:s.isInHiddenArea,isVisible:!1,domNode:R$(t.domNode),marginDomNode:t.marginDomNode?R$(t.marginDomNode):null};return this._safeCallOnComputedHeight(x.delegate,s.heightInPx),x.domNode.setPosition("absolute"),x.domNode.domNode.style.width="100%",x.domNode.setDisplay("none"),x.domNode.setAttribute("monaco-view-zone",x.whitespaceId),this.domNode.appendChild(x.domNode),x.marginDomNode&&(x.marginDomNode.setPosition("absolute"),x.marginDomNode.domNode.style.width="100%",x.marginDomNode.setDisplay("none"),x.marginDomNode.setAttribute("monaco-view-zone",x.whitespaceId),this.marginDomNode.appendChild(x.marginDomNode)),this._zones[x.whitespaceId]=x,this.setShouldRender(),x.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){let s=this._zones[t];return delete this._zones[t],e.removeWhitespace(s.whitespaceId),s.domNode.removeAttribute("monaco-visible-view-zone"),s.domNode.removeAttribute("monaco-view-zone"),s.domNode.domNode.remove(),s.marginDomNode&&(s.marginDomNode.removeAttribute("monaco-visible-view-zone"),s.marginDomNode.removeAttribute("monaco-view-zone"),s.marginDomNode.domNode.remove()),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){let s=this._zones[t],x=this._computeWhitespaceProps(s.delegate);return s.isInHiddenArea=x.isInHiddenArea,e.changeOneWhitespace(s.whitespaceId,x.afterViewLineNumber,x.heightInPx),this._safeCallOnComputedHeight(s.delegate,x.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){return!!this._zones.hasOwnProperty(e)&&!!this._zones[e].delegate.suppressMouseDown}_heightInPixels(e){return"number"==typeof e.heightInPx?e.heightInPx:"number"==typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return"number"==typeof e.minWidthInPx?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if("function"==typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(e){(0,TV.dL)(e)}}_safeCallOnDomNodeTop(e,t){if("function"==typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(e){(0,TV.dL)(e)}}prepareRender(e){}render(e){let t=e.viewportData.whitespaceViewportData,s={},x=!1;for(let e of t)this._zones[e.id].isInHiddenArea||(s[e.id]=e,x=!0);let E=Object.keys(this._zones);for(let t=0,x=E.length;t<x;t++){let x=E[t],a=this._zones[x],r=0,i=0,n="none";s.hasOwnProperty(x)?(r=s[x].verticalOffset-e.bigNumbersDelta,i=s[x].height,n="block",a.isVisible||(a.domNode.setAttribute("monaco-visible-view-zone","true"),a.isVisible=!0),this._safeCallOnDomNodeTop(a.delegate,e.getScrolledTopFromAbsoluteTop(s[x].verticalOffset))):(a.isVisible&&(a.domNode.removeAttribute("monaco-visible-view-zone"),a.isVisible=!1),this._safeCallOnDomNodeTop(a.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),a.domNode.setTop(r),a.domNode.setHeight(i),a.domNode.setDisplay(n),a.marginDomNode&&(a.marginDomNode.setTop(r),a.marginDomNode.setHeight(i),a.marginDomNode.setDisplay(n))}x&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}}x(25861);class pv extends dO{constructor(e){super(),this._context=e,this._options=new pk(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=new pk(this._context.configuration);return this._options.equals(t)?e.hasChanged(146):(this._options=t,!0)}onCursorStateChanged(e){return this._selection=e.selections,"selection"===this._options.renderWhitespace}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("none"===this._options.renderWhitespace){this._renderResult=null;return}let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber-t+1,x=Array(s);for(let e=0;e<s;e++)x[e]=!0;let E=this._context.viewModel.getMinimapLinesRenderingData(e.viewportData.startLineNumber,e.viewportData.endLineNumber,x);this._renderResult=[];for(let t=e.viewportData.startLineNumber;t<=e.viewportData.endLineNumber;t++){let s=t-e.viewportData.startLineNumber,x=E.data[s],a=null;if("selection"===this._options.renderWhitespace)for(let e of this._selection){if(e.endLineNumber<t||e.startLineNumber>t)continue;let s=e.startLineNumber===t?e.startColumn:x.minColumn,E=e.endLineNumber===t?e.endColumn:x.maxColumn;s<E&&(a||(a=[]),a.push(new MY(s-1,E-1)))}this._renderResult[s]=this._applyRenderWhitespace(e,t,a,x)}}_applyRenderWhitespace(e,t,s,x){let E;if("selection"===this._options.renderWhitespace&&!s||"trailing"===this._options.renderWhitespace&&x.continuesWithWrappedLine)return"";let a=this._context.theme.getColor(uJ.dI),r=this._options.renderWithSVG,i=x.content,n=-1===this._options.stopRenderingLineAfter?i.length:Math.min(this._options.stopRenderingLineAfter,i.length),_=x.continuesWithWrappedLine,T=x.minColumn-1,S="boundary"===this._options.renderWhitespace,R="trailing"===this._options.renderWhitespace,O=this._options.lineHeight,A=this._options.middotWidth,o=this._options.wsmiddotWidth,N=this._options.spaceWidth,I=Math.abs(o-N)<Math.abs(A-N)?11825:183,h=this._options.canUseHalfwidthRightwardsArrow,L="",C=!1,l=TM.LC(i);-1===l?(C=!0,l=n,E=n):E=TM.ow(i);let u=0,D=s&&s[u],M=0;for(let x=T;x<n;x++){let a=i.charCodeAt(x);if(D&&x>=D.endOffset&&(u++,D=s&&s[u]),9!==a&&32!==a||R&&!C&&x<=E)continue;if(S&&x>=l&&x<=E&&32===a){let e=x-1>=0?i.charCodeAt(x-1):0,t=x+1<n?i.charCodeAt(x+1):0;if(32!==e&&32!==t)continue}if(S&&_&&x===n-1){let e=x-1>=0?i.charCodeAt(x-1):0;if(32===a&&32!==e&&9!==e)continue}if(s&&(!D||D.startOffset>x||D.endOffset<=x))continue;let T=e.visibleRangeForPosition(new N0.L(t,x+1));T&&(r?(M=Math.max(M,T.left),9===a?L+=this._renderArrow(O,N,T.left):L+=`<circle cx="${(T.left+N/2).toFixed(2)}" cy="${(O/2).toFixed(2)}" r="${(N/7).toFixed(2)}" />`):9===a?L+=`<div class="mwh" style="left:${T.left}px;height:${O}px;">${h?String.fromCharCode(65515):String.fromCharCode(8594)}</div>`:L+=`<div class="mwh" style="left:${T.left}px;height:${O}px;">${String.fromCharCode(I)}</div>`)}return r?(M=Math.round(M+N),`<svg style="bottom:0;position:absolute;width:${M}px;height:${O}px" viewBox="0 0 ${M} ${O}" xmlns="http://www.w3.org/2000/svg" fill="${a}">`+L+"</svg>"):L}_renderArrow(e,t,s){let x=e/2,E={x:0,y:t/7/2},a={x:.8*t,y:E.y},r={x:a.x-.2*a.x,y:a.y+.2*a.x},i={x:r.x+.1*a.x,y:r.y+.1*a.x},n={x:i.x+.35*a.x,y:i.y-.35*a.x},_={x:n.x,y:-n.y},T={x:i.x,y:-i.y},S={x:r.x,y:-r.y},R={x:a.x,y:-a.y},O={x:E.x,y:-E.y},A=[E,a,r,i,n,_,T,S,R,O].map(e=>`${(s+e.x).toFixed(2)} ${(x+e.y).toFixed(2)}`).join(" L ");return`<path d="M ${A}" />`}render(e,t){if(!this._renderResult)return"";let s=t-e;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}class pk{constructor(e){let t=e.options,s=t.get(50),x=t.get(38);"off"===x?(this.renderWhitespace="none",this.renderWithSVG=!1):"svg"===x?(this.renderWhitespace=t.get(100),this.renderWithSVG=!0):(this.renderWhitespace=t.get(100),this.renderWithSVG=!1),this.spaceWidth=s.spaceWidth,this.middotWidth=s.middotWidth,this.wsmiddotWidth=s.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=s.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(67),this.stopRenderingLineAfter=t.get(118)}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 pw{constructor(e,t,s,x){this.selections=e,this.startLineNumber=0|t.startLineNumber,this.endLineNumber=0|t.endLineNumber,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=0|t.bigNumbersDelta,this.lineHeight=0|t.lineHeight,this.whitespaceViewportData=s,this._model=x,this.visibleRange=new OQ.e(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 pW{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 pK{constructor(e,t,s){this.configuration=e,this.theme=new pW(t),this.viewModel=s,this.viewLayout=s.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}let pQ=class extends PP{constructor(e,t,s,x,E,a,r){super(),this._instantiationService=r,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new P4.Y(1,1,1,1)],this._renderAnimationFrame=null;let i=new UP(t,x,E,e);this._context=new pK(t,s,x),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(dl,this._context,i,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=R$(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=R$(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=R$(document.createElement("div")),PU.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new UK(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new U9(this._context,this._linesContent),this._viewZones=new pb(this._context),this._viewParts.push(this._viewZones);let n=new pD(this._context);this._viewParts.push(n);let _=new pY(this._context);this._viewParts.push(_);let T=new UB(this._context);this._viewParts.push(T),T.addDynamicOverlay(new Uk(this._context)),T.addDynamicOverlay(new pg(this._context)),T.addDynamicOverlay(new U3(this._context)),T.addDynamicOverlay(new UW(this._context)),T.addDynamicOverlay(new pv(this._context));let S=new Um(this._context);this._viewParts.push(S),S.addDynamicOverlay(new Uw(this._context)),S.addDynamicOverlay(new pt(this._context)),S.addDynamicOverlay(new pe(this._context)),S.addDynamicOverlay(new dA(this._context)),this._glyphMarginWidgets=new Uq(this._context),this._viewParts.push(this._glyphMarginWidgets);let R=new dN(this._context);R.getDomNode().appendChild(this._viewZones.marginDomNode),R.getDomNode().appendChild(S.getDomNode()),R.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(R),this._contentWidgets=new UF(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new pV(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new pl(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);let O=new pp(this._context);this._viewParts.push(O);let A=new Ug(this._context);this._viewParts.push(A);let o=new ph(this._context);if(this._viewParts.push(o),n){let e=this._scrollbar.getOverviewRulerLayoutInfo();e.parent.insertBefore(n.getDomNode(),e.insertBefore)}this._linesContent.appendChild(T.getDomNode()),this._linesContent.appendChild(O.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(R.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(_.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(o.getDomNode()),this._overflowGuardContainer.appendChild(A.domNode),this.domNode.appendChild(this._overflowGuardContainer),a?(a.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),a.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new dR(this._context,i,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){let e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes,s=[],x=0;for(let E of((s=(s=s.concat(e.getAllMarginDecorations().map(e=>{let t=e.options.glyphMargin?.position??Ml.U.Center;return x=Math.max(x,e.range.endLineNumber),{range:e.range,lane:t,persist:e.options.glyphMargin?.persistLane}}))).concat(this._glyphMarginWidgets.getWidgets().map(t=>{let s=e.validateRange(t.preference.range);return x=Math.max(x,s.endLineNumber),{range:s,lane:t.preference.lane}}))).sort((e,t)=>OQ.e.compareRangesUsingStarts(e.range,t.range)),t.reset(x),s))t.push(E.lane,E.range,E.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>new Pz(this._viewCursors.getLastRenderData()||[],this._textAreaHandler.getLastRenderData()),renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new N0.L(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){let e=this._context.configuration.options.get(146);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this._overflowGuardContainer.setWidth(e.width),this._overflowGuardContainer.setHeight(e.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){let e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(143)+" "+(0,As.m6)(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){for(let e of(null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose(),this._viewParts))e.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new TV.he;if(null===this._renderAnimationFrame){let e=this._createCoordinatedRendering();this._renderAnimationFrame=pZ.INSTANCE.scheduleCoordinatedRendering({window:SK(this.domNode?.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new TV.he;try{return e.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new TV.he;return e.renderText()},prepareRender:(t,s)=>{if(this._store.isDisposed)throw new TV.he;return e.prepareRender(t,s)},render:(t,s)=>{if(this._store.isDisposed)throw new TV.he;return e.render(t,s)}})}}_flushAccumulatedAndRenderNow(){let e=this._createCoordinatedRendering();pJ(()=>e.prepareRenderText());let t=pJ(()=>e.renderText());if(t){let[s,x]=t;pJ(()=>e.prepareRender(s,x)),pJ(()=>e.render(s,x))}}_getViewPartsToRender(){let e=[],t=0;for(let s of this._viewParts)s.shouldRender()&&(e[t++]=s);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;let e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}eP.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&0===e.length)return null;let t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);let s=new pw(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(s),this._viewLines.shouldRender()&&(this._viewLines.renderText(s),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),[e,new PY(this._context.viewLayout,s,this._viewLines)]},prepareRender:(e,t)=>{for(let s of e)s.prepareRender(t)},render:(e,t)=>{for(let s of e)s.render(t),s.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){let s=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),x=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(s);this._flushAccumulatedAndRenderNow();let E=this._viewLines.visibleRangeForPosition(new N0.L(x.lineNumber,x.column));return E?E.left:-1}getTargetAtClientPoint(e,t){let s=this._pointerHandler.getTargetAtClientPoint(e,t);return s?Uf.convertViewToModelMouseTarget(s,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new pU(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t)for(let e of(this._viewLines.forceShouldRender(),this._viewParts))e.forceShouldRender();e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._textAreaHandler.writeScreenReaderContent(e)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){this._contentWidgets.setWidgetPosition(e.widget,e.position?.position??null,e.position?.secondaryPosition??null,e.position?.preference??null,e.position?.positionAffinity??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){let 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()}};function pJ(e){try{return e()}catch(e){return(0,TV.dL)(e),null}}pQ=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([(P=Oe.TG,function(e,t){P(e,t,6)})],pQ);class pZ{static{this.INSTANCE=new pZ}constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{let t=this._coordinatedRenderings.indexOf(e);if(-1!==t&&(this._coordinatedRenderings.splice(t,1),0===this._coordinatedRenderings.length)){for(let[e,t]of this._animationFrameRunners)t.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){this._animationFrameRunners.has(e)||this._animationFrameRunners.set(e,E(e,()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()},100))}_onRenderScheduled(){let e=this._coordinatedRenderings.slice(0);for(let t of(this._coordinatedRenderings=[],e))pJ(()=>t.prepareRenderText());let t=[];for(let s=0,x=e.length;s<x;s++){let x=e[s];t[s]=pJ(()=>x.renderText())}for(let s=0,x=e.length;s<x;s++){let x=e[s],E=t[s];if(!E)continue;let[a,r]=E;pJ(()=>x.prepareRender(a,r))}for(let s=0,x=e.length;s<x;s++){let x=e[s],E=t[s];if(!E)continue;let[a,r]=E;pJ(()=>x.render(a,r))}}}var pz=x(70304);class pq{constructor(e,t,s,x,E){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=s,this.breakOffsetsVisibleColumn=x,this.wrappedTextIndentLength=E}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){let t=e>0?this.breakOffsets[e-1]:0,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=0===e?t:this.breakOffsets[e-1]+t;if(null!==this.injectionOffsets)for(let e=0;e<this.injectionOffsets.length;e++)if(s>this.injectionOffsets[e])s<this.injectionOffsets[e]+this.injectionOptions[e].content.length?s=this.injectionOffsets[e]:s-=this.injectionOptions[e].content.length;else break;return s}translateToOutputPosition(e,t=2){let s=e;if(null!==this.injectionOffsets)for(let x=0;x<this.injectionOffsets.length&&!(e<this.injectionOffsets[x])&&(1===t||e!==this.injectionOffsets[x]);x++)s+=this.injectionOptions[x].content.length;return this.offsetInInputWithInjectionsToOutputPosition(s,t)}offsetInInputWithInjectionsToOutputPosition(e,t=2){let s=0,x=this.breakOffsets.length-1,E=0,a=0;for(;s<=x;){E=s+(x-s)/2|0;let r=this.breakOffsets[E];if(a=E>0?this.breakOffsets[E-1]:0,0===t){if(e<=a)x=E-1;else if(e>r)s=E+1;else break}else if(e<a)x=E-1;else if(e>=r)s=E+1;else break}let r=e-a;return E>0&&(r+=this.wrappedTextIndentLength),new p0(E,r)}normalizeOutputPosition(e,t,s){if(null!==this.injectionOffsets){let x=this.outputPositionToOffsetInInputWithInjections(e,t),E=this.normalizeOffsetInInputWithInjectionsAroundInjections(x,s);if(E!==x)return this.offsetInInputWithInjectionsToOutputPosition(E,s)}if(0===s){if(e>0&&t===this.getMinOutputOffset(e))return new p0(e-1,this.getMaxOutputOffset(e-1))}else if(1===s&&e<this.getOutputLineCount()-1&&t===this.getMaxOutputOffset(e))return new p0(e+1,this.getMinOutputOffset(e+1));return new p0(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){let s=this.getInjectedTextAtOffset(e);if(!s)return e;if(2===t){if(e===s.offsetInInputWithInjections+s.length&&pj(this.injectionOptions[s.injectedTextIndex].cursorStops))return s.offsetInInputWithInjections+s.length;{let e=s.offsetInInputWithInjections;if(p$(this.injectionOptions[s.injectedTextIndex].cursorStops))return e;let t=s.injectedTextIndex-1;for(;t>=0&&this.injectionOffsets[t]===this.injectionOffsets[s.injectedTextIndex]&&!pj(this.injectionOptions[t].cursorStops)&&(e-=this.injectionOptions[t].content.length,!p$(this.injectionOptions[t].cursorStops));)t--;return e}}if(1===t||4===t){let e=s.offsetInInputWithInjections+s.length,t=s.injectedTextIndex;for(;t+1<this.injectionOffsets.length&&this.injectionOffsets[t+1]===this.injectionOffsets[t];)e+=this.injectionOptions[t+1].content.length,t++;return e}if(0===t||3===t){let e=s.offsetInInputWithInjections,t=s.injectedTextIndex;for(;t-1>=0&&this.injectionOffsets[t-1]===this.injectionOffsets[t];)e-=this.injectionOptions[t-1].content.length,t--;return e}(0,pz.vE)(t)}getInjectedText(e,t){let s=this.outputPositionToOffsetInInputWithInjections(e,t),x=this.getInjectedTextAtOffset(s);return x?{options:this.injectionOptions[x.injectedTextIndex]}:null}getInjectedTextAtOffset(e){let t=this.injectionOffsets,s=this.injectionOptions;if(null!==t){let x=0;for(let E=0;E<t.length;E++){let a=s[E].content.length,r=t[E]+x,i=t[E]+x+a;if(r>e)break;if(e<=i)return{injectedTextIndex:E,offsetInInputWithInjections:r,length:a};x+=a}}}}function pj(e){return null==e||e===Ml.RM.Right||e===Ml.RM.Both}function p$(e){return null==e||e===Ml.RM.Left||e===Ml.RM.Both}class p0{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new N0.L(e+this.outputLineIndex,this.outputOffset+1)}}var p2=x(11196);let p1=Ok("domLineBreaksComputer",{createHTML:e=>e});class p3{static create(e){return new p3(new WeakRef(e))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,s,x,E){let a=[],r=[];return{addRequest:(e,t,s)=>{a.push(e),r.push(t)},finalize:()=>(function(e,t,s,x,E,a,r,i){function n(e){let s=i[e];if(!s)return null;{let x=p2.gk.applyInjectedText(t[e],s),E=s.map(e=>e.options);return new pq(s.map(e=>e.column-1),E,[x.length],[],0)}}if(-1===E){let e=[];for(let s=0,x=t.length;s<x;s++)e[s]=n(s);return e}let _=Math.round(E*s.typicalHalfwidthCharacterWidth),T=Math.round(x*(3===a?2:2===a?1:0)),S=Math.ceil(s.spaceWidth*T),R=document.createElement("div");R0(R,s);let O=new MD.HT(1e4),A=[],o=[],N=[],I=[],h=[];for(let e=0;e<t.length;e++){let E=p2.gk.applyInjectedText(t[e],i[e]),r=0,n=0,T=_;if(0!==a){if(-1===(r=TM.LC(E)))r=0;else{for(let e=0;e<r;e++){let t=9===E.charCodeAt(e)?x-n%x:1;n+=t}let e=Math.ceil(s.spaceWidth*n);e+s.typicalFullwidthCharacterWidth>_?(r=0,n=0):T=_-e}}let R=E.substr(r),L=function(e,t,s,x,E,a){if(0!==a){let e=String(a);E.appendString('<div style="text-indent: -'),E.appendString(e),E.appendString("px; padding-left: "),E.appendString(e),E.appendString("px; box-sizing: border-box; width:")}else E.appendString('<div style="width:');E.appendString(String(x)),E.appendString('px;">');let r=e.length,i=t,n=0,_=[],T=[],S=0<r?e.charCodeAt(0):0;E.appendString("<span>");for(let t=0;t<r;t++){0!==t&&t%16384==0&&E.appendString("</span><span>"),_[t]=n,T[t]=i;let x=S;S=t+1<r?e.charCodeAt(t+1):0;let a=1,R=1;switch(x){case 9:R=a=s-i%s;for(let e=1;e<=a;e++)e<a?E.appendCharCode(160):E.appendASCIICharCode(32);break;case 32:32===S?E.appendCharCode(160):E.appendASCIICharCode(32);break;case 60:E.appendString("<");break;case 62:E.appendString(">");break;case 38:E.appendString("&");break;case 0:E.appendString("�");break;case 65279:case 8232:case 8233:case 133:E.appendCharCode(65533);break;default:TM.K7(x)&&R++,x<32?E.appendCharCode(9216+x):E.appendCharCode(x)}n+=a,i+=R}return E.appendString("</span>"),_[e.length]=n,T[e.length]=i,E.appendString("</div>"),[_,T]}(R,n,x,T,O,S);A[e]=r,o[e]=n,N[e]=R,I[e]=L[0],h[e]=L[1]}let L=O.build(),C=p1?.createHTML(L)??L;R.innerHTML=C,R.style.position="absolute",R.style.top="10000","keepAll"===r?(R.style.wordBreak="keep-all",R.style.overflowWrap="anywhere"):(R.style.wordBreak="inherit",R.style.overflowWrap="break-word"),e.document.body.appendChild(R);let l=document.createRange(),u=Array.prototype.slice.call(R.children,0),D=[];for(let e=0;e<t.length;e++){let t,s;let x=function(e,t,s,x){if(s.length<=1)return null;let E=Array.prototype.slice.call(t.children,0),a=[];try{(function e(t,s,x,E,a,r,i,n){if(E===r||(a=a||p7(t,s,x[E],x[E+1]),i=i||p7(t,s,x[r],x[r+1]),.1>=Math.abs(a[0].top-i[0].top)))return;if(E+1===r){n.push(r);return}let _=E+(r-E)/2|0,T=p7(t,s,x[_],x[_+1]);e(t,s,x,E,a,_,T,n),e(t,s,x,_,T,r,i,n)})(e,E,x,0,null,s.length-1,null,a)}catch(e){return console.log(e),null}return 0===a.length?null:(a.push(s.length),a)}(l,u[e],N[e],I[e]);if(null===x){D[e]=n(e);continue}let E=A[e],a=o[e]+T,r=h[e],_=[];for(let e=0,t=x.length;e<t;e++)_[e]=r[x[e]];if(0!==E)for(let e=0,t=x.length;e<t;e++)x[e]+=E;let S=i[e];S?(t=S.map(e=>e.options),s=S.map(e=>e.column-1)):(t=null,s=null),D[e]=new pq(s,t,x,_,a)}return R.remove(),D})((0,OR.cW)(this.targetWindow.deref()),a,e,t,s,x,E,r)}}}function p7(e,t,s,x){return e.setStart(t[s/16384|0].firstChild,s%16384),e.setEnd(t[x/16384|0].firstChild,x%16384),e.getClientRects()}class p5 extends TD.JT{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new TD.b2),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,s){for(let x of(this._editor=e,this._instantiationService=s,t)){if(this._pending.has(x.id)){(0,TV.dL)(Error(`Cannot have two contributions with the same id ${x.id}`));continue}this._pending.set(x.id,x)}this._instantiateSome(0),this._register(S4(SK(this._editor.getDomNode()),()=>{this._instantiateSome(1)})),this._register(S4(SK(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register(S4(SK(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){let e={};for(let[t,s]of this._instances)"function"==typeof s.saveViewState&&(e[t]=s.saveViewState());return e}restoreViewState(e){for(let[t,s]of this._instances)"function"==typeof s.restoreViewState&&s.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){return S4(SK(this._editor?.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(e){if(!this._finishedInstantiation[e])for(let t of(this._finishedInstantiation[e]=!0,this._findPendingContributionsByInstantiation(e)))this._instantiateById(t.id)}_findPendingContributionsByInstantiation(e){let t=[];for(let[,s]of this._pending)s.instantiation===e&&t.push(s);return t}_instantiateById(e){let t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw Error("Cannot instantiate contributions before being initialized!");try{let e=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,e),"function"==typeof e.restoreViewState&&0!==t.instantiation&&console.warn(`Editor contribution '${t.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(e){(0,TV.dL)(e)}}}}class p4{constructor(e,t,s,x,E,a,r){this.id=e,this.label=t,this.alias=s,this.metadata=x,this._precondition=E,this._run=a,this._contextKeyService=r}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}var p6=x(3713),p8=x(49002);class p9{static create(e){return new p9(e.get(135),e.get(134))}constructor(e,t){this.classifier=new Ye(e,t)}createLineBreaksComputer(e,t,s,x,E){let a=[],r=[],i=[];return{addRequest:(e,t,s)=>{a.push(e),r.push(t),i.push(s)},finalize:()=>{let n=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,_=[];for(let e=0,T=a.length;e<T;e++){let T=r[e],S=i[e];!S||S.injectionOptions||T?_[e]=function(e,t,s,x,E,a,r,i){let n,_;let T=p2.gk.applyInjectedText(t,s);if(s&&s.length>0?(n=s.map(e=>e.options),_=s.map(e=>e.column-1)):(n=null,_=null),-1===E)return n?new pq(_,n,[T.length],[],0):null;let S=T.length;if(S<=1)return n?new pq(_,n,[T.length],[],0):null;let R="keepAll"===i,O=Ya(T,x,E,a,r),A=E-O,o=[],N=[],I=0,h=0,L=0,C=E,l=T.charCodeAt(0),u=e.get(l),D=Yx(l,0,x,a),M=1;TM.ZG(l)&&(D+=1,l=T.charCodeAt(1),u=e.get(l),M++);for(let t=M;t<S;t++){let s,E;let r=t,i=T.charCodeAt(t);TM.ZG(i)?(t++,s=0,E=2):(s=e.get(i),E=Yx(i,D,x,a)),YE(l,u,i,s,R)&&(h=r,L=D),(D+=E)>C&&((0===h||D-L>A)&&(h=r,L=D-E),o[I]=h,N[I]=L,I++,C=L+A,h=0),l=i,u=s}return 0!==I||s&&0!==s.length?(o[I]=S,N[I]=D,new pq(_,n,o,N,O)):null}(this.classifier,a[e],T,t,s,n,x,E):_[e]=function(e,t,s,x,E,a,r,i){if(-1===E)return null;let n=s.length;if(n<=1)return null;let _="keepAll"===i,T=t.breakOffsets,S=t.breakOffsetsVisibleColumn,R=Ya(s,x,E,a,r),O=E-R,A=Yt,o=Ys,N=0,I=0,h=0,L=E,C=T.length,l=0;{let e=Math.abs(S[l]-L);for(;l+1<C;){let t=Math.abs(S[l+1]-L);if(t>=e)break;e=t,l++}}for(;l<C;){let t=l<0?0:T[l],E=l<0?0:S[l];I>t&&(t=I,E=h);let r=0,i=0,R=0,u=0;if(E<=L){let h=E,C=0===t?0:s.charCodeAt(t-1),l=0===t?0:e.get(C),D=!0;for(let E=t;E<n;E++){let t,n;let T=E,S=s.charCodeAt(E);if(TM.ZG(S)?(E++,t=0,n=2):(t=e.get(S),n=Yx(S,h,x,a)),T>I&&YE(C,l,S,t,_)&&(r=T,i=h),(h+=n)>L){T>I?(R=T,u=h-n):(R=E+1,u=h),h-i>O&&(r=0),D=!1;break}C=S,l=t}if(D){N>0&&(A[N]=T[T.length-1],o[N]=S[T.length-1],N++);break}}if(0===r){let n=E,T=s.charCodeAt(t),S=e.get(T),A=!1;for(let x=t-1;x>=I;x--){let t,E;let o=x+1,N=s.charCodeAt(x);if(9===N){A=!0;break}if(TM.YK(N)?(x--,t=0,E=2):(t=e.get(N),E=TM.K7(N)?a:1),n<=L){if(0===R&&(R=o,u=n),n<=L-O)break;if(YE(N,t,T,S,_)){r=o,i=n;break}}n-=E,T=N,S=t}if(0!==r){let e=O-(u-i);if(e<=x){let t=s.charCodeAt(R);e-(TM.ZG(t)?2:Yx(t,u,x,a))<0&&(r=0)}}if(A){l--;continue}}if(0===r&&(r=R,i=u),r<=I){let e=s.charCodeAt(I);TM.ZG(e)?(r=I+2,i=h+2):(r=I+1,i=h+Yx(e,h,x,a))}for(I=r,A[N]=r,h=i,o[N]=i,N++,L=i+O;l<0||l<C&&S[l]<i;)l++;let D=Math.abs(S[l]-L);for(;l+1<C;){let e=Math.abs(S[l+1]-L);if(e>=D)break;D=e,l++}}return 0===N?null:(A.length=N,o.length=N,Yt=t.breakOffsets,Ys=t.breakOffsetsVisibleColumn,t.breakOffsets=A,t.breakOffsetsVisibleColumn=o,t.wrappedTextIndentLength=R,t)}(this.classifier,S,a[e],t,s,n,x,E)}return Yt.length=0,Ys.length=0,_}}}}class Ye extends p8.N{constructor(e,t){super(0);for(let t=0;t<e.length;t++)this.set(e.charCodeAt(t),1);for(let e=0;e<t.length;e++)this.set(t.charCodeAt(e),2)}get(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let Yt=[],Ys=[];function Yx(e,t,s,x){return 9===e?s-t%s:TM.K7(e)||e<32?x:1}function YE(e,t,s,x,E){return 32!==s&&(2===t&&2!==x||1!==t&&1===x||!E&&3===t&&2!==x||!E&&3===x&&1!==t)}function Ya(e,t,s,x,E){let a=0;if(0!==E){let r=TM.LC(e);if(-1!==r){for(let s=0;s<r;s++){let x=9===e.charCodeAt(s)?t-a%t:1;a+=x}let i=3===E?2:2===E?1:0;for(let e=0;e<i;e++){let e=t-a%t;a+=e}a+x>s&&(a=0)}}return a}var Yr=x(42106);class Yi{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new dB(new OQ.e(1,1,1,1),0,0,new N0.L(1,1),0),new dB(new OQ.e(1,1,1,1),0,0,new N0.L(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new dp(this.modelState,this.viewState)}readSelectionFromMarkers(e){let t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?P4.Y.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):P4.Y.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,s){this._setState(e,t,s)}static _validatePositionWithCache(e,t,s,x){return t.equals(s)?x:e.normalizePosition(t,2)}static _validateViewState(e,t){let s=t.position,x=t.selectionStart.getStartPosition(),E=t.selectionStart.getEndPosition(),a=e.normalizePosition(s,2),r=this._validatePositionWithCache(e,x,s,a),i=this._validatePositionWithCache(e,E,x,r);return s.equals(a)&&x.equals(r)&&E.equals(i)?t:new dB(OQ.e.fromPositions(r,i),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+x.column-r.column,a,t.leftoverVisibleColumns+s.column-a.column)}_setState(e,t,s){if(s&&(s=Yi._validateViewState(e.viewModel,s)),t){let s=e.model.validateRange(t.selectionStart),x=t.selectionStart.equalsRange(s)?t.selectionStartLeftoverVisibleColumns:0,E=e.model.validatePosition(t.position),a=t.position.equals(E)?t.leftoverVisibleColumns:0;t=new dB(s,t.selectionStartKind,x,E,a)}else{if(!s)return;let x=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(s.selectionStart)),E=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(s.position));t=new dB(x,s.selectionStartKind,s.selectionStartLeftoverVisibleColumns,E,s.leftoverVisibleColumns)}if(s){let x=e.coordinatesConverter.validateViewRange(s.selectionStart,t.selectionStart),E=e.coordinatesConverter.validateViewPosition(s.position,t.position);s=new dB(x,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,E,t.leftoverVisibleColumns)}else{let x=e.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),E=e.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),a=new OQ.e(x.lineNumber,x.column,E.lineNumber,E.column),r=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);s=new dB(a,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,r,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=s,this._updateTrackedRange(e)}}class Yn{constructor(e){this.context=e,this.cursors=[new Yi(e)],this.lastAddedCursorIndex=0}dispose(){for(let e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(let e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(let e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(let 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(0,Yr.vm)(this.cursors,(0,cO.tT)(e=>e.viewState.position,N0.L.compare)).viewState.position}getBottomMostViewPosition(){return(0,Yr.BS)(this.cursors,(0,cO.tT)(e=>e.viewState.position,N0.L.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(dp.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){null!==e&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){let t=this.cursors.length-1,s=e.length;if(t<s){let e=s-t;for(let t=0;t<e;t++)this._addSecondaryCursor()}else if(t>s){let e=t-s;for(let t=0;t<e;t++)this._removeSecondaryCursor(this.cursors.length-2)}for(let t=0;t<s;t++)this.cursors[t+1].setState(this.context,e[t].modelState,e[t].viewState)}killSecondaryCursors(){this._setSecondaryStates([])}_addSecondaryCursor(){this.cursors.push(new Yi(this.context)),this.lastAddedCursorIndex=this.cursors.length-1}getLastAddedCursorIndex(){return 1===this.cursors.length||0===this.lastAddedCursorIndex?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(1===this.cursors.length)return;let e=this.cursors.slice(0),t=[];for(let s=0,x=e.length;s<x;s++)t.push({index:s,selection:e[s].modelState.selection});t.sort((0,cO.tT)(e=>e.selection,OQ.e.compareRangesUsingStarts));for(let s=0;s<t.length-1;s++){let x=t[s],E=t[s+1],a=x.selection,r=E.selection;if(this.context.cursorConfig.multiCursorMergeOverlapping&&(r.isEmpty()||a.isEmpty()?r.getStartPosition().isBeforeOrEqual(a.getEndPosition()):r.getStartPosition().isBefore(a.getEndPosition()))){let a=x.index<E.index?s:s+1,r=x.index<E.index?s+1:s,i=t[r].index,n=t[a].index,_=t[r].selection,T=t[a].selection;if(!_.equalsSelection(T)){let s,x;let E=_.plusRange(T),r=_.selectionStartLineNumber===_.startLineNumber&&_.selectionStartColumn===_.startColumn,S=T.selectionStartLineNumber===T.startLineNumber&&T.selectionStartColumn===T.startColumn;i===this.lastAddedCursorIndex?(s=r,this.lastAddedCursorIndex=n):s=S,x=s?new P4.Y(E.startLineNumber,E.startColumn,E.endLineNumber,E.endColumn):new P4.Y(E.endLineNumber,E.endColumn,E.startLineNumber,E.startColumn),t[a].selection=x;let R=dp.fromModelSelection(x);e[n].setState(this.context,R.modelState,R.viewState)}for(let e of t)e.index>i&&e.index--;e.splice(i,1),t.splice(r,1),this._removeSecondaryCursor(i-1),s--}}}}class Y_{constructor(e,t,s,x){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=s,this.cursorConfig=x}}class Yc{constructor(){this.type=0}}class YT{constructor(){this.type=1}}class YS{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class YR{constructor(e,t,s){this.selections=e,this.modelSelections=t,this.reason=s,this.type=3}}class YO{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 YA{constructor(){this.type=5}}class Yo{constructor(e){this.type=6,this.isFocused=e}}class YN{constructor(){this.type=7}}class YI{constructor(){this.type=8}}class Yh{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class YL{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class YC{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class Yl{constructor(e,t,s,x,E,a,r){this.source=e,this.minimalReveal=t,this.range=s,this.selections=x,this.verticalType=E,this.revealHorizontal=a,this.scrollType=r,this.type=12}}class Yu{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 YD{constructor(e){this.theme=e,this.type=14}}class YM{constructor(e){this.type=15,this.ranges=e}}class YP{constructor(){this.type=16}}class Yd{constructor(){this.type=17}}class YU extends TD.JT{constructor(){super(),this._onEvent=this._register(new T0.Q5),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,s=this._outgoingEvents.length;t<s;t++){let 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;let e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,s=this._eventHandlers.length;t<s;t++)this._eventHandlers[t]===e&&console.warn("Detected duplicate listener in ViewEventDispatcher",e);this._eventHandlers.push(e)}removeViewEventHandler(e){for(let t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}}beginEmitViewEvents(){return this._collectorCnt++,1===this._collectorCnt&&(this._collector=new Yp),this._collector}endEmitViewEvents(){if(this._collectorCnt--,0===this._collectorCnt){let e=this._collector.outgoingEvents,t=this._collector.viewEvents;for(let t of(this._collector=null,e))this._addOutgoingEvent(t);t.length>0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){let e=this._viewEventQueue;for(let t of(this._viewEventQueue=null,this._eventHandlers.slice(0)))t.handleEvents(e)}}}class Yp{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class YY{constructor(e,t,s,x){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=s,this.contentHeight=x,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 YY(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class YG{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 YG(this.oldHasFocus,e.hasFocus)}}class YB{constructor(e,t,s,x,E,a,r,i){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=s,this._oldScrollTop=x,this.scrollWidth=E,this.scrollLeft=a,this.scrollHeight=r,this.scrollTop=i,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 YB(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class Ym{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class Yf{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class Yg{constructor(e,t,s,x,E,a,r){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=s,this.modelVersionId=x,this.source=E,this.reason=a,this.reachedMaxCursorCount=r}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;let s=e.length;if(s!==t.length)return!1;for(let x=0;x<s;x++)if(!e[x].equalsSelection(t[x]))return!1;return!0}isNoOp(){return Yg._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}attemptToMerge(e){return e.kind!==this.kind?null:new Yg(this.oldSelections,e.selections,this.oldModelVersionId,e.modelVersionId,e.source,e.reason,this.reachedMaxCursorCount||e.reachedMaxCursorCount)}}class YF{constructor(){this.kind=5}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class YH{constructor(e){this.event=e,this.kind=7}isNoOp(){return!1}attemptToMerge(e){return null}}class Yy{constructor(e){this.event=e,this.kind=8}isNoOp(){return!1}attemptToMerge(e){return null}}class YV{constructor(e){this.event=e,this.kind=9}isNoOp(){return!1}attemptToMerge(e){return null}}class YX{constructor(e){this.event=e,this.kind=10}isNoOp(){return!1}attemptToMerge(e){return null}}class Yb{constructor(e){this.event=e,this.kind=11}isNoOp(){return!1}attemptToMerge(e){return null}}class Yv{constructor(e){this.event=e,this.kind=12}isNoOp(){return!1}attemptToMerge(e){return null}}class Yk extends TD.JT{constructor(e,t,s,x){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=s,this.context=new Y_(this._model,this._viewModel,this._coordinatesConverter,x),this._cursors=new Yn(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=(0,TD.B9)(this._autoClosedActions),super.dispose()}updateConfiguration(e){this.context=new Y_(this._model,this._viewModel,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}onLineMappingChanged(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,"viewModel",0,this.getCursorStates())}setHasFocus(e){this._hasFocus=e}_validateAutoClosedActions(){if(this._autoClosedActions.length>0){let e=this._cursors.getSelections();for(let t=0;t<this._autoClosedActions.length;t++){let s=this._autoClosedActions[t];!s.isValid(e)&&(s.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,s,x){let E=!1,a=this.context.cursorConfig.multiCursorLimit;null!==x&&x.length>a&&(x=x.slice(0,a),E=!0);let r=Yw.from(this._model,this);return this._cursors.setStates(x),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,s,r,E)}setCursorColumnSelectData(e){this._columnSelectData=e}revealAll(e,t,s,x,E,a){let r=this._cursors.getViewPositions(),i=null,n=null;r.length>1?n=this._cursors.getViewSelections():i=OQ.e.fromPositions(r[0],r[0]),e.emitViewEvent(new Yl(t,s,i,n,x,E,a))}revealPrimary(e,t,s,x,E,a){let r=[this._cursors.getPrimaryCursor().viewState.selection];e.emitViewEvent(new Yl(t,s,null,r,x,E,a))}saveState(){let e=[],t=this._cursors.getSelections();for(let s=0,x=t.length;s<x;s++){let x=t[s];e.push({inSelectionMode:!x.isEmpty(),selectionStart:{lineNumber:x.selectionStartLineNumber,column:x.selectionStartColumn},position:{lineNumber:x.positionLineNumber,column:x.positionColumn}})}return e}restoreState(e,t){let s=[];for(let e=0,x=t.length;e<x;e++){let x=t[e],E=1,a=1;x.position&&x.position.lineNumber&&(E=x.position.lineNumber),x.position&&x.position.column&&(a=x.position.column);let r=E,i=a;x.selectionStart&&x.selectionStart.lineNumber&&(r=x.selectionStart.lineNumber),x.selectionStart&&x.selectionStart.column&&(i=x.selectionStart.column),s.push({selectionStartLineNumber:r,selectionStartColumn:i,positionLineNumber:E,positionColumn:a})}this.setStates(e,"restoreState",0,dp.fromModelSelections(s)),this.revealAll(e,"restoreState",!1,0,!0,1)}onModelContentChanged(e,t){if(t instanceof p2.D8){if(!this._isHandling){this._isHandling=!0;try{this.setStates(e,"modelChange",0,this.getCursorStates())}finally{this._isHandling=!1}}}else{let s=t.rawContentChangedEvent;if(this._knownModelVersionId=s.versionId,this._isHandling)return;let x=s.containsEvent(1);if(this._prevEditOperationType=0,x)this._cursors.dispose(),this._cursors=new Yn(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,"model",1,null,!1);else if(this._hasFocus&&s.resultingSelection&&s.resultingSelection.length>0){let t=dp.fromModelSelections(s.resultingSelection);this.setStates(e,"modelChange",s.isUndoing?5:s.isRedoing?6:2,t)&&this.revealAll(e,"modelChange",!1,0,!0,0)}else{let t=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,dp.fromModelSelections(t))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;let e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),s=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:s.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,s)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,s,x){this.setStates(e,t,x,dp.fromModelSelections(s))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){let s=[],x=[];for(let E=0,a=e.length;E<a;E++)s.push({range:e[E],options:{description:"auto-closed-character",inlineClassName:"auto-closed-character",stickiness:1}}),x.push({range:t[E],options:{description:"auto-closed-enclosing",stickiness:1}});let E=this._model.deltaDecorations([],s),a=this._model.deltaDecorations([],x);this._autoClosedActions.push(new YW(this._model,E,a))}_executeEditOperation(e){if(!e)return;e.shouldPushStackElementBefore&&this._model.pushStackElement();let t=YK.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);let s=[],x=[];for(let t=0;t<e.commands.length;t++){let E=e.commands[t];E instanceof Ua&&E.enclosingRange&&E.closeCharacterRange&&(s.push(E.closeCharacterRange),x.push(E.enclosingRange))}s.length>0&&this._pushAutoClosedAction(s,x),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,s,x,E){let a=Yw.from(this._model,this);if(a.equals(x))return!1;let r=this._cursors.getSelections(),i=this._cursors.getViewSelections();if(e.emitViewEvent(new YR(i,r,s)),!x||x.cursorState.length!==a.cursorState.length||a.cursorState.some((e,t)=>!e.modelState.equals(x.cursorState[t].modelState))){let i=x?x.cursorState.map(e=>e.modelState.selection):null,n=x?x.modelVersionId:0;e.emitOutgoingEvent(new Yg(i,r,n,a.modelVersionId,t||"keyboard",s,E))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;let t=[];for(let s=0,x=e.length;s<x;s++){let x=e[s];if(!x.text||x.text.indexOf("\n")>=0)return null;let E=x.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!E)return null;let a=E[1],r=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!r||1!==r.length)return null;let i=r[0].open,n=x.text.length-E[2].length-1,_=x.text.lastIndexOf(i,n-1);if(-1===_)return null;t.push([_,n])}return t}executeEdits(e,t,s,x){let E=null;"snippet"===t&&(E=this._findAutoClosingPairs(s)),E&&(s[0]._isTracked=!0);let a=[],r=[],i=this._model.pushEditOperations(this.getSelections(),s,e=>{if(E)for(let t=0,s=E.length;t<s;t++){let[s,x]=E[t],i=e[t],n=i.range.startLineNumber,_=i.range.startColumn-1+s,T=i.range.startColumn-1+x;a.push(new OQ.e(n,T+1,n,T+2)),r.push(new OQ.e(n,_+1,n,T+2))}let t=x(e);return t&&(this._isHandling=!0),t});i&&(this._isHandling=!1,this.setSelections(e,t,i,0)),a.length>0&&this._pushAutoClosedAction(a,r)}_executeEdit(e,t,s,x=0){if(this.context.cursorConfig.readOnly)return;let E=Yw.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(e){(0,TV.dL)(e)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,s,x,E,!1)&&this.revealAll(t,s,!1,0,!0,0)}getAutoClosedCharacters(){return YW.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new YJ(this._model,this.getSelections())}endComposition(e,t){let s=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{"keyboard"===t&&this._executeEditOperation(UN.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,s,this.getSelections(),this.getAutoClosedCharacters()))},e,t)}type(e,t,s){this._executeEdit(()=>{if("keyboard"===s){let e=t.length,s=0;for(;s<e;){let e=TM.vH(t,s),x=t.substr(s,e);this._executeEditOperation(UN.typeWithInterceptors(!!this._compositionState,this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),this.getAutoClosedCharacters(),x)),s+=e}}else this._executeEditOperation(UN.typeWithoutInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t))},e,s)}compositionType(e,t,s,x,E,a){if(0===t.length&&0===s&&0===x){if(0!==E){let t=this.getSelections().map(e=>{let t=e.getPosition();return new P4.Y(t.lineNumber,t.column+E,t.lineNumber,t.column+E)});this.setSelections(e,a,t,0)}return}this._executeEdit(()=>{this._executeEditOperation(UN.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,s,x,E))},e,a)}paste(e,t,s,x,E){this._executeEdit(()=>{this._executeEditOperation(UN.paste(this.context.cursorConfig,this._model,this.getSelections(),t,s,x||[]))},e,E,4)}cut(e,t){this._executeEdit(()=>{this._executeEditOperation(dv.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,s){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new dm(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,s)}executeCommands(e,t,s){this._executeEdit(()=>{this._executeEditOperation(new dm(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,s)}}class Yw{static from(e,t){return new Yw(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,s=this.cursorState.length;t<s;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}}class YW{static getAllAutoClosedCharacters(e){let t=[];for(let s of e)t=t.concat(s.getAutoClosedCharactersRanges());return t}constructor(e,t,s){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=s}dispose(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}getAutoClosedCharactersRanges(){let e=[];for(let t=0;t<this._autoClosedCharactersDecorations.length;t++){let s=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);s&&e.push(s)}return e}isValid(e){let t=[];for(let e=0;e<this._autoClosedEnclosingDecorations.length;e++){let s=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[e]);if(s&&(t.push(s),s.startLineNumber!==s.endLineNumber))return!1}t.sort(OQ.e.compareRangesUsingStarts),e.sort(OQ.e.compareRangesUsingStarts);for(let s=0;s<e.length;s++)if(s>=t.length||!t[s].strictContainsRange(e[s]))return!1;return!0}}class YK{static executeCommands(e,t,s){let x={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},E=this._innerExecuteCommands(x,s);for(let e=0,t=x.trackedRanges.length;e<t;e++)x.model._setTrackedRange(x.trackedRanges[e],null,0);return E}static _innerExecuteCommands(e,t){if(this._arrayIsEmpty(t))return null;let s=this._getEditOperations(e,t);if(0===s.operations.length)return null;let x=s.operations,E=this._getLoserCursorMap(x);if(E.hasOwnProperty("0"))return console.warn("Ignoring commands"),null;let a=[];for(let e=0,t=x.length;e<t;e++)E.hasOwnProperty(x[e].identifier.major.toString())||a.push(x[e]);s.hadTrackedEditOperation&&a.length>0&&(a[0]._isTracked=!0);let r=e.model.pushEditOperations(e.selectionsBefore,a,s=>{let x=[];for(let t=0;t<e.selectionsBefore.length;t++)x[t]=[];for(let e of s)e.identifier&&x[e.identifier.major].push(e);let E=(e,t)=>e.identifier.minor-t.identifier.minor,a=[];for(let s=0;s<e.selectionsBefore.length;s++)x[s].length>0?(x[s].sort(E),a[s]=t[s].computeCursorState(e.model,{getInverseEditOperations:()=>x[s],getTrackedSelection:t=>{let s=parseInt(t,10),x=e.model._getTrackedRange(e.trackedRanges[s]);return 0===e.trackedRangesDirection[s]?new P4.Y(x.startLineNumber,x.startColumn,x.endLineNumber,x.endColumn):new P4.Y(x.endLineNumber,x.endColumn,x.startLineNumber,x.startColumn)}})):a[s]=e.selectionsBefore[s];return a});r||(r=e.selectionsBefore);let i=[];for(let e in E)E.hasOwnProperty(e)&&i.push(parseInt(e,10));for(let e of(i.sort((e,t)=>t-e),i))r.splice(e,1);return r}static _arrayIsEmpty(e){for(let t=0,s=e.length;t<s;t++)if(e[t])return!1;return!0}static _getEditOperations(e,t){let s=[],x=!1;for(let E=0,a=t.length;E<a;E++){let a=t[E];if(a){let t=this._getEditOperationsFromCommand(e,E,a);s=s.concat(t.operations),x=x||t.hadTrackedEditOperation}}return{operations:s,hadTrackedEditOperation:x}}static _getEditOperationsFromCommand(e,t,s){let x=[],E=0,a=(e,a,r=!1)=>{OQ.e.isEmpty(e)&&""===a||x.push({identifier:{major:t,minor:E++},range:e,text:a,forceMoveMarkers:r,isAutoWhitespaceEdit:s.insertsAutoWhitespace})},r=!1;try{s.getEditOperations(e.model,{addEditOperation:a,addTrackedEditOperation:(e,t,s)=>{r=!0,a(e,t,s)},trackSelection:(t,s)=>{let x;let E=P4.Y.liftSelection(t);if(E.isEmpty()){if("boolean"==typeof s)x=s?2:3;else{let t=e.model.getLineMaxColumn(E.startLineNumber);x=E.startColumn===t?2:3}}else x=1;let a=e.trackedRanges.length,r=e.model._setTrackedRange(null,E,x);return e.trackedRanges[a]=r,e.trackedRangesDirection[a]=E.getDirection(),a.toString()}})}catch(e){return(0,TV.dL)(e),{operations:[],hadTrackedEditOperation:!1}}return{operations:x,hadTrackedEditOperation:r}}static _getLoserCursorMap(e){(e=e.slice(0)).sort((e,t)=>-OQ.e.compareRangesUsingEnds(e.range,t.range));let t={};for(let s=1;s<e.length;s++){let x=e[s-1],E=e[s];if(OQ.e.getStartPosition(x.range).isBefore(OQ.e.getEndPosition(E.range))){let a;t[(a=x.identifier.major>E.identifier.major?x.identifier.major:E.identifier.major).toString()]=!0;for(let t=0;t<e.length;t++)e[t].identifier.major===a&&(e.splice(t,1),t<s&&s--,t--);s>0&&s--}}return t}}class YQ{constructor(e,t,s){this.text=e,this.startSelection=t,this.endSelection=s}}class YJ{static _capture(e,t){let s=[];for(let x of t){if(x.startLineNumber!==x.endLineNumber)return null;s.push(new YQ(e.getLineContent(x.startLineNumber),x.startColumn-1,x.endColumn-1))}return s}constructor(e,t){this._original=YJ._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;let s=YJ._capture(e,t);if(!s||this._original.length!==s.length)return null;let x=[];for(let e=0,t=this._original.length;e<t;e++)x.push(YJ._deduceOutcome(this._original[e],s[e]));return x}static _deduceOutcome(e,t){let s=Math.min(e.startSelection,t.startSelection,TM.Mh(e.text,t.text)),x=Math.min(e.text.length-e.endSelection,t.text.length-t.endSelection,TM.P1(e.text,t.text)),E=e.text.substring(s,e.text.length-x),a=t.text.substring(s,t.text.length-x);return new UI(E,e.startSelection-s,e.endSelection-s,a,t.startSelection-s,t.endSelection-s)}}class YZ{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;let t=this._inserts,s=this._changes,x=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,s,x)}}class Yz{constructor(e,t,s,x,E){this.id=e,this.afterLineNumber=t,this.ordinal=s,this.height=x,this.minWidth=E,this.prefixSum=0}}class Yq{static{this.INSTANCE_COUNT=0}constructor(e,t,s,x){this._instanceId=TM.PJ(++Yq.INSTANCE_COUNT),this._pendingChanges=new YZ,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=s,this._paddingBottom=x}static findInsertionIndex(e,t,s){let x=0,E=e.length;for(;x<E;){let a=x+E>>>1;t===e[a].afterLineNumber?s<e[a].ordinal?E=a:x=a+1:t<e[a].afterLineNumber?E=a:x=a+1}return x}setLineHeight(e){this._checkPendingChanges(),this._lineHeight=e}setPadding(e,t){this._paddingTop=e,this._paddingBottom=t}onFlushed(e){this._checkPendingChanges(),this._lineCount=e}changeWhitespace(e){let t=!1;try{let s={insertWhitespace:(e,s,x,E)=>{t=!0,e|=0,s|=0,x|=0,E|=0;let a=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new Yz(a,e,s,x,E)),a},changeOneWhitespace:(e,s,x)=>{t=!0,s|=0,x|=0,this._pendingChanges.change({id:e,newAfterLineNumber:s,newHeight:x})},removeWhitespace:e=>{t=!0,this._pendingChanges.remove({id:e})}};e(s)}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,s){if((e.length>0||s.length>0)&&(this._minWidth=-1),e.length+t.length+s.length<=1){for(let t of e)this._insertWhitespace(t);for(let e of t)this._changeOneWhitespace(e.id,e.newAfterLineNumber,e.newHeight);for(let e of s){let t=this._findWhitespaceIndex(e.id);-1!==t&&this._removeWhitespace(t)}return}let x=new Set;for(let e of s)x.add(e.id);let E=new Map;for(let e of t)E.set(e.id,e);let a=e=>{let t=[];for(let s of e)if(!x.has(s.id)){if(E.has(s.id)){let e=E.get(s.id);s.afterLineNumber=e.newAfterLineNumber,s.height=e.newHeight}t.push(s)}return t},r=a(this._arr).concat(a(e));r.sort((e,t)=>e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber),this._arr=r,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){let t=Yq.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){let t=this._arr;for(let s=0,x=t.length;s<x;s++)if(t[s].id===e)return s;return -1}_changeOneWhitespace(e,t,s){let x=this._findWhitespaceIndex(e);if(-1!==x&&(this._arr[x].height!==s&&(this._arr[x].height=s,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,x-1)),this._arr[x].afterLineNumber!==t)){let e=this._arr[x];this._removeWhitespace(x),e.afterLineNumber=t,this._insertWhitespace(e)}}_removeWhitespace(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}onLinesDeleted(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount-=t-e+1;for(let s=0,x=this._arr.length;s<x;s++){let x=this._arr[s].afterLineNumber;e<=x&&x<=t?this._arr[s].afterLineNumber=e-1:x>t&&(this._arr[s].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(let s=0,x=this._arr.length;s<x;s++){let x=this._arr[s].afterLineNumber;e<=x&&(this._arr[s].afterLineNumber+=t-e+1)}}getWhitespacesTotalHeight(){return(this._checkPendingChanges(),0===this._arr.length)?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}getWhitespacesAccumulatedHeight(e){this._checkPendingChanges(),e|=0;let t=Math.max(0,this._prefixSumValidIndex+1);0===t&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(let s=t;s<=e;s++)this._arr[s].prefixSum=this._arr[s-1].prefixSum+this._arr[s].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}getLinesTotalHeight(){return this._checkPendingChanges(),this._lineHeight*this._lineCount+this.getWhitespacesTotalHeight()+this._paddingTop+this._paddingBottom}getWhitespaceAccumulatedHeightBeforeLineNumber(e){this._checkPendingChanges(),e|=0;let t=this._findLastWhitespaceBeforeLineNumber(e);return -1===t?0:this.getWhitespacesAccumulatedHeight(t)}_findLastWhitespaceBeforeLineNumber(e){e|=0;let t=this._arr,s=0,x=t.length-1;for(;s<=x;){let E=(x-s|0)/2|0,a=s+E|0;if(t[a].afterLineNumber<e){if(a+1>=t.length||t[a+1].afterLineNumber>=e)return a;s=a+1|0}else x=a-1|0}return -1}_findFirstWhitespaceAfterLineNumber(e){e|=0;let t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t<this._arr.length?t:-1}getFirstWhitespaceIndexAfterLineNumber(e){return this._checkPendingChanges(),e|=0,this._findFirstWhitespaceAfterLineNumber(e)}getVerticalOffsetForLineNumber(e,t=!1){return this._checkPendingChanges(),((e|=0)>1?this._lineHeight*(e-1):0)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0))+this._paddingTop}getVerticalOffsetAfterLineNumber(e,t=!1){return this._checkPendingChanges(),e|=0,this._lineHeight*e+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0))+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),-1===this._minWidth){let e=0;for(let t=0,s=this._arr.length;t<s;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}isAfterLines(e){return this._checkPendingChanges(),e>this.getLinesTotalHeight()}isInTopPadding(e){return 0!==this._paddingTop&&(this._checkPendingChanges(),e<this._paddingTop)}isInBottomPadding(e){return 0!==this._paddingBottom&&(this._checkPendingChanges(),e>=this.getLinesTotalHeight()-this._paddingBottom)}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;let t=0|this._lineCount,s=this._lineHeight,x=1,E=t;for(;x<E;){let t=(x+E)/2|0,a=0|this.getVerticalOffsetForLineNumber(t);if(e>=a+s)x=t+1;else{if(e>=a)return t;E=t}}return x>t?t:x}getLinesViewportData(e,t){let s,x;this._checkPendingChanges(),e|=0,t|=0;let E=this._lineHeight,a=0|this.getLineNumberAtOrAfterVerticalOffset(e),r=0|this.getVerticalOffsetForLineNumber(a),i=0|this._lineCount,n=0|this.getFirstWhitespaceIndexAfterLineNumber(a),_=0|this.getWhitespacesCount();-1===n?(n=_,x=i+1,s=0):(x=0|this.getAfterLineNumberForWhitespaceIndex(n),s=0|this.getHeightForWhitespaceIndex(n));let T=r,S=T,R=0;r>=5e5&&(S-=R=Math.floor((R=5e5*Math.floor(r/5e5))/E)*E);let O=[],A=e+(t-e)/2,o=-1;for(let e=a;e<=i;e++){if(-1===o){let t=T,s=T+E;(t<=A&&A<s||t>A)&&(o=e)}for(T+=E,O[e-a]=S,S+=E;x===e;)S+=s,T+=s,++n>=_?x=i+1:(x=0|this.getAfterLineNumberForWhitespaceIndex(n),s=0|this.getHeightForWhitespaceIndex(n));if(T>=t){i=e;break}}-1===o&&(o=i);let N=0|this.getVerticalOffsetForLineNumber(i),I=a,h=i;return I<h&&r<e&&I++,I<h&&N+E>t&&h--,{bigNumbersDelta:R,startLineNumber:a,endLineNumber:i,relativeVerticalOffset:O,centeredLineNumber:o,completelyVisibleStartLineNumber:I,completelyVisibleEndLineNumber:h,lineHeight:this._lineHeight}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e|=0;let t=this.getAfterLineNumberForWhitespaceIndex(e);return(t>=1?this._lineHeight*t:0)+(e>0?this.getWhitespacesAccumulatedHeight(e-1):0)+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e|=0;let t=0,s=this.getWhitespacesCount()-1;if(s<0)return -1;let x=this.getVerticalOffsetForWhitespaceIndex(s),E=this.getHeightForWhitespaceIndex(s);if(e>=x+E)return -1;for(;t<s;){let x=Math.floor((t+s)/2),E=this.getVerticalOffsetForWhitespaceIndex(x),a=this.getHeightForWhitespaceIndex(x);if(e>=E+a)t=x+1;else{if(e>=E)return x;s=x}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e|=0;let t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;let s=this.getVerticalOffsetForWhitespaceIndex(t);if(s>e)return null;let x=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:s,height:x}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e|=0,t|=0;let s=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),x=this.getWhitespacesCount()-1;if(s<0)return[];let E=[];for(let e=s;e<=x;e++){let s=this.getVerticalOffsetForWhitespaceIndex(e),x=this.getHeightForWhitespaceIndex(e);if(s>=t)break;E.push({id:this.getIdForWhitespaceIndex(e),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(e),verticalOffset:s,height:x})}return E}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].height}}class Yj{constructor(e,t,s,x){(e|=0)<0&&(e=0),(t|=0)<0&&(t=0),(s|=0)<0&&(s=0),(x|=0)<0&&(x=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=s,this.contentHeight=x,this.scrollHeight=Math.max(s,x)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class Y$ extends TD.JT{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new T0.Q5),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new Yj(0,0,0,0),this._scrollable=this._register(new Az({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;let t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);let s=t.contentWidth!==e.contentWidth,x=t.contentHeight!==e.contentHeight;(s||x)&&this._onDidContentSizeChange.fire(new YY(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 Y0 extends TD.JT{constructor(e,t,s){super(),this._configuration=e;let x=this._configuration.options,E=x.get(146),a=x.get(84);this._linesLayout=new Yq(t,x.get(67),a.top,a.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new Y$(0,s)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new Yj(E.contentWidth,0,E.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(115)?125:0)}onConfigurationChanged(e){let t=this._configuration.options;if(e.hasChanged(67)&&this._linesLayout.setLineHeight(t.get(67)),e.hasChanged(84)){let e=t.get(84);this._linesLayout.setPadding(e.top,e.bottom)}if(e.hasChanged(146)){let e=t.get(146),s=e.contentWidth,x=e.height,E=this._scrollable.getScrollDimensions(),a=E.contentWidth;this._scrollable.setScrollDimensions(new Yj(s,E.contentWidth,x,this._getContentHeight(s,x,a)))}else this._updateHeight();e.hasChanged(115)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){let s=this._configuration.options.get(104);return 2===s.horizontal||e>=t?0:s.horizontalScrollbarSize}_getContentHeight(e,t,s){let x=this._configuration.options,E=this._linesLayout.getLinesTotalHeight();return x.get(106)?E+=Math.max(0,t-x.get(67)-x.get(84).bottom):x.get(104).ignoreHorizontalScrollbarInContentHeight||(E+=this._getHorizontalScrollbarHeight(e,s)),E}_updateHeight(){let e=this._scrollable.getScrollDimensions(),t=e.width,s=e.height,x=e.contentWidth;this._scrollable.setScrollDimensions(new Yj(t,e.contentWidth,s,this._getContentHeight(t,s,x)))}getCurrentViewport(){let e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new MX(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){let e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new MX(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){let e=this._configuration.options,t=this._maxLineWidth,s=e.get(147),x=e.get(50),E=e.get(146);if(s.isViewportWrapping){let s=e.get(73);return t>E.contentWidth+x.typicalHalfwidthCharacterWidth&&s.enabled&&"right"===s.side?t+E.verticalScrollbarWidth:t}{let s=e.get(105)*x.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+s+E.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){let e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new Yj(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){let e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,s=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(s),scrollLeft:e.scrollLeft}}changeWhitespace(e){let t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){let e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){let 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(){let e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){1===t?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){let s=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:s.scrollLeft+e,scrollTop:s.scrollTop+t})}}class Y2{constructor(e,t,s,x,E){this.editorId=e,this.model=t,this.configuration=s,this._linesCollection=x,this._coordinatesConverter=E,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){let t=e.id,s=this._decorationsCache[t];if(!s){let x;let E=e.range,a=e.options;if(a.isWholeLine){let e=this._coordinatesConverter.convertModelPositionToViewPosition(new N0.L(E.startLineNumber,1),0,!1,!0),t=this._coordinatesConverter.convertModelPositionToViewPosition(new N0.L(E.endLineNumber,this.model.getLineMaxColumn(E.endLineNumber)),1);x=new OQ.e(e.lineNumber,e.column,t.lineNumber,t.column)}else x=this._coordinatesConverter.convertModelRangeToViewRange(E,1);s=new MK(x,a),this._decorationsCache[t]=s}return s}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=null!==this._cachedModelDecorationsResolver;return(t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange))||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e,t=!1,s=!1){let x=new OQ.e(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(x,t,s).inlineDecorations[0]}_getDecorationsInRange(e,t,s){let x=this._linesCollection.getDecorationsInRange(e,this.editorId,c8(this.configuration.options),t,s),E=e.startLineNumber,a=e.endLineNumber,r=[],i=0,n=[];for(let e=E;e<=a;e++)n[e-E]=[];for(let e=0,t=x.length;e<t;e++){var _,T;let t=x[e],s=t.options;if(_=this.model,(T=t).options.hideInCommentTokens&&Y1(_,T.range,e=>1===e)||T.options.hideInStringTokens&&Y1(_,T.range,e=>2===e))continue;let S=this._getOrCreateViewModelDecoration(t),R=S.range;if(r[i++]=S,s.inlineClassName){let e=new Mw(R,s.inlineClassName,s.inlineClassNameAffectsLetterSpacing?3:0),t=Math.max(E,R.startLineNumber),x=Math.min(a,R.endLineNumber);for(let s=t;s<=x;s++)n[s-E].push(e)}if(s.beforeContentClassName&&E<=R.startLineNumber&&R.startLineNumber<=a){let e=new Mw(new OQ.e(R.startLineNumber,R.startColumn,R.startLineNumber,R.startColumn),s.beforeContentClassName,1);n[R.startLineNumber-E].push(e)}if(s.afterContentClassName&&E<=R.endLineNumber&&R.endLineNumber<=a){let e=new Mw(new OQ.e(R.endLineNumber,R.endColumn,R.endLineNumber,R.endColumn),s.afterContentClassName,2);n[R.endLineNumber-E].push(e)}}return{decorations:r,inlineDecorations:n}}}function Y1(e,t,s){for(let x=t.startLineNumber;x<=t.endLineNumber;x++){let E=e.tokenization.getLineTokens(x),a=x===t.startLineNumber,r=x===t.endLineNumber,i=a?E.findTokenIndexAtOffset(t.startColumn-1):0;for(;i<E.getCount()&&!(r&&E.getStartOffset(i)>t.endColumn-1);){if(!s(E.getStandardTokenType(i)))return!1;i++}}return!0}function Y3(e,t){return null!==e?new Y7(e,t):t?Y5.INSTANCE:Y4.INSTANCE}class Y7{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,s){let x;this._assertVisible();let E=s>0?this._projectionData.breakOffsets[s-1]:0,a=this._projectionData.breakOffsets[s];if(null!==this._projectionData.injectionOffsets){let s=this._projectionData.injectionOffsets.map((e,t)=>new p2.gk(0,0,e+1,this._projectionData.injectionOptions[t],0));x=p2.gk.applyInjectedText(e.getLineContent(t),s).substring(E,a)}else x=e.getValueInRange({startLineNumber:t,startColumn:E+1,endLineNumber:t,endColumn:a+1});return s>0&&(x=Y8(this._projectionData.wrappedTextIndentLength)+x),x}getViewLineLength(e,t,s){return this._assertVisible(),this._projectionData.getLineLength(s)}getViewLineMinColumn(e,t,s){return this._assertVisible(),this._projectionData.getMinOutputOffset(s)+1}getViewLineMaxColumn(e,t,s){return this._assertVisible(),this._projectionData.getMaxOutputOffset(s)+1}getViewLineData(e,t,s){let x=[];return this.getViewLinesData(e,t,s,1,0,[!0],x),x[0]}getViewLinesData(e,t,s,x,E,a,r){let i;this._assertVisible();let n=this._projectionData,_=n.injectionOffsets,T=n.injectionOptions,S=null;if(_){S=[];let e=0,t=0;for(let s=0;s<n.getOutputLineCount();s++){let x=[];S[s]=x;let E=s>0?n.breakOffsets[s-1]:0,a=n.breakOffsets[s];for(;t<_.length;){let r=T[t].content.length,i=_[t]+e,S=i+r;if(i>a)break;if(E<S){let e=T[t];if(e.inlineClassName){let t=s>0?n.wrappedTextIndentLength:0,r=t+Math.max(i-E,0),_=t+Math.min(S-E,a-E);r!==_&&x.push(new MW(r,_,e.inlineClassName,e.inlineClassNameAffectsLetterSpacing))}}if(S<=a)e+=r,t++;else break}}}i=_?e.tokenization.getLineTokens(t).withInserted(_.map((e,t)=>({offset:e,text:T[t].content,tokenMetadata:NO.A.defaultTokenMetadata}))):e.tokenization.getLineTokens(t);for(let e=s;e<s+x;e++){let t=E+e-s;if(!a[t]){r[t]=null;continue}r[t]=this._getViewLineData(i,S?S[e]:null,e)}}_getViewLineData(e,t,s){this._assertVisible();let x=this._projectionData,E=s>0?x.wrappedTextIndentLength:0,a=s>0?x.breakOffsets[s-1]:0,r=x.breakOffsets[s],i=e.sliceAndInflate(a,r,E),n=i.getLineContent();s>0&&(n=Y8(x.wrappedTextIndentLength)+n);let _=this._projectionData.getMinOutputOffset(s)+1,T=n.length+1;return new Mv(n,s+1<this.getViewLineCount(),_,T,0===s?0:x.breakOffsetsVisibleColumn[s-1],i,t)}getModelColumnOfViewPosition(e,t){return this._assertVisible(),this._projectionData.translateToInputOffset(e,t-1)+1}getViewPositionOfModelPosition(e,t,s=2){return this._assertVisible(),this._projectionData.translateToOutputPosition(t-1,s).toPosition(e)}getViewLineNumberOfModelPosition(e,t){return this._assertVisible(),e+this._projectionData.translateToOutputPosition(t-1).outputLineIndex}normalizePosition(e,t,s){let x=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,s).toPosition(x)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw Error("Not supported")}}class Y5{static{this.INSTANCE=new Y5}constructor(){}isVisible(){return!0}setVisible(e){return e?this:Y4.INSTANCE}getProjectionData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,s){return e.getLineContent(t)}getViewLineLength(e,t,s){return e.getLineLength(t)}getViewLineMinColumn(e,t,s){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,s){return e.getLineMaxColumn(t)}getViewLineData(e,t,s){let x=e.tokenization.getLineTokens(t),E=x.getLineContent();return new Mv(E,!1,1,E.length+1,0,x.inflate(),null)}getViewLinesData(e,t,s,x,E,a,r){if(!a[E]){r[E]=null;return}r[E]=this.getViewLineData(e,t,0)}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new N0.L(e,t)}getViewLineNumberOfModelPosition(e,t){return e}normalizePosition(e,t,s){return t}getInjectedTextAt(e,t){return null}}class Y4{static{this.INSTANCE=new Y4}constructor(){}isVisible(){return!1}setVisible(e){return e?Y5.INSTANCE:this}getProjectionData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,s){throw Error("Not supported")}getViewLineLength(e,t,s){throw Error("Not supported")}getViewLineMinColumn(e,t,s){throw Error("Not supported")}getViewLineMaxColumn(e,t,s){throw Error("Not supported")}getViewLineData(e,t,s){throw Error("Not supported")}getViewLinesData(e,t,s,x,E,a,r){throw Error("Not supported")}getModelColumnOfViewPosition(e,t){throw Error("Not supported")}getViewPositionOfModelPosition(e,t){throw Error("Not supported")}getViewLineNumberOfModelPosition(e,t){throw Error("Not supported")}normalizePosition(e,t,s){throw Error("Not supported")}getInjectedTextAt(e,t){throw Error("Not supported")}}let Y6=[""];function Y8(e){if(e>=Y6.length)for(let t=1;t<=e;t++)Y6[t]=Array(t+1).join(" ");return Y6[e]}var Y9=x(17068);class Ge{constructor(e,t,s,x,E,a,r,i,n,_){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=s,this._monospaceLineBreaksComputerFactory=x,this.fontInfo=E,this.tabSize=a,this.wrappingStrategy=r,this.wrappingColumn=i,this.wrappingIndent=n,this.wordBreak=_,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new Gx(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));let s=this.model.getLinesContent(),x=this.model.getInjectedTextDecorations(this._editorId),E=s.length,a=this.createLineBreaksComputer(),r=new cO.H9(p2.gk.fromDecorations(x));for(let e=0;e<E;e++){let x=r.takeWhile(t=>t.lineNumber===e+1);a.addRequest(s[e],x,t?t[e]:null)}let i=a.finalize(),n=[],_=this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e)).sort(OQ.e.compareRangesUsingStarts),T=1,S=0,R=-1,O=0<_.length?S+1:E+2;for(let e=0;e<E;e++){let t=e+1;t===O&&(T=_[++R].startLineNumber,S=_[R].endLineNumber,O=R+1<_.length?S+1:E+2);let s=t>=T&&t<=S,x=Y3(i[e],!s);n[e]=x.getViewLineCount(),this.modelLineProjections[e]=x}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new Y9.Ck(n)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){let t=function(e){if(0===e.length)return[];let t=e.slice();t.sort(OQ.e.compareRangesUsingStarts);let s=[],x=t[0].startLineNumber,E=t[0].endLineNumber;for(let e=1,a=t.length;e<a;e++){let a=t[e];a.startLineNumber>E+1?(s.push(new OQ.e(x,1,E,1)),x=a.startLineNumber,E=a.endLineNumber):a.endLineNumber>E&&(E=a.endLineNumber)}return s.push(new OQ.e(x,1,E,1)),s}(e.map(e=>this.model.validateRange(e))),s=this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e)).sort(OQ.e.compareRangesUsingStarts);if(t.length===s.length){let e=!1;for(let x=0;x<t.length;x++)if(!t[x].equalsRange(s[x])){e=!0;break}if(!e)return!1}let x=t.map(e=>({range:e,options:p6.qx.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,x);let E=1,a=0,r=-1,i=0<t.length?a+1:this.modelLineProjections.length+2,n=!1;for(let e=0;e<this.modelLineProjections.length;e++){let s=e+1;s===i&&(E=t[++r].startLineNumber,a=t[r].endLineNumber,i=r+1<t.length?a+1:this.modelLineProjections.length+2);let x=!1;if(s>=E&&s<=a?this.modelLineProjections[e].isVisible()&&(this.modelLineProjections[e]=this.modelLineProjections[e].setVisible(!1),x=!0):(n=!0,this.modelLineProjections[e].isVisible()||(this.modelLineProjections[e]=this.modelLineProjections[e].setVisible(!0),x=!0)),x){let t=this.modelLineProjections[e].getViewLineCount();this.projectedModelLineLineCounts.setValue(e,t)}}return n||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return!(e<1)&&!(e>this.modelLineProjections.length)&&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&&(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,s,x,E){let a=this.fontInfo.equals(e),r=this.wrappingStrategy===t,i=this.wrappingColumn===s,n=this.wrappingIndent===x,_=this.wordBreak===E;if(a&&r&&i&&n&&_)return!1;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=s,this.wrappingIndent=x,this.wordBreak=E;let T=null;if(a&&r&&!i&&n&&_){T=[];for(let e=0,t=this.modelLineProjections.length;e<t;e++)T[e]=this.modelLineProjections[e].getProjectionData()}return this._constructLines(!1,T),!0}createLineBreaksComputer(){return("advanced"===this.wrappingStrategy?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent,this.wordBreak)}onModelFlushed(){this._constructLines(!0,null)}onModelLinesDeleted(e,t,s){if(!e||e<=this._validModelVersionId)return null;let x=1===t?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,E=this.projectedModelLineLineCounts.getPrefixSum(s);return this.modelLineProjections.splice(t-1,s-t+1),this.projectedModelLineLineCounts.removeValues(t-1,s-t+1),new YL(x,E)}onModelLinesInserted(e,t,s,x){if(!e||e<=this._validModelVersionId)return null;let E=t>2&&!this.modelLineProjections[t-2].isVisible(),a=1===t?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,r=0,i=[],n=[];for(let e=0,t=x.length;e<t;e++){let t=Y3(x[e],!E);i.push(t);let s=t.getViewLineCount();r+=s,n[e]=s}return this.modelLineProjections=this.modelLineProjections.slice(0,t-1).concat(i).concat(this.modelLineProjections.slice(t-1)),this.projectedModelLineLineCounts.insertValues(t-1,n),new YC(a,a+r-1)}onModelLineChanged(e,t,s){if(null!==e&&e<=this._validModelVersionId)return[!1,null,null,null];let x=t-1,E=this.modelLineProjections[x].getViewLineCount(),a=Y3(s,this.modelLineProjections[x].isVisible());this.modelLineProjections[x]=a;let r=this.modelLineProjections[x].getViewLineCount(),i=!1,n=0,_=-1,T=0,S=-1,R=0,O=-1;return E>r?(O=(R=(_=(n=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1)+r-1)+1)+(E-r)-1,i=!0):E<r?(S=(T=(_=(n=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1)+E-1)+1)+(r-E)-1,i=!0):_=(n=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1)+r-1,this.projectedModelLineLineCounts.setValue(x,r),[i,n<=_?new Yh(n,_-n+1):null,T<=S?new YC(T,S):null,R<=O?new YL(R,O):null]}acceptVersionId(e){this._validModelVersionId=e,1!==this.modelLineProjections.length||this.modelLineProjections[0].isVisible()||this.setHiddenAreas([])}getViewLineCount(){return this.projectedModelLineLineCounts.getTotalSum()}_toValidViewLineNumber(e){if(e<1)return 1;let t=this.getViewLineCount();return e>t?t:0|e}getActiveIndentGuide(e,t,s){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),s=this._toValidViewLineNumber(s);let x=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),E=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),a=this.convertViewPositionToModelPosition(s,this.getViewLineMinColumn(s)),r=this.model.guides.getActiveIndentGuide(x.lineNumber,E.lineNumber,a.lineNumber),i=this.convertModelPositionToViewPosition(r.startLineNumber,1),n=this.convertModelPositionToViewPosition(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber));return{startLineNumber:i.lineNumber,endLineNumber:n.lineNumber,indent:r.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);let t=this.projectedModelLineLineCounts.getIndexOf(e-1);return new Gt(t.index+1,t.remainder)}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){let t=this.modelLineProjections[e.modelLineNumber-1],s=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),x=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,s);return new N0.L(e.modelLineNumber,x)}getModelEndPositionOfViewLine(e){let t=this.modelLineProjections[e.modelLineNumber-1],s=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),x=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,s);return new N0.L(e.modelLineNumber,x)}getViewLineInfosGroupedByModelRanges(e,t){let s=this.getViewLineInfo(e),x=this.getViewLineInfo(t),E=[],a=this.getModelStartPositionOfViewLine(s),r=[];for(let e=s.modelLineNumber;e<=x.modelLineNumber;e++){let t=this.modelLineProjections[e-1];if(t.isVisible()){let E=e===s.modelLineNumber?s.modelLineWrappedLineIdx:0,a=e===x.modelLineNumber?x.modelLineWrappedLineIdx+1:t.getViewLineCount();for(let t=E;t<a;t++)r.push(new Gt(e,t))}if(!t.isVisible()&&a){let t=new N0.L(e-1,this.model.getLineMaxColumn(e-1)+1),s=OQ.e.fromPositions(a,t);E.push(new Gs(s,r)),r=[],a=null}else t.isVisible()&&!a&&(a=new N0.L(e,1))}if(a){let e=OQ.e.fromPositions(a,this.getModelEndPositionOfViewLine(x));E.push(new Gs(e,r))}return E}getViewLinesBracketGuides(e,t,s,x){let E=s?this.convertViewPositionToModelPosition(s.lineNumber,s.column):null,a=[];for(let s of this.getViewLineInfosGroupedByModelRanges(e,t)){let e=s.modelRange.startLineNumber,t=this.model.guides.getLinesBracketGuides(e,s.modelRange.endLineNumber,E,x);for(let x of s.viewLines){let s=t[x.modelLineNumber-e].map(e=>{if(-1!==e.forWrappedLinesAfterColumn&&this.modelLineProjections[x.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesAfterColumn).lineNumber>=x.modelLineWrappedLineIdx||-1!==e.forWrappedLinesBeforeOrAtColumn&&this.modelLineProjections[x.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesBeforeOrAtColumn).lineNumber<x.modelLineWrappedLineIdx)return;if(!e.horizontalLine)return e;let t=-1;if(-1!==e.column){let s=this.modelLineProjections[x.modelLineNumber-1].getViewPositionOfModelPosition(0,e.column);if(s.lineNumber===x.modelLineWrappedLineIdx)t=s.column;else if(s.lineNumber<x.modelLineWrappedLineIdx)t=this.getMinColumnOfViewLine(x);else if(s.lineNumber>x.modelLineWrappedLineIdx)return}let s=this.convertModelPositionToViewPosition(x.modelLineNumber,e.horizontalLine.endColumn),E=this.modelLineProjections[x.modelLineNumber-1].getViewPositionOfModelPosition(0,e.horizontalLine.endColumn);return E.lineNumber===x.modelLineWrappedLineIdx?new U1.UO(e.visibleColumn,t,e.className,new U1.vW(e.horizontalLine.top,s.column),-1,-1):E.lineNumber<x.modelLineWrappedLineIdx?void 0:-1===e.visibleColumn?new U1.UO(e.visibleColumn,t,e.className,new U1.vW(e.horizontalLine.top,this.getMaxColumnOfViewLine(x)),-1,-1):void 0});a.push(s.filter(e=>!!e))}}return a}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);let s=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),x=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t)),E=[],a=[],r=[],i=s.lineNumber-1,n=x.lineNumber-1,_=null;for(let e=i;e<=n;e++){let t=this.modelLineProjections[e];if(t.isVisible()){let x=t.getViewLineNumberOfModelPosition(0,e===i?s.column:1),E=t.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(e+1)),n=E-x+1,T=0;n>1&&1===t.getViewLineMinColumn(this.model,e+1,E)&&(T=0===x?1:2),a.push(n),r.push(T),null===_&&(_=new N0.L(e+1,0))}else null!==_&&(E=E.concat(this.model.guides.getLinesIndentGuides(_.lineNumber,e)),_=null)}null!==_&&(E=E.concat(this.model.guides.getLinesIndentGuides(_.lineNumber,x.lineNumber)),_=null);let T=t-e+1,S=Array(T),R=0;for(let e=0,t=E.length;e<t;e++){let t,s=E[e],x=Math.min(T-R,a[e]),i=r[e];t=2===i?0:1===i?1:x;for(let e=0;e<x;e++)e===t&&(s=0),S[R++]=s}return S}getViewLineContent(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineContent(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineLength(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineLength(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMinColumn(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMaxColumn(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineData(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineData(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLinesData(e,t,s){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);let x=this.projectedModelLineLineCounts.getIndexOf(e-1),E=e,a=x.index,r=x.remainder,i=[];for(let x=a,n=this.model.getLineCount();x<n;x++){let n=this.modelLineProjections[x];if(!n.isVisible())continue;let _=x===a?r:0,T=n.getViewLineCount()-_,S=!1;if(E+T>t&&(S=!0,T=t-E+1),n.getViewLinesData(this.model,x+1,_,T,E-e,s,i),E+=T,S)break}return i}validateViewPosition(e,t,s){e=this._toValidViewLineNumber(e);let x=this.projectedModelLineLineCounts.getIndexOf(e-1),E=x.index,a=x.remainder,r=this.modelLineProjections[E],i=r.getViewLineMinColumn(this.model,E+1,a),n=r.getViewLineMaxColumn(this.model,E+1,a);t<i&&(t=i),t>n&&(t=n);let _=r.getModelColumnOfViewPosition(a,t);return this.model.validatePosition(new N0.L(E+1,_)).equals(s)?new N0.L(e,t):this.convertModelPositionToViewPosition(s.lineNumber,s.column)}validateViewRange(e,t){let s=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),x=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new OQ.e(s.lineNumber,s.column,x.lineNumber,x.column)}convertViewPositionToModelPosition(e,t){let s=this.getViewLineInfo(e),x=this.modelLineProjections[s.modelLineNumber-1].getModelColumnOfViewPosition(s.modelLineWrappedLineIdx,t);return this.model.validatePosition(new N0.L(s.modelLineNumber,x))}convertViewRangeToModelRange(e){let t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),s=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new OQ.e(t.lineNumber,t.column,s.lineNumber,s.column)}convertModelPositionToViewPosition(e,t,s=2,x=!1,E=!1){let a=this.model.validatePosition(new N0.L(e,t)),r=a.lineNumber,i=a.column,n=r-1,_=!1;if(E)for(;n<this.modelLineProjections.length&&!this.modelLineProjections[n].isVisible();)n++,_=!0;else for(;n>0&&!this.modelLineProjections[n].isVisible();)n--,_=!0;if(0===n&&!this.modelLineProjections[n].isVisible())return new N0.L(x?0:1,1);let T=1+this.projectedModelLineLineCounts.getPrefixSum(n);return _?E?this.modelLineProjections[n].getViewPositionOfModelPosition(T,1,s):this.modelLineProjections[n].getViewPositionOfModelPosition(T,this.model.getLineMaxColumn(n+1),s):this.modelLineProjections[r-1].getViewPositionOfModelPosition(T,i,s)}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){let s=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return OQ.e.fromPositions(s)}{let t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),s=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new OQ.e(t.lineNumber,t.column,s.lineNumber,s.column)}}getViewLineNumberOfModelPosition(e,t){let s=e-1;if(this.modelLineProjections[s].isVisible()){let e=1+this.projectedModelLineLineCounts.getPrefixSum(s);return this.modelLineProjections[s].getViewLineNumberOfModelPosition(e,t)}for(;s>0&&!this.modelLineProjections[s].isVisible();)s--;if(0===s&&!this.modelLineProjections[s].isVisible())return 1;let x=1+this.projectedModelLineLineCounts.getPrefixSum(s);return this.modelLineProjections[s].getViewLineNumberOfModelPosition(x,this.model.getLineMaxColumn(s+1))}getDecorationsInRange(e,t,s,x,E){let a=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),r=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(r.lineNumber-a.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new OQ.e(a.lineNumber,1,r.lineNumber,r.column),t,s,x,E);let i=[],n=a.lineNumber-1,_=r.lineNumber-1,T=null;for(let e=n;e<=_;e++)if(this.modelLineProjections[e].isVisible())null===T&&(T=new N0.L(e+1,e===n?a.column:1));else if(null!==T){let E=this.model.getLineMaxColumn(e);i=i.concat(this.model.getDecorationsInRange(new OQ.e(T.lineNumber,T.column,e,E),t,s,x)),T=null}null!==T&&(i=i.concat(this.model.getDecorationsInRange(new OQ.e(T.lineNumber,T.column,r.lineNumber,r.column),t,s,x)),T=null),i.sort((e,t)=>{let s=OQ.e.compareRangesUsingStarts(e.range,t.range);return 0===s?e.id<t.id?-1:e.id>t.id?1:0:s});let S=[],R=0,O=null;for(let e of i){let t=e.id;O!==t&&(O=t,S[R++]=e)}return S}getInjectedTextAt(e){let t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){let s=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[s.modelLineNumber-1].normalizePosition(s.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){let t=this.getViewLineInfo(e);return 0===t.modelLineWrappedLineIdx?this.model.getLineIndentColumn(t.modelLineNumber):0}}class Gt{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class Gs{constructor(e,t){this.modelRange=e,this.viewLines=t}}class Gx{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,s,x){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,s,x)}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 GE{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new Ga(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,s,x){return!1}createLineBreaksComputer(){let e=[];return{addRequest:(t,s,x)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,s){return new YL(t,s)}onModelLinesInserted(e,t,s,x){return new YC(t,s)}onModelLineChanged(e,t,s){return[!1,new Yh(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,s){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,s){return Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){let s=t-e+1,x=Array(s);for(let e=0;e<s;e++)x[e]=0;return x}getViewLineContent(e){return this.model.getLineContent(e)}getViewLineLength(e){return this.model.getLineLength(e)}getViewLineMinColumn(e){return this.model.getLineMinColumn(e)}getViewLineMaxColumn(e){return this.model.getLineMaxColumn(e)}getViewLineData(e){let t=this.model.tokenization.getLineTokens(e),s=t.getLineContent();return new Mv(s,!1,1,s.length+1,0,t.inflate(),null)}getViewLinesData(e,t,s){let x=this.model.getLineCount();e=Math.min(Math.max(1,e),x),t=Math.min(Math.max(1,t),x);let E=[];for(let x=e;x<=t;x++){let t=x-e;E[t]=s[t]?this.getViewLineData(x):null}return E}getDecorationsInRange(e,t,s,x,E){return this.model.getDecorationsInRange(e,t,s,x,E)}normalizePosition(e,t){return this.model.normalizePosition(e,t)}getLineIndentColumn(e){return this.model.getLineIndentColumn(e)}getInjectedTextAt(e){return null}}class Ga{constructor(e){this._lines=e}_validPosition(e){return this._lines.model.validatePosition(e)}_validRange(e){return this._lines.model.validateRange(e)}convertViewPositionToModelPosition(e){return this._validPosition(e)}convertViewRangeToModelRange(e){return this._validRange(e)}validateViewPosition(e,t){return this._validPosition(t)}validateViewRange(e,t){return this._validRange(t)}convertModelPositionToViewPosition(e){return this._validPosition(e)}convertModelRangeToViewRange(e){return this._validRange(e)}modelPositionIsVisible(e){let t=this._lines.model.getLineCount();return!(e.lineNumber<1)&&!(e.lineNumber>t)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}let Gr=Ml.U.Right;class Gi{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*Gr/8))}reset(e){let t=Math.ceil((e+1)*Gr/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,s){s&&(this.persist|=1<<e-1);for(let s=t.startLineNumber;s<=t.endLineNumber;s++){let t=Gr*s+(e-1);this.lanes[t>>>3]|=1<<t%8,this._requiredLanes=Math.max(this._requiredLanes,this.countAtLine(s))}}getLanesAtLine(e){let t=[],s=Gr*e;for(let e=0;e<Gr;e++)(this.persist&1<<e||this.lanes[s>>>3]&1<<s%8)&&t.push(e+1),s++;return t.length?t:[Ml.U.Center]}countAtLine(e){let t=Gr*e,s=0;for(let e=0;e<Gr;e++)(this.persist&1<<e||this.lanes[t>>>3]&1<<t%8)&&s++,t++;return s}}class Gn extends TD.JT{constructor(e,t,s,x,E,a,r,i,n,_){if(super(),this.languageConfigurationService=r,this._themeService=i,this._attachedView=n,this._transactionalTarget=_,this.hiddenAreasModel=new GT,this.previousHiddenAreas=[],this._editorId=e,this._configuration=t,this.model=s,this._eventDispatcher=new YU,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new T$.pY(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=G_.create(this.model),this.glyphLanes=new Gi(0),this.model.isTooLargeForTokenization())this._lines=new GE(this.model);else{let e=this._configuration.options,t=e.get(50),s=e.get(140),a=e.get(147),r=e.get(139),i=e.get(130);this._lines=new Ge(this._editorId,this.model,x,E,t,this.model.getOptions().tabSize,s,a.wrappingColumn,r,i)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new Yk(s,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new Y0(this._configuration,this.getLineCount(),a)),this._register(this.viewLayout.onDidScroll(e=>{e.scrollTopChanged&&this._handleVisibleLinesChanged(),e.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new Yu(e)),this._eventDispatcher.emitOutgoingEvent(new YB(e.oldScrollWidth,e.oldScrollLeft,e.oldScrollHeight,e.oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(e=>{this._eventDispatcher.emitOutgoingEvent(e)})),this._decorations=new Y2(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(e=>{try{let t=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(px.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new YP)})),this._register(this._themeService.onDidColorThemeChange(e=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new YD(e))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){let e=this.viewLayout.getLinesViewportData(),t=new OQ.e(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){let e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){let e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new Yo(e)),this._eventDispatcher.emitOutgoingEvent(new YG(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new Yc)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new YT)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){let e=new N0.L(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber));return new GR(this.coordinatesConverter.convertViewPositionToModelPosition(e),this._viewportStart.startLineDelta)}return new GR(null,0)}_onConfigurationChanged(e,t){let s=this._captureStableViewport(),x=this._configuration.options,E=x.get(50),a=x.get(140),r=x.get(147),i=x.get(139),n=x.get(130);this._lines.setWrappingSettings(E,a,r.wrappingColumn,i,n)&&(e.emitViewEvent(new YA),e.emitViewEvent(new YI),e.emitViewEvent(new YO(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(92)&&(this._decorations.reset(),e.emitViewEvent(new YO(null))),t.hasChanged(99)&&(this._decorations.reset(),e.emitViewEvent(new YO(null))),e.emitViewEvent(new YS(t)),this.viewLayout.onConfigurationChanged(t),s.recoverViewportStart(this.coordinatesConverter,this.viewLayout),dU.shouldRecreate(t)&&(this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{let t=this._eventDispatcher.beginEmitViewEvents(),s=!1,x=!1,E=e instanceof p2.fV?e.rawContentChangedEvent.changes:e.changes,a=e instanceof p2.fV?e.rawContentChangedEvent.versionId:null,r=this._lines.createLineBreaksComputer();for(let e of E)switch(e.changeType){case 4:for(let t=0;t<e.detail.length;t++){let s=e.detail[t],x=e.injectedTexts[t];x&&(x=x.filter(e=>!e.ownerId||e.ownerId===this._editorId)),r.addRequest(s,x,null)}break;case 2:{let t=null;e.injectedText&&(t=e.injectedText.filter(e=>!e.ownerId||e.ownerId===this._editorId)),r.addRequest(e.detail,t,null)}}let i=r.finalize(),n=new cO.H9(i);for(let e of E)switch(e.changeType){case 1:this._lines.onModelFlushed(),t.emitViewEvent(new YA),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),s=!0;break;case 3:{let x=this._lines.onModelLinesDeleted(a,e.fromLineNumber,e.toLineNumber);null!==x&&(t.emitViewEvent(x),this.viewLayout.onLinesDeleted(x.fromLineNumber,x.toLineNumber)),s=!0;break}case 4:{let x=n.takeCount(e.detail.length),E=this._lines.onModelLinesInserted(a,e.fromLineNumber,e.toLineNumber,x);null!==E&&(t.emitViewEvent(E),this.viewLayout.onLinesInserted(E.fromLineNumber,E.toLineNumber)),s=!0;break}case 2:{let s=n.dequeue(),[E,r,i,_]=this._lines.onModelLineChanged(a,e.lineNumber,s);x=E,r&&t.emitViewEvent(r),i&&(t.emitViewEvent(i),this.viewLayout.onLinesInserted(i.fromLineNumber,i.toLineNumber)),_&&(t.emitViewEvent(_),this.viewLayout.onLinesDeleted(_.fromLineNumber,_.toLineNumber))}}null!==a&&this._lines.acceptVersionId(a),this.viewLayout.onHeightMaybeChanged(),!s&&x&&(t.emitViewEvent(new YI),t.emitViewEvent(new YO(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}let t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){let e=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(e){let t=this.coordinatesConverter.convertModelPositionToViewPosition(e.getStartPosition()),s=this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber);this.viewLayout.setScrollPosition({scrollTop:s+this._viewportStart.startLineDelta},1)}}try{let t=this._eventDispatcher.beginEmitViewEvents();e instanceof p2.fV&&t.emitOutgoingEvent(new YX(e.contentChangedEvent)),this._cursor.onModelContentChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(e=>{let t=[];for(let s=0,x=e.ranges.length;s<x;s++){let x=e.ranges[s],E=this.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(x.fromLineNumber,1)).lineNumber,a=this.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(x.toLineNumber,this.model.getLineMaxColumn(x.toLineNumber))).lineNumber;t[s]={fromLineNumber:E,toLineNumber:a}}this._eventDispatcher.emitSingleViewEvent(new YM(t)),this._eventDispatcher.emitOutgoingEvent(new Yv(e))})),this._register(this.model.onDidChangeLanguageConfiguration(e=>{this._eventDispatcher.emitSingleViewEvent(new YN),this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new YV(e))})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Yy(e))})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{let e=this._eventDispatcher.beginEmitViewEvents();e.emitViewEvent(new YA),e.emitViewEvent(new YI),e.emitViewEvent(new YO(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Yb(e))})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new YO(e)),this._eventDispatcher.emitOutgoingEvent(new YH(e))}))}setHiddenAreas(e,t){this.hiddenAreasModel.setHiddenAreas(t,e);let s=this.hiddenAreasModel.getMergedRanges();if(s===this.previousHiddenAreas)return;this.previousHiddenAreas=s;let x=this._captureStableViewport(),E=!1;try{let e=this._eventDispatcher.beginEmitViewEvents();(E=this._lines.setHiddenAreas(s))&&(e.emitViewEvent(new YA),e.emitViewEvent(new YI),e.emitViewEvent(new YO(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());let t=x.viewportStartModelPosition?.lineNumber;t&&s.some(e=>e.startLineNumber<=t&&t<=e.endLineNumber)||x.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),E&&this._eventDispatcher.emitOutgoingEvent(new Yf)}getVisibleRangesPlusViewportAboveBelow(){let e=this._configuration.options.get(146),t=this._configuration.options.get(67),s=Math.max(20,Math.round(e.height/t)),x=this.viewLayout.getLinesViewportData(),E=Math.max(1,x.completelyVisibleStartLineNumber-s),a=Math.min(this.getLineCount(),x.completelyVisibleEndLineNumber+s);return this._toModelVisibleRanges(new OQ.e(E,this.getLineMinColumn(E),a,this.getLineMaxColumn(a)))}getVisibleRanges(){let e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){let t=this.coordinatesConverter.convertViewRangeToModelRange(e),s=this._lines.getHiddenAreas();if(0===s.length)return[t];let x=[],E=0,a=t.startLineNumber,r=t.startColumn,i=t.endLineNumber,n=t.endColumn;for(let e=0,t=s.length;e<t;e++){let t=s[e].startLineNumber,n=s[e].endLineNumber;n<a||t>i||(a<t&&(x[E++]=new OQ.e(a,r,t-1,this.model.getLineMaxColumn(t-1))),a=n+1,r=1)}return(a<i||a===i&&r<n)&&(x[E++]=new OQ.e(a,r,i,n)),x}getCompletelyVisibleViewRange(){let e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,s=e.completelyVisibleEndLineNumber;return new OQ.e(t,this.getLineMinColumn(t),s,this.getLineMaxColumn(s))}getCompletelyVisibleViewRangeAtScrollTop(e){let t=this.viewLayout.getLinesViewportDataAtScrollTop(e),s=t.completelyVisibleStartLineNumber,x=t.completelyVisibleEndLineNumber;return new OQ.e(s,this.getLineMinColumn(s),x,this.getLineMaxColumn(x))}saveState(){let e=this.viewLayout.saveState(),t=e.scrollTop,s=this.viewLayout.getLineNumberAtVerticalOffset(t),x=this.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(s,this.getLineMinColumn(s))),E=this.viewLayout.getVerticalOffsetForLineNumber(s)-t;return{scrollLeft:e.scrollLeft,firstPosition:x,firstPositionDeltaTop:E}}reduceRestoreState(e){if(void 0===e.firstPosition)return this._reduceRestoreStateCompatibility(e);let t=this.model.validatePosition(e.firstPosition),s=this.coordinatesConverter.convertModelPositionToViewPosition(t),x=this.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:x}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,s){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,s){return this._lines.getActiveIndentGuide(e,t,s)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,s,x){return this._lines.getViewLinesBracketGuides(e,t,s,x)}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){let t=TM.LC(this.getLineContent(e));return -1===t?0:t+1}getLineLastNonWhitespaceColumn(e){let t=TM.ow(this.getLineContent(e));return -1===t?0:t+2}getMinimapDecorationsInRange(e){return this._decorations.getMinimapDecorationsInRange(e)}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}getViewportViewLineRenderingData(e,t){let s=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,s)}getViewLineRenderingData(e){let t=this._decorations.getInlineDecorationsOnLine(e);return this._getViewLineRenderingData(e,t)}_getViewLineRenderingData(e,t){let s=this.model.mightContainRTL(),x=this.model.mightContainNonBasicASCII(),E=this.getTabSize(),a=this._lines.getViewLineData(e);return a.inlineDecorations&&(t=[...t,...a.inlineDecorations.map(t=>t.toInlineDecoration(e))]),new Mk(a.minColumn,a.maxColumn,a.content,a.continuesWithWrappedLine,s,x,a.tokens,t,E,a.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,s){let x=this._lines.getViewLinesData(e,t,s);return new Mb(this.getTabSize(),x)}getAllOverviewRulerDecorations(e){let t=this.model.getOverviewRulerDecorations(this._editorId,c8(this._configuration.options)),s=new Gc;for(let x of t){let t=x.options,E=t.overviewRuler;if(!E)continue;let a=E.position;if(0===a)continue;let r=E.getColor(e.value),i=this.coordinatesConverter.getViewLineNumberOfModelPosition(x.range.startLineNumber,x.range.startColumn),n=this.coordinatesConverter.getViewLineNumberOfModelPosition(x.range.endLineNumber,x.range.endColumn);s.accept(r,t.zIndex,i,n,a)}return s.asArray}_invalidateDecorationsColorCache(){for(let e of this.model.getOverviewRulerDecorations()){let t=e.options.overviewRuler;t?.invalidateCachedColor();let s=e.options.minimap;s?.invalidateCachedColor()}}getValueInRange(e,t){let s=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(s,t)}getValueLengthInRange(e,t){let s=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(s,t)}modifyPosition(e,t){let s=this.coordinatesConverter.convertViewPositionToModelPosition(e),x=this.model.modifyPosition(s,t);return this.coordinatesConverter.convertModelPositionToViewPosition(x)}deduceModelPositionRelativeToViewPosition(e,t,s){let x=this.coordinatesConverter.convertViewPositionToModelPosition(e);2===this.model.getEOL().length&&(t<0?t-=s:t+=s);let E=this.model.getOffsetAt(x)+t;return this.model.getPositionAt(E)}getPlainTextToCopy(e,t,s){let x=s?"\r\n":this.model.getEOL();(e=e.slice(0)).sort(OQ.e.compareRangesUsingStarts);let E=!1,a=!1;for(let t of e)t.isEmpty()?E=!0:a=!0;if(!a){if(!t)return"";let s=e.map(e=>e.startLineNumber),E="";for(let e=0;e<s.length;e++)e>0&&s[e-1]===s[e]||(E+=this.model.getLineContent(s[e])+x);return E}if(E&&t){let t=[],x=0;for(let E of e){let e=E.startLineNumber;E.isEmpty()?e!==x&&t.push(this.model.getLineContent(e)):t.push(this.model.getValueInRange(E,s?2:0)),x=e}return 1===t.length?t[0]:t}let r=[];for(let t of e)t.isEmpty()||r.push(this.model.getValueInRange(t,s?2:0));return 1===r.length?r[0]:r}getRichTextToCopy(e,t){let s;let x=this.model.getLanguageId();if(x===NR.bd||1!==e.length)return null;let E=e[0];if(E.isEmpty()){if(!t)return null;let e=E.startLineNumber;E=new OQ.e(e,this.model.getLineMinColumn(e),e,this.model.getLineMaxColumn(e))}let a=this._configuration.options.get(50),r=this._getColorMap();return/[:;\\\/<>]/.test(a.fontFamily)||a.fontFamily===TI.fontFamily?s=TI.fontFamily:(s=(s=a.fontFamily).replace(/"/g,"'"),!/[,']/.test(s)&&/[+ ]/.test(s)&&(s=`'${s}'`),s=`${s}, ${TI.fontFamily}`),{mode:x,html:`<div style="color: ${r[1]};background-color: ${r[2]};font-family: ${s};font-weight: ${a.fontWeight};font-size: ${a.fontSize}px;line-height: ${a.lineHeight}px;white-space: pre;">`+this._getHTMLToCopy(E,r)+"</div>"}}_getHTMLToCopy(e,t){let s=e.startLineNumber,x=e.startColumn,E=e.endLineNumber,a=e.endColumn,r=this.getTabSize(),i="";for(let e=s;e<=E;e++){let n=this.model.tokenization.getLineTokens(e),_=n.getLineContent(),T=e===s?x-1:0,S=e===E?a-1:_.length;""===_?i+="<br>":i+=function(e,t,s,x,E,a,r){let i="<div>",n=x,_=0,T=!0;for(let S=0,R=t.getCount();S<R;S++){let R=t.getEndOffset(S);if(R<=x)continue;let O="";for(;n<R&&n<E;n++){let t=e.charCodeAt(n);switch(t){case 9:{let e=a-(n+_)%a;for(_+=e-1;e>0;)r&&T?(O+=" ",T=!1):(O+=" ",T=!0),e--;break}case 60:O+="<",T=!1;break;case 62:O+=">",T=!1;break;case 38:O+="&",T=!1;break;case 0:O+="�",T=!1;break;case 65279:case 8232:case 8233:case 133:O+="�",T=!1;break;case 13:O+="​",T=!1;break;case 32:r&&T?(O+=" ",T=!1):(O+=" ",T=!0);break;default:O+=String.fromCharCode(t),T=!1}}if(i+=`<span style="${t.getInlineStyle(S,s)}">${O}</span>`,R>E||n>=E)break}return i+"</div>"}(_,n.inflate(),t,T,S,r,co.ED)}return i}_getColorMap(){let e=NA.RW.getColorMap(),t=["#000000"];if(e)for(let s=1,x=e.length;s<x;s++)t[s]=IV.Il.Format.CSS.formatHex(e[s]);return t}getPrimaryCursorState(){return this._cursor.getPrimaryCursorState()}getLastAddedCursorIndex(){return this._cursor.getLastAddedCursorIndex()}getCursorStates(){return this._cursor.getCursorStates()}setCursorStates(e,t,s){return this._withViewEventsCollector(x=>this._cursor.setStates(x,e,t,s))}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,s=0){this._withViewEventsCollector(x=>this._cursor.setSelections(x,e,t,s))}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 YF);return}this._withViewEventsCollector(e)}executeEdits(e,t,s){this._executeCursorEdit(x=>this._cursor.executeEdits(x,e,t,s))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(s=>this._cursor.type(s,e,t))}compositionType(e,t,s,x,E){this._executeCursorEdit(a=>this._cursor.compositionType(a,e,t,s,x,E))}paste(e,t,s,x){this._executeCursorEdit(E=>this._cursor.paste(E,e,t,s,x))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(s=>this._cursor.executeCommand(s,e,t))}executeCommands(e,t){this._executeCursorEdit(s=>this._cursor.executeCommands(s,e,t))}revealAllCursors(e,t,s=!1){this._withViewEventsCollector(x=>this._cursor.revealAll(x,e,s,0,t,0))}revealPrimaryCursor(e,t,s=!1){this._withViewEventsCollector(x=>this._cursor.revealPrimary(x,e,s,0,t,0))}revealTopMostCursor(e){let t=this._cursor.getTopMostViewPosition(),s=new OQ.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(t=>t.emitViewEvent(new Yl(e,!1,s,null,0,!0,0)))}revealBottomMostCursor(e){let t=this._cursor.getBottomMostViewPosition(),s=new OQ.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(t=>t.emitViewEvent(new Yl(e,!1,s,null,0,!0,0)))}revealRange(e,t,s,x,E){this._withViewEventsCollector(a=>a.emitViewEvent(new Yl(e,!1,s,null,x,t,E)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new Yd),this._eventDispatcher.emitOutgoingEvent(new Ym))}_withViewEventsCollector(e){return this._transactionalTarget.batchChanges(()=>{try{let 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 G_{static create(e){let t=e._setTrackedRange(null,new OQ.e(1,1,1,1),1);return new G_(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,s,x,E){this._model=e,this._viewLineNumber=t,this._isValid=s,this._modelTrackedRange=x,this._startLineDelta=E}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){let s=e.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(t,e.getLineMinColumn(t))),x=e.model._setTrackedRange(this._modelTrackedRange,new OQ.e(s.lineNumber,s.column,s.lineNumber,s.column),1),E=e.viewLayout.getVerticalOffsetForLineNumber(t),a=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=x,this._startLineDelta=a-E}invalidate(){this._isValid=!1}}class Gc{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,s,x,E){let a=this._asMap[e];if(a){let e=a.data,t=e[e.length-3],r=e[e.length-1];if(t===E&&r+1>=s){x>r&&(e[e.length-1]=x);return}e.push(E,s,x)}else{let a=new MQ(e,t,[E,s,x]);this._asMap[e]=a,this.asArray.push(a)}}}class GT{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){let s=this.hiddenAreas.get(e);s&&GS(s,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;let e=Array.from(this.hiddenAreas.values()).reduce((e,t)=>(function(e,t){let s=[],x=0,E=0;for(;x<e.length&&E<t.length;){let a=e[x],r=t[E];if(a.endLineNumber<r.startLineNumber-1)s.push(e[x++]);else if(r.endLineNumber<a.startLineNumber-1)s.push(t[E++]);else{let e=Math.min(a.startLineNumber,r.startLineNumber),t=Math.max(a.endLineNumber,r.endLineNumber);s.push(new OQ.e(e,1,t,1)),x++,E++}}for(;x<e.length;)s.push(e[x++]);for(;E<t.length;)s.push(t[E++]);return s})(e,t),[]);return GS(this.ranges,e)||(this.ranges=e),this.ranges}}function GS(e,t){if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(!e[s].equalsRange(t[s]))return!1;return!0}class GR{constructor(e,t){this.viewportStartModelPosition=e,this.startLineDelta=t}recoverViewportStart(e,t){if(!this.viewportStartModelPosition)return;let s=e.convertModelPositionToViewPosition(this.viewportStartModelPosition),x=t.getVerticalOffsetForLineNumber(s.lineNumber);t.setScrollPosition({scrollTop:x+this.startLineDelta},1)}}var GO=function(e,t){return function(s,x){t(s,x,e)}};let GA=class extends TD.JT{static{eH=this}static{this.dropIntoEditorDecorationOptions=p6.qx.register({description:"workbench-dnd-target",className:"dnd-target"})}get isSimpleWidget(){return this._configuration.isSimpleWidget}get contextMenuId(){return this._configuration.contextMenuId}constructor(e,t,s,x,E,a,r,i,n,_,T,S){let R;super(),this.languageConfigurationService=T,this._deliveryQueue=(0,T0.Sp)(),this._contributions=this._register(new p5),this._onDidDispose=this._register(new T0.Q5),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeModel=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.event,this._onDidChangeModel=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new GI({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new GI({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._updateCounter=0,this._onBeginUpdate=this._register(new T0.Q5),this.onBeginUpdate=this._onBeginUpdate.event,this._onEndUpdate=this._register(new T0.Q5),this.onEndUpdate=this._onEndUpdate.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),E.willCreateCodeEditor();let O={...t};for(let t of(this._domElement=e,this._overflowWidgetsDomNode=O.overflowWidgetsDomNode,delete O.overflowWidgetsDomNode,this._id=++Go,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=s.telemetryData,this._configuration=this._register(this._createConfiguration(s.isSimpleWidget||!1,s.contextMenuId??(s.isSimpleWidget?Ou.SimpleEditorContext:Ou.EditorContext),O,_)),this._register(this._configuration.onDidChange(e=>{this._onDidChangeConfiguration.fire(e);let t=this._configuration.options;if(e.hasChanged(146)){let e=t.get(146);this._onDidLayoutChange.fire(e)}})),this._contextKeyService=this._register(r.createScoped(this._domElement)),this._notificationService=n,this._codeEditorService=E,this._commandService=a,this._themeService=i,this._register(new GL(this,this._contextKeyService)),this._register(new GC(this,this._contextKeyService,S)),this._instantiationService=this._register(x.createChild(new DF([Oo.i6,this._contextKeyService]))),this._modelData=null,this._focusTracker=new Gl(e,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={},R=Array.isArray(s.contributions)?s.contributions:f.getEditorContributions(),this._contributions.initialize(this,R,this._instantiationService),f.getEditorActions())){if(this._actions.has(t.id)){(0,TV.dL)(Error(`Cannot have two actions with the same id ${t.id}`));continue}let e=new p4(t.id,t.label,t.alias,t.metadata,t.precondition??void 0,e=>this._instantiationService.invokeFunction(s=>Promise.resolve(t.runEditorCommand(s,this,e))),this._contextKeyService);this._actions.set(e.id,e)}let A=()=>!this._configuration.options.get(92)&&this._configuration.options.get(36).enabled;this._register(new Rk(this._domElement,{onDragOver:e=>{if(!A())return;let t=this.getTargetAtClientPoint(e.clientX,e.clientY);t?.position&&this.showDropIndicatorAt(t.position)},onDrop:async e=>{if(!A()||(this.removeDropIndicator(),!e.dataTransfer))return;let t=this.getTargetAtClientPoint(e.clientX,e.clientY);t?.position&&this._onDropIntoEditor.fire({position:t.position,event:e})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){this._modelData?.view.writeScreenReaderContent(e)}_createConfiguration(e,t,s,x){return new P_(e,t,s,this._domElement,x)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return MC.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?dk.getWordAtPosition(this._modelData.model,this._configuration.options.get(132),this._configuration.options.get(131),e):null}getValue(e=null){if(!this._modelData)return"";let t=!!e&&!!e.preserveBOM,s=0;return e&&e.lineEnding&&"\n"===e.lineEnding?s=1:e&&e.lineEnding&&"\r\n"===e.lineEnding&&(s=2),this._modelData.model.getValue(s,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){try{if(this._beginUpdate(),null===this._modelData&&null===e||this._modelData&&this._modelData.model===e)return;let t={oldModelUrl:this._modelData?.model.uri||null,newModelUrl:e?.uri||null};this._onWillChangeModel.fire(t);let s=this.hasTextFocus(),x=this._detachModel();this._attachModel(e),s&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire(t),this._postDetachModelCleanup(x),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(let e in this._decorationTypeSubtypes){let t=this._decorationTypeSubtypes[e];for(let s in t)this._removeDecorationType(e+"-"+s)}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,s,x){let E=e.model.validatePosition({lineNumber:t,column:s}),a=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(E);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(a.lineNumber,x)}getTopForLineNumber(e,t=!1){return this._modelData?eH._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?eH._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,s,x=!1){let E=e.model.validatePosition({lineNumber:t,column:s}),a=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(E);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(a.lineNumber,x)}getBottomForLineNumber(e,t=!1){if(!this._modelData)return -1;let s=this._modelData.model.getLineMaxColumn(e);return eH._getVerticalOffsetAfterPosition(this._modelData,e,s,t)}setHiddenAreas(e,t){this._modelData?.viewModel.setHiddenAreas(e.map(e=>OQ.e.lift(e)),t)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;let t=this._modelData.model.validatePosition(e),s=this._modelData.model.getOptions().tabSize;return PK.i.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,s)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t="api"){if(this._modelData){if(!N0.L.isIPosition(e))throw Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,s,x){if(!this._modelData)return;if(!OQ.e.isIRange(e))throw Error("Invalid arguments");let E=this._modelData.model.validateRange(e),a=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(E);this._modelData.viewModel.revealRange("api",s,a,t,x)}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,s){if("number"!=typeof e)throw Error("Invalid arguments");this._sendRevealRange(new OQ.e(e,1,e,1),t,!1,s)}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,s,x){if(!N0.L.isIPosition(e))throw Error("Invalid arguments");this._sendRevealRange(new OQ.e(e.lineNumber,e.column,e.lineNumber,e.column),t,s,x)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t="api"){let s=P4.Y.isISelection(e),x=OQ.e.isIRange(e);if(!s&&!x)throw Error("Invalid arguments");if(s)this._setSelectionImpl(e,t);else if(x){let s={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(s,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;let s=new P4.Y(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[s])}revealLines(e,t,s=0){this._revealLines(e,t,0,s)}revealLinesInCenter(e,t,s=0){this._revealLines(e,t,1,s)}revealLinesInCenterIfOutsideViewport(e,t,s=0){this._revealLines(e,t,2,s)}revealLinesNearTop(e,t,s=0){this._revealLines(e,t,5,s)}_revealLines(e,t,s,x){if("number"!=typeof e||"number"!=typeof t)throw Error("Invalid arguments");this._sendRevealRange(new OQ.e(e,1,t,1),s,!1,x)}revealRange(e,t=0,s=!1,x=!0){this._revealRange(e,s?1:0,x,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,s,x){if(!OQ.e.isIRange(e))throw Error("Invalid arguments");this._sendRevealRange(OQ.e.lift(e),t,s,x)}setSelections(e,t="api",s=0){if(this._modelData){if(!e||0===e.length)throw Error("Invalid arguments");for(let t=0,s=e.length;t<s;t++)if(!P4.Y.isISelection(e[t]))throw Error("Invalid arguments");this._modelData.viewModel.setSelections(t,e,s)}}getContentWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}getScrollWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}getScrollLeft(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}getContentHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}getScrollHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}getScrollTop(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}setScrollLeft(e,t=1){if(this._modelData){if("number"!=typeof e)throw Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:e},t)}}setScrollTop(e,t=1){if(this._modelData){if("number"!=typeof e)throw 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()}saveViewState(){if(!this._modelData)return null;let e=this._contributions.saveViewState();return{cursorState:this._modelData.viewModel.saveCursorState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}}restoreViewState(e){if(this._modelData&&this._modelData.hasRealView&&e&&e.cursorState&&e.viewState){let t=e.cursorState;Array.isArray(t)?t.length>0&&this._modelData.viewModel.restoreCursorState(t):this._modelData.viewModel.restoreCursorState([t]),this._contributions.restoreViewState(e.contributionsState||{});let s=this._modelData.viewModel.reduceRestoreState(e.viewState);this._modelData.view.restoreState(s)}}handleInitialized(){this._getViewModel()?.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){return this.getActions().filter(e=>e.isSupported())}getAction(e){return this._actions.get(e)||null}trigger(e,t,s){s=s||{};try{switch(this._beginUpdate(),t){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(e);return;case"type":{let t=s;this._type(e,t.text||"");return}case"replacePreviousChar":{let t=s;this._compositionType(e,t.text||"",t.replaceCharCnt||0,0,0);return}case"compositionType":{let t=s;this._compositionType(e,t.text||"",t.replacePrevCharCnt||0,t.replaceNextCharCnt||0,t.positionDelta||0);return}case"paste":{let t=s;this._paste(e,t.text||"",t.pasteOnNewLine||!1,t.multicursorText||null,t.mode||null,t.clipboardEvent);return}case"cut":this._cut(e);return}let x=this.getAction(t);if(x){Promise.resolve(x.run(s)).then(void 0,TV.dL);return}if(!this._modelData||this._triggerEditorCommand(e,t,s))return;this._triggerCommand(t,s)}finally{this._endUpdate()}}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){this._modelData&&0!==t.length&&("keyboard"===e&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),"keyboard"===e&&this._onDidType.fire(t))}_compositionType(e,t,s,x,E){this._modelData&&this._modelData.viewModel.compositionType(t,s,x,E,e)}_paste(e,t,s,x,E,a){if(!this._modelData)return;let r=this._modelData.viewModel,i=r.getSelection().getStartPosition();r.paste(t,s,x,e);let n=r.getSelection().getStartPosition();"keyboard"===e&&this._onDidPaste.fire({clipboardEvent:a,range:new OQ.e(i.lineNumber,i.column,n.lineNumber,n.column),languageId:E})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,s){let x=f.getEditorCommand(t);return!!x&&((s=s||{}).source=e,this._instantiationService.invokeFunction(e=>{Promise.resolve(x.runEditorCommand(e,this,s)).then(void 0,TV.dL)}),!0)}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!(!this._modelData||this._configuration.options.get(92))&&(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!(!this._modelData||this._configuration.options.get(92))&&(this._modelData.model.popStackElement(),!0)}executeEdits(e,t,s){let x;return!(!this._modelData||this._configuration.options.get(92))&&(x=s?Array.isArray(s)?()=>s:s:()=>null,this._modelData.viewModel.executeEdits(e,t,x),!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 Gu(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,c8(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,c8(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){this._modelData&&0!==e.length&&this._modelData.model.changeDecorations(t=>{t.deltaDecorations(e,[])})}removeDecorationsByType(e){let t=this._decorationTypeKeysToIds[e];t&&this.changeDecorations(e=>e.deltaDecorations(t,[])),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(146)}createOverviewRuler(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null}getContainerDomNode(){return this._domElement}getDomNode(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null}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&&this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){let 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){let t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){let s=this._contentWidgets[t];s.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(s)}}removeContentWidget(e){let t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){let e=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(e)}}addOverlayWidget(e){let 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){let t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){let s=this._overlayWidgets[t];s.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(s)}}removeOverlayWidget(e){let t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){let e=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(e)}}addGlyphMarginWidget(e){let 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){let t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){let s=this._glyphMarginWidgets[t];s.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(s)}}removeGlyphMarginWidget(e){let t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){let e=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(e)}}changeViewZones(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;let t=this._modelData.model.validatePosition(e),s=this._configuration.options,x=s.get(146);return{top:eH._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+x.glyphMarginWidth+x.lineNumbersWidth+x.decorationsWidth-this.getScrollLeft(),height:s.get(67)}}getOffsetForColumn(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1}render(e=!1){this._modelData&&this._modelData.hasRealView&&this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,e)})}setAriaOptions(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)}applyFontInfo(e){R0(e,this._configuration.options.get(50))}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}let t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());let s=e.onBeforeAttached(),x=new Gn(this._id,this._configuration,e,p3.create(SK(this._domElement)),p9.create(this._configuration.options),e=>a(SK(this._domElement),e),this.languageConfigurationService,this._themeService,s,{batchChanges:e=>{try{return this._beginUpdate(),e()}finally{this._endUpdate()}}});t.push(e.onWillDispose(()=>this.setModel(null))),t.push(x.onEvent(t=>{switch(t.kind){case 0:this._onDidContentSizeChange.fire(t);break;case 1:this._editorTextFocus.setValue(t.hasFocus);break;case 2:this._onDidScrollChange.fire(t);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(t.reachedMaxCursorCount){let e=this.getOption(80),t=ch.NC("cursors.maximum","The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",e);this._notificationService.prompt(AO.Warning,t,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:ch.NC("goToSetting","Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}let e=[];for(let s=0,x=t.selections.length;s<x;s++)e[s]=t.selections[s].getPosition();let s={position:e[0],secondaryPositions:e.slice(1),reason:t.reason,source:t.source};this._onDidChangeCursorPosition.fire(s);let x={selection:t.selections[0],secondarySelections:t.selections.slice(1),modelVersionId:t.modelVersionId,oldSelections:t.oldSelections,oldModelVersionId:t.oldModelVersionId,source:t.source,reason:t.reason};this._onDidChangeCursorSelection.fire(x);break}case 7:this._onDidChangeModelDecorations.fire(t.event);break;case 8:this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._onDidChangeModelLanguage.fire(t.event);break;case 9:this._onDidChangeModelLanguageConfiguration.fire(t.event);break;case 10:this._onDidChangeModelContent.fire(t.event);break;case 11:this._onDidChangeModelOptions.fire(t.event);break;case 12:this._onDidChangeModelTokens.fire(t.event)}}));let[E,r]=this._createView(x);if(r){this._domElement.appendChild(E.domNode.domNode);let t=Object.keys(this._contentWidgets);for(let e=0,s=t.length;e<s;e++){let s=t[e];E.addContentWidget(this._contentWidgets[s])}t=Object.keys(this._overlayWidgets);for(let e=0,s=t.length;e<s;e++){let s=t[e];E.addOverlayWidget(this._overlayWidgets[s])}t=Object.keys(this._glyphMarginWidgets);for(let e=0,s=t.length;e<s;e++){let s=t[e];E.addGlyphMarginWidget(this._glyphMarginWidgets[s])}E.render(!1,!0),E.domNode.domNode.setAttribute("data-uri",e.uri.toString())}this._modelData=new GN(e,x,E,r,t,s)}_createView(e){let t;t=this.isSimpleWidget?{paste:(e,t,s,x)=>{this._paste("keyboard",e,t,s,x)},type:e=>{this._type("keyboard",e)},compositionType:(e,t,s,x)=>{this._compositionType("keyboard",e,t,s,x)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:{paste:(e,t,s,x)=>{this._commandService.executeCommand("paste",{text:e,pasteOnNewLine:t,multicursorText:s,mode:x})},type:e=>{this._commandService.executeCommand("type",{text:e})},compositionType:(e,t,s,x)=>{s||x?this._commandService.executeCommand("compositionType",{text:e,replacePrevCharCnt:t,replaceNextCharCnt:s,positionDelta:x}):this._commandService.executeCommand("replacePreviousChar",{text:e,replaceCharCnt:t})},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};let s=new Uf(e.coordinatesConverter);return s.onKeyDown=e=>this._onKeyDown.fire(e),s.onKeyUp=e=>this._onKeyUp.fire(e),s.onContextMenu=e=>this._onContextMenu.fire(e),s.onMouseMove=e=>this._onMouseMove.fire(e),s.onMouseLeave=e=>this._onMouseLeave.fire(e),s.onMouseDown=e=>this._onMouseDown.fire(e),s.onMouseUp=e=>this._onMouseUp.fire(e),s.onMouseDrag=e=>this._onMouseDrag.fire(e),s.onMouseDrop=e=>this._onMouseDrop.fire(e),s.onMouseDropCanceled=e=>this._onMouseDropCanceled.fire(e),s.onMouseWheel=e=>this._onMouseWheel.fire(e),[new pQ(t,this._configuration,this._themeService.getColorTheme(),e,s,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e?.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(this._contributionsDisposable?.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;let 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 null!==this._modelData}showDropIndicatorAt(e){let t=[{range:new OQ.e(e.lineNumber,e.column,e.lineNumber,e.column),options:eH.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(e,t){this._contextKeyService.createKey(e,t)}_beginUpdate(){this._updateCounter++,1===this._updateCounter&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,0===this._updateCounter&&this._onEndUpdate.fire()}};GA=eH=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([GO(3,Oe.TG),GO(4,Ot),GO(5,OO),GO(6,Oo.i6),GO(7,As.XE),GO(8,AA),GO(9,Nu),GO(10,OJ.c_),GO(11,Oj.ILanguageFeaturesService)],GA);let Go=0;class GN{constructor(e,t,s,x,E,a){this.model=e,this.viewModel=t,this.view=s,this.hasRealView=x,this.listenersToRemove=E,this.attachedView=a}dispose(){(0,TD.B9)(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}class GI extends TD.JT{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new T0.Q5(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new T0.Q5(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){let t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())}}class Gh extends T0.Q5{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}}class GL extends TD.JT{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=eG.editorSimpleInput.bindTo(t),this._editorFocus=eG.focus.bindTo(t),this._textInputFocus=eG.textInputFocus.bindTo(t),this._editorTextFocus=eG.editorTextFocus.bindTo(t),this._tabMovesFocus=eG.tabMovesFocus.bindTo(t),this._editorReadonly=eG.readOnly.bindTo(t),this._inDiffEditor=eG.inDiffEditor.bindTo(t),this._editorColumnSelection=eG.columnSelection.bindTo(t),this._hasMultipleSelections=eG.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=eG.hasNonEmptySelection.bindTo(t),this._canUndo=eG.canUndo.bindTo(t),this._canRedo=eG.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(Pn.onDidChangeTabFocus(e=>this._tabMovesFocus.set(e))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){let e=this._editor.getOptions();this._tabMovesFocus.set(Pn.getTabFocusMode()),this._editorReadonly.set(e.get(92)),this._inDiffEditor.set(e.get(61)),this._editorColumnSelection.set(e.get(22))}_updateFromSelection(){let e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(e=>!e.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){let e=this._editor.getModel();this._canUndo.set(!!(e&&e.canUndo())),this._canRedo.set(!!(e&&e.canRedo()))}}class GC extends TD.JT{constructor(e,t,s){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=s,this._langId=eG.languageId.bindTo(t),this._hasCompletionItemProvider=eG.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=eG.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=eG.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=eG.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=eG.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=eG.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=eG.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=eG.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=eG.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=eG.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=eG.hasReferenceProvider.bindTo(t),this._hasRenameProvider=eG.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=eG.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=eG.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=eG.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=eG.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=eG.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=eG.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInEmbeddedEditor=eG.isInEmbeddedEditor.bindTo(t);let x=()=>this._update();this._register(e.onDidChangeModel(x)),this._register(e.onDidChangeModelLanguage(x)),this._register(s.completionProvider.onDidChange(x)),this._register(s.codeActionProvider.onDidChange(x)),this._register(s.codeLensProvider.onDidChange(x)),this._register(s.definitionProvider.onDidChange(x)),this._register(s.declarationProvider.onDidChange(x)),this._register(s.implementationProvider.onDidChange(x)),this._register(s.typeDefinitionProvider.onDidChange(x)),this._register(s.hoverProvider.onDidChange(x)),this._register(s.documentHighlightProvider.onDidChange(x)),this._register(s.documentSymbolProvider.onDidChange(x)),this._register(s.referenceProvider.onDidChange(x)),this._register(s.renameProvider.onDidChange(x)),this._register(s.documentFormattingEditProvider.onDidChange(x)),this._register(s.documentRangeFormattingEditProvider.onDidChange(x)),this._register(s.signatureHelpProvider.onDidChange(x)),this._register(s.inlayHintsProvider.onDidChange(x)),x()}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(){let 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===Sk.lg.walkThroughSnippet||e.uri.scheme===Sk.lg.vscodeChatCodeBlock)})}}class Gl extends TD.JT{constructor(e,t){super(),this._onChange=this._register(new T0.Q5),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(Rd(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(Rd(t)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){let e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){return this._hadFocus??!1}}class Gu{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,s){return this._editor.onDidChangeModelDecorations(s=>{this._isChangingDecorations||e.call(t,s)},s)}getRange(e){return!this._editor.hasModel()||e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e])}getRanges(){if(!this._editor.hasModel())return[];let e=this._editor.getModel(),t=[];for(let s of this._decorationIds){let x=e.getDecorationRange(s);x&&t.push(x)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){0!==this._decorationIds.length&&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(s=>{t=s.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)})}finally{this._isChangingDecorations=!1}return t}}let GD=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='"),GM=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 GP(e){return GD+encodeURIComponent(e.toString())+GM}let Gd=encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'),GU=encodeURIComponent('"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>');(0,As.Ic)((e,t)=>{let s=e.getColor(AY.lXJ);s&&t.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${GP(s)}") repeat-x bottom left; }`);let x=e.getColor(AY.uoC);x&&t.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${GP(x)}") repeat-x bottom left; }`);let E=e.getColor(AY.c63);E&&t.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${GP(E)}") repeat-x bottom left; }`);let a=e.getColor(AY.Dut);a&&t.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${Gd+encodeURIComponent(a.toString())+GU}") no-repeat bottom left; }`);let r=e.getColor(uJ.zu);r&&t.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${r.rgba.a}; }`)});var Gp=x(53124);x(18753);class GY{static capture(e){if(0===e.getScrollTop()||e.hasPendingScrollAnimation())return new GY(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,s=0,x=e.getVisibleRanges();if(x.length>0){t=x[0].getStartPosition();let E=e.getTopForPosition(t.lineNumber,t.column);s=e.getScrollTop()-E}return new GY(e.getScrollTop(),e.getContentHeight(),t,s,e.getPosition())}constructor(e,t,s,x,E){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=s,this._visiblePositionScrollDelta=x,this._cursorPosition=E}restore(e){if((this._initialContentHeight!==e.getContentHeight()||this._initialScrollTop!==e.getScrollTop())&&this._visiblePosition){let 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;let t=e.getPosition();if(!this._cursorPosition||!t)return;let s=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+s,1)}}var GG=x(65783);function GB(e,t){let s=new TD.SL,x=e.createDecorationsCollection();return s.add((0,I0.UV)({debugName:()=>`Apply decorations from ${t.debugName}`},e=>{let s=t.read(e);x.set(s)})),s.add({dispose:()=>{x.clear()}}),s}function Gm(e,t){return e.appendChild(t),(0,TD.OF)(()=>{t.remove()})}class Gf extends TD.JT{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 Ps(e,t)),this._width=(0,I0.uh)(this,this.elementSizeObserver.getWidth()),this._height=(0,I0.uh)(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(e=>(0,I0.PS)(e=>{this._width.set(this.elementSizeObserver.getWidth(),e),this._height.set(this.elementSizeObserver.getHeight(),e)})))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){this._automaticLayout=e,e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function Gg(e,t,s){let x,E=t.get(),a=E,r=E,i=(0,I0.uh)("animatedValue",E),n=-1;return s.add((0,I0.nJ)({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(e,s)=>(e.didChange(t)&&(s.animate=s.animate||e.change),!0)},(s,_)=>{void 0!==x&&(e.cancelAnimationFrame(x),x=void 0),a=r,E=t.read(s),n=Date.now()-(_.animate?0:300),function t(){var s,_;let T=Date.now()-n;r=Math.floor((s=a,_=E-a,300===T?s+_:_*(-Math.pow(2,-10*T/300)+1)+s)),T<300?x=e.requestAnimationFrame(t):r=E,i.set(r,void 0)}()})),i}class GF extends TD.JT{constructor(e,t,s){super(),this._register(new Gy(e,s)),this._register(GV(s,{height:t.actualHeight,top:t.actualTop}))}}class GH{get afterLineNumber(){return this._afterLineNumber.get()}constructor(e,t){this._afterLineNumber=e,this.heightInPx=t,this.domNode=document.createElement("div"),this._actualTop=(0,I0.uh)(this,void 0),this._actualHeight=(0,I0.uh)(this,void 0),this.actualTop=this._actualTop,this.actualHeight=this._actualHeight,this.showInHiddenAreas=!0,this.onChange=this._afterLineNumber,this.onDomNodeTop=e=>{this._actualTop.set(e,void 0)},this.onComputedHeight=e=>{this._actualHeight.set(e,void 0)}}}class Gy{static{this._counter=0}constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId=`managedOverlayWidget-${Gy._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}function GV(e,t){return(0,I0.EH)(s=>{for(let[x,E]of Object.entries(t))E&&"object"==typeof E&&"read"in E&&(E=E.read(s)),"number"==typeof E&&(E=`${E}px`),x=x.replace(/[A-Z]/g,e=>"-"+e.toLowerCase()),e.style[x]=E})}function GX(e,t,s,x){let E=new TD.SL,a=[];return E.add((0,I0.gp)((E,r)=>{let i=t.read(E),n=new Map,_=new Map;s&&s(!0),e.changeViewZones(e=>{for(let t of a)e.removeZone(t),x?.delete(t);for(let t of(a.length=0,i)){let s=e.addZone(t);t.setZoneId&&t.setZoneId(s),a.push(s),x?.add(s),n.set(t,s)}}),s&&s(!1),r.add((0,I0.nJ)({createEmptyChangeSummary:()=>({zoneIds:[]}),handleChange(e,t){let s=_.get(e.changedObservable);return void 0!==s&&t.zoneIds.push(s),!0}},(t,x)=>{for(let e of i)e.onChange&&(_.set(e.onChange,n.get(e)),e.onChange.read(t));s&&s(!0),e.changeViewZones(e=>{for(let t of x.zoneIds)e.layoutZone(t)}),s&&s(!1)}))})),E.add({dispose(){s&&s(!0),e.changeViewZones(e=>{for(let t of a)e.removeZone(t)}),x?.clear(),s&&s(!1)}}),E}function Gb(e,t){let s=(0,Yr.dF)(t,t=>t.original.startLineNumber<=e.lineNumber);if(!s)return OQ.e.fromPositions(e);if(s.original.endLineNumberExclusive<=e.lineNumber){let t=e.lineNumber-s.original.endLineNumberExclusive+s.modified.endLineNumberExclusive;return OQ.e.fromPositions(new N0.L(t,e.column))}if(!s.innerChanges)return OQ.e.fromPositions(new N0.L(s.modified.startLineNumber,1));let x=(0,Yr.dF)(s.innerChanges,t=>t.originalRange.getStartPosition().isBeforeOrEqual(e));if(!x){let t=e.lineNumber-s.original.startLineNumber+s.modified.startLineNumber;return OQ.e.fromPositions(new N0.L(t,e.column))}if(x.originalRange.containsPosition(e))return x.modifiedRange;{var E;let t=(E=x.originalRange.getEndPosition()).lineNumber===e.lineNumber?new GG.A(0,e.column-E.column):new GG.A(e.lineNumber-E.lineNumber,e.column-1);return OQ.e.fromPositions(t.addToPosition(x.modifiedRange.getEndPosition()))}}class Gv{static create(e,t){return new Gk(e,e,t)}static createWithDisposable(e,t,s){let x=new TD.SL;return x.add(t),x.add(e),new Gk(e,x,s)}}class Gk extends Gv{constructor(e,t,s){super(),this.object=e,this._disposable=t,this._debugOwner=s,this._refCount=1,this._isDisposed=!1,this._owners=[],s&&this._addOwner(s)}_addOwner(e){e&&this._owners.push(e)}createNewRef(e){return this._refCount++,e&&this._addOwner(e),new Gw(this,e)}dispose(){this._isDisposed||(this._isDisposed=!0,this._decreaseRefCount(this._debugOwner))}_decreaseRefCount(e){if(this._refCount--,0===this._refCount&&this._disposable.dispose(),e){let t=this._owners.indexOf(e);-1!==t&&this._owners.splice(t,1)}}}class Gw extends Gv{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))}}var GW=x(1146);x(90967);var GK=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},GQ=function(e,t){return function(s,x){t(s,x,e)}};let GJ=u1("diff-review-insert",AK.l.add,(0,ch.NC)("accessibleDiffViewerInsertIcon","Icon for 'Insert' in accessible diff viewer.")),GZ=u1("diff-review-remove",AK.l.remove,(0,ch.NC)("accessibleDiffViewerRemoveIcon","Icon for 'Remove' in accessible diff viewer.")),Gz=u1("diff-review-close",AK.l.close,(0,ch.NC)("accessibleDiffViewerCloseIcon","Icon for 'Close' in accessible diff viewer.")),Gq=class extends TD.JT{static{this._ttPolicy=Ok("diffReview",{createHTML:e=>e})}constructor(e,t,s,x,E,a,r,i,n){super(),this._parentNode=e,this._visible=t,this._setVisible=s,this._canClose=x,this._width=E,this._height=a,this._diffs=r,this._models=i,this._instantiationService=n,this._state=(0,I0.Be)(this,(e,t)=>{let s=this._visible.read(e);if(this._parentNode.style.visibility=s?"visible":"hidden",!s)return null;let x=t.add(this._instantiationService.createInstance(Gj,this._diffs,this._models,this._setVisible,this._canClose)),E=t.add(this._instantiationService.createInstance(G7,this._parentNode,x,this._width,this._height,this._models));return{model:x,view:E}}).recomputeInitiallyAndOnChange(this._store)}next(){(0,I0.PS)(e=>{let t=this._visible.get();this._setVisible(!0,e),t&&this._state.get().model.nextGroup(e)})}prev(){(0,I0.PS)(e=>{this._setVisible(!0,e),this._state.get().model.previousGroup(e)})}close(){(0,I0.PS)(e=>{this._setVisible(!1,e)})}};Gq=GK([GQ(8,Oe.TG)],Gq);let Gj=class extends TD.JT{constructor(e,t,s,x,E){super(),this._diffs=e,this._models=t,this._setVisible=s,this.canClose=x,this._accessibilitySignalService=E,this._groups=(0,I0.uh)(this,[]),this._currentGroupIdx=(0,I0.uh)(this,0),this._currentElementIdx=(0,I0.uh)(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((e,t)=>this._groups.read(t)[e]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((e,t)=>this.currentGroup.read(t)?.lines[e]),this._register((0,I0.EH)(e=>{let t=this._diffs.read(e);if(!t){this._groups.set([],void 0);return}let s=function(e,t,s){let x=[];for(let E of(0,cO.mw)(e,(e,t)=>t.modified.startLineNumber-e.modified.endLineNumberExclusive<6)){let e=[];e.push(new G0);let a=new O2.z(Math.max(1,E[0].original.startLineNumber-3),Math.min(E[E.length-1].original.endLineNumberExclusive+3,t+1)),r=new O2.z(Math.max(1,E[0].modified.startLineNumber-3),Math.min(E[E.length-1].modified.endLineNumberExclusive+3,s+1));(0,cO.zy)(E,(t,s)=>{let x=new O2.z(t?t.original.endLineNumberExclusive:a.startLineNumber,s?s.original.startLineNumber:a.endLineNumberExclusive),E=new O2.z(t?t.modified.endLineNumberExclusive:r.startLineNumber,s?s.modified.startLineNumber:r.endLineNumberExclusive);x.forEach(t=>{e.push(new G3(t,E.startLineNumber+(t-x.startLineNumber)))}),s&&(s.original.forEach(t=>{e.push(new G2(s,t))}),s.modified.forEach(t=>{e.push(new G1(s,t))}))});let i=E[0].modified.join(E[E.length-1].modified),n=E[0].original.join(E[E.length-1].original);x.push(new G$(new O0.f0(i,n),e))}return x}(t,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());(0,I0.PS)(e=>{let t=this._models.getModifiedPosition();if(t){let x=s.findIndex(e=>t?.lineNumber<e.range.modified.endLineNumberExclusive);-1!==x&&this._currentGroupIdx.set(x,e)}this._groups.set(s,e)})})),this._register((0,I0.EH)(e=>{let t=this.currentElement.read(e);t?.type===ey.Deleted?this._accessibilitySignalService.playSignal(DZ.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):t?.type===ey.Added&&this._accessibilitySignalService.playSignal(DZ.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register((0,I0.EH)(e=>{let t=this.currentElement.read(e);if(t&&t.type!==ey.Header){let e=t.modifiedLineNumber??t.diff.modified.startLineNumber;this._models.modifiedSetSelection(OQ.e.fromPositions(new N0.L(e,1)))}}))}_goToGroupDelta(e,t){let s=this.groups.get();s&&!(s.length<=1)&&(0,I0.c8)(t,t=>{this._currentGroupIdx.set(GW.q.ofLength(s.length).clipCyclic(this._currentGroupIdx.get()+e),t),this._currentElementIdx.set(0,t)})}nextGroup(e){this._goToGroupDelta(1,e)}previousGroup(e){this._goToGroupDelta(-1,e)}_goToLineDelta(e){let t=this.currentGroup.get();t&&!(t.lines.length<=1)&&(0,I0.PS)(s=>{this._currentElementIdx.set(GW.q.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),s)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){let t=this.currentGroup.get();if(!t)return;let s=t.lines.indexOf(e);-1!==s&&(0,I0.PS)(e=>{this._currentElementIdx.set(s,e)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);let e=this.currentElement.get();e&&(e.type===ey.Deleted?this._models.originalReveal(OQ.e.fromPositions(new N0.L(e.originalLineNumber,1))):this._models.modifiedReveal(e.type!==ey.Header?OQ.e.fromPositions(new N0.L(e.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};Gj=GK([GQ(4,DK)],Gj),function(e){e[e.Header=0]="Header",e[e.Unchanged=1]="Unchanged",e[e.Deleted=2]="Deleted",e[e.Added=3]="Added"}(ey||(ey={}));class G${constructor(e,t){this.range=e,this.lines=t}}class G0{constructor(){this.type=ey.Header}}class G2{constructor(e,t){this.diff=e,this.originalLineNumber=t,this.type=ey.Deleted,this.modifiedLineNumber=void 0}}class G1{constructor(e,t){this.diff=e,this.modifiedLineNumber=t,this.type=ey.Added,this.originalLineNumber=void 0}}class G3{constructor(e,t){this.originalLineNumber=e,this.modifiedLineNumber=t,this.type=ey.Unchanged}}let G7=class extends TD.JT{constructor(e,t,s,x,E,a){super(),this._element=e,this._model=t,this._width=s,this._height=x,this._models=E,this._languageService=a,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";let r=document.createElement("div");r.className="diff-review-actions",this._actionBar=this._register(new h0(r)),this._register((0,I0.EH)(e=>{this._actionBar.clear(),this._model.canClose.read(e)&&this._actionBar.push(new OE("diffreview.close",(0,ch.NC)("label.close","Close"),"close-diff-review "+Oc.k.asClassName(Gz),!0,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 A5(this._content,{})),RY(this.domNode,this._scrollbar.getDomNode(),r),this._register((0,I0.EH)(e=>{this._height.read(e),this._width.read(e),this._scrollbar.scanDomNode()})),this._register((0,TD.OF)(()=>{RY(this.domNode)})),this._register(GV(this.domNode,{width:this._width,height:this._height})),this._register(GV(this._content,{width:this._width,height:this._height})),this._register((0,I0.gp)((e,t)=>{this._model.currentGroup.read(e),this._render(t)})),this._register(S5(this.domNode,"keydown",e=>{(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),this._model.goToNextLine()),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),this._model.goToPreviousLine()),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),this._model.close()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(e){let t=this._models.getOriginalOptions(),s=this._models.getModifiedOptions(),x=document.createElement("div");x.className="diff-review-table",x.setAttribute("role","list"),x.setAttribute("aria-label",(0,ch.NC)("ariaLabel","Accessible Diff Viewer. Use arrow up and down to navigate.")),R0(x,s.get(50)),RY(this._content,x);let E=this._models.getOriginalModel(),a=this._models.getModifiedModel();if(!E||!a)return;let r=E.getOptions(),i=a.getOptions(),n=s.get(67),_=this._model.currentGroup.get();for(let T of _?.lines||[]){let S;if(!_)break;if(T.type===ey.Header){let e=document.createElement("div");e.className="diff-review-row",e.setAttribute("role","listitem");let t=_.range,s=this._model.currentGroupIndex.get(),x=this._model.groups.get().length,E=e=>0===e?(0,ch.NC)("no_lines_changed","no lines changed"):1===e?(0,ch.NC)("one_line_changed","1 line changed"):(0,ch.NC)("more_lines_changed","{0} lines changed",e),a=E(t.original.length),r=E(t.modified.length);e.setAttribute("aria-label",(0,ch.NC)({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",s+1,x,t.original.startLineNumber,a,t.modified.startLineNumber,r));let i=document.createElement("div");i.className="diff-review-cell diff-review-summary",i.appendChild(document.createTextNode(`${s+1}/${x}: @@ -${t.original.startLineNumber},${t.original.length} +${t.modified.startLineNumber},${t.modified.length} @@`)),e.appendChild(i),S=e}else S=this._createRow(T,n,this._width.get(),t,E,r,s,a,i);x.appendChild(S);let R=(0,I0.nK)(e=>this._model.currentElement.read(e)===T);e.add((0,I0.EH)(e=>{let t=R.read(e);S.tabIndex=t?0:-1,t&&S.focus()})),e.add(S7(S,"focus",()=>{this._model.goToLine(T)}))}this._scrollbar.scanDomNode()}_createRow(e,t,s,x,E,a,r,i,n){let _;let T=x.get(146),S=T.glyphMarginWidth+T.lineNumbersWidth,R=r.get(146),O=10+R.glyphMarginWidth+R.lineNumbersWidth,A="diff-review-row",o="",N=null;switch(e.type){case ey.Added:A="diff-review-row line-insert",o=" char-insert",N=GJ;break;case ey.Deleted:A="diff-review-row line-delete",o=" char-delete",N=GZ}let I=document.createElement("div");I.style.minWidth=s+"px",I.className=A,I.setAttribute("role","listitem"),I.ariaLevel="";let h=document.createElement("div");h.className="diff-review-cell",h.style.height=`${t}px`,I.appendChild(h);let L=document.createElement("span");L.style.width=S+"px",L.style.minWidth=S+"px",L.className="diff-review-line-number"+o,void 0!==e.originalLineNumber?L.appendChild(document.createTextNode(String(e.originalLineNumber))):L.innerText="\xa0",h.appendChild(L);let C=document.createElement("span");C.style.width=O+"px",C.style.minWidth=O+"px",C.style.paddingRight="10px",C.className="diff-review-line-number"+o,void 0!==e.modifiedLineNumber?C.appendChild(document.createTextNode(String(e.modifiedLineNumber))):C.innerText="\xa0",h.appendChild(C);let l=document.createElement("span");if(l.className="diff-review-spacer",N){let e=document.createElement("span");e.className=Oc.k.asClassName(N),e.innerText="\xa0\xa0",l.appendChild(e)}else l.innerText="\xa0\xa0";if(h.appendChild(l),void 0!==e.modifiedLineNumber){let t=this._getLineHtml(i,r,n.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);Gq._ttPolicy&&(t=Gq._ttPolicy.createHTML(t)),h.insertAdjacentHTML("beforeend",t),_=i.getLineContent(e.modifiedLineNumber)}else{let t=this._getLineHtml(E,x,a.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);Gq._ttPolicy&&(t=Gq._ttPolicy.createHTML(t)),h.insertAdjacentHTML("beforeend",t),_=E.getLineContent(e.originalLineNumber)}0===_.length&&(_=(0,ch.NC)("blankLine","blank"));let u="";switch(e.type){case ey.Unchanged:u=e.originalLineNumber===e.modifiedLineNumber?(0,ch.NC)({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",_,e.originalLineNumber):(0,ch.NC)("equalLine","{0} original line {1} modified line {2}",_,e.originalLineNumber,e.modifiedLineNumber);break;case ey.Added:u=(0,ch.NC)("insertLine","+ {0} modified line {1}",_,e.modifiedLineNumber);break;case ey.Deleted:u=(0,ch.NC)("deleteLine","- {0} original line {1}",_,e.originalLineNumber)}return I.setAttribute("aria-label",u),I}_getLineHtml(e,t,s,x,E){let a=e.getLineContent(x),r=t.get(50),i=NO.A.createEmpty(a,E),n=Mk.isBasicASCII(a,e.mightContainNonBasicASCII()),_=Mk.containsRTL(a,n,e.mightContainRTL());return MH(new MG(r.isMonospace&&!t.get(33),r.canUseHalfwidthRightwardsArrow,a,!1,n,_,0,i,[],s,0,r.spaceWidth,r.middotWidth,r.wsmiddotWidth,t.get(118),t.get(100),t.get(95),t.get(51)!==cb.OFF,null)).html}};G7=GK([GQ(5,NS.O)],G7);class G5{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(){return this.editors.modified.getPosition()??void 0}}(0,AY.P6G)("diffEditor.move.border","#8b8b8b9c",(0,ch.NC)("diffEditor.move.border","The border color for text that got moved in the diff editor.")),(0,AY.P6G)("diffEditor.moveActive.border","#FFA500",(0,ch.NC)("diffEditor.moveActive.border","The active border color for text that got moved in the diff editor.")),(0,AY.P6G)("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},(0,ch.NC)("diffEditor.unchangedRegionShadow","The color of the shadow around unchanged region widgets."));let G4=u1("diff-insert",AK.l.add,(0,ch.NC)("diffInsertIcon","Line decoration for inserts in the diff editor.")),G6=u1("diff-remove",AK.l.remove,(0,ch.NC)("diffRemoveIcon","Line decoration for removals in the diff editor.")),G8=p6.qx.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+Oc.k.asClassName(G4),marginClassName:"gutter-insert"}),G9=p6.qx.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+Oc.k.asClassName(G6),marginClassName:"gutter-delete"}),Be=p6.qx.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),Bt=p6.qx.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),Bs=p6.qx.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),Bx=p6.qx.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),BE=p6.qx.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),Ba=p6.qx.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),Br=p6.qx.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),Bi=p6.qx.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"});var Bn=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},B_=function(e,t){return function(s,x){t(s,x,e)}};let Bc=(0,Oe.yh)("diffProviderFactoryService"),BT=class{constructor(e){this.instantiationService=e}createDiffProvider(e){return this.instantiationService.createInstance(BS,e)}};BT=Bn([B_(0,Oe.TG)],BT),(0,AE.z)(Bc,BT,1);let BS=class{static{eV=this}static{this.diffCache=new Map}constructor(e,t,s){this.editorWorkerService=t,this.telemetryService=s,this.onDidChangeEventEmitter=new T0.Q5,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(e)}dispose(){this.diffAlgorithmOnDidChangeSubscription?.dispose()}async computeDiff(e,t,s,x){if("string"!=typeof this.diffAlgorithm)return this.diffAlgorithm.computeDiff(e,t,s,x);if(e.isDisposed()||t.isDisposed())return{changes:[],identical:!0,quitEarly:!1,moves:[]};if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return 1===t.getLineCount()&&1===t.getLineMaxColumn(1)?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new O0.gB(new O2.z(1,2),new O2.z(1,t.getLineCount()+1),[new O0.iy(e.getFullModelRange(),t.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};let E=JSON.stringify([e.uri.toString(),t.uri.toString()]),a=JSON.stringify([e.id,t.id,e.getAlternativeVersionId(),t.getAlternativeVersionId(),JSON.stringify(s)]),r=eV.diffCache.get(E);if(r&&r.context===a)return r.result;let i=Oq.G.create(),n=await this.editorWorkerService.computeDiff(e.uri,t.uri,s,this.diffAlgorithm),_=i.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:_,timedOut:n?.quitEarly??!0,detectedMoves:s.computeMoves?n?.moves.length??0:-1}),x.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!n)throw Error("no diff result available");return eV.diffCache.size>10&&eV.diffCache.delete(eV.diffCache.keys().next().value),eV.diffCache.set(E,{result:n,context:a}),n}setOptions(e){let t=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&(this.diffAlgorithmOnDidChangeSubscription?.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,"string"!=typeof e.diffAlgorithm&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),t=!0),t&&this.onDidChangeEventEmitter.fire()}};BS=eV=Bn([B_(1,Li.IEditorWorkerService),B_(2,Op)],BS);var BR=x(90943);function BO(){return BR.OB&&!!BR.OB.VSCODE_DEV}function BA(e){if(!BO())return{dispose(){}};{let t=function(){N||(N=new Set);let e=globalThis;return e.$hotReload_applyNewExports||(e.$hotReload_applyNewExports=e=>{let t={config:{mode:void 0},...e},s=[];for(let e of N){let x=e(t);x&&s.push(x)}if(s.length>0)return e=>{let t=!1;for(let x of s)x(e)&&(t=!0);return t}}),N}();return t.add(e),{dispose(){t.delete(e)}}}}function Bo(e,t){var s;return s=[e],BO()&&(0,I0.aq)("reload",e=>BA(({oldExports:t})=>{if([...Object.values(t)].some(e=>s.includes(e)))return t=>(e(void 0),!0)})).read(t),e}BO()&&BA(({oldExports:e,newSrc:t,config:s})=>{if("patch-prototype"===s.mode)return t=>{for(let s in t){let x=t[s];if(console.log(`[hot-reload] Patching prototype methods of '${s}'`,{exportedItem:x}),"function"==typeof x&&x.prototype){let E=e[s];if(E){for(let e of Object.getOwnPropertyNames(x.prototype)){let t=Object.getOwnPropertyDescriptor(x.prototype,e),a=Object.getOwnPropertyDescriptor(E.prototype,e);t?.value?.toString()!==a?.value?.toString()&&console.log(`[hot-reload] Patching prototype method '${s}.${e}'`),Object.defineProperty(E.prototype,e,t)}t[s]=E}}}return!0}});var BN=x(12175),BI=x(25497),Bh=x(42193),BL=x(64728);let BC=class extends TD.JT{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,s){super(),this.model=e,this._options=t,this._diffProviderFactoryService=s,this._isDiffUpToDate=(0,I0.uh)(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=(0,I0.uh)(this,void 0),this.diff=this._diff,this._unchangedRegions=(0,I0.uh)(this,void 0),this.unchangedRegions=(0,I0.nK)(this,e=>this._options.hideUnchangedRegions.read(e)?this._unchangedRegions.read(e)?.regions??[]:((0,I0.PS)(e=>{for(let t of this._unchangedRegions.get()?.regions||[])t.collapseAll(e)}),[])),this.movedTextToCompare=(0,I0.uh)(this,void 0),this._activeMovedText=(0,I0.uh)(this,void 0),this._hoveredMovedText=(0,I0.uh)(this,void 0),this.activeMovedText=(0,I0.nK)(this,e=>this.movedTextToCompare.read(e)??this._hoveredMovedText.read(e)??this._activeMovedText.read(e)),this._cancellationTokenSource=new NH.AU,this._diffProvider=(0,I0.nK)(this,e=>{let t=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(e)}),s=(0,I0.aq)("onDidChange",t.onDidChange);return{diffProvider:t,onChangeSignal:s}}),this._register((0,TD.OF)(()=>this._cancellationTokenSource.cancel()));let x=(0,I0.GN)("contentChangedSignal"),E=this._register(new T$.pY(()=>x.trigger(void 0),200));this._register((0,I0.EH)(t=>{let s=this._unchangedRegions.read(t);if(!s||s.regions.some(e=>e.isDragged.read(t)))return;let x=s.originalDecorationIds.map(t=>e.original.getDecorationRange(t)).map(e=>e?O2.z.fromRangeInclusive(e):void 0),E=s.modifiedDecorationIds.map(t=>e.modified.getDecorationRange(t)).map(e=>e?O2.z.fromRangeInclusive(e):void 0),a=s.regions.map((e,s)=>x[s]&&E[s]?new BD(x[s].startLineNumber,E[s].startLineNumber,x[s].length,e.visibleLineCountTop.read(t),e.visibleLineCountBottom.read(t)):void 0).filter(OR.$K),r=[],i=!1;for(let e of(0,cO.mw)(a,(e,s)=>e.getHiddenModifiedRange(t).endLineNumberExclusive===s.getHiddenModifiedRange(t).startLineNumber))if(e.length>1){i=!0;let t=e.reduce((e,t)=>e+t.lineCount,0),s=new BD(e[0].originalLineNumber,e[0].modifiedLineNumber,t,e[0].visibleLineCountTop.get(),e[e.length-1].visibleLineCountBottom.get());r.push(s)}else r.push(e[0]);if(i){let t=e.original.deltaDecorations(s.originalDecorationIds,r.map(e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),x=e.modified.deltaDecorations(s.modifiedDecorationIds,r.map(e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));(0,I0.PS)(e=>{this._unchangedRegions.set({regions:r,originalDecorationIds:t,modifiedDecorationIds:x},e)})}}));let a=(t,s,x)=>{let E;let a=BD.fromDiffs(t.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(x),this._options.hideUnchangedRegionsContextLineCount.read(x)),r=this._unchangedRegions.get();if(r){let t=r.originalDecorationIds.map(t=>e.original.getDecorationRange(t)).map(e=>e?O2.z.fromRangeInclusive(e):void 0),s=r.modifiedDecorationIds.map(t=>e.modified.getDecorationRange(t)).map(e=>e?O2.z.fromRangeInclusive(e):void 0),a=(function(e,t){let s;return e.filter(e=>{let x=t(e,s);return s=e,x})})(r.regions.map((e,x)=>{if(!t[x]||!s[x])return;let E=t[x].length;return new BD(t[x].startLineNumber,s[x].startLineNumber,E,Math.min(e.visibleLineCountTop.get(),E),Math.min(e.visibleLineCountBottom.get(),E-e.visibleLineCountTop.get()))}).filter(OR.$K),(e,t)=>!t||e.modifiedLineNumber>=t.modifiedLineNumber+t.lineCount&&e.originalLineNumber>=t.originalLineNumber+t.lineCount).map(e=>new O0.f0(e.getHiddenOriginalRange(x),e.getHiddenModifiedRange(x)));a=O0.f0.clip(a,O2.z.ofLength(1,e.original.getLineCount()),O2.z.ofLength(1,e.modified.getLineCount())),E=O0.f0.inverse(a,e.original.getLineCount(),e.modified.getLineCount())}let i=[];if(E)for(let e of a){let t=E.filter(t=>t.original.intersectsStrict(e.originalUnchangedRange)&&t.modified.intersectsStrict(e.modifiedUnchangedRange));i.push(...e.setVisibleRanges(t,s))}else i.push(...a);let n=e.original.deltaDecorations(r?.originalDecorationIds||[],i.map(e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),_=e.modified.deltaDecorations(r?.modifiedDecorationIds||[],i.map(e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:i,originalDecorationIds:n,modifiedDecorationIds:_},s)};this._register(e.modified.onDidChangeContent(t=>{if(this._diff.get()){let s=BI.Q.fromModelContentChanges(t.changes),x=BP(this._lastDiff,s,e.original,e.modified);x&&(this._lastDiff=x,(0,I0.PS)(e=>{this._diff.set(Bl.fromDiffResult(this._lastDiff),e),a(x,e);let t=this.movedTextToCompare.get();this.movedTextToCompare.set(t?this._lastDiff.moves.find(e=>e.lineRangeMapping.modified.intersect(t.lineRangeMapping.modified)):void 0,e)}))}this._isDiffUpToDate.set(!1,void 0),E.schedule()})),this._register(e.original.onDidChangeContent(t=>{if(this._diff.get()){let s=BI.Q.fromModelContentChanges(t.changes),x=BM(this._lastDiff,s,e.original,e.modified);x&&(this._lastDiff=x,(0,I0.PS)(e=>{this._diff.set(Bl.fromDiffResult(this._lastDiff),e),a(x,e);let t=this.movedTextToCompare.get();this.movedTextToCompare.set(t?this._lastDiff.moves.find(e=>e.lineRangeMapping.modified.intersect(t.lineRangeMapping.modified)):void 0,e)}))}this._isDiffUpToDate.set(!1,void 0),E.schedule()})),this._register((0,I0.gp)(async(t,s)=>{this._options.hideUnchangedRegionsMinimumLineCount.read(t),this._options.hideUnchangedRegionsContextLineCount.read(t),E.cancel(),x.read(t);let r=this._diffProvider.read(t);r.onChangeSignal.read(t),Bo(BN.DW,t),Bo(BL.xG,t),this._isDiffUpToDate.set(!1,void 0);let i=[];s.add(e.original.onDidChangeContent(e=>{let t=BI.Q.fromModelContentChanges(e.changes);i=(0,Bh.o)(i,t)}));let n=[];s.add(e.modified.onDidChangeContent(e=>{let t=BI.Q.fromModelContentChanges(e.changes);n=(0,Bh.o)(n,t)}));let _=await r.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(t),maxComputationTimeMs:this._options.maxComputationTimeMs.read(t),computeMoves:this._options.showMoves.read(t)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||e.original.isDisposed()||e.modified.isDisposed()||(_=BP(_=BM(_=function(e,t,s){return{changes:e.changes.map(e=>new O0.gB(e.original,e.modified,e.innerChanges?e.innerChanges.map(e=>{let x,E;return x=e.originalRange,E=e.modifiedRange,1===x.startColumn&&1===E.startColumn&&(1!==x.endColumn||1!==E.endColumn)&&x.endColumn===t.getLineMaxColumn(x.endLineNumber)&&E.endColumn===s.getLineMaxColumn(E.endLineNumber)&&x.endLineNumber<t.getLineCount()&&E.endLineNumber<s.getLineCount()&&(x=x.setEndPosition(x.endLineNumber+1,1),E=E.setEndPosition(E.endLineNumber+1,1)),new O0.iy(x,E)}):void 0)),moves:e.moves,identical:e.identical,quitEarly:e.quitEarly}}(_,e.original,e.modified),i,e.original,e.modified)??_,n,e.original,e.modified)??_,(0,I0.PS)(e=>{a(_,e),this._lastDiff=_;let t=Bl.fromDiffResult(_);this._diff.set(t,e),this._isDiffUpToDate.set(!0,e);let s=this.movedTextToCompare.get();this.movedTextToCompare.set(s?this._lastDiff.moves.find(e=>e.lineRangeMapping.modified.intersect(s.lineRangeMapping.modified)):void 0,e)}))}))}ensureModifiedLineIsVisible(e,t,s){if(this.diff.get()?.mappings.length!==0){for(let x of this._unchangedRegions.get()?.regions||[])if(x.getHiddenModifiedRange(void 0).contains(e)){x.showModifiedLine(e,t,s);return}}}ensureOriginalLineIsVisible(e,t,s){if(this.diff.get()?.mappings.length!==0){for(let x of this._unchangedRegions.get()?.regions||[])if(x.getHiddenOriginalRange(void 0).contains(e)){x.showOriginalLine(e,t,s);return}}}async waitForDiff(){await (0,I0.F_)(this.isDiffUpToDate,e=>e)}serializeState(){let e=this._unchangedRegions.get();return{collapsedRegions:e?.regions.map(e=>({range:e.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(e){let t=e.collapsedRegions?.map(e=>O2.z.deserialize(e.range)),s=this._unchangedRegions.get();s&&t&&(0,I0.PS)(e=>{for(let x of s.regions)for(let s of t)if(x.modifiedUnchangedRange.intersect(s)){x.setHiddenModifiedRange(s,e);break}})}};BC=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([function(e,t){Bc(e,t,2)}],BC);class Bl{static fromDiffResult(e){return new Bl(e.changes.map(e=>new Bu(e)),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,s,x){this.mappings=e,this.movedTexts=t,this.identical=s,this.quitEarly=x}}class Bu{constructor(e){this.lineRangeMapping=e}}class BD{static fromDiffs(e,t,s,x,E){let a=O0.gB.inverse(e,t,s),r=[];for(let e of a){let a=e.original.startLineNumber,i=e.modified.startLineNumber,n=e.original.length,_=1===a&&1===i,T=a+n===t+1&&i+n===s+1;(_||T)&&n>=E+x?(_&&!T&&(n-=E),T&&!_&&(a+=E,i+=E,n-=E),r.push(new BD(a,i,n,0,0))):n>=2*E+x&&(a+=E,i+=E,n-=2*E,r.push(new BD(a,i,n,0,0)))}return r}get originalUnchangedRange(){return O2.z.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return O2.z.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,s,x,E){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=s,this._visibleLineCountTop=(0,I0.uh)(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=(0,I0.uh)(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=(0,I0.nK)(this,e=>this.visibleLineCountTop.read(e)+this.visibleLineCountBottom.read(e)===this.lineCount&&!this.isDragged.read(e)),this.isDragged=(0,I0.uh)(this,void 0);let a=Math.max(Math.min(x,this.lineCount),0),r=Math.max(Math.min(E,this.lineCount-x),0);(0,pz.wN)(x===a),(0,pz.wN)(E===r),this._visibleLineCountTop.set(a,void 0),this._visibleLineCountBottom.set(r,void 0)}setVisibleRanges(e,t){let s=[],x=new O2.i(e.map(e=>e.modified)).subtractFrom(this.modifiedUnchangedRange),E=this.originalLineNumber,a=this.modifiedLineNumber,r=this.modifiedLineNumber+this.lineCount;if(0===x.ranges.length)this.showAll(t),s.push(this);else{let e=0;for(let i of x.ranges){let n=e===x.ranges.length-1;e++;let _=(n?r:i.endLineNumberExclusive)-a,T=new BD(E,a,_,0,0);T.setHiddenModifiedRange(i,t),s.push(T),E=T.originalUnchangedRange.endLineNumberExclusive,a=T.modifiedUnchangedRange.endLineNumberExclusive}}return s}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return O2.z.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return O2.z.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){let s=e.startLineNumber-this.modifiedLineNumber,x=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(s,x,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(e=10,t){let s=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,s),t)}showMoreBelow(e=10,t){let s=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,s),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t,s){let x=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),E=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;0===t&&x<E||1===t?this._visibleLineCountTop.set(this._visibleLineCountTop.get()+x,s):this._visibleLineCountBottom.set(this._visibleLineCountBottom.get()+E,s)}showOriginalLine(e,t,s){let x=e-this.originalLineNumber,E=this.originalLineNumber+this.lineCount-e;0===t&&x<E||1===t?this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+E-x,this.getMaxVisibleLineCountTop()),s):this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+x-E,this.getMaxVisibleLineCountBottom()),s)}collapseAll(e){this._visibleLineCountTop.set(0,e),this._visibleLineCountBottom.set(0,e)}setState(e,t,s){e=Math.max(Math.min(e,this.lineCount),0),t=Math.max(Math.min(t,this.lineCount-e),0),this._visibleLineCountTop.set(e,s),this._visibleLineCountBottom.set(t,s)}}function BM(e,t,s,x){}function BP(e,t,s,x){}class Bd extends TD.JT{get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}constructor(e,t,s,x,E,a,r,i,n){super(),this._getViewZoneId=e,this._marginDomNode=t,this._modifiedEditor=s,this._diff=x,this._editor=E,this._viewLineCounts=a,this._originalTextModel=r,this._contextMenuService=i,this._clipboardService=n,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=Oc.k.asClassName(AK.l.lightBulb)+" lightbulb-glyph",this._diffActions.style.position="absolute";let _=this._modifiedEditor.getOption(67);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${_}px`,this._diffActions.style.lineHeight=`${_}px`,this._marginDomNode.appendChild(this._diffActions);let T=0,S=s.getOption(128)&&!co.gn,R=(e,t)=>{this._contextMenuService.showContextMenu({domForShadowRoot:S?s.getDomNode()??void 0:void 0,getAnchor:()=>({x:e,y:t}),getActions:()=>{let e=[],t=x.modified.isEmpty;return e.push(new OE("diff.clipboard.copyDeletedContent",t?x.original.length>1?(0,ch.NC)("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):(0,ch.NC)("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):x.original.length>1?(0,ch.NC)("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):(0,ch.NC)("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,async()=>{let e=this._originalTextModel.getValueInRange(x.original.toExclusiveRange());await this._clipboardService.writeText(e)})),x.original.length>1&&e.push(new OE("diff.clipboard.copyDeletedLineContent",t?(0,ch.NC)("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",x.original.startLineNumber+T):(0,ch.NC)("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",x.original.startLineNumber+T),void 0,!0,async()=>{let e=this._originalTextModel.getLineContent(x.original.startLineNumber+T);""===e&&(e=0===this._originalTextModel.getEndOfLineSequence()?"\n":"\r\n"),await this._clipboardService.writeText(e)})),s.getOption(92)||e.push(new OE("diff.inline.revertChange",(0,ch.NC)("diff.inline.revertChange.label","Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),e},autoSelectFirstItem:!0})};this._register(S5(this._diffActions,"mousedown",e=>{if(!e.leftButton)return;let{top:t,height:s}=Rx(this._diffActions),x=Math.floor(_/3);e.preventDefault(),R(e.posx,t+s+x)})),this._register(s.onMouseMove(e=>{(8===e.target.type||5===e.target.type)&&e.target.detail.viewZoneId===this._getViewZoneId()?(T=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,_),this.visibility=!0):this.visibility=!1})),this._register(s.onMouseDown(e=>{e.event.leftButton&&(8===e.target.type||5===e.target.type)&&e.target.detail.viewZoneId===this._getViewZoneId()&&(e.event.preventDefault(),T=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,_),R(e.event.posx,e.event.posy+_))}))}_updateLightBulbPosition(e,t,s){let{top:x}=Rx(e),E=Math.floor((t-x)/s);if(this._diffActions.style.top=`${E*s}px`,this._viewLineCounts){let e=0;for(let t=0;t<this._viewLineCounts.length;t++)if(E<(e+=this._viewLineCounts[t]))return t}return E}}let BU=Ok("diffEditorWidget",{createHTML:e=>e});class Bp{constructor(e,t,s,x){this.lineTokens=e,this.lineBreakData=t,this.mightContainNonBasicASCII=s,this.mightContainRTL=x}}class BY{static fromEditor(e){let t=e.getOptions(),s=t.get(50),x=t.get(146);return new BY(e.getModel()?.getOptions().tabSize||0,s,t.get(33),s.typicalHalfwidthCharacterWidth,t.get(105),t.get(67),x.decorationsWidth,t.get(118),t.get(100),t.get(95),t.get(51))}constructor(e,t,s,x,E,a,r,i,n,_,T){this.tabSize=e,this.fontInfo=t,this.disableMonospaceOptimizations=s,this.typicalHalfwidthCharacterWidth=x,this.scrollBeyondLastColumn=E,this.lineHeight=a,this.lineDecorationsWidth=r,this.stopRenderingLineAfter=i,this.renderWhitespace=n,this.renderControlCharacters=_,this.fontLigatures=T}}function BG(e,t,s,x,E,a,r,i){i.appendString('<div class="view-line'),x||i.appendString(" char-delete"),i.appendString('" style="top:'),i.appendString(String(e*r.lineHeight)),i.appendString('px;width:1000000px;">');let n=t.getLineContent(),_=Mk.isBasicASCII(n,E),T=Mk.containsRTL(n,_,a),S=Mg(new MG(r.fontInfo.isMonospace&&!r.disableMonospaceOptimizations,r.fontInfo.canUseHalfwidthRightwardsArrow,n,!1,_,T,0,t,s,r.tabSize,0,r.fontInfo.spaceWidth,r.fontInfo.middotWidth,r.fontInfo.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==cb.OFF,null),i);return i.appendString("</div>"),S.characterMapping.getHorizontalOffset(S.characterMapping.length)}var BB=function(e,t){return function(s,x){t(s,x,e)}};let Bm=class extends TD.JT{constructor(e,t,s,x,E,a,r,i,n,_){super(),this._targetWindow=e,this._editors=t,this._diffModel=s,this._options=x,this._diffEditorWidget=E,this._canIgnoreViewZoneUpdateEvent=a,this._origViewZonesToIgnore=r,this._modViewZonesToIgnore=i,this._clipboardService=n,this._contextMenuService=_,this._originalTopPadding=(0,I0.uh)(this,0),this._originalScrollOffset=(0,I0.uh)(this,0),this._originalScrollOffsetAnimated=Gg(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=(0,I0.uh)(this,0),this._modifiedScrollOffset=(0,I0.uh)(this,0),this._modifiedScrollOffsetAnimated=Gg(this._targetWindow,this._modifiedScrollOffset,this._store);let T=(0,I0.uh)("invalidateAlignmentsState",0),S=this._register(new T$.pY(()=>{T.set(T.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(e=>{this._canIgnoreViewZoneUpdateEvent()||S.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(e=>{this._canIgnoreViewZoneUpdateEvent()||S.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(e=>{(e.hasChanged(147)||e.hasChanged(67))&&S.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(e=>{(e.hasChanged(147)||e.hasChanged(67))&&S.schedule()}));let R=this._diffModel.map(e=>e?(0,I0.rD)(this,e.model.original.onDidChangeTokens,()=>2===e.model.original.tokenization.backgroundTokenizationState):void 0).map((e,t)=>e?.read(t)),O=(0,I0.nK)(e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);if(!t||!s)return null;T.read(e);let x=this._options.renderSideBySide.read(e);return Bf(this._editors.original,this._editors.modified,s.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,x)}),A=(0,I0.nK)(e=>{let t=this._diffModel.read(e)?.movedTextToCompare.read(e);if(!t)return null;T.read(e);let s=t.changes.map(e=>new Bu(e));return Bf(this._editors.original,this._editors.modified,s,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function o(){let e=document.createElement("div");return e.className="diagonal-fill",e}let N=this._register(new TD.SL);this.viewZones=(0,I0.Be)(this,(e,t)=>{N.clear();let s=O.read(e)||[],x=[],a=[],r=this._modifiedTopPadding.read(e);r>0&&a.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:r,showInHiddenAreas:!0,suppressMouseDown:!0});let i=this._originalTopPadding.read(e);i>0&&x.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:i,showInHiddenAreas:!0,suppressMouseDown:!0});let n=this._options.renderSideBySide.read(e),_=n?void 0:this._editors.modified._getViewModel()?.createLineBreaksComputer();if(_){let e=this._editors.original.getModel();for(let t of s)if(t.diff)for(let s=t.originalRange.startLineNumber;s<t.originalRange.endLineNumberExclusive;s++){if(s>e.getLineCount())return{orig:x,mod:a};_?.addRequest(e.getLineContent(s),null,null)}}let T=_?.finalize()??[],S=0,I=this._editors.modified.getOption(67),h=this._diffModel.read(e)?.movedTextToCompare.read(e),L=this._editors.original.getModel()?.mightContainNonBasicASCII()??!1,C=this._editors.original.getModel()?.mightContainRTL()??!1,l=BY.fromEditor(this._editors.modified);for(let r of s)if(!r.diff||n||this._options.useTrueInlineDiffRendering.read(e)&&BF(r.diff)){let s=r.modifiedHeightInPx-r.originalHeightInPx;if(s>0){if(h?.lineRangeMapping.original.delta(-1).deltaLength(2).contains(r.originalRange.endLineNumberExclusive-1))continue;x.push({afterLineNumber:r.originalRange.endLineNumberExclusive-1,domNode:o(),heightInPx:s,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let x;if(h?.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(r.modifiedRange.endLineNumberExclusive-1))continue;r.diff&&r.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(e)&&(x=function(){let e=document.createElement("div");return e.className="arrow-revert-change "+Oc.k.asClassName(AK.l.arrowRight),t.add(S7(e,"mousedown",e=>e.stopPropagation())),t.add(S7(e,"click",e=>{e.stopPropagation(),E.revert(r.diff)})),Rm("div",{},e)}()),a.push({afterLineNumber:r.modifiedRange.endLineNumberExclusive-1,domNode:o(),heightInPx:-s,marginDomNode:x,showInHiddenAreas:!0,suppressMouseDown:!0})}}else{if(!r.originalRange.isEmpty){let t;R.read(e);let s=document.createElement("div");s.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");let E=this._editors.original.getModel();if(r.originalRange.endLineNumberExclusive-1>E.getLineCount())return{orig:x,mod:a};let i=new Bp(r.originalRange.mapToLineArray(e=>E.tokenization.getLineTokens(e)),r.originalRange.mapToLineArray(e=>T[S++]),L,C),n=[];for(let e of r.diff.innerChanges||[])n.push(new Mw(e.originalRange.delta(-(r.diff.original.startLineNumber-1)),Ba.className,0));let _=function(e,t,s,x){R0(x,t.fontInfo);let E=s.length>0,a=new MD.HT(1e4),r=0,i=0,n=[];for(let x=0;x<e.lineTokens.length;x++){let _=x+1,T=e.lineTokens[x],S=e.lineBreakData[x],R=MM.filter(s,_,1,Number.MAX_SAFE_INTEGER);if(S){let s=0;for(let x of S.breakOffsets)r=Math.max(r,BG(i,T.sliceAndInflate(s,x,0),MM.extractWrapped(R,s,x),E,e.mightContainNonBasicASCII,e.mightContainRTL,t,a)),i++,s=x;n.push(S.breakOffsets.length)}else n.push(1),r=Math.max(r,BG(i,T,R,E,e.mightContainNonBasicASCII,e.mightContainRTL,t,a)),i++}r+=t.scrollBeyondLastColumn;let _=a.build(),T=BU?BU.createHTML(_):_;return x.innerHTML=T,{heightInLines:i,minWidthInPx:r*t.typicalHalfwidthCharacterWidth,viewLineCounts:n}}(i,l,n,s),O=document.createElement("div");if(O.className="inline-deleted-margin-view-zone",R0(O,l.fontInfo),this._options.renderIndicators.read(e))for(let e=0;e<_.heightInLines;e++){let t=document.createElement("div");t.className=`delete-sign ${Oc.k.asClassName(G6)}`,t.setAttribute("style",`position:absolute;top:${e*I}px;width:${l.lineDecorationsWidth}px;height:${I}px;right:0;`),O.appendChild(t)}N.add(new Bd(()=>(0,OR.cW)(t),O,this._editors.modified,r.diff,this._diffEditorWidget,_.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let e=0;e<_.viewLineCounts.length;e++){let t=_.viewLineCounts[e];t>1&&x.push({afterLineNumber:r.originalRange.startLineNumber+e,domNode:o(),heightInPx:(t-1)*I,showInHiddenAreas:!0,suppressMouseDown:!0})}a.push({afterLineNumber:r.modifiedRange.startLineNumber-1,domNode:s,heightInPx:_.heightInLines*I,minWidthInPx:_.minWidthInPx,marginDomNode:O,setZoneId(e){t=e},showInHiddenAreas:!0,suppressMouseDown:!0})}let t=document.createElement("div");t.className="gutter-delete",x.push({afterLineNumber:r.originalRange.endLineNumberExclusive-1,domNode:o(),heightInPx:r.modifiedHeightInPx,marginDomNode:t,showInHiddenAreas:!0,suppressMouseDown:!0})}for(let t of A.read(e)??[]){if(!h?.lineRangeMapping.original.intersect(t.originalRange)||!h?.lineRangeMapping.modified.intersect(t.modifiedRange))continue;let e=t.modifiedHeightInPx-t.originalHeightInPx;e>0?x.push({afterLineNumber:t.originalRange.endLineNumberExclusive-1,domNode:o(),heightInPx:e,showInHiddenAreas:!0,suppressMouseDown:!0}):a.push({afterLineNumber:t.modifiedRange.endLineNumberExclusive-1,domNode:o(),heightInPx:-e,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:x,mod:a}});let I=!1;this._register(this._editors.original.onDidScrollChange(e=>{e.scrollLeftChanged&&!I&&(I=!0,this._editors.modified.setScrollLeft(e.scrollLeft),I=!1)})),this._register(this._editors.modified.onDidScrollChange(e=>{e.scrollLeftChanged&&!I&&(I=!0,this._editors.original.setScrollLeft(e.scrollLeft),I=!1)})),this._originalScrollTop=(0,I0.rD)(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,I0.rD)(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register((0,I0.EH)(e=>{let t=this._originalScrollTop.read(e)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(e))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(e));t!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(t,1)})),this._register((0,I0.EH)(e=>{let t=this._modifiedScrollTop.read(e)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(e))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(e));t!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(t,1)})),this._register((0,I0.EH)(e=>{let t=this._diffModel.read(e)?.movedTextToCompare.read(e),s=0;if(t){let e=this._editors.original.getTopForLineNumber(t.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();s=this._editors.modified.getTopForLineNumber(t.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-e}s>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(s,void 0)):s<0?(this._modifiedTopPadding.set(-s,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-s,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+s,void 0,!0)}))}};function Bf(e,t,s,x,E,a){let r=new cO.H9(Bg(e,x)),i=new cO.H9(Bg(t,E)),n=e.getOption(67),_=t.getOption(67),T=[],S=0,R=0;function O(e,t){for(;;){let s=r.peek(),x=i.peek();if(s&&s.lineNumber>=e&&(s=void 0),x&&x.lineNumber>=t&&(x=void 0),!s&&!x)break;let E=s?s.lineNumber-S:Number.MAX_VALUE,a=x?x.lineNumber-R:Number.MAX_VALUE;E<a?(r.dequeue(),x={lineNumber:s.lineNumber-S+R,heightInPx:0}):E>a?(i.dequeue(),s={lineNumber:x.lineNumber-R+S,heightInPx:0}):(r.dequeue(),i.dequeue()),T.push({originalRange:O2.z.ofLength(s.lineNumber,1),modifiedRange:O2.z.ofLength(x.lineNumber,1),originalHeightInPx:n+s.heightInPx,modifiedHeightInPx:_+x.heightInPx,diff:void 0})}}for(let t of s){let s=t.lineRangeMapping;O(s.original.startLineNumber,s.modified.startLineNumber);let x=!0,E=s.modified.startLineNumber,o=s.original.startLineNumber;function A(e,s,a=!1){if(e<o||s<E)return;if(x)x=!1;else if(!a&&(e===o||s===E))return;let S=new O2.z(o,e),R=new O2.z(E,s);if(S.isEmpty&&R.isEmpty)return;let O=r.takeWhile(t=>t.lineNumber<e)?.reduce((e,t)=>e+t.heightInPx,0)??0,A=i.takeWhile(e=>e.lineNumber<s)?.reduce((e,t)=>e+t.heightInPx,0)??0;T.push({originalRange:S,modifiedRange:R,originalHeightInPx:S.length*n+O,modifiedHeightInPx:R.length*_+A,diff:t.lineRangeMapping}),o=e,E=s}if(a)for(let t of s.innerChanges||[]){t.originalRange.startColumn>1&&t.modifiedRange.startColumn>1&&A(t.originalRange.startLineNumber,t.modifiedRange.startLineNumber);let s=e.getModel(),x=t.originalRange.endLineNumber<=s.getLineCount()?s.getLineMaxColumn(t.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;t.originalRange.endColumn<x&&A(t.originalRange.endLineNumber,t.modifiedRange.endLineNumber)}A(s.original.endLineNumberExclusive,s.modified.endLineNumberExclusive,!0),S=s.original.endLineNumberExclusive,R=s.modified.endLineNumberExclusive}return O(Number.MAX_VALUE,Number.MAX_VALUE),T}function Bg(e,t){let s=[],x=[],E=-1!==e.getOption(147).wrappingColumn,a=e._getViewModel().coordinatesConverter,r=e.getOption(67);if(E)for(let t=1;t<=e.getModel().getLineCount();t++){let e=a.getModelLineViewLineCount(t);e>1&&x.push({lineNumber:t,heightInPx:r*(e-1)})}for(let x of e.getWhitespaces()){if(t.has(x.id))continue;let e=0===x.afterLineNumber?0:a.convertViewPositionToModelPosition(new N0.L(x.afterLineNumber,1)).lineNumber;s.push({lineNumber:e,heightInPx:x.height})}return function(e,t,s,x){if(0===e.length)return t;if(0===t.length)return e;let E=[],a=0,r=0;for(;a<e.length&&r<t.length;){let i=e[a],n=t[r],_=s(i),T=s(n);_<T?(E.push(i),a++):(_>T?E.push(n):(E.push(x(i,n)),a++),r++)}for(;a<e.length;)E.push(e[a]),a++;for(;r<t.length;)E.push(t[r]),r++;return E}(s,x,e=>e.lineNumber,(e,t)=>({lineNumber:e.lineNumber,heightInPx:e.heightInPx+t.heightInPx}))}function BF(e){return!!e.innerChanges&&e.innerChanges.every(e=>BH(e.modifiedRange)&&BH(e.originalRange)||e.originalRange.equalsRange(new OQ.e(1,1,1,1)))}function BH(e){return e.startLineNumber===e.endLineNumber}Bm=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([BB(8,DC),BB(9,AF)],Bm);class By extends TD.JT{static{this.movedCodeBlockPadding=4}constructor(e,t,s,x,E){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=s,this._modifiedEditorLayoutInfo=x,this._editors=E,this._originalScrollTop=(0,I0.rD)(this,this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,I0.rD)(this,this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=(0,I0.aq)("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=(0,I0.uh)(this,0),this._modifiedViewZonesChangedSignal=(0,I0.aq)("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=(0,I0.aq)("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=(0,I0.Be)(this,(e,t)=>{this._element.replaceChildren();let s=this._diffModel.read(e),x=s?.diff.read(e)?.movedTexts;if(!x||0===x.length){this.width.set(0,void 0);return}this._viewZonesChanged.read(e);let E=this._originalEditorLayoutInfo.read(e),a=this._modifiedEditorLayoutInfo.read(e);if(!E||!a){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(e),this._originalViewZonesChangedSignal.read(e);let r=x.map(t=>{function s(e,t){return(t.getTopForLineNumber(e.startLineNumber,!0)+t.getTopForLineNumber(e.endLineNumberExclusive,!0))/2}let x=s(t.lineRangeMapping.original,this._editors.original),E=this._originalScrollTop.read(e),a=s(t.lineRangeMapping.modified,this._editors.modified),r=this._modifiedScrollTop.read(e),i=x-E,n=a-r,_=Math.min(x,a),T=Math.max(x,a);return{range:new GW.q(_,T),from:i,to:n,fromWithoutScroll:x,toWithoutScroll:a,move:t}});r.sort((0,cO.f_)((0,cO.tT)(e=>e.fromWithoutScroll>e.toWithoutScroll,cO.nW),(0,cO.tT)(e=>e.fromWithoutScroll>e.toWithoutScroll?e.fromWithoutScroll:-e.toWithoutScroll,cO.fv)));let i=BV.compute(r.map(e=>e.range)),n=E.verticalScrollbarWidth,_=(i.getTrackCount()-1)*10+20,T=n+_+(a.contentLeft-By.movedCodeBlockPadding),S=0;for(let e of r){let x=n+10+10*i.getTrack(S),E=a.glyphMarginWidth+a.lineNumbersWidth,r=document.createElementNS("http://www.w3.org/2000/svg","rect");r.classList.add("arrow-rectangle"),r.setAttribute("x",`${T-E}`),r.setAttribute("y",`${e.to-9}`),r.setAttribute("width",`${E}`),r.setAttribute("height","18"),this._element.appendChild(r);let _=document.createElementNS("http://www.w3.org/2000/svg","g"),R=document.createElementNS("http://www.w3.org/2000/svg","path");R.setAttribute("d",`M 0 ${e.from} L ${x} ${e.from} L ${x} ${e.to} L ${T-15} ${e.to}`),R.setAttribute("fill","none"),_.appendChild(R);let O=document.createElementNS("http://www.w3.org/2000/svg","polygon");O.classList.add("arrow"),t.add((0,I0.EH)(t=>{R.classList.toggle("currentMove",e.move===s.activeMovedText.read(t)),O.classList.toggle("currentMove",e.move===s.activeMovedText.read(t))})),O.setAttribute("points",`${T-15},${e.to-7.5} ${T},${e.to} ${T-15},${e.to+7.5}`),_.appendChild(O),this._element.appendChild(_),S++}this.width.set(_,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register((0,TD.OF)(()=>this._element.remove())),this._register((0,I0.EH)(e=>{let t=this._originalEditorLayoutInfo.read(e),s=this._modifiedEditorLayoutInfo.read(e);t&&s&&(this._element.style.left=`${t.width-t.verticalScrollbarWidth}px`,this._element.style.height=`${t.height}px`,this._element.style.width=`${t.verticalScrollbarWidth+t.contentLeft-By.movedCodeBlockPadding+this.width.read(e)}px`)})),this._register((0,I0.jx)(this._state));let a=(0,I0.nK)(e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);return s?s.movedTexts.map(e=>({move:e,original:new GH((0,I0.Dz)(e.lineRangeMapping.original.startLineNumber-1),18),modified:new GH((0,I0.Dz)(e.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(GX(this._editors.original,a.map(e=>e.map(e=>e.original)))),this._register(GX(this._editors.modified,a.map(e=>e.map(e=>e.modified)))),this._register((0,I0.gp)((e,t)=>{for(let s of a.read(e))t.add(new BX(this._editors.original,s.original,s.move,"original",this._diffModel.get())),t.add(new BX(this._editors.modified,s.modified,s.move,"modified",this._diffModel.get()))}));let r=(0,I0.aq)("original.onDidFocusEditorWidget",e=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>e(void 0),0))),i=(0,I0.aq)("modified.onDidFocusEditorWidget",e=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>e(void 0),0))),n="modified";this._register((0,I0.nJ)({createEmptyChangeSummary:()=>void 0,handleChange:(e,t)=>(e.didChange(r)&&(n="original"),e.didChange(i)&&(n="modified"),!0)},e=>{let t;r.read(e),i.read(e);let s=this._diffModel.read(e);if(!s)return;let x=s.diff.read(e);if(x&&"original"===n){let s=this._editors.originalCursor.read(e);s&&(t=x.movedTexts.find(e=>e.lineRangeMapping.original.contains(s.lineNumber)))}if(x&&"modified"===n){let s=this._editors.modifiedCursor.read(e);s&&(t=x.movedTexts.find(e=>e.lineRangeMapping.modified.contains(s.lineNumber)))}t!==s.movedTextToCompare.get()&&s.movedTextToCompare.set(void 0,void 0),s.setActiveMovedText(t)}))}}class BV{static compute(e){let t=[],s=[];for(let x of e){let e=t.findIndex(e=>!e.intersectsStrict(x));-1===e&&(t.length>=6?e=(0,Yr.Y0)(t,(0,cO.tT)(e=>e.intersectWithRangeLength(x),cO.fv)):(e=t.length,t.push(new GW.M))),t[e].addRange(x),s.push(e)}return new BV(t.length,s)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class BX extends GF{constructor(e,t,s,x,E){let a;let r=RW("div.diff-hidden-lines-widget");super(e,t,r.root),this._editor=e,this._move=s,this._kind=x,this._diffModel=E,this._nodes=RW("div.diff-moved-code-block",{style:{marginRight:"4px"}},[RW("div.text-content@textContent"),RW("div.action-bar@actionBar")]),r.root.appendChild(this._nodes.root);let i=(0,I0.rD)(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(GV(this._nodes.root,{paddingRight:i.map(e=>e.verticalScrollbarWidth)})),a=s.changes.length>0?"original"===this._kind?(0,ch.NC)("codeMovedToWithChanges","Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,ch.NC)("codeMovedFromWithChanges","Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):"original"===this._kind?(0,ch.NC)("codeMovedTo","Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,ch.NC)("codeMovedFrom","Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);let n=this._register(new h0(this._nodes.actionBar,{highlightToggledItems:!0})),_=new OE("",a,"",!1);n.push(_,{icon:!1,label:!0});let T=new OE("","Compare",Oc.k.asClassName(AK.l.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===s?void 0:this._move,void 0)});this._register((0,I0.EH)(e=>{let t=this._diffModel.movedTextToCompare.read(e)===s;T.checked=t})),n.push(T,{icon:!1,label:!0})}}class Bb extends TD.JT{constructor(e,t,s,x){super(),this._editors=e,this._diffModel=t,this._options=s,this._decorations=(0,I0.nK)(this,e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);if(!s)return null;let x=this._diffModel.read(e).movedTextToCompare.read(e),E=this._options.renderIndicators.read(e),a=this._options.showEmptyDecorations.read(e),r=[],i=[];if(!x)for(let x of s.mappings)if(x.lineRangeMapping.original.isEmpty||r.push({range:x.lineRangeMapping.original.toInclusiveRange(),options:E?G9:Bt}),x.lineRangeMapping.modified.isEmpty||i.push({range:x.lineRangeMapping.modified.toInclusiveRange(),options:E?G8:Be}),x.lineRangeMapping.modified.isEmpty||x.lineRangeMapping.original.isEmpty)x.lineRangeMapping.original.isEmpty||r.push({range:x.lineRangeMapping.original.toInclusiveRange(),options:Br}),x.lineRangeMapping.modified.isEmpty||i.push({range:x.lineRangeMapping.modified.toInclusiveRange(),options:Bx});else{let s=this._options.useTrueInlineDiffRendering.read(e)&&BF(x.lineRangeMapping);for(let e of x.lineRangeMapping.innerChanges||[])if(x.lineRangeMapping.original.contains(e.originalRange.startLineNumber)&&r.push({range:e.originalRange,options:e.originalRange.isEmpty()&&a?Bi:Ba}),x.lineRangeMapping.modified.contains(e.modifiedRange.startLineNumber)&&i.push({range:e.modifiedRange,options:e.modifiedRange.isEmpty()&&a&&!s?BE:Bs}),s){let s=t.model.original.getValueInRange(e.originalRange);i.push({range:e.modifiedRange,options:{description:"deleted-text",before:{content:s,inlineClassName:"inline-deleted-text"},zIndex:1e5,showIfCollapsed:!0}})}}if(x)for(let e of x.changes){let t=e.original.toInclusiveRange();t&&r.push({range:t,options:E?G9:Bt});let s=e.modified.toInclusiveRange();for(let t of(s&&i.push({range:s,options:E?G8:Be}),e.innerChanges||[]))r.push({range:t.originalRange,options:Ba}),i.push({range:t.modifiedRange,options:Bs})}let n=this._diffModel.read(e).activeMovedText.read(e);for(let e of s.movedTexts)r.push({range:e.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(e===n?" currentMove":""),blockPadding:[By.movedCodeBlockPadding,0,By.movedCodeBlockPadding,By.movedCodeBlockPadding]}}),i.push({range:e.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(e===n?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:r,modifiedDecorations:i}}),this._register(GB(this._editors.original,this._decorations.map(e=>e?.originalDecorations||[]))),this._register(GB(this._editors.modified,this._decorations.map(e=>e?.modifiedDecorations||[])))}}class Bv{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(e,t){this._options=e,this.dimensions=t,this.sashLeft=(0,Gp.B5)(this,e=>{let t=this._sashRatio.read(e)??this._options.splitViewDefaultRatio.read(e);return this._computeSashLeft(t,e)},(e,t)=>{let s=this.dimensions.width.get();this._sashRatio.set(e/s,t)}),this._sashRatio=(0,I0.uh)(this,void 0)}_computeSashLeft(e,t){let s=this.dimensions.width.read(t),x=Math.floor(this._options.splitViewDefaultRatio.read(t)*s),E=this._options.enableSplitViewResizing.read(t)?Math.floor(e*s):x;return s<=200?x:E<100?100:E>s-100?s-100:E}}class Bk extends TD.JT{constructor(e,t,s,x,E,a){super(),this._domNode=e,this._dimensions=t,this._enabled=s,this._boundarySashes=x,this.sashLeft=E,this._resetSash=a,this._sash=this._register(new Ca(this._domNode,{getVerticalSashTop:e=>0,getVerticalSashLeft:e=>this.sashLeft.get(),getVerticalSashHeight:e=>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(e=>{this.sashLeft.set(this._startSashPosition+(e.currentX-e.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register((0,I0.EH)(e=>{let t=this._boundarySashes.read(e);t&&(this._sash.orthogonalEndSash=t.bottom)})),this._register((0,I0.EH)(e=>{let t=this._enabled.read(e);this._sash.state=t?3:0,this.sashLeft.read(e),this._dimensions.height.read(e),this._sash.layout()}))}}class Bw extends TD.JT{constructor(e,t,s){super(),this._editor=e,this._domNode=t,this.itemProvider=s,this.scrollTop=(0,I0.rD)(this,this._editor.onDidScrollChange,e=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(e=>0===e),this.modelAttached=(0,I0.rD)(this,this._editor.onDidChangeModel,e=>this._editor.hasModel()),this.editorOnDidChangeViewZones=(0,I0.aq)("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=(0,I0.aq)("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=(0,I0.GN)("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";let x=this._domNode.appendChild(RW("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),E=new ResizeObserver(()=>{(0,I0.PS)(e=>{this.domNodeSizeChanged.trigger(e)})});E.observe(this._domNode),this._register((0,TD.OF)(()=>E.disconnect())),this._register((0,I0.EH)(e=>{x.className=this.isScrollTopZero.read(e)?"":"scroll-decoration"})),this._register((0,I0.EH)(e=>this.render(e)))}dispose(){super.dispose(),RY(this._domNode)}render(e){if(!this.modelAttached.read(e))return;this.domNodeSizeChanged.read(e),this.editorOnDidChangeViewZones.read(e),this.editorOnDidContentSizeChange.read(e);let t=this.scrollTop.read(e),s=this._editor.getVisibleRanges(),x=new Set(this.views.keys()),E=GW.q.ofStartAndLength(0,this._domNode.clientHeight);if(!E.isEmpty)for(let a of s){let s=new O2.z(a.startLineNumber,a.endLineNumber+1),r=this.itemProvider.getIntersectingGutterItems(s,e);(0,I0.PS)(e=>{for(let a of r){if(!a.range.intersect(s))continue;x.delete(a.id);let r=this.views.get(a.id);if(r)r.item.set(a,e);else{let e=document.createElement("div");this._domNode.appendChild(e);let t=(0,I0.uh)("item",a),s=this.itemProvider.createView(t,e);r=new BW(t,s,e),this.views.set(a.id,r)}let i=a.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(a.range.startLineNumber,!0)-t:this._editor.getBottomForLineNumber(a.range.startLineNumber-1,!1)-t,n=(1===a.range.endLineNumberExclusive?Math.max(i,this._editor.getTopForLineNumber(a.range.startLineNumber,!1)-t):Math.max(i,this._editor.getBottomForLineNumber(a.range.endLineNumberExclusive-1,!0)-t))-i;r.domNode.style.top=`${i}px`,r.domNode.style.height=`${n}px`,r.gutterItemView.layout(GW.q.ofStartAndLength(i,n),E)}})}for(let e of x){let t=this.views.get(e);t.gutterItemView.dispose(),t.domNode.remove(),this.views.delete(e)}}}class BW{constructor(e,t,s){this.item=e,this.gutterItemView=t,this.domNode=s}}class BK extends Oa{constructor(e){super(),this._getContext=e}runAction(e,t){let s=this._getContext();return super.runAction(e,s)}}var BQ=x(57544);class BJ extends BQ.MS{constructor(e){super(),this._textModel=e}getValueOfRange(e){return this._textModel.getValueInRange(e)}get length(){let e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new GG.A(e-1,t)}}x(59686);class BZ extends TD.JT{constructor(e,t,s={orientation:0}){super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new T0.z5),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new TD.SL),s.hoverDelegate=s.hoverDelegate??this._register(IF()),this.options=s,this.toggleMenuAction=this._register(new Bz(()=>this.toggleMenuActionViewItem?.show(),s.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new h0(this.element,{orientation:s.orientation,ariaLabel:s.ariaLabel,actionRunner:s.actionRunner,allowContextMenu:s.allowContextMenu,highlightToggledItems:s.highlightToggledItems,hoverDelegate:s.hoverDelegate,actionViewItemProvider:(e,x)=>{if(e.id===Bz.ID)return this.toggleMenuActionViewItem=new hU(e,e.menuActions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:Oc.k.asClassNameArray(s.moreIcon??AK.l.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(s.actionViewItemProvider){let t=s.actionViewItemProvider(e,x);if(t)return t}if(e instanceof Oi){let s=new hU(e,e.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:e.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return s.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(s),this.disposables.add(this._onDidChangeDropdownVisibility.add(s.onDidChangeVisibility)),s}}}))}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}setActions(e,t){this.clear();let s=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),s.push(this.toggleMenuAction)),s.forEach(e=>{this.actionBar.push(e,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(e)})})}getKeybindingLabel(e){let t=this.options.getKeyBinding?.(e);return t?.getLabel()??void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}class Bz extends OE{static{this.ID="toolbar.toggle.more"}constructor(e,t){super(Bz.ID,t=t||ch.NC("moreActions","More Actions..."),void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}}var Bq=x(24176),Bj=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},B$=function(e,t){return function(s,x){t(s,x,e)}};let B0=class extends BZ{constructor(e,t,s,x,E,a,r,i){super(e,E,{getKeyBinding:e=>a.lookupKeybinding(e.id)??void 0,...t,allowContextMenu:!0,skipTelemetry:"string"==typeof t?.telemetrySource}),this._options=t,this._menuService=s,this._contextKeyService=x,this._contextMenuService=E,this._keybindingService=a,this._commandService=r,this._sessionDisposables=this._store.add(new TD.SL);let n=t?.telemetrySource;n&&this._store.add(this.actionBar.onDidRun(e=>i.publicLog2("workbenchActionExecuted",{id:e.action.id,from:n})))}setActions(e,t=[],s){this._sessionDisposables.clear();let x=e.slice(),E=t.slice(),a=[],r=0,i=[],n=!1;if(this._options?.hiddenItemStrategy!==-1)for(let e=0;e<x.length;e++){let t=x[e];(t instanceof OU||t instanceof Od)&&t.hideActions&&(a.push(t.hideActions.toggle),t.hideActions.toggle.checked&&r++,t.hideActions.isHidden&&(n=!0,x[e]=void 0,this._options?.hiddenItemStrategy!==0&&(i[e]=t)))}if(this._options?.overflowBehavior!==void 0){let e=(0,Bq.j)(new Set(this._options.overflowBehavior.exempted),OS.$.map(x,e=>e?.id)),t=this._options.overflowBehavior.maxItems-e.size,s=0;for(let E=0;E<x.length;E++){let a=x[E];a&&(s++,!e.has(a.id)&&s>=t&&(x[E]=void 0,i[E]=a))}}(0,cO.Rs)(x),(0,cO.Rs)(i),super.setActions(x,Or.join(i,E)),(a.length>0||x.length>0)&&this._sessionDisposables.add(S7(this.getElement(),"contextmenu",e=>{let t=new Tq(SK(this.getElement()),e),x=this.getItemAction(t.target);if(!x)return;t.preventDefault(),t.stopPropagation();let E=[];if(x instanceof OU&&x.menuKeybinding)E.push(x.menuKeybinding);else if(!(x instanceof Od||x instanceof Bz)){let e=!!this._keybindingService.lookupKeybinding(x.id);E.push(DN(this._commandService,this._keybindingService,x.id,void 0,e))}if(a.length>0){let e=!1;if(1===r&&this._options?.hiddenItemStrategy===0){e=!0;for(let e=0;e<a.length;e++)if(a[e].checked){a[e]=O_({id:x.id,label:x.label,checked:!0,enabled:!1,run(){}});break}}if(!e&&(x instanceof OU||x instanceof Od)){if(!x.hideActions)return;E.push(x.hideActions.hide)}else E.push(O_({id:"label",label:(0,ch.NC)("hide","Hide"),enabled:!1,run(){}}))}let i=Or.join(E,a);this._options?.resetMenu&&!s&&(s=[this._options.resetMenu]),n&&s&&(i.push(new Or),i.push(O_({id:"resetThisMenu",label:(0,ch.NC)("resetThisMenu","Reset Menu"),run:()=>this._menuService.resetHiddenStates(s)}))),0!==i.length&&this._contextMenuService.showContextMenu({getAnchor:()=>t,getActions:()=>i,menuId:this._options?.contextMenu,menuActionOptions:{renderShortTitle:!0,...this._options?.menuOptions},skipTelemetry:"string"==typeof this._options?.telemetrySource,contextKeyService:this._contextKeyService})}))}};B0=Bj([B$(2,OD),B$(3,Oo.i6),B$(4,AF),B$(5,AH),B$(6,OO),B$(7,Op)],B0);let B2=class extends B0{constructor(e,t,s,x,E,a,r,i,n){super(e,{resetMenu:t,...s},x,E,a,r,i,n),this._onDidChangeMenuItems=this._store.add(new T0.Q5),this.onDidChangeMenuItems=this._onDidChangeMenuItems.event;let _=this._store.add(x.createMenu(t,E,{emitEventsForSubmenuChanges:!0})),T=()=>{let t=[],x=[];(function(e,t,s,x,E,a){let r,i,n,_,T;Array.isArray(e)?(T=e,r=t,i=s,n=x,_=E):(T=e.getActions(t),r=s,i=x,n=E,_=a),hZ(T,r,!1,"string"==typeof i?e=>e===i:i,n,_)})(_,s?.menuOptions,{primary:t,secondary:x},s?.toolbarOptions?.primaryGroup,s?.toolbarOptions?.shouldInlineSubmenu,s?.toolbarOptions?.useSeparatorsInPrimaryActions),e.classList.toggle("has-no-actions",0===t.length&&0===x.length),super.setActions(t,x)};this._store.add(_.onDidChange(()=>{T(),this._onDidChangeMenuItems.fire(this)})),T()}setActions(){throw new TV.he("This toolbar is populated from a menu.")}};B2=Bj([B$(3,OD),B$(4,Oo.i6),B$(5,AF),B$(6,AH),B$(7,OO),B$(8,Op)],B2);var B1=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},B3=function(e,t){return function(s,x){t(s,x,e)}};let B7=[],B5=class extends TD.JT{constructor(e,t,s,x,E,a,r,i,n){super(),this._diffModel=t,this._editors=s,this._options=x,this._sashLayout=E,this._boundarySashes=a,this._instantiationService=r,this._contextKeyService=i,this._menuService=n,this._menu=this._register(this._menuService.createMenu(Ou.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=(0,I0.rD)(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(e=>e.length>0),this._showSash=(0,I0.nK)(this,e=>this._options.renderSideBySide.read(e)&&this._hasActions.read(e)),this.width=(0,I0.nK)(this,e=>this._hasActions.read(e)?35:0),this.elements=RW("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:"35px"}},[]),this._currentDiff=(0,I0.nK)(this,e=>{let t=this._diffModel.read(e);if(!t)return;let s=t.diff.read(e)?.mappings,x=this._editors.modifiedCursor.read(e);if(x)return s?.find(e=>e.lineRangeMapping.modified.contains(x.lineNumber))}),this._selectedDiffs=(0,I0.nK)(this,e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);if(!s)return B7;let x=this._editors.modifiedSelections.read(e);if(x.every(e=>e.isEmpty()))return B7;let E=new O2.i(x.map(e=>O2.z.fromRangeInclusive(e))),a=s.mappings.filter(e=>e.lineRangeMapping.innerChanges&&E.intersects(e.lineRangeMapping.modified)).map(e=>({mapping:e,rangeMappings:e.lineRangeMapping.innerChanges.filter(e=>x.some(t=>OQ.e.areIntersecting(e.modifiedRange,t)))}));return 0===a.length||a.every(e=>0===e.rangeMappings.length)?B7:a}),this._register(function(e,t){return e.prepend(t),(0,TD.OF)(()=>{t.remove()})}(e,this.elements.root)),this._register(S7(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register(GV(this.elements.root,{display:this._hasActions.map(e=>e?"block":"none")})),(0,Gp.kA)(this,t=>this._showSash.read(t)?new Bk(e,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,(0,Gp.B5)(this,e=>this._sashLayout.sashLeft.read(e)-35,(e,t)=>this._sashLayout.sashLeft.set(e+35,t)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store),this._register(new Bw(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(e,t)=>{let s=this._diffModel.read(t);if(!s)return[];let x=s.diff.read(t);if(!x)return[];let E=this._selectedDiffs.read(t);if(E.length>0)return[new B4(O0.gB.fromRangeMappings(E.flatMap(e=>e.rangeMappings)),!0,Ou.DiffEditorSelectionToolbar,void 0,s.model.original.uri,s.model.modified.uri)];let a=this._currentDiff.read(t);return x.mappings.map(e=>new B4(e.lineRangeMapping.withInnerChangesFromLineRanges(),e.lineRangeMapping===a?.lineRangeMapping,Ou.DiffEditorHunkToolbar,void 0,s.model.original.uri,s.model.modified.uri))},createView:(e,t)=>this._instantiationService.createInstance(B6,e,t,this)})),this._register(S7(this.elements.gutter,RD.MOUSE_WHEEL,e=>{this._editors.modified.getOption(104).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(e)},{passive:!1}))}computeStagedValue(e){let t=e.innerChanges??[],s=new BJ(this._editors.modifiedModel.get()),x=new BJ(this._editors.original.getModel());return new BQ.PY(t.map(e=>e.toTextEdit(s))).apply(x)}layout(e){this.elements.gutter.style.left=e+"px"}};B5=B1([B3(6,Oe.TG),B3(7,Oo.i6),B3(8,OD)],B5);class B4{constructor(e,t,s,x,E,a){this.mapping=e,this.showAlways=t,this.menuId=s,this.rangeOverride=x,this.originalUri=E,this.modifiedUri=a}get id(){return this.mapping.modified.toString()}get range(){return this.rangeOverride??this.mapping.modified}}let B6=class extends TD.JT{constructor(e,t,s,x){super(),this._item=e,this._elements=RW("div.gutterItem",{style:{height:"20px",width:"34px"}},[RW("div.background@background",{},[]),RW("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,e=>e.showAlways),this._menuId=this._item.map(this,e=>e.menuId),this._isSmall=(0,I0.uh)(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;let E=this._register(x.createInstance(Af,"element",!0,{position:{hoverPosition:1}}));this._register(Gm(t,this._elements.root)),this._register((0,I0.EH)(e=>{let t=this._showAlways.read(e);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",t),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register((0,I0.gp)((e,t)=>{this._elements.buttons.replaceChildren();let a=t.add(x.createInstance(B2,this._elements.buttons,this._menuId.read(e),{orientation:1,hoverDelegate:E,toolbarOptions:{primaryGroup:e=>e.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(e)?1:3},hiddenItemStrategy:0,actionRunner:new BK(()=>{let e=this._item.get(),t=e.mapping;return{mapping:t,originalWithModifiedChanges:s.computeStagedValue(t),originalUri:e.originalUri,modifiedUri:e.modifiedUri}}),menuOptions:{shouldForwardArgs:!0}}));t.add(a.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(e,t){this._lastItemRange=e,this._lastViewRange=t;let s=this._elements.buttons.clientHeight;this._isSmall.set(1===this._item.get().mapping.original.startLineNumber&&e.length<30,void 0),s=this._elements.buttons.clientHeight;let x=e.length/2-s/2,E=s,a=e.start+x,r=GW.q.tryCreate(E,t.endExclusive-E-s),i=GW.q.tryCreate(e.start+E,e.endExclusive-s-E);i&&r&&i.start<i.endExclusive&&(a=r.clip(a),a=i.clip(a)),this._elements.buttons.style.top=`${a-e.start}px`}};B6=B1([B3(3,Oe.TG)],B6);var B8=x(56384),B9=x(64144);function me(e){return mt.get(e)}class mt extends TD.JT{static{this._map=new Map}static get(e){let t=mt._map.get(e);if(!t){t=new mt(e),mt._map.set(e,t);let s=e.onDidDispose(()=>{let t=mt._map.get(e);t&&(mt._map.delete(e),t.dispose(),s.dispose())})}return t}_beginUpdate(){this._updateCounter++,1===this._updateCounter&&(this._currentTransaction=new B9.es(()=>{}))}_endUpdate(){if(this._updateCounter--,0===this._updateCounter){let e=this._currentTransaction;this._currentTransaction=void 0,e.finish()}}constructor(e){super(),this.editor=e,this._updateCounter=0,this._currentTransaction=void 0,this._model=(0,I0.uh)(this,this.editor.getModel()),this.model=this._model,this.isReadonly=(0,I0.rD)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(92)),this._versionId=(0,I0.Ku)({owner:this,lazy:!0},this.editor.getModel()?.getVersionId()??null),this.versionId=this._versionId,this._selections=(0,I0.Ku)({owner:this,equalsFn:(0,B8.Tx)((0,B8.ZC)(P4.Y.selectionsEqual)),lazy:!0},this.editor.getSelections()??null),this.selections=this._selections,this.isFocused=(0,I0.rD)(this,e=>{let t=this.editor.onDidFocusEditorWidget(e),s=this.editor.onDidBlurEditorWidget(e);return{dispose(){t.dispose(),s.dispose()}}},()=>this.editor.hasWidgetFocus()),this.value=(0,Gp.B5)(this,e=>(this.versionId.read(e),this.model.read(e)?.getValue()??""),(e,t)=>{let s=this.model.get();null!==s&&e!==s.getValue()&&s.setValue(e)}),this.valueIsEmpty=(0,I0.nK)(this,e=>(this.versionId.read(e),this.editor.getModel()?.getValueLength()===0)),this.cursorSelection=(0,I0.bk)({owner:this,equalsFn:(0,B8.Tx)(P4.Y.selectionsEqual)},e=>this.selections.read(e)?.[0]??null),this.onDidType=(0,I0.GN)(this),this.scrollTop=(0,I0.rD)(this.editor.onDidScrollChange,()=>this.editor.getScrollTop()),this.scrollLeft=(0,I0.rD)(this.editor.onDidScrollChange,()=>this.editor.getScrollLeft()),this.layoutInfo=(0,I0.rD)(this.editor.onDidLayoutChange,()=>this.editor.getLayoutInfo()),this.layoutInfoContentLeft=this.layoutInfo.map(e=>e.contentLeft),this.layoutInfoDecorationsLeft=this.layoutInfo.map(e=>e.decorationsLeft),this.contentWidth=(0,I0.rD)(this.editor.onDidContentSizeChange,()=>this.editor.getContentWidth()),this._overlayWidgetCounter=0,this._register(this.editor.onBeginUpdate(()=>this._beginUpdate())),this._register(this.editor.onEndUpdate(()=>this._endUpdate())),this._register(this.editor.onDidChangeModel(()=>{this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidType(e=>{this._beginUpdate();try{this._forceUpdate(),this.onDidType.trigger(this._currentTransaction,e)}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeModelContent(e=>{this._beginUpdate();try{this._versionId.set(this.editor.getModel()?.getVersionId()??null,this._currentTransaction,e),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeCursorSelection(e=>{this._beginUpdate();try{this._selections.set(this.editor.getSelections(),this._currentTransaction,e),this._forceUpdate()}finally{this._endUpdate()}}))}forceUpdate(e){this._beginUpdate();try{if(this._forceUpdate(),!e)return;return e(this._currentTransaction)}finally{this._endUpdate()}}_forceUpdate(){this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._versionId.set(this.editor.getModel()?.getVersionId()??null,this._currentTransaction,void 0),this._selections.set(this.editor.getSelections(),this._currentTransaction,void 0)}finally{this._endUpdate()}}getOption(e){return(0,I0.rD)(this,t=>this.editor.onDidChangeConfiguration(s=>{s.hasChanged(e)&&t(void 0)}),()=>this.editor.getOption(e))}setDecorations(e){let t=new TD.SL,s=this.editor.createDecorationsCollection();return t.add((0,I0.UV)({owner:this,debugName:()=>`Apply decorations from ${e.debugName}`},t=>{let x=e.read(t);s.set(x)})),t.add({dispose:()=>{s.clear()}}),t}createOverlayWidget(e){let t="observableOverlayWidget"+this._overlayWidgetCounter++,s={getDomNode:()=>e.domNode,getPosition:()=>e.position.get(),getId:()=>t,allowEditorOverflow:e.allowEditorOverflow,getMinContentWidthInPx:()=>e.minContentWidthInPx.get()};this.editor.addOverlayWidget(s);let x=(0,I0.EH)(t=>{e.position.read(t),e.minContentWidthInPx.read(t),this.editor.layoutOverlayWidget(s)});return(0,TD.OF)(()=>{x.dispose(),this.editor.removeOverlayWidget(s)})}}let ms=class extends TD.JT{static{eX=this}static{this._breadcrumbsSourceFactory=(0,I0.uh)(eX,()=>({dispose(){},getBreadcrumbItems:(e,t)=>[]}))}static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,s,x){super(),this._editors=e,this._diffModel=t,this._options=s,this._instantiationService=x,this._modifiedOutlineSource=(0,Gp.kA)(this,e=>{let t=this._editors.modifiedModel.read(e),s=eX._breadcrumbsSourceFactory.read(e);return t&&s?s(t,this._instantiationService):void 0}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(e=>{if(1===e.reason)return;let t=this._diffModel.get();(0,I0.PS)(e=>{for(let s of this._editors.original.getSelections()||[])t?.ensureOriginalLineIsVisible(s.getStartPosition().lineNumber,0,e),t?.ensureOriginalLineIsVisible(s.getEndPosition().lineNumber,0,e)})})),this._register(this._editors.modified.onDidChangeCursorPosition(e=>{if(1===e.reason)return;let t=this._diffModel.get();(0,I0.PS)(e=>{for(let s of this._editors.modified.getSelections()||[])t?.ensureModifiedLineIsVisible(s.getStartPosition().lineNumber,0,e),t?.ensureModifiedLineIsVisible(s.getEndPosition().lineNumber,0,e)})}));let E=this._diffModel.map((e,t)=>{let s=e?.unchangedRegions.read(t)??[];return 1===s.length&&1===s[0].modifiedLineNumber&&s[0].lineCount===this._editors.modifiedModel.read(t)?.getLineCount()?[]:s});this.viewZones=(0,I0.Be)(this,(e,t)=>{let s=this._modifiedOutlineSource.read(e);if(!s)return{origViewZones:[],modViewZones:[]};let x=[],a=[],r=this._options.renderSideBySide.read(e),i=this._options.compactMode.read(e),n=E.read(e);for(let E=0;E<n.length;E++){let _=n[E];if(!_.shouldHideControls(e)&&(!i||0!==E&&E!==n.length-1)){if(i){{let e=new GH((0,I0.nK)(this,e=>_.getHiddenOriginalRange(e).startLineNumber-1),12);x.push(e),t.add(new mx(this._editors.original,e,_,!r))}{let e=new GH((0,I0.nK)(this,e=>_.getHiddenModifiedRange(e).startLineNumber-1),12);a.push(e),t.add(new mx(this._editors.modified,e,_))}}else{{let e=new GH((0,I0.nK)(this,e=>_.getHiddenOriginalRange(e).startLineNumber-1),24);x.push(e),t.add(new mE(this._editors.original,e,_,_.originalUnchangedRange,!r,s,e=>this._diffModel.get().ensureModifiedLineIsVisible(e,2,void 0),this._options))}{let e=new GH((0,I0.nK)(this,e=>_.getHiddenModifiedRange(e).startLineNumber-1),24);a.push(e),t.add(new mE(this._editors.modified,e,_,_.modifiedUnchangedRange,!1,s,e=>this._diffModel.get().ensureModifiedLineIsVisible(e,2,void 0),this._options))}}}}return{origViewZones:x,modViewZones:a}});let a={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},r={description:"Fold Unchanged",glyphMarginHoverMessage:new oW(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown((0,ch.NC)("foldUnchanged","Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+Oc.k.asClassName(AK.l.fold),zIndex:10001};this._register(GB(this._editors.original,(0,I0.nK)(this,e=>{let t=E.read(e),s=t.map(e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:a}));for(let x of t)x.shouldHideControls(e)&&s.push({range:OQ.e.fromPositions(new N0.L(x.originalLineNumber,1)),options:r});return s}))),this._register(GB(this._editors.modified,(0,I0.nK)(this,e=>{let t=E.read(e),s=t.map(e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:a}));for(let x of t)x.shouldHideControls(e)&&s.push({range:O2.z.ofLength(x.modifiedLineNumber,1).toInclusiveRange(),options:r});return s}))),this._register((0,I0.EH)(e=>{let t=E.read(e);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(t.map(t=>t.getHiddenOriginalRange(e).toInclusiveRange()).filter(OR.$K)),this._editors.modified.setHiddenAreas(t.map(t=>t.getHiddenModifiedRange(e).toInclusiveRange()).filter(OR.$K))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(e=>{if(!e.event.rightButton&&e.target.position&&e.target.element?.className.includes("fold-unchanged")){let t=e.target.position.lineNumber,s=this._diffModel.get();if(!s)return;let x=s.unchangedRegions.get().find(e=>e.modifiedUnchangedRange.includes(t));x&&(x.collapseAll(void 0),e.event.stopPropagation(),e.event.preventDefault())}})),this._register(this._editors.original.onMouseUp(e=>{if(!e.event.rightButton&&e.target.position&&e.target.element?.className.includes("fold-unchanged")){let t=e.target.position.lineNumber,s=this._diffModel.get();if(!s)return;let x=s.unchangedRegions.get().find(e=>e.originalUnchangedRange.includes(t));x&&(x.collapseAll(void 0),e.event.stopPropagation(),e.event.preventDefault())}}))}};ms=eX=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([(d=Oe.TG,function(e,t){d(e,t,3)})],ms);class mx extends GF{constructor(e,t,s,x=!1){let E=RW("div.diff-hidden-lines-widget");super(e,t,E.root),this._unchangedRegion=s,this._hide=x,this._nodes=RW("div.diff-hidden-lines-compact",[RW("div.line-left",[]),RW("div.text@text",[]),RW("div.line-right",[])]),E.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register((0,I0.EH)(e=>{if(!this._hide){let t=this._unchangedRegion.getHiddenModifiedRange(e).length,s=(0,ch.NC)("hiddenLines","{0} hidden lines",t);this._nodes.text.innerText=s}}))}}class mE extends GF{constructor(e,t,s,x,E,a,r,i){let n=RW("div.diff-hidden-lines-widget");super(e,t,n.root),this._editor=e,this._unchangedRegion=s,this._unchangedRegionRange=x,this._hide=E,this._modifiedOutlineSource=a,this._revealModifiedHiddenLine=r,this._options=i,this._nodes=RW("div.diff-hidden-lines",[RW("div.top@top",{title:(0,ch.NC)("diff.hiddenLines.top","Click or drag to show more above")}),RW("div.center@content",{style:{display:"flex"}},[RW("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[Rm("a",{title:(0,ch.NC)("showUnchangedRegion","Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...or("$(unfold)"))]),RW("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),RW("div.bottom@bottom",{title:(0,ch.NC)("diff.bottom","Click or drag to show more below"),role:"button"})]),n.root.appendChild(this._nodes.root),this._hide?RY(this._nodes.first):this._register(GV(this._nodes.first,{width:me(this._editor).layoutInfoContentLeft})),this._register((0,I0.EH)(e=>{let t=this._unchangedRegion.visibleLineCountTop.read(e)+this._unchangedRegion.visibleLineCountBottom.read(e)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!t),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(e)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(e)>0),this._nodes.top.classList.toggle("canMoveBottom",!t);let s=this._unchangedRegion.isDragged.read(e),x=this._editor.getDomNode();x&&(x.classList.toggle("draggingUnchangedRegion",!!s),"top"===s?(x.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(e)>0),x.classList.toggle("canMoveBottom",!t)):"bottom"===s?(x.classList.toggle("canMoveTop",!t),x.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(e)>0)):(x.classList.toggle("canMoveTop",!1),x.classList.toggle("canMoveBottom",!1)))}));let _=this._editor;this._register(S7(this._nodes.top,"mousedown",e=>{if(0!==e.button)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),e.preventDefault();let t=e.clientY,s=!1,x=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);let E=SK(this._nodes.top),a=S7(E,"mousemove",e=>{let E=e.clientY-t;s=s||Math.abs(E)>2;let a=Math.max(0,Math.min(x+Math.round(E/_.getOption(67)),this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(a,void 0)}),r=S7(E,"mouseup",e=>{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),a.dispose(),r.dispose()})})),this._register(S7(this._nodes.bottom,"mousedown",e=>{if(0!==e.button)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),e.preventDefault();let t=e.clientY,s=!1,x=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);let E=SK(this._nodes.bottom),a=S7(E,"mousemove",e=>{let E=e.clientY-t;s=s||Math.abs(E)>2;let a=Math.max(0,Math.min(x-Math.round(E/_.getOption(67)),this._unchangedRegion.getMaxVisibleLineCountBottom())),r=this._unchangedRegionRange.endLineNumberExclusive>_.getModel().getLineCount()?_.getContentHeight():_.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(a,void 0);let i=this._unchangedRegionRange.endLineNumberExclusive>_.getModel().getLineCount()?_.getContentHeight():_.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);_.setScrollTop(_.getScrollTop()+(i-r))}),r=S7(E,"mouseup",e=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!s){let e=_.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);let t=_.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);_.setScrollTop(_.getScrollTop()+(t-e))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),a.dispose(),r.dispose()})})),this._register((0,I0.EH)(e=>{let t=[];if(!this._hide){let x=s.getHiddenModifiedRange(e).length,E=(0,ch.NC)("hiddenLines","{0} hidden lines",x),a=Rm("span",{title:(0,ch.NC)("diff.hiddenLines.expandAll","Double click to unfold")},E);a.addEventListener("dblclick",e=>{0===e.button&&(e.preventDefault(),this._unchangedRegion.showAll(void 0))}),t.push(a);let r=this._unchangedRegion.getHiddenModifiedRange(e),i=this._modifiedOutlineSource.getBreadcrumbItems(r,e);if(i.length>0){t.push(Rm("span",void 0,"\xa0\xa0|\xa0\xa0"));for(let e=0;e<i.length;e++){let s=i[e],x=RW("div.breadcrumb-item",{style:{display:"flex",alignItems:"center"}},[oi(NA.uZ.toIcon(s.kind)),"\xa0",s.name,...e===i.length-1?[]:[oi(AK.l.chevronRight)]]).root;t.push(x),x.onclick=()=>{this._revealModifiedHiddenLine(s.startLineNumber)}}}}RY(this._nodes.others,...t)}))}}let ma=class extends TD.JT{static{eb=this}static{this.ONE_OVERVIEW_WIDTH=15}static{this.ENTIRE_DIFF_OVERVIEW_WIDTH=2*this.ONE_OVERVIEW_WIDTH}constructor(e,t,s,x,E,a,r){super(),this._editors=e,this._rootElement=t,this._diffModel=s,this._rootWidth=x,this._rootHeight=E,this._modifiedEditorLayoutInfo=a,this._themeService=r,this.width=eb.ENTIRE_DIFF_OVERVIEW_WIDTH;let i=(0,I0.rD)(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),n=(0,I0.nK)(e=>{let t=i.read(e);return{insertColor:t.getColor(AY.P6Y)||(t.getColor(AY.ypS)||AY.CzK).transparent(2),removeColor:t.getColor(AY.F9q)||(t.getColor(AY.P4M)||AY.keg).transparent(2)}}),_=R$(document.createElement("div"));_.setClassName("diffViewport"),_.setPosition("absolute");let T=RW("div.diffOverview",{style:{position:"absolute",top:"0px",width:eb.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(Gm(T,_.domNode)),this._register(S5(T,RD.POINTER_DOWN,e=>{this._editors.modified.delegateVerticalScrollbarPointerDown(e)})),this._register(S7(T,RD.MOUSE_WHEEL,e=>{this._editors.modified.delegateScrollFromMouseWheelEvent(e)},{passive:!1})),this._register(Gm(this._rootElement,T)),this._register((0,I0.gp)((e,t)=>{let s=this._diffModel.read(e),x=this._editors.original.createOverviewRuler("original diffOverviewRuler");x&&(t.add(x),t.add(Gm(T,x.getDomNode())));let E=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(E&&(t.add(E),t.add(Gm(T,E.getDomNode()))),!x||!E)return;let a=(0,I0.aq)("viewZoneChanged",this._editors.original.onDidChangeViewZones),r=(0,I0.aq)("viewZoneChanged",this._editors.modified.onDidChangeViewZones),i=(0,I0.aq)("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),S=(0,I0.aq)("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);t.add((0,I0.EH)(e=>{a.read(e),r.read(e),i.read(e),S.read(e);let t=n.read(e),_=s?.diff.read(e)?.mappings;function T(e,t,s){let x=s._getViewModel();return x?e.filter(e=>e.length>0).map(e=>{let s=x.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(e.startLineNumber,1)),E=x.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(e.endLineNumberExclusive,1)),a=E.lineNumber-s.lineNumber;return new pP(s.lineNumber,E.lineNumber,a,t.toString())}):[]}let R=T((_||[]).map(e=>e.lineRangeMapping.original),t.removeColor,this._editors.original),O=T((_||[]).map(e=>e.lineRangeMapping.modified),t.insertColor,this._editors.modified);x?.setZones(R),E?.setZones(O)})),t.add((0,I0.EH)(e=>{let t=this._rootHeight.read(e),s=this._rootWidth.read(e),a=this._modifiedEditorLayoutInfo.read(e);if(a){let s=eb.ENTIRE_DIFF_OVERVIEW_WIDTH-2*eb.ONE_OVERVIEW_WIDTH;x.setLayout({top:0,height:t,right:s+eb.ONE_OVERVIEW_WIDTH,width:eb.ONE_OVERVIEW_WIDTH}),E.setLayout({top:0,height:t,right:0,width:eb.ONE_OVERVIEW_WIDTH});let r=this._editors.modifiedScrollTop.read(e),i=this._editors.modifiedScrollHeight.read(e),n=this._editors.modified.getOption(104),T=new AW(n.verticalHasArrows?n.arrowSize:0,n.verticalScrollbarSize,0,a.height,i,r);_.setTop(T.getSliderPosition()),_.setHeight(T.getSliderSize())}else _.setTop(0),_.setHeight(0);T.style.height=t+"px",T.style.left=s-eb.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",_.setWidth(eb.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}};ma=eb=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([(U=As.XE,function(e,t){U(e,t,6)})],ma);let mr=[];class mi extends TD.JT{constructor(e,t,s,x){super(),this._editors=e,this._diffModel=t,this._options=s,this._widget=x,this._selectedDiffs=(0,I0.nK)(this,e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);if(!s)return mr;let x=this._editors.modifiedSelections.read(e);if(x.every(e=>e.isEmpty()))return mr;let E=new O2.i(x.map(e=>O2.z.fromRangeInclusive(e))),a=s.mappings.filter(e=>e.lineRangeMapping.innerChanges&&E.intersects(e.lineRangeMapping.modified)).map(e=>({mapping:e,rangeMappings:e.lineRangeMapping.innerChanges.filter(e=>x.some(t=>OQ.e.areIntersecting(e.modifiedRange,t)))}));return 0===a.length||a.every(e=>0===e.rangeMappings.length)?mr:a}),this._register((0,I0.gp)((e,t)=>{if(!this._options.shouldRenderOldRevertArrows.read(e))return;let s=this._diffModel.read(e),x=s?.diff.read(e);if(!s||!x||s.movedTextToCompare.read(e))return;let E=[],a=this._selectedDiffs.read(e),r=new Set(a.map(e=>e.mapping));if(a.length>0){let s=this._editors.modifiedSelections.read(e),x=t.add(new mn(s[s.length-1].positionLineNumber,this._widget,a.flatMap(e=>e.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(x),E.push(x)}for(let e of x.mappings)if(!r.has(e)&&!e.lineRangeMapping.modified.isEmpty&&e.lineRangeMapping.innerChanges){let s=t.add(new mn(e.lineRangeMapping.modified.startLineNumber,this._widget,e.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(s),E.push(s)}t.add((0,TD.OF)(()=>{for(let e of E)this._editors.modified.removeGlyphMarginWidget(e)}))}))}}class mn extends TD.JT{static{this.counter=0}getId(){return this._id}constructor(e,t,s,x){super(),this._lineNumber=e,this._widget=t,this._diffs=s,this._revertSelection=x,this._id=`revertButton${mn.counter++}`,this._domNode=RW("div.revertButton",{title:this._revertSelection?(0,ch.NC)("revertSelectedChanges","Revert Selected Changes"):(0,ch.NC)("revertChange","Revert Change")},[oi(AK.l.arrowRight)]).root,this._register(S7(this._domNode,RD.MOUSE_DOWN,e=>{2!==e.button&&(e.stopPropagation(),e.preventDefault())})),this._register(S7(this._domNode,RD.MOUSE_UP,e=>{e.stopPropagation(),e.preventDefault()})),this._register(S7(this._domNode,RD.CLICK,e=>{this._diffs instanceof O0.f0?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),e.stopPropagation(),e.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:Ml.U.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}var m_=x(64709);function mc(e,t,s){let x=e.bindTo(t);return(0,I0.UV)({debugName:()=>`Set Context Key "${e.key}"`},e=>{x.set(s(e))})}var mT=function(e,t){return function(s,x){t(s,x,e)}};let mS=class extends TD.JT{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,s,x,E,a,r){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=s,this._argCodeEditorWidgetOptions=x,this._createInnerEditor=E,this._instantiationService=a,this._keybindingService=r,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new T0.Q5),this.modifiedScrollTop=(0,I0.rD)(this,this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=(0,I0.rD)(this,this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedObs=me(this.modified),this.originalObs=me(this.original),this.modifiedModel=this.modifiedObs.model,this.modifiedSelections=(0,I0.rD)(this,this.modified.onDidChangeCursorSelection,()=>this.modified.getSelections()??[]),this.modifiedCursor=(0,I0.bk)({owner:this,equalsFn:N0.L.equals},e=>this.modifiedSelections.read(e)[0]?.getPosition()??new N0.L(1,1)),this.originalCursor=(0,I0.rD)(this,this.original.onDidChangeCursorPosition,()=>this.original.getPosition()??new N0.L(1,1)),this._argCodeEditorWidgetOptions=null,this._register((0,I0.nJ)({createEmptyChangeSummary:()=>({}),handleChange:(e,t)=>(e.didChange(s.editorOptions)&&Object.assign(t,e.change.changedOptions),!0)},(e,t)=>{s.editorOptions.read(e),this._options.renderSideBySide.read(e),this.modified.updateOptions(this._adjustOptionsForRightHandSide(e,t)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(e,t))}))}_createLeftHandSideEditor(e,t){let s=this._adjustOptionsForLeftHandSide(void 0,e),x=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,s,t);return x.setContextValue("isInDiffLeftEditor",!0),x}_createRightHandSideEditor(e,t){let s=this._adjustOptionsForRightHandSide(void 0,e),x=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,s,t);return x.setContextValue("isInDiffRightEditor",!0),x}_constructInnerEditor(e,t,s,x){let E=this._createInnerEditor(e,t,s,x);return this._register(E.onDidContentSizeChange(e=>{let t=this.original.getContentWidth()+this.modified.getContentWidth()+ma.ENTIRE_DIFF_OVERVIEW_WIDTH,s=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:s,contentWidth:t,contentHeightChanged:e.contentHeightChanged,contentWidthChanged:e.contentWidthChanged})})),E}_adjustOptionsForLeftHandSide(e,t){let s=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(s.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},s.wordWrapOverride1=this._options.diffWordWrap.get()):(s.wordWrapOverride1="off",s.wordWrapOverride2="off",s.stickyScroll={enabled:!1},s.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),s.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(s.ariaLabel=t.originalAriaLabel),s.ariaLabel=this._updateAriaLabel(s.ariaLabel),s.readOnly=!this._options.originalEditable.get(),s.dropIntoEditor={enabled:!s.readOnly},s.extraEditorClassName="original-in-monaco-diff-editor",s}_adjustOptionsForRightHandSide(e,t){let s=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(s.ariaLabel=t.modifiedAriaLabel),s.ariaLabel=this._updateAriaLabel(s.ariaLabel),s.wordWrapOverride1=this._options.diffWordWrap.get(),s.revealHorizontalRightPadding=TC.revealHorizontalRightPadding.defaultValue+ma.ENTIRE_DIFF_OVERVIEW_WIDTH,s.scrollbar.verticalHasArrows=!1,s.extraEditorClassName="modified-in-monaco-diff-editor",s}_adjustOptionsForSubEditor(e){let t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!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){e||(e="");let t=(0,ch.NC)("diff-aria-navigation-tip"," use {0} to open the accessibility help.",this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel());return this._options.accessibilityVerbose.get()?e+t:e?e.replaceAll(t,""):""}};mS=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([mT(5,Oe.TG),mT(6,AH)],mS);class mR extends TD.JT{constructor(){super(...arguments),this._id=++mR.idCounter,this._onDidDispose=this._register(new T0.Q5),this.onDidDispose=this._onDidDispose.event}static{this.idCounter=0}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,s=0){this._targetEditor.revealLines(e,t,s)}revealLinesInCenter(e,t,s=0){this._targetEditor.revealLinesInCenter(e,t,s)}revealLinesInCenterIfOutsideViewport(e,t,s=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,s)}revealLinesNearTop(e,t,s=0){this._targetEditor.revealLinesNearTop(e,t,s)}revealRange(e,t=0,s=!1,x=!0){this._targetEditor.revealRange(e,t,s,x)}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,s){this._targetEditor.trigger(e,t,s)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}}let mO=class{get editorOptions(){return this._options}constructor(e,t){this._accessibilityService=t,this._diffEditorWidth=(0,I0.uh)(this,0),this._screenReaderMode=(0,I0.rD)(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=(0,I0.nK)(this,e=>this._options.read(e).renderSideBySide&&this._diffEditorWidth.read(e)<=this._options.read(e).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=(0,I0.nK)(this,e=>this._options.read(e).renderOverviewRuler),this.renderSideBySide=(0,I0.nK)(this,e=>!(this.compactMode.read(e)&&this.shouldRenderInlineViewInSmartMode.read(e))&&this._options.read(e).renderSideBySide&&!(this._options.read(e).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(e)&&!this._screenReaderMode.read(e))),this.readOnly=(0,I0.nK)(this,e=>this._options.read(e).readOnly),this.shouldRenderOldRevertArrows=(0,I0.nK)(this,e=>!(!this._options.read(e).renderMarginRevertIcon||!this.renderSideBySide.read(e)||this.readOnly.read(e)||this.shouldRenderGutterMenu.read(e))),this.shouldRenderGutterMenu=(0,I0.nK)(this,e=>this._options.read(e).renderGutterMenu),this.renderIndicators=(0,I0.nK)(this,e=>this._options.read(e).renderIndicators),this.enableSplitViewResizing=(0,I0.nK)(this,e=>this._options.read(e).enableSplitViewResizing),this.splitViewDefaultRatio=(0,I0.nK)(this,e=>this._options.read(e).splitViewDefaultRatio),this.ignoreTrimWhitespace=(0,I0.nK)(this,e=>this._options.read(e).ignoreTrimWhitespace),this.maxComputationTimeMs=(0,I0.nK)(this,e=>this._options.read(e).maxComputationTime),this.showMoves=(0,I0.nK)(this,e=>this._options.read(e).experimental.showMoves&&this.renderSideBySide.read(e)),this.isInEmbeddedEditor=(0,I0.nK)(this,e=>this._options.read(e).isInEmbeddedEditor),this.diffWordWrap=(0,I0.nK)(this,e=>this._options.read(e).diffWordWrap),this.originalEditable=(0,I0.nK)(this,e=>this._options.read(e).originalEditable),this.diffCodeLens=(0,I0.nK)(this,e=>this._options.read(e).diffCodeLens),this.accessibilityVerbose=(0,I0.nK)(this,e=>this._options.read(e).accessibilityVerbose),this.diffAlgorithm=(0,I0.nK)(this,e=>this._options.read(e).diffAlgorithm),this.showEmptyDecorations=(0,I0.nK)(this,e=>this._options.read(e).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=(0,I0.nK)(this,e=>this._options.read(e).onlyShowAccessibleDiffViewer),this.compactMode=(0,I0.nK)(this,e=>this._options.read(e).compactMode),this.trueInlineDiffRenderingEnabled=(0,I0.nK)(this,e=>this._options.read(e).experimental.useTrueInlineView),this.useTrueInlineDiffRendering=(0,I0.nK)(this,e=>!this.renderSideBySide.read(e)&&this.trueInlineDiffRenderingEnabled.read(e)),this.hideUnchangedRegions=(0,I0.nK)(this,e=>this._options.read(e).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=(0,I0.nK)(this,e=>this._options.read(e).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=(0,I0.nK)(this,e=>this._options.read(e).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=(0,I0.nK)(this,e=>this._options.read(e).hideUnchangedRegions.minimumLineCount),this._model=(0,I0.uh)(this,void 0),this.shouldRenderInlineViewInSmartMode=this._model.map(this,e=>(0,m_.lI)(this,t=>{var s;let x=e?.diff.read(t);return x?(s=this.trueInlineDiffRenderingEnabled.read(t),x.mappings.every(e=>0===e.lineRangeMapping.original.length||0===e.lineRangeMapping.modified.length||s&&BF(e.lineRangeMapping))):void 0})).flatten().map(this,e=>!!e),this.inlineViewHideOriginalLineNumbers=this.compactMode;let s={...e,...mA(e,NJ)};this._options=(0,I0.uh)(this,s)}updateOptions(e){let t=mA(e,this._options.get()),s={...this._options.get(),...e,...t};this._options.set(s,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}setModel(e){this._model.set(e,void 0)}};function mA(e,t){return{enableSplitViewResizing:cd(e.enableSplitViewResizing,t.enableSplitViewResizing),splitViewDefaultRatio:function(e,t,s,x){if(void 0===e)return .5;let E=cG.float(e,.5);return cG.clamp(E,.1,.9)}(e.splitViewDefaultRatio,0,0,0),renderSideBySide:cd(e.renderSideBySide,t.renderSideBySide),renderMarginRevertIcon:cd(e.renderMarginRevertIcon,t.renderMarginRevertIcon),maxComputationTime:cp(e.maxComputationTime,t.maxComputationTime,0,1073741824),maxFileSize:cp(e.maxFileSize,t.maxFileSize,0,1073741824),ignoreTrimWhitespace:cd(e.ignoreTrimWhitespace,t.ignoreTrimWhitespace),renderIndicators:cd(e.renderIndicators,t.renderIndicators),originalEditable:cd(e.originalEditable,t.originalEditable),diffCodeLens:cd(e.diffCodeLens,t.diffCodeLens),renderOverviewRuler:cd(e.renderOverviewRuler,t.renderOverviewRuler),diffWordWrap:cm(e.diffWordWrap,t.diffWordWrap,["off","on","inherit"]),diffAlgorithm:cm(e.diffAlgorithm,t.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:cd(e.accessibilityVerbose,t.accessibilityVerbose),experimental:{showMoves:cd(e.experimental?.showMoves,t.experimental.showMoves),showEmptyDecorations:cd(e.experimental?.showEmptyDecorations,t.experimental.showEmptyDecorations),useTrueInlineView:cd(e.experimental?.useTrueInlineView,t.experimental.useTrueInlineView)},hideUnchangedRegions:{enabled:cd(e.hideUnchangedRegions?.enabled??e.experimental?.collapseUnchangedRegions,t.hideUnchangedRegions.enabled),contextLineCount:cp(e.hideUnchangedRegions?.contextLineCount,t.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:cp(e.hideUnchangedRegions?.minimumLineCount,t.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:cp(e.hideUnchangedRegions?.revealLineCount,t.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:cd(e.isInEmbeddedEditor,t.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:cd(e.onlyShowAccessibleDiffViewer,t.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:cp(e.renderSideBySideInlineBreakpoint,t.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:cd(e.useInlineViewWhenSpaceIsLimited,t.useInlineViewWhenSpaceIsLimited),renderGutterMenu:cd(e.renderGutterMenu,t.renderGutterMenu),compactMode:cd(e.compactMode,t.compactMode)}}mO=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([function(e,t){Nu(e,t,1)}],mO);var mo=function(e,t){return function(s,x){t(s,x,e)}};let mN=class extends mR{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,s,x,E,a,r,i){let n;super(),this._domElement=e,this._parentContextKeyService=x,this._parentInstantiationService=E,this._accessibilitySignalService=r,this._editorProgressService=i,this.elements=RW("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[RW("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),RW("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),RW("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register((0,I0.DN)(this,void 0)),this._diffModel=(0,I0.nK)(this,e=>this._diffModelSrc.read(e)?.object),this.onDidChangeModel=T0.ju.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new DF([Oo.i6,this._contextKeyService]))),this._boundarySashes=(0,I0.uh)(this,void 0),this._accessibleDiffViewerShouldBeVisible=(0,I0.uh)(this,!1),this._accessibleDiffViewerVisible=(0,I0.nK)(this,e=>!!this._options.onlyShowAccessibleDiffViewer.read(e)||this._accessibleDiffViewerShouldBeVisible.read(e)),this._movedBlocksLinesPart=(0,I0.uh)(this,void 0),this._layoutInfo=(0,I0.nK)(this,e=>{let t,s,x,E,a;let r=this._rootSizeObserver.width.read(e),i=this._rootSizeObserver.height.read(e);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=i+"px";let n=this._sash.read(e),_=this._gutter.read(e),T=_?.width.read(e)??0,S=this._overviewRulerPart.read(e)?.width??0;if(n){let i=n.sashLeft.read(e);t=0,s=i-T-(this._movedBlocksLinesPart.read(e)?.width.read(e)??0),a=i-T,E=r-(x=i)-S}else{a=0;let i=this._options.inlineViewHideOriginalLineNumbers.read(e);t=T,E=r-(x=T+(s=i?0:Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read(e))))-S}return this.elements.original.style.left=t+"px",this.elements.original.style.width=s+"px",this._editors.original.layout({width:s,height:i},!0),_?.layout(a),this.elements.modified.style.left=x+"px",this.elements.modified.style.width=E+"px",this._editors.modified.layout({width:E,height:i},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((e,t)=>e?.diff.read(t)),this.onDidUpdateDiff=T0.ju.fromObservableLight(this._diffValue),a.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register((0,TD.OF)(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new Gf(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout(t.automaticLayout??!1),this._options=this._instantiationService.createInstance(mO,t),this._register((0,I0.EH)(e=>{this._options.setWidth(this._rootSizeObserver.width.read(e))})),this._contextKeyService.createKey(eG.isEmbeddedDiffEditor.key,!1),this._register(mc(eG.isEmbeddedDiffEditor,this._contextKeyService,e=>this._options.isInEmbeddedEditor.read(e))),this._register(mc(eG.comparingMovedCode,this._contextKeyService,e=>!!this._diffModel.read(e)?.movedTextToCompare.read(e))),this._register(mc(eG.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,e=>this._options.couldShowInlineViewBecauseOfSize.read(e))),this._register(mc(eG.diffEditorInlineMode,this._contextKeyService,e=>!this._options.renderSideBySide.read(e))),this._register(mc(eG.hasChanges,this._contextKeyService,e=>(this._diffModel.read(e)?.diff.read(e)?.mappings.length??0)>0)),this._editors=this._register(this._instantiationService.createInstance(mS,this.elements.original,this.elements.modified,this._options,s,(e,t,s,x)=>this._createInnerEditor(e,t,s,x))),this._register(mc(eG.diffEditorOriginalWritable,this._contextKeyService,e=>this._options.originalEditable.read(e))),this._register(mc(eG.diffEditorModifiedWritable,this._contextKeyService,e=>!this._options.readOnly.read(e))),this._register(mc(eG.diffEditorOriginalUri,this._contextKeyService,e=>this._diffModel.read(e)?.model.original.uri.toString()??"")),this._register(mc(eG.diffEditorModifiedUri,this._contextKeyService,e=>this._diffModel.read(e)?.model.modified.uri.toString()??"")),this._overviewRulerPart=(0,Gp.kA)(this,e=>this._options.renderOverviewRuler.read(e)?this._instantiationService.createInstance(Bo(ma,e),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(e=>e.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);let _={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((e,t)=>e-(this._overviewRulerPart.read(t)?.width??0))};this._sashLayout=new Bv(this._options,_),this._sash=(0,Gp.kA)(this,e=>{let t=this._options.renderSideBySide.read(e);return this.elements.root.classList.toggle("side-by-side",t),t?new Bk(this.elements.root,_,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);let T=(0,Gp.kA)(this,e=>this._instantiationService.createInstance(Bo(ms,e),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);(0,Gp.kA)(this,e=>this._instantiationService.createInstance(Bo(Bb,e),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);let S=new Set,R=new Set,O=!1,A=(0,Gp.kA)(this,e=>this._instantiationService.createInstance(Bo(Bm,e),SK(this._domElement),this._editors,this._diffModel,this._options,this,()=>O||T.get().isUpdatingHiddenAreas,S,R)).recomputeInitiallyAndOnChange(this._store),o=(0,I0.nK)(this,e=>{let t=A.read(e).viewZones.read(e).orig,s=T.read(e).viewZones.read(e).origViewZones;return t.concat(s)}),N=(0,I0.nK)(this,e=>{let t=A.read(e).viewZones.read(e).mod,s=T.read(e).viewZones.read(e).modViewZones;return t.concat(s)});this._register(GX(this._editors.original,o,e=>{O=e},S)),this._register(GX(this._editors.modified,N,e=>{(O=e)?n=GY.capture(this._editors.modified):(n?.restore(this._editors.modified),n=void 0)},R)),this._accessibleDiffViewer=(0,Gp.kA)(this,e=>this._instantiationService.createInstance(Bo(Gq,e),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(e,t)=>this._accessibleDiffViewerShouldBeVisible.set(e,t),this._options.onlyShowAccessibleDiffViewer.map(e=>!e),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((e,t)=>e?.diff.read(t)?.mappings.map(e=>e.lineRangeMapping)),new G5(this._editors))).recomputeInitiallyAndOnChange(this._store);let I=this._accessibleDiffViewerVisible.map(e=>e?"hidden":"visible");this._register(GV(this.elements.modified,{visibility:I})),this._register(GV(this.elements.original,{visibility:I})),this._createDiffEditorContributions(),a.addDiffEditor(this),this._gutter=(0,Gp.kA)(this,e=>this._options.shouldRenderGutterMenu.read(e)?this._instantiationService.createInstance(Bo(B5,e),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register((0,I0.jx)(this._layoutInfo)),(0,Gp.kA)(this,e=>new(Bo(By,e))(this.elements.root,this._diffModel,this._layoutInfo.map(e=>e.originalEditor),this._layoutInfo.map(e=>e.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,e=>{this._movedBlocksLinesPart.set(e,void 0)}),this._register(T0.ju.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,e=>this._handleCursorPositionChange(e,!0))),this._register(T0.ju.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,e=>this._handleCursorPositionChange(e,!1)));let h=this._diffModel.map(this,(e,t)=>{if(e)return void 0===e.diff.read(t)&&!e.isDiffUpToDate.read(t)});this._register((0,I0.gp)((e,t)=>{if(!0===h.read(e)){let e=this._editorProgressService.show(!0,1e3);t.add((0,TD.OF)(()=>e.done()))}})),this._register((0,I0.gp)((e,t)=>{t.add(new(Bo(mi,e))(this._editors,this._diffModel,this._options,this))})),this._register((0,I0.gp)((e,t)=>{let s=this._diffModel.read(e);if(s)for(let e of[s.model.original,s.model.modified])t.add(e.onWillDispose(e=>{(0,TV.dL)(new TV.he("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register((0,I0.EH)(e=>{this._options.setModel(this._diffModel.read(e))}))}_createInnerEditor(e,t,s,x){return e.createInstance(GA,t,s,x)}_createDiffEditorContributions(){for(let e of f.getDiffEditorContributions())try{this._register(this._instantiationService.createInstance(e.ctor,this))}catch(e){(0,TV.dL)(e)}}get _targetEditor(){return this._editors.modified}getEditorType(){return MC.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){return{original:this._editors.original.saveViewState(),modified:this._editors.modified.saveViewState(),modelState:this._diffModel.get()?.serializeState()}}restoreViewState(e){e&&e.original&&e.modified&&(this._editors.original.restoreViewState(e.original),this._editors.modified.restoreViewState(e.modified),e.modelState&&this._diffModel.get()?.restoreSerializedState(e.modelState))}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(BC,e,this._options)}getModel(){return this._diffModel.get()?.model??null}setModel(e){let t=e?"model"in e?Gv.create(e).createNewRef(this):Gv.create(this.createViewModel(e),this):null;this.setDiffModel(t)}setDiffModel(e,t){let s=this._diffModel.get();!e&&s&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==e?.object&&(0,I0.c8)(t,t=>{let s=e?.object;I0.rD.batchEventsGlobally(t,()=>{this._editors.original.setModel(s?s.model.original:null),this._editors.modified.setModel(s?s.model.modified:null)});let x=this._diffModelSrc.get()?.createNewRef(this);this._diffModelSrc.set(e?.createNewRef(this),t),setTimeout(()=>{x?.dispose()},0)})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){let e=this._diffModel.get()?.diff.get();return e?e.mappings.map(e=>{let t,s,x,E;let a=e.lineRangeMapping,r=a.innerChanges;return a.original.isEmpty?(t=a.original.startLineNumber-1,s=0,r=void 0):(t=a.original.startLineNumber,s=a.original.endLineNumberExclusive-1),a.modified.isEmpty?(x=a.modified.startLineNumber-1,E=0,r=void 0):(x=a.modified.startLineNumber,E=a.modified.endLineNumberExclusive-1),{originalStartLineNumber:t,originalEndLineNumber:s,modifiedStartLineNumber:x,modifiedEndLineNumber:E,charChanges:r?.map(e=>({originalStartLineNumber:e.originalRange.startLineNumber,originalStartColumn:e.originalRange.startColumn,originalEndLineNumber:e.originalRange.endLineNumber,originalEndColumn:e.originalRange.endColumn,modifiedStartLineNumber:e.modifiedRange.startLineNumber,modifiedStartColumn:e.modifiedRange.startColumn,modifiedEndLineNumber:e.modifiedRange.endLineNumber,modifiedEndColumn:e.modifiedRange.endColumn}))}}):null}revert(e){let t=this._diffModel.get();t&&t.isDiffUpToDate.get()&&this._editors.modified.executeEdits("diffEditor",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}])}revertRangeMappings(e){let t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;let s=e.map(e=>({range:e.modifiedRange,text:t.model.original.getValueInRange(e.originalRange)}));this._editors.modified.executeEdits("diffEditor",s)}_goTo(e){this._editors.modified.setPosition(new N0.L(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){let t;let s=this._diffModel.get()?.diff.get()?.mappings;if(!s||0===s.length)return;let x=this._editors.modified.getPosition().lineNumber;t="next"===e?s.find(e=>e.lineRangeMapping.modified.startLineNumber>x)??s[0]:(0,Yr.dF)(s,e=>e.lineRangeMapping.modified.startLineNumber<x)??s[s.length-1],this._goTo(t),t.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(DZ.diffLineDeleted,{source:"diffEditor.goToDiff"}):t.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(DZ.diffLineInserted,{source:"diffEditor.goToDiff"}):t&&this._accessibilitySignalService.playSignal(DZ.diffLineModified,{source:"diffEditor.goToDiff"})}revealFirstDiff(){let e=this._diffModel.get();e&&this.waitForDiff().then(()=>{let t=e.diff.get()?.mappings;t&&0!==t.length&&this._goTo(t[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){let e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){let e;let t=this._editors.modified.hasWidgetFocus(),s=t?this._editors.modified:this._editors.original,x=t?this._editors.original:this._editors.modified,E=s.getSelection();if(E){let s=this._diffModel.get()?.diff.get()?.mappings.map(e=>t?e.lineRangeMapping.flip():e.lineRangeMapping);if(s){let t=Gb(E.getStartPosition(),s),x=Gb(E.getEndPosition(),s);e=OQ.e.plusRange(t,x)}}return{destination:x,destinationSelection:e}}switchSide(){let{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){let e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){let e=this._diffModel.get()?.unchangedRegions.get();e&&(0,I0.PS)(t=>{for(let s of e)s.collapseAll(t)})}showAllUnchangedRegions(){let e=this._diffModel.get()?.unchangedRegions.get();e&&(0,I0.PS)(t=>{for(let s of e)s.showAll(t)})}_handleCursorPositionChange(e,t){if(e?.reason===3){let s=this._diffModel.get()?.diff.get()?.mappings.find(s=>t?s.lineRangeMapping.modified.contains(e.position.lineNumber):s.lineRangeMapping.original.contains(e.position.lineNumber));s?.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(DZ.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):s?.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(DZ.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):s&&this._accessibilitySignalService.playSignal(DZ.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};mN=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([mo(3,Oo.i6),mo(4,Oe.TG),mo(5,Ot),mo(6,DK),mo(7,Ih)],mN);var mI=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},mh=function(e,t){return function(s,x){t(s,x,e)}};let mL=0,mC=!1,ml=class extends GA{constructor(e,t,s,x,E,a,r,R,O,A,o,N,I){let h={...t};h.ariaLabel=h.ariaLabel||W.editorViewAccessibleLabel,super(e,h,{},s,x,E,a,O,A,o,N,I),R instanceof Mt?this._standaloneKeybindingService=R:this._standaloneKeybindingService=null,function(e){if(!e){if(mC)return;mC=!0}!function(e){(i=document.createElement("div")).className="monaco-aria-container";let t=()=>{let e=document.createElement("div");return e.className="monaco-alert",e.setAttribute("role","alert"),e.setAttribute("aria-atomic","true"),i.appendChild(e),e};n=t(),_=t();let s=()=>{let e=document.createElement("div");return e.className="monaco-status",e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),i.appendChild(e),e};T=s(),S=s(),e.appendChild(i)}(e||Tu.document.body)}(h.ariaContainerElement),IB=(e,t)=>s.createInstance(Af,e,t,{}),IH=r}addCommand(e,t,s){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;let x="DYNAMIC_"+ ++mL,E=Oo.Ao.deserialize(s);return this._standaloneKeybindingService.addDynamicKeybinding(x,e,t,E),x}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw 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"),TD.JT.None;let t=e.id,s=e.label,x=Oo.Ao.and(Oo.Ao.equals("editorId",this.getId()),Oo.Ao.deserialize(e.precondition)),E=e.keybindings,a=Oo.Ao.and(x,Oo.Ao.deserialize(e.keybindingContext)),r=e.contextMenuGroupId||null,i=e.contextMenuOrder||0,n=(t,...s)=>Promise.resolve(e.run(this,...s)),_=new TD.SL,T=this.getId()+":"+t;if(_.add(OA.registerCommand(T,n)),r&&_.add(OP.appendMenuItem(Ou.EditorContext,{command:{id:T,title:s},when:x,group:r,order:i})),Array.isArray(E))for(let e of E)_.add(this._standaloneKeybindingService.addDynamicKeybinding(T,e,n,a));let S=new p4(T,s,s,void 0,x,(...t)=>Promise.resolve(e.run(this,...t)),this._contextKeyService);return this._actions.set(t,S),_.add((0,TD.OF)(()=>{this._actions.delete(t)})),_}_triggerCommand(e,t){if(this._codeEditorService instanceof Ar)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};ml=mI([mh(2,Oe.TG),mh(3,Ot),mh(4,OO),mh(5,Oo.i6),mh(6,Am),mh(7,AH),mh(8,As.XE),mh(9,AA),mh(10,Nu),mh(11,OJ.c_),mh(12,Oj.ILanguageFeaturesService)],ml);let mu=class extends ml{constructor(e,t,s,x,E,a,r,i,n,_,T,S,R,O,A,o){let N;let I={...t};M_(T,I,!1);let h=n.registerEditorContainer(e);"string"==typeof I.theme&&n.setTheme(I.theme),void 0!==I.autoDetectHighContrast&&n.setAutoDetectHighContrast(!!I.autoDetectHighContrast);let L=I.model;if(delete I.model,super(e,I,s,x,E,a,r,i,n,_,S,A,o),this._configurationService=T,this._standaloneThemeService=n,this._register(h),void 0===L){let e=O.getLanguageIdByMimeType(I.language)||I.language||NR.bd;N=mM(R,O,I.value||"",e,void 0),this._ownsModel=!0}else N=L,this._ownsModel=!1;if(this._attachModel(N),N){let e={oldModelUrl:null,newModelUrl:N.uri};this._onDidChangeModel.fire(e)}}dispose(){super.dispose()}updateOptions(e){M_(this._configurationService,e,!1),"string"==typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),void 0!==e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};mu=mI([mh(2,Oe.TG),mh(3,Ot),mh(4,OO),mh(5,Oo.i6),mh(6,Am),mh(7,AH),mh(8,Di),mh(9,AA),mh(10,AG.Ui),mh(11,Nu),mh(12,Os.IModelService),mh(13,NS.O),mh(14,OJ.c_),mh(15,Oj.ILanguageFeaturesService)],mu);let mD=class extends mN{constructor(e,t,s,x,E,a,r,i,n,_,T,S){let R={...t};M_(i,R,!0);let O=a.registerEditorContainer(e);"string"==typeof R.theme&&a.setTheme(R.theme),void 0!==R.autoDetectHighContrast&&a.setAutoDetectHighContrast(!!R.autoDetectHighContrast),super(e,R,{},x,s,E,S,_),this._configurationService=i,this._standaloneThemeService=a,this._register(O)}dispose(){super.dispose()}updateOptions(e){M_(this._configurationService,e,!0),"string"==typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),void 0!==e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,s){return e.createInstance(ml,t,s)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,s){return this.getModifiedEditor().addCommand(e,t,s)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};function mM(e,t,s,x,E){if(s=s||"",!x){let x=s.indexOf("\n"),a=s;return -1!==x&&(a=s.substring(0,x)),mP(e,s,t.createByFilepathOrFirstLine(E||null,a),E)}return mP(e,s,t.createById(x),E)}function mP(e,t,s,x){return e.createModel(t,s,x)}mD=mI([mh(2,Oe.TG),mh(3,Oo.i6),mh(4,Ot),mh(5,Di),mh(6,AA),mh(7,AG.Ui),mh(8,AF),mh(9,Ih),mh(10,DC),mh(11,DK)],mD),x(45888);var md=function(e,t){return function(s,x){t(s,x,e)}};class mU{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let mp=class extends TD.JT{constructor(e,t,s,x,E){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=s,this._instantiationService=x,this._viewModel=(0,B9.uh)(this,void 0),this._collapsed=(0,I0.nK)(this,e=>this._viewModel.read(e)?.collapsed.read(e)),this._editorContentHeight=(0,B9.uh)(this,500),this.contentHeight=(0,I0.nK)(this,e=>(this._collapsed.read(e)?0:this._editorContentHeight.read(e))+this._outerEditorHeight),this._modifiedContentWidth=(0,B9.uh)(this,0),this._modifiedWidth=(0,B9.uh)(this,0),this._originalContentWidth=(0,B9.uh)(this,0),this._originalWidth=(0,B9.uh)(this,0),this.maxScroll=(0,I0.nK)(this,e=>{let t=this._modifiedContentWidth.read(e)-this._modifiedWidth.read(e),s=this._originalContentWidth.read(e)-this._originalWidth.read(e);return t>s?{maxScroll:t,width:this._modifiedWidth.read(e)}:{maxScroll:s,width:this._originalWidth.read(e)}}),this._elements=RW("div.multiDiffEntry",[RW("div.header@header",[RW("div.header-content",[RW("div.collapse-button@collapseButton"),RW("div.file-path",[RW("div.title.modified.show-file-icons@primaryPath",[]),RW("div.status.deleted@status",["R"]),RW("div.title.original.show-file-icons@secondaryPath",[])]),RW("div.actions@actions")])]),RW("div.editorParent",[RW("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(mN,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=me(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=me(this.editor.getOriginalEditor()).isFocused,this.isFocused=(0,I0.nK)(this,e=>this.isModifedFocused.read(e)||this.isOriginalFocused.read(e)),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 TD.SL),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;let a=new Ly(this._elements.collapseButton,{});this._register((0,I0.EH)(e=>{a.element.className="",a.icon=this._collapsed.read(e)?AK.l.chevronRight:AK.l.chevronDown})),this._register(a.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register((0,I0.EH)(e=>{this._elements.editor.style.display=this._collapsed.read(e)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(e=>{let t=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(t,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(e=>{let t=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(t,void 0)})),this._register(this.editor.onDidContentSizeChange(e=>{(0,B9.Bl)(t=>{this._editorContentHeight.set(e.contentHeight,t),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),t),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),t)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(e=>{if(this._isSettingScrollTop||!e.scrollTopChanged||!this._data)return;let t=e.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(t)})),this._register((0,I0.EH)(e=>{let t=this._viewModel.read(e)?.isActive.read(e);this._elements.root.classList.toggle("active",t)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(E.createScoped(this._elements.actions));let r=this._register(this._instantiationService.createChild(new DF([Oo.i6,this._contextKeyService])));this._register(r.createInstance(B2,this._elements.actions,Ou.MultiDiffEditorFileToolbar,{actionRunner:this._register(new BK(()=>this._viewModel.get()?.modifiedUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:e=>e.startsWith("navigation")},actionViewItemProvider:(e,t)=>(function(e,t,s){return t instanceof OU?e.createInstance(hz,t,s):t instanceof Od?t.item.isSelection?e.createInstance(h$,t):t.item.rememberDefaultAction?e.createInstance(hj,t,{...s,persistLastActionId:!0}):e.createInstance(hq,t,s):void 0})(r,e,t)}))}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){function t(e){return{...e,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(this._data=e,!e){(0,B9.Bl)(e=>{this._viewModel.set(void 0,e),this.editor.setDiffModel(null,e),this._dataStore.clear()});return}let s=e.viewModel.documentDiffItem;if((0,B9.Bl)(x=>{this._resourceLabel?.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:void 0===e.viewModel.modifiedUri});let E=!1,a=!1,r=!1,i="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(i="R",E=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(i="A",r=!0):(i="D",a=!0),this._elements.status.classList.toggle("renamed",E),this._elements.status.classList.toggle("deleted",a),this._elements.status.classList.toggle("added",r),this._elements.status.innerText=i,this._resourceLabel2?.setUri(E?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,x),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,x),this.editor.updateOptions(t(s.options??{}))}),s.onOptionsDidChange&&this._dataStore.add(s.onOptionsDidChange(()=>{this.editor.updateOptions(t(s.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,e=>{e||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(let[t,s]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(t,s)}render(e,t,s,x){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";let E=e.length-this._headerHeight,a=Math.max(0,Math.min(x.start-e.start,E));this._elements.header.style.transform=`translateY(${a}px)`,(0,B9.Bl)(s=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=s,this.editor.getOriginalEditor().setScrollTop(s)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",a>0||s>0),this._elements.header.classList.toggle("collapsed",a===E)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};mp=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([md(3,Oe.TG),md(4,Oo.i6)],mp);class mY{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(0===this._unused.size)t=this._create(e),this._itemData.set(t,e);else{let s=[...this._unused.values()];t=s.find(t=>this._itemData.get(t).getId()===e.getId())??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(let e of this._used)e.dispose();for(let e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var mG=function(e,t){return function(s,x){t(s,x,e)}};let mB=class extends TD.JT{constructor(e,t,s,x,E,r){super(),this._element=e,this._dimension=t,this._viewModel=s,this._workbenchUIElementFactory=x,this._parentContextKeyService=E,this._parentInstantiationService=r,this._scrollableElements=RW("div.scrollContent",[RW("div@content",{style:{overflow:"hidden"}}),RW("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new Az({forceIntegerValues:!1,scheduleAtNextAnimationFrame:e=>a(SK(this._element),e),smoothScrollDuration:100})),this._scrollableElement=this._register(new A7(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=RW("div.monaco-component.multiDiffEditor",{},[RW("div",{},[this._scrollableElement.getDomNode()]),RW("div.placeholder@placeholder",{},[RW("div",[(0,ch.NC)("noChangedFiles","No Changed Files")])])]),this._sizeObserver=this._register(new Gf(this._element,void 0)),this._objectPool=this._register(new mY(e=>{let t=this._instantiationService.createInstance(mp,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return t.setData(e),t})),this.scrollTop=(0,I0.rD)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=(0,I0.rD)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=(0,I0.Be)(this,(e,t)=>{let s=this._viewModel.read(e);if(!s)return{items:[],getItem:e=>{throw new TV.he}};let x=s.items.read(e),E=new Map;return{items:x.map(e=>{let s=t.add(new mm(e,this._objectPool,this.scrollLeft,e=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+e})})),x=this._lastDocStates?.[s.getKey()];return x&&(0,B9.PS)(e=>{s.setViewState(x,e)}),E.set(e,s),s}),getItem:e=>E.get(e)}}),this._viewItems=this._viewItemsInfo.map(this,e=>e.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(e,t)=>e.reduce((e,s)=>e+s.contentHeight.read(t)+this._spaceBetweenPx,0)),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new DF([Oo.i6,this._contextKeyService]))),this._lastDocStates={},this._contextKeyService.createKey(eG.inMultiDiffEditor.key,!0),this._register((0,I0.gp)((e,t)=>{let s=this._viewModel.read(e);if(s&&s.contextKeys)for(let[e,x]of Object.entries(s.contextKeys)){let s=this._contextKeyService.createKey(e,void 0);s.set(x),t.add((0,TD.OF)(()=>s.reset()))}}));let i=this._parentContextKeyService.createKey(eG.multiDiffEditorAllCollapsed.key,!1);this._register((0,I0.EH)(e=>{let t=this._viewModel.read(e);if(t){let s=t.items.read(e).every(t=>t.collapsed.read(e));i.set(s)}})),this._register((0,I0.EH)(e=>{let t=this._dimension.read(e);this._sizeObserver.observe(t)})),this._register((0,I0.EH)(e=>{let t=this._viewItems.read(e);this._elements.placeholder.classList.toggle("visible",0===t.length)})),this._scrollableElements.content.style.position="relative",this._register((0,I0.EH)(e=>{let t=this._sizeObserver.height.read(e);this._scrollableElements.root.style.height=`${t}px`;let s=this._totalHeight.read(e);this._scrollableElements.content.style.height=`${s}px`;let x=this._sizeObserver.width.read(e),E=x,a=this._viewItems.read(e),r=(0,Yr.hV)(a,(0,cO.tT)(t=>t.maxScroll.read(e).maxScroll,cO.fv));r&&(E=x+r.maxScroll.read(e).maxScroll),this._scrollableElement.setScrollDimensions({width:x,height:t,scrollHeight:s,scrollWidth:E})})),e.replaceChildren(this._elements.root),this._register((0,TD.OF)(()=>{e.replaceChildren()})),this._register(this._register((0,I0.EH)(e=>{(0,B9.Bl)(t=>{this.render(e)})})))}render(e){let t=this.scrollTop.read(e),s=0,x=0,E=0,a=this._sizeObserver.height.read(e),r=GW.q.ofStartAndLength(t,a),i=this._sizeObserver.width.read(e);for(let n of this._viewItems.read(e)){let _=n.contentHeight.read(e),T=Math.min(_,a),S=GW.q.ofStartAndLength(x,T),R=GW.q.ofStartAndLength(E,_);if(R.isBefore(r))s-=_-T,n.hide();else if(R.isAfter(r))n.hide();else{let e=Math.max(0,Math.min(r.start-R.start,_-T));s-=e;let x=GW.q.ofStartAndLength(t+s,a);n.render(S,e,i,x)}x+=T+this._spaceBetweenPx,E+=_+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+s)}px)`}};mB=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([mG(4,Oo.i6),mG(5,Oe.TG)],mB);class mm extends TD.JT{constructor(e,t,s,x){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=s,this._deltaScrollVertical=x,this._templateRef=this._register((0,B9.DN)(this,void 0)),this.contentHeight=(0,I0.nK)(this,e=>this._templateRef.read(e)?.object.contentHeight?.read(e)??this.viewModel.lastTemplateData.read(e).contentHeight),this.maxScroll=(0,I0.nK)(this,e=>this._templateRef.read(e)?.object.maxScroll.read(e)??{maxScroll:0,scrollWidth:0}),this.template=(0,I0.nK)(this,e=>this._templateRef.read(e)?.object),this._isHidden=(0,I0.uh)(this,!1),this._isFocused=(0,I0.nK)(this,e=>this.template.read(e)?.isFocused.read(e)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register((0,I0.EH)(e=>{let t=this._scrollLeft.read(e);this._templateRef.read(e)?.object.setScrollLeft(t)})),this._register((0,I0.EH)(e=>{let t=this._templateRef.read(e);!t||!this._isHidden.read(e)||t.object.isFocused.read(e)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);let s=this.viewModel.lastTemplateData.get(),x=e.selections?.map(P4.Y.liftSelection);this.viewModel.lastTemplateData.set({...s,selections:x},t);let E=this._templateRef.get();E&&x&&E.object.editor.setSelections(x)}_updateTemplateData(e){let t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){let e=this._templateRef.get();e&&(0,B9.PS)(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,s,x){this._isHidden.set(!1,void 0);let E=this._templateRef.get();if(!E){E=this._objectPool.getUnusedObj(new mU(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(E,void 0);let e=this.viewModel.lastTemplateData.get().selections;e&&E.object.editor.setSelections(e)}E.object.render(e,s,t,x)}}(0,AY.P6G)("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},(0,ch.NC)("multiDiffEditor.headerBackground","The background color of the diff editor's header")),(0,AY.P6G)("multiDiffEditor.background",AY.cvW,(0,ch.NC)("multiDiffEditor.background","The background color of the multi file diff editor")),(0,AY.P6G)("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},(0,ch.NC)("multiDiffEditor.border","The border color of the multi file diff editor"));let mf=class extends TD.JT{constructor(e,t,s){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=s,this._dimension=(0,I0.uh)(this,void 0),this._viewModel=(0,I0.uh)(this,void 0),this._widgetImpl=(0,I0.Be)(this,(e,t)=>(Bo(mp,e),t.add(this._instantiationService.createInstance(Bo(mB,e),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register((0,I0.jx)(this._widgetImpl))}};function mg(e){let t=eD.get(AH);return t instanceof Mt?t.addDynamicKeybindings(e.map(e=>({keybinding:e.keybinding,command:e.command,commandArgs:e.commandArgs,when:Oo.Ao.deserialize(e.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),TD.JT.None)}function mF(e,t){return"boolean"==typeof e?e:t}function mH(e,t){return"string"==typeof e?e:t}function my(e,t=!1){t&&(e=e.map(function(e){return e.toLowerCase()}));let s=function(e){let t={};for(let s of e)t[s]=!0;return t}(e);return t?function(e){return void 0!==s[e.toLowerCase()]&&s.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==s[e]&&s.hasOwnProperty(e)}}function mV(e,t,s){let x;t=t.replace(/@@/g,`\x01`);let E=0;do x=!1,t=t.replace(/@(\w+)/g,function(s,E){x=!0;let a="";if("string"==typeof e[E])a=e[E];else if(e[E]&&e[E]instanceof RegExp)a=e[E].source;else{if(void 0===e[E])throw Mq(e,"language definition does not contain attribute '"+E+"', used at: "+t);throw Mq(e,"attribute reference '"+E+"' must be a string, used at: "+t)}return a?"(?:"+a+")":""}),E++;while(x&&E<5);t=t.replace(/\x01/g,"@");let a=(e.ignoreCase?"i":"")+(e.unicode?"u":"");if(s&&t.match(/\$[sS](\d\d?)/g)){let s=null,x=null;return E=>{let r;return x&&s===E?x:(s=E,x=new RegExp((r=null,t.replace(/\$[sS](\d\d?)/g,function(t,s){return(null===r&&(r=E.split(".")).unshift(E),s&&s<r.length)?MZ(e,r[s]):""})),a))}}return new RegExp(t,a)}mf=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([(p=Oe.TG,function(e,t){p(e,t,2)})],mf);class mX{constructor(e){this.regex=RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let s;if("string"==typeof t)s=t;else if(t instanceof RegExp)s=t.source;else throw Mq(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=s.length>0&&"^"===s[0],this.name=this.name+": "+s,this.regex=mV(e,"^(?:"+(this.matchOnlyAtLineStart?s.substr(1):s)+")",!0)}setAction(e,t){this.action=function e(t,s,x){if(!x)return{token:""};if("string"==typeof x)return x;if(x.token||""===x.token){if("string"!=typeof x.token)throw Mq(t,"a 'token' attribute must be of type string, in rule: "+s);{let e={token:x.token};if(x.token.indexOf("$")>=0&&(e.tokenSubst=!0),"string"==typeof x.bracket){if("@open"===x.bracket)e.bracket=1;else if("@close"===x.bracket)e.bracket=-1;else throw Mq(t,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+s)}if(x.next){if("string"!=typeof x.next)throw Mq(t,"the next state must be a string value in rule: "+s);{let E=x.next;if(!/^(@pop|@push|@popall)$/.test(E)&&("@"===E[0]&&(E=E.substr(1)),0>E.indexOf("$")&&!function(e,t){let s=t;for(;s&&s.length>0;){if(e.stateNames[s])return!0;let t=s.lastIndexOf(".");s=t<0?null:s.substr(0,t)}return!1}(t,Mj(t,E,"",[],""))))throw Mq(t,"the next state '"+x.next+"' is not defined in rule: "+s);e.next=E}}return"number"==typeof x.goBack&&(e.goBack=x.goBack),"string"==typeof x.switchTo&&(e.switchTo=x.switchTo),"string"==typeof x.log&&(e.log=x.log),"string"==typeof x.nextEmbedded&&(e.nextEmbedded=x.nextEmbedded,t.usesEmbedded=!0),e}}if(Array.isArray(x)){let E=[];for(let a=0,r=x.length;a<r;a++)E[a]=e(t,s,x[a]);return{group:E}}if(x.cases){let E=[];for(let a in x.cases)if(x.cases.hasOwnProperty(a)){let r=e(t,s,x.cases[a]);"@default"===a||"@"===a||""===a?E.push({test:void 0,value:r,name:a}):"@eos"===a?E.push({test:function(e,t,s,x){return x},value:r,name:a}):E.push(function(e,t,s,x){let E,a=-1,r=s,i=s.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);i&&(i[3]&&(a=parseInt(i[3]),i[2]&&(a+=100)),r=i[4]);let n="~",_=r;if(r&&0!==r.length?/^\w*$/.test(_)?n="==":(i=r.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(n=i[1],_=i[2]):(n="!=",_=""),("~"===n||"!~"===n)&&/^(\w|\|)*$/.test(_)){let t=my(_.split("|"),e.ignoreCase);E=function(e){return"~"===n?t(e):!t(e)}}else if("@"===n||"!@"===n){let s=e[_];if(!s)throw Mq(e,"the @ match target '"+_+"' is not defined, in rule: "+t);if(!function(e,t){if(!t||!Array.isArray(t))return!1;for(let s of t)if(!e(s))return!1;return!0}(function(e){return"string"==typeof e},s))throw Mq(e,"the @ match target '"+_+"' must be an array of strings, in rule: "+t);let x=my(s,e.ignoreCase);E=function(e){return"@"===n?x(e):!x(e)}}else if("~"===n||"!~"===n){if(0>_.indexOf("$")){let t=mV(e,"^"+_+"$",!1);E=function(e){return"~"===n?t.test(e):!t.test(e)}}else E=function(t,s,x,E){return mV(e,"^"+Mj(e,_,s,x,E)+"$",!1).test(t)}}else if(0>_.indexOf("$")){let t=MZ(e,_);E=function(e){return"=="===n?e===t:e!==t}}else{let t=MZ(e,_);E=function(s,x,E,a,r){let i=Mj(e,t,x,E,a);return"=="===n?s===i:s!==i}}return -1===a?{name:s,value:x,test:function(e,t,s,x){return E(e,e,t,s,x)}}:{name:s,value:x,test:function(e,t,s,x){let r=function(e,t,s,x){if(x<0)return e;if(x<t.length)return t[x];if(x>=100){x-=100;let e=s.split(".");if(e.unshift(s),x<e.length)return e[x]}return null}(e,t,s,a);return E(r||"",e,t,s,x)}}}(t,s,a,r))}let a=t.defaultToken;return{test:function(e,t,s,x){for(let a of E)if(!a.test||a.test(e,t,s,x))return a.value;return a}}}throw Mq(t,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+s)}(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function mb(e,t){if(!t||"object"!=typeof t)throw Error("Monarch: expecting a language definition object");let s={languageId:e,includeLF:mF(t.includeLF,!1),noThrow:!1,maxStack:100,start:"string"==typeof t.start?t.start:null,ignoreCase:mF(t.ignoreCase,!1),unicode:mF(t.unicode,!1),tokenPostfix:mH(t.tokenPostfix,"."+e),defaultToken:mH(t.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]};if(t.languageId=e,t.includeLF=s.includeLF,t.ignoreCase=s.ignoreCase,t.unicode=s.unicode,t.noThrow=s.noThrow,t.usesEmbedded=s.usesEmbedded,t.stateNames=t.tokenizer,t.defaultToken=s.defaultToken,!t.tokenizer||"object"!=typeof t.tokenizer)throw Mq(s,"a language definition must define the 'tokenizer' attribute as an object");for(let e in s.tokenizer=[],t.tokenizer)if(t.tokenizer.hasOwnProperty(e)){s.start||(s.start=e);let x=t.tokenizer[e];s.tokenizer[e]=[],function e(x,E,a){for(let r of a){let a=r.include;if(a){if("string"!=typeof a)throw Mq(s,"an 'include' attribute must be a string at: "+x);if("@"===a[0]&&(a=a.substr(1)),!t.tokenizer[a])throw Mq(s,"include target '"+a+"' is not defined at: "+x);e(x+"."+a,E,t.tokenizer[a])}else{let e=new mX(x);if(Array.isArray(r)&&r.length>=1&&r.length<=3){if(e.setRegex(t,r[0]),r.length>=3){if("string"==typeof r[1])e.setAction(t,{token:r[1],next:r[2]});else if("object"==typeof r[1]){let s=r[1];s.next=r[2],e.setAction(t,s)}else throw Mq(s,"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: "+x)}else e.setAction(t,r[1])}else{if(!r.regex)throw Mq(s,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+x);r.name&&"string"==typeof r.name&&(e.name=r.name),r.matchOnlyAtStart&&(e.matchOnlyAtLineStart=mF(r.matchOnlyAtLineStart,!1)),e.setRegex(t,r.regex),e.setAction(t,r.action)}E.push(e)}}}("tokenizer."+e,s.tokenizer[e],x)}if(s.usesEmbedded=t.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw Mq(s,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];let x=[];for(let e of t.brackets){let t=e;if(t&&Array.isArray(t)&&3===t.length&&(t={token:t[2],open:t[0],close:t[1]}),t.open===t.close)throw Mq(s,"open and close brackets in a 'brackets' attribute must be different: "+t.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"==typeof t.open&&"string"==typeof t.token&&"string"==typeof t.close)x.push({token:t.token+s.tokenPostfix,open:MZ(s,t.open),close:MZ(s,t.close)});else throw Mq(s,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return s.brackets=x,s.noThrow=!0,s}class mv{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,s){if("function"==typeof this._actual.tokenize)return mk.adaptTokenize(this._languageId,this._actual,e,s);throw Error("Not supported!")}tokenizeEncoded(e,t,s){let x=this._actual.tokenizeEncoded(e,s);return new NA.DI(x.tokens,x.endState)}}class mk{constructor(e,t,s,x){this._languageId=e,this._actual=t,this._languageService=s,this._standaloneThemeService=x}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){let s=[],x=0;for(let E=0,a=e.length;E<a;E++){let a=e[E],r=a.startIndex;0===E?r=0:r<x&&(r=x),s[E]=new NA.WU(r,a.scopes,t),x=r}return s}static adaptTokenize(e,t,s,x){let E;let a=t.tokenize(s,x),r=mk._toClassicTokens(a.tokens,e);return E=a.endState.equals(x)?x:a.endState,new NA.hG(r,E)}tokenize(e,t,s){return mk.adaptTokenize(this._languageId,this._actual,e,s)}_toBinaryTokens(e,t){let s=e.encodeLanguageId(this._languageId),x=this._standaloneThemeService.getColorTheme().tokenTheme,E=[],a=0,r=0;for(let e=0,i=t.length;e<i;e++){let i=t[e],n=1024|x.match(s,i.scopes);if(a>0&&E[a-1]===n)continue;let _=i.startIndex;0===e?_=0:_<r&&(_=r),E[a++]=_,E[a++]=n,r=_}let i=new Uint32Array(a);for(let e=0;e<a;e++)i[e]=E[e];return i}tokenizeEncoded(e,t,s){let x;let E=this._actual.tokenize(e,s),a=this._toBinaryTokens(this._languageService.languageIdCodec,E.tokens);return x=E.endState.equals(s)?s:E.endState,new NA.DI(a,x)}}function mw(e){return e&&"function"==typeof e.then}function mW(e,t){return"tokenizeEncoded"in t?new mv(e,t):new mk(e,t,eD.get(NS.O),eD.get(Di))}function mK(e,t){let s=new NA.MO(async()=>{let s=await Promise.resolve(t.create());return s?"function"==typeof s.getInitialState?mW(e,s):new M6(eD.get(NS.O),eD.get(Di),e,mb(e,s),eD.get(AG.Ui)):null});return NA.RW.registerFactory(e,s)}let mQ=(0,Oe.yh)("IEditorCancelService"),mJ=new Oo.uy("cancellableOperation",!1,(0,ch.NC)("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));(0,AE.z)(mQ,class{constructor(){this._tokens=new WeakMap}add(e,t){let s,x=this._tokens.get(e);return x||(x=e.invokeWithinContext(e=>({key:mJ.bindTo(e.get(Oo.i6)),tokens:new OT.S})),this._tokens.set(e,x)),x.key.set(!0),s=x.tokens.push(t),()=>{s&&(s(),x.key.set(!x.tokens.isEmpty()),s=void 0)}}cancel(e){let t=this._tokens.get(e);if(!t)return;let s=t.tokens.pop();s&&(s.cancel(),t.key.set(!t.tokens.isEmpty()))}},1),Og(new class extends Of{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:mJ})}runEditorCommand(e,t){e.get(mQ).cancel(t)}});class mZ{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return"string"==typeof e?e.toLowerCase():e._lower}}class mz{constructor(e){if(this._set=new Set,e)for(let t of e)this.add(t)}add(e){this._set.add(mZ.toKey(e))}has(e){return this._set.has(mZ.toKey(e))}}class mq{static{this._selectors=new OT.S}static setFormatterSelector(e){return{dispose:mq._selectors.unshift(e)}}static async select(e,t,s,x){if(0===e.length)return;let E=OS.$.first(mq._selectors);if(E)return await E(e,t,s,x)}}async function mj(e,t,s,x,E,a){for(let r of t.documentRangeFormattingEditProvider.ordered(s)){let t=await Promise.resolve(r.provideDocumentRangeFormattingEdits(s,x,E,a)).catch(TV.Cp);if((0,cO.Of)(t))return await e.computeMoreMinimalEdits(s.uri,t)}}async function m$(e,t,s,x,E){for(let a of function(e,t,s){let x=[],E=new mz;for(let t of e.ordered(s))x.push(t),t.extensionId&&E.add(t.extensionId);for(let e of t.ordered(s)){if(e.extensionId){if(E.has(e.extensionId))continue;E.add(e.extensionId)}x.push({displayName:e.displayName,extensionId:e.extensionId,provideDocumentFormattingEdits:(t,s,x)=>e.provideDocumentRangeFormattingEdits(t,t.getFullModelRange(),s,x)})}return x}(t.documentFormattingEditProvider,t.documentRangeFormattingEditProvider,s)){let t=await Promise.resolve(a.provideDocumentFormattingEdits(s,x,E)).catch(TV.Cp);if((0,cO.Of)(t))return await e.computeMoreMinimalEdits(s.uri,t)}}OA.registerCommand("_executeFormatRangeProvider",async function(e,...t){let[s,x,E]=t;(0,OR.p_)(TP.o.isUri(s)),(0,OR.p_)(OQ.e.isIRange(x));let a=e.get(Ox.ITextModelService),r=e.get(Li.IEditorWorkerService),i=e.get(Oj.ILanguageFeaturesService),n=await a.createModelReference(s);try{return mj(r,i,n.object.textEditorModel,OQ.e.lift(x),E,NH.Ts.None)}finally{n.dispose()}}),OA.registerCommand("_executeFormatDocumentProvider",async function(e,...t){let[s,x]=t;(0,OR.p_)(TP.o.isUri(s));let E=e.get(Ox.ITextModelService),a=e.get(Li.IEditorWorkerService),r=e.get(Oj.ILanguageFeaturesService),i=await E.createModelReference(s);try{return m$(a,r,i.object.textEditorModel,x,NH.Ts.None)}finally{i.dispose()}}),OA.registerCommand("_executeFormatOnTypeProvider",async function(e,...t){let[s,x,E,a]=t;(0,OR.p_)(TP.o.isUri(s)),(0,OR.p_)(N0.L.isIPosition(x)),(0,OR.p_)("string"==typeof E);let r=e.get(Ox.ITextModelService),i=e.get(Li.IEditorWorkerService),n=e.get(Oj.ILanguageFeaturesService),_=await r.createModelReference(s);try{return function(e,t,s,x,E,a,r){let i=t.onTypeFormattingEditProvider.ordered(s);return 0===i.length||0>i[0].autoFormatTriggerCharacters.indexOf(E)?Promise.resolve(void 0):Promise.resolve(i[0].provideOnTypeFormattingEdits(s,x,E,a,r)).catch(TV.Cp).then(t=>e.computeMoreMinimalEdits(s.uri,t))}(i,n,_.object.textEditorModel,N0.L.lift(x),E,a,NH.Ts.None)}finally{_.dispose()}}),TC.wrappingIndent.defaultValue=0,TC.glyphMargin.defaultValue=!1,TC.autoIndent.defaultValue=3,TC.overviewRulerLanes.defaultValue=2,mq.setFormatterSelector((e,t,s)=>Promise.resolve(e[0]));let m0=(0,Tl.createMonacoBaseAPI)();m0.editor={create:function(e,t,s){return eD.initialize(s||{}).createInstance(mu,e,t)},getEditors:function(){return eD.get(Ot).listCodeEditors()},getDiffEditors:function(){return eD.get(Ot).listDiffEditors()},onDidCreateEditor:function(e){return eD.get(Ot).onCodeEditorAdd(t=>{e(t)})},onDidCreateDiffEditor:function(e){return eD.get(Ot).onDiffEditorAdd(t=>{e(t)})},createDiffEditor:function(e,t,s){return eD.initialize(s||{}).createInstance(mD,e,t)},addCommand:function(e){if("string"!=typeof e.id||"function"!=typeof e.run)throw Error("Invalid command descriptor, `id` and `run` are required properties!");return OA.registerCommand(e.id,e.run)},addEditorAction:function(e){if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");let t=Oo.Ao.deserialize(e.precondition),s=new TD.SL;if(s.add(OA.registerCommand(e.id,(s,...x)=>Of.runEditorCommand(s,x,t,(t,s,x)=>Promise.resolve(e.run(s,...x))))),e.contextMenuGroupId){let x={command:{id:e.id,title:e.label},when:t,group:e.contextMenuGroupId,order:e.contextMenuOrder||0};s.add(OP.appendMenuItem(Ou.EditorContext,x))}if(Array.isArray(e.keybindings)){let x=eD.get(AH);if(x instanceof Mt){let E=Oo.Ao.and(t,Oo.Ao.deserialize(e.keybindingContext));s.add(x.addDynamicKeybindings(e.keybindings.map(t=>({keybinding:t,command:e.id,when:E}))))}else console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService")}return s},addKeybindingRule:function(e){return mg([e])},addKeybindingRules:mg,createModel:function(e,t,s){let x=eD.get(NS.O),E=x.getLanguageIdByMimeType(t)||t;return mM(eD.get(Os.IModelService),x,e,E,s)},setModelLanguage:function(e,t){let s=eD.get(NS.O),x=s.getLanguageIdByMimeType(t)||t||NR.bd;e.setLanguage(s.createById(x))},setModelMarkers:function(e,t,s){e&&eD.get(DX.lT).changeOne(t,e.uri,s)},getModelMarkers:function(e){return eD.get(DX.lT).read(e)},removeAllMarkers:function(e){eD.get(DX.lT).changeAll(e,[])},onDidChangeMarkers:function(e){return eD.get(DX.lT).onMarkerChanged(e)},getModels:function(){return eD.get(Os.IModelService).getModels()},getModel:function(e){return eD.get(Os.IModelService).getModel(e)},onDidCreateModel:function(e){return eD.get(Os.IModelService).onModelAdded(e)},onWillDisposeModel:function(e){return eD.get(Os.IModelService).onModelRemoved(e)},onDidChangeModelLanguage:function(e){return eD.get(Os.IModelService).onModelLanguageChanged(t=>{e({model:t.model,oldLanguage:t.oldLanguageId})})},createWebWorker:function(e){return new ML(eD.get(Os.IModelService),e)},colorizeElement:function(e,t){let s=eD.get(NS.O),x=eD.get(Di);return M9.colorizeElement(x,s,e,t).then(()=>{x.registerEditorContainer(e)})},colorize:function(e,t,s){let x=eD.get(NS.O);return eD.get(Di).registerEditorContainer(Tu.document.body),M9.colorize(x,e,t,s)},colorizeModelLine:function(e,t,s=4){return eD.get(Di).registerEditorContainer(Tu.document.body),M9.colorizeModelLine(e,t,s)},tokenize:function(e,t){var s;NA.RW.getOrCreate(t);let x=(s=t,NA.RW.get(s)||{getInitialState:()=>No.TJ,tokenize:(e,t,x)=>(0,No.Ri)(s,x)}),E=(0,TM.uq)(e),a=[],r=x.getInitialState();for(let e=0,t=E.length;e<t;e++){let t=E[e],s=x.tokenize(t,!0,r);a[e]=s.tokens,r=s.endState}return a},defineTheme:function(e,t){eD.get(Di).defineTheme(e,t)},setTheme:function(e){eD.get(Di).setTheme(e)},remeasureFonts:function(){R9.clearAllFontInfos()},registerCommand:function(e,t){return OA.registerCommand({id:e,handler:t})},registerLinkOpener:function(e){return eD.get(oe).registerOpener({open:async t=>("string"==typeof t&&(t=TP.o.parse(t)),e.open(t))})},registerEditorOpener:function(e){return eD.get(Ot).registerCodeEditorOpenHandler(async(t,s,x)=>{let E;if(!s)return null;let a=t.options?.selection;return(a&&"number"==typeof a.endLineNumber&&"number"==typeof a.endColumn?E=a:a&&(E={lineNumber:a.startLineNumber,column:a.startColumn}),await e.openCodeEditor(s,t.resource,E))?s:null})},AccessibilitySupport:Mu.ao,ContentWidgetPositionPreference:Mu.r3,CursorChangeReason:Mu.Vi,DefaultEndOfLine:Mu._x,EditorAutoIndentStrategy:Mu.rf,EditorOption:Mu.wT,EndOfLinePreference:Mu.gm,EndOfLineSequence:Mu.jl,MinimapPosition:Mu.F5,MinimapSectionHeaderStyle:Mu.WG,MouseTargetType:Mu.MG,OverlayWidgetPositionPreference:Mu.E$,OverviewRulerLane:Mu.sh,GlyphMarginLane:Mu.U,RenderLineNumbersType:Mu.Lu,RenderMinimap:Mu.vQ,ScrollbarVisibility:Mu.g_,ScrollType:Mu.g4,TextEditorCursorBlinkingStyle:Mu.In,TextEditorCursorStyle:Mu.d2,TrackedRangeStickiness:Mu.OI,WrappingIndent:Mu.up,InjectedTextCursorStops:Mu.RM,PositionAffinity:Mu.py,ShowLightbulbIconMode:Mu.$r,ConfigurationChangedEvent:cL,BareFontInfo:R5,FontInfo:R4,TextModelResolvedOptions:Ml.dJ,FindMatch:Ml.tk,ApplyUpdateResult:cu,EditorZoom:R3,createMultiFileDiffEditor:function(e,t){let s=eD.initialize(t||{});return new mf(e,{},s)},EditorType:MC,EditorOptions:TC},m0.languages={register:function(e){NR.dQ.registerLanguage(e)},getLanguages:function(){return[].concat(NR.dQ.getLanguages())},onLanguage:function(e,t){return eD.withServices(()=>{let s=eD.get(NS.O).onDidRequestRichLanguageFeatures(x=>{x===e&&(s.dispose(),t())});return s})},onLanguageEncountered:function(e,t){return eD.withServices(()=>{let s=eD.get(NS.O).onDidRequestBasicLanguageFeatures(x=>{x===e&&(s.dispose(),t())});return s})},getEncodedLanguageId:function(e){return eD.get(NS.O).languageIdCodec.encodeLanguageId(e)},setLanguageConfiguration:function(e,t){if(!eD.get(NS.O).isRegisteredLanguageId(e))throw Error(`Cannot set configuration for unknown language ${e}`);return eD.get(OJ.c_).register(e,t,100)},setColorMap:function(e){let t=eD.get(Di);if(e){let s=[null];for(let t=1,x=e.length;t<x;t++)s[t]=IV.Il.fromHex(e[t]);t.setColorMapOverride(s)}else t.setColorMapOverride(null)},registerTokensProviderFactory:mK,setTokensProvider:function(e,t){if(!eD.get(NS.O).isRegisteredLanguageId(e))throw Error(`Cannot set tokens provider for unknown language ${e}`);return mw(t)?mK(e,{create:()=>t}):NA.RW.register(e,mW(e,t))},setMonarchTokensProvider:function(e,t){return mw(t)?mK(e,{create:()=>t}):NA.RW.register(e,new M6(eD.get(NS.O),eD.get(Di),e,mb(e,t),eD.get(AG.Ui)))},registerReferenceProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).referenceProvider.register(e,t)},registerRenameProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).renameProvider.register(e,t)},registerNewSymbolNameProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).newSymbolNamesProvider.register(e,t)},registerCompletionItemProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).completionProvider.register(e,t)},registerSignatureHelpProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).signatureHelpProvider.register(e,t)},registerHoverProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).hoverProvider.register(e,{provideHover:async(e,s,x,E)=>{let a=e.getWordAtPosition(s);return Promise.resolve(t.provideHover(e,s,x,E)).then(e=>{if(e)return!e.range&&a&&(e.range=new OQ.e(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),e.range||(e.range=new OQ.e(s.lineNumber,s.column,s.lineNumber,s.column)),e})}})},registerDocumentSymbolProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentSymbolProvider.register(e,t)},registerDocumentHighlightProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentHighlightProvider.register(e,t)},registerLinkedEditingRangeProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).linkedEditingRangeProvider.register(e,t)},registerDefinitionProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).definitionProvider.register(e,t)},registerImplementationProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).implementationProvider.register(e,t)},registerTypeDefinitionProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).typeDefinitionProvider.register(e,t)},registerCodeLensProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).codeLensProvider.register(e,t)},registerCodeActionProvider:function(e,t,s){return eD.get(Oj.ILanguageFeaturesService).codeActionProvider.register(e,{providedCodeActionKinds:s?.providedCodeActionKinds,documentation:s?.documentation,provideCodeActions:(e,s,x,E)=>{let a=eD.get(DX.lT).read({resource:e.uri}).filter(e=>OQ.e.areIntersectingOrTouching(e,s));return t.provideCodeActions(e,s,{markers:a,only:x.only,trigger:x.trigger},E)},resolveCodeAction:t.resolveCodeAction})},registerDocumentFormattingEditProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentFormattingEditProvider.register(e,t)},registerDocumentRangeFormattingEditProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentRangeFormattingEditProvider.register(e,t)},registerOnTypeFormattingEditProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).onTypeFormattingEditProvider.register(e,t)},registerLinkProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).linkProvider.register(e,t)},registerColorProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).colorProvider.register(e,t)},registerFoldingRangeProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).foldingRangeProvider.register(e,t)},registerDeclarationProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).declarationProvider.register(e,t)},registerSelectionRangeProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).selectionRangeProvider.register(e,t)},registerDocumentSemanticTokensProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentSemanticTokensProvider.register(e,t)},registerDocumentRangeSemanticTokensProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentRangeSemanticTokensProvider.register(e,t)},registerInlineCompletionsProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).inlineCompletionsProvider.register(e,t)},registerInlineEditProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).inlineEditProvider.register(e,t)},registerInlayHintsProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).inlayHintsProvider.register(e,t)},DocumentHighlightKind:Mu.MY,CompletionItemKind:Mu.cm,CompletionItemTag:Mu.we,CompletionItemInsertTextRule:Mu.a7,SymbolKind:Mu.cR,SymbolTag:Mu.r4,IndentAction:Mu.wU,CompletionTriggerKind:Mu.Ij,SignatureHelpTriggerKind:Mu.WW,InlayHintKind:Mu.gl,InlineCompletionTriggerKind:Mu.bw,InlineEditTriggerKind:Mu.rn,CodeActionTriggerType:Mu.np,NewSymbolNameTag:Mu.w,NewSymbolNameTriggerKind:Mu.Ll,PartialAcceptTriggerKind:Mu.NA,HoverVerbosityAction:Mu.bq,FoldingRangeKind:NA.AD,SelectedSuggestionInfo:NA.ln},m0.CancellationTokenSource,m0.Emitter,m0.KeyCode,m0.KeyMod,m0.Position,m0.Range,m0.Selection,m0.SelectionDirection,m0.MarkerSeverity,m0.MarkerTag,m0.Uri,m0.Token,m0.editor,m0.languages;let m2=globalThis.MonacoEnvironment;(m2?.globalAPI||"function"==typeof define&&x.amdO)&&(globalThis.monaco=m0),void 0!==globalThis.require&&"function"==typeof globalThis.require.config&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});var m1=x(42206);function m3(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,x=Array(t);s<t;s++)x[s]=e[s];return x}function m7(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(e);t&&(x=x.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,x)}return s}function m5(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?m7(Object(s),!0).forEach(function(t){var x;x=s[t],t in e?Object.defineProperty(e,t,{value:x,enumerable:!0,configurable:!0,writable:!0}):e[t]=x}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):m7(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function m4(e){return function t(){for(var s=this,x=arguments.length,E=Array(x),a=0;a<x;a++)E[a]=arguments[a];return E.length>=e.length?e.apply(this,E):function(){for(var e=arguments.length,x=Array(e),a=0;a<e;a++)x[a]=arguments[a];return t.apply(s,[].concat(E,x))}}}function m6(e){return({}).toString.call(e).includes("Object")}function m8(e){return"function"==typeof e}var m9=m4(function(e,t){throw Error(e[t]||e.default)})({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),fe={changes:function(e,t){return m6(t)||m9("changeType"),Object.keys(t).some(function(t){return!Object.prototype.hasOwnProperty.call(e,t)})&&m9("changeField"),t},selector:function(e){m8(e)||m9("selectorType")},handler:function(e){m8(e)||m6(e)||m9("handlerType"),m6(e)&&Object.values(e).some(function(e){return!m8(e)})&&m9("handlersType")},initial:function(e){e||m9("initialIsRequired"),m6(e)||m9("initialType"),Object.keys(e).length||m9("initialContent")}};function ft(e,t){return m8(t)?t(e.current):t}function fs(e,t){return e.current=m5(m5({},e.current),t),t}function fx(e,t,s){return m8(t)?t(e.current):Object.keys(s).forEach(function(s){var x;return null===(x=t[s])||void 0===x?void 0:x.call(t,e.current[s])}),s}(function(e){return function t(){for(var s=this,x=arguments.length,E=Array(x),a=0;a<x;a++)E[a]=arguments[a];return E.length>=e.length?e.apply(this,E):function(){for(var e=arguments.length,x=Array(e),a=0;a<e;a++)x[a]=arguments[a];return t.apply(s,[].concat(E,x))}}})(function(e,t){throw Error(e[t]||e.default)})({configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "});let fE=function(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}};var fa={type:"cancelation",msg:"operation is manually canceled"};let fr=function(e){var t=!1,s=new Promise(function(s,x){e.then(function(e){return t?x(fa):s(e)}),e.catch(x)});return s.cancel=function(){return t=!0},s};var fi=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var s=[],x=!0,E=!1,a=void 0;try{for(var r,i=e[Symbol.iterator]();!(x=(r=i.next()).done)&&(s.push(r.value),2!==s.length);x=!0);}catch(e){E=!0,a=e}finally{try{x||null==i.return||i.return()}finally{if(E)throw a}}return s}}(e,2)||function(e,t){if(e){if("string"==typeof e)return m3(e,2);var s=Object.prototype.toString.call(e).slice(8,-1);if("Object"===s&&e.constructor&&(s=e.constructor.name),"Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return m3(e,t)}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(({create:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};fe.initial(e),fe.handler(t);var s={current:e},x=m4(fx)(s,t),E=m4(fs)(s),a=m4(fe.changes)(e),r=m4(ft)(s);return[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return fe.selector(e),e(s.current)},function(e){(function(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}})(x,E,a,r)(e)}]}}).create({config:{paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}},isInitialized:!1,resolve:null,reject:null,monaco:null}),0),fn=fi[0],f_=fi[1];function fc(e){return document.body.appendChild(e)}function fT(e){var t,s,x=fn(function(e){return{config:e.config,reject:e.reject}}),E=(t="".concat(x.config.paths.vs,"/loader.js"),s=document.createElement("script"),t&&(s.src=t),s);return E.onload=function(){return e()},E.onerror=x.reject,E}function fS(){var e=fn(function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(t){fR(t),e.resolve(t)},function(t){e.reject(t)})}function fR(e){fn().monaco||f_({monaco:e})}var fO=new Promise(function(e,t){return f_({resolve:e,reject:t})});let fA={init:function(){var e=fn(function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}});if(!e.isInitialized){if(f_({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),fr(fO);if(window.monaco&&window.monaco.editor)return fR(window.monaco),e.resolve(window.monaco),fr(fO);fE(fc,fT)(fS)}return fr(fO)},__getMonacoInstance:function(){return fn(function(e){return e.monaco})}};var fo={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},fN={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},fI=function({children:e}){return eQ.createElement("div",{style:fN.container},e)},fh=(0,eQ.memo)(function({width:e,height:t,isEditorReady:s,loading:x,_ref:E,className:a,wrapperProps:r}){return eQ.createElement("section",{style:{...fo.wrapper,width:e,height:t},...r},!s&&eQ.createElement(fI,null,x),eQ.createElement("div",{ref:E,style:{...fo.fullWidth,...!s&&fo.hide},className:a}))}),fL=function(e){(0,eQ.useEffect)(e,[])},fC=function(e,t,s=!0){let x=(0,eQ.useRef)(!0);(0,eQ.useEffect)(x.current||!s?()=>{x.current=!1}:e,t)};function fl(){}function fu(e,t,s,x){return e.editor.getModel(fD(e,x))||e.editor.createModel(t,s,x?fD(e,x):void 0)}function fD(e,t){return e.Uri.parse(t)}(0,eQ.memo)(function({original:e,modified:t,language:s,originalLanguage:x,modifiedLanguage:E,originalModelPath:a,modifiedModelPath:r,keepCurrentOriginalModel:i=!1,keepCurrentModifiedModel:n=!1,theme:_="light",loading:T="Loading...",options:S={},height:R="100%",width:O="100%",className:A,wrapperProps:o={},beforeMount:N=fl,onMount:I=fl}){let[h,L]=(0,eQ.useState)(!1),[C,l]=(0,eQ.useState)(!0),u=(0,eQ.useRef)(null),D=(0,eQ.useRef)(null),M=(0,eQ.useRef)(null),P=(0,eQ.useRef)(I),d=(0,eQ.useRef)(N),U=(0,eQ.useRef)(!1);fL(()=>{let e=fA.init();return e.then(e=>(D.current=e)&&l(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>{let t;return u.current?(t=u.current?.getModel(),void(i||t?.original?.dispose(),n||t?.modified?.dispose(),u.current?.dispose())):e.cancel()}}),fC(()=>{if(u.current&&D.current){let t=u.current.getOriginalEditor(),E=fu(D.current,e||"",x||s||"text",a||"");E!==t.getModel()&&t.setModel(E)}},[a],h),fC(()=>{if(u.current&&D.current){let e=u.current.getModifiedEditor(),x=fu(D.current,t||"",E||s||"text",r||"");x!==e.getModel()&&e.setModel(x)}},[r],h),fC(()=>{let e=u.current.getModifiedEditor();e.getOption(D.current.editor.EditorOption.readOnly)?e.setValue(t||""):t!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),e.pushUndoStop())},[t],h),fC(()=>{u.current?.getModel()?.original.setValue(e||"")},[e],h),fC(()=>{let{original:e,modified:t}=u.current.getModel();D.current.editor.setModelLanguage(e,x||s||"text"),D.current.editor.setModelLanguage(t,E||s||"text")},[s,x,E],h),fC(()=>{D.current?.editor.setTheme(_)},[_],h),fC(()=>{u.current?.updateOptions(S)},[S],h);let p=(0,eQ.useCallback)(()=>{if(!D.current)return;d.current(D.current);let i=fu(D.current,e||"",x||s||"text",a||""),n=fu(D.current,t||"",E||s||"text",r||"");u.current?.setModel({original:i,modified:n})},[s,t,E,e,x,a,r]),Y=(0,eQ.useCallback)(()=>{!U.current&&M.current&&(u.current=D.current.editor.createDiffEditor(M.current,{automaticLayout:!0,...S}),p(),D.current?.editor.setTheme(_),L(!0),U.current=!0)},[S,_,p]);return(0,eQ.useEffect)(()=>{h&&P.current(u.current,D.current)},[h]),(0,eQ.useEffect)(()=>{C||h||Y()},[C,h,Y]),eQ.createElement(fh,{width:O,height:R,isEditorReady:h,loading:T,_ref:M,className:A,wrapperProps:o})});var fM=function(){let[e,t]=(0,eQ.useState)(fA.__getMonacoInstance());return fL(()=>{let s;return e||(s=fA.init()).then(e=>{t(e)}),()=>s?.cancel()}),e},fP=function(e){let t=(0,eQ.useRef)();return(0,eQ.useEffect)(()=>{t.current=e},[e]),t.current},fd=new Map,fU=(0,eQ.memo)(function({defaultValue:e,defaultLanguage:t,defaultPath:s,value:x,language:E,path:a,theme:r="light",line:i,loading:n="Loading...",options:_={},overrideServices:T={},saveViewState:S=!0,keepCurrentModel:R=!1,width:O="100%",height:A="100%",className:o,wrapperProps:N={},beforeMount:I=fl,onMount:h=fl,onChange:L,onValidate:C=fl}){let[l,u]=(0,eQ.useState)(!1),[D,M]=(0,eQ.useState)(!0),P=(0,eQ.useRef)(null),d=(0,eQ.useRef)(null),U=(0,eQ.useRef)(null),p=(0,eQ.useRef)(h),Y=(0,eQ.useRef)(I),G=(0,eQ.useRef)(),B=(0,eQ.useRef)(x),m=fP(a),f=(0,eQ.useRef)(!1),g=(0,eQ.useRef)(!1);fL(()=>{let e=fA.init();return e.then(e=>(P.current=e)&&M(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>d.current?void(G.current?.dispose(),R?S&&fd.set(a,d.current.saveViewState()):d.current.getModel()?.dispose(),d.current.dispose()):e.cancel()}),fC(()=>{let r=fu(P.current,e||x||"",t||E||"",a||s||"");r!==d.current?.getModel()&&(S&&fd.set(m,d.current?.saveViewState()),d.current?.setModel(r),S&&d.current?.restoreViewState(fd.get(a)))},[a],l),fC(()=>{d.current?.updateOptions(_)},[_],l),fC(()=>{d.current&&void 0!==x&&(d.current.getOption(P.current.editor.EditorOption.readOnly)?d.current.setValue(x):x===d.current.getValue()||(g.current=!0,d.current.executeEdits("",[{range:d.current.getModel().getFullModelRange(),text:x,forceMoveMarkers:!0}]),d.current.pushUndoStop(),g.current=!1))},[x],l),fC(()=>{let e=d.current?.getModel();e&&E&&P.current?.editor.setModelLanguage(e,E)},[E],l),fC(()=>{void 0!==i&&d.current?.revealLine(i)},[i],l),fC(()=>{P.current?.editor.setTheme(r)},[r],l);let F=(0,eQ.useCallback)(()=>{if(!(!U.current||!P.current)&&!f.current){Y.current(P.current);let n=a||s,R=fu(P.current,x||e||"",t||E||"",n||"");d.current=P.current?.editor.create(U.current,{model:R,automaticLayout:!0,..._},T),S&&d.current.restoreViewState(fd.get(n)),P.current.editor.setTheme(r),void 0!==i&&d.current.revealLine(i),u(!0),f.current=!0}},[e,t,s,x,E,a,_,T,S,r,i]);return(0,eQ.useEffect)(()=>{l&&p.current(d.current,P.current)},[l]),(0,eQ.useEffect)(()=>{D||l||F()},[D,l,F]),B.current=x,(0,eQ.useEffect)(()=>{l&&L&&(G.current?.dispose(),G.current=d.current?.onDidChangeModelContent(e=>{g.current||L(d.current.getValue(),e)}))},[l,L]),(0,eQ.useEffect)(()=>{if(l){let e=P.current.editor.onDidChangeMarkers(e=>{let t=d.current.getModel()?.uri;if(t&&e.find(e=>e.path===t.path)){let e=P.current.editor.getModelMarkers({resource:t});C?.(e)}});return()=>{e?.dispose()}}return()=>{}},[l,C]),eQ.createElement(fh,{width:O,height:A,isEditorReady:l,loading:n,_ref:U,className:o,wrapperProps:N})});function fp(e,t,{checkForDefaultPrevented:s=!0}={}){return function(x){if(e?.(x),!1===s||!x.defaultPrevented)return t?.(x)}}function fY(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function fG(...e){return t=>{let s=!1,x=e.map(e=>{let x=fY(e,t);return s||"function"!=typeof x||(s=!0),x});if(s)return()=>{for(let t=0;t<x.length;t++){let s=x[t];"function"==typeof s?s():fY(e[t],null)}}}}function fB(...e){return eQ.useCallback(fG(...e),e)}function fm(e,t=[]){let s=[],x=()=>{let t=s.map(e=>eQ.createContext(e));return function(s){let x=s?.[e]||t;return eQ.useMemo(()=>({[`__scope${e}`]:{...s,[e]:x}}),[s,x])}};return x.scopeName=e,[function(t,x){let E=eQ.createContext(x),a=s.length;s=[...s,x];let r=t=>{let{scope:s,children:x,...r}=t,i=s?.[e]?.[a]||E,n=eQ.useMemo(()=>r,Object.values(r));return(0,ew.jsx)(i.Provider,{value:n,children:x})};return r.displayName=t+"Provider",[r,function(s,r){let i=r?.[e]?.[a]||E,n=eQ.useContext(i);if(n)return n;if(void 0!==x)return x;throw Error(`\`${s}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let s=()=>{let s=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let x=s.reduce((t,{useScope:s,scopeName:x})=>{let E=s(e)[`__scope${x}`];return{...t,...E}},{});return eQ.useMemo(()=>({[`__scope${t.scopeName}`]:x}),[x])}};return s.scopeName=t.scopeName,s}(x,...t)]}var ff=x(25517),fg=eQ.forwardRef((e,t)=>{let{children:s,...x}=e,E=eQ.Children.toArray(s),a=E.find(fy);if(a){let e=a.props.children,s=E.map(t=>t!==a?t:eQ.Children.count(e)>1?eQ.Children.only(null):eQ.isValidElement(e)?e.props.children:null);return(0,ew.jsx)(fF,{...x,ref:t,children:eQ.isValidElement(e)?eQ.cloneElement(e,void 0,s):null})}return(0,ew.jsx)(fF,{...x,ref:t,children:s})});fg.displayName="Slot";var fF=eQ.forwardRef((e,t)=>{let{children:s,...x}=e;if(eQ.isValidElement(s)){let e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(s=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}(s);return eQ.cloneElement(s,{...function(e,t){let s={...t};for(let x in t){let E=e[x],a=t[x];/^on[A-Z]/.test(x)?E&&a?s[x]=(...e)=>{a(...e),E(...e)}:E&&(s[x]=E):"style"===x?s[x]={...E,...a}:"className"===x&&(s[x]=[E,a].filter(Boolean).join(" "))}return{...e,...s}}(x,s.props),ref:t?fG(t,e):e})}return eQ.Children.count(s)>1?eQ.Children.only(null):null});fF.displayName="SlotClone";var fH=({children:e})=>(0,ew.jsx)(ew.Fragment,{children:e});function fy(e){return eQ.isValidElement(e)&&e.type===fH}var fV=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let s=eQ.forwardRef((e,s)=>{let{asChild:x,...E}=e,a=x?fg:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,ew.jsx)(a,{...E,ref:s})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{}),fX=x(20596),fb=x(80575),fv="dismissableLayer.update",fk=eQ.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),fw=eQ.forwardRef((e,t)=>{let{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:x,onPointerDownOutside:E,onFocusOutside:a,onInteractOutside:r,onDismiss:i,...n}=e,_=eQ.useContext(fk),[T,S]=eQ.useState(null),R=T?.ownerDocument??globalThis?.document,[,O]=eQ.useState({}),A=fB(t,e=>S(e)),o=Array.from(_.layers),[N]=[..._.layersWithOutsidePointerEventsDisabled].slice(-1),I=o.indexOf(N),h=T?o.indexOf(T):-1,L=_.layersWithOutsidePointerEventsDisabled.size>0,C=h>=I,l=function(e,t=globalThis?.document){let s=(0,fX.W)(e),x=eQ.useRef(!1),E=eQ.useRef(()=>{});return eQ.useEffect(()=>{let e=e=>{if(e.target&&!x.current){let x=function(){fK("dismissableLayer.pointerDownOutside",s,a,{discrete:!0})},a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",E.current),E.current=x,t.addEventListener("click",E.current,{once:!0})):x()}else t.removeEventListener("click",E.current);x.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",E.current)}},[t,s]),{onPointerDownCapture:()=>x.current=!0}}(e=>{let t=e.target,s=[..._.branches].some(e=>e.contains(t));!C||s||(E?.(e),r?.(e),e.defaultPrevented||i?.())},R),u=function(e,t=globalThis?.document){let s=(0,fX.W)(e),x=eQ.useRef(!1);return eQ.useEffect(()=>{let e=e=>{e.target&&!x.current&&fK("dismissableLayer.focusOutside",s,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,s]),{onFocusCapture:()=>x.current=!0,onBlurCapture:()=>x.current=!1}}(e=>{let t=e.target;[..._.branches].some(e=>e.contains(t))||(a?.(e),r?.(e),e.defaultPrevented||i?.())},R);return(0,fb.e)(e=>{h!==_.layers.size-1||(x?.(e),!e.defaultPrevented&&i&&(e.preventDefault(),i()))},R),eQ.useEffect(()=>{if(T)return s&&(0===_.layersWithOutsidePointerEventsDisabled.size&&(ev=R.body.style.pointerEvents,R.body.style.pointerEvents="none"),_.layersWithOutsidePointerEventsDisabled.add(T)),_.layers.add(T),fW(),()=>{s&&1===_.layersWithOutsidePointerEventsDisabled.size&&(R.body.style.pointerEvents=ev)}},[T,R,s,_]),eQ.useEffect(()=>()=>{T&&(_.layers.delete(T),_.layersWithOutsidePointerEventsDisabled.delete(T),fW())},[T,_]),eQ.useEffect(()=>{let e=()=>O({});return document.addEventListener(fv,e),()=>document.removeEventListener(fv,e)},[]),(0,ew.jsx)(fV.div,{...n,ref:A,style:{pointerEvents:L?C?"auto":"none":void 0,...e.style},onFocusCapture:fp(e.onFocusCapture,u.onFocusCapture),onBlurCapture:fp(e.onBlurCapture,u.onBlurCapture),onPointerDownCapture:fp(e.onPointerDownCapture,l.onPointerDownCapture)})});function fW(){let e=new CustomEvent(fv);document.dispatchEvent(e)}function fK(e,t,s,{discrete:x}){let E=s.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:s});(t&&E.addEventListener(e,t,{once:!0}),x)?E&&ff.flushSync(()=>E.dispatchEvent(a)):E.dispatchEvent(a)}fw.displayName="DismissableLayer",eQ.forwardRef((e,t)=>{let s=eQ.useContext(fk),x=eQ.useRef(null),E=fB(t,x);return eQ.useEffect(()=>{let e=x.current;if(e)return s.branches.add(e),()=>{s.branches.delete(e)}},[s.branches]),(0,ew.jsx)(fV.div,{...e,ref:E})}).displayName="DismissableLayerBranch";var fQ=x(85799),fJ=x(10266),fZ=x(91457),fz=eQ.forwardRef((e,t)=>{let{children:s,width:x=10,height:E=5,...a}=e;return(0,ew.jsx)(fV.svg,{...a,ref:t,width:x,height:E,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?s:(0,ew.jsx)("polygon",{points:"0,0 30,0 15,10"})})});fz.displayName="Arrow";var fq=x(80081),fj=x(50681),f$="Popper",[f0,f2]=fm(f$),[f1,f3]=f0(f$),f7=e=>{let{__scopePopper:t,children:s}=e,[x,E]=eQ.useState(null);return(0,ew.jsx)(f1,{scope:t,anchor:x,onAnchorChange:E,children:s})};f7.displayName=f$;var f5="PopperAnchor",f4=eQ.forwardRef((e,t)=>{let{__scopePopper:s,virtualRef:x,...E}=e,a=f3(f5,s),r=eQ.useRef(null),i=fB(t,r);return eQ.useEffect(()=>{a.onAnchorChange(x?.current||r.current)}),x?null:(0,ew.jsx)(fV.div,{...E,ref:i})});f4.displayName=f5;var f6="PopperContent",[f8,f9]=f0(f6),ge=eQ.forwardRef((e,t)=>{let{__scopePopper:s,side:x="bottom",sideOffset:E=0,align:a="center",alignOffset:r=0,arrowPadding:i=0,avoidCollisions:n=!0,collisionBoundary:_=[],collisionPadding:T=0,sticky:S="partial",hideWhenDetached:R=!1,updatePositionStrategy:O="optimized",onPlaced:A,...o}=e,N=f3(f6,s),[I,h]=eQ.useState(null),L=fB(t,e=>h(e)),[C,l]=eQ.useState(null),u=(0,fj.t)(C),D=u?.width??0,M=u?.height??0,P="number"==typeof T?T:{top:0,right:0,bottom:0,left:0,...T},d=Array.isArray(_)?_:[_],U=d.length>0,p={padding:P,boundary:d.filter(gE),altBoundary:U},{refs:Y,floatingStyles:G,placement:B,isPositioned:m,middlewareData:f}=(0,fJ.YF)({strategy:"fixed",placement:x+("center"!==a?"-"+a:""),whileElementsMounted:(...e)=>(0,fZ.Me)(...e,{animationFrame:"always"===O}),elements:{reference:N.anchor},middleware:[(0,fJ.cv)({mainAxis:E+M,alignmentAxis:r}),n&&(0,fJ.uY)({mainAxis:!0,crossAxis:!1,limiter:"partial"===S?(0,fJ.dr)():void 0,...p}),n&&(0,fJ.RR)({...p}),(0,fJ.dp)({...p,apply:({elements:e,rects:t,availableWidth:s,availableHeight:x})=>{let{width:E,height:a}=t.reference,r=e.floating.style;r.setProperty("--radix-popper-available-width",`${s}px`),r.setProperty("--radix-popper-available-height",`${x}px`),r.setProperty("--radix-popper-anchor-width",`${E}px`),r.setProperty("--radix-popper-anchor-height",`${a}px`)}}),C&&(0,fJ.x7)({element:C,padding:i}),ga({arrowWidth:D,arrowHeight:M}),R&&(0,fJ.Cp)({strategy:"referenceHidden",...p})]}),[g,F]=gr(B),H=(0,fX.W)(A);(0,fq.b)(()=>{m&&H?.()},[m,H]);let y=f.arrow?.x,V=f.arrow?.y,X=f.arrow?.centerOffset!==0,[b,v]=eQ.useState();return(0,fq.b)(()=>{I&&v(window.getComputedStyle(I).zIndex)},[I]),(0,ew.jsx)("div",{ref:Y.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:m?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:b,"--radix-popper-transform-origin":[f.transformOrigin?.x,f.transformOrigin?.y].join(" "),...f.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,ew.jsx)(f8,{scope:s,placedSide:g,onArrowChange:l,arrowX:y,arrowY:V,shouldHideArrow:X,children:(0,ew.jsx)(fV.div,{"data-side":g,"data-align":F,...o,ref:L,style:{...o.style,animation:m?void 0:"none"}})})})});ge.displayName=f6;var gt="PopperArrow",gs={top:"bottom",right:"left",bottom:"top",left:"right"},gx=eQ.forwardRef(function(e,t){let{__scopePopper:s,...x}=e,E=f9(gt,s),a=gs[E.placedSide];return(0,ew.jsx)("span",{ref:E.onArrowChange,style:{position:"absolute",left:E.arrowX,top:E.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[E.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[E.placedSide],visibility:E.shouldHideArrow?"hidden":void 0},children:(0,ew.jsx)(fz,{...x,ref:t,style:{...x.style,display:"block"}})})});function gE(e){return null!==e}gx.displayName=gt;var ga=e=>({name:"transformOrigin",options:e,fn(t){let{placement:s,rects:x,middlewareData:E}=t,a=E.arrow?.centerOffset!==0,r=a?0:e.arrowWidth,i=a?0:e.arrowHeight,[n,_]=gr(s),T={start:"0%",center:"50%",end:"100%"}[_],S=(E.arrow?.x??0)+r/2,R=(E.arrow?.y??0)+i/2,O="",A="";return"bottom"===n?(O=a?T:`${S}px`,A=`${-i}px`):"top"===n?(O=a?T:`${S}px`,A=`${x.floating.height+i}px`):"right"===n?(O=`${-i}px`,A=a?T:`${R}px`):"left"===n&&(O=`${x.floating.width+i}px`,A=a?T:`${R}px`),{data:{x:O,y:A}}}});function gr(e){let[t,s="center"]=e.split("-");return[t,s]}eQ.forwardRef((e,t)=>{let{container:s,...x}=e,[E,a]=eQ.useState(!1);(0,fq.b)(()=>a(!0),[]);let r=s||E&&globalThis?.document?.body;return r?ff.createPortal((0,ew.jsx)(fV.div,{...x,ref:t}),r):null}).displayName="Portal";var gi=e=>{let{present:t,children:s}=e,x=function(e){var t,s;let[x,E]=eQ.useState(),a=eQ.useRef({}),r=eQ.useRef(e),i=eQ.useRef("none"),[n,_]=(t=e?"mounted":"unmounted",s={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},eQ.useReducer((e,t)=>s[e][t]??e,t));return eQ.useEffect(()=>{let e=gn(a.current);i.current="mounted"===n?e:"none"},[n]),(0,fq.b)(()=>{let t=a.current,s=r.current;if(s!==e){let x=i.current,E=gn(t);e?_("MOUNT"):"none"===E||t?.display==="none"?_("UNMOUNT"):s&&x!==E?_("ANIMATION_OUT"):_("UNMOUNT"),r.current=e}},[e,_]),(0,fq.b)(()=>{if(x){let e;let t=x.ownerDocument.defaultView??window,s=s=>{let E=gn(a.current).includes(s.animationName);if(s.target===x&&E&&(_("ANIMATION_END"),!r.current)){let s=x.style.animationFillMode;x.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===x.style.animationFillMode&&(x.style.animationFillMode=s)})}},E=e=>{e.target===x&&(i.current=gn(a.current))};return x.addEventListener("animationstart",E),x.addEventListener("animationcancel",s),x.addEventListener("animationend",s),()=>{t.clearTimeout(e),x.removeEventListener("animationstart",E),x.removeEventListener("animationcancel",s),x.removeEventListener("animationend",s)}}_("ANIMATION_END")},[x,_]),{isPresent:["mounted","unmountSuspended"].includes(n),ref:eQ.useCallback(e=>{e&&(a.current=getComputedStyle(e)),E(e)},[])}}(t),E="function"==typeof s?s({present:x.isPresent}):eQ.Children.only(s),a=fB(x.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(s=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}(E));return"function"==typeof s||x.isPresent?eQ.cloneElement(E,{ref:a}):null};function gn(e){return e?.animationName||"none"}gi.displayName="Presence";var g_=x(1775),gc=eQ.forwardRef((e,t)=>(0,ew.jsx)(fV.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));gc.displayName="VisuallyHidden";var[gT,gS]=fm("Tooltip",[f2]),gR=f2(),gO="TooltipProvider",gA="tooltip.open",[go,gN]=gT(gO),gI=e=>{let{__scopeTooltip:t,delayDuration:s=700,skipDelayDuration:x=300,disableHoverableContent:E=!1,children:a}=e,[r,i]=eQ.useState(!0),n=eQ.useRef(!1),_=eQ.useRef(0);return eQ.useEffect(()=>{let e=_.current;return()=>window.clearTimeout(e)},[]),(0,ew.jsx)(go,{scope:t,isOpenDelayed:r,delayDuration:s,onOpen:eQ.useCallback(()=>{window.clearTimeout(_.current),i(!1)},[]),onClose:eQ.useCallback(()=>{window.clearTimeout(_.current),_.current=window.setTimeout(()=>i(!0),x)},[x]),isPointerInTransitRef:n,onPointerInTransitChange:eQ.useCallback(e=>{n.current=e},[]),disableHoverableContent:E,children:a})};gI.displayName=gO;var gh="Tooltip",[gL,gC]=gT(gh),gl=e=>{let{__scopeTooltip:t,children:s,open:x,defaultOpen:E=!1,onOpenChange:a,disableHoverableContent:r,delayDuration:i}=e,n=gN(gh,e.__scopeTooltip),_=gR(t),[T,S]=eQ.useState(null),R=(0,fQ.M)(),O=eQ.useRef(0),A=r??n.disableHoverableContent,o=i??n.delayDuration,N=eQ.useRef(!1),[I=!1,h]=(0,g_.T)({prop:x,defaultProp:E,onChange:e=>{e?(n.onOpen(),document.dispatchEvent(new CustomEvent(gA))):n.onClose(),a?.(e)}}),L=eQ.useMemo(()=>I?N.current?"delayed-open":"instant-open":"closed",[I]),C=eQ.useCallback(()=>{window.clearTimeout(O.current),O.current=0,N.current=!1,h(!0)},[h]),l=eQ.useCallback(()=>{window.clearTimeout(O.current),O.current=0,h(!1)},[h]),u=eQ.useCallback(()=>{window.clearTimeout(O.current),O.current=window.setTimeout(()=>{N.current=!0,h(!0),O.current=0},o)},[o,h]);return eQ.useEffect(()=>()=>{O.current&&(window.clearTimeout(O.current),O.current=0)},[]),(0,ew.jsx)(f7,{..._,children:(0,ew.jsx)(gL,{scope:t,contentId:R,open:I,stateAttribute:L,trigger:T,onTriggerChange:S,onTriggerEnter:eQ.useCallback(()=>{n.isOpenDelayed?u():C()},[n.isOpenDelayed,u,C]),onTriggerLeave:eQ.useCallback(()=>{A?l():(window.clearTimeout(O.current),O.current=0)},[l,A]),onOpen:C,onClose:l,disableHoverableContent:A,children:s})})};gl.displayName=gh;var gu="TooltipTrigger",gD=eQ.forwardRef((e,t)=>{let{__scopeTooltip:s,...x}=e,E=gC(gu,s),a=gN(gu,s),r=gR(s),i=fB(t,eQ.useRef(null),E.onTriggerChange),n=eQ.useRef(!1),_=eQ.useRef(!1),T=eQ.useCallback(()=>n.current=!1,[]);return eQ.useEffect(()=>()=>document.removeEventListener("pointerup",T),[T]),(0,ew.jsx)(f4,{asChild:!0,...r,children:(0,ew.jsx)(fV.button,{"aria-describedby":E.open?E.contentId:void 0,"data-state":E.stateAttribute,...x,ref:i,onPointerMove:fp(e.onPointerMove,e=>{"touch"===e.pointerType||_.current||a.isPointerInTransitRef.current||(E.onTriggerEnter(),_.current=!0)}),onPointerLeave:fp(e.onPointerLeave,()=>{E.onTriggerLeave(),_.current=!1}),onPointerDown:fp(e.onPointerDown,()=>{n.current=!0,document.addEventListener("pointerup",T,{once:!0})}),onFocus:fp(e.onFocus,()=>{n.current||E.onOpen()}),onBlur:fp(e.onBlur,E.onClose),onClick:fp(e.onClick,E.onClose)})})});gD.displayName=gu;var[gM,gP]=gT("TooltipPortal",{forceMount:void 0}),gd="TooltipContent",gU=eQ.forwardRef((e,t)=>{let s=gP(gd,e.__scopeTooltip),{forceMount:x=s.forceMount,side:E="top",...a}=e,r=gC(gd,e.__scopeTooltip);return(0,ew.jsx)(gi,{present:x||r.open,children:r.disableHoverableContent?(0,ew.jsx)(gB,{side:E,...a,ref:t}):(0,ew.jsx)(gp,{side:E,...a,ref:t})})}),gp=eQ.forwardRef((e,t)=>{let s=gC(gd,e.__scopeTooltip),x=gN(gd,e.__scopeTooltip),E=eQ.useRef(null),a=fB(t,E),[r,i]=eQ.useState(null),{trigger:n,onClose:_}=s,T=E.current,{onPointerInTransitChange:S}=x,R=eQ.useCallback(()=>{i(null),S(!1)},[S]),O=eQ.useCallback((e,t)=>{let s=e.currentTarget,x={x:e.clientX,y:e.clientY},E=function(e,t){let s=Math.abs(t.top-e.y),x=Math.abs(t.bottom-e.y),E=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(s,x,E,a)){case a:return"left";case E:return"right";case s:return"top";case x:return"bottom";default:throw Error("unreachable")}}(x,s.getBoundingClientRect());i(function(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0),function(e){if(e.length<=1)return e.slice();let t=[];for(let s=0;s<e.length;s++){let x=e[s];for(;t.length>=2;){let e=t[t.length-1],s=t[t.length-2];if((e.x-s.x)*(x.y-s.y)>=(e.y-s.y)*(x.x-s.x))t.pop();else break}t.push(x)}t.pop();let s=[];for(let t=e.length-1;t>=0;t--){let x=e[t];for(;s.length>=2;){let e=s[s.length-1],t=s[s.length-2];if((e.x-t.x)*(x.y-t.y)>=(e.y-t.y)*(x.x-t.x))s.pop();else break}s.push(x)}return(s.pop(),1===t.length&&1===s.length&&t[0].x===s[0].x&&t[0].y===s[0].y)?t:t.concat(s)}(t)}([...function(e,t,s=5){let x=[];switch(t){case"top":x.push({x:e.x-s,y:e.y+s},{x:e.x+s,y:e.y+s});break;case"bottom":x.push({x:e.x-s,y:e.y-s},{x:e.x+s,y:e.y-s});break;case"left":x.push({x:e.x+s,y:e.y-s},{x:e.x+s,y:e.y+s});break;case"right":x.push({x:e.x-s,y:e.y-s},{x:e.x-s,y:e.y+s})}return x}(x,E),...function(e){let{top:t,right:s,bottom:x,left:E}=e;return[{x:E,y:t},{x:s,y:t},{x:s,y:x},{x:E,y:x}]}(t.getBoundingClientRect())])),S(!0)},[S]);return eQ.useEffect(()=>()=>R(),[R]),eQ.useEffect(()=>{if(n&&T){let e=e=>O(e,T),t=e=>O(e,n);return n.addEventListener("pointerleave",e),T.addEventListener("pointerleave",t),()=>{n.removeEventListener("pointerleave",e),T.removeEventListener("pointerleave",t)}}},[n,T,O,R]),eQ.useEffect(()=>{if(r){let e=e=>{let t=e.target,s={x:e.clientX,y:e.clientY},x=n?.contains(t)||T?.contains(t),E=!function(e,t){let{x:s,y:x}=e,E=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let r=t[e].x,i=t[e].y,n=t[a].x,_=t[a].y;i>x!=_>x&&s<(n-r)*(x-i)/(_-i)+r&&(E=!E)}return E}(s,r);x?R():E&&(R(),_())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[n,T,r,_,R]),(0,ew.jsx)(gB,{...e,ref:a})}),[gY,gG]=gT(gh,{isInside:!1}),gB=eQ.forwardRef((e,t)=>{let{__scopeTooltip:s,children:x,"aria-label":E,onEscapeKeyDown:a,onPointerDownOutside:r,...i}=e,n=gC(gd,s),_=gR(s),{onClose:T}=n;return eQ.useEffect(()=>(document.addEventListener(gA,T),()=>document.removeEventListener(gA,T)),[T]),eQ.useEffect(()=>{if(n.trigger){let e=e=>{let t=e.target;t?.contains(n.trigger)&&T()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[n.trigger,T]),(0,ew.jsx)(fw,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:r,onFocusOutside:e=>e.preventDefault(),onDismiss:T,children:(0,ew.jsxs)(ge,{"data-state":n.stateAttribute,..._,...i,ref:t,style:{...i.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,ew.jsx)(fH,{children:x}),(0,ew.jsx)(gY,{scope:s,isInside:!0,children:(0,ew.jsx)(gc,{id:n.contentId,role:"tooltip",children:E||x})})]})})});gU.displayName=gd;var gm="TooltipArrow";eQ.forwardRef((e,t)=>{let{__scopeTooltip:s,...x}=e,E=gR(s);return gG(gm,s).isInside?null:(0,ew.jsx)(gx,{...E,...x,ref:t})}).displayName=gm;var gf=x(13601);let gg=eQ.forwardRef(({className:e,sideOffset:t=4,...s},x)=>ew.jsx(gU,{ref:x,sideOffset:t,className:(0,gf.cn)("z-50 overflow-hidden rounded-md border bg-popover text-popover-foreground px-3 py-1.5 text-sm shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...s}));function gF({text:e,children:t}){return ew.jsx(gI,{children:(0,ew.jsxs)(gl,{children:[ew.jsx(gD,{children:t}),ew.jsx(gg,{children:ew.jsx("p",{className:"text-xs",children:e})})]})})}gg.displayName=gU.displayName;var gH=x(3090),gy=x(75689);function gV(){let[e,t]=(0,eK.v1)("query",eK.Oi.withDefault(""));return[decodeURIComponent(e),t]}function gX({table:e,isLiveQuery:t}){let{chainName:s,worldAddress:x}=(0,eW.useParams)(),{id:E}=(0,eJ.A)(),[a]=gV(),r=(0,eZ.Y)(E);return(0,e$.a)({queryKey:["tableData",s,x,a],queryFn:async()=>{let e=performance.now(),t=await fetch(r.url,{method:"POST",headers:{"Content-Type":"application/json"},body:(0,ez.P)([{address:x,query:a}])}),s=await t.json();if(!t.ok)throw Error(s.msg||"Network response was not ok");let E=performance.now()-e,i=s.block_height;return{...s,queryDuration:E,blockHeight:i}},select:t=>{if(!e||!t?.result?.[0])return;let s=t.result[0];if(!s[0])return;let x=Object.keys(e.schema),E=s[0]?.map(e=>x.find(t=>t.toLowerCase()===e)||e),a=s.slice(1).map(t=>Object.fromEntries(E.map((s,x)=>{let E=t[x],a=e?.schema[s];return a?.type==="bool"?[s,"sqlite"===r.type?"1"===E:E]:[s,E]})));return{columns:E,rows:a,queryDuration:t.queryDuration,blockHeight:t.blockHeight}},retry:!1,enabled:!!e&&!!a,refetchInterval:e=>!e.state.error&&!!t&&1e3})}let gb=[5,10,20,30,40,50,100],gv={fontSize:14,fontWeight:"normal",wordWrap:"on",wrappingStrategy:"advanced",lineNumbers:"off",lineNumbersMinChars:0,overviewRulerLanes:0,overviewRulerBorder:!1,hideCursorInOverviewRuler:!0,lineDecorationsWidth:0,glyphMargin:!1,folding:!1,scrollBeyondLastColumn:0,scrollBeyondLastLine:!1,scrollbar:{horizontal:"hidden",vertical:"hidden",alwaysConsumeMouseWheel:!1,handleMouseWheel:!1},find:{addExtraSpaceOnTop:!1,autoFindInSelection:"never",seedSearchStringFromSelection:"never"},minimap:{enabled:!1},wordBasedSuggestions:"off",links:!1,occurrencesHighlight:"off",cursorStyle:"line-thin",renderLineHighlight:"none",contextmenu:!1,roundedSelection:!1,hover:{delay:100},acceptSuggestionOnEnter:"on",automaticLayout:!0,fixedOverflowWidgets:!0};function gk(e=10){let[t,s]=(0,eK.v1)("page",eK.U.withDefault(0)),[x,E]=(0,eK.v1)("pageSize",eK.U.withDefault(e));return[{pageIndex:t,pageSize:x},(0,eQ.useCallback)(e=>{s(e.pageIndex),E(e.pageSize)},[s,E])]}var gw=x(2640),gW=x(30103);let gK=new gW.Parser,gQ={database:"Postgresql"};function gJ(e,t){let s=e.split("\n"),x=1,E=1,a=0;for(let r=0;r<s.length;r++){let i=s[r]?.length;if(i){if(a+i>=e.indexOf(t)){x=r+1,E=e.indexOf(t)-a+1;break}a+=i+1}}return{startLineNumber:x,endLineNumber:x,startColumn:E,endColumn:E+t.length}}let gZ=new gW.Parser,gz={database:"Postgresql"};function gq(e){try{let t=decodeURIComponent(e),s=gZ.astify(t,gz);if(Array.isArray(s)&&s.length>0){let e=s[0];e&&(s=e)}let x=null,E=null;return"limit"in s&&(s.limit?.seperator==="offset"?(x=s.limit?.value?.[0]?.value,E=s.limit?.value?.[1]?.value):x=s.limit?.value?.[0]?.value),{limit:x,offset:E}}catch(e){return console.error("Error parsing query:",e),{limit:null,offset:null}}}function gj({table:e,isLiveQuery:t,setIsLiveQuery:s}){let x=(0,eQ.useRef)(null),E=(0,eQ.useRef)(null),[a,r]=(0,eQ.useState)(!1),[i,n]=(0,eQ.useState)(!1),[_,T]=gk(),[S,R]=gV(),O=function(e){let t=fM(),{worldAddress:s}=(0,eW.useParams)(),{id:x}=(0,eJ.A)(),E=(0,eZ.Y)(x),a=function(){let e=fM();return(0,eQ.useCallback)(({message:t,startLineNumber:s,endLineNumber:x,startColumn:E,endColumn:a})=>{let r=e?.editor.getModels()[0];r&&e.editor.setModelMarkers(r,"sql",[{severity:e.MarkerSeverity.Error,message:t,startLineNumber:s,endLineNumber:x,startColumn:E,endColumn:a}])},[e])}();return(0,eQ.useCallback)(x=>{var r;if(!t||!e)return!0;let i=(r=decodeURIComponent(x)).endsWith(";")?r:`${r};`;try{let x=gK.astify(i,gQ);if("columns"in x&&Array.isArray(x.columns))for(let t of x.columns){let s=t.expr.column;if(!Object.keys(e.schema).includes(s))return a({message:`Column '${s}' does not exist in the table schema.`,...gJ(i,s)}),!1}if("from"in x&&Array.isArray(x.from)){for(let t of x.from)if("table"in t){let x=t.table,r=ci(e,s,E.type);if(x!==r)return a({message:`Only '${r}' is available for this query.`,...gJ(i,x)}),!1}}let r=t?.editor.getModels()[0];return r&&t.editor.setModelMarkers(r,"sql",[]),!0}catch(e){if(e instanceof Error){let t=i.split("\n"),s=t[t.length-1];a({message:e.message,startLineNumber:1,endLineNumber:t.length,startColumn:1,endColumn:s?s.length+1:1})}return!1}},[t,e,a,s,E.type])}(e),{data:A,refetch:o,isRefetching:N}=gX({table:e,isLiveQuery:t});fM(),function(e){let{worldAddress:t}=(0,eW.useParams)(),{id:s}=(0,eJ.A)(),x=(0,eZ.Y)(s);(0,eQ.useMemo)(()=>{if(!e||!t||!s)return null;let E=ci(e,t,x.type),a=Object.keys(e.schema);return new gw.SQLAutocomplete(gw.SQLDialect.PLpgSQL,[E],a)},[e,t,s,x.type])}(e);let I=(0,m1.cI)({defaultValues:{query:S}}),h=I.watch("query"),L=I.handleSubmit(({query:e})=>{if(O(e)){R(e);let{limit:t,offset:s}=gq(e);null==t||null==s?T({..._,pageIndex:0}):gb.includes(t)&&(0===s||s%t==0)?T({pageSize:t,pageIndex:s/t}):T({..._,pageIndex:0}),n(!0),o().finally(()=>n(!1))}}),C=()=>{if(x.current){let e=Math.min(200,x.current.getContentHeight());E.current&&(E.current.style.height=`${e}px`),x.current.layout({width:x.current.getLayoutInfo().width,height:e})}};return ew.jsx(gy.l0,{...I,children:(0,ew.jsxs)("form",{onSubmit:L,className:"space-y-4",children:[(0,ew.jsxs)("div",{className:(0,gf.cn)("relative w-full rounded-md border bg-black px-3 py-2 ring-offset-background",{"outline-none ring-2 ring-ring ring-offset-2":a}),children:[ew.jsx(gy.Wi,{name:"query",render:({field:e})=>ew.jsx("div",{ref:E,className:"min-h-[21px] w-full",children:ew.jsx(fU,{width:"100%",theme:"vs-dark",value:decodeURIComponent(e.value),options:gv,language:"sql",onChange:t=>e.onChange(encodeURIComponent(t??"")),onMount:(e,t)=>{x.current=e,t.editor.defineTheme("custom-vs-dark",{base:"vs-dark",inherit:!0,rules:[{token:"string.sql",foreground:"#C5947C"}],colors:{"editor.background":"#000000"}}),t.editor.setTheme("custom-vs-dark"),C(),e.onDidContentSizeChange(C),e.onDidFocusEditorText(()=>r(!0)),e.onDidBlurEditorText(()=>r(!1))},loading:null})})}),h!==S?ew.jsx("span",{className:"absolute right-1 top-[-6px] text-5xl text-primary",children:ew.jsx("span",{className:"text-5xl text-primary",children:"\xb7"})}):null]}),(0,ew.jsxs)("div",{className:"flex justify-end gap-4",children:[A?(0,ew.jsxs)(ew.Fragment,{children:[(0,ew.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-white/60",children:[ew.jsx(gF,{text:"Execution time for the SQL query",children:(0,ew.jsxs)("span",{className:"flex items-center gap-1.5",children:[ew.jsx("span",{className:(0,gf.cn)("inline-block h-[6px] w-[6px] rounded-full bg-success",{"animate-pulse":t})}),(0,ew.jsxs)("span",{children:[A?Math.round(A.queryDuration):0,"ms"]})]})}),"\xb7",(0,ew.jsxs)("span",{children:[A?.rows.length??0," row",A?.rows.length!==1?"s":""]})]}),ew.jsx(gF,{text:t?"Pause live query":"Start live query",children:ew.jsx(gH.z,{type:"button",variant:"outline",size:"icon",onClick:e=>{e.preventDefault(),s(!t)},children:t?ew.jsx(c_,{className:"h-4 w-4"}):ew.jsx(cc,{className:"h-4 w-4"})})})]}):null,(0,ew.jsxs)(gH.z,{className:"group relative flex gap-2 pl-4 pr-3",type:"submit",disabled:N&&i,children:["Run",(0,ew.jsxs)("span",{className:"relative flex items-center gap-0.5 text-white/60",children:[ew.jsx(cT.Z,{className:"absolute h-4 w-4 animate-spin opacity-0 group-disabled:opacity-100"}),ew.jsx("span",{className:"flex items-center gap-0.5 opacity-100 group-disabled:opacity-0",children:navigator.platform.toLowerCase().includes("mac")?(0,ew.jsxs)(ew.Fragment,{children:[ew.jsx(cS,{className:"h-3 w-3"}),ew.jsx(cR,{className:"h-3 w-3"})]}):(0,ew.jsxs)(ew.Fragment,{children:[ew.jsx("span",{className:"text-xs",children:"CTRL"}),ew.jsx(cR,{className:"h-3 w-3"})]})})]})]})]})]})})}var g$=x(82578);/**
|
|
1077
|
+
`,constraint:function(e){return!!OR.Kn(e)&&!!((OR.hj(e.lineNumber)||OR.HD(e.lineNumber))&&(OR.o8(e.at)||OR.HD(e.at)))},schema:{type:"object",required:["lineNumber"],properties:{lineNumber:{type:["number","string"]},at:{type:"string",enum:["top","center","bottom"]}}}}]},e.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}}(em||(em={}));class UL{constructor(e){e.addImplementation(1e4,"code-editor",(e,t)=>{let s=e.get(Ot).getFocusedCodeEditor();return!!(s&&s.hasTextFocus())&&this._runEditorCommand(e,s,t)}),e.addImplementation(1e3,"generic-dom-input-textarea",(e,t)=>{let s=RS();return!!(s&&["input","textarea"].indexOf(s.tagName.toLowerCase())>=0)&&(this.runDOMCommand(s),!0)}),e.addImplementation(0,"generic-dom",(e,t)=>{let s=e.get(Ot).getActiveCodeEditor();return!!s&&(s.focus(),this._runEditorCommand(e,s,t))})}_runEditorCommand(e,t,s){let x=this.runEditorCommand(e,t,s);return!x||x}}!function(e){class t extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[dw.moveTo(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)])&&2!==t.revealType&&e.revealAllCursors(t.source,!0,!0))}}e.MoveTo=Og(new t({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),e.MoveToSelect=Og(new t({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class s extends Uh{runCoreEditorCommand(e,t){e.model.pushStackElement();let s=this._getColumnSelectResult(e,e.getPrimaryCursorState(),e.getCursorColumnSelectData(),t);null!==s&&(e.setCursorStates(t.source,3,s.viewStates.map(e=>dp.fromViewState(e))),e.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:s.fromLineNumber,fromViewVisualColumn:s.fromVisualColumn,toViewLineNumber:s.toLineNumber,toViewVisualColumn:s.toVisualColumn}),s.reversed?e.revealTopMostCursor(t.source):e.revealBottomMostCursor(t.source))}}e.ColumnSelect=Og(new class extends s{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(e,t,s,x){if(void 0===x.position||void 0===x.viewPosition||void 0===x.mouseColumn)return null;let E=e.model.validatePosition(x.position),a=e.coordinatesConverter.validateViewPosition(new N0.L(x.viewPosition.lineNumber,x.viewPosition.column),E),r=x.doColumnSelect?s.fromViewLineNumber:a.lineNumber,i=x.doColumnSelect?s.fromViewVisualColumn:x.mouseColumn-1;return dg.columnSelect(e.cursorConfig,e,r,i,a.lineNumber,x.mouseColumn-1)}}),e.CursorColumnSelectLeft=Og(new class extends s{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(e,t,s,x){return dg.columnSelectLeft(e.cursorConfig,e,s)}}),e.CursorColumnSelectRight=Og(new class extends s{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(e,t,s,x){return dg.columnSelectRight(e.cursorConfig,e,s)}});class x extends s{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,s,x){return dg.columnSelectUp(e.cursorConfig,e,s,this._isPaged)}}e.CursorColumnSelectUp=Og(new x({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=Og(new x({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3595,linux:{primary:0}}}));class E extends s{constructor(e){super(e),this._isPaged=e.isPaged}_getColumnSelectResult(e,t,s,x){return dg.columnSelectDown(e.cursorConfig,e,s,this._isPaged)}}e.CursorColumnSelectDown=Og(new E({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=Og(new E({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3596,linux:{primary:0}}}));class a extends Uh{constructor(){super({id:"cursorMove",precondition:void 0,metadata:ep.metadata})}runCoreEditorCommand(e,t){let s=ep.parse(t);s&&this._runCursorMove(e,t.source,s)}_runCursorMove(e,t,s){e.model.pushStackElement(),e.setCursorStates(t,3,a._move(e,e.getCursorStates(),s)),e.revealAllCursors(t,!0)}static _move(e,t,s){let x=s.select,E=s.value;switch(s.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return dw.simpleMove(e,t,s.direction,x,E,s.unit);case 11:case 13:case 12:case 14:return dw.viewportMove(e,t,s.direction,x,E);default:return null}}}e.CursorMoveImpl=a,e.CursorMove=Og(new a);class r extends Uh{constructor(e){super(e),this._staticArgs=e.args}runCoreEditorCommand(e,t){let s=this._staticArgs;-1===this._staticArgs.value&&(s={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:t.pageSize||e.cursorConfig.pageSize}),e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.simpleMove(e,e.getCursorStates(),s.direction,s.select,s.value,s.unit)),e.revealAllCursors(t.source,!0)}}e.CursorLeft=Og(new r({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=Og(new r({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1039}})),e.CursorRight=Og(new r({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=Og(new r({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1041}})),e.CursorUp=Og(new r({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=Og(new r({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=Og(new r({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:11}})),e.CursorPageUpSelect=Og(new r({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1035}})),e.CursorDown=Og(new r({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=Og(new r({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=Og(new r({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:12}})),e.CursorPageDownSelect=Og(new r({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1036}})),e.CreateCursor=Og(new class extends Uh{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(e,t){let s;if(!t.position)return;s=t.wholeLine?dw.line(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition):dw.moveTo(e,e.getPrimaryCursorState(),!1,t.position,t.viewPosition);let x=e.getCursorStates();if(x.length>1){let E=s.modelState?s.modelState.position:null,a=s.viewState?s.viewState.position:null;for(let s=0,r=x.length;s<r;s++){let r=x[s];if((!E||r.modelState.selection.containsPosition(E))&&(!a||r.viewState.selection.containsPosition(a))){x.splice(s,1),e.model.pushStackElement(),e.setCursorStates(t.source,3,x);return}}}x.push(s),e.model.pushStackElement(),e.setCursorStates(t.source,3,x)}}),e.LastCursorMoveToSelect=Og(new class extends Uh{constructor(){super({id:"_lastCursorMoveToSelect",precondition:void 0})}runCoreEditorCommand(e,t){if(!t.position)return;let s=e.getLastAddedCursorIndex(),x=e.getCursorStates(),E=x.slice(0);E[s]=dw.moveTo(e,x[s],!0,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,E)}});class i extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.moveToBeginningOfLine(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorHome=Og(new i({inSelectionMode:!1,id:"cursorHome",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:14,mac:{primary:14,secondary:[2063]}}})),e.CursorHomeSelect=Og(new i({inSelectionMode:!0,id:"cursorHomeSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1038,mac:{primary:1038,secondary:[3087]}}}));class n extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e.getCursorStates())),e.revealAllCursors(t.source,!0)}_exec(e){let t=[];for(let s=0,x=e.length;s<x;s++){let x=e[s],E=x.modelState.position.lineNumber;t[s]=dp.fromModelState(x.modelState.move(this._inSelectionMode,E,1,0))}return t}}e.CursorLineStart=Og(new n({inSelectionMode:!1,id:"cursorLineStart",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:287}}})),e.CursorLineStartSelect=Og(new n({inSelectionMode:!0,id:"cursorLineStartSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:1311}}}));class _ extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.moveToEndOfLine(e,e.getCursorStates(),this._inSelectionMode,t.sticky||!1)),e.revealAllCursors(t.source,!0)}}e.CursorEnd=Og(new _({inSelectionMode:!1,id:"cursorEnd",precondition:void 0,kbOpts:{args:{sticky:!1},weight:0,kbExpr:eG.textInputFocus,primary:13,mac:{primary:13,secondary:[2065]}},metadata:{description:"Go to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:ch.NC("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}})),e.CursorEndSelect=Og(new _({inSelectionMode:!0,id:"cursorEndSelect",precondition:void 0,kbOpts:{args:{sticky:!1},weight:0,kbExpr:eG.textInputFocus,primary:1037,mac:{primary:1037,secondary:[3089]}},metadata:{description:"Select to End",args:[{name:"args",schema:{type:"object",properties:{sticky:{description:ch.NC("stickydesc","Stick to the end even when going to longer lines"),type:"boolean",default:!1}}}}]}}));class T extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,this._exec(e,e.getCursorStates())),e.revealAllCursors(t.source,!0)}_exec(e,t){let s=[];for(let x=0,E=t.length;x<E;x++){let E=t[x],a=E.modelState.position.lineNumber,r=e.model.getLineMaxColumn(a);s[x]=dp.fromModelState(E.modelState.move(this._inSelectionMode,a,r,0))}return s}}e.CursorLineEnd=Og(new T({inSelectionMode:!1,id:"cursorLineEnd",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:291}}})),e.CursorLineEndSelect=Og(new T({inSelectionMode:!0,id:"cursorLineEndSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:1315}}}));class S extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.moveToBeginningOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorTop=Og(new S({inSelectionMode:!1,id:"cursorTop",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2062,mac:{primary:2064}}})),e.CursorTopSelect=Og(new S({inSelectionMode:!0,id:"cursorTopSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3086,mac:{primary:3088}}}));class R extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,dw.moveToEndOfBuffer(e,e.getCursorStates(),this._inSelectionMode)),e.revealAllCursors(t.source,!0)}}e.CursorBottom=Og(new R({inSelectionMode:!1,id:"cursorBottom",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2061,mac:{primary:2066}}})),e.CursorBottomSelect=Og(new R({inSelectionMode:!0,id:"cursorBottomSelect",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:3085,mac:{primary:3090}}}));class O extends Uh{constructor(){super({id:"editorScroll",precondition:void 0,metadata:eB.metadata})}determineScrollMethod(e){return[6].includes(e.unit)&&[4,2].includes(e.direction)?this._runHorizontalEditorScroll.bind(this):[1,2,3,4,5,6].includes(e.unit)&&[1,3].includes(e.direction)?this._runVerticalEditorScroll.bind(this):null}runCoreEditorCommand(e,t){let s=eB.parse(t);if(!s)return;let x=this.determineScrollMethod(s);x&&x(e,t.source,s)}_runVerticalEditorScroll(e,t,s){let x=this._computeDesiredScrollTop(e,s);if(s.revealCursor){let E=e.getCompletelyVisibleViewRangeAtScrollTop(x);e.setCursorStates(t,3,[dw.findPositionInViewportIfOutside(e,e.getPrimaryCursorState(),E,s.select)])}e.viewLayout.setScrollPosition({scrollTop:x},0)}_computeDesiredScrollTop(e,t){let s;if(1===t.unit){let s;let x=e.viewLayout.getFutureViewport(),E=e.getCompletelyVisibleViewRangeAtScrollTop(x.top),a=e.coordinatesConverter.convertViewRangeToModelRange(E);s=1===t.direction?Math.max(1,a.startLineNumber-t.value):Math.min(e.model.getLineCount(),a.startLineNumber+t.value);let r=e.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(s,1));return e.viewLayout.getVerticalOffsetForLineNumber(r.lineNumber)}if(5===t.unit){let s=0;return 3===t.direction&&(s=e.model.getLineCount()-e.cursorConfig.pageSize),e.viewLayout.getVerticalOffsetForLineNumber(s)}s=3===t.unit?e.cursorConfig.pageSize*t.value:4===t.unit?Math.round(e.cursorConfig.pageSize/2)*t.value:t.value;let x=(1===t.direction?-1:1)*s;return e.viewLayout.getCurrentScrollTop()+x*e.cursorConfig.lineHeight}_runHorizontalEditorScroll(e,t,s){let x=this._computeDesiredScrollLeft(e,s);e.viewLayout.setScrollPosition({scrollLeft:x},0)}_computeDesiredScrollLeft(e,t){let s=(4===t.direction?-1:1)*t.value;return e.viewLayout.getCurrentScrollLeft()+s*e.cursorConfig.typicalHalfwidthCharacterWidth}}e.EditorScrollImpl=O,e.EditorScroll=Og(new O),e.ScrollLineUp=Og(new class extends Uh{constructor(){super({id:"scrollLineUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2064,mac:{primary:267}}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Up,by:eB.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollPageUp=Og(new class extends Uh{constructor(){super({id:"scrollPageUp",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2059,win:{primary:523},linux:{primary:523}}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Up,by:eB.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollEditorTop=Og(new class extends Uh{constructor(){super({id:"scrollEditorTop",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Up,by:eB.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollLineDown=Og(new class extends Uh{constructor(){super({id:"scrollLineDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2066,mac:{primary:268}}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Down,by:eB.RawUnit.WrappedLine,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollPageDown=Og(new class extends Uh{constructor(){super({id:"scrollPageDown",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:2060,win:{primary:524},linux:{primary:524}}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Down,by:eB.RawUnit.Page,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollEditorBottom=Og(new class extends Uh{constructor(){super({id:"scrollEditorBottom",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Down,by:eB.RawUnit.Editor,value:1,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollLeft=Og(new class extends Uh{constructor(){super({id:"scrollLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Left,by:eB.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:s.source})}}),e.ScrollRight=Og(new class extends Uh{constructor(){super({id:"scrollRight",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus}})}runCoreEditorCommand(t,s){e.EditorScroll.runCoreEditorCommand(t,{to:eB.RawDirection.Right,by:eB.RawUnit.Column,value:2,revealCursor:!1,select:!1,source:s.source})}});class A extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[dw.word(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position)]),2!==t.revealType&&e.revealAllCursors(t.source,!0,!0))}}e.WordSelect=Og(new A({inSelectionMode:!1,id:"_wordSelect",precondition:void 0})),e.WordSelectDrag=Og(new A({inSelectionMode:!0,id:"_wordSelectDrag",precondition:void 0})),e.LastCursorWordSelect=Og(new class extends Uh{constructor(){super({id:"lastCursorWordSelect",precondition:void 0})}runCoreEditorCommand(e,t){if(!t.position)return;let s=e.getLastAddedCursorIndex(),x=e.getCursorStates(),E=x.slice(0),a=x[s];E[s]=dw.word(e,a,a.modelState.hasSelection(),t.position),e.model.pushStackElement(),e.setCursorStates(t.source,3,E)}});class o extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){t.position&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[dw.line(e,e.getPrimaryCursorState(),this._inSelectionMode,t.position,t.viewPosition)]),2!==t.revealType&&e.revealAllCursors(t.source,!1,!0))}}e.LineSelect=Og(new o({inSelectionMode:!1,id:"_lineSelect",precondition:void 0})),e.LineSelectDrag=Og(new o({inSelectionMode:!0,id:"_lineSelectDrag",precondition:void 0}));class N extends Uh{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode}runCoreEditorCommand(e,t){if(!t.position)return;let s=e.getLastAddedCursorIndex(),x=e.getCursorStates(),E=x.slice(0);E[s]=dw.line(e,x[s],this._inSelectionMode,t.position,t.viewPosition),e.model.pushStackElement(),e.setCursorStates(t.source,3,E)}}e.LastCursorLineSelect=Og(new N({inSelectionMode:!1,id:"lastCursorLineSelect",precondition:void 0})),e.LastCursorLineSelectDrag=Og(new N({inSelectionMode:!0,id:"lastCursorLineSelectDrag",precondition:void 0})),e.CancelSelection=Og(new class extends Uh{constructor(){super({id:"cancelSelection",precondition:eG.hasNonEmptySelection,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[dw.cancelSelection(e,e.getPrimaryCursorState())]),e.revealAllCursors(t.source,!0)}}),e.RemoveSecondaryCursors=Og(new class extends Uh{constructor(){super({id:"removeSecondaryCursors",precondition:eG.hasMultipleSelections,kbOpts:{weight:1,kbExpr:eG.textInputFocus,primary:9,secondary:[1033]}})}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates(t.source,3,[e.getPrimaryCursorState()]),e.revealAllCursors(t.source,!0),NP(ch.NC("removedCursor","Removed secondary cursors"))}}),e.RevealLine=Og(new class extends Uh{constructor(){super({id:"revealLine",precondition:void 0,metadata:em.metadata})}runCoreEditorCommand(e,t){let s=t.lineNumber||0,x="number"==typeof s?s+1:parseInt(s)+1;x<1&&(x=1);let E=e.model.getLineCount();x>E&&(x=E);let a=new OQ.e(x,1,x,e.model.getLineMaxColumn(x)),r=0;if(t.at)switch(t.at){case em.RawAtArgument.Top:r=3;break;case em.RawAtArgument.Center:r=1;break;case em.RawAtArgument.Bottom:r=4}let i=e.coordinatesConverter.convertModelRangeToViewRange(a);e.revealRange(t.source,!1,i,r,0)}}),e.SelectAll=new class extends UL{constructor(){super(Ob)}runDOMCommand(e){TY&&(e.focus(),e.select()),e.ownerDocument.execCommand("selectAll")}runEditorCommand(e,t,s){let x=t._getViewModel();x&&this.runCoreEditorCommand(x,s)}runCoreEditorCommand(e,t){e.model.pushStackElement(),e.setCursorStates("keyboard",3,[dw.selectAll(e,e.getPrimaryCursorState())])}},e.SetSelection=Og(new class extends Uh{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(e,t){t.selection&&(e.model.pushStackElement(),e.setCursorStates(t.source,3,[dp.fromModelSelection(t.selection)]))}})}(ef||(ef={}));let UC=Oo.Ao.and(eG.textInputFocus,eG.columnSelection);function Ul(e,t){Oh.registerKeybindingRule({id:e,primary:t,when:UC,weight:1})}function Uu(e){return e.register(),e}Ul(ef.CursorColumnSelectLeft.id,1039),Ul(ef.CursorColumnSelectRight.id,1041),Ul(ef.CursorColumnSelectUp.id,1040),Ul(ef.CursorColumnSelectPageUp.id,1035),Ul(ef.CursorColumnSelectDown.id,1042),Ul(ef.CursorColumnSelectPageDown.id,1036),function(e){class t extends Of{runEditorCommand(e,t,s){let x=t._getViewModel();x&&this.runCoreEditingCommand(t,x,s||{})}}e.CoreEditingCommand=t,e.LineBreakInsert=Og(new class extends t{constructor(){super({id:"lineBreakInsert",precondition:eG.writable,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(e,t,s){e.pushUndoStop(),e.executeCommands(this.id,Ue.lineBreakInsert(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection)))}}),e.Outdent=Og(new class extends t{constructor(){super({id:"outdent",precondition:eG.writable,kbOpts:{weight:0,kbExpr:Oo.Ao.and(eG.editorTextFocus,eG.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(e,t,s){e.pushUndoStop(),e.executeCommands(this.id,UN.outdent(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection))),e.pushUndoStop()}}),e.Tab=Og(new class extends t{constructor(){super({id:"tab",precondition:eG.writable,kbOpts:{weight:0,kbExpr:Oo.Ao.and(eG.editorTextFocus,eG.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(e,t,s){e.pushUndoStop(),e.executeCommands(this.id,UN.tab(t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection))),e.pushUndoStop()}}),e.DeleteLeft=Og(new class extends t{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(e,t,s){let[x,E]=dv.deleteLeft(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection),t.getCursorAutoClosedCharacters());x&&e.pushUndoStop(),e.executeCommands(this.id,E),t.setPrevEditOperationType(2)}}),e.DeleteRight=Og(new class extends t{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:0,kbExpr:eG.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(e,t,s){let[x,E]=dv.deleteRight(t.getPrevEditOperationType(),t.cursorConfig,t.model,t.getCursorStates().map(e=>e.modelState.selection));x&&e.pushUndoStop(),e.executeCommands(this.id,E),t.setPrevEditOperationType(3)}}),e.Undo=new class extends UL{constructor(){super(OV)}runDOMCommand(e){e.ownerDocument.execCommand("undo")}runEditorCommand(e,t,s){if(t.hasModel()&&!0!==t.getOption(92))return t.getModel().undo()}},e.Redo=new class extends UL{constructor(){super(OX)}runDOMCommand(e){e.ownerDocument.execCommand("redo")}runEditorCommand(e,t,s){if(t.hasModel()&&!0!==t.getOption(92))return t.getModel().redo()}}}(eg||(eg={}));class UD extends OG{constructor(e,t,s){super({id:e,precondition:void 0,metadata:s}),this._handlerId=t}runCommand(e,t){let s=e.get(Ot).getFocusedCodeEditor();s&&s.trigger("keyboard",this._handlerId,t)}}function UM(e,t){Uu(new UD("default:"+e,e)),Uu(new UD(e,e,t))}UM("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),UM("replacePreviousChar"),UM("compositionType"),UM("compositionStart"),UM("compositionEnd"),UM("paste"),UM("cut");class UP{constructor(e,t,s,x){this.configuration=e,this.viewModel=t,this.userInputEvents=s,this.commandDelegate=x}paste(e,t,s,x){this.commandDelegate.paste(e,t,s,x)}type(e){this.commandDelegate.type(e)}compositionType(e,t,s,x){this.commandDelegate.compositionType(e,t,s,x)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){ef.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){let t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column<t?new N0.L(e.lineNumber,t):e}_hasMulticursorModifier(e){switch(this.configuration.options.get(78)){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(78)){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){let t=this.configuration.options,s=co.IJ&&t.get(108),x=t.get(22);e.middleButton&&!s?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():3===e.mouseDownCount?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):2===e.mouseDownCount?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):x?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){ef.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){ef.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,s){e=this._validateViewColumn(e),ef.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:s})}_createCursor(e,t){e=this._validateViewColumn(e),ef.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){ef.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){ef.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){ef.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){ef.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){ef.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){ef.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){ef.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){ef.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){ef.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}class Ud{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){let t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new TV.he("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(0===this.getCount())return null;let s=this.getStartLineNumber(),x=this.getEndLineNumber();if(t<s)return this._rendLineNumberStart-=t-e+1,null;if(e>x)return null;let E=0,a=0;for(let r=s;r<=x;r++){let s=r-this._rendLineNumberStart;e<=r&&r<=t&&(0===a?(E=s,a=1):a++)}if(e<s){let x=0;x=t<s?t-e+1:s-e,this._rendLineNumberStart-=x}return this._lines.splice(E,a)}onLinesChanged(e,t){let s=e+t-1;if(0===this.getCount())return!1;let x=this.getStartLineNumber(),E=this.getEndLineNumber(),a=!1;for(let t=e;t<=s;t++)t>=x&&t<=E&&(this._lines[t-this._rendLineNumberStart].onContentChanged(),a=!0);return a}onLinesInserted(e,t){if(0===this.getCount())return null;let s=t-e+1,x=this.getStartLineNumber(),E=this.getEndLineNumber();if(e<=x)return this._rendLineNumberStart+=s,null;if(e>E)return null;if(s+e>E)return this._lines.splice(e-this._rendLineNumberStart,E-e+1);let a=[];for(let e=0;e<s;e++)a[e]=this._lineFactory.createLine();let r=e-this._rendLineNumberStart,i=this._lines.slice(0,r),n=this._lines.slice(r,this._lines.length-s),_=this._lines.slice(this._lines.length-s,this._lines.length);return this._lines=i.concat(a).concat(n),_}onTokensChanged(e){if(0===this.getCount())return!1;let t=this.getStartLineNumber(),s=this.getEndLineNumber(),x=!1;for(let E=0,a=e.length;E<a;E++){let a=e[E];if(a.toLineNumber<t||a.fromLineNumber>s)continue;let r=Math.max(t,a.fromLineNumber),i=Math.min(s,a.toLineNumber);for(let e=r;e<=i;e++){let t=e-this._rendLineNumberStart;this._lines[t].onTokensChanged(),x=!0}}return x}}class UU{constructor(e){this._lineFactory=e,this.domNode=this._createDomNode(),this._linesCollection=new Ud(this._lineFactory)}_createDomNode(){let e=R$(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(146)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){let t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let e=0,s=t.length;e<s;e++){let s=t[e].getDomNode();s?.remove()}return!0}onLinesInserted(e){let t=this._linesCollection.onLinesInserted(e.fromLineNumber,e.toLineNumber);if(t)for(let e=0,s=t.length;e<s;e++){let s=t[e].getDomNode();s?.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){let t=this._linesCollection._get(),s=new Up(this.domNode.domNode,this._lineFactory,e),x={rendLineNumberStart:t.rendLineNumberStart,lines:t.lines,linesLength:t.lines.length},E=s.render(x,e.startLineNumber,e.endLineNumber,e.relativeVerticalOffset);this._linesCollection._set(E.rendLineNumberStart,E.lines)}}class Up{static{this._ttPolicy=Ok("editorViewLayer",{createHTML:e=>e})}constructor(e,t,s){this._domNode=e,this._lineFactory=t,this._viewportData=s}render(e,t,s,x){let E={rendLineNumberStart:e.rendLineNumberStart,lines:e.lines.slice(0),linesLength:e.linesLength};if(E.rendLineNumberStart+E.linesLength-1<t||s<E.rendLineNumberStart){E.rendLineNumberStart=t,E.linesLength=s-t+1,E.lines=[];for(let e=t;e<=s;e++)E.lines[e-t]=this._lineFactory.createLine();return this._finishRendering(E,!0,x),E}if(this._renderUntouchedLines(E,Math.max(t-E.rendLineNumberStart,0),Math.min(s-E.rendLineNumberStart,E.linesLength-1),x,t),E.rendLineNumberStart>t){let e=Math.min(s,E.rendLineNumberStart-1);t<=e&&(this._insertLinesBefore(E,t,e,x,t),E.linesLength+=e-t+1)}else if(E.rendLineNumberStart<t){let e=Math.min(E.linesLength,t-E.rendLineNumberStart);e>0&&(this._removeLinesBefore(E,e),E.linesLength-=e)}if(E.rendLineNumberStart=t,E.rendLineNumberStart+E.linesLength-1<s){let e=E.rendLineNumberStart+E.linesLength;e<=s&&(this._insertLinesAfter(E,e,s,x,t),E.linesLength+=s-e+1)}else if(E.rendLineNumberStart+E.linesLength-1>s){let e=Math.max(0,s-E.rendLineNumberStart+1),t=E.linesLength-1-e+1;t>0&&(this._removeLinesAfter(E,t),E.linesLength-=t)}return this._finishRendering(E,!1,x),E}_renderUntouchedLines(e,t,s,x,E){let a=e.rendLineNumberStart,r=e.lines;for(let e=t;e<=s;e++){let t=a+e;r[e].layoutLine(t,x[t-E],this._viewportData.lineHeight)}}_insertLinesBefore(e,t,s,x,E){let a=[],r=0;for(let e=t;e<=s;e++)a[r++]=this._lineFactory.createLine();e.lines=a.concat(e.lines)}_removeLinesBefore(e,t){for(let s=0;s<t;s++){let t=e.lines[s].getDomNode();t?.remove()}e.lines.splice(0,t)}_insertLinesAfter(e,t,s,x,E){let a=[],r=0;for(let e=t;e<=s;e++)a[r++]=this._lineFactory.createLine();e.lines=e.lines.concat(a)}_removeLinesAfter(e,t){let s=e.linesLength-t;for(let x=0;x<t;x++){let t=e.lines[s+x].getDomNode();t?.remove()}e.lines.splice(s,t)}_finishRenderingNewLines(e,t,s,x){Up._ttPolicy&&(s=Up._ttPolicy.createHTML(s));let E=this._domNode.lastChild;t||!E?this._domNode.innerHTML=s:E.insertAdjacentHTML("afterend",s);let a=this._domNode.lastChild;for(let t=e.linesLength-1;t>=0;t--){let s=e.lines[t];x[t]&&(s.setDomNode(a),a=a.previousSibling)}}_finishRenderingInvalidLines(e,t,s){let x=document.createElement("div");Up._ttPolicy&&(t=Up._ttPolicy.createHTML(t)),x.innerHTML=t;for(let t=0;t<e.linesLength;t++){let E=e.lines[t];if(s[t]){let e=x.firstChild,t=E.getDomNode();t.parentNode.replaceChild(e,t),E.setDomNode(e)}}}static{this._sb=new MD.HT(1e5)}_finishRendering(e,t,s){let x=Up._sb,E=e.linesLength,a=e.lines,r=e.rendLineNumberStart,i=[];{x.reset();let n=!1;for(let e=0;e<E;e++){let t=a[e];i[e]=!1,!t.getDomNode()&&t.renderLine(e+r,s[e],this._viewportData.lineHeight,this._viewportData,x)&&(i[e]=!0,n=!0)}n&&this._finishRenderingNewLines(e,t,x.build(),i)}{x.reset();let t=!1,n=[];for(let e=0;e<E;e++){let E=a[e];n[e]=!1,!i[e]&&E.renderLine(e+r,s[e],this._viewportData.lineHeight,this._viewportData,x)&&(n[e]=!0,t=!0)}t&&this._finishRenderingInvalidLines(e,x.build(),n)}}}class UY extends Pd{constructor(e){super(e),this._dynamicOverlays=[],this._isFocused=!1,this._visibleLines=new UU({createLine:()=>new UG(this._dynamicOverlays)}),this.domNode=this._visibleLines.domNode;let t=this._context.configuration.options.get(50);R0(this.domNode,t),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);let t=this._context.configuration.options.get(50);return R0(this.domNode,t),!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){let t=this._dynamicOverlays.filter(e=>e.shouldRender());for(let s=0,x=t.length;s<x;s++){let x=t[s];x.prepareRender(e),x.onDidRender()}}render(e){this._viewOverlaysRender(e),this.domNode.toggleClassName("focused",this._isFocused)}_viewOverlaysRender(e){this._visibleLines.renderLines(e.viewportData)}}class UG{constructor(e){this._dynamicOverlays=e,this._domNode=null,this._renderedContent=null}getDomNode(){return this._domNode?this._domNode.domNode:null}setDomNode(e){this._domNode=R$(e)}onContentChanged(){}onTokensChanged(){}renderLine(e,t,s,x,E){let a="";for(let t=0,s=this._dynamicOverlays.length;t<s;t++)a+=this._dynamicOverlays[t].render(x.startLineNumber,e);return this._renderedContent!==a&&(this._renderedContent=a,E.appendString('<div style="top:'),E.appendString(String(t)),E.appendString("px;height:"),E.appendString(String(s)),E.appendString('px;">'),E.appendString(a),E.appendString("</div>"),!0)}layoutLine(e,t,s){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(s))}}class UB extends UY{constructor(e){super(e);let t=this._context.configuration.options.get(146);this._contentWidth=t.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){let t=this._context.configuration.options.get(146);return this._contentWidth=t.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class Um extends UY{constructor(e){super(e);let t=this._context.configuration.options,s=t.get(146);this._contentLeft=s.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),R0(this.domNode,t.get(50))}onConfigurationChanged(e){let t=this._context.configuration.options;R0(this.domNode,t.get(50));let s=t.get(146);return this._contentLeft=s.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);let t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class Uf{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){this.onKeyDown?.(e)}emitKeyUp(e){this.onKeyUp?.(e)}emitContextMenu(e){this.onContextMenu?.(this._convertViewToModelMouseEvent(e))}emitMouseMove(e){this.onMouseMove?.(this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){this.onMouseLeave?.(this._convertViewToModelMouseEvent(e))}emitMouseDown(e){this.onMouseDown?.(this._convertViewToModelMouseEvent(e))}emitMouseUp(e){this.onMouseUp?.(this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){this.onMouseDrag?.(this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){this.onMouseDrop?.(this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){this.onMouseDropCanceled?.()}emitMouseWheel(e){this.onMouseWheel?.(e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return Uf.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){let s={...e};return s.position&&(s.position=t.convertViewPositionToModelPosition(s.position)),s.range&&(s.range=t.convertViewRangeToModelRange(s.range)),(5===s.type||8===s.type)&&(s.detail=this.convertViewToModelViewZoneData(s.detail,t)),s}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 N0.L(e.afterLineNumber,1)).lineNumber}}}x(98896);class Ug extends Pd{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=R$(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,t=this._context.configuration.options.get(146),s=t.contentWidth-t.verticalScrollbarWidth;this.contentWidth!==s&&(this.contentWidth=s,e=!0);let x=t.contentLeft;return this.contentLeft!==x&&(this.contentLeft=x,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){let t=0;for(let s of e.getDecorationsInViewport()){let x,E;if(!s.options.blockClassName)continue;let a=this.blocks[t];a||(a=this.blocks[t]=R$(document.createElement("div")),this.domNode.appendChild(a)),s.options.blockIsAfterEnd?(x=e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!1),E=e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!0)):(x=e.getVerticalOffsetForLineNumber(s.range.startLineNumber,!0),E=s.range.isEmpty()&&!s.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(s.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(s.range.endLineNumber,!0));let[r,i,n,_]=s.options.blockPadding??[0,0,0,0];a.setClassName("blockDecorations-block "+s.options.blockClassName),a.setLeft(this.contentLeft-_),a.setWidth(this.contentWidth+_+i),a.setTop(x-e.scrollTop-r),a.setHeight(E-x+r+n),t++}for(let e=t;e<this.blocks.length;e++)this.blocks[e].domNode.remove();this.blocks.length=t}}class UF extends Pd{constructor(e,t){super(e),this._viewDomNode=t,this._widgets={},this.domNode=R$(document.createElement("div")),PU.write(this.domNode,1),this.domNode.setClassName("contentWidgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this.overflowingContentWidgetsDomNode=R$(document.createElement("div")),PU.write(this.overflowingContentWidgetsDomNode,2),this.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets")}dispose(){super.dispose(),this._widgets={}}onConfigurationChanged(e){for(let t of Object.keys(this._widgets))this._widgets[t].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(){for(let e of Object.keys(this._widgets))this._widgets[e].updateAnchorViewPosition()}addWidget(e){let t=new UH(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,s,x,E){this._widgets[e.getId()].setPosition(t,s,x,E),this.setShouldRender()}removeWidget(e){let t=e.getId();if(this._widgets.hasOwnProperty(t)){let e=this._widgets[t];delete this._widgets[t];let s=e.domNode.domNode;s.remove(),s.removeAttribute("monaco-visible-content-widget"),this.setShouldRender()}}shouldSuppressMouseDownOnWidget(e){return!!this._widgets.hasOwnProperty(e)&&this._widgets[e].suppressMouseDown}onBeforeRender(e){for(let t of Object.keys(this._widgets))this._widgets[t].onBeforeRender(e)}prepareRender(e){for(let t of Object.keys(this._widgets))this._widgets[t].prepareRender(e)}render(e){for(let t of Object.keys(this._widgets))this._widgets[t].render(e)}}class UH{constructor(e,t,s){this._primaryAnchor=new Uy(null,null),this._secondaryAnchor=new Uy(null,null),this._context=e,this._viewDomNode=t,this._actual=s,this.domNode=R$(this._actual.getDomNode()),this.id=this._actual.getId(),this.allowEditorOverflow=this._actual.allowEditorOverflow||!1,this.suppressMouseDown=this._actual.suppressMouseDown||!1;let x=this._context.configuration.options,E=x.get(146);this._fixedOverflowWidgets=x.get(42),this._contentWidth=E.contentWidth,this._contentLeft=E.contentLeft,this._lineHeight=x.get(67),this._affinity=null,this._preference=[],this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1,this._maxWidth=this._getMaxWidth(),this._isVisible=!1,this._renderData=null,this.domNode.setPosition(this._fixedOverflowWidgets&&this.allowEditorOverflow?"fixed":"absolute"),this.domNode.setDisplay("none"),this.domNode.setVisibility("hidden"),this.domNode.setAttribute("widgetId",this.id),this.domNode.setMaxWidth(this._maxWidth)}onConfigurationChanged(e){let t=this._context.configuration.options;if(this._lineHeight=t.get(67),e.hasChanged(146)){let e=t.get(146);this._contentLeft=e.contentLeft,this._contentWidth=e.contentWidth,this._maxWidth=this._getMaxWidth()}}updateAnchorViewPosition(){this._setPosition(this._affinity,this._primaryAnchor.modelPosition,this._secondaryAnchor.modelPosition)}_setPosition(e,t,s){function x(e,t,s){if(!e)return new Uy(null,null);let x=t.model.validatePosition(e);return t.coordinatesConverter.modelPositionIsVisible(x)?new Uy(e,t.coordinatesConverter.convertModelPositionToViewPosition(x,s??void 0)):new Uy(e,null)}this._affinity=e,this._primaryAnchor=x(t,this._context.viewModel,this._affinity),this._secondaryAnchor=x(s,this._context.viewModel,this._affinity)}_getMaxWidth(){let e=this.domNode.domNode.ownerDocument,t=e.defaultView;return this.allowEditorOverflow?t?.innerWidth||e.documentElement.offsetWidth||e.body.offsetWidth:this._contentWidth}setPosition(e,t,s,x){this._setPosition(x,e,t),this._preference=s,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,s,x){let E=e.top,a=e.top+e.height,r=x.viewportHeight-a,i=e.left;return i+t>x.scrollLeft+x.viewportWidth&&(i=x.scrollLeft+x.viewportWidth-t),i<x.scrollLeft&&(i=x.scrollLeft),{fitsAbove:E>=s,aboveTop:E-s,fitsBelow:r>=s,belowTop:a,left:i}}_layoutHorizontalSegmentInPage(e,t,s,x){let E=Math.max(15,t.left-x),a=Math.min(t.left+t.width+x,e.width-15),r=this._viewDomNode.domNode.ownerDocument.defaultView,i=t.left+s-(r?.scrollX??0);if(i+x>a){let e=i-(a-x);i-=e,s-=e}if(i<E){let e=i-E;i-=e,s-=e}return[s,i]}_layoutBoxInPage(e,t,s,x){let E=e.top-s,a=e.top+e.height,r=Rx(this._viewDomNode.domNode),i=this._viewDomNode.domNode.ownerDocument,n=i.defaultView,_=r.top+E-(n?.scrollY??0),T=r.top+a-(n?.scrollY??0),S=Re(i.body),[R,O]=this._layoutHorizontalSegmentInPage(S,r,e.left-x.scrollLeft+this._contentLeft,t),A=_>=22,o=T+s<=S.height-22;return this._fixedOverflowWidgets?{fitsAbove:A,aboveTop:Math.max(_,22),fitsBelow:o,belowTop:T,left:O}:{fitsAbove:A,aboveTop:E,fitsBelow:o,belowTop:a,left:R}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new UV(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){return{primary:t(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),secondary:t(this._secondaryAnchor.viewPosition?.lineNumber===this._primaryAnchor.viewPosition?.lineNumber?this._secondaryAnchor.viewPosition:null,this._affinity,this._lineHeight)};function t(t,s,x){if(!t)return null;let E=e.visibleRangeForPosition(t);if(!E)return null;let a=1===t.column&&3===s?0:E.left;return new UX(e.getVerticalOffsetForLineNumber(t.lineNumber)-e.scrollTop,a,x)}}_reduceAnchorCoordinates(e,t,s){if(!t)return e;let x=this._context.configuration.options.get(50),E=t.left;return E=E<e.left?Math.max(E,e.left-s+x.typicalFullwidthCharacterWidth):Math.min(E,e.left+s-x.typicalFullwidthCharacterWidth),new UX(e.top,E,e.height)}_prepareRenderWidget(e){let t;if(!this._preference||0===this._preference.length)return null;let{primary:s,secondary:x}=this._getAnchorsCoordinates(e);if(!s)return{kind:"offViewport",preserveFocus:this.domNode.domNode.contains(this.domNode.domNode.ownerDocument.activeElement)};if(-1===this._cachedDomNodeOffsetWidth||-1===this._cachedDomNodeOffsetHeight){let e=null;if("function"==typeof this._actual.beforeRender&&(e=Ub(this._actual.beforeRender,this._actual)),e)this._cachedDomNodeOffsetWidth=e.width,this._cachedDomNodeOffsetHeight=e.height;else{let e=this.domNode.domNode.getBoundingClientRect();this._cachedDomNodeOffsetWidth=Math.round(e.width),this._cachedDomNodeOffsetHeight=Math.round(e.height)}}let E=this._reduceAnchorCoordinates(s,x,this._cachedDomNodeOffsetWidth);t=this.allowEditorOverflow?this._layoutBoxInPage(E,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e):this._layoutBoxInViewport(E,this._cachedDomNodeOffsetWidth,this._cachedDomNodeOffsetHeight,e);for(let e=1;e<=2;e++)for(let s of this._preference)if(1===s){if(!t)return null;if(2===e||t.fitsAbove)return{kind:"inViewport",coordinate:new UV(t.aboveTop,t.left),position:1}}else if(2===s){if(!t)return null;if(2===e||t.fitsBelow)return{kind:"inViewport",coordinate:new UV(t.belowTop,t.left),position:2}}else{if(this.allowEditorOverflow)return{kind:"inViewport",coordinate:this._prepareRenderWidgetAtExactPositionOverflowing(new UV(E.top,E.left)),position:0};return{kind:"inViewport",coordinate:new UV(E.top,E.left),position:0}}return null}onBeforeRender(e){this._primaryAnchor.viewPosition&&this._preference&&!(this._primaryAnchor.viewPosition.lineNumber<e.startLineNumber)&&!(this._primaryAnchor.viewPosition.lineNumber>e.endLineNumber)&&this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){if(!this._renderData||"offViewport"===this._renderData.kind){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this._renderData?.kind==="offViewport"&&this._renderData.preserveFocus?this.domNode.setTop(-1e3):this.domNode.setVisibility("hidden")),"function"==typeof this._actual.afterRender&&Ub(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?this.domNode.setTop(this._renderData.coordinate.top):this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),"function"==typeof this._actual.afterRender&&Ub(this._actual.afterRender,this._actual,this._renderData.position)}}class Uy{constructor(e,t){this.modelPosition=e,this.viewPosition=t}}class UV{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}}class UX{constructor(e,t,s){this.top=e,this.left=t,this.height=s,this._anchorCoordinateBrand=void 0}}function Ub(e,t,...s){try{return e.call(t,...s)}catch{return null}}x(54165);class Uv extends dO{constructor(e){super(),this._context=e;let t=this._context.configuration.options,s=t.get(146);this._renderLineHighlight=t.get(97),this._renderLineHighlightOnlyWhenFocus=t.get(98),this._wordWrap=s.isViewportWrapping,this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new P4.Y(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1,t=new Set;for(let e of this._selections)t.add(e.positionLineNumber);let s=Array.from(t);s.sort((e,t)=>e-t),cO.fS(this._cursorLineNumbers,s)||(this._cursorLineNumbers=s,e=!0);let x=this._selections.every(e=>e.isEmpty());return this._selectionIsEmpty!==x&&(this._selectionIsEmpty=x,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(146);return this._renderLineHighlight=t.get(97),this._renderLineHighlightOnlyWhenFocus=t.get(98),this._wordWrap=s.isViewportWrapping,this._contentLeft=s.contentLeft,this._contentWidth=s.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return!!this._renderLineHighlightOnlyWhenFocus&&(this._focused=e.isFocused,!0)}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,x=[];for(let e=t;e<=s;e++)x[e-t]="";if(this._wordWrap){let E=this._renderOne(e,!1);for(let e of this._cursorLineNumbers){let a=this._context.viewModel.coordinatesConverter,r=a.convertViewPositionToModelPosition(new N0.L(e,1)).lineNumber,i=a.convertModelPositionToViewPosition(new N0.L(r,1)).lineNumber,n=a.convertModelPositionToViewPosition(new N0.L(r,this._context.viewModel.model.getLineMaxColumn(r))).lineNumber,_=Math.max(i,t),T=Math.min(n,s);for(let e=_;e<=T;e++)x[e-t]=E}}let E=this._renderOne(e,!0);for(let e of this._cursorLineNumbers)e<t||e>s||(x[e-t]=E);this._renderData=x}render(e,t){if(!this._renderData)return"";let s=t-e;return s>=this._renderData.length?"":this._renderData[s]}_shouldRenderInMargin(){return("gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class Uk extends Uv{_renderOne(e,t){let s="current-line"+(this._shouldRenderInMargin()?" current-line-both":"")+(t?" current-line-exact":"");return`<div class="${s}" style="width:${Math.max(e.scrollWidth,this._contentWidth)}px;"></div>`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class Uw extends Uv{_renderOne(e,t){let s="current-line"+(this._shouldRenderInMargin()?" current-line-margin":"")+(this._shouldRenderOther()?" current-line-margin-both":"")+(this._shouldRenderInMargin()&&t?" current-line-exact-margin":"");return`<div class="${s}" style="width:${this._contentLeft}px"></div>`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}(0,As.Ic)((e,t)=>{let s=e.getColor(uJ.Kh);if(s&&(t.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${s}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${s}; border: none; }`)),!s||s.isTransparent()||e.defines(uJ.Mm)){let s=e.getColor(uJ.Mm);s&&(t.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${s}; }`),t.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${s}; }`),(0,hg.c3)(e.type)&&(t.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),t.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}}),x(69714);class UW extends dO{constructor(e){super(),this._context=e;let t=this._context.configuration.options;this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){let t=e.getDecorationsInViewport(),s=[],x=0;for(let e=0,E=t.length;e<E;e++){let E=t[e];E.options.className&&(s[x++]=E)}s=s.sort((e,t)=>{if(e.options.zIndex<t.options.zIndex)return -1;if(e.options.zIndex>t.options.zIndex)return 1;let s=e.options.className,x=t.options.className;return s<x?-1:s>x?1:OQ.e.compareRangesUsingStarts(e.range,t.range)});let E=e.visibleRange.startLineNumber,a=e.visibleRange.endLineNumber,r=[];for(let e=E;e<=a;e++)r[e-E]="";this._renderWholeLineDecorations(e,s,r),this._renderNormalDecorations(e,s,r),this._renderResult=r}_renderWholeLineDecorations(e,t,s){let x=e.visibleRange.startLineNumber,E=e.visibleRange.endLineNumber;for(let e=0,a=t.length;e<a;e++){let a=t[e];if(!a.options.isWholeLine)continue;let r='<div class="cdr '+a.options.className+'" style="left:0;width:100%;"></div>',i=Math.max(a.range.startLineNumber,x),n=Math.min(a.range.endLineNumber,E);for(let e=i;e<=n;e++){let t=e-x;s[t]+=r}}}_renderNormalDecorations(e,t,s){let x=e.visibleRange.startLineNumber,E=null,a=!1,r=null,i=!1;for(let n=0,_=t.length;n<_;n++){let _=t[n];if(_.options.isWholeLine)continue;let T=_.options.className,S=!!_.options.showIfCollapsed,R=_.range;if(S&&1===R.endColumn&&R.endLineNumber!==R.startLineNumber&&(R=new OQ.e(R.startLineNumber,R.startColumn,R.endLineNumber-1,this._context.viewModel.getLineMaxColumn(R.endLineNumber-1))),E===T&&a===S&&OQ.e.areIntersectingOrTouching(r,R)){r=OQ.e.plusRange(r,R);continue}null!==E&&this._renderNormalDecoration(e,r,E,i,a,x,s),E=T,a=S,r=R,i=_.options.shouldFillLineOnLineBreak??!1}null!==E&&this._renderNormalDecoration(e,r,E,i,a,x,s)}_renderNormalDecoration(e,t,s,x,E,a,r){let i=e.linesVisibleRangesForRange(t,"findMatch"===s);if(i)for(let e=0,t=i.length;e<t;e++){let t=i[e];if(t.outsideRenderedLine)continue;let n=t.lineNumber-a;if(E&&1===t.ranges.length){let e=t.ranges[0];if(e.width<this._typicalHalfwidthCharacterWidth){let s=Math.max(0,Math.round(Math.round(e.left+e.width/2)-this._typicalHalfwidthCharacterWidth/2));t.ranges[0]=new PB(s,this._typicalHalfwidthCharacterWidth)}}for(let e=0,E=t.ranges.length;e<E;e++){let a=x&&t.continuesOnNextLine&&1===E,i=t.ranges[e],_='<div class="cdr '+s+'" style="left:'+String(i.left)+"px;width:"+(a?"100%;":String(i.width)+"px;")+'"></div>';r[n]+=_}}}render(e,t){if(!this._renderResult)return"";let s=t-e;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}class UK extends Pd{constructor(e,t,s,x){super(e);let E=this._context.configuration.options,a=E.get(104),r=E.get(75),i=E.get(40),n=E.get(107),_={listenOnDomNode:s.domNode,className:"editor-scrollable "+(0,As.m6)(e.theme.type),useShadows:!1,lazyRender:!0,vertical:a.vertical,horizontal:a.horizontal,verticalHasArrows:a.verticalHasArrows,horizontalHasArrows:a.horizontalHasArrows,verticalScrollbarSize:a.verticalScrollbarSize,verticalSliderSize:a.verticalSliderSize,horizontalScrollbarSize:a.horizontalScrollbarSize,horizontalSliderSize:a.horizontalSliderSize,handleMouseWheel:a.handleMouseWheel,alwaysConsumeMouseWheel:a.alwaysConsumeMouseWheel,arrowSize:a.arrowSize,mouseWheelScrollSensitivity:r,fastScrollSensitivity:i,scrollPredominantAxis:n,scrollByPage:a.scrollByPage};this.scrollbar=this._register(new A7(t.domNode,_,this._context.viewLayout.getScrollable())),PU.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=R$(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();let T=(e,t,s)=>{let x={};if(t){let t=e.scrollTop;t&&(x.scrollTop=this._context.viewLayout.getCurrentScrollTop()+t,e.scrollTop=0)}if(s){let t=e.scrollLeft;t&&(x.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+t,e.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(x,1)};this._register(S7(s.domNode,"scroll",e=>T(s.domNode,!0,!0))),this._register(S7(t.domNode,"scroll",e=>T(t.domNode,!0,!1))),this._register(S7(x.domNode,"scroll",e=>T(x.domNode,!0,!1))),this._register(S7(this.scrollbarDomNode.domNode,"scroll",e=>T(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){let e=this._context.configuration.options,t=e.get(146);this.scrollbarDomNode.setLeft(t.contentLeft),"right"===e.get(73).side?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(104)||e.hasChanged(75)||e.hasChanged(40)){let e=this._context.configuration.options,t=e.get(104),s=e.get(75),x=e.get(40),E=e.get(107),a={vertical:t.vertical,horizontal:t.horizontal,verticalScrollbarSize:t.verticalScrollbarSize,horizontalScrollbarSize:t.horizontalScrollbarSize,scrollByPage:t.scrollByPage,handleMouseWheel:t.handleMouseWheel,mouseWheelScrollSensitivity:s,fastScrollSensitivity:x,scrollPredominantAxis:E};this.scrollbar.updateOptions(a)}return e.hasChanged(146)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+(0,As.m6)(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}x(25097);class UQ{constructor(e,t,s,x,E){this.startLineNumber=e,this.endLineNumber=t,this.className=s,this.tooltip=x,this._decorationToRenderBrand=void 0,this.zIndex=E??0}}class UJ{constructor(e,t,s){this.className=e,this.zIndex=t,this.tooltip=s}}class UZ{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class Uz extends dO{_render(e,t,s){let x=[];for(let s=e;s<=t;s++)x[s-e]=new UZ;if(0===s.length)return x;s.sort((e,t)=>e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className<t.className?-1:1);let E=null,a=0;for(let r=0,i=s.length;r<i;r++){let i=s[r],n=i.className,_=i.zIndex,T=Math.max(i.startLineNumber,e)-e,S=Math.min(i.endLineNumber,t)-e;E===n?(T=Math.max(a+1,T),a=Math.max(a,S)):(E=n,a=S);for(let e=T;e<=a;e++)x[e].add(new UJ(n,_,i.tooltip))}return x}}class Uq extends Pd{constructor(e){super(e),this._widgets={},this._context=e;let t=this._context.configuration.options,s=t.get(146);this.domNode=R$(document.createElement("div")),this.domNode.setClassName("glyph-margin-widgets"),this.domNode.setPosition("absolute"),this.domNode.setTop(0),this._lineHeight=t.get(67),this._glyphMargin=t.get(57),this._glyphMarginLeft=s.glyphMarginLeft,this._glyphMarginWidth=s.glyphMarginWidth,this._glyphMarginDecorationLaneCount=s.glyphMarginDecorationLaneCount,this._managedDomNodes=[],this._decorationGlyphsToRender=[]}dispose(){this._managedDomNodes=[],this._decorationGlyphsToRender=[],this._widgets={},super.dispose()}getWidgets(){return Object.values(this._widgets)}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(146);return this._lineHeight=t.get(67),this._glyphMargin=t.get(57),this._glyphMarginLeft=s.glyphMarginLeft,this._glyphMarginWidth=s.glyphMarginWidth,this._glyphMarginDecorationLaneCount=s.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){let t=R$(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){let s=this._widgets[e.getId()];return!(s.preference.lane===t.lane&&s.preference.zIndex===t.zIndex&&OQ.e.equalsRange(s.preference.range,t.range))&&(s.preference=t,this.setShouldRender(),!0)}removeWidget(e){let t=e.getId();if(this._widgets[t]){let e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.remove(),this.setShouldRender()}}_collectDecorationBasedGlyphRenderRequest(e,t){let s=e.visibleRange.startLineNumber,x=e.visibleRange.endLineNumber;for(let E of e.getDecorationsInViewport()){let e=E.options.glyphMarginClassName;if(!e)continue;let a=Math.max(E.range.startLineNumber,s),r=Math.min(E.range.endLineNumber,x),i=E.options.glyphMargin?.position??Ml.U.Center,n=E.options.zIndex??0;for(let s=a;s<=r;s++){let x=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(s,0)),E=this._context.viewModel.glyphLanes.getLanesAtLine(x.lineNumber).indexOf(i);t.push(new Uj(s,E,n,e))}}}_collectWidgetBasedGlyphRenderRequest(e,t){let s=e.visibleRange.startLineNumber,x=e.visibleRange.endLineNumber;for(let e of Object.values(this._widgets)){let E=e.preference.range,{startLineNumber:a,endLineNumber:r}=this._context.viewModel.coordinatesConverter.convertModelRangeToViewRange(OQ.e.lift(E));if(!a||!r||r<s||a>x)continue;let i=Math.max(a,s),n=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(i,0)),_=this._context.viewModel.glyphLanes.getLanesAtLine(n.lineNumber).indexOf(e.preference.lane);t.push(new U$(i,_,e.preference.zIndex,e))}}_collectSortedGlyphRenderRequests(e){let t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((e,t)=>{if(e.lineNumber===t.lineNumber){if(e.laneIndex===t.laneIndex)return e.zIndex===t.zIndex?t.type===e.type?0===e.type&&0===t.type?e.className<t.className?-1:1:0:t.type-e.type:t.zIndex-e.zIndex;return e.laneIndex-t.laneIndex}return e.lineNumber-t.lineNumber}),t}prepareRender(e){if(!this._glyphMargin){this._decorationGlyphsToRender=[];return}for(let e of Object.values(this._widgets))e.renderInfo=null;let t=new cO.H9(this._collectSortedGlyphRenderRequests(e)),s=[];for(;t.length>0;){let e=t.peek();if(!e)break;let x=t.takeWhile(t=>t.lineNumber===e.lineNumber&&t.laneIndex===e.laneIndex);if(!x||0===x.length)break;let E=x[0];if(0===E.type){let e=[];for(let t of x){if(t.zIndex!==E.zIndex||t.type!==E.type)break;(0===e.length||e[e.length-1]!==t.className)&&e.push(t.className)}s.push(E.accept(e.join(" ")))}else E.widget.renderInfo={lineNumber:E.lineNumber,laneIndex:E.laneIndex}}this._decorationGlyphsToRender=s}render(e){if(!this._glyphMargin){for(let e of Object.values(this._widgets))e.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){let e=this._managedDomNodes.pop();e?.domNode.remove()}return}let t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(let s of Object.values(this._widgets))if(s.renderInfo){let x=e.viewportData.relativeVerticalOffset[s.renderInfo.lineNumber-e.viewportData.startLineNumber],E=this._glyphMarginLeft+s.renderInfo.laneIndex*this._lineHeight;s.domNode.setDisplay("block"),s.domNode.setTop(x),s.domNode.setLeft(E),s.domNode.setWidth(t),s.domNode.setHeight(this._lineHeight)}else s.domNode.setDisplay("none");for(let s=0;s<this._decorationGlyphsToRender.length;s++){let x;let E=this._decorationGlyphsToRender[s],a=e.viewportData.relativeVerticalOffset[E.lineNumber-e.viewportData.startLineNumber],r=this._glyphMarginLeft+E.laneIndex*this._lineHeight;s<this._managedDomNodes.length?x=this._managedDomNodes[s]:(x=R$(document.createElement("div")),this._managedDomNodes.push(x),this.domNode.appendChild(x)),x.setClassName("cgmr codicon "+E.combinedClassName),x.setPosition("absolute"),x.setTop(a),x.setLeft(r),x.setWidth(t),x.setHeight(this._lineHeight)}for(;this._managedDomNodes.length>this._decorationGlyphsToRender.length;){let e=this._managedDomNodes.pop();e?.domNode.remove()}}}class Uj{constructor(e,t,s,x){this.lineNumber=e,this.laneIndex=t,this.zIndex=s,this.className=x,this.type=0}accept(e){return new U0(this.lineNumber,this.laneIndex,e)}}class U${constructor(e,t,s,x){this.lineNumber=e,this.laneIndex=t,this.zIndex=s,this.widget=x,this.type=1}}class U0{constructor(e,t,s){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=s}}x(95157);var U2=x(4459),U1=x(24576);class U3 extends dO{constructor(e){super(),this._context=e,this._primaryPosition=null;let t=this._context.configuration.options,s=t.get(147),x=t.get(50);this._spaceWidth=x.spaceWidth,this._maxIndentLeft=-1===s.wrappingColumn?-1:s.wrappingColumn*x.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(147),x=t.get(50);return this._spaceWidth=x.spaceWidth,this._maxIndentLeft=-1===s.wrappingColumn?-1:s.wrappingColumn*x.typicalHalfwidthCharacterWidth,this._bracketPairGuideOptions=t.get(16),!0}onCursorStateChanged(e){let t=e.selections[0].getPosition();return!this._primaryPosition?.equals(t)&&(this._primaryPosition=t,!0)}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onLanguageConfigurationChanged(e){return!0}prepareRender(e){if(!this._bracketPairGuideOptions.indentation&&!1===this._bracketPairGuideOptions.bracketPairs){this._renderResult=null;return}let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,x=e.scrollWidth,E=this._primaryPosition,a=this.getGuidesByLine(t,Math.min(s+1,this._context.viewModel.getLineCount()),E),r=[];for(let E=t;E<=s;E++){let s=E-t,i=a[s],n="",_=e.visibleRangeForPosition(new N0.L(E,1))?.left??0;for(let t of i){let s=-1===t.column?_+(t.visibleColumn-1)*this._spaceWidth:e.visibleRangeForPosition(new N0.L(E,t.column)).left;if(s>x||this._maxIndentLeft>0&&s>this._maxIndentLeft)break;let a=t.horizontalLine?t.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",r=t.horizontalLine?(e.visibleRangeForPosition(new N0.L(E,t.horizontalLine.endColumn))?.left??s+this._spaceWidth)-s:this._spaceWidth;n+=`<div class="core-guide ${t.className} ${a}" style="left:${s}px;width:${r}px"></div>`}r[s]=n}this._renderResult=r}getGuidesByLine(e,t,s){let x=!1!==this._bracketPairGuideOptions.bracketPairs?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,s,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:!0===this._bracketPairGuideOptions.bracketPairsHorizontal?U1.s6.Enabled:"active"===this._bracketPairGuideOptions.bracketPairsHorizontal?U1.s6.EnabledForActive:U1.s6.Disabled,includeInactive:!0===this._bracketPairGuideOptions.bracketPairs}):null,E=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null,a=0,r=0,i=0;if(!1!==this._bracketPairGuideOptions.highlightActiveIndentation&&s){let x=this._context.viewModel.getActiveIndentGuide(s.lineNumber,e,t);a=x.startLineNumber,r=x.endLineNumber,i=x.indent}let{indentSize:n}=this._context.viewModel.model.getOptions(),_=[];for(let s=e;s<=t;s++){let t=[];_.push(t);let T=x?x[s-e]:[],S=new cO.H9(T),R=E?E[s-e]:0;for(let e=1;e<=R;e++){let x=(e-1)*n+1,E=("always"===this._bracketPairGuideOptions.highlightActiveIndentation||0===T.length)&&a<=s&&s<=r&&e===i;t.push(...S.takeWhile(e=>e.visibleColumn<x)||[]);let _=S.peek();(!_||_.visibleColumn!==x||_.horizontalLine)&&t.push(new U1.UO(x,-1,`core-guide-indent lvl-${(e-1)%30}`+(E?" indent-active":""),null,-1,-1))}t.push(...S.takeWhile(e=>!0)||[])}return _}render(e,t){if(!this._renderResult)return"";let s=t-e;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}function U7(e){if(!(e&&e.isTransparent()))return e}(0,As.Ic)((e,t)=>{let s=[{bracketColor:uJ.zJ,guideColor:uJ.oV,guideColorActive:uJ.Qb},{bracketColor:uJ.Vs,guideColor:uJ.m$,guideColorActive:uJ.m3},{bracketColor:uJ.CE,guideColor:uJ.DS,guideColorActive:uJ.To},{bracketColor:uJ.UP,guideColor:uJ.lS,guideColorActive:uJ.L7},{bracketColor:uJ.r0,guideColor:uJ.Jn,guideColorActive:uJ.HV},{bracketColor:uJ.m1,guideColor:uJ.YF,guideColorActive:uJ.f9}],x=new U2.W,E=[{indentColor:uJ.gS,indentColorActive:uJ.qe},{indentColor:uJ.Tf,indentColorActive:uJ.Xy},{indentColor:uJ.H_,indentColorActive:uJ.cK},{indentColor:uJ.h1,indentColorActive:uJ.N8},{indentColor:uJ.vP,indentColorActive:uJ.zd},{indentColor:uJ.e9,indentColorActive:uJ.ll}],a=s.map(t=>{let s=e.getColor(t.bracketColor),x=e.getColor(t.guideColor),E=e.getColor(t.guideColorActive),a=U7(U7(x)??s?.transparent(.3)),r=U7(U7(E)??s);if(a&&r)return{guideColor:a,guideColorActive:r}}).filter(OR.$K),r=E.map(t=>{let s=e.getColor(t.indentColor),x=e.getColor(t.indentColorActive),E=U7(s),a=U7(x);if(E&&a)return{indentColor:E,indentColorActive:a}}).filter(OR.$K);if(a.length>0){for(let e=0;e<30;e++){let s=a[e%a.length];t.addRule(`.monaco-editor .${x.getInlineClassNameOfLevel(e).replace(/ /g,".")} { --guide-color: ${s.guideColor}; --guide-color-active: ${s.guideColorActive}; }`)}t.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),t.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),t.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),t.addRule(`.monaco-editor .vertical.${x.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),t.addRule(`.monaco-editor .horizontal-top.${x.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),t.addRule(`.monaco-editor .horizontal-bottom.${x.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(r.length>0){for(let e=0;e<30;e++){let s=r[e%r.length];t.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${e} { --indent-color: ${s.indentColor}; --indent-color-active: ${s.indentColorActive}; }`)}t.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),t.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}}),x(55863);class U5{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;let 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 U4{constructor(){this._currentVisibleRange=new OQ.e(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class U6{constructor(e,t,s,x,E,a,r){this.minimalReveal=e,this.lineNumber=t,this.startColumn=s,this.endColumn=x,this.startScrollTop=E,this.stopScrollTop=a,this.scrollType=r,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class U8{constructor(e,t,s,x,E){this.minimalReveal=e,this.selections=t,this.startScrollTop=s,this.stopScrollTop=x,this.scrollType=E,this.type="selections";let a=t[0].startLineNumber,r=t[0].endLineNumber;for(let e=1,s=t.length;e<s;e++){let s=t[e];a=Math.min(a,s.startLineNumber),r=Math.max(r,s.endLineNumber)}this.minLineNumber=a,this.maxLineNumber=r}}class U9 extends Pd{static{this.HORIZONTAL_EXTRA_PX=30}constructor(e,t){super(e);let s=this._context.configuration,x=this._context.configuration.options,E=x.get(50),a=x.get(147);this._lineHeight=x.get(67),this._typicalHalfwidthCharacterWidth=E.typicalHalfwidthCharacterWidth,this._isViewportWrapping=a.isViewportWrapping,this._revealHorizontalRightPadding=x.get(101),this._cursorSurroundingLines=x.get(29),this._cursorSurroundingLinesStyle=x.get(30),this._canUseLayerHinting=!x.get(32),this._viewLineOptions=new PV(s,this._context.theme.type),this._linesContent=t,this._textRangeRestingSpot=document.createElement("div"),this._visibleLines=new UU({createLine:()=>new PX(this._viewLineOptions)}),this.domNode=this._visibleLines.domNode,PU.write(this.domNode,8),this.domNode.setClassName(`view-lines ${dh}`),R0(this.domNode,E),this._maxLineWidth=0,this._asyncUpdateLineWidths=new T$.pY(()=>{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new T$.pY(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new U4,this._horizontalRevealRequest=null,this._stickyScrollEnabled=x.get(116).enabled,this._maxNumberStickyLines=x.get(116).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(147)&&(this._maxLineWidth=0);let t=this._context.configuration.options,s=t.get(50),x=t.get(147);return this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._isViewportWrapping=x.isViewportWrapping,this._revealHorizontalRightPadding=t.get(101),this._cursorSurroundingLines=t.get(29),this._cursorSurroundingLinesStyle=t.get(30),this._canUseLayerHinting=!t.get(32),this._stickyScrollEnabled=t.get(116).enabled,this._maxNumberStickyLines=t.get(116).maxLineCount,R0(this.domNode,s),this._onOptionsMaybeChanged(),e.hasChanged(146)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){let e=new PV(this._context.configuration,this._context.theme.type);if(!this._viewLineOptions.equals(e)){this._viewLineOptions=e;let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let e=t;e<=s;e++)this._visibleLines.getVisibleLine(e).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber(),x=!1;for(let e=t;e<=s;e++)x=this._visibleLines.getVisibleLine(e).onSelectionChanged()||x;return x}onDecorationsChanged(e){{let e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let s=e;s<=t;s++)this._visibleLines.getVisibleLine(s).onDecorationsChanged()}return!0}onFlushed(e){let t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){let t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(-1===t)return!1;let s=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?s={scrollTop:s.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new U6(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),s.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new U8(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),s.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;let x=Math.abs(this._context.viewLayout.getCurrentScrollTop()-s.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(s,x),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){let t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),s=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTop<t||e.scrollTop>s)&&(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){let s=this._getViewLineDomNode(e);if(null===s)return null;let x=this._getLineNumberFor(s);if(-1===x||x<1||x>this._context.viewModel.getLineCount())return null;if(1===this._context.viewModel.getLineMaxColumn(x))return new N0.L(x,1);let E=this._visibleLines.getStartLineNumber(),a=this._visibleLines.getEndLineNumber();if(x<E||x>a)return null;let r=this._visibleLines.getVisibleLine(x).getColumnOfNodeOffset(e,t),i=this._context.viewModel.getLineMinColumn(x);return r<i&&(r=i),new N0.L(x,r)}_getViewLineDomNode(e){for(;e&&1===e.nodeType;){if(e.className===PX.CLASS_NAME)return e;e=e.parentElement}return null}_getLineNumberFor(e){let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();for(let x=t;x<=s;x++)if(e===this._visibleLines.getVisibleLine(x).getDomNode())return x;return -1}getLineWidth(e){let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(e<t||e>s)return -1;let x=new U5(this.domNode.domNode,this._textRangeRestingSpot),E=this._visibleLines.getVisibleLine(e).getWidth(x);return this._updateLineWidthsSlowIfDomDidLayout(x),E}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;let s=e.endLineNumber,x=OQ.e.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!x)return null;let E=[],a=0,r=new U5(this.domNode.domNode,this._textRangeRestingSpot),i=0;t&&(i=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(x.startLineNumber,1)).lineNumber);let n=this._visibleLines.getStartLineNumber(),_=this._visibleLines.getEndLineNumber();for(let e=x.startLineNumber;e<=x.endLineNumber;e++){if(e<n||e>_)continue;let T=e===x.startLineNumber?x.startColumn:1,S=e!==x.endLineNumber,R=S?this._context.viewModel.getLineMaxColumn(e):x.endColumn,O=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,T,R,r);O&&(t&&e<s&&i!==(i=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(e+1,1)).lineNumber)&&(O.ranges[O.ranges.length-1].width+=this._typicalHalfwidthCharacterWidth),E[a++]=new PG(O.outsideRenderedLine,e,PB.from(O.ranges),S))}return(this._updateLineWidthsSlowIfDomDidLayout(r),0===a)?null:E}_visibleRangesForLineRange(e,t,s){if(this.shouldRender()||e<this._visibleLines.getStartLineNumber()||e>this._visibleLines.getEndLineNumber())return null;let x=new U5(this.domNode.domNode,this._textRangeRestingSpot),E=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,s,x);return this._updateLineWidthsSlowIfDomDidLayout(x),E}visibleRangeForPosition(e){let t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new Pf(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){let t=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber(),x=1,E=!0;for(let a=t;a<=s;a++){let t=this._visibleLines.getVisibleLine(a);if(e&&!t.getWidthIsFast()){E=!1;continue}x=Math.max(x,t.getWidth(null))}return E&&1===t&&s===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(x),E}_checkMonospaceFontAssumptions(){let e=-1,t=-1,s=this._visibleLines.getStartLineNumber(),x=this._visibleLines.getEndLineNumber();for(let E=s;E<=x;E++){let s=this._visibleLines.getVisibleLine(E);if(s.needsMonospaceFontCheck()){let x=s.getWidth(null);x>t&&(t=x,e=E)}}if(-1!==e&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let e=s;e<=x;e++)this._visibleLines.getVisibleLine(e).onMonospaceAssumptionsInvalidated()}prepareRender(){throw Error("Not supported")}render(){throw 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){let t=this._horizontalRevealRequest;if(e.startLineNumber<=t.minLineNumber&&t.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();let e=this._computeScrollLeftToReveal(t);e&&(this._isViewportWrapping||this._ensureMaxLineWidth(e.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:e.scrollLeft},t.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),co.IJ&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){let e=this._visibleLines.getStartLineNumber(),t=this._visibleLines.getEndLineNumber();for(let s=e;s<=t;s++)if(this._visibleLines.getVisibleLine(s).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");let t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){let t=Math.ceil(e);this._maxLineWidth<t&&(this._maxLineWidth=t,this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth))}_computeScrollTopToRevealRange(e,t,s,x,E,a){let r,i,n,_;let T=e.top,S=e.height,R=T+S;if(E&&E.length>0){let e=E[0].startLineNumber,t=E[0].endLineNumber;for(let s=1,x=E.length;s<x;s++){let x=E[s];e=Math.min(e,x.startLineNumber),t=Math.max(t,x.endLineNumber)}r=!1,i=this._context.viewLayout.getVerticalOffsetForLineNumber(e),n=this._context.viewLayout.getVerticalOffsetForLineNumber(t)+this._lineHeight}else{if(!x)return -1;r=!0,i=this._context.viewLayout.getVerticalOffsetForLineNumber(x.startLineNumber),n=this._context.viewLayout.getVerticalOffsetForLineNumber(x.endLineNumber)+this._lineHeight}let O=("mouse"===t||s)&&"default"===this._cursorSurroundingLinesStyle,A=0,o=0;if(O)s||(A=this._lineHeight);else{let e=Math.min(S/this._lineHeight/2,Math.max(this._cursorSurroundingLines,this._stickyScrollEnabled?this._maxNumberStickyLines:0));A=e*this._lineHeight,o=Math.max(0,e-1)*this._lineHeight}if(s||0!==a&&4!==a||(o+=this._lineHeight),i-=A,(n+=o)-i>S){if(!r)return -1;_=i}else if(5===a||6===a){if(6===a&&T<=i&&n<=R)_=T;else{let e=i-Math.max(5*this._lineHeight,.2*S);_=Math.max(n-S,e)}}else _=1===a||2===a?2===a&&T<=i&&n<=R?T:Math.max(0,(i+n)/2-S/2):this._computeMinimumScrolling(T,R,i,n,3===a,4===a);return _}_computeScrollLeftToReveal(e){let t=this._context.viewLayout.getCurrentViewport(),s=this._context.configuration.options.get(146),x=t.left,E=x+t.width-s.verticalScrollbarWidth,a=1073741824,r=0;if("range"===e.type){let t=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!t)return null;for(let e of t.ranges)a=Math.min(a,Math.round(e.left)),r=Math.max(r,Math.round(e.left+e.width))}else for(let t of e.selections){if(t.startLineNumber!==t.endLineNumber)return null;let e=this._visibleRangesForLineRange(t.startLineNumber,t.startColumn,t.endColumn);if(!e)return null;for(let t of e.ranges)a=Math.min(a,Math.round(t.left)),r=Math.max(r,Math.round(t.left+t.width))}return(e.minimalReveal||(a=Math.max(0,a-U9.HORIZONTAL_EXTRA_PX),r+=this._revealHorizontalRightPadding),"selections"===e.type&&r-a>t.width)?null:{scrollLeft:this._computeMinimumScrolling(x,E,a,r),maxHorizontalOffset:r}}_computeMinimumScrolling(e,t,s,x,E,a){e|=0,t|=0,s|=0,x|=0,E=!!E,a=!!a;let r=t-e;return!(x-s<r)||E?s:a?Math.max(0,x-r):s<e?s:x>t?Math.max(0,x-r):e}}x(65106);class pe extends Uz{constructor(e){super(),this._context=e;let t=this._context.configuration.options.get(146);this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options.get(146);return this._decorationsLeft=t.decorationsLeft,this._decorationsWidth=t.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){let t=e.getDecorationsInViewport(),s=[],x=0;for(let e=0,E=t.length;e<E;e++){let E=t[e],a=E.options.linesDecorationsClassName,r=E.options.zIndex;a&&(s[x++]=new UQ(E.range.startLineNumber,E.range.endLineNumber,a,E.options.linesDecorationsTooltip??null,r));let i=E.options.firstLineDecorationClassName;i&&(s[x++]=new UQ(E.range.startLineNumber,E.range.startLineNumber,i,E.options.linesDecorationsTooltip??null,r))}return s}prepareRender(e){let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,x=this._render(t,s,this._getDecorations(e)),E='" style="left:'+this._decorationsLeft.toString()+"px;width:"+this._decorationsWidth.toString()+'px;"></div>',a=[];for(let e=t;e<=s;e++){let s=e-t,r=x[s].getDecorations(),i="";for(let e of r){let t='<div class="cldr '+e.className;null!==e.tooltip&&(t+='" title="'+e.tooltip),t+=E,i+=t}a[s]=i}this._renderResult=a}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}x(10763);class pt extends Uz{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){let t=e.getDecorationsInViewport(),s=[],x=0;for(let e=0,E=t.length;e<E;e++){let E=t[e],a=E.options.marginClassName,r=E.options.zIndex;a&&(s[x++]=new UQ(E.range.startLineNumber,E.range.endLineNumber,a,null,r))}return s}prepareRender(e){let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,x=this._render(t,s,this._getDecorations(e)),E=[];for(let e=t;e<=s;e++){let s=e-t,a=x[s].getDecorations(),r="";for(let e of a)r+='<div class="cmdr '+e.className+'" style=""></div>';E[s]=r}this._renderResult=E}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}x(44947);class ps{static{this.Empty=new ps(0,0,0,0)}constructor(e,t,s,x){this._rgba8Brand=void 0,this.r=ps._clamp(e),this.g=ps._clamp(t),this.b=ps._clamp(s),this.a=ps._clamp(x)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:0|e}}class px extends TD.JT{static{this._INSTANCE=null}static getInstance(){return this._INSTANCE||(this._INSTANCE=(0,TD.dk)(new px)),this._INSTANCE}constructor(){super(),this._onDidChange=new T0.Q5,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(NA.RW.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){let e=NA.RW.getColorMap();if(!e){this._colors=[ps.Empty],this._backgroundIsLight=!0;return}this._colors=[ps.Empty];for(let t=1;t<e.length;t++){let s=e[t].rgba;this._colors[t]=new ps(s.r,s.g,s.b,Math.round(255*s.a))}let t=e[2].getRelativeLuminance();this._backgroundIsLight=t>=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}let pE=(()=>{let e=[];for(let t=32;t<=126;t++)e.push(t);return e.push(65533),e})(),pa=(e,t)=>(e-=32)<0||e>96?t<=2?(e+96)%96:95:e;var pr=x(21530);class pi{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=pi.soften(e,.8),this.charDataLight=pi.soften(e,50/60)}static soften(e,t){let s=new Uint8ClampedArray(e.length);for(let x=0,E=e.length;x<E;x++)s[x]=(0,pr.K)(e[x]*t);return s}renderChar(e,t,s,x,E,a,r,i,n,_,T){let S=1*this.scale,R=2*this.scale,O=T?1:R;if(t+S>e.width||s+O>e.height){console.warn("bad render request outside image data");return}let A=_?this.charDataLight:this.charDataNormal,o=pa(x,n),N=4*e.width,I=r.r,h=r.g,L=r.b,C=E.r-I,l=E.g-h,u=E.b-L,D=Math.max(a,i),M=e.data,P=o*S*R,d=s*N+4*t;for(let e=0;e<O;e++){let e=d;for(let t=0;t<S;t++){let t=A[P++]/255*(a/255);M[e++]=I+C*t,M[e++]=h+l*t,M[e++]=L+u*t,M[e++]=D}d+=N}}blockRenderChar(e,t,s,x,E,a,r,i){let n=1*this.scale,_=2*this.scale,T=i?1:_;if(t+n>e.width||s+T>e.height){console.warn("bad render request outside image data");return}let S=4*e.width,R=E/255*.5,O=a.r,A=a.g,o=a.b,N=x.r-O,I=x.g-A,h=x.b-o,L=O+N*R,C=A+I*R,l=o+h*R,u=Math.max(E,r),D=e.data,M=s*S+4*t;for(let e=0;e<T;e++){let e=M;for(let t=0;t<n;t++)D[e++]=L,D[e++]=C,D[e++]=l,D[e++]=u;M+=S}}}let pn={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},p_=e=>{let t=new Uint8ClampedArray(e.length/2);for(let s=0;s<e.length;s+=2)t[s>>1]=pn[e[s]]<<4|15&pn[e[s+1]];return t},pc={1:(0,um.M)(()=>p_("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:(0,um.M)(()=>p_("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))};class pT{static create(e,t){let s;return this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily?this.lastCreated:(s=pc[e]?new pi(pc[e](),e):pT.createFromSampleData(pT.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=s,s)}static createSampleData(e){let t=document.createElement("canvas"),s=t.getContext("2d");t.style.height="16px",t.height=16,t.width=960,t.style.width="960px",s.fillStyle="#ffffff",s.font=`bold 16px ${e}`,s.textBaseline="middle";let x=0;for(let e of pE)s.fillText(String.fromCharCode(e),x,8),x+=10;return s.getImageData(0,0,960,16)}static createFromSampleData(e,t){if(61440!==e.length)throw Error("Unexpected source in MinimapCharRenderer");return new pi(pT._downsample(e,t),t)}static _downsampleChar(e,t,s,x,E){let a=1*E,r=2*E,i=x,n=0;for(let x=0;x<r;x++){let E=x/r*16,_=(x+1)/r*16;for(let x=0;x<a;x++){let r=x/a*10,T=(x+1)/a*10,S=0,R=0;for(let s=E;s<_;s++){let x=t+3840*Math.floor(s),E=1-(s-Math.floor(s));for(let t=r;t<T;t++){let s=1-(t-Math.floor(t)),a=x+4*Math.floor(t),r=s*E;R+=r,S+=e[a]*e[a+3]/255*r}}let O=S/R;n=Math.max(n,O),s[i++]=(0,pr.K)(O)}}return n}static _downsample(e,t){let s=2*t*1*t,x=96*s,E=new Uint8ClampedArray(x),a=0,r=0,i=0;for(let x=0;x<96;x++)i=Math.max(i,this._downsampleChar(e,r,E,a,t)),a+=s,r+=40;if(i>0){let e=255/i;for(let t=0;t<x;t++)E[t]*=e}return E}}let pS=co.ED?'"Segoe WPC", "Segoe UI", sans-serif':co.dz?"-apple-system, BlinkMacSystemFont, sans-serif":'system-ui, "Ubuntu", "Droid Sans", sans-serif';class pR{constructor(e,t,s){let x=e.options,E=x.get(144),a=x.get(146),r=a.minimap,i=x.get(50),n=x.get(73);this.renderMinimap=r.renderMinimap,this.size=n.size,this.minimapHeightIsEditorHeight=r.minimapHeightIsEditorHeight,this.scrollBeyondLastLine=x.get(106),this.paddingTop=x.get(84).top,this.paddingBottom=x.get(84).bottom,this.showSlider=n.showSlider,this.autohide=n.autohide,this.pixelRatio=E,this.typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this.lineHeight=x.get(67),this.minimapLeft=r.minimapLeft,this.minimapWidth=r.minimapWidth,this.minimapHeight=a.height,this.canvasInnerWidth=r.minimapCanvasInnerWidth,this.canvasInnerHeight=r.minimapCanvasInnerHeight,this.canvasOuterWidth=r.minimapCanvasOuterWidth,this.canvasOuterHeight=r.minimapCanvasOuterHeight,this.isSampling=r.minimapIsSampling,this.editorHeight=a.height,this.fontScale=r.minimapScale,this.minimapLineHeight=r.minimapLineHeight,this.minimapCharWidth=1*this.fontScale,this.sectionHeaderFontFamily=pS,this.sectionHeaderFontSize=n.sectionHeaderFontSize*E,this.sectionHeaderLetterSpacing=n.sectionHeaderLetterSpacing,this.sectionHeaderFontColor=pR._getSectionHeaderColor(t,s.getColor(1)),this.charRenderer=(0,um.M)(()=>pT.create(this.fontScale,i.fontFamily)),this.defaultBackgroundColor=s.getColor(2),this.backgroundColor=pR._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=pR._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){let s=e.getColor(AY.kVY);return s?new ps(s.rgba.r,s.rgba.g,s.rgba.b,Math.round(255*s.rgba.a)):t}static _getMinimapForegroundOpacity(e){let t=e.getColor(AY.Itd);return t?ps._clamp(Math.round(255*t.rgba.a)):255}static _getSectionHeaderColor(e,t){let s=e.getColor(AY.NOs);return s?new ps(s.rgba.r,s.rgba.g,s.rgba.b,Math.round(255*s.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 pO{constructor(e,t,s,x,E,a,r,i,n){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=s,this._computedSliderRatio=x,this.sliderTop=E,this.sliderHeight=a,this.topPaddingLineCount=r,this.startLineNumber=i,this.endLineNumber=n}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){let t=Math.max(this.startLineNumber,e.startLineNumber),s=Math.min(this.endLineNumber,e.endLineNumber);return t>s?null:[t,s]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,s,x,E,a,r,i,n,_,T){let S,R;let O=e.pixelRatio,A=e.minimapLineHeight,o=Math.floor(e.canvasInnerHeight/A),N=e.lineHeight;if(e.minimapHeightIsEditorHeight){let t=i*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(t+=Math.max(0,E-e.lineHeight-e.paddingBottom));let s=Math.max(1,Math.floor(E*E/t)),x=Math.max(0,e.minimapHeight-s),a=x/(_-E),T=Math.floor(e.canvasInnerHeight/e.minimapLineHeight);return new pO(n,_,x>0,a,n*a,s,Math.floor(e.paddingTop/e.lineHeight),1,Math.min(r,T))}S=a&&s!==r?Math.floor((s-t+1)*A/O):Math.floor(E/N*A/O);let I=Math.floor(e.paddingTop/N),h=Math.floor(e.paddingBottom/N);e.scrollBeyondLastLine&&(h=Math.max(h,E/N-1)),R=h>0?(I+r+h-E/N-1)*A/O:Math.max(0,(I+r)*A/O-S);let L=(R=Math.min(e.minimapHeight-S,R))/(_-E),C=n*L;if(o>=I+r+h)return new pO(n,_,R>0,L,C,S,I,1,r);{let s,E;let a=Math.max(1,Math.floor((t>1?t+I:Math.max(1,n/N))-C*O/A));a<I?(s=I-a+1,a=1):(s=0,a=Math.max(1,a-I)),T&&T.scrollHeight===_&&(T.scrollTop>n&&(a=Math.min(a,T.startLineNumber),s=Math.max(s,T.topPaddingLineCount)),T.scrollTop<n&&(a=Math.max(a,T.startLineNumber),s=Math.min(s,T.topPaddingLineCount)));let i=Math.min(r,a-s+o-1),R=(n-x)/N;return E=n>=e.paddingTop?(t-a+s+R)*A/O:n/e.paddingTop*(s+R)*A/O,new pO(n,_,!0,L,E,S,s,a,i)}}}class pA{static{this.INVALID=new pA(-1)}constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}class po{constructor(e,t,s){this.renderedLayout=e,this._imageData=t,this._renderedLines=new Ud({createLine:()=>pA.INVALID}),this._renderedLines._set(e.startLineNumber,s)}linesEquals(e){if(!this.scrollEquals(e))return!1;let t=this._renderedLines._get().lines;for(let e=0,s=t.length;e<s;e++)if(-1===t[e].dy)return!1;return!0}scrollEquals(e){return this.renderedLayout.startLineNumber===e.startLineNumber&&this.renderedLayout.endLineNumber===e.endLineNumber}_get(){let 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 pN{constructor(e,t,s,x){this._backgroundFillData=pN._createBackgroundFillData(t,s,x),this._buffers=[e.createImageData(t,s),e.createImageData(t,s)],this._lastUsedBuffer=0}getBuffer(){this._lastUsedBuffer=1-this._lastUsedBuffer;let e=this._buffers[this._lastUsedBuffer];return e.data.set(this._backgroundFillData),e}static _createBackgroundFillData(e,t,s){let x=s.r,E=s.g,a=s.b,r=s.a,i=new Uint8ClampedArray(e*t*4),n=0;for(let s=0;s<t;s++)for(let t=0;t<e;t++)i[n]=x,i[n+1]=E,i[n+2]=a,i[n+3]=r,n+=4;return i}}class pI{static compute(e,t,s){if(0===e.renderMinimap||!e.isSampling)return[null,[]];let{minimapLineCount:x}=cJ.computeContainedMinimapLineCount({viewLineCount:t,scrollBeyondLastLine:e.scrollBeyondLastLine,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:e.editorHeight,lineHeight:e.lineHeight,pixelRatio:e.pixelRatio}),E=t/x,a=E/2;if(!s||0===s.minimapLines.length){let e=[];if(e[0]=1,x>1){for(let t=0,s=x-1;t<s;t++)e[t]=Math.round(t*E+a);e[x-1]=t}return[new pI(E,e),[]]}let r=s.minimapLines,i=r.length,n=[],_=0,T=0,S=1,R=[],O=null;for(let e=0;e<x;e++){let s;let A=Math.max(S,Math.round(e*E)),o=Math.max(A,Math.round((e+1)*E));for(;_<i&&r[_]<A;){if(R.length<10){let e=_+1+T;O&&"deleted"===O.type&&O._oldIndex===_-1?O.deleteToLineNumber++:(O={type:"deleted",_oldIndex:_,deleteFromLineNumber:e,deleteToLineNumber:e},R.push(O)),T--}_++}if(_<i&&r[_]<=o)s=r[_],_++;else if(s=0===e?1:e+1===x?t:Math.round(e*E+a),R.length<10){let t=_+1+T;O&&"inserted"===O.type&&O._i===e-1?O.insertToLineNumber++:(O={type:"inserted",_i:e,insertFromLineNumber:t,insertToLineNumber:t},R.push(O)),T++}n[e]=s,S=s}if(R.length<10)for(;_<i;){let e=_+1+T;O&&"deleted"===O.type&&O._oldIndex===_-1?O.deleteToLineNumber++:(O={type:"deleted",_oldIndex:_,deleteFromLineNumber:e,deleteToLineNumber:e},R.push(O)),T--,_++}else R=[{type:"flush"}];return[new pI(E,n),R]}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 s=this.modelLineToMinimapLine(e)-1;for(;s>0&&this.minimapLines[s-1]>=e;)s--;let x=this.modelLineToMinimapLine(t)-1;for(;x+1<this.minimapLines.length&&this.minimapLines[x+1]<=t;)x++;if(s===x){let x=this.minimapLines[s];if(x<e||x>t)return null}return[s+1,x+1]}decorationLineRangeToMinimapLineRange(e,t){let s=this.modelLineToMinimapLine(e),x=this.modelLineToMinimapLine(t);return e!==t&&x===s&&(x===this.minimapLines.length?s>1&&s--:x++),[s,x]}onLinesDeleted(e){let t=e.toLineNumber-e.fromLineNumber+1,s=this.minimapLines.length,x=0;for(let E=this.minimapLines.length-1;E>=0&&!(this.minimapLines[E]<e.fromLineNumber);E--)this.minimapLines[E]<=e.toLineNumber?(this.minimapLines[E]=Math.max(1,e.fromLineNumber-1),s=Math.min(s,E),x=Math.max(x,E)):this.minimapLines[E]-=t;return[s,x]}onLinesInserted(e){let t=e.toLineNumber-e.fromLineNumber+1;for(let s=this.minimapLines.length-1;s>=0&&!(this.minimapLines[s]<e.fromLineNumber);s--)this.minimapLines[s]+=t}}class ph extends Pd{constructor(e){super(e),this._sectionHeaderCache=new on.z6(10,1.5),this.tokensColorTracker=px.getInstance(),this._selections=[],this._minimapSelections=null,this.options=new pR(this._context.configuration,this._context.theme,this.tokensColorTracker);let[t]=pI.compute(this.options,this._context.viewModel.getLineCount(),null);this._samplingState=t,this._shouldCheckSampling=!1,this._actual=new pL(e.theme,this)}dispose(){this._actual.dispose(),super.dispose()}getDomNode(){return this._actual.getDomNode()}_onOptionsMaybeChanged(){let e=new pR(this._context.configuration,this._context.theme,this.tokensColorTracker);return!this.options.equals(e)&&(this.options=e,this._recreateLineSampling(),this._actual.onDidChangeOptions(),!0)}onConfigurationChanged(e){return this._onOptionsMaybeChanged()}onCursorStateChanged(e){return this._selections=e.selections,this._minimapSelections=null,this._actual.onSelectionChanged()}onDecorationsChanged(e){return!!e.affectsMinimap&&this._actual.onDecorationsChanged()}onFlushed(e){return this._samplingState&&(this._shouldCheckSampling=!0),this._actual.onFlushed()}onLinesChanged(e){if(!this._samplingState)return this._actual.onLinesChanged(e.fromLineNumber,e.count);{let t=this._samplingState.modelLineRangeToMinimapLineRange(e.fromLineNumber,e.fromLineNumber+e.count-1);return!!t&&this._actual.onLinesChanged(t[0],t[1]-t[0]+1)}}onLinesDeleted(e){if(!this._samplingState)return this._actual.onLinesDeleted(e.fromLineNumber,e.toLineNumber);{let[t,s]=this._samplingState.onLinesDeleted(e);return t<=s&&this._actual.onLinesChanged(t+1,s-t+1),this._shouldCheckSampling=!0,!0}}onLinesInserted(e){return this._samplingState?(this._samplingState.onLinesInserted(e),this._shouldCheckSampling=!0,!0):this._actual.onLinesInserted(e.fromLineNumber,e.toLineNumber)}onScrollChanged(e){return this._actual.onScrollChanged()}onThemeChanged(e){return this._actual.onThemeChanged(),this._onOptionsMaybeChanged(),!0}onTokensChanged(e){if(!this._samplingState)return this._actual.onTokensChanged(e.ranges);{let t=[];for(let s of e.ranges){let e=this._samplingState.modelLineRangeToMinimapLineRange(s.fromLineNumber,s.toLineNumber);e&&t.push({fromLineNumber:e[0],toLineNumber:e[1]})}return!!t.length&&this._actual.onTokensChanged(t)}}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,s=e.visibleRange.endLineNumber;this._samplingState&&(t=this._samplingState.modelLineToMinimapLine(t),s=this._samplingState.modelLineToMinimapLine(s));let x={viewportContainsWhitespaceGaps:e.viewportData.whitespaceViewportData.length>0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:s,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(x)}_recreateLineSampling(){this._minimapSelections=null;let e=!!this._samplingState,[t,s]=pI.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(let e of s)switch(e.type){case"deleted":this._actual.onLinesDeleted(e.deleteFromLineNumber,e.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(e.insertFromLineNumber,e.insertToLineNumber);break;case"flush":this._actual.onFlushed()}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.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,s){if(this._samplingState){let x=[];for(let E=0,a=t-e+1;E<a;E++)s[E]?x[E]=this._context.viewModel.getViewLineData(this._samplingState.minimapLines[e+E-1]):x[E]=null;return x}return this._context.viewModel.getMinimapLinesRenderingData(e,t,s).data}getSelections(){if(null===this._minimapSelections){if(this._samplingState)for(let e of(this._minimapSelections=[],this._selections)){let[t,s]=this._samplingState.decorationLineRangeToMinimapLineRange(e.startLineNumber,e.endLineNumber);this._minimapSelections.push(new P4.Y(t,e.startColumn,s,e.endColumn))}else this._minimapSelections=this._selections}return this._minimapSelections}getMinimapDecorationsInViewport(e,t){let s=this._getMinimapDecorationsInViewport(e,t).filter(e=>!e.options.minimap?.sectionHeaderStyle);if(this._samplingState){let e=[];for(let t of s){if(!t.options.minimap)continue;let s=t.range,x=this._samplingState.modelLineToMinimapLine(s.startLineNumber),E=this._samplingState.modelLineToMinimapLine(s.endLineNumber);e.push(new MK(new OQ.e(x,s.startColumn,E,s.endColumn),t.options))}return e}return s}getSectionHeaderDecorationsInViewport(e,t){let s=this.options.minimapLineHeight,x=this.options.sectionHeaderFontSize;return e=Math.floor(Math.max(1,e-x/s)),this._getMinimapDecorationsInViewport(e,t).filter(e=>!!e.options.minimap?.sectionHeaderStyle)}_getMinimapDecorationsInViewport(e,t){let s;if(this._samplingState){let x=this._samplingState.minimapLines[e-1],E=this._samplingState.minimapLines[t-1];s=new OQ.e(x,1,E,this._context.viewModel.getLineMaxColumn(E))}else s=new OQ.e(e,1,t,this._context.viewModel.getLineMaxColumn(t));return this._context.viewModel.getMinimapDecorationsInRange(s)}getSectionHeaderText(e,t){let s=e.options.minimap?.sectionHeaderText;if(!s)return null;let x=this._sectionHeaderCache.get(s);if(x)return x;let E=t(s);return this._sectionHeaderCache.set(s,E),E}getOptions(){return this._context.viewModel.model.getOptions()}revealLineNumber(e){this._samplingState&&(e=this._samplingState.minimapLines[e-1]),this._context.viewModel.revealRange("mouse",!1,new OQ.e(e,1,e,1),1,0)}setScrollTop(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e},1)}}class pL extends TD.JT{constructor(e,t){super(),this._renderDecorations=!1,this._gestureInProgress=!1,this._theme=e,this._model=t,this._lastRenderData=null,this._buffers=null,this._selectionColor=this._theme.getColor(AY.ov3),this._domNode=R$(document.createElement("div")),PU.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=R$(document.createElement("div")),this._shadow.setClassName("minimap-shadow-hidden"),this._domNode.appendChild(this._shadow),this._canvas=R$(document.createElement("canvas")),this._canvas.setPosition("absolute"),this._canvas.setLeft(0),this._domNode.appendChild(this._canvas),this._decorationsCanvas=R$(document.createElement("canvas")),this._decorationsCanvas.setPosition("absolute"),this._decorationsCanvas.setClassName("minimap-decorations-layer"),this._decorationsCanvas.setLeft(0),this._domNode.appendChild(this._decorationsCanvas),this._slider=R$(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=R$(document.createElement("div")),this._sliderHorizontal.setPosition("absolute"),this._sliderHorizontal.setClassName("minimap-slider-horizontal"),this._slider.appendChild(this._sliderHorizontal),this._applyLayout(),this._pointerDownListener=S5(this._domNode.domNode,RD.POINTER_DOWN,e=>{if(e.preventDefault(),0===this._model.options.renderMinimap||!this._lastRenderData)return;if("proportional"!==this._model.options.size){if(0===e.button&&this._lastRenderData){let t=Rx(this._slider.domNode),s=t.top+t.height/2;this._startSliderDragging(e,s,this._lastRenderData.renderedLayout)}return}let t=this._model.options.minimapLineHeight,s=Math.floor(this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*e.offsetY/t)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;s=Math.min(s,this._model.getLineCount()),this._model.revealLineNumber(s)}),this._sliderPointerMoveMonitor=new Ay,this._sliderPointerDownListener=S5(this._slider.domNode,RD.POINTER_DOWN,e=>{e.preventDefault(),e.stopPropagation(),0===e.button&&this._lastRenderData&&this._startSliderDragging(e,e.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=AX.addTarget(this._domNode.domNode),this._sliderTouchStartListener=S7(this._domNode.domNode,g.Start,e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(e))},{passive:!1}),this._sliderTouchMoveListener=S7(this._domNode.domNode,g.Change,e=>{e.preventDefault(),e.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(e)},{passive:!1}),this._sliderTouchEndListener=S5(this._domNode.domNode,g.End,e=>{e.preventDefault(),e.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(e,t,s){if(!e.target||!(e.target instanceof Element))return;let x=e.pageX;this._slider.toggleClassName("active",!0);let E=(e,E)=>{let a=Rx(this._domNode.domNode),r=Math.min(Math.abs(E-x),Math.abs(E-a.left),Math.abs(E-a.left-a.width));if(co.ED&&r>140){this._model.setScrollTop(s.scrollTop);return}this._model.setScrollTop(s.getDesiredScrollTopFromDelta(e-t))};e.pageY!==t&&E(e.pageY,x),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,e=>E(e.pageY,e.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(e){let t=this._domNode.domNode.getBoundingClientRect().top,s=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(s)}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(){let e=["minimap"];return"always"===this._model.options.showSlider?e.push("slider-always"):e.push("slider-mouseover"),this._model.options.autohide&&e.push("autohide"),e.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return!this._buffers&&this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new pN(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e,t)}onLinesDeleted(e,t){return this._lastRenderData?.onLinesDeleted(e,t),!0}onLinesInserted(e,t){return this._lastRenderData?.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(AY.ov3),this._renderDecorations=!0,!0}onTokensChanged(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(0===this._model.options.renderMinimap){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");let t=pO.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(t.sliderNeeded?"block":"none"),this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this.renderDecorations(t),this._lastRenderData=this.renderLines(t)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;let t=this._model.getSelections();t.sort(OQ.e.compareRangesUsingStarts);let s=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);s.sort((e,t)=>(e.options.zIndex||0)-(t.options.zIndex||0));let{canvasInnerWidth:x,canvasInnerHeight:E}=this._model.options,a=this._model.options.minimapLineHeight,r=this._model.options.minimapCharWidth,i=this._model.getOptions().tabSize,n=this._decorationsCanvas.domNode.getContext("2d");n.clearRect(0,0,x,E);let _=new pC(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(n,t,_,e,a),this._renderDecorationsLineHighlights(n,s,_,e,a);let T=new pC(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(n,t,T,e,a,i,r,x),this._renderDecorationsHighlights(n,s,T,e,a,i,r,x),this._renderSectionHeaders(e)}}_renderSelectionLineHighlights(e,t,s,x,E){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let a=0,r=0;for(let i of t){let t=x.intersectWithViewport(i);if(!t)continue;let[n,_]=t;for(let e=n;e<=_;e++)s.set(e,!0);let T=x.getYForLineNumber(n,E),S=x.getYForLineNumber(_,E);r>=T||(r>a&&e.fillRect(8,a,e.canvas.width,r-a),a=T),r=S}r>a&&e.fillRect(8,a,e.canvas.width,r-a)}_renderDecorationsLineHighlights(e,t,s,x,E){let a=new Map;for(let r=t.length-1;r>=0;r--){let i=t[r],n=i.options.minimap;if(!n||1!==n.position)continue;let _=x.intersectWithViewport(i.range);if(!_)continue;let[T,S]=_,R=n.getColor(this._theme.value);if(!R||R.isTransparent())continue;let O=a.get(R.toString());O||(O=R.transparent(.5).toString(),a.set(R.toString(),O)),e.fillStyle=O;for(let t=T;t<=S;t++){if(s.has(t))continue;s.set(t,!0);let a=x.getYForLineNumber(T,E);e.fillRect(8,a,e.canvas.width,E)}}}_renderSelectionsHighlights(e,t,s,x,E,a,r,i){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(let n of t){let t=x.intersectWithViewport(n);if(!t)continue;let[_,T]=t;for(let t=_;t<=T;t++)this.renderDecorationOnLine(e,s,n,this._selectionColor,x,t,E,E,a,r,i)}}_renderDecorationsHighlights(e,t,s,x,E,a,r,i){for(let n of t){let t=n.options.minimap;if(!t)continue;let _=x.intersectWithViewport(n.range);if(!_)continue;let[T,S]=_,R=t.getColor(this._theme.value);if(!(!R||R.isTransparent()))for(let _=T;_<=S;_++)switch(t.position){case 1:this.renderDecorationOnLine(e,s,n.range,R,x,_,E,E,a,r,i);continue;case 2:{let t=x.getYForLineNumber(_,E);this.renderDecoration(e,R,2,t,2,E);continue}}}}renderDecorationOnLine(e,t,s,x,E,a,r,i,n,_,T){let S=E.getYForLineNumber(a,i);if(S+r<0||S>this._model.options.canvasInnerHeight)return;let{startLineNumber:R,endLineNumber:O}=s,A=R===a?s.startColumn:1,o=O===a?s.endColumn:this._model.getLineMaxColumn(a),N=this.getXOffsetForPosition(t,a,A,n,_,T),I=this.getXOffsetForPosition(t,a,o,n,_,T);this.renderDecoration(e,x,N,S,I-N,r)}getXOffsetForPosition(e,t,s,x,E,a){if(1===s)return 8;if((s-1)*E>=a)return a;let r=e.get(t);if(!r){let s=this._model.getLineContent(t);r=[8];let i=8;for(let e=1;e<s.length+1;e++){let t=s.charCodeAt(e-1),n=i+(9===t?x*E:TM.K7(t)?2*E:E);if(n>=a){r[e]=a;break}r[e]=n,i=n}e.set(t,r)}return s-1<r.length?r[s-1]:a}renderDecoration(e,t,s,x,E,a){e.fillStyle=t&&t.toString()||"",e.fillRect(s,x,E,a)}_renderSectionHeaders(e){let t=this._model.options.minimapLineHeight,s=this._model.options.sectionHeaderFontSize,x=this._model.options.sectionHeaderLetterSpacing,E=1.5*s,{canvasInnerWidth:a}=this._model.options,r=this._model.options.backgroundColor,i=`rgb(${r.r} ${r.g} ${r.b} / .7)`,n=this._model.options.sectionHeaderFontColor,_=`rgb(${n.r} ${n.g} ${n.b})`,T=this._decorationsCanvas.domNode.getContext("2d");T.letterSpacing=x+"px",T.font="500 "+s+"px "+this._model.options.sectionHeaderFontFamily,T.strokeStyle=_,T.lineWidth=.2;let S=this._model.getSectionHeaderDecorationsInViewport(e.startLineNumber,e.endLineNumber);S.sort((e,t)=>e.range.startLineNumber-t.range.startLineNumber);let R=pL._fitSectionHeader.bind(null,T,a-8);for(let x of S){let r=e.getYForLineNumber(x.range.startLineNumber,t)+s,n=r-s,S=n+2,O=this._model.getSectionHeaderText(x,R);pL._renderSectionLabel(T,O,x.options.minimap?.sectionHeaderStyle===2,i,_,a,n,E,r,S)}}static _fitSectionHeader(e,t,s){if(!s)return s;let x=e.measureText(s).width,E=e.measureText("…").width;if(x<=t||x<=E)return s;let a=s.length,r=Math.floor((t-E)/(x/s.length))-1,i=Math.ceil(r/2);for(;i>0&&/\s/.test(s[i-1]);)--i;return s.substring(0,i)+"…"+s.substring(a-(r-i))}static _renderSectionLabel(e,t,s,x,E,a,r,i,n,_){t&&(e.fillStyle=x,e.fillRect(0,r,a,i),e.fillStyle=E,e.fillText(t,8,n)),s&&(e.beginPath(),e.moveTo(0,_),e.lineTo(a,_),e.closePath(),e.stroke())}renderLines(e){let t=e.startLineNumber,s=e.endLineNumber,x=this._model.options.minimapLineHeight;if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){let t=this._lastRenderData._get();return new po(e,t.imageData,t.lines)}let E=this._getBuffer();if(!E)return null;let[a,r,i]=pL._renderUntouchedLines(E,e.topPaddingLineCount,t,s,x,this._lastRenderData),n=this._model.getMinimapLinesRenderingData(t,s,i),_=this._model.getOptions().tabSize,T=this._model.options.defaultBackgroundColor,S=this._model.options.backgroundColor,R=this._model.options.foregroundAlpha,O=this._model.tokensColorTracker,A=O.backgroundIsLight(),o=this._model.options.renderMinimap,N=this._model.options.charRenderer(),I=this._model.options.fontScale,h=this._model.options.minimapCharWidth,L=(1===o?2:3)*I,C=x>L?Math.floor((x-L)/2):0,l=S.a/255,u=new ps(Math.round((S.r-T.r)*l+T.r),Math.round((S.g-T.g)*l+T.g),Math.round((S.b-T.b)*l+T.b),255),D=e.topPaddingLineCount*x,M=[];for(let e=0,a=s-t+1;e<a;e++)i[e]&&pL._renderLine(E,u,S.a,A,o,h,O,R,N,D,C,_,n[e],I,x),M[e]=new pA(D),D+=x;let P=-1===a?0:a,d=-1===r?E.height:r;return this._canvas.domNode.getContext("2d").putImageData(E,0,0,0,P,E.width,d-P),new po(e,E,M)}static _renderUntouchedLines(e,t,s,x,E,a){let r=[];if(!a){for(let e=0,t=x-s+1;e<t;e++)r[e]=!0;return[-1,-1,r]}let i=a._get(),n=i.imageData.data,_=i.rendLineNumberStart,T=i.lines,S=T.length,R=e.width,O=e.data,A=(x-s+1)*E*R*4,o=-1,N=-1,I=-1,h=-1,L=-1,C=-1,l=t*E;for(let e=s;e<=x;e++){let t=e-s,x=e-_,a=x>=0&&x<S?T[x].dy:-1;if(-1===a){r[t]=!0,l+=E;continue}let i=a*R*4,u=(a+E)*R*4,D=l*R*4,M=(l+E)*R*4;h===i&&C===D?h=u:(-1!==I&&(O.set(n.subarray(I,h),L),-1===o&&0===I&&I===L&&(o=h),-1===N&&h===A&&I===L&&(N=I)),I=i,h=u,L=D),C=M,r[t]=!1,l+=E}return -1!==I&&(O.set(n.subarray(I,h),L),-1===o&&0===I&&I===L&&(o=h),-1===N&&h===A&&I===L&&(N=I)),[-1===o?-1:o/(4*R),-1===N?-1:N/(4*R),r]}static _renderLine(e,t,s,x,E,a,r,i,n,_,T,S,R,O,A){let o=R.content,N=R.tokens,I=e.width-a,h=1===A,L=8,C=0,l=0;for(let R=0,A=N.getCount();R<A;R++){let A=N.getEndOffset(R),u=N.getForeground(R),D=r.getColor(u);for(;C<A;C++){if(L>I)return;let r=o.charCodeAt(C);if(9===r){let e=S-(C+l)%S;l+=e-1,L+=e*a}else if(32===r)L+=a;else{let S=TM.K7(r)?2:1;for(let R=0;R<S;R++)if(2===E?n.blockRenderChar(e,L,_+T,D,i,t,s,h):n.renderChar(e,L,_+T,r,D,i,t,s,O,x,h),(L+=a)>I)return}}}}}class pC{constructor(e,t,s){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=s,this._values=[];for(let e=0,t=this._endLineNumber-this._startLineNumber+1;e<t;e++)this._values[e]=s}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]}}x(23448);class pl extends Pd{constructor(e,t){super(e),this._viewDomNode=t;let s=this._context.configuration.options.get(146);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=R$(document.createElement("div")),PU.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=R$(document.createElement("div")),PU.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){let t=this._context.configuration.options.get(146);return this._verticalScrollbarWidth=t.verticalScrollbarWidth,this._minimapWidth=t.minimap.minimapWidth,this._horizontalScrollbarHeight=t.horizontalScrollbarHeight,this._editorHeight=t.height,this._editorWidth=t.width,!0}addWidget(e){let t=R$(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),e.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){let s=this._widgets[e.getId()],x=t?t.preference:null,E=t?.stackOridinal;return s.preference===x&&s.stack===E?(this._updateMaxMinWidth(),!1):(s.preference=x,s.stack=E,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){let t=e.getId();if(this._widgets.hasOwnProperty(t)){let e=this._widgets[t].domNode.domNode;delete this._widgets[t],e.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){let e=0,t=Object.keys(this._widgets);for(let s=0,x=t.length;s<x;s++){let x=t[s],E=this._widgets[x],a=E.widget.getMinContentWidthInPx?.();void 0!==a&&(e=Math.max(e,a))}this._context.viewLayout.setOverlayWidgetsMinWidth(e)}_renderWidget(e,t){let s=e.domNode;if(null===e.preference){s.setTop("");return}let x=2*this._verticalScrollbarWidth+this._minimapWidth;if(0===e.preference||1===e.preference){if(1===e.preference){let e=s.domNode.clientHeight;s.setTop(this._editorHeight-e-2*this._horizontalScrollbarHeight)}else s.setTop(0);void 0!==e.stack?(s.setTop(t[e.preference]),t[e.preference]+=s.domNode.clientWidth):s.setRight(x)}else if(2===e.preference)s.domNode.style.right="50%",void 0!==e.stack?(s.setTop(t[2]),t[2]+=s.domNode.clientHeight):s.setTop(0);else{let{top:t,left:x}=e.preference;if(this._context.configuration.options.get(42)&&e.widget.allowEditorOverflow){let e=this._viewDomNodeRect;s.setTop(t+e.top),s.setLeft(x+e.left),s.setPosition("fixed")}else s.setTop(t),s.setLeft(x),s.setPosition("absolute")}}prepareRender(e){this._viewDomNodeRect=Rx(this._viewDomNode.domNode)}render(e){this._domNode.setWidth(this._editorWidth);let t=Object.keys(this._widgets),s=Array.from({length:3},()=>0);t.sort((e,t)=>(this._widgets[e].stack||0)-(this._widgets[t].stack||0));for(let e=0,x=t.length;e<x;e++){let x=t[e];this._renderWidget(this._widgets[x],s)}}}class pu{constructor(e,t){let s=e.options;this.lineHeight=s.get(67),this.pixelRatio=s.get(144),this.overviewRulerLanes=s.get(83),this.renderBorder=s.get(82);let x=t.getColor(uJ.zw);this.borderColor=x?x.toString():null,this.hideCursor=s.get(59);let E=t.getColor(uJ.n0);this.cursorColorSingle=E?E.transparent(.7).toString():null;let a=t.getColor(uJ.jD);this.cursorColorPrimary=a?a.transparent(.7).toString():null;let r=t.getColor(uJ.x_);this.cursorColorSecondary=r?r.transparent(.7).toString():null,this.themeType=t.type;let i=s.get(73),n=i.enabled,_=i.side,T=t.getColor(uJ.e_),S=NA.RW.getDefaultBackground();T?this.backgroundColor=T:n&&"right"===_?this.backgroundColor=S:this.backgroundColor=null;let R=s.get(146).overviewRuler;this.top=R.top,this.right=R.right,this.domWidth=R.width,this.domHeight=R.height,0===this.overviewRulerLanes?(this.canvasWidth=0,this.canvasHeight=0):(this.canvasWidth=this.domWidth*this.pixelRatio|0,this.canvasHeight=this.domHeight*this.pixelRatio|0);let[O,A]=this._initLanes(1,this.canvasWidth,this.overviewRulerLanes);this.x=O,this.w=A}_initLanes(e,t,s){let x=t-e;if(s>=3){let t=Math.floor(x/3),s=Math.floor(x/3),E=x-t-s,a=e+t;return[[0,e,a,e,e+t+E,e,a,e],[0,t,E,t+E,s,t+E+s,E+s,t+E+s]]}if(2!==s)return[[0,e,e,e,e,e,e,e],[0,x,x,x,x,x,x,x]];{let t=Math.floor(x/2),s=x-t;return[[0,e,e,e,e+t,e,e,e],[0,t,t,t,s,t+s,t+s,t+s]]}}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColorSingle===e.cursorColorSingle&&this.cursorColorPrimary===e.cursorColorPrimary&&this.cursorColorSecondary===e.cursorColorSecondary&&this.themeType===e.themeType&&IV.Il.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 pD extends Pd{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=R$(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=NA.RW.onDidChange(e=>{e.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[{position:new N0.L(1,1),color:this._settings.cursorColorSingle}]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){let t=new pu(this._context.configuration,this._context.theme);return!(this._settings&&this._settings.equals(t))&&(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return!!this._updateSettings(!1)&&this._markRenderingIsNeeded()}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,s=e.selections.length;t<s;t++){let x=this._settings.cursorColorSingle;s>1&&(x=0===t?this._settings.cursorColorPrimary:this._settings.cursorColorSecondary),this._cursorPositions.push({position:e.selections[t].getPosition(),color:x})}return this._cursorPositions.sort((e,t)=>N0.L.compare(e.position,t.position)),this._markRenderingIsMaybeNeeded()}onDecorationsChanged(e){return!!e.affectsOverviewRuler&&this._markRenderingIsMaybeNeeded()}onFlushed(e){return this._markRenderingIsNeeded()}onScrollChanged(e){return!!e.scrollHeightChanged&&this._markRenderingIsNeeded()}onZonesChanged(e){return this._markRenderingIsNeeded()}onThemeChanged(e){return!!this._updateSettings(!1)&&this._markRenderingIsNeeded()}getDomNode(){return this._domNode.domNode}prepareRender(e){}render(e){this._render(),this._actualShouldRender=0}_render(){let e=this._settings.backgroundColor;if(0===this._settings.overviewRulerLanes){this._domNode.setBackgroundColor(e?IV.Il.Format.CSS.formatHexA(e):""),this._domNode.setDisplay("none");return}let t=this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);if(t.sort(MQ.compareByRenderingProps),1!==this._actualShouldRender||MQ.equalsArr(this._renderedDecorations,t)||(this._actualShouldRender=2),1!==this._actualShouldRender||(0,cO.fS)(this._renderedCursorPositions,this._cursorPositions,(e,t)=>e.position.lineNumber===t.position.lineNumber&&e.color===t.color)||(this._actualShouldRender=2),1===this._actualShouldRender)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");let s=this._settings.canvasWidth,x=this._settings.canvasHeight,E=this._settings.lineHeight,a=this._context.viewLayout,r=x/this._context.viewLayout.getScrollHeight(),i=6*this._settings.pixelRatio|0,n=i/2|0,_=this._domNode.domNode.getContext("2d");e?(e.isOpaque()||_.clearRect(0,0,s,x),_.fillStyle=IV.Il.Format.CSS.formatHexA(e),_.fillRect(0,0,s,x)):_.clearRect(0,0,s,x);let T=this._settings.x,S=this._settings.w;for(let e of t){let t=e.color,s=e.data;_.fillStyle=t;let R=0,O=0,A=0;for(let e=0,t=s.length/3;e<t;e++){let t=s[3*e],o=s[3*e+1],N=s[3*e+2],I=a.getVerticalOffsetForLineNumber(o)*r|0,h=(a.getVerticalOffsetForLineNumber(N)+E)*r|0;if(h-I<i){let e=(I+h)/2|0;e<n?e=n:e+n>x&&(e=x-n),I=e-n,h=e+n}I>A+1||t!==R?(0!==e&&_.fillRect(T[R],O,S[R],A-O),R=t,O=I,A=h):h>A&&(A=h)}_.fillRect(T[R],O,S[R],A-O)}if(!this._settings.hideCursor){let e=2*this._settings.pixelRatio|0,t=e/2|0,s=this._settings.x[7],E=this._settings.w[7],i=-100,n=-100,T=null;for(let S=0,R=this._cursorPositions.length;S<R;S++){let R=this._cursorPositions[S].color;if(!R)continue;let O=this._cursorPositions[S].position,A=a.getVerticalOffsetForLineNumber(O.lineNumber)*r|0;A<t?A=t:A+t>x&&(A=x-t);let o=A-t,N=o+e;o>n+1||R!==T?(0!==S&&T&&_.fillRect(s,i,E,n-i),i=o,n=N):N>n&&(n=N),T=R,_.fillStyle=R}T&&_.fillRect(s,i,E,n-i)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(_.beginPath(),_.lineWidth=1,_.strokeStyle=this._settings.borderColor,_.moveTo(0,0),_.lineTo(0,x),_.moveTo(1,0),_.lineTo(s,0),_.stroke())}}class pM{constructor(e,t,s){this._colorZoneBrand=void 0,this.from=0|e,this.to=0|t,this.colorId=0|s}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 pP{constructor(e,t,s,x){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=s,this.color=x,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 pd{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(pP.compare)}setLineHeight(e){return this._lineHeight!==e&&(this._lineHeight=e,this._colorZonesInvalid=!0,!0)}setPixelRatio(e){this._pixelRatio=e,this._colorZonesInvalid=!0}getDOMWidth(){return this._domWidth}getCanvasWidth(){return this._domWidth*this._pixelRatio}setDOMWidth(e){return this._domWidth!==e&&(this._domWidth=e,this._colorZonesInvalid=!0,!0)}getDOMHeight(){return this._domHeight}getCanvasHeight(){return this._domHeight*this._pixelRatio}setDOMHeight(e){return this._domHeight!==e&&(this._domHeight=e,this._colorZonesInvalid=!0,!0)}getOuterHeight(){return this._outerHeight}setOuterHeight(e){return this._outerHeight!==e&&(this._outerHeight=e,this._colorZonesInvalid=!0,!0)}resolveColorZones(){let e=this._colorZonesInvalid,t=Math.floor(this._lineHeight),s=Math.floor(this.getCanvasHeight()),x=s/Math.floor(this._outerHeight),E=Math.floor(4*this._pixelRatio/2),a=[];for(let r=0,i=this._zones.length;r<i;r++){let i=this._zones[r];if(!e){let e=i.getColorZones();if(e){a.push(e);continue}}let n=this._getVerticalOffsetForLine(i.startLineNumber),_=0===i.heightInLines?this._getVerticalOffsetForLine(i.endLineNumber)+t:n+i.heightInLines*t,T=Math.floor(x*n),S=Math.floor(x*_),R=Math.floor((T+S)/2),O=S-R;O<E&&(O=E),R-O<0&&(R=O),R+O>s&&(R=s-O);let A=i.color,o=this._color2Id[A];o||(o=++this._lastAssignedId,this._color2Id[A]=o,this._id2Color[o]=A);let N=new pM(R-O,R+O,o);i.setColorZone(N),a.push(N)}return this._colorZonesInvalid=!1,a.sort(pM.compare),a}}class pU extends PP{constructor(e,t){super(),this._context=e;let s=this._context.configuration.options;this._domNode=R$(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new pd(e=>this._context.viewLayout.getVerticalOffsetForLineNumber(e)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(s.get(67)),this._zoneManager.setPixelRatio(s.get(144)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return e.hasChanged(67)&&(this._zoneManager.setLineHeight(t.get(67)),this._render()),e.hasChanged(144)&&(this._zoneManager.setPixelRatio(t.get(144)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(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)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(0===this._zoneManager.getOuterHeight())return!1;let e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),s=this._zoneManager.resolveColorZones(),x=this._zoneManager.getId2Color(),E=this._domNode.domNode.getContext("2d");return E.clearRect(0,0,e,t),s.length>0&&this._renderOneLane(E,s,x,e),!0}_renderOneLane(e,t,s,x){let E=0,a=0,r=0;for(let i of t){let t=i.colorId,n=i.from,_=i.to;t!==E?(e.fillRect(0,a,x,r-a),E=t,e.fillStyle=s[E],a=n,r=_):r>=n?r=Math.max(r,_):(e.fillRect(0,a,x,r-a),a=n,r=_)}e.fillRect(0,a,x,r-a)}}x(14982);class pp extends Pd{constructor(e){super(e),this.domNode=R$(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];let t=this._context.configuration.options;this._rulers=t.get(103),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._rulers=t.get(103),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){let e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e<t){let{tabSize:s}=this._context.viewModel.model.getOptions(),x=t-e;for(;x>0;){let e=R$(document.createElement("div"));e.setClassName("view-ruler"),e.setWidth(s),this.domNode.appendChild(e),this._renderedRulers.push(e),x--}return}let s=e-t;for(;s>0;){let e=this._renderedRulers.pop();this.domNode.removeChild(e),s--}}render(e){this._ensureRulersCount();for(let t=0,s=this._rulers.length;t<s;t++){let s=this._renderedRulers[t],x=this._rulers[t];s.setBoxShadow(x.color?`1px 0 0 0 ${x.color} inset`:""),s.setHeight(Math.min(e.scrollHeight,1e6)),s.setLeft(x.column*this._typicalHalfwidthCharacterWidth)}}}x(76332);class pY extends Pd{constructor(e){super(e),this._scrollTop=0,this._width=0,this._updateWidth(),this._shouldShow=!1;let t=this._context.configuration.options.get(104);this._useShadows=t.useShadows,this._domNode=R$(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true")}dispose(){super.dispose()}_updateShouldShow(){let e=this._useShadows&&this._scrollTop>0;return this._shouldShow!==e&&(this._shouldShow=e,!0)}getDomNode(){return this._domNode}_updateWidth(){let e=this._context.configuration.options.get(146);0===e.minimap.renderMinimap||e.minimap.minimapWidth>0&&0===e.minimap.minimapLeft?this._width=e.width:this._width=e.width-e.verticalScrollbarWidth}onConfigurationChanged(e){let t=this._context.configuration.options.get(104);return this._useShadows=t.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}x(86690);class pG{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class pB{constructor(e,t){this.lineNumber=e,this.ranges=t}}function pm(e){return new pG(e)}function pf(e){return new pB(e.lineNumber,e.ranges.map(pm))}class pg extends dO{static{this.SELECTION_CLASS_NAME="selected-text"}static{this.SELECTION_TOP_LEFT="top-left-radius"}static{this.SELECTION_BOTTOM_LEFT="bottom-left-radius"}static{this.SELECTION_TOP_RIGHT="top-right-radius"}static{this.SELECTION_BOTTOM_RIGHT="bottom-right-radius"}static{this.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background"}static{this.ROUNDED_PIECE_WIDTH=10}constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;let t=this._context.configuration.options;this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=this._context.configuration.options;return this._roundedSelection=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,s=e.length;t<s;t++)if(e[t].ranges.length>1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,s){let x=this._typicalHalfwidthCharacterWidth/4,E=null,a=null;if(s&&s.length>0&&t.length>0){let x=t[0].lineNumber;if(x===e.startLineNumber)for(let e=0;!E&&e<s.length;e++)s[e].lineNumber===x&&(E=s[e].ranges[0]);let r=t[t.length-1].lineNumber;if(r===e.endLineNumber)for(let e=s.length-1;!a&&e>=0;e--)s[e].lineNumber===r&&(a=s[e].ranges[0]);E&&!E.startStyle&&(E=null),a&&!a.startStyle&&(a=null)}for(let e=0,s=t.length;e<s;e++){let r=t[e].ranges[0],i=r.left,n=r.left+r.width,_={top:0,bottom:0},T={top:0,bottom:0};if(e>0){let s=t[e-1].ranges[0].left,E=t[e-1].ranges[0].left+t[e-1].ranges[0].width;pF(i-s)<x?_.top=2:i>s&&(_.top=1),pF(n-E)<x?T.top=2:s<n&&n<E&&(T.top=1)}else E&&(_.top=E.startStyle.top,T.top=E.endStyle.top);if(e+1<s){let s=t[e+1].ranges[0].left,E=t[e+1].ranges[0].left+t[e+1].ranges[0].width;pF(i-s)<x?_.bottom=2:s<i&&i<E&&(_.bottom=1),pF(n-E)<x?T.bottom=2:n<E&&(T.bottom=1)}else a&&(_.bottom=a.startStyle.bottom,T.bottom=a.endStyle.bottom);r.startStyle=_,r.endStyle=T}}_getVisibleRangesWithStyle(e,t,s){let x=(t.linesVisibleRangesForRange(e,!0)||[]).map(pf);return!this._visibleRangesHaveGaps(x)&&this._roundedSelection&&this._enrichVisibleRangesWithStyle(t.visibleRange,x,s),x}_createSelectionPiece(e,t,s,x,E){return'<div class="cslr '+s+'" style="top:'+e.toString()+"px;bottom:"+t.toString()+"px;left:"+x.toString()+"px;width:"+E.toString()+'px;"></div>'}_actualRenderOneSelection(e,t,s,x){if(0===x.length)return;let E=!!x[0].ranges[0].startStyle,a=x[0].lineNumber,r=x[x.length-1].lineNumber;for(let i=0,n=x.length;i<n;i++){let n=x[i],_=n.lineNumber,T=_-t,S=s&&_===a?1:0,R=s&&_!==a&&_===r?1:0,O="",A="";for(let e=0,t=n.ranges.length;e<t;e++){let t=n.ranges[e];if(E){let e=t.startStyle,s=t.endStyle;if(1===e.top||1===e.bottom){O+=this._createSelectionPiece(S,R,pg.SELECTION_CLASS_NAME,t.left-pg.ROUNDED_PIECE_WIDTH,pg.ROUNDED_PIECE_WIDTH);let s=pg.EDITOR_BACKGROUND_CLASS_NAME;1===e.top&&(s+=" "+pg.SELECTION_TOP_RIGHT),1===e.bottom&&(s+=" "+pg.SELECTION_BOTTOM_RIGHT),O+=this._createSelectionPiece(S,R,s,t.left-pg.ROUNDED_PIECE_WIDTH,pg.ROUNDED_PIECE_WIDTH)}if(1===s.top||1===s.bottom){O+=this._createSelectionPiece(S,R,pg.SELECTION_CLASS_NAME,t.left+t.width,pg.ROUNDED_PIECE_WIDTH);let e=pg.EDITOR_BACKGROUND_CLASS_NAME;1===s.top&&(e+=" "+pg.SELECTION_TOP_LEFT),1===s.bottom&&(e+=" "+pg.SELECTION_BOTTOM_LEFT),O+=this._createSelectionPiece(S,R,e,t.left+t.width,pg.ROUNDED_PIECE_WIDTH)}}let s=pg.SELECTION_CLASS_NAME;if(E){let e=t.startStyle,x=t.endStyle;0===e.top&&(s+=" "+pg.SELECTION_TOP_LEFT),0===e.bottom&&(s+=" "+pg.SELECTION_BOTTOM_LEFT),0===x.top&&(s+=" "+pg.SELECTION_TOP_RIGHT),0===x.bottom&&(s+=" "+pg.SELECTION_BOTTOM_RIGHT)}A+=this._createSelectionPiece(S,R,s,t.left,t.width)}e[T][0]+=O,e[T][1]+=A}}prepareRender(e){let t=[],s=e.visibleRange.startLineNumber,x=e.visibleRange.endLineNumber;for(let e=s;e<=x;e++)t[e-s]=["",""];let E=[];for(let x=0,a=this._selections.length;x<a;x++){let a=this._selections[x];if(a.isEmpty()){E[x]=null;continue}let r=this._getVisibleRangesWithStyle(a,e,this._previousFrameVisibleRangesWithStyle[x]);E[x]=r,this._actualRenderOneSelection(t,s,this._selections.length>1,r)}this._previousFrameVisibleRangesWithStyle=E,this._renderResult=t.map(([e,t])=>e+t)}render(e,t){if(!this._renderResult)return"";let s=t-e;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}function pF(e){return e<0?-e:e}(0,As.Ic)((e,t)=>{let s=e.getColor(AY.yb5);s&&!s.isTransparent()&&t.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${s}; }`)}),x(75580);class pH{constructor(e,t,s,x,E,a,r){this.top=e,this.left=t,this.paddingLeft=s,this.width=x,this.height=E,this.textContent=a,this.textContentClassName=r}}!function(e){e[e.Single=0]="Single",e[e.MultiPrimary=1]="MultiPrimary",e[e.MultiSecondary=2]="MultiSecondary"}(eF||(eF={}));class py{constructor(e,t){this._context=e;let s=this._context.configuration.options,x=s.get(50);this._cursorStyle=s.get(28),this._lineHeight=s.get(67),this._typicalHalfwidthCharacterWidth=x.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(s.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=R$(document.createElement("div")),this._domNode.setClassName(`cursor ${dh}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),R0(this._domNode,x),this._domNode.setDisplay("none"),this._position=new N0.L(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 eF.Single:this._pluralityClass="";break;case eF.MultiPrimary:this._pluralityClass="cursor-primary";break;case eF.MultiSecondary:this._pluralityClass="cursor-secondary"}}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=s.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),R0(this._domNode,s),!0}onCursorPositionChanged(e,t){return t?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=e,!0}_getGraphemeAwarePosition(){let{lineNumber:e,column:t}=this._position,s=this._context.viewModel.getLineContent(e),[x,E]=TM.J_(s,t-1);return[new N0.L(e,x+1),s.substring(x,E)]}_prepareRender(e){let t="",s="",[x,E]=this._getGraphemeAwarePosition();if(this._cursorStyle===Y.Line||this._cursorStyle===Y.LineThin){let a;let r=e.visibleRangeForPosition(x);if(!r||r.outsideRenderedLine)return null;let i=SK(this._domNode.domNode);this._cursorStyle===Y.Line?(a=RF(i,this._lineCursorWidth>0?this._lineCursorWidth:2))>2&&(t=E,s=this._getTokenClassName(x)):a=RF(i,1);let n=r.left,_=0;return a>=2&&n>=1&&(n-=_=1),new pH(e.getVerticalOffsetForLineNumber(x.lineNumber)-e.bigNumbersDelta,n,_,a,this._lineHeight,t,s)}let a=e.linesVisibleRangesForRange(new OQ.e(x.lineNumber,x.column,x.lineNumber,x.column+E.length),!1);if(!a||0===a.length)return null;let r=a[0];if(r.outsideRenderedLine||0===r.ranges.length)return null;let i=r.ranges[0],n=" "===E?this._typicalHalfwidthCharacterWidth:i.width<1?this._typicalHalfwidthCharacterWidth:i.width;this._cursorStyle===Y.Block&&(t=E,s=this._getTokenClassName(x));let _=e.getVerticalOffsetForLineNumber(x.lineNumber)-e.bigNumbersDelta,T=this._lineHeight;return(this._cursorStyle===Y.Underline||this._cursorStyle===Y.UnderlineThin)&&(_+=this._lineHeight-2,T=2),new pH(_,i.left,0,n,T,t,s)}_getTokenClassName(e){let t=this._context.viewModel.getViewLineData(e.lineNumber),s=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(s)}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 ${this._pluralityClass} ${dh} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}class pV extends Pd{static{this.BLINK_INTERVAL=500}constructor(e){super(e);let t=this._context.configuration.options;this._readOnly=t.get(92),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new py(this._context,eF.Single),this._secondaryCursors=[],this._renderData=[],this._domNode=R$(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 T$._F,this._cursorFlatBlinkInterval=new S6,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){let t=this._context.configuration.options;this._readOnly=t.get(92),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let t=0,s=this._secondaryCursors.length;t<s;t++)this._secondaryCursors[t].onConfigurationChanged(e);return!0}_onCursorPositionChanged(e,t,s){let x=this._secondaryCursors.length!==t.length||"explicit"===this._cursorSmoothCaretAnimation&&3!==s;if(this._primaryCursor.setPlurality(t.length?eF.MultiPrimary:eF.Single),this._primaryCursor.onCursorPositionChanged(e,x),this._updateBlinking(),this._secondaryCursors.length<t.length){let e=t.length-this._secondaryCursors.length;for(let t=0;t<e;t++){let e=new py(this._context,eF.MultiSecondary);this._domNode.domNode.insertBefore(e.getDomNode().domNode,this._primaryCursor.getDomNode().domNode.nextSibling),this._secondaryCursors.push(e)}}else if(this._secondaryCursors.length>t.length){let e=this._secondaryCursors.length-t.length;for(let t=0;t<e;t++)this._domNode.removeChild(this._secondaryCursors[0].getDomNode()),this._secondaryCursors.splice(0,1)}for(let e=0;e<t.length;e++)this._secondaryCursors[e].onCursorPositionChanged(t[e],x)}onCursorStateChanged(e){let t=[];for(let s=0,x=e.selections.length;s<x;s++)t[s]=e.selections[s].getPosition();this._onCursorPositionChanged(t[0],t.slice(1),e.reason);let s=e.selections[0].isEmpty();return this._selectionIsEmpty!==s&&(this._selectionIsEmpty=s,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){let t=t=>{for(let s=0,x=e.ranges.length;s<x;s++)if(e.ranges[s].fromLineNumber<=t.lineNumber&&t.lineNumber<=e.ranges[s].toLineNumber)return!0;return!1};if(t(this._primaryCursor.getPosition()))return!0;for(let e of this._secondaryCursors)if(t(e.getPosition()))return!0;return!1}onZonesChanged(e){return!0}_getCursorBlinking(){return this._isComposingInput||!this._editorHasFocus?0:this._readOnly?5:this._cursorBlinking}_updateBlinking(){this._startCursorBlinkAnimation.cancel(),this._cursorFlatBlinkInterval.cancel();let e=this._getCursorBlinking(),t=0===e;t?this._hide():this._show(),this._blinkingEnabled=!1,this._updateDomClassName(),t||5===e||(1===e?this._cursorFlatBlinkInterval.cancelAndSet(()=>{this._isVisible?this._hide():this._show()},pV.BLINK_INTERVAL,SK(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},pV.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case Y.Line:e+=" cursor-line-style";break;case Y.Block:e+=" cursor-block-style";break;case Y.Underline:e+=" cursor-underline-style";break;case Y.LineThin:e+=" cursor-line-thin-style";break;case Y.BlockOutline:e+=" cursor-block-outline-style";break;case Y.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return("on"===this._cursorSmoothCaretAnimation||"explicit"===this._cursorSmoothCaretAnimation)&&(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].show();this._isVisible=!0}_hide(){this._primaryCursor.hide();for(let e=0,t=this._secondaryCursors.length;e<t;e++)this._secondaryCursors[e].hide();this._isVisible=!1}prepareRender(e){this._primaryCursor.prepareRender(e);for(let t=0,s=this._secondaryCursors.length;t<s;t++)this._secondaryCursors[t].prepareRender(e)}render(e){let t=[],s=0,x=this._primaryCursor.render(e);x&&(t[s++]=x);for(let x=0,E=this._secondaryCursors.length;x<E;x++){let E=this._secondaryCursors[x].render(e);E&&(t[s++]=E)}this._renderData=t}getLastRenderData(){return this._renderData}}(0,As.Ic)((e,t)=>{for(let s of[{class:".cursor",foreground:uJ.n0,background:uJ.fY},{class:".cursor-primary",foreground:uJ.jD,background:uJ.s2},{class:".cursor-secondary",foreground:uJ.x_,background:uJ.P0}]){let x=e.getColor(s.foreground);if(x){let E=e.getColor(s.background);E||(E=x.opposite()),t.addRule(`.monaco-editor .cursors-layer ${s.class} { background-color: ${x}; border-color: ${x}; color: ${E}; }`),(0,hg.c3)(e.type)&&t.addRule(`.monaco-editor .cursors-layer.has-selection ${s.class} { border-left: 1px solid ${E}; border-right: 1px solid ${E}; }`)}}});let pX=()=>{throw Error("Invalid change accessor")};class pb extends Pd{constructor(e){super(e);let t=this._context.configuration.options,s=t.get(146);this._lineHeight=t.get(67),this._contentWidth=s.contentWidth,this._contentLeft=s.contentLeft,this.domNode=R$(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=R$(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(){let e=this._context.viewLayout.getWhitespaces(),t=new Map;for(let s of e)t.set(s.id,s);let s=!1;return this._context.viewModel.changeWhitespace(e=>{let x=Object.keys(this._zones);for(let E=0,a=x.length;E<a;E++){let a=x[E],r=this._zones[a],i=this._computeWhitespaceProps(r.delegate);r.isInHiddenArea=i.isInHiddenArea;let n=t.get(a);n&&(n.afterLineNumber!==i.afterViewLineNumber||n.height!==i.heightInPx)&&(e.changeOneWhitespace(a,i.afterViewLineNumber,i.heightInPx),this._safeCallOnComputedHeight(r.delegate,i.heightInPx),s=!0)}}),s}onConfigurationChanged(e){let t=this._context.configuration.options,s=t.get(146);return this._lineHeight=t.get(67),this._contentWidth=s.contentWidth,this._contentLeft=s.contentLeft,e.hasChanged(67)&&this._recomputeWhitespacesProps(),!0}onLineMappingChanged(e){return this._recomputeWhitespacesProps()}onLinesDeleted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}onLinesInserted(e){return!0}_getZoneOrdinal(e){return e.ordinal??e.afterColumn??1e4}_computeWhitespaceProps(e){let t,s;if(0===e.afterLineNumber)return{isInHiddenArea:!1,afterViewLineNumber:0,heightInPx:this._heightInPixels(e),minWidthInPx:this._minWidthInPixels(e)};if(void 0!==e.afterColumn)t=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:e.afterColumn});else{let s=this._context.viewModel.model.validatePosition({lineNumber:e.afterLineNumber,column:1}).lineNumber;t=new N0.L(s,this._context.viewModel.model.getLineMaxColumn(s))}s=t.column===this._context.viewModel.model.getLineMaxColumn(t.lineNumber)?this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber+1,column:1}):this._context.viewModel.model.validatePosition({lineNumber:t.lineNumber,column:t.column+1});let x=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t,e.afterColumnAffinity,!0),E=e.showInHiddenAreas||this._context.viewModel.coordinatesConverter.modelPositionIsVisible(s);return{isInHiddenArea:!E,afterViewLineNumber:x.lineNumber,heightInPx:E?this._heightInPixels(e):0,minWidthInPx:this._minWidthInPixels(e)}}changeViewZones(e){let t=!1;return this._context.viewModel.changeWhitespace(s=>{let x={addZone:e=>(t=!0,this._addZone(s,e)),removeZone:e=>{e&&(t=this._removeZone(s,e)||t)},layoutZone:e=>{e&&(t=this._layoutZone(s,e)||t)}};(function(e,t){try{e(t)}catch(e){(0,TV.dL)(e)}})(e,x),x.addZone=pX,x.removeZone=pX,x.layoutZone=pX}),t}_addZone(e,t){let s=this._computeWhitespaceProps(t),x={whitespaceId:e.insertWhitespace(s.afterViewLineNumber,this._getZoneOrdinal(t),s.heightInPx,s.minWidthInPx),delegate:t,isInHiddenArea:s.isInHiddenArea,isVisible:!1,domNode:R$(t.domNode),marginDomNode:t.marginDomNode?R$(t.marginDomNode):null};return this._safeCallOnComputedHeight(x.delegate,s.heightInPx),x.domNode.setPosition("absolute"),x.domNode.domNode.style.width="100%",x.domNode.setDisplay("none"),x.domNode.setAttribute("monaco-view-zone",x.whitespaceId),this.domNode.appendChild(x.domNode),x.marginDomNode&&(x.marginDomNode.setPosition("absolute"),x.marginDomNode.domNode.style.width="100%",x.marginDomNode.setDisplay("none"),x.marginDomNode.setAttribute("monaco-view-zone",x.whitespaceId),this.marginDomNode.appendChild(x.marginDomNode)),this._zones[x.whitespaceId]=x,this.setShouldRender(),x.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){let s=this._zones[t];return delete this._zones[t],e.removeWhitespace(s.whitespaceId),s.domNode.removeAttribute("monaco-visible-view-zone"),s.domNode.removeAttribute("monaco-view-zone"),s.domNode.domNode.remove(),s.marginDomNode&&(s.marginDomNode.removeAttribute("monaco-visible-view-zone"),s.marginDomNode.removeAttribute("monaco-view-zone"),s.marginDomNode.domNode.remove()),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){let s=this._zones[t],x=this._computeWhitespaceProps(s.delegate);return s.isInHiddenArea=x.isInHiddenArea,e.changeOneWhitespace(s.whitespaceId,x.afterViewLineNumber,x.heightInPx),this._safeCallOnComputedHeight(s.delegate,x.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){return!!this._zones.hasOwnProperty(e)&&!!this._zones[e].delegate.suppressMouseDown}_heightInPixels(e){return"number"==typeof e.heightInPx?e.heightInPx:"number"==typeof e.heightInLines?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return"number"==typeof e.minWidthInPx?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if("function"==typeof e.onComputedHeight)try{e.onComputedHeight(t)}catch(e){(0,TV.dL)(e)}}_safeCallOnDomNodeTop(e,t){if("function"==typeof e.onDomNodeTop)try{e.onDomNodeTop(t)}catch(e){(0,TV.dL)(e)}}prepareRender(e){}render(e){let t=e.viewportData.whitespaceViewportData,s={},x=!1;for(let e of t)this._zones[e.id].isInHiddenArea||(s[e.id]=e,x=!0);let E=Object.keys(this._zones);for(let t=0,x=E.length;t<x;t++){let x=E[t],a=this._zones[x],r=0,i=0,n="none";s.hasOwnProperty(x)?(r=s[x].verticalOffset-e.bigNumbersDelta,i=s[x].height,n="block",a.isVisible||(a.domNode.setAttribute("monaco-visible-view-zone","true"),a.isVisible=!0),this._safeCallOnDomNodeTop(a.delegate,e.getScrolledTopFromAbsoluteTop(s[x].verticalOffset))):(a.isVisible&&(a.domNode.removeAttribute("monaco-visible-view-zone"),a.isVisible=!1),this._safeCallOnDomNodeTop(a.delegate,e.getScrolledTopFromAbsoluteTop(-1e6))),a.domNode.setTop(r),a.domNode.setHeight(i),a.domNode.setDisplay(n),a.marginDomNode&&(a.marginDomNode.setTop(r),a.marginDomNode.setHeight(i),a.marginDomNode.setDisplay(n))}x&&(this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth)),this.marginDomNode.setWidth(this._contentLeft))}}x(25861);class pv extends dO{constructor(e){super(),this._context=e,this._options=new pk(this._context.configuration),this._selection=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){let t=new pk(this._context.configuration);return this._options.equals(t)?e.hasChanged(146):(this._options=t,!0)}onCursorStateChanged(e){return this._selection=e.selections,"selection"===this._options.renderWhitespace}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("none"===this._options.renderWhitespace){this._renderResult=null;return}let t=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber-t+1,x=Array(s);for(let e=0;e<s;e++)x[e]=!0;let E=this._context.viewModel.getMinimapLinesRenderingData(e.viewportData.startLineNumber,e.viewportData.endLineNumber,x);this._renderResult=[];for(let t=e.viewportData.startLineNumber;t<=e.viewportData.endLineNumber;t++){let s=t-e.viewportData.startLineNumber,x=E.data[s],a=null;if("selection"===this._options.renderWhitespace)for(let e of this._selection){if(e.endLineNumber<t||e.startLineNumber>t)continue;let s=e.startLineNumber===t?e.startColumn:x.minColumn,E=e.endLineNumber===t?e.endColumn:x.maxColumn;s<E&&(a||(a=[]),a.push(new MY(s-1,E-1)))}this._renderResult[s]=this._applyRenderWhitespace(e,t,a,x)}}_applyRenderWhitespace(e,t,s,x){let E;if("selection"===this._options.renderWhitespace&&!s||"trailing"===this._options.renderWhitespace&&x.continuesWithWrappedLine)return"";let a=this._context.theme.getColor(uJ.dI),r=this._options.renderWithSVG,i=x.content,n=-1===this._options.stopRenderingLineAfter?i.length:Math.min(this._options.stopRenderingLineAfter,i.length),_=x.continuesWithWrappedLine,T=x.minColumn-1,S="boundary"===this._options.renderWhitespace,R="trailing"===this._options.renderWhitespace,O=this._options.lineHeight,A=this._options.middotWidth,o=this._options.wsmiddotWidth,N=this._options.spaceWidth,I=Math.abs(o-N)<Math.abs(A-N)?11825:183,h=this._options.canUseHalfwidthRightwardsArrow,L="",C=!1,l=TM.LC(i);-1===l?(C=!0,l=n,E=n):E=TM.ow(i);let u=0,D=s&&s[u],M=0;for(let x=T;x<n;x++){let a=i.charCodeAt(x);if(D&&x>=D.endOffset&&(u++,D=s&&s[u]),9!==a&&32!==a||R&&!C&&x<=E)continue;if(S&&x>=l&&x<=E&&32===a){let e=x-1>=0?i.charCodeAt(x-1):0,t=x+1<n?i.charCodeAt(x+1):0;if(32!==e&&32!==t)continue}if(S&&_&&x===n-1){let e=x-1>=0?i.charCodeAt(x-1):0;if(32===a&&32!==e&&9!==e)continue}if(s&&(!D||D.startOffset>x||D.endOffset<=x))continue;let T=e.visibleRangeForPosition(new N0.L(t,x+1));T&&(r?(M=Math.max(M,T.left),9===a?L+=this._renderArrow(O,N,T.left):L+=`<circle cx="${(T.left+N/2).toFixed(2)}" cy="${(O/2).toFixed(2)}" r="${(N/7).toFixed(2)}" />`):9===a?L+=`<div class="mwh" style="left:${T.left}px;height:${O}px;">${h?String.fromCharCode(65515):String.fromCharCode(8594)}</div>`:L+=`<div class="mwh" style="left:${T.left}px;height:${O}px;">${String.fromCharCode(I)}</div>`)}return r?(M=Math.round(M+N),`<svg style="bottom:0;position:absolute;width:${M}px;height:${O}px" viewBox="0 0 ${M} ${O}" xmlns="http://www.w3.org/2000/svg" fill="${a}">`+L+"</svg>"):L}_renderArrow(e,t,s){let x=e/2,E={x:0,y:t/7/2},a={x:.8*t,y:E.y},r={x:a.x-.2*a.x,y:a.y+.2*a.x},i={x:r.x+.1*a.x,y:r.y+.1*a.x},n={x:i.x+.35*a.x,y:i.y-.35*a.x},_={x:n.x,y:-n.y},T={x:i.x,y:-i.y},S={x:r.x,y:-r.y},R={x:a.x,y:-a.y},O={x:E.x,y:-E.y},A=[E,a,r,i,n,_,T,S,R,O].map(e=>`${(s+e.x).toFixed(2)} ${(x+e.y).toFixed(2)}`).join(" L ");return`<path d="M ${A}" />`}render(e,t){if(!this._renderResult)return"";let s=t-e;return s<0||s>=this._renderResult.length?"":this._renderResult[s]}}class pk{constructor(e){let t=e.options,s=t.get(50),x=t.get(38);"off"===x?(this.renderWhitespace="none",this.renderWithSVG=!1):"svg"===x?(this.renderWhitespace=t.get(100),this.renderWithSVG=!0):(this.renderWhitespace=t.get(100),this.renderWithSVG=!1),this.spaceWidth=s.spaceWidth,this.middotWidth=s.middotWidth,this.wsmiddotWidth=s.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=s.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(67),this.stopRenderingLineAfter=t.get(118)}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 pw{constructor(e,t,s,x){this.selections=e,this.startLineNumber=0|t.startLineNumber,this.endLineNumber=0|t.endLineNumber,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=0|t.bigNumbersDelta,this.lineHeight=0|t.lineHeight,this.whitespaceViewportData=s,this._model=x,this.visibleRange=new OQ.e(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 pW{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 pK{constructor(e,t,s){this.configuration=e,this.theme=new pW(t),this.viewModel=s,this.viewLayout=s.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}let pQ=class extends PP{constructor(e,t,s,x,E,a,r){super(),this._instantiationService=r,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new P4.Y(1,1,1,1)],this._renderAnimationFrame=null;let i=new UP(t,x,E,e);this._context=new pK(t,s,x),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(dl,this._context,i,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=R$(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=R$(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=R$(document.createElement("div")),PU.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new UK(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new U9(this._context,this._linesContent),this._viewZones=new pb(this._context),this._viewParts.push(this._viewZones);let n=new pD(this._context);this._viewParts.push(n);let _=new pY(this._context);this._viewParts.push(_);let T=new UB(this._context);this._viewParts.push(T),T.addDynamicOverlay(new Uk(this._context)),T.addDynamicOverlay(new pg(this._context)),T.addDynamicOverlay(new U3(this._context)),T.addDynamicOverlay(new UW(this._context)),T.addDynamicOverlay(new pv(this._context));let S=new Um(this._context);this._viewParts.push(S),S.addDynamicOverlay(new Uw(this._context)),S.addDynamicOverlay(new pt(this._context)),S.addDynamicOverlay(new pe(this._context)),S.addDynamicOverlay(new dA(this._context)),this._glyphMarginWidgets=new Uq(this._context),this._viewParts.push(this._glyphMarginWidgets);let R=new dN(this._context);R.getDomNode().appendChild(this._viewZones.marginDomNode),R.getDomNode().appendChild(S.getDomNode()),R.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(R),this._contentWidgets=new UF(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new pV(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new pl(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);let O=new pp(this._context);this._viewParts.push(O);let A=new Ug(this._context);this._viewParts.push(A);let o=new ph(this._context);if(this._viewParts.push(o),n){let e=this._scrollbar.getOverviewRulerLayoutInfo();e.parent.insertBefore(n.getDomNode(),e.insertBefore)}this._linesContent.appendChild(T.getDomNode()),this._linesContent.appendChild(O.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(R.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(_.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(o.getDomNode()),this._overflowGuardContainer.appendChild(A.domNode),this.domNode.appendChild(this._overflowGuardContainer),a?(a.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),a.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new dR(this._context,i,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){let e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes,s=[],x=0;for(let E of((s=(s=s.concat(e.getAllMarginDecorations().map(e=>{let t=e.options.glyphMargin?.position??Ml.U.Center;return x=Math.max(x,e.range.endLineNumber),{range:e.range,lane:t,persist:e.options.glyphMargin?.persistLane}}))).concat(this._glyphMarginWidgets.getWidgets().map(t=>{let s=e.validateRange(t.preference.range);return x=Math.max(x,s.endLineNumber),{range:s,lane:t.preference.lane}}))).sort((e,t)=>OQ.e.compareRangesUsingStarts(e.range,t.range)),t.reset(x),s))t.push(E.lane,E.range,E.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>new Pz(this._viewCursors.getLastRenderData()||[],this._textAreaHandler.getLastRenderData()),renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new N0.L(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){let e=this._context.configuration.options.get(146);this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this._overflowGuardContainer.setWidth(e.width),this._overflowGuardContainer.setHeight(e.height),this._linesContent.setWidth(16777216),this._linesContent.setHeight(16777216)}_getEditorClassName(){let e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(143)+" "+(0,As.m6)(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){for(let e of(null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose(),this._viewParts))e.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new TV.he;if(null===this._renderAnimationFrame){let e=this._createCoordinatedRendering();this._renderAnimationFrame=pZ.INSTANCE.scheduleCoordinatedRendering({window:SK(this.domNode?.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new TV.he;try{return e.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new TV.he;return e.renderText()},prepareRender:(t,s)=>{if(this._store.isDisposed)throw new TV.he;return e.prepareRender(t,s)},render:(t,s)=>{if(this._store.isDisposed)throw new TV.he;return e.render(t,s)}})}}_flushAccumulatedAndRenderNow(){let e=this._createCoordinatedRendering();pJ(()=>e.prepareRenderText());let t=pJ(()=>e.renderText());if(t){let[s,x]=t;pJ(()=>e.prepareRender(s,x)),pJ(()=>e.render(s,x))}}_getViewPartsToRender(){let e=[],t=0;for(let s of this._viewParts)s.shouldRender()&&(e[t++]=s);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;let e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}eP.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&0===e.length)return null;let t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);let s=new pw(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(s),this._viewLines.shouldRender()&&(this._viewLines.renderText(s),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),[e,new PY(this._context.viewLayout,s,this._viewLines)]},prepareRender:(e,t)=>{for(let s of e)s.prepareRender(t)},render:(e,t)=>{for(let s of e)s.render(t),s.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){let s=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),x=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(s);this._flushAccumulatedAndRenderNow();let E=this._viewLines.visibleRangeForPosition(new N0.L(x.lineNumber,x.column));return E?E.left:-1}getTargetAtClientPoint(e,t){let s=this._pointerHandler.getTargetAtClientPoint(e,t);return s?Uf.convertViewToModelMouseTarget(s,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new pU(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t)for(let e of(this._viewLines.forceShouldRender(),this._viewParts))e.forceShouldRender();e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._textAreaHandler.writeScreenReaderContent(e)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){this._contentWidgets.setWidgetPosition(e.widget,e.position?.position??null,e.position?.secondaryPosition??null,e.position?.preference??null,e.position?.positionAffinity??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){let 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()}};function pJ(e){try{return e()}catch(e){return(0,TV.dL)(e),null}}pQ=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([(P=Oe.TG,function(e,t){P(e,t,6)})],pQ);class pZ{static{this.INSTANCE=new pZ}constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{let t=this._coordinatedRenderings.indexOf(e);if(-1!==t&&(this._coordinatedRenderings.splice(t,1),0===this._coordinatedRenderings.length)){for(let[e,t]of this._animationFrameRunners)t.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){this._animationFrameRunners.has(e)||this._animationFrameRunners.set(e,E(e,()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()},100))}_onRenderScheduled(){let e=this._coordinatedRenderings.slice(0);for(let t of(this._coordinatedRenderings=[],e))pJ(()=>t.prepareRenderText());let t=[];for(let s=0,x=e.length;s<x;s++){let x=e[s];t[s]=pJ(()=>x.renderText())}for(let s=0,x=e.length;s<x;s++){let x=e[s],E=t[s];if(!E)continue;let[a,r]=E;pJ(()=>x.prepareRender(a,r))}for(let s=0,x=e.length;s<x;s++){let x=e[s],E=t[s];if(!E)continue;let[a,r]=E;pJ(()=>x.render(a,r))}}}var pz=x(70304);class pq{constructor(e,t,s,x,E){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=s,this.breakOffsetsVisibleColumn=x,this.wrappedTextIndentLength=E}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){let t=e>0?this.breakOffsets[e-1]:0,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=0===e?t:this.breakOffsets[e-1]+t;if(null!==this.injectionOffsets)for(let e=0;e<this.injectionOffsets.length;e++)if(s>this.injectionOffsets[e])s<this.injectionOffsets[e]+this.injectionOptions[e].content.length?s=this.injectionOffsets[e]:s-=this.injectionOptions[e].content.length;else break;return s}translateToOutputPosition(e,t=2){let s=e;if(null!==this.injectionOffsets)for(let x=0;x<this.injectionOffsets.length&&!(e<this.injectionOffsets[x])&&(1===t||e!==this.injectionOffsets[x]);x++)s+=this.injectionOptions[x].content.length;return this.offsetInInputWithInjectionsToOutputPosition(s,t)}offsetInInputWithInjectionsToOutputPosition(e,t=2){let s=0,x=this.breakOffsets.length-1,E=0,a=0;for(;s<=x;){E=s+(x-s)/2|0;let r=this.breakOffsets[E];if(a=E>0?this.breakOffsets[E-1]:0,0===t){if(e<=a)x=E-1;else if(e>r)s=E+1;else break}else if(e<a)x=E-1;else if(e>=r)s=E+1;else break}let r=e-a;return E>0&&(r+=this.wrappedTextIndentLength),new p0(E,r)}normalizeOutputPosition(e,t,s){if(null!==this.injectionOffsets){let x=this.outputPositionToOffsetInInputWithInjections(e,t),E=this.normalizeOffsetInInputWithInjectionsAroundInjections(x,s);if(E!==x)return this.offsetInInputWithInjectionsToOutputPosition(E,s)}if(0===s){if(e>0&&t===this.getMinOutputOffset(e))return new p0(e-1,this.getMaxOutputOffset(e-1))}else if(1===s&&e<this.getOutputLineCount()-1&&t===this.getMaxOutputOffset(e))return new p0(e+1,this.getMinOutputOffset(e+1));return new p0(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){let s=this.getInjectedTextAtOffset(e);if(!s)return e;if(2===t){if(e===s.offsetInInputWithInjections+s.length&&pj(this.injectionOptions[s.injectedTextIndex].cursorStops))return s.offsetInInputWithInjections+s.length;{let e=s.offsetInInputWithInjections;if(p$(this.injectionOptions[s.injectedTextIndex].cursorStops))return e;let t=s.injectedTextIndex-1;for(;t>=0&&this.injectionOffsets[t]===this.injectionOffsets[s.injectedTextIndex]&&!pj(this.injectionOptions[t].cursorStops)&&(e-=this.injectionOptions[t].content.length,!p$(this.injectionOptions[t].cursorStops));)t--;return e}}if(1===t||4===t){let e=s.offsetInInputWithInjections+s.length,t=s.injectedTextIndex;for(;t+1<this.injectionOffsets.length&&this.injectionOffsets[t+1]===this.injectionOffsets[t];)e+=this.injectionOptions[t+1].content.length,t++;return e}if(0===t||3===t){let e=s.offsetInInputWithInjections,t=s.injectedTextIndex;for(;t-1>=0&&this.injectionOffsets[t-1]===this.injectionOffsets[t];)e-=this.injectionOptions[t-1].content.length,t--;return e}(0,pz.vE)(t)}getInjectedText(e,t){let s=this.outputPositionToOffsetInInputWithInjections(e,t),x=this.getInjectedTextAtOffset(s);return x?{options:this.injectionOptions[x.injectedTextIndex]}:null}getInjectedTextAtOffset(e){let t=this.injectionOffsets,s=this.injectionOptions;if(null!==t){let x=0;for(let E=0;E<t.length;E++){let a=s[E].content.length,r=t[E]+x,i=t[E]+x+a;if(r>e)break;if(e<=i)return{injectedTextIndex:E,offsetInInputWithInjections:r,length:a};x+=a}}}}function pj(e){return null==e||e===Ml.RM.Right||e===Ml.RM.Both}function p$(e){return null==e||e===Ml.RM.Left||e===Ml.RM.Both}class p0{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new N0.L(e+this.outputLineIndex,this.outputOffset+1)}}var p2=x(11196);let p1=Ok("domLineBreaksComputer",{createHTML:e=>e});class p3{static create(e){return new p3(new WeakRef(e))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,s,x,E){let a=[],r=[];return{addRequest:(e,t,s)=>{a.push(e),r.push(t)},finalize:()=>(function(e,t,s,x,E,a,r,i){function n(e){let s=i[e];if(!s)return null;{let x=p2.gk.applyInjectedText(t[e],s),E=s.map(e=>e.options);return new pq(s.map(e=>e.column-1),E,[x.length],[],0)}}if(-1===E){let e=[];for(let s=0,x=t.length;s<x;s++)e[s]=n(s);return e}let _=Math.round(E*s.typicalHalfwidthCharacterWidth),T=Math.round(x*(3===a?2:2===a?1:0)),S=Math.ceil(s.spaceWidth*T),R=document.createElement("div");R0(R,s);let O=new MD.HT(1e4),A=[],o=[],N=[],I=[],h=[];for(let e=0;e<t.length;e++){let E=p2.gk.applyInjectedText(t[e],i[e]),r=0,n=0,T=_;if(0!==a){if(-1===(r=TM.LC(E)))r=0;else{for(let e=0;e<r;e++){let t=9===E.charCodeAt(e)?x-n%x:1;n+=t}let e=Math.ceil(s.spaceWidth*n);e+s.typicalFullwidthCharacterWidth>_?(r=0,n=0):T=_-e}}let R=E.substr(r),L=function(e,t,s,x,E,a){if(0!==a){let e=String(a);E.appendString('<div style="text-indent: -'),E.appendString(e),E.appendString("px; padding-left: "),E.appendString(e),E.appendString("px; box-sizing: border-box; width:")}else E.appendString('<div style="width:');E.appendString(String(x)),E.appendString('px;">');let r=e.length,i=t,n=0,_=[],T=[],S=0<r?e.charCodeAt(0):0;E.appendString("<span>");for(let t=0;t<r;t++){0!==t&&t%16384==0&&E.appendString("</span><span>"),_[t]=n,T[t]=i;let x=S;S=t+1<r?e.charCodeAt(t+1):0;let a=1,R=1;switch(x){case 9:R=a=s-i%s;for(let e=1;e<=a;e++)e<a?E.appendCharCode(160):E.appendASCIICharCode(32);break;case 32:32===S?E.appendCharCode(160):E.appendASCIICharCode(32);break;case 60:E.appendString("<");break;case 62:E.appendString(">");break;case 38:E.appendString("&");break;case 0:E.appendString("�");break;case 65279:case 8232:case 8233:case 133:E.appendCharCode(65533);break;default:TM.K7(x)&&R++,x<32?E.appendCharCode(9216+x):E.appendCharCode(x)}n+=a,i+=R}return E.appendString("</span>"),_[e.length]=n,T[e.length]=i,E.appendString("</div>"),[_,T]}(R,n,x,T,O,S);A[e]=r,o[e]=n,N[e]=R,I[e]=L[0],h[e]=L[1]}let L=O.build(),C=p1?.createHTML(L)??L;R.innerHTML=C,R.style.position="absolute",R.style.top="10000","keepAll"===r?(R.style.wordBreak="keep-all",R.style.overflowWrap="anywhere"):(R.style.wordBreak="inherit",R.style.overflowWrap="break-word"),e.document.body.appendChild(R);let l=document.createRange(),u=Array.prototype.slice.call(R.children,0),D=[];for(let e=0;e<t.length;e++){let t,s;let x=function(e,t,s,x){if(s.length<=1)return null;let E=Array.prototype.slice.call(t.children,0),a=[];try{(function e(t,s,x,E,a,r,i,n){if(E===r||(a=a||p7(t,s,x[E],x[E+1]),i=i||p7(t,s,x[r],x[r+1]),.1>=Math.abs(a[0].top-i[0].top)))return;if(E+1===r){n.push(r);return}let _=E+(r-E)/2|0,T=p7(t,s,x[_],x[_+1]);e(t,s,x,E,a,_,T,n),e(t,s,x,_,T,r,i,n)})(e,E,x,0,null,s.length-1,null,a)}catch(e){return console.log(e),null}return 0===a.length?null:(a.push(s.length),a)}(l,u[e],N[e],I[e]);if(null===x){D[e]=n(e);continue}let E=A[e],a=o[e]+T,r=h[e],_=[];for(let e=0,t=x.length;e<t;e++)_[e]=r[x[e]];if(0!==E)for(let e=0,t=x.length;e<t;e++)x[e]+=E;let S=i[e];S?(t=S.map(e=>e.options),s=S.map(e=>e.column-1)):(t=null,s=null),D[e]=new pq(s,t,x,_,a)}return R.remove(),D})((0,OR.cW)(this.targetWindow.deref()),a,e,t,s,x,E,r)}}}function p7(e,t,s,x){return e.setStart(t[s/16384|0].firstChild,s%16384),e.setEnd(t[x/16384|0].firstChild,x%16384),e.getClientRects()}class p5 extends TD.JT{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new TD.b2),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,s){for(let x of(this._editor=e,this._instantiationService=s,t)){if(this._pending.has(x.id)){(0,TV.dL)(Error(`Cannot have two contributions with the same id ${x.id}`));continue}this._pending.set(x.id,x)}this._instantiateSome(0),this._register(S4(SK(this._editor.getDomNode()),()=>{this._instantiateSome(1)})),this._register(S4(SK(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register(S4(SK(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){let e={};for(let[t,s]of this._instances)"function"==typeof s.saveViewState&&(e[t]=s.saveViewState());return e}restoreViewState(e){for(let[t,s]of this._instances)"function"==typeof s.restoreViewState&&s.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){return S4(SK(this._editor?.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(e){if(!this._finishedInstantiation[e])for(let t of(this._finishedInstantiation[e]=!0,this._findPendingContributionsByInstantiation(e)))this._instantiateById(t.id)}_findPendingContributionsByInstantiation(e){let t=[];for(let[,s]of this._pending)s.instantiation===e&&t.push(s);return t}_instantiateById(e){let t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw Error("Cannot instantiate contributions before being initialized!");try{let e=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,e),"function"==typeof e.restoreViewState&&0!==t.instantiation&&console.warn(`Editor contribution '${t.id}' should be eager instantiated because it uses saveViewState / restoreViewState.`)}catch(e){(0,TV.dL)(e)}}}}class p4{constructor(e,t,s,x,E,a,r){this.id=e,this.label=t,this.alias=s,this.metadata=x,this._precondition=E,this._run=a,this._contextKeyService=r}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}var p6=x(3713),p8=x(49002);class p9{static create(e){return new p9(e.get(135),e.get(134))}constructor(e,t){this.classifier=new Ye(e,t)}createLineBreaksComputer(e,t,s,x,E){let a=[],r=[],i=[];return{addRequest:(e,t,s)=>{a.push(e),r.push(t),i.push(s)},finalize:()=>{let n=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,_=[];for(let e=0,T=a.length;e<T;e++){let T=r[e],S=i[e];!S||S.injectionOptions||T?_[e]=function(e,t,s,x,E,a,r,i){let n,_;let T=p2.gk.applyInjectedText(t,s);if(s&&s.length>0?(n=s.map(e=>e.options),_=s.map(e=>e.column-1)):(n=null,_=null),-1===E)return n?new pq(_,n,[T.length],[],0):null;let S=T.length;if(S<=1)return n?new pq(_,n,[T.length],[],0):null;let R="keepAll"===i,O=Ya(T,x,E,a,r),A=E-O,o=[],N=[],I=0,h=0,L=0,C=E,l=T.charCodeAt(0),u=e.get(l),D=Yx(l,0,x,a),M=1;TM.ZG(l)&&(D+=1,l=T.charCodeAt(1),u=e.get(l),M++);for(let t=M;t<S;t++){let s,E;let r=t,i=T.charCodeAt(t);TM.ZG(i)?(t++,s=0,E=2):(s=e.get(i),E=Yx(i,D,x,a)),YE(l,u,i,s,R)&&(h=r,L=D),(D+=E)>C&&((0===h||D-L>A)&&(h=r,L=D-E),o[I]=h,N[I]=L,I++,C=L+A,h=0),l=i,u=s}return 0!==I||s&&0!==s.length?(o[I]=S,N[I]=D,new pq(_,n,o,N,O)):null}(this.classifier,a[e],T,t,s,n,x,E):_[e]=function(e,t,s,x,E,a,r,i){if(-1===E)return null;let n=s.length;if(n<=1)return null;let _="keepAll"===i,T=t.breakOffsets,S=t.breakOffsetsVisibleColumn,R=Ya(s,x,E,a,r),O=E-R,A=Yt,o=Ys,N=0,I=0,h=0,L=E,C=T.length,l=0;{let e=Math.abs(S[l]-L);for(;l+1<C;){let t=Math.abs(S[l+1]-L);if(t>=e)break;e=t,l++}}for(;l<C;){let t=l<0?0:T[l],E=l<0?0:S[l];I>t&&(t=I,E=h);let r=0,i=0,R=0,u=0;if(E<=L){let h=E,C=0===t?0:s.charCodeAt(t-1),l=0===t?0:e.get(C),D=!0;for(let E=t;E<n;E++){let t,n;let T=E,S=s.charCodeAt(E);if(TM.ZG(S)?(E++,t=0,n=2):(t=e.get(S),n=Yx(S,h,x,a)),T>I&&YE(C,l,S,t,_)&&(r=T,i=h),(h+=n)>L){T>I?(R=T,u=h-n):(R=E+1,u=h),h-i>O&&(r=0),D=!1;break}C=S,l=t}if(D){N>0&&(A[N]=T[T.length-1],o[N]=S[T.length-1],N++);break}}if(0===r){let n=E,T=s.charCodeAt(t),S=e.get(T),A=!1;for(let x=t-1;x>=I;x--){let t,E;let o=x+1,N=s.charCodeAt(x);if(9===N){A=!0;break}if(TM.YK(N)?(x--,t=0,E=2):(t=e.get(N),E=TM.K7(N)?a:1),n<=L){if(0===R&&(R=o,u=n),n<=L-O)break;if(YE(N,t,T,S,_)){r=o,i=n;break}}n-=E,T=N,S=t}if(0!==r){let e=O-(u-i);if(e<=x){let t=s.charCodeAt(R);e-(TM.ZG(t)?2:Yx(t,u,x,a))<0&&(r=0)}}if(A){l--;continue}}if(0===r&&(r=R,i=u),r<=I){let e=s.charCodeAt(I);TM.ZG(e)?(r=I+2,i=h+2):(r=I+1,i=h+Yx(e,h,x,a))}for(I=r,A[N]=r,h=i,o[N]=i,N++,L=i+O;l<0||l<C&&S[l]<i;)l++;let D=Math.abs(S[l]-L);for(;l+1<C;){let e=Math.abs(S[l+1]-L);if(e>=D)break;D=e,l++}}return 0===N?null:(A.length=N,o.length=N,Yt=t.breakOffsets,Ys=t.breakOffsetsVisibleColumn,t.breakOffsets=A,t.breakOffsetsVisibleColumn=o,t.wrappedTextIndentLength=R,t)}(this.classifier,S,a[e],t,s,n,x,E)}return Yt.length=0,Ys.length=0,_}}}}class Ye extends p8.N{constructor(e,t){super(0);for(let t=0;t<e.length;t++)this.set(e.charCodeAt(t),1);for(let e=0;e<t.length;e++)this.set(t.charCodeAt(e),2)}get(e){return e>=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let Yt=[],Ys=[];function Yx(e,t,s,x){return 9===e?s-t%s:TM.K7(e)||e<32?x:1}function YE(e,t,s,x,E){return 32!==s&&(2===t&&2!==x||1!==t&&1===x||!E&&3===t&&2!==x||!E&&3===x&&1!==t)}function Ya(e,t,s,x,E){let a=0;if(0!==E){let r=TM.LC(e);if(-1!==r){for(let s=0;s<r;s++){let x=9===e.charCodeAt(s)?t-a%t:1;a+=x}let i=3===E?2:2===E?1:0;for(let e=0;e<i;e++){let e=t-a%t;a+=e}a+x>s&&(a=0)}}return a}var Yr=x(42106);class Yi{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new dB(new OQ.e(1,1,1,1),0,0,new N0.L(1,1),0),new dB(new OQ.e(1,1,1,1),0,0,new N0.L(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new dp(this.modelState,this.viewState)}readSelectionFromMarkers(e){let t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?P4.Y.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):P4.Y.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,s){this._setState(e,t,s)}static _validatePositionWithCache(e,t,s,x){return t.equals(s)?x:e.normalizePosition(t,2)}static _validateViewState(e,t){let s=t.position,x=t.selectionStart.getStartPosition(),E=t.selectionStart.getEndPosition(),a=e.normalizePosition(s,2),r=this._validatePositionWithCache(e,x,s,a),i=this._validatePositionWithCache(e,E,x,r);return s.equals(a)&&x.equals(r)&&E.equals(i)?t:new dB(OQ.e.fromPositions(r,i),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+x.column-r.column,a,t.leftoverVisibleColumns+s.column-a.column)}_setState(e,t,s){if(s&&(s=Yi._validateViewState(e.viewModel,s)),t){let s=e.model.validateRange(t.selectionStart),x=t.selectionStart.equalsRange(s)?t.selectionStartLeftoverVisibleColumns:0,E=e.model.validatePosition(t.position),a=t.position.equals(E)?t.leftoverVisibleColumns:0;t=new dB(s,t.selectionStartKind,x,E,a)}else{if(!s)return;let x=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(s.selectionStart)),E=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(s.position));t=new dB(x,s.selectionStartKind,s.selectionStartLeftoverVisibleColumns,E,s.leftoverVisibleColumns)}if(s){let x=e.coordinatesConverter.validateViewRange(s.selectionStart,t.selectionStart),E=e.coordinatesConverter.validateViewPosition(s.position,t.position);s=new dB(x,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,E,t.leftoverVisibleColumns)}else{let x=e.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),E=e.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),a=new OQ.e(x.lineNumber,x.column,E.lineNumber,E.column),r=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);s=new dB(a,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,r,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=s,this._updateTrackedRange(e)}}class Yn{constructor(e){this.context=e,this.cursors=[new Yi(e)],this.lastAddedCursorIndex=0}dispose(){for(let e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(let e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(let e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(let 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(0,Yr.vm)(this.cursors,(0,cO.tT)(e=>e.viewState.position,N0.L.compare)).viewState.position}getBottomMostViewPosition(){return(0,Yr.BS)(this.cursors,(0,cO.tT)(e=>e.viewState.position,N0.L.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(dp.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){null!==e&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){let t=this.cursors.length-1,s=e.length;if(t<s){let e=s-t;for(let t=0;t<e;t++)this._addSecondaryCursor()}else if(t>s){let e=t-s;for(let t=0;t<e;t++)this._removeSecondaryCursor(this.cursors.length-2)}for(let t=0;t<s;t++)this.cursors[t+1].setState(this.context,e[t].modelState,e[t].viewState)}killSecondaryCursors(){this._setSecondaryStates([])}_addSecondaryCursor(){this.cursors.push(new Yi(this.context)),this.lastAddedCursorIndex=this.cursors.length-1}getLastAddedCursorIndex(){return 1===this.cursors.length||0===this.lastAddedCursorIndex?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(1===this.cursors.length)return;let e=this.cursors.slice(0),t=[];for(let s=0,x=e.length;s<x;s++)t.push({index:s,selection:e[s].modelState.selection});t.sort((0,cO.tT)(e=>e.selection,OQ.e.compareRangesUsingStarts));for(let s=0;s<t.length-1;s++){let x=t[s],E=t[s+1],a=x.selection,r=E.selection;if(this.context.cursorConfig.multiCursorMergeOverlapping&&(r.isEmpty()||a.isEmpty()?r.getStartPosition().isBeforeOrEqual(a.getEndPosition()):r.getStartPosition().isBefore(a.getEndPosition()))){let a=x.index<E.index?s:s+1,r=x.index<E.index?s+1:s,i=t[r].index,n=t[a].index,_=t[r].selection,T=t[a].selection;if(!_.equalsSelection(T)){let s,x;let E=_.plusRange(T),r=_.selectionStartLineNumber===_.startLineNumber&&_.selectionStartColumn===_.startColumn,S=T.selectionStartLineNumber===T.startLineNumber&&T.selectionStartColumn===T.startColumn;i===this.lastAddedCursorIndex?(s=r,this.lastAddedCursorIndex=n):s=S,x=s?new P4.Y(E.startLineNumber,E.startColumn,E.endLineNumber,E.endColumn):new P4.Y(E.endLineNumber,E.endColumn,E.startLineNumber,E.startColumn),t[a].selection=x;let R=dp.fromModelSelection(x);e[n].setState(this.context,R.modelState,R.viewState)}for(let e of t)e.index>i&&e.index--;e.splice(i,1),t.splice(r,1),this._removeSecondaryCursor(i-1),s--}}}}class Y_{constructor(e,t,s,x){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=s,this.cursorConfig=x}}class Yc{constructor(){this.type=0}}class YT{constructor(){this.type=1}}class YS{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class YR{constructor(e,t,s){this.selections=e,this.modelSelections=t,this.reason=s,this.type=3}}class YO{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 YA{constructor(){this.type=5}}class Yo{constructor(e){this.type=6,this.isFocused=e}}class YN{constructor(){this.type=7}}class YI{constructor(){this.type=8}}class Yh{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class YL{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class YC{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class Yl{constructor(e,t,s,x,E,a,r){this.source=e,this.minimalReveal=t,this.range=s,this.selections=x,this.verticalType=E,this.revealHorizontal=a,this.scrollType=r,this.type=12}}class Yu{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 YD{constructor(e){this.theme=e,this.type=14}}class YM{constructor(e){this.type=15,this.ranges=e}}class YP{constructor(){this.type=16}}class Yd{constructor(){this.type=17}}class YU extends TD.JT{constructor(){super(),this._onEvent=this._register(new T0.Q5),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,s=this._outgoingEvents.length;t<s;t++){let 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;let e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,s=this._eventHandlers.length;t<s;t++)this._eventHandlers[t]===e&&console.warn("Detected duplicate listener in ViewEventDispatcher",e);this._eventHandlers.push(e)}removeViewEventHandler(e){for(let t=0;t<this._eventHandlers.length;t++)if(this._eventHandlers[t]===e){this._eventHandlers.splice(t,1);break}}beginEmitViewEvents(){return this._collectorCnt++,1===this._collectorCnt&&(this._collector=new Yp),this._collector}endEmitViewEvents(){if(this._collectorCnt--,0===this._collectorCnt){let e=this._collector.outgoingEvents,t=this._collector.viewEvents;for(let t of(this._collector=null,e))this._addOutgoingEvent(t);t.length>0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){let e=this._viewEventQueue;for(let t of(this._viewEventQueue=null,this._eventHandlers.slice(0)))t.handleEvents(e)}}}class Yp{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class YY{constructor(e,t,s,x){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=s,this.contentHeight=x,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 YY(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class YG{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 YG(this.oldHasFocus,e.hasFocus)}}class YB{constructor(e,t,s,x,E,a,r,i){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=s,this._oldScrollTop=x,this.scrollWidth=E,this.scrollLeft=a,this.scrollHeight=r,this.scrollTop=i,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 YB(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class Ym{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class Yf{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class Yg{constructor(e,t,s,x,E,a,r){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=s,this.modelVersionId=x,this.source=E,this.reason=a,this.reachedMaxCursorCount=r}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;let s=e.length;if(s!==t.length)return!1;for(let x=0;x<s;x++)if(!e[x].equalsSelection(t[x]))return!1;return!0}isNoOp(){return Yg._selectionsAreEqual(this.oldSelections,this.selections)&&this.oldModelVersionId===this.modelVersionId}attemptToMerge(e){return e.kind!==this.kind?null:new Yg(this.oldSelections,e.selections,this.oldModelVersionId,e.modelVersionId,e.source,e.reason,this.reachedMaxCursorCount||e.reachedMaxCursorCount)}}class YF{constructor(){this.kind=5}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class YH{constructor(e){this.event=e,this.kind=7}isNoOp(){return!1}attemptToMerge(e){return null}}class Yy{constructor(e){this.event=e,this.kind=8}isNoOp(){return!1}attemptToMerge(e){return null}}class YV{constructor(e){this.event=e,this.kind=9}isNoOp(){return!1}attemptToMerge(e){return null}}class YX{constructor(e){this.event=e,this.kind=10}isNoOp(){return!1}attemptToMerge(e){return null}}class Yb{constructor(e){this.event=e,this.kind=11}isNoOp(){return!1}attemptToMerge(e){return null}}class Yv{constructor(e){this.event=e,this.kind=12}isNoOp(){return!1}attemptToMerge(e){return null}}class Yk extends TD.JT{constructor(e,t,s,x){super(),this._model=e,this._knownModelVersionId=this._model.getVersionId(),this._viewModel=t,this._coordinatesConverter=s,this.context=new Y_(this._model,this._viewModel,this._coordinatesConverter,x),this._cursors=new Yn(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=(0,TD.B9)(this._autoClosedActions),super.dispose()}updateConfiguration(e){this.context=new Y_(this._model,this._viewModel,this._coordinatesConverter,e),this._cursors.updateContext(this.context)}onLineMappingChanged(e){this._knownModelVersionId===this._model.getVersionId()&&this.setStates(e,"viewModel",0,this.getCursorStates())}setHasFocus(e){this._hasFocus=e}_validateAutoClosedActions(){if(this._autoClosedActions.length>0){let e=this._cursors.getSelections();for(let t=0;t<this._autoClosedActions.length;t++){let s=this._autoClosedActions[t];!s.isValid(e)&&(s.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,s,x){let E=!1,a=this.context.cursorConfig.multiCursorLimit;null!==x&&x.length>a&&(x=x.slice(0,a),E=!0);let r=Yw.from(this._model,this);return this._cursors.setStates(x),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,s,r,E)}setCursorColumnSelectData(e){this._columnSelectData=e}revealAll(e,t,s,x,E,a){let r=this._cursors.getViewPositions(),i=null,n=null;r.length>1?n=this._cursors.getViewSelections():i=OQ.e.fromPositions(r[0],r[0]),e.emitViewEvent(new Yl(t,s,i,n,x,E,a))}revealPrimary(e,t,s,x,E,a){let r=[this._cursors.getPrimaryCursor().viewState.selection];e.emitViewEvent(new Yl(t,s,null,r,x,E,a))}saveState(){let e=[],t=this._cursors.getSelections();for(let s=0,x=t.length;s<x;s++){let x=t[s];e.push({inSelectionMode:!x.isEmpty(),selectionStart:{lineNumber:x.selectionStartLineNumber,column:x.selectionStartColumn},position:{lineNumber:x.positionLineNumber,column:x.positionColumn}})}return e}restoreState(e,t){let s=[];for(let e=0,x=t.length;e<x;e++){let x=t[e],E=1,a=1;x.position&&x.position.lineNumber&&(E=x.position.lineNumber),x.position&&x.position.column&&(a=x.position.column);let r=E,i=a;x.selectionStart&&x.selectionStart.lineNumber&&(r=x.selectionStart.lineNumber),x.selectionStart&&x.selectionStart.column&&(i=x.selectionStart.column),s.push({selectionStartLineNumber:r,selectionStartColumn:i,positionLineNumber:E,positionColumn:a})}this.setStates(e,"restoreState",0,dp.fromModelSelections(s)),this.revealAll(e,"restoreState",!1,0,!0,1)}onModelContentChanged(e,t){if(t instanceof p2.D8){if(!this._isHandling){this._isHandling=!0;try{this.setStates(e,"modelChange",0,this.getCursorStates())}finally{this._isHandling=!1}}}else{let s=t.rawContentChangedEvent;if(this._knownModelVersionId=s.versionId,this._isHandling)return;let x=s.containsEvent(1);if(this._prevEditOperationType=0,x)this._cursors.dispose(),this._cursors=new Yn(this.context),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,"model",1,null,!1);else if(this._hasFocus&&s.resultingSelection&&s.resultingSelection.length>0){let t=dp.fromModelSelections(s.resultingSelection);this.setStates(e,"modelChange",s.isUndoing?5:s.isRedoing?6:2,t)&&this.revealAll(e,"modelChange",!1,0,!0,0)}else{let t=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,dp.fromModelSelections(t))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;let e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),s=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:s.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,s)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,s,x){this.setStates(e,t,x,dp.fromModelSelections(s))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){let s=[],x=[];for(let E=0,a=e.length;E<a;E++)s.push({range:e[E],options:{description:"auto-closed-character",inlineClassName:"auto-closed-character",stickiness:1}}),x.push({range:t[E],options:{description:"auto-closed-enclosing",stickiness:1}});let E=this._model.deltaDecorations([],s),a=this._model.deltaDecorations([],x);this._autoClosedActions.push(new YW(this._model,E,a))}_executeEditOperation(e){if(!e)return;e.shouldPushStackElementBefore&&this._model.pushStackElement();let t=YK.executeCommands(this._model,this._cursors.getSelections(),e.commands);if(t){this._interpretCommandResult(t);let s=[],x=[];for(let t=0;t<e.commands.length;t++){let E=e.commands[t];E instanceof Ua&&E.enclosingRange&&E.closeCharacterRange&&(s.push(E.closeCharacterRange),x.push(E.enclosingRange))}s.length>0&&this._pushAutoClosedAction(s,x),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){e&&0!==e.length||(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,s,x,E){let a=Yw.from(this._model,this);if(a.equals(x))return!1;let r=this._cursors.getSelections(),i=this._cursors.getViewSelections();if(e.emitViewEvent(new YR(i,r,s)),!x||x.cursorState.length!==a.cursorState.length||a.cursorState.some((e,t)=>!e.modelState.equals(x.cursorState[t].modelState))){let i=x?x.cursorState.map(e=>e.modelState.selection):null,n=x?x.modelVersionId:0;e.emitOutgoingEvent(new Yg(i,r,n,a.modelVersionId,t||"keyboard",s,E))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;let t=[];for(let s=0,x=e.length;s<x;s++){let x=e[s];if(!x.text||x.text.indexOf("\n")>=0)return null;let E=x.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!E)return null;let a=E[1],r=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!r||1!==r.length)return null;let i=r[0].open,n=x.text.length-E[2].length-1,_=x.text.lastIndexOf(i,n-1);if(-1===_)return null;t.push([_,n])}return t}executeEdits(e,t,s,x){let E=null;"snippet"===t&&(E=this._findAutoClosingPairs(s)),E&&(s[0]._isTracked=!0);let a=[],r=[],i=this._model.pushEditOperations(this.getSelections(),s,e=>{if(E)for(let t=0,s=E.length;t<s;t++){let[s,x]=E[t],i=e[t],n=i.range.startLineNumber,_=i.range.startColumn-1+s,T=i.range.startColumn-1+x;a.push(new OQ.e(n,T+1,n,T+2)),r.push(new OQ.e(n,_+1,n,T+2))}let t=x(e);return t&&(this._isHandling=!0),t});i&&(this._isHandling=!1,this.setSelections(e,t,i,0)),a.length>0&&this._pushAutoClosedAction(a,r)}_executeEdit(e,t,s,x=0){if(this.context.cursorConfig.readOnly)return;let E=Yw.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(e){(0,TV.dL)(e)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,s,x,E,!1)&&this.revealAll(t,s,!1,0,!0,0)}getAutoClosedCharacters(){return YW.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new YJ(this._model,this.getSelections())}endComposition(e,t){let s=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{"keyboard"===t&&this._executeEditOperation(UN.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,s,this.getSelections(),this.getAutoClosedCharacters()))},e,t)}type(e,t,s){this._executeEdit(()=>{if("keyboard"===s){let e=t.length,s=0;for(;s<e;){let e=TM.vH(t,s),x=t.substr(s,e);this._executeEditOperation(UN.typeWithInterceptors(!!this._compositionState,this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),this.getAutoClosedCharacters(),x)),s+=e}}else this._executeEditOperation(UN.typeWithoutInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t))},e,s)}compositionType(e,t,s,x,E,a){if(0===t.length&&0===s&&0===x){if(0!==E){let t=this.getSelections().map(e=>{let t=e.getPosition();return new P4.Y(t.lineNumber,t.column+E,t.lineNumber,t.column+E)});this.setSelections(e,a,t,0)}return}this._executeEdit(()=>{this._executeEditOperation(UN.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,s,x,E))},e,a)}paste(e,t,s,x,E){this._executeEdit(()=>{this._executeEditOperation(UN.paste(this.context.cursorConfig,this._model,this.getSelections(),t,s,x||[]))},e,E,4)}cut(e,t){this._executeEdit(()=>{this._executeEditOperation(dv.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,s){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new dm(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,s)}executeCommands(e,t,s){this._executeEdit(()=>{this._executeEditOperation(new dm(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,s)}}class Yw{static from(e,t){return new Yw(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,s=this.cursorState.length;t<s;t++)if(!this.cursorState[t].equals(e.cursorState[t]))return!1;return!0}}class YW{static getAllAutoClosedCharacters(e){let t=[];for(let s of e)t=t.concat(s.getAutoClosedCharactersRanges());return t}constructor(e,t,s){this._model=e,this._autoClosedCharactersDecorations=t,this._autoClosedEnclosingDecorations=s}dispose(){this._autoClosedCharactersDecorations=this._model.deltaDecorations(this._autoClosedCharactersDecorations,[]),this._autoClosedEnclosingDecorations=this._model.deltaDecorations(this._autoClosedEnclosingDecorations,[])}getAutoClosedCharactersRanges(){let e=[];for(let t=0;t<this._autoClosedCharactersDecorations.length;t++){let s=this._model.getDecorationRange(this._autoClosedCharactersDecorations[t]);s&&e.push(s)}return e}isValid(e){let t=[];for(let e=0;e<this._autoClosedEnclosingDecorations.length;e++){let s=this._model.getDecorationRange(this._autoClosedEnclosingDecorations[e]);if(s&&(t.push(s),s.startLineNumber!==s.endLineNumber))return!1}t.sort(OQ.e.compareRangesUsingStarts),e.sort(OQ.e.compareRangesUsingStarts);for(let s=0;s<e.length;s++)if(s>=t.length||!t[s].strictContainsRange(e[s]))return!1;return!0}}class YK{static executeCommands(e,t,s){let x={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},E=this._innerExecuteCommands(x,s);for(let e=0,t=x.trackedRanges.length;e<t;e++)x.model._setTrackedRange(x.trackedRanges[e],null,0);return E}static _innerExecuteCommands(e,t){if(this._arrayIsEmpty(t))return null;let s=this._getEditOperations(e,t);if(0===s.operations.length)return null;let x=s.operations,E=this._getLoserCursorMap(x);if(E.hasOwnProperty("0"))return console.warn("Ignoring commands"),null;let a=[];for(let e=0,t=x.length;e<t;e++)E.hasOwnProperty(x[e].identifier.major.toString())||a.push(x[e]);s.hadTrackedEditOperation&&a.length>0&&(a[0]._isTracked=!0);let r=e.model.pushEditOperations(e.selectionsBefore,a,s=>{let x=[];for(let t=0;t<e.selectionsBefore.length;t++)x[t]=[];for(let e of s)e.identifier&&x[e.identifier.major].push(e);let E=(e,t)=>e.identifier.minor-t.identifier.minor,a=[];for(let s=0;s<e.selectionsBefore.length;s++)x[s].length>0?(x[s].sort(E),a[s]=t[s].computeCursorState(e.model,{getInverseEditOperations:()=>x[s],getTrackedSelection:t=>{let s=parseInt(t,10),x=e.model._getTrackedRange(e.trackedRanges[s]);return 0===e.trackedRangesDirection[s]?new P4.Y(x.startLineNumber,x.startColumn,x.endLineNumber,x.endColumn):new P4.Y(x.endLineNumber,x.endColumn,x.startLineNumber,x.startColumn)}})):a[s]=e.selectionsBefore[s];return a});r||(r=e.selectionsBefore);let i=[];for(let e in E)E.hasOwnProperty(e)&&i.push(parseInt(e,10));for(let e of(i.sort((e,t)=>t-e),i))r.splice(e,1);return r}static _arrayIsEmpty(e){for(let t=0,s=e.length;t<s;t++)if(e[t])return!1;return!0}static _getEditOperations(e,t){let s=[],x=!1;for(let E=0,a=t.length;E<a;E++){let a=t[E];if(a){let t=this._getEditOperationsFromCommand(e,E,a);s=s.concat(t.operations),x=x||t.hadTrackedEditOperation}}return{operations:s,hadTrackedEditOperation:x}}static _getEditOperationsFromCommand(e,t,s){let x=[],E=0,a=(e,a,r=!1)=>{OQ.e.isEmpty(e)&&""===a||x.push({identifier:{major:t,minor:E++},range:e,text:a,forceMoveMarkers:r,isAutoWhitespaceEdit:s.insertsAutoWhitespace})},r=!1;try{s.getEditOperations(e.model,{addEditOperation:a,addTrackedEditOperation:(e,t,s)=>{r=!0,a(e,t,s)},trackSelection:(t,s)=>{let x;let E=P4.Y.liftSelection(t);if(E.isEmpty()){if("boolean"==typeof s)x=s?2:3;else{let t=e.model.getLineMaxColumn(E.startLineNumber);x=E.startColumn===t?2:3}}else x=1;let a=e.trackedRanges.length,r=e.model._setTrackedRange(null,E,x);return e.trackedRanges[a]=r,e.trackedRangesDirection[a]=E.getDirection(),a.toString()}})}catch(e){return(0,TV.dL)(e),{operations:[],hadTrackedEditOperation:!1}}return{operations:x,hadTrackedEditOperation:r}}static _getLoserCursorMap(e){(e=e.slice(0)).sort((e,t)=>-OQ.e.compareRangesUsingEnds(e.range,t.range));let t={};for(let s=1;s<e.length;s++){let x=e[s-1],E=e[s];if(OQ.e.getStartPosition(x.range).isBefore(OQ.e.getEndPosition(E.range))){let a;t[(a=x.identifier.major>E.identifier.major?x.identifier.major:E.identifier.major).toString()]=!0;for(let t=0;t<e.length;t++)e[t].identifier.major===a&&(e.splice(t,1),t<s&&s--,t--);s>0&&s--}}return t}}class YQ{constructor(e,t,s){this.text=e,this.startSelection=t,this.endSelection=s}}class YJ{static _capture(e,t){let s=[];for(let x of t){if(x.startLineNumber!==x.endLineNumber)return null;s.push(new YQ(e.getLineContent(x.startLineNumber),x.startColumn-1,x.endColumn-1))}return s}constructor(e,t){this._original=YJ._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;let s=YJ._capture(e,t);if(!s||this._original.length!==s.length)return null;let x=[];for(let e=0,t=this._original.length;e<t;e++)x.push(YJ._deduceOutcome(this._original[e],s[e]));return x}static _deduceOutcome(e,t){let s=Math.min(e.startSelection,t.startSelection,TM.Mh(e.text,t.text)),x=Math.min(e.text.length-e.endSelection,t.text.length-t.endSelection,TM.P1(e.text,t.text)),E=e.text.substring(s,e.text.length-x),a=t.text.substring(s,t.text.length-x);return new UI(E,e.startSelection-s,e.endSelection-s,a,t.startSelection-s,t.endSelection-s)}}class YZ{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;let t=this._inserts,s=this._changes,x=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,s,x)}}class Yz{constructor(e,t,s,x,E){this.id=e,this.afterLineNumber=t,this.ordinal=s,this.height=x,this.minWidth=E,this.prefixSum=0}}class Yq{static{this.INSTANCE_COUNT=0}constructor(e,t,s,x){this._instanceId=TM.PJ(++Yq.INSTANCE_COUNT),this._pendingChanges=new YZ,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=s,this._paddingBottom=x}static findInsertionIndex(e,t,s){let x=0,E=e.length;for(;x<E;){let a=x+E>>>1;t===e[a].afterLineNumber?s<e[a].ordinal?E=a:x=a+1:t<e[a].afterLineNumber?E=a:x=a+1}return x}setLineHeight(e){this._checkPendingChanges(),this._lineHeight=e}setPadding(e,t){this._paddingTop=e,this._paddingBottom=t}onFlushed(e){this._checkPendingChanges(),this._lineCount=e}changeWhitespace(e){let t=!1;try{let s={insertWhitespace:(e,s,x,E)=>{t=!0,e|=0,s|=0,x|=0,E|=0;let a=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new Yz(a,e,s,x,E)),a},changeOneWhitespace:(e,s,x)=>{t=!0,s|=0,x|=0,this._pendingChanges.change({id:e,newAfterLineNumber:s,newHeight:x})},removeWhitespace:e=>{t=!0,this._pendingChanges.remove({id:e})}};e(s)}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,s){if((e.length>0||s.length>0)&&(this._minWidth=-1),e.length+t.length+s.length<=1){for(let t of e)this._insertWhitespace(t);for(let e of t)this._changeOneWhitespace(e.id,e.newAfterLineNumber,e.newHeight);for(let e of s){let t=this._findWhitespaceIndex(e.id);-1!==t&&this._removeWhitespace(t)}return}let x=new Set;for(let e of s)x.add(e.id);let E=new Map;for(let e of t)E.set(e.id,e);let a=e=>{let t=[];for(let s of e)if(!x.has(s.id)){if(E.has(s.id)){let e=E.get(s.id);s.afterLineNumber=e.newAfterLineNumber,s.height=e.newHeight}t.push(s)}return t},r=a(this._arr).concat(a(e));r.sort((e,t)=>e.afterLineNumber===t.afterLineNumber?e.ordinal-t.ordinal:e.afterLineNumber-t.afterLineNumber),this._arr=r,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){let t=Yq.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){let t=this._arr;for(let s=0,x=t.length;s<x;s++)if(t[s].id===e)return s;return -1}_changeOneWhitespace(e,t,s){let x=this._findWhitespaceIndex(e);if(-1!==x&&(this._arr[x].height!==s&&(this._arr[x].height=s,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,x-1)),this._arr[x].afterLineNumber!==t)){let e=this._arr[x];this._removeWhitespace(x),e.afterLineNumber=t,this._insertWhitespace(e)}}_removeWhitespace(e){this._arr.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1)}onLinesDeleted(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount-=t-e+1;for(let s=0,x=this._arr.length;s<x;s++){let x=this._arr[s].afterLineNumber;e<=x&&x<=t?this._arr[s].afterLineNumber=e-1:x>t&&(this._arr[s].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e|=0,t|=0,this._lineCount+=t-e+1;for(let s=0,x=this._arr.length;s<x;s++){let x=this._arr[s].afterLineNumber;e<=x&&(this._arr[s].afterLineNumber+=t-e+1)}}getWhitespacesTotalHeight(){return(this._checkPendingChanges(),0===this._arr.length)?0:this.getWhitespacesAccumulatedHeight(this._arr.length-1)}getWhitespacesAccumulatedHeight(e){this._checkPendingChanges(),e|=0;let t=Math.max(0,this._prefixSumValidIndex+1);0===t&&(this._arr[0].prefixSum=this._arr[0].height,t++);for(let s=t;s<=e;s++)this._arr[s].prefixSum=this._arr[s-1].prefixSum+this._arr[s].height;return this._prefixSumValidIndex=Math.max(this._prefixSumValidIndex,e),this._arr[e].prefixSum}getLinesTotalHeight(){return this._checkPendingChanges(),this._lineHeight*this._lineCount+this.getWhitespacesTotalHeight()+this._paddingTop+this._paddingBottom}getWhitespaceAccumulatedHeightBeforeLineNumber(e){this._checkPendingChanges(),e|=0;let t=this._findLastWhitespaceBeforeLineNumber(e);return -1===t?0:this.getWhitespacesAccumulatedHeight(t)}_findLastWhitespaceBeforeLineNumber(e){e|=0;let t=this._arr,s=0,x=t.length-1;for(;s<=x;){let E=(x-s|0)/2|0,a=s+E|0;if(t[a].afterLineNumber<e){if(a+1>=t.length||t[a+1].afterLineNumber>=e)return a;s=a+1|0}else x=a-1|0}return -1}_findFirstWhitespaceAfterLineNumber(e){e|=0;let t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t<this._arr.length?t:-1}getFirstWhitespaceIndexAfterLineNumber(e){return this._checkPendingChanges(),e|=0,this._findFirstWhitespaceAfterLineNumber(e)}getVerticalOffsetForLineNumber(e,t=!1){return this._checkPendingChanges(),((e|=0)>1?this._lineHeight*(e-1):0)+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0))+this._paddingTop}getVerticalOffsetAfterLineNumber(e,t=!1){return this._checkPendingChanges(),e|=0,this._lineHeight*e+this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0))+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),-1===this._minWidth){let e=0;for(let t=0,s=this._arr.length;t<s;t++)e=Math.max(e,this._arr[t].minWidth);this._minWidth=e}return this._minWidth}isAfterLines(e){return this._checkPendingChanges(),e>this.getLinesTotalHeight()}isInTopPadding(e){return 0!==this._paddingTop&&(this._checkPendingChanges(),e<this._paddingTop)}isInBottomPadding(e){return 0!==this._paddingBottom&&(this._checkPendingChanges(),e>=this.getLinesTotalHeight()-this._paddingBottom)}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),(e|=0)<0)return 1;let t=0|this._lineCount,s=this._lineHeight,x=1,E=t;for(;x<E;){let t=(x+E)/2|0,a=0|this.getVerticalOffsetForLineNumber(t);if(e>=a+s)x=t+1;else{if(e>=a)return t;E=t}}return x>t?t:x}getLinesViewportData(e,t){let s,x;this._checkPendingChanges(),e|=0,t|=0;let E=this._lineHeight,a=0|this.getLineNumberAtOrAfterVerticalOffset(e),r=0|this.getVerticalOffsetForLineNumber(a),i=0|this._lineCount,n=0|this.getFirstWhitespaceIndexAfterLineNumber(a),_=0|this.getWhitespacesCount();-1===n?(n=_,x=i+1,s=0):(x=0|this.getAfterLineNumberForWhitespaceIndex(n),s=0|this.getHeightForWhitespaceIndex(n));let T=r,S=T,R=0;r>=5e5&&(S-=R=Math.floor((R=5e5*Math.floor(r/5e5))/E)*E);let O=[],A=e+(t-e)/2,o=-1;for(let e=a;e<=i;e++){if(-1===o){let t=T,s=T+E;(t<=A&&A<s||t>A)&&(o=e)}for(T+=E,O[e-a]=S,S+=E;x===e;)S+=s,T+=s,++n>=_?x=i+1:(x=0|this.getAfterLineNumberForWhitespaceIndex(n),s=0|this.getHeightForWhitespaceIndex(n));if(T>=t){i=e;break}}-1===o&&(o=i);let N=0|this.getVerticalOffsetForLineNumber(i),I=a,h=i;return I<h&&r<e&&I++,I<h&&N+E>t&&h--,{bigNumbersDelta:R,startLineNumber:a,endLineNumber:i,relativeVerticalOffset:O,centeredLineNumber:o,completelyVisibleStartLineNumber:I,completelyVisibleEndLineNumber:h,lineHeight:this._lineHeight}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e|=0;let t=this.getAfterLineNumberForWhitespaceIndex(e);return(t>=1?this._lineHeight*t:0)+(e>0?this.getWhitespacesAccumulatedHeight(e-1):0)+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e|=0;let t=0,s=this.getWhitespacesCount()-1;if(s<0)return -1;let x=this.getVerticalOffsetForWhitespaceIndex(s),E=this.getHeightForWhitespaceIndex(s);if(e>=x+E)return -1;for(;t<s;){let x=Math.floor((t+s)/2),E=this.getVerticalOffsetForWhitespaceIndex(x),a=this.getHeightForWhitespaceIndex(x);if(e>=E+a)t=x+1;else{if(e>=E)return x;s=x}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e|=0;let t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;let s=this.getVerticalOffsetForWhitespaceIndex(t);if(s>e)return null;let x=this.getHeightForWhitespaceIndex(t);return{id:this.getIdForWhitespaceIndex(t),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:s,height:x}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e|=0,t|=0;let s=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),x=this.getWhitespacesCount()-1;if(s<0)return[];let E=[];for(let e=s;e<=x;e++){let s=this.getVerticalOffsetForWhitespaceIndex(e),x=this.getHeightForWhitespaceIndex(e);if(s>=t)break;E.push({id:this.getIdForWhitespaceIndex(e),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(e),verticalOffset:s,height:x})}return E}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e|=0,this._arr[e].height}}class Yj{constructor(e,t,s,x){(e|=0)<0&&(e=0),(t|=0)<0&&(t=0),(s|=0)<0&&(s=0),(x|=0)<0&&(x=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=s,this.contentHeight=x,this.scrollHeight=Math.max(s,x)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class Y$ extends TD.JT{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new T0.Q5),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new Yj(0,0,0,0),this._scrollable=this._register(new Az({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;let t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);let s=t.contentWidth!==e.contentWidth,x=t.contentHeight!==e.contentHeight;(s||x)&&this._onDidContentSizeChange.fire(new YY(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 Y0 extends TD.JT{constructor(e,t,s){super(),this._configuration=e;let x=this._configuration.options,E=x.get(146),a=x.get(84);this._linesLayout=new Yq(t,x.get(67),a.top,a.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new Y$(0,s)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new Yj(E.contentWidth,0,E.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(115)?125:0)}onConfigurationChanged(e){let t=this._configuration.options;if(e.hasChanged(67)&&this._linesLayout.setLineHeight(t.get(67)),e.hasChanged(84)){let e=t.get(84);this._linesLayout.setPadding(e.top,e.bottom)}if(e.hasChanged(146)){let e=t.get(146),s=e.contentWidth,x=e.height,E=this._scrollable.getScrollDimensions(),a=E.contentWidth;this._scrollable.setScrollDimensions(new Yj(s,E.contentWidth,x,this._getContentHeight(s,x,a)))}else this._updateHeight();e.hasChanged(115)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){let s=this._configuration.options.get(104);return 2===s.horizontal||e>=t?0:s.horizontalScrollbarSize}_getContentHeight(e,t,s){let x=this._configuration.options,E=this._linesLayout.getLinesTotalHeight();return x.get(106)?E+=Math.max(0,t-x.get(67)-x.get(84).bottom):x.get(104).ignoreHorizontalScrollbarInContentHeight||(E+=this._getHorizontalScrollbarHeight(e,s)),E}_updateHeight(){let e=this._scrollable.getScrollDimensions(),t=e.width,s=e.height,x=e.contentWidth;this._scrollable.setScrollDimensions(new Yj(t,e.contentWidth,s,this._getContentHeight(t,s,x)))}getCurrentViewport(){let e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new MX(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){let e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new MX(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){let e=this._configuration.options,t=this._maxLineWidth,s=e.get(147),x=e.get(50),E=e.get(146);if(s.isViewportWrapping){let s=e.get(73);return t>E.contentWidth+x.typicalHalfwidthCharacterWidth&&s.enabled&&"right"===s.side?t+E.verticalScrollbarWidth:t}{let s=e.get(105)*x.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+s+E.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){let e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new Yj(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){let e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,s=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(s),scrollLeft:e.scrollLeft}}changeWhitespace(e){let t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){let e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){let 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(){let e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){1===t?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){let s=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:s.scrollLeft+e,scrollTop:s.scrollTop+t})}}class Y2{constructor(e,t,s,x,E){this.editorId=e,this.model=t,this.configuration=s,this._linesCollection=x,this._coordinatesConverter=E,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){let t=e.id,s=this._decorationsCache[t];if(!s){let x;let E=e.range,a=e.options;if(a.isWholeLine){let e=this._coordinatesConverter.convertModelPositionToViewPosition(new N0.L(E.startLineNumber,1),0,!1,!0),t=this._coordinatesConverter.convertModelPositionToViewPosition(new N0.L(E.endLineNumber,this.model.getLineMaxColumn(E.endLineNumber)),1);x=new OQ.e(e.lineNumber,e.column,t.lineNumber,t.column)}else x=this._coordinatesConverter.convertModelRangeToViewRange(E,1);s=new MK(x,a),this._decorationsCache[t]=s}return s}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=null!==this._cachedModelDecorationsResolver;return(t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange))||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e,t=!1,s=!1){let x=new OQ.e(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(x,t,s).inlineDecorations[0]}_getDecorationsInRange(e,t,s){let x=this._linesCollection.getDecorationsInRange(e,this.editorId,c8(this.configuration.options),t,s),E=e.startLineNumber,a=e.endLineNumber,r=[],i=0,n=[];for(let e=E;e<=a;e++)n[e-E]=[];for(let e=0,t=x.length;e<t;e++){var _,T;let t=x[e],s=t.options;if(_=this.model,(T=t).options.hideInCommentTokens&&Y1(_,T.range,e=>1===e)||T.options.hideInStringTokens&&Y1(_,T.range,e=>2===e))continue;let S=this._getOrCreateViewModelDecoration(t),R=S.range;if(r[i++]=S,s.inlineClassName){let e=new Mw(R,s.inlineClassName,s.inlineClassNameAffectsLetterSpacing?3:0),t=Math.max(E,R.startLineNumber),x=Math.min(a,R.endLineNumber);for(let s=t;s<=x;s++)n[s-E].push(e)}if(s.beforeContentClassName&&E<=R.startLineNumber&&R.startLineNumber<=a){let e=new Mw(new OQ.e(R.startLineNumber,R.startColumn,R.startLineNumber,R.startColumn),s.beforeContentClassName,1);n[R.startLineNumber-E].push(e)}if(s.afterContentClassName&&E<=R.endLineNumber&&R.endLineNumber<=a){let e=new Mw(new OQ.e(R.endLineNumber,R.endColumn,R.endLineNumber,R.endColumn),s.afterContentClassName,2);n[R.endLineNumber-E].push(e)}}return{decorations:r,inlineDecorations:n}}}function Y1(e,t,s){for(let x=t.startLineNumber;x<=t.endLineNumber;x++){let E=e.tokenization.getLineTokens(x),a=x===t.startLineNumber,r=x===t.endLineNumber,i=a?E.findTokenIndexAtOffset(t.startColumn-1):0;for(;i<E.getCount()&&!(r&&E.getStartOffset(i)>t.endColumn-1);){if(!s(E.getStandardTokenType(i)))return!1;i++}}return!0}function Y3(e,t){return null!==e?new Y7(e,t):t?Y5.INSTANCE:Y4.INSTANCE}class Y7{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,s){let x;this._assertVisible();let E=s>0?this._projectionData.breakOffsets[s-1]:0,a=this._projectionData.breakOffsets[s];if(null!==this._projectionData.injectionOffsets){let s=this._projectionData.injectionOffsets.map((e,t)=>new p2.gk(0,0,e+1,this._projectionData.injectionOptions[t],0));x=p2.gk.applyInjectedText(e.getLineContent(t),s).substring(E,a)}else x=e.getValueInRange({startLineNumber:t,startColumn:E+1,endLineNumber:t,endColumn:a+1});return s>0&&(x=Y8(this._projectionData.wrappedTextIndentLength)+x),x}getViewLineLength(e,t,s){return this._assertVisible(),this._projectionData.getLineLength(s)}getViewLineMinColumn(e,t,s){return this._assertVisible(),this._projectionData.getMinOutputOffset(s)+1}getViewLineMaxColumn(e,t,s){return this._assertVisible(),this._projectionData.getMaxOutputOffset(s)+1}getViewLineData(e,t,s){let x=[];return this.getViewLinesData(e,t,s,1,0,[!0],x),x[0]}getViewLinesData(e,t,s,x,E,a,r){let i;this._assertVisible();let n=this._projectionData,_=n.injectionOffsets,T=n.injectionOptions,S=null;if(_){S=[];let e=0,t=0;for(let s=0;s<n.getOutputLineCount();s++){let x=[];S[s]=x;let E=s>0?n.breakOffsets[s-1]:0,a=n.breakOffsets[s];for(;t<_.length;){let r=T[t].content.length,i=_[t]+e,S=i+r;if(i>a)break;if(E<S){let e=T[t];if(e.inlineClassName){let t=s>0?n.wrappedTextIndentLength:0,r=t+Math.max(i-E,0),_=t+Math.min(S-E,a-E);r!==_&&x.push(new MW(r,_,e.inlineClassName,e.inlineClassNameAffectsLetterSpacing))}}if(S<=a)e+=r,t++;else break}}}i=_?e.tokenization.getLineTokens(t).withInserted(_.map((e,t)=>({offset:e,text:T[t].content,tokenMetadata:NO.A.defaultTokenMetadata}))):e.tokenization.getLineTokens(t);for(let e=s;e<s+x;e++){let t=E+e-s;if(!a[t]){r[t]=null;continue}r[t]=this._getViewLineData(i,S?S[e]:null,e)}}_getViewLineData(e,t,s){this._assertVisible();let x=this._projectionData,E=s>0?x.wrappedTextIndentLength:0,a=s>0?x.breakOffsets[s-1]:0,r=x.breakOffsets[s],i=e.sliceAndInflate(a,r,E),n=i.getLineContent();s>0&&(n=Y8(x.wrappedTextIndentLength)+n);let _=this._projectionData.getMinOutputOffset(s)+1,T=n.length+1;return new Mv(n,s+1<this.getViewLineCount(),_,T,0===s?0:x.breakOffsetsVisibleColumn[s-1],i,t)}getModelColumnOfViewPosition(e,t){return this._assertVisible(),this._projectionData.translateToInputOffset(e,t-1)+1}getViewPositionOfModelPosition(e,t,s=2){return this._assertVisible(),this._projectionData.translateToOutputPosition(t-1,s).toPosition(e)}getViewLineNumberOfModelPosition(e,t){return this._assertVisible(),e+this._projectionData.translateToOutputPosition(t-1).outputLineIndex}normalizePosition(e,t,s){let x=t.lineNumber-e;return this._projectionData.normalizeOutputPosition(e,t.column-1,s).toPosition(x)}getInjectedTextAt(e,t){return this._projectionData.getInjectedText(e,t-1)}_assertVisible(){if(!this._isVisible)throw Error("Not supported")}}class Y5{static{this.INSTANCE=new Y5}constructor(){}isVisible(){return!0}setVisible(e){return e?this:Y4.INSTANCE}getProjectionData(){return null}getViewLineCount(){return 1}getViewLineContent(e,t,s){return e.getLineContent(t)}getViewLineLength(e,t,s){return e.getLineLength(t)}getViewLineMinColumn(e,t,s){return e.getLineMinColumn(t)}getViewLineMaxColumn(e,t,s){return e.getLineMaxColumn(t)}getViewLineData(e,t,s){let x=e.tokenization.getLineTokens(t),E=x.getLineContent();return new Mv(E,!1,1,E.length+1,0,x.inflate(),null)}getViewLinesData(e,t,s,x,E,a,r){if(!a[E]){r[E]=null;return}r[E]=this.getViewLineData(e,t,0)}getModelColumnOfViewPosition(e,t){return t}getViewPositionOfModelPosition(e,t){return new N0.L(e,t)}getViewLineNumberOfModelPosition(e,t){return e}normalizePosition(e,t,s){return t}getInjectedTextAt(e,t){return null}}class Y4{static{this.INSTANCE=new Y4}constructor(){}isVisible(){return!1}setVisible(e){return e?Y5.INSTANCE:this}getProjectionData(){return null}getViewLineCount(){return 0}getViewLineContent(e,t,s){throw Error("Not supported")}getViewLineLength(e,t,s){throw Error("Not supported")}getViewLineMinColumn(e,t,s){throw Error("Not supported")}getViewLineMaxColumn(e,t,s){throw Error("Not supported")}getViewLineData(e,t,s){throw Error("Not supported")}getViewLinesData(e,t,s,x,E,a,r){throw Error("Not supported")}getModelColumnOfViewPosition(e,t){throw Error("Not supported")}getViewPositionOfModelPosition(e,t){throw Error("Not supported")}getViewLineNumberOfModelPosition(e,t){throw Error("Not supported")}normalizePosition(e,t,s){throw Error("Not supported")}getInjectedTextAt(e,t){throw Error("Not supported")}}let Y6=[""];function Y8(e){if(e>=Y6.length)for(let t=1;t<=e;t++)Y6[t]=Array(t+1).join(" ");return Y6[e]}var Y9=x(17068);class Ge{constructor(e,t,s,x,E,a,r,i,n,_){this._editorId=e,this.model=t,this._validModelVersionId=-1,this._domLineBreaksComputerFactory=s,this._monospaceLineBreaksComputerFactory=x,this.fontInfo=E,this.tabSize=a,this.wrappingStrategy=r,this.wrappingColumn=i,this.wrappingIndent=n,this.wordBreak=_,this._constructLines(!0,null)}dispose(){this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[])}createCoordinatesConverter(){return new Gx(this)}_constructLines(e,t){this.modelLineProjections=[],e&&(this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,[]));let s=this.model.getLinesContent(),x=this.model.getInjectedTextDecorations(this._editorId),E=s.length,a=this.createLineBreaksComputer(),r=new cO.H9(p2.gk.fromDecorations(x));for(let e=0;e<E;e++){let x=r.takeWhile(t=>t.lineNumber===e+1);a.addRequest(s[e],x,t?t[e]:null)}let i=a.finalize(),n=[],_=this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e)).sort(OQ.e.compareRangesUsingStarts),T=1,S=0,R=-1,O=0<_.length?S+1:E+2;for(let e=0;e<E;e++){let t=e+1;t===O&&(T=_[++R].startLineNumber,S=_[R].endLineNumber,O=R+1<_.length?S+1:E+2);let s=t>=T&&t<=S,x=Y3(i[e],!s);n[e]=x.getViewLineCount(),this.modelLineProjections[e]=x}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new Y9.Ck(n)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){let t=function(e){if(0===e.length)return[];let t=e.slice();t.sort(OQ.e.compareRangesUsingStarts);let s=[],x=t[0].startLineNumber,E=t[0].endLineNumber;for(let e=1,a=t.length;e<a;e++){let a=t[e];a.startLineNumber>E+1?(s.push(new OQ.e(x,1,E,1)),x=a.startLineNumber,E=a.endLineNumber):a.endLineNumber>E&&(E=a.endLineNumber)}return s.push(new OQ.e(x,1,E,1)),s}(e.map(e=>this.model.validateRange(e))),s=this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e)).sort(OQ.e.compareRangesUsingStarts);if(t.length===s.length){let e=!1;for(let x=0;x<t.length;x++)if(!t[x].equalsRange(s[x])){e=!0;break}if(!e)return!1}let x=t.map(e=>({range:e,options:p6.qx.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,x);let E=1,a=0,r=-1,i=0<t.length?a+1:this.modelLineProjections.length+2,n=!1;for(let e=0;e<this.modelLineProjections.length;e++){let s=e+1;s===i&&(E=t[++r].startLineNumber,a=t[r].endLineNumber,i=r+1<t.length?a+1:this.modelLineProjections.length+2);let x=!1;if(s>=E&&s<=a?this.modelLineProjections[e].isVisible()&&(this.modelLineProjections[e]=this.modelLineProjections[e].setVisible(!1),x=!0):(n=!0,this.modelLineProjections[e].isVisible()||(this.modelLineProjections[e]=this.modelLineProjections[e].setVisible(!0),x=!0)),x){let t=this.modelLineProjections[e].getViewLineCount();this.projectedModelLineLineCounts.setValue(e,t)}}return n||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return!(e<1)&&!(e>this.modelLineProjections.length)&&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&&(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,s,x,E){let a=this.fontInfo.equals(e),r=this.wrappingStrategy===t,i=this.wrappingColumn===s,n=this.wrappingIndent===x,_=this.wordBreak===E;if(a&&r&&i&&n&&_)return!1;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=s,this.wrappingIndent=x,this.wordBreak=E;let T=null;if(a&&r&&!i&&n&&_){T=[];for(let e=0,t=this.modelLineProjections.length;e<t;e++)T[e]=this.modelLineProjections[e].getProjectionData()}return this._constructLines(!1,T),!0}createLineBreaksComputer(){return("advanced"===this.wrappingStrategy?this._domLineBreaksComputerFactory:this._monospaceLineBreaksComputerFactory).createLineBreaksComputer(this.fontInfo,this.tabSize,this.wrappingColumn,this.wrappingIndent,this.wordBreak)}onModelFlushed(){this._constructLines(!0,null)}onModelLinesDeleted(e,t,s){if(!e||e<=this._validModelVersionId)return null;let x=1===t?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,E=this.projectedModelLineLineCounts.getPrefixSum(s);return this.modelLineProjections.splice(t-1,s-t+1),this.projectedModelLineLineCounts.removeValues(t-1,s-t+1),new YL(x,E)}onModelLinesInserted(e,t,s,x){if(!e||e<=this._validModelVersionId)return null;let E=t>2&&!this.modelLineProjections[t-2].isVisible(),a=1===t?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,r=0,i=[],n=[];for(let e=0,t=x.length;e<t;e++){let t=Y3(x[e],!E);i.push(t);let s=t.getViewLineCount();r+=s,n[e]=s}return this.modelLineProjections=this.modelLineProjections.slice(0,t-1).concat(i).concat(this.modelLineProjections.slice(t-1)),this.projectedModelLineLineCounts.insertValues(t-1,n),new YC(a,a+r-1)}onModelLineChanged(e,t,s){if(null!==e&&e<=this._validModelVersionId)return[!1,null,null,null];let x=t-1,E=this.modelLineProjections[x].getViewLineCount(),a=Y3(s,this.modelLineProjections[x].isVisible());this.modelLineProjections[x]=a;let r=this.modelLineProjections[x].getViewLineCount(),i=!1,n=0,_=-1,T=0,S=-1,R=0,O=-1;return E>r?(O=(R=(_=(n=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1)+r-1)+1)+(E-r)-1,i=!0):E<r?(S=(T=(_=(n=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1)+E-1)+1)+(r-E)-1,i=!0):_=(n=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1)+r-1,this.projectedModelLineLineCounts.setValue(x,r),[i,n<=_?new Yh(n,_-n+1):null,T<=S?new YC(T,S):null,R<=O?new YL(R,O):null]}acceptVersionId(e){this._validModelVersionId=e,1!==this.modelLineProjections.length||this.modelLineProjections[0].isVisible()||this.setHiddenAreas([])}getViewLineCount(){return this.projectedModelLineLineCounts.getTotalSum()}_toValidViewLineNumber(e){if(e<1)return 1;let t=this.getViewLineCount();return e>t?t:0|e}getActiveIndentGuide(e,t,s){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),s=this._toValidViewLineNumber(s);let x=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),E=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),a=this.convertViewPositionToModelPosition(s,this.getViewLineMinColumn(s)),r=this.model.guides.getActiveIndentGuide(x.lineNumber,E.lineNumber,a.lineNumber),i=this.convertModelPositionToViewPosition(r.startLineNumber,1),n=this.convertModelPositionToViewPosition(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber));return{startLineNumber:i.lineNumber,endLineNumber:n.lineNumber,indent:r.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);let t=this.projectedModelLineLineCounts.getIndexOf(e-1);return new Gt(t.index+1,t.remainder)}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){let t=this.modelLineProjections[e.modelLineNumber-1],s=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),x=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,s);return new N0.L(e.modelLineNumber,x)}getModelEndPositionOfViewLine(e){let t=this.modelLineProjections[e.modelLineNumber-1],s=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),x=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,s);return new N0.L(e.modelLineNumber,x)}getViewLineInfosGroupedByModelRanges(e,t){let s=this.getViewLineInfo(e),x=this.getViewLineInfo(t),E=[],a=this.getModelStartPositionOfViewLine(s),r=[];for(let e=s.modelLineNumber;e<=x.modelLineNumber;e++){let t=this.modelLineProjections[e-1];if(t.isVisible()){let E=e===s.modelLineNumber?s.modelLineWrappedLineIdx:0,a=e===x.modelLineNumber?x.modelLineWrappedLineIdx+1:t.getViewLineCount();for(let t=E;t<a;t++)r.push(new Gt(e,t))}if(!t.isVisible()&&a){let t=new N0.L(e-1,this.model.getLineMaxColumn(e-1)+1),s=OQ.e.fromPositions(a,t);E.push(new Gs(s,r)),r=[],a=null}else t.isVisible()&&!a&&(a=new N0.L(e,1))}if(a){let e=OQ.e.fromPositions(a,this.getModelEndPositionOfViewLine(x));E.push(new Gs(e,r))}return E}getViewLinesBracketGuides(e,t,s,x){let E=s?this.convertViewPositionToModelPosition(s.lineNumber,s.column):null,a=[];for(let s of this.getViewLineInfosGroupedByModelRanges(e,t)){let e=s.modelRange.startLineNumber,t=this.model.guides.getLinesBracketGuides(e,s.modelRange.endLineNumber,E,x);for(let x of s.viewLines){let s=t[x.modelLineNumber-e].map(e=>{if(-1!==e.forWrappedLinesAfterColumn&&this.modelLineProjections[x.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesAfterColumn).lineNumber>=x.modelLineWrappedLineIdx||-1!==e.forWrappedLinesBeforeOrAtColumn&&this.modelLineProjections[x.modelLineNumber-1].getViewPositionOfModelPosition(0,e.forWrappedLinesBeforeOrAtColumn).lineNumber<x.modelLineWrappedLineIdx)return;if(!e.horizontalLine)return e;let t=-1;if(-1!==e.column){let s=this.modelLineProjections[x.modelLineNumber-1].getViewPositionOfModelPosition(0,e.column);if(s.lineNumber===x.modelLineWrappedLineIdx)t=s.column;else if(s.lineNumber<x.modelLineWrappedLineIdx)t=this.getMinColumnOfViewLine(x);else if(s.lineNumber>x.modelLineWrappedLineIdx)return}let s=this.convertModelPositionToViewPosition(x.modelLineNumber,e.horizontalLine.endColumn),E=this.modelLineProjections[x.modelLineNumber-1].getViewPositionOfModelPosition(0,e.horizontalLine.endColumn);return E.lineNumber===x.modelLineWrappedLineIdx?new U1.UO(e.visibleColumn,t,e.className,new U1.vW(e.horizontalLine.top,s.column),-1,-1):E.lineNumber<x.modelLineWrappedLineIdx?void 0:-1===e.visibleColumn?new U1.UO(e.visibleColumn,t,e.className,new U1.vW(e.horizontalLine.top,this.getMaxColumnOfViewLine(x)),-1,-1):void 0});a.push(s.filter(e=>!!e))}}return a}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);let s=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),x=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t)),E=[],a=[],r=[],i=s.lineNumber-1,n=x.lineNumber-1,_=null;for(let e=i;e<=n;e++){let t=this.modelLineProjections[e];if(t.isVisible()){let x=t.getViewLineNumberOfModelPosition(0,e===i?s.column:1),E=t.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(e+1)),n=E-x+1,T=0;n>1&&1===t.getViewLineMinColumn(this.model,e+1,E)&&(T=0===x?1:2),a.push(n),r.push(T),null===_&&(_=new N0.L(e+1,0))}else null!==_&&(E=E.concat(this.model.guides.getLinesIndentGuides(_.lineNumber,e)),_=null)}null!==_&&(E=E.concat(this.model.guides.getLinesIndentGuides(_.lineNumber,x.lineNumber)),_=null);let T=t-e+1,S=Array(T),R=0;for(let e=0,t=E.length;e<t;e++){let t,s=E[e],x=Math.min(T-R,a[e]),i=r[e];t=2===i?0:1===i?1:x;for(let e=0;e<x;e++)e===t&&(s=0),S[R++]=s}return S}getViewLineContent(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineContent(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineLength(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineLength(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMinColumn(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMinColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineMaxColumn(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineMaxColumn(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLineData(e){let t=this.getViewLineInfo(e);return this.modelLineProjections[t.modelLineNumber-1].getViewLineData(this.model,t.modelLineNumber,t.modelLineWrappedLineIdx)}getViewLinesData(e,t,s){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);let x=this.projectedModelLineLineCounts.getIndexOf(e-1),E=e,a=x.index,r=x.remainder,i=[];for(let x=a,n=this.model.getLineCount();x<n;x++){let n=this.modelLineProjections[x];if(!n.isVisible())continue;let _=x===a?r:0,T=n.getViewLineCount()-_,S=!1;if(E+T>t&&(S=!0,T=t-E+1),n.getViewLinesData(this.model,x+1,_,T,E-e,s,i),E+=T,S)break}return i}validateViewPosition(e,t,s){e=this._toValidViewLineNumber(e);let x=this.projectedModelLineLineCounts.getIndexOf(e-1),E=x.index,a=x.remainder,r=this.modelLineProjections[E],i=r.getViewLineMinColumn(this.model,E+1,a),n=r.getViewLineMaxColumn(this.model,E+1,a);t<i&&(t=i),t>n&&(t=n);let _=r.getModelColumnOfViewPosition(a,t);return this.model.validatePosition(new N0.L(E+1,_)).equals(s)?new N0.L(e,t):this.convertModelPositionToViewPosition(s.lineNumber,s.column)}validateViewRange(e,t){let s=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),x=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new OQ.e(s.lineNumber,s.column,x.lineNumber,x.column)}convertViewPositionToModelPosition(e,t){let s=this.getViewLineInfo(e),x=this.modelLineProjections[s.modelLineNumber-1].getModelColumnOfViewPosition(s.modelLineWrappedLineIdx,t);return this.model.validatePosition(new N0.L(s.modelLineNumber,x))}convertViewRangeToModelRange(e){let t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),s=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new OQ.e(t.lineNumber,t.column,s.lineNumber,s.column)}convertModelPositionToViewPosition(e,t,s=2,x=!1,E=!1){let a=this.model.validatePosition(new N0.L(e,t)),r=a.lineNumber,i=a.column,n=r-1,_=!1;if(E)for(;n<this.modelLineProjections.length&&!this.modelLineProjections[n].isVisible();)n++,_=!0;else for(;n>0&&!this.modelLineProjections[n].isVisible();)n--,_=!0;if(0===n&&!this.modelLineProjections[n].isVisible())return new N0.L(x?0:1,1);let T=1+this.projectedModelLineLineCounts.getPrefixSum(n);return _?E?this.modelLineProjections[n].getViewPositionOfModelPosition(T,1,s):this.modelLineProjections[n].getViewPositionOfModelPosition(T,this.model.getLineMaxColumn(n+1),s):this.modelLineProjections[r-1].getViewPositionOfModelPosition(T,i,s)}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){let s=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return OQ.e.fromPositions(s)}{let t=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),s=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new OQ.e(t.lineNumber,t.column,s.lineNumber,s.column)}}getViewLineNumberOfModelPosition(e,t){let s=e-1;if(this.modelLineProjections[s].isVisible()){let e=1+this.projectedModelLineLineCounts.getPrefixSum(s);return this.modelLineProjections[s].getViewLineNumberOfModelPosition(e,t)}for(;s>0&&!this.modelLineProjections[s].isVisible();)s--;if(0===s&&!this.modelLineProjections[s].isVisible())return 1;let x=1+this.projectedModelLineLineCounts.getPrefixSum(s);return this.modelLineProjections[s].getViewLineNumberOfModelPosition(x,this.model.getLineMaxColumn(s+1))}getDecorationsInRange(e,t,s,x,E){let a=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),r=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(r.lineNumber-a.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new OQ.e(a.lineNumber,1,r.lineNumber,r.column),t,s,x,E);let i=[],n=a.lineNumber-1,_=r.lineNumber-1,T=null;for(let e=n;e<=_;e++)if(this.modelLineProjections[e].isVisible())null===T&&(T=new N0.L(e+1,e===n?a.column:1));else if(null!==T){let E=this.model.getLineMaxColumn(e);i=i.concat(this.model.getDecorationsInRange(new OQ.e(T.lineNumber,T.column,e,E),t,s,x)),T=null}null!==T&&(i=i.concat(this.model.getDecorationsInRange(new OQ.e(T.lineNumber,T.column,r.lineNumber,r.column),t,s,x)),T=null),i.sort((e,t)=>{let s=OQ.e.compareRangesUsingStarts(e.range,t.range);return 0===s?e.id<t.id?-1:e.id>t.id?1:0:s});let S=[],R=0,O=null;for(let e of i){let t=e.id;O!==t&&(O=t,S[R++]=e)}return S}getInjectedTextAt(e){let t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){let s=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[s.modelLineNumber-1].normalizePosition(s.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){let t=this.getViewLineInfo(e);return 0===t.modelLineWrappedLineIdx?this.model.getLineIndentColumn(t.modelLineNumber):0}}class Gt{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class Gs{constructor(e,t){this.modelRange=e,this.viewLines=t}}class Gx{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,s,x){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,s,x)}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 GE{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new Ga(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,s,x){return!1}createLineBreaksComputer(){let e=[];return{addRequest:(t,s,x)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,s){return new YL(t,s)}onModelLinesInserted(e,t,s,x){return new YC(t,s)}onModelLineChanged(e,t,s){return[!1,new Yh(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,s){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,s){return Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){let s=t-e+1,x=Array(s);for(let e=0;e<s;e++)x[e]=0;return x}getViewLineContent(e){return this.model.getLineContent(e)}getViewLineLength(e){return this.model.getLineLength(e)}getViewLineMinColumn(e){return this.model.getLineMinColumn(e)}getViewLineMaxColumn(e){return this.model.getLineMaxColumn(e)}getViewLineData(e){let t=this.model.tokenization.getLineTokens(e),s=t.getLineContent();return new Mv(s,!1,1,s.length+1,0,t.inflate(),null)}getViewLinesData(e,t,s){let x=this.model.getLineCount();e=Math.min(Math.max(1,e),x),t=Math.min(Math.max(1,t),x);let E=[];for(let x=e;x<=t;x++){let t=x-e;E[t]=s[t]?this.getViewLineData(x):null}return E}getDecorationsInRange(e,t,s,x,E){return this.model.getDecorationsInRange(e,t,s,x,E)}normalizePosition(e,t){return this.model.normalizePosition(e,t)}getLineIndentColumn(e){return this.model.getLineIndentColumn(e)}getInjectedTextAt(e){return null}}class Ga{constructor(e){this._lines=e}_validPosition(e){return this._lines.model.validatePosition(e)}_validRange(e){return this._lines.model.validateRange(e)}convertViewPositionToModelPosition(e){return this._validPosition(e)}convertViewRangeToModelRange(e){return this._validRange(e)}validateViewPosition(e,t){return this._validPosition(t)}validateViewRange(e,t){return this._validRange(t)}convertModelPositionToViewPosition(e){return this._validPosition(e)}convertModelRangeToViewRange(e){return this._validRange(e)}modelPositionIsVisible(e){let t=this._lines.model.getLineCount();return!(e.lineNumber<1)&&!(e.lineNumber>t)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}let Gr=Ml.U.Right;class Gi{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*Gr/8))}reset(e){let t=Math.ceil((e+1)*Gr/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,s){s&&(this.persist|=1<<e-1);for(let s=t.startLineNumber;s<=t.endLineNumber;s++){let t=Gr*s+(e-1);this.lanes[t>>>3]|=1<<t%8,this._requiredLanes=Math.max(this._requiredLanes,this.countAtLine(s))}}getLanesAtLine(e){let t=[],s=Gr*e;for(let e=0;e<Gr;e++)(this.persist&1<<e||this.lanes[s>>>3]&1<<s%8)&&t.push(e+1),s++;return t.length?t:[Ml.U.Center]}countAtLine(e){let t=Gr*e,s=0;for(let e=0;e<Gr;e++)(this.persist&1<<e||this.lanes[t>>>3]&1<<t%8)&&s++,t++;return s}}class Gn extends TD.JT{constructor(e,t,s,x,E,a,r,i,n,_){if(super(),this.languageConfigurationService=r,this._themeService=i,this._attachedView=n,this._transactionalTarget=_,this.hiddenAreasModel=new GT,this.previousHiddenAreas=[],this._editorId=e,this._configuration=t,this.model=s,this._eventDispatcher=new YU,this.onEvent=this._eventDispatcher.onEvent,this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._updateConfigurationViewLineCount=this._register(new T$.pY(()=>this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=G_.create(this.model),this.glyphLanes=new Gi(0),this.model.isTooLargeForTokenization())this._lines=new GE(this.model);else{let e=this._configuration.options,t=e.get(50),s=e.get(140),a=e.get(147),r=e.get(139),i=e.get(130);this._lines=new Ge(this._editorId,this.model,x,E,t,this.model.getOptions().tabSize,s,a.wrappingColumn,r,i)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new Yk(s,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new Y0(this._configuration,this.getLineCount(),a)),this._register(this.viewLayout.onDidScroll(e=>{e.scrollTopChanged&&this._handleVisibleLinesChanged(),e.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new Yu(e)),this._eventDispatcher.emitOutgoingEvent(new YB(e.oldScrollWidth,e.oldScrollLeft,e.oldScrollHeight,e.oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(e=>{this._eventDispatcher.emitOutgoingEvent(e)})),this._decorations=new Y2(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(e=>{try{let t=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(px.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new YP)})),this._register(this._themeService.onDidColorThemeChange(e=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new YD(e))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){let e=this.viewLayout.getLinesViewportData(),t=new OQ.e(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){let e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){let e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new Yo(e)),this._eventDispatcher.emitOutgoingEvent(new YG(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new Yc)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new YT)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){let e=new N0.L(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber));return new GR(this.coordinatesConverter.convertViewPositionToModelPosition(e),this._viewportStart.startLineDelta)}return new GR(null,0)}_onConfigurationChanged(e,t){let s=this._captureStableViewport(),x=this._configuration.options,E=x.get(50),a=x.get(140),r=x.get(147),i=x.get(139),n=x.get(130);this._lines.setWrappingSettings(E,a,r.wrappingColumn,i,n)&&(e.emitViewEvent(new YA),e.emitViewEvent(new YI),e.emitViewEvent(new YO(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(92)&&(this._decorations.reset(),e.emitViewEvent(new YO(null))),t.hasChanged(99)&&(this._decorations.reset(),e.emitViewEvent(new YO(null))),e.emitViewEvent(new YS(t)),this.viewLayout.onConfigurationChanged(t),s.recoverViewportStart(this.coordinatesConverter,this.viewLayout),dU.shouldRecreate(t)&&(this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{let t=this._eventDispatcher.beginEmitViewEvents(),s=!1,x=!1,E=e instanceof p2.fV?e.rawContentChangedEvent.changes:e.changes,a=e instanceof p2.fV?e.rawContentChangedEvent.versionId:null,r=this._lines.createLineBreaksComputer();for(let e of E)switch(e.changeType){case 4:for(let t=0;t<e.detail.length;t++){let s=e.detail[t],x=e.injectedTexts[t];x&&(x=x.filter(e=>!e.ownerId||e.ownerId===this._editorId)),r.addRequest(s,x,null)}break;case 2:{let t=null;e.injectedText&&(t=e.injectedText.filter(e=>!e.ownerId||e.ownerId===this._editorId)),r.addRequest(e.detail,t,null)}}let i=r.finalize(),n=new cO.H9(i);for(let e of E)switch(e.changeType){case 1:this._lines.onModelFlushed(),t.emitViewEvent(new YA),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),s=!0;break;case 3:{let x=this._lines.onModelLinesDeleted(a,e.fromLineNumber,e.toLineNumber);null!==x&&(t.emitViewEvent(x),this.viewLayout.onLinesDeleted(x.fromLineNumber,x.toLineNumber)),s=!0;break}case 4:{let x=n.takeCount(e.detail.length),E=this._lines.onModelLinesInserted(a,e.fromLineNumber,e.toLineNumber,x);null!==E&&(t.emitViewEvent(E),this.viewLayout.onLinesInserted(E.fromLineNumber,E.toLineNumber)),s=!0;break}case 2:{let s=n.dequeue(),[E,r,i,_]=this._lines.onModelLineChanged(a,e.lineNumber,s);x=E,r&&t.emitViewEvent(r),i&&(t.emitViewEvent(i),this.viewLayout.onLinesInserted(i.fromLineNumber,i.toLineNumber)),_&&(t.emitViewEvent(_),this.viewLayout.onLinesDeleted(_.fromLineNumber,_.toLineNumber))}}null!==a&&this._lines.acceptVersionId(a),this.viewLayout.onHeightMaybeChanged(),!s&&x&&(t.emitViewEvent(new YI),t.emitViewEvent(new YO(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}let t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){let e=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(e){let t=this.coordinatesConverter.convertModelPositionToViewPosition(e.getStartPosition()),s=this.viewLayout.getVerticalOffsetForLineNumber(t.lineNumber);this.viewLayout.setScrollPosition({scrollTop:s+this._viewportStart.startLineDelta},1)}}try{let t=this._eventDispatcher.beginEmitViewEvents();e instanceof p2.fV&&t.emitOutgoingEvent(new YX(e.contentChangedEvent)),this._cursor.onModelContentChanged(t,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(e=>{let t=[];for(let s=0,x=e.ranges.length;s<x;s++){let x=e.ranges[s],E=this.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(x.fromLineNumber,1)).lineNumber,a=this.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(x.toLineNumber,this.model.getLineMaxColumn(x.toLineNumber))).lineNumber;t[s]={fromLineNumber:E,toLineNumber:a}}this._eventDispatcher.emitSingleViewEvent(new YM(t)),this._eventDispatcher.emitOutgoingEvent(new Yv(e))})),this._register(this.model.onDidChangeLanguageConfiguration(e=>{this._eventDispatcher.emitSingleViewEvent(new YN),this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new YV(e))})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Yy(e))})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{let e=this._eventDispatcher.beginEmitViewEvents();e.emitViewEvent(new YA),e.emitViewEvent(new YI),e.emitViewEvent(new YO(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new dU(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new Yb(e))})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new YO(e)),this._eventDispatcher.emitOutgoingEvent(new YH(e))}))}setHiddenAreas(e,t){this.hiddenAreasModel.setHiddenAreas(t,e);let s=this.hiddenAreasModel.getMergedRanges();if(s===this.previousHiddenAreas)return;this.previousHiddenAreas=s;let x=this._captureStableViewport(),E=!1;try{let e=this._eventDispatcher.beginEmitViewEvents();(E=this._lines.setHiddenAreas(s))&&(e.emitViewEvent(new YA),e.emitViewEvent(new YI),e.emitViewEvent(new YO(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());let t=x.viewportStartModelPosition?.lineNumber;t&&s.some(e=>e.startLineNumber<=t&&t<=e.endLineNumber)||x.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),E&&this._eventDispatcher.emitOutgoingEvent(new Yf)}getVisibleRangesPlusViewportAboveBelow(){let e=this._configuration.options.get(146),t=this._configuration.options.get(67),s=Math.max(20,Math.round(e.height/t)),x=this.viewLayout.getLinesViewportData(),E=Math.max(1,x.completelyVisibleStartLineNumber-s),a=Math.min(this.getLineCount(),x.completelyVisibleEndLineNumber+s);return this._toModelVisibleRanges(new OQ.e(E,this.getLineMinColumn(E),a,this.getLineMaxColumn(a)))}getVisibleRanges(){let e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){let t=this.coordinatesConverter.convertViewRangeToModelRange(e),s=this._lines.getHiddenAreas();if(0===s.length)return[t];let x=[],E=0,a=t.startLineNumber,r=t.startColumn,i=t.endLineNumber,n=t.endColumn;for(let e=0,t=s.length;e<t;e++){let t=s[e].startLineNumber,n=s[e].endLineNumber;n<a||t>i||(a<t&&(x[E++]=new OQ.e(a,r,t-1,this.model.getLineMaxColumn(t-1))),a=n+1,r=1)}return(a<i||a===i&&r<n)&&(x[E++]=new OQ.e(a,r,i,n)),x}getCompletelyVisibleViewRange(){let e=this.viewLayout.getLinesViewportData(),t=e.completelyVisibleStartLineNumber,s=e.completelyVisibleEndLineNumber;return new OQ.e(t,this.getLineMinColumn(t),s,this.getLineMaxColumn(s))}getCompletelyVisibleViewRangeAtScrollTop(e){let t=this.viewLayout.getLinesViewportDataAtScrollTop(e),s=t.completelyVisibleStartLineNumber,x=t.completelyVisibleEndLineNumber;return new OQ.e(s,this.getLineMinColumn(s),x,this.getLineMaxColumn(x))}saveState(){let e=this.viewLayout.saveState(),t=e.scrollTop,s=this.viewLayout.getLineNumberAtVerticalOffset(t),x=this.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(s,this.getLineMinColumn(s))),E=this.viewLayout.getVerticalOffsetForLineNumber(s)-t;return{scrollLeft:e.scrollLeft,firstPosition:x,firstPositionDeltaTop:E}}reduceRestoreState(e){if(void 0===e.firstPosition)return this._reduceRestoreStateCompatibility(e);let t=this.model.validatePosition(e.firstPosition),s=this.coordinatesConverter.convertModelPositionToViewPosition(t),x=this.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:x}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,s){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,s){return this._lines.getActiveIndentGuide(e,t,s)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,s,x){return this._lines.getViewLinesBracketGuides(e,t,s,x)}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){let t=TM.LC(this.getLineContent(e));return -1===t?0:t+1}getLineLastNonWhitespaceColumn(e){let t=TM.ow(this.getLineContent(e));return -1===t?0:t+2}getMinimapDecorationsInRange(e){return this._decorations.getMinimapDecorationsInRange(e)}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}getViewportViewLineRenderingData(e,t){let s=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,s)}getViewLineRenderingData(e){let t=this._decorations.getInlineDecorationsOnLine(e);return this._getViewLineRenderingData(e,t)}_getViewLineRenderingData(e,t){let s=this.model.mightContainRTL(),x=this.model.mightContainNonBasicASCII(),E=this.getTabSize(),a=this._lines.getViewLineData(e);return a.inlineDecorations&&(t=[...t,...a.inlineDecorations.map(t=>t.toInlineDecoration(e))]),new Mk(a.minColumn,a.maxColumn,a.content,a.continuesWithWrappedLine,s,x,a.tokens,t,E,a.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,s){let x=this._lines.getViewLinesData(e,t,s);return new Mb(this.getTabSize(),x)}getAllOverviewRulerDecorations(e){let t=this.model.getOverviewRulerDecorations(this._editorId,c8(this._configuration.options)),s=new Gc;for(let x of t){let t=x.options,E=t.overviewRuler;if(!E)continue;let a=E.position;if(0===a)continue;let r=E.getColor(e.value),i=this.coordinatesConverter.getViewLineNumberOfModelPosition(x.range.startLineNumber,x.range.startColumn),n=this.coordinatesConverter.getViewLineNumberOfModelPosition(x.range.endLineNumber,x.range.endColumn);s.accept(r,t.zIndex,i,n,a)}return s.asArray}_invalidateDecorationsColorCache(){for(let e of this.model.getOverviewRulerDecorations()){let t=e.options.overviewRuler;t?.invalidateCachedColor();let s=e.options.minimap;s?.invalidateCachedColor()}}getValueInRange(e,t){let s=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(s,t)}getValueLengthInRange(e,t){let s=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(s,t)}modifyPosition(e,t){let s=this.coordinatesConverter.convertViewPositionToModelPosition(e),x=this.model.modifyPosition(s,t);return this.coordinatesConverter.convertModelPositionToViewPosition(x)}deduceModelPositionRelativeToViewPosition(e,t,s){let x=this.coordinatesConverter.convertViewPositionToModelPosition(e);2===this.model.getEOL().length&&(t<0?t-=s:t+=s);let E=this.model.getOffsetAt(x)+t;return this.model.getPositionAt(E)}getPlainTextToCopy(e,t,s){let x=s?"\r\n":this.model.getEOL();(e=e.slice(0)).sort(OQ.e.compareRangesUsingStarts);let E=!1,a=!1;for(let t of e)t.isEmpty()?E=!0:a=!0;if(!a){if(!t)return"";let s=e.map(e=>e.startLineNumber),E="";for(let e=0;e<s.length;e++)e>0&&s[e-1]===s[e]||(E+=this.model.getLineContent(s[e])+x);return E}if(E&&t){let t=[],x=0;for(let E of e){let e=E.startLineNumber;E.isEmpty()?e!==x&&t.push(this.model.getLineContent(e)):t.push(this.model.getValueInRange(E,s?2:0)),x=e}return 1===t.length?t[0]:t}let r=[];for(let t of e)t.isEmpty()||r.push(this.model.getValueInRange(t,s?2:0));return 1===r.length?r[0]:r}getRichTextToCopy(e,t){let s;let x=this.model.getLanguageId();if(x===NR.bd||1!==e.length)return null;let E=e[0];if(E.isEmpty()){if(!t)return null;let e=E.startLineNumber;E=new OQ.e(e,this.model.getLineMinColumn(e),e,this.model.getLineMaxColumn(e))}let a=this._configuration.options.get(50),r=this._getColorMap();return/[:;\\\/<>]/.test(a.fontFamily)||a.fontFamily===TI.fontFamily?s=TI.fontFamily:(s=(s=a.fontFamily).replace(/"/g,"'"),!/[,']/.test(s)&&/[+ ]/.test(s)&&(s=`'${s}'`),s=`${s}, ${TI.fontFamily}`),{mode:x,html:`<div style="color: ${r[1]};background-color: ${r[2]};font-family: ${s};font-weight: ${a.fontWeight};font-size: ${a.fontSize}px;line-height: ${a.lineHeight}px;white-space: pre;">`+this._getHTMLToCopy(E,r)+"</div>"}}_getHTMLToCopy(e,t){let s=e.startLineNumber,x=e.startColumn,E=e.endLineNumber,a=e.endColumn,r=this.getTabSize(),i="";for(let e=s;e<=E;e++){let n=this.model.tokenization.getLineTokens(e),_=n.getLineContent(),T=e===s?x-1:0,S=e===E?a-1:_.length;""===_?i+="<br>":i+=function(e,t,s,x,E,a,r){let i="<div>",n=x,_=0,T=!0;for(let S=0,R=t.getCount();S<R;S++){let R=t.getEndOffset(S);if(R<=x)continue;let O="";for(;n<R&&n<E;n++){let t=e.charCodeAt(n);switch(t){case 9:{let e=a-(n+_)%a;for(_+=e-1;e>0;)r&&T?(O+=" ",T=!1):(O+=" ",T=!0),e--;break}case 60:O+="<",T=!1;break;case 62:O+=">",T=!1;break;case 38:O+="&",T=!1;break;case 0:O+="�",T=!1;break;case 65279:case 8232:case 8233:case 133:O+="�",T=!1;break;case 13:O+="​",T=!1;break;case 32:r&&T?(O+=" ",T=!1):(O+=" ",T=!0);break;default:O+=String.fromCharCode(t),T=!1}}if(i+=`<span style="${t.getInlineStyle(S,s)}">${O}</span>`,R>E||n>=E)break}return i+"</div>"}(_,n.inflate(),t,T,S,r,co.ED)}return i}_getColorMap(){let e=NA.RW.getColorMap(),t=["#000000"];if(e)for(let s=1,x=e.length;s<x;s++)t[s]=IV.Il.Format.CSS.formatHex(e[s]);return t}getPrimaryCursorState(){return this._cursor.getPrimaryCursorState()}getLastAddedCursorIndex(){return this._cursor.getLastAddedCursorIndex()}getCursorStates(){return this._cursor.getCursorStates()}setCursorStates(e,t,s){return this._withViewEventsCollector(x=>this._cursor.setStates(x,e,t,s))}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,s=0){this._withViewEventsCollector(x=>this._cursor.setSelections(x,e,t,s))}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 YF);return}this._withViewEventsCollector(e)}executeEdits(e,t,s){this._executeCursorEdit(x=>this._cursor.executeEdits(x,e,t,s))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(s=>this._cursor.type(s,e,t))}compositionType(e,t,s,x,E){this._executeCursorEdit(a=>this._cursor.compositionType(a,e,t,s,x,E))}paste(e,t,s,x){this._executeCursorEdit(E=>this._cursor.paste(E,e,t,s,x))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(s=>this._cursor.executeCommand(s,e,t))}executeCommands(e,t){this._executeCursorEdit(s=>this._cursor.executeCommands(s,e,t))}revealAllCursors(e,t,s=!1){this._withViewEventsCollector(x=>this._cursor.revealAll(x,e,s,0,t,0))}revealPrimaryCursor(e,t,s=!1){this._withViewEventsCollector(x=>this._cursor.revealPrimary(x,e,s,0,t,0))}revealTopMostCursor(e){let t=this._cursor.getTopMostViewPosition(),s=new OQ.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(t=>t.emitViewEvent(new Yl(e,!1,s,null,0,!0,0)))}revealBottomMostCursor(e){let t=this._cursor.getBottomMostViewPosition(),s=new OQ.e(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(t=>t.emitViewEvent(new Yl(e,!1,s,null,0,!0,0)))}revealRange(e,t,s,x,E){this._withViewEventsCollector(a=>a.emitViewEvent(new Yl(e,!1,s,null,x,t,E)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new Yd),this._eventDispatcher.emitOutgoingEvent(new Ym))}_withViewEventsCollector(e){return this._transactionalTarget.batchChanges(()=>{try{let 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 G_{static create(e){let t=e._setTrackedRange(null,new OQ.e(1,1,1,1),1);return new G_(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,s,x,E){this._model=e,this._viewLineNumber=t,this._isValid=s,this._modelTrackedRange=x,this._startLineDelta=E}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){let s=e.coordinatesConverter.convertViewPositionToModelPosition(new N0.L(t,e.getLineMinColumn(t))),x=e.model._setTrackedRange(this._modelTrackedRange,new OQ.e(s.lineNumber,s.column,s.lineNumber,s.column),1),E=e.viewLayout.getVerticalOffsetForLineNumber(t),a=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=x,this._startLineDelta=a-E}invalidate(){this._isValid=!1}}class Gc{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,s,x,E){let a=this._asMap[e];if(a){let e=a.data,t=e[e.length-3],r=e[e.length-1];if(t===E&&r+1>=s){x>r&&(e[e.length-1]=x);return}e.push(E,s,x)}else{let a=new MQ(e,t,[E,s,x]);this._asMap[e]=a,this.asArray.push(a)}}}class GT{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){let s=this.hiddenAreas.get(e);s&&GS(s,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;let e=Array.from(this.hiddenAreas.values()).reduce((e,t)=>(function(e,t){let s=[],x=0,E=0;for(;x<e.length&&E<t.length;){let a=e[x],r=t[E];if(a.endLineNumber<r.startLineNumber-1)s.push(e[x++]);else if(r.endLineNumber<a.startLineNumber-1)s.push(t[E++]);else{let e=Math.min(a.startLineNumber,r.startLineNumber),t=Math.max(a.endLineNumber,r.endLineNumber);s.push(new OQ.e(e,1,t,1)),x++,E++}}for(;x<e.length;)s.push(e[x++]);for(;E<t.length;)s.push(t[E++]);return s})(e,t),[]);return GS(this.ranges,e)||(this.ranges=e),this.ranges}}function GS(e,t){if(e.length!==t.length)return!1;for(let s=0;s<e.length;s++)if(!e[s].equalsRange(t[s]))return!1;return!0}class GR{constructor(e,t){this.viewportStartModelPosition=e,this.startLineDelta=t}recoverViewportStart(e,t){if(!this.viewportStartModelPosition)return;let s=e.convertModelPositionToViewPosition(this.viewportStartModelPosition),x=t.getVerticalOffsetForLineNumber(s.lineNumber);t.setScrollPosition({scrollTop:x+this.startLineDelta},1)}}var GO=function(e,t){return function(s,x){t(s,x,e)}};let GA=class extends TD.JT{static{eH=this}static{this.dropIntoEditorDecorationOptions=p6.qx.register({description:"workbench-dnd-target",className:"dnd-target"})}get isSimpleWidget(){return this._configuration.isSimpleWidget}get contextMenuId(){return this._configuration.contextMenuId}constructor(e,t,s,x,E,a,r,i,n,_,T,S){let R;super(),this.languageConfigurationService=T,this._deliveryQueue=(0,T0.Sp)(),this._contributions=this._register(new p5),this._onDidDispose=this._register(new T0.Q5),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeModel=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.event,this._onDidChangeModel=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new GI({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new GI({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new Gh(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new T0.Q5({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._updateCounter=0,this._onBeginUpdate=this._register(new T0.Q5),this.onBeginUpdate=this._onBeginUpdate.event,this._onEndUpdate=this._register(new T0.Q5),this.onEndUpdate=this._onEndUpdate.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),E.willCreateCodeEditor();let O={...t};for(let t of(this._domElement=e,this._overflowWidgetsDomNode=O.overflowWidgetsDomNode,delete O.overflowWidgetsDomNode,this._id=++Go,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=s.telemetryData,this._configuration=this._register(this._createConfiguration(s.isSimpleWidget||!1,s.contextMenuId??(s.isSimpleWidget?Ou.SimpleEditorContext:Ou.EditorContext),O,_)),this._register(this._configuration.onDidChange(e=>{this._onDidChangeConfiguration.fire(e);let t=this._configuration.options;if(e.hasChanged(146)){let e=t.get(146);this._onDidLayoutChange.fire(e)}})),this._contextKeyService=this._register(r.createScoped(this._domElement)),this._notificationService=n,this._codeEditorService=E,this._commandService=a,this._themeService=i,this._register(new GL(this,this._contextKeyService)),this._register(new GC(this,this._contextKeyService,S)),this._instantiationService=this._register(x.createChild(new DF([Oo.i6,this._contextKeyService]))),this._modelData=null,this._focusTracker=new Gl(e,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={},R=Array.isArray(s.contributions)?s.contributions:f.getEditorContributions(),this._contributions.initialize(this,R,this._instantiationService),f.getEditorActions())){if(this._actions.has(t.id)){(0,TV.dL)(Error(`Cannot have two actions with the same id ${t.id}`));continue}let e=new p4(t.id,t.label,t.alias,t.metadata,t.precondition??void 0,e=>this._instantiationService.invokeFunction(s=>Promise.resolve(t.runEditorCommand(s,this,e))),this._contextKeyService);this._actions.set(e.id,e)}let A=()=>!this._configuration.options.get(92)&&this._configuration.options.get(36).enabled;this._register(new Rk(this._domElement,{onDragOver:e=>{if(!A())return;let t=this.getTargetAtClientPoint(e.clientX,e.clientY);t?.position&&this.showDropIndicatorAt(t.position)},onDrop:async e=>{if(!A()||(this.removeDropIndicator(),!e.dataTransfer))return;let t=this.getTargetAtClientPoint(e.clientX,e.clientY);t?.position&&this._onDropIntoEditor.fire({position:t.position,event:e})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){this._modelData?.view.writeScreenReaderContent(e)}_createConfiguration(e,t,s,x){return new P_(e,t,s,this._domElement,x)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return MC.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?dk.getWordAtPosition(this._modelData.model,this._configuration.options.get(132),this._configuration.options.get(131),e):null}getValue(e=null){if(!this._modelData)return"";let t=!!e&&!!e.preserveBOM,s=0;return e&&e.lineEnding&&"\n"===e.lineEnding?s=1:e&&e.lineEnding&&"\r\n"===e.lineEnding&&(s=2),this._modelData.model.getValue(s,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){try{if(this._beginUpdate(),null===this._modelData&&null===e||this._modelData&&this._modelData.model===e)return;let t={oldModelUrl:this._modelData?.model.uri||null,newModelUrl:e?.uri||null};this._onWillChangeModel.fire(t);let s=this.hasTextFocus(),x=this._detachModel();this._attachModel(e),s&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire(t),this._postDetachModelCleanup(x),this._contributionsDisposable=this._contributions.onAfterModelAttached()}finally{this._endUpdate()}}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(let e in this._decorationTypeSubtypes){let t=this._decorationTypeSubtypes[e];for(let s in t)this._removeDecorationType(e+"-"+s)}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,s,x){let E=e.model.validatePosition({lineNumber:t,column:s}),a=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(E);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(a.lineNumber,x)}getTopForLineNumber(e,t=!1){return this._modelData?eH._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?eH._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,s,x=!1){let E=e.model.validatePosition({lineNumber:t,column:s}),a=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(E);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(a.lineNumber,x)}getBottomForLineNumber(e,t=!1){if(!this._modelData)return -1;let s=this._modelData.model.getLineMaxColumn(e);return eH._getVerticalOffsetAfterPosition(this._modelData,e,s,t)}setHiddenAreas(e,t){this._modelData?.viewModel.setHiddenAreas(e.map(e=>OQ.e.lift(e)),t)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;let t=this._modelData.model.validatePosition(e),s=this._modelData.model.getOptions().tabSize;return PK.i.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,s)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t="api"){if(this._modelData){if(!N0.L.isIPosition(e))throw Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,s,x){if(!this._modelData)return;if(!OQ.e.isIRange(e))throw Error("Invalid arguments");let E=this._modelData.model.validateRange(e),a=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(E);this._modelData.viewModel.revealRange("api",s,a,t,x)}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,s){if("number"!=typeof e)throw Error("Invalid arguments");this._sendRevealRange(new OQ.e(e,1,e,1),t,!1,s)}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,s,x){if(!N0.L.isIPosition(e))throw Error("Invalid arguments");this._sendRevealRange(new OQ.e(e.lineNumber,e.column,e.lineNumber,e.column),t,s,x)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t="api"){let s=P4.Y.isISelection(e),x=OQ.e.isIRange(e);if(!s&&!x)throw Error("Invalid arguments");if(s)this._setSelectionImpl(e,t);else if(x){let s={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(s,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;let s=new P4.Y(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[s])}revealLines(e,t,s=0){this._revealLines(e,t,0,s)}revealLinesInCenter(e,t,s=0){this._revealLines(e,t,1,s)}revealLinesInCenterIfOutsideViewport(e,t,s=0){this._revealLines(e,t,2,s)}revealLinesNearTop(e,t,s=0){this._revealLines(e,t,5,s)}_revealLines(e,t,s,x){if("number"!=typeof e||"number"!=typeof t)throw Error("Invalid arguments");this._sendRevealRange(new OQ.e(e,1,t,1),s,!1,x)}revealRange(e,t=0,s=!1,x=!0){this._revealRange(e,s?1:0,x,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,s,x){if(!OQ.e.isIRange(e))throw Error("Invalid arguments");this._sendRevealRange(OQ.e.lift(e),t,s,x)}setSelections(e,t="api",s=0){if(this._modelData){if(!e||0===e.length)throw Error("Invalid arguments");for(let t=0,s=e.length;t<s;t++)if(!P4.Y.isISelection(e[t]))throw Error("Invalid arguments");this._modelData.viewModel.setSelections(t,e,s)}}getContentWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getContentWidth():-1}getScrollWidth(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollWidth():-1}getScrollLeft(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollLeft():-1}getContentHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getContentHeight():-1}getScrollHeight(){return this._modelData?this._modelData.viewModel.viewLayout.getScrollHeight():-1}getScrollTop(){return this._modelData?this._modelData.viewModel.viewLayout.getCurrentScrollTop():-1}setScrollLeft(e,t=1){if(this._modelData){if("number"!=typeof e)throw Error("Invalid arguments");this._modelData.viewModel.viewLayout.setScrollPosition({scrollLeft:e},t)}}setScrollTop(e,t=1){if(this._modelData){if("number"!=typeof e)throw 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()}saveViewState(){if(!this._modelData)return null;let e=this._contributions.saveViewState();return{cursorState:this._modelData.viewModel.saveCursorState(),viewState:this._modelData.viewModel.saveState(),contributionsState:e}}restoreViewState(e){if(this._modelData&&this._modelData.hasRealView&&e&&e.cursorState&&e.viewState){let t=e.cursorState;Array.isArray(t)?t.length>0&&this._modelData.viewModel.restoreCursorState(t):this._modelData.viewModel.restoreCursorState([t]),this._contributions.restoreViewState(e.contributionsState||{});let s=this._modelData.viewModel.reduceRestoreState(e.viewState);this._modelData.view.restoreState(s)}}handleInitialized(){this._getViewModel()?.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){return this.getActions().filter(e=>e.isSupported())}getAction(e){return this._actions.get(e)||null}trigger(e,t,s){s=s||{};try{switch(this._beginUpdate(),t){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(e);return;case"type":{let t=s;this._type(e,t.text||"");return}case"replacePreviousChar":{let t=s;this._compositionType(e,t.text||"",t.replaceCharCnt||0,0,0);return}case"compositionType":{let t=s;this._compositionType(e,t.text||"",t.replacePrevCharCnt||0,t.replaceNextCharCnt||0,t.positionDelta||0);return}case"paste":{let t=s;this._paste(e,t.text||"",t.pasteOnNewLine||!1,t.multicursorText||null,t.mode||null,t.clipboardEvent);return}case"cut":this._cut(e);return}let x=this.getAction(t);if(x){Promise.resolve(x.run(s)).then(void 0,TV.dL);return}if(!this._modelData||this._triggerEditorCommand(e,t,s))return;this._triggerCommand(t,s)}finally{this._endUpdate()}}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){this._modelData&&0!==t.length&&("keyboard"===e&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),"keyboard"===e&&this._onDidType.fire(t))}_compositionType(e,t,s,x,E){this._modelData&&this._modelData.viewModel.compositionType(t,s,x,E,e)}_paste(e,t,s,x,E,a){if(!this._modelData)return;let r=this._modelData.viewModel,i=r.getSelection().getStartPosition();r.paste(t,s,x,e);let n=r.getSelection().getStartPosition();"keyboard"===e&&this._onDidPaste.fire({clipboardEvent:a,range:new OQ.e(i.lineNumber,i.column,n.lineNumber,n.column),languageId:E})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,s){let x=f.getEditorCommand(t);return!!x&&((s=s||{}).source=e,this._instantiationService.invokeFunction(e=>{Promise.resolve(x.runEditorCommand(e,this,s)).then(void 0,TV.dL)}),!0)}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!(!this._modelData||this._configuration.options.get(92))&&(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!(!this._modelData||this._configuration.options.get(92))&&(this._modelData.model.popStackElement(),!0)}executeEdits(e,t,s){let x;return!(!this._modelData||this._configuration.options.get(92))&&(x=s?Array.isArray(s)?()=>s:s:()=>null,this._modelData.viewModel.executeEdits(e,t,x),!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 Gu(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,c8(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,c8(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?0===e.length&&0===t.length?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){this._modelData&&0!==e.length&&this._modelData.model.changeDecorations(t=>{t.deltaDecorations(e,[])})}removeDecorationsByType(e){let t=this._decorationTypeKeysToIds[e];t&&this.changeDecorations(e=>e.deltaDecorations(t,[])),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(146)}createOverviewRuler(e){return this._modelData&&this._modelData.hasRealView?this._modelData.view.createOverviewRuler(e):null}getContainerDomNode(){return this._domElement}getDomNode(){return this._modelData&&this._modelData.hasRealView?this._modelData.view.domNode.domNode:null}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&&this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){let 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){let t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){let s=this._contentWidgets[t];s.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(s)}}removeContentWidget(e){let t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){let e=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(e)}}addOverlayWidget(e){let 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){let t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){let s=this._overlayWidgets[t];s.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(s)}}removeOverlayWidget(e){let t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){let e=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(e)}}addGlyphMarginWidget(e){let 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){let t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){let s=this._glyphMarginWidgets[t];s.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(s)}}removeGlyphMarginWidget(e){let t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){let e=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(e)}}changeViewZones(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getTargetAtClientPoint(e,t):null}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;let t=this._modelData.model.validatePosition(e),s=this._configuration.options,x=s.get(146);return{top:eH._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),left:this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+x.glyphMarginWidth+x.lineNumbersWidth+x.decorationsWidth-this.getScrollLeft(),height:s.get(67)}}getOffsetForColumn(e,t){return this._modelData&&this._modelData.hasRealView?this._modelData.view.getOffsetForColumn(e,t):-1}render(e=!1){this._modelData&&this._modelData.hasRealView&&this._modelData.viewModel.batchEvents(()=>{this._modelData.view.render(!0,e)})}setAriaOptions(e){this._modelData&&this._modelData.hasRealView&&this._modelData.view.setAriaOptions(e)}applyFontInfo(e){R0(e,this._configuration.options.get(50))}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}let t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());let s=e.onBeforeAttached(),x=new Gn(this._id,this._configuration,e,p3.create(SK(this._domElement)),p9.create(this._configuration.options),e=>a(SK(this._domElement),e),this.languageConfigurationService,this._themeService,s,{batchChanges:e=>{try{return this._beginUpdate(),e()}finally{this._endUpdate()}}});t.push(e.onWillDispose(()=>this.setModel(null))),t.push(x.onEvent(t=>{switch(t.kind){case 0:this._onDidContentSizeChange.fire(t);break;case 1:this._editorTextFocus.setValue(t.hasFocus);break;case 2:this._onDidScrollChange.fire(t);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(t.reachedMaxCursorCount){let e=this.getOption(80),t=ch.NC("cursors.maximum","The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",e);this._notificationService.prompt(AO.Warning,t,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:ch.NC("goToSetting","Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}let e=[];for(let s=0,x=t.selections.length;s<x;s++)e[s]=t.selections[s].getPosition();let s={position:e[0],secondaryPositions:e.slice(1),reason:t.reason,source:t.source};this._onDidChangeCursorPosition.fire(s);let x={selection:t.selections[0],secondarySelections:t.selections.slice(1),modelVersionId:t.modelVersionId,oldSelections:t.oldSelections,oldModelVersionId:t.oldModelVersionId,source:t.source,reason:t.reason};this._onDidChangeCursorSelection.fire(x);break}case 7:this._onDidChangeModelDecorations.fire(t.event);break;case 8:this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._onDidChangeModelLanguage.fire(t.event);break;case 9:this._onDidChangeModelLanguageConfiguration.fire(t.event);break;case 10:this._onDidChangeModelContent.fire(t.event);break;case 11:this._onDidChangeModelOptions.fire(t.event);break;case 12:this._onDidChangeModelTokens.fire(t.event)}}));let[E,r]=this._createView(x);if(r){this._domElement.appendChild(E.domNode.domNode);let t=Object.keys(this._contentWidgets);for(let e=0,s=t.length;e<s;e++){let s=t[e];E.addContentWidget(this._contentWidgets[s])}t=Object.keys(this._overlayWidgets);for(let e=0,s=t.length;e<s;e++){let s=t[e];E.addOverlayWidget(this._overlayWidgets[s])}t=Object.keys(this._glyphMarginWidgets);for(let e=0,s=t.length;e<s;e++){let s=t[e];E.addGlyphMarginWidget(this._glyphMarginWidgets[s])}E.render(!1,!0),E.domNode.domNode.setAttribute("data-uri",e.uri.toString())}this._modelData=new GN(e,x,E,r,t,s)}_createView(e){let t;t=this.isSimpleWidget?{paste:(e,t,s,x)=>{this._paste("keyboard",e,t,s,x)},type:e=>{this._type("keyboard",e)},compositionType:(e,t,s,x)=>{this._compositionType("keyboard",e,t,s,x)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:{paste:(e,t,s,x)=>{this._commandService.executeCommand("paste",{text:e,pasteOnNewLine:t,multicursorText:s,mode:x})},type:e=>{this._commandService.executeCommand("type",{text:e})},compositionType:(e,t,s,x)=>{s||x?this._commandService.executeCommand("compositionType",{text:e,replacePrevCharCnt:t,replaceNextCharCnt:s,positionDelta:x}):this._commandService.executeCommand("replacePreviousChar",{text:e,replaceCharCnt:t})},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};let s=new Uf(e.coordinatesConverter);return s.onKeyDown=e=>this._onKeyDown.fire(e),s.onKeyUp=e=>this._onKeyUp.fire(e),s.onContextMenu=e=>this._onContextMenu.fire(e),s.onMouseMove=e=>this._onMouseMove.fire(e),s.onMouseLeave=e=>this._onMouseLeave.fire(e),s.onMouseDown=e=>this._onMouseDown.fire(e),s.onMouseUp=e=>this._onMouseUp.fire(e),s.onMouseDrag=e=>this._onMouseDrag.fire(e),s.onMouseDrop=e=>this._onMouseDrop.fire(e),s.onMouseDropCanceled=e=>this._onMouseDropCanceled.fire(e),s.onMouseWheel=e=>this._onMouseWheel.fire(e),[new pQ(t,this._configuration,this._themeService.getColorTheme(),e,s,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e?.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){if(this._contributionsDisposable?.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;let 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 null!==this._modelData}showDropIndicatorAt(e){let t=[{range:new OQ.e(e.lineNumber,e.column,e.lineNumber,e.column),options:eH.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(e,t){this._contextKeyService.createKey(e,t)}_beginUpdate(){this._updateCounter++,1===this._updateCounter&&this._onBeginUpdate.fire()}_endUpdate(){this._updateCounter--,0===this._updateCounter&&this._onEndUpdate.fire()}};GA=eH=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([GO(3,Oe.TG),GO(4,Ot),GO(5,OO),GO(6,Oo.i6),GO(7,As.XE),GO(8,AA),GO(9,Nu),GO(10,OJ.c_),GO(11,Oj.ILanguageFeaturesService)],GA);let Go=0;class GN{constructor(e,t,s,x,E,a){this.model=e,this.viewModel=t,this.view=s,this.hasRealView=x,this.listenersToRemove=E,this.attachedView=a}dispose(){(0,TD.B9)(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}}class GI extends TD.JT{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new T0.Q5(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new T0.Q5(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){let t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())}}class Gh extends T0.Q5{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}}class GL extends TD.JT{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=eG.editorSimpleInput.bindTo(t),this._editorFocus=eG.focus.bindTo(t),this._textInputFocus=eG.textInputFocus.bindTo(t),this._editorTextFocus=eG.editorTextFocus.bindTo(t),this._tabMovesFocus=eG.tabMovesFocus.bindTo(t),this._editorReadonly=eG.readOnly.bindTo(t),this._inDiffEditor=eG.inDiffEditor.bindTo(t),this._editorColumnSelection=eG.columnSelection.bindTo(t),this._hasMultipleSelections=eG.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=eG.hasNonEmptySelection.bindTo(t),this._canUndo=eG.canUndo.bindTo(t),this._canRedo=eG.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(Pn.onDidChangeTabFocus(e=>this._tabMovesFocus.set(e))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){let e=this._editor.getOptions();this._tabMovesFocus.set(Pn.getTabFocusMode()),this._editorReadonly.set(e.get(92)),this._inDiffEditor.set(e.get(61)),this._editorColumnSelection.set(e.get(22))}_updateFromSelection(){let e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(e=>!e.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){let e=this._editor.getModel();this._canUndo.set(!!(e&&e.canUndo())),this._canRedo.set(!!(e&&e.canRedo()))}}class GC extends TD.JT{constructor(e,t,s){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=s,this._langId=eG.languageId.bindTo(t),this._hasCompletionItemProvider=eG.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=eG.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=eG.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=eG.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=eG.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=eG.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=eG.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=eG.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=eG.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=eG.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=eG.hasReferenceProvider.bindTo(t),this._hasRenameProvider=eG.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=eG.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=eG.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=eG.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=eG.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=eG.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=eG.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInEmbeddedEditor=eG.isInEmbeddedEditor.bindTo(t);let x=()=>this._update();this._register(e.onDidChangeModel(x)),this._register(e.onDidChangeModelLanguage(x)),this._register(s.completionProvider.onDidChange(x)),this._register(s.codeActionProvider.onDidChange(x)),this._register(s.codeLensProvider.onDidChange(x)),this._register(s.definitionProvider.onDidChange(x)),this._register(s.declarationProvider.onDidChange(x)),this._register(s.implementationProvider.onDidChange(x)),this._register(s.typeDefinitionProvider.onDidChange(x)),this._register(s.hoverProvider.onDidChange(x)),this._register(s.documentHighlightProvider.onDidChange(x)),this._register(s.documentSymbolProvider.onDidChange(x)),this._register(s.referenceProvider.onDidChange(x)),this._register(s.renameProvider.onDidChange(x)),this._register(s.documentFormattingEditProvider.onDidChange(x)),this._register(s.documentRangeFormattingEditProvider.onDidChange(x)),this._register(s.signatureHelpProvider.onDidChange(x)),this._register(s.inlayHintsProvider.onDidChange(x)),x()}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(){let 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===Sk.lg.walkThroughSnippet||e.uri.scheme===Sk.lg.vscodeChatCodeBlock)})}}class Gl extends TD.JT{constructor(e,t){super(),this._onChange=this._register(new T0.Q5),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(Rd(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(Rd(t)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){let e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){return this._hadFocus??!1}}class Gu{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,s){return this._editor.onDidChangeModelDecorations(s=>{this._isChangingDecorations||e.call(t,s)},s)}getRange(e){return!this._editor.hasModel()||e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e])}getRanges(){if(!this._editor.hasModel())return[];let e=this._editor.getModel(),t=[];for(let s of this._decorationIds){let x=e.getDecorationRange(s);x&&t.push(x)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){0!==this._decorationIds.length&&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(s=>{t=s.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)})}finally{this._isChangingDecorations=!1}return t}}let GD=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='"),GM=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 GP(e){return GD+encodeURIComponent(e.toString())+GM}let Gd=encodeURIComponent('<svg xmlns="http://www.w3.org/2000/svg" height="3" width="12"><g fill="'),GU=encodeURIComponent('"><circle cx="1" cy="1" r="1"/><circle cx="5" cy="1" r="1"/><circle cx="9" cy="1" r="1"/></g></svg>');(0,As.Ic)((e,t)=>{let s=e.getColor(AY.lXJ);s&&t.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${GP(s)}") repeat-x bottom left; }`);let x=e.getColor(AY.uoC);x&&t.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${GP(x)}") repeat-x bottom left; }`);let E=e.getColor(AY.c63);E&&t.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${GP(E)}") repeat-x bottom left; }`);let a=e.getColor(AY.Dut);a&&t.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${Gd+encodeURIComponent(a.toString())+GU}") no-repeat bottom left; }`);let r=e.getColor(uJ.zu);r&&t.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${r.rgba.a}; }`)});var Gp=x(53124);x(18753);class GY{static capture(e){if(0===e.getScrollTop()||e.hasPendingScrollAnimation())return new GY(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,s=0,x=e.getVisibleRanges();if(x.length>0){t=x[0].getStartPosition();let E=e.getTopForPosition(t.lineNumber,t.column);s=e.getScrollTop()-E}return new GY(e.getScrollTop(),e.getContentHeight(),t,s,e.getPosition())}constructor(e,t,s,x,E){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=s,this._visiblePositionScrollDelta=x,this._cursorPosition=E}restore(e){if((this._initialContentHeight!==e.getContentHeight()||this._initialScrollTop!==e.getScrollTop())&&this._visiblePosition){let 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;let t=e.getPosition();if(!this._cursorPosition||!t)return;let s=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+s,1)}}var GG=x(65783);function GB(e,t){let s=new TD.SL,x=e.createDecorationsCollection();return s.add((0,I0.UV)({debugName:()=>`Apply decorations from ${t.debugName}`},e=>{let s=t.read(e);x.set(s)})),s.add({dispose:()=>{x.clear()}}),s}function Gm(e,t){return e.appendChild(t),(0,TD.OF)(()=>{t.remove()})}class Gf extends TD.JT{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 Ps(e,t)),this._width=(0,I0.uh)(this,this.elementSizeObserver.getWidth()),this._height=(0,I0.uh)(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(e=>(0,I0.PS)(e=>{this._width.set(this.elementSizeObserver.getWidth(),e),this._height.set(this.elementSizeObserver.getHeight(),e)})))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){this._automaticLayout=e,e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function Gg(e,t,s){let x,E=t.get(),a=E,r=E,i=(0,I0.uh)("animatedValue",E),n=-1;return s.add((0,I0.nJ)({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(e,s)=>(e.didChange(t)&&(s.animate=s.animate||e.change),!0)},(s,_)=>{void 0!==x&&(e.cancelAnimationFrame(x),x=void 0),a=r,E=t.read(s),n=Date.now()-(_.animate?0:300),function t(){var s,_;let T=Date.now()-n;r=Math.floor((s=a,_=E-a,300===T?s+_:_*(-Math.pow(2,-10*T/300)+1)+s)),T<300?x=e.requestAnimationFrame(t):r=E,i.set(r,void 0)}()})),i}class GF extends TD.JT{constructor(e,t,s){super(),this._register(new Gy(e,s)),this._register(GV(s,{height:t.actualHeight,top:t.actualTop}))}}class GH{get afterLineNumber(){return this._afterLineNumber.get()}constructor(e,t){this._afterLineNumber=e,this.heightInPx=t,this.domNode=document.createElement("div"),this._actualTop=(0,I0.uh)(this,void 0),this._actualHeight=(0,I0.uh)(this,void 0),this.actualTop=this._actualTop,this.actualHeight=this._actualHeight,this.showInHiddenAreas=!0,this.onChange=this._afterLineNumber,this.onDomNodeTop=e=>{this._actualTop.set(e,void 0)},this.onComputedHeight=e=>{this._actualHeight.set(e,void 0)}}}class Gy{static{this._counter=0}constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId=`managedOverlayWidget-${Gy._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}function GV(e,t){return(0,I0.EH)(s=>{for(let[x,E]of Object.entries(t))E&&"object"==typeof E&&"read"in E&&(E=E.read(s)),"number"==typeof E&&(E=`${E}px`),x=x.replace(/[A-Z]/g,e=>"-"+e.toLowerCase()),e.style[x]=E})}function GX(e,t,s,x){let E=new TD.SL,a=[];return E.add((0,I0.gp)((E,r)=>{let i=t.read(E),n=new Map,_=new Map;s&&s(!0),e.changeViewZones(e=>{for(let t of a)e.removeZone(t),x?.delete(t);for(let t of(a.length=0,i)){let s=e.addZone(t);t.setZoneId&&t.setZoneId(s),a.push(s),x?.add(s),n.set(t,s)}}),s&&s(!1),r.add((0,I0.nJ)({createEmptyChangeSummary:()=>({zoneIds:[]}),handleChange(e,t){let s=_.get(e.changedObservable);return void 0!==s&&t.zoneIds.push(s),!0}},(t,x)=>{for(let e of i)e.onChange&&(_.set(e.onChange,n.get(e)),e.onChange.read(t));s&&s(!0),e.changeViewZones(e=>{for(let t of x.zoneIds)e.layoutZone(t)}),s&&s(!1)}))})),E.add({dispose(){s&&s(!0),e.changeViewZones(e=>{for(let t of a)e.removeZone(t)}),x?.clear(),s&&s(!1)}}),E}function Gb(e,t){let s=(0,Yr.dF)(t,t=>t.original.startLineNumber<=e.lineNumber);if(!s)return OQ.e.fromPositions(e);if(s.original.endLineNumberExclusive<=e.lineNumber){let t=e.lineNumber-s.original.endLineNumberExclusive+s.modified.endLineNumberExclusive;return OQ.e.fromPositions(new N0.L(t,e.column))}if(!s.innerChanges)return OQ.e.fromPositions(new N0.L(s.modified.startLineNumber,1));let x=(0,Yr.dF)(s.innerChanges,t=>t.originalRange.getStartPosition().isBeforeOrEqual(e));if(!x){let t=e.lineNumber-s.original.startLineNumber+s.modified.startLineNumber;return OQ.e.fromPositions(new N0.L(t,e.column))}if(x.originalRange.containsPosition(e))return x.modifiedRange;{var E;let t=(E=x.originalRange.getEndPosition()).lineNumber===e.lineNumber?new GG.A(0,e.column-E.column):new GG.A(e.lineNumber-E.lineNumber,e.column-1);return OQ.e.fromPositions(t.addToPosition(x.modifiedRange.getEndPosition()))}}class Gv{static create(e,t){return new Gk(e,e,t)}static createWithDisposable(e,t,s){let x=new TD.SL;return x.add(t),x.add(e),new Gk(e,x,s)}}class Gk extends Gv{constructor(e,t,s){super(),this.object=e,this._disposable=t,this._debugOwner=s,this._refCount=1,this._isDisposed=!1,this._owners=[],s&&this._addOwner(s)}_addOwner(e){e&&this._owners.push(e)}createNewRef(e){return this._refCount++,e&&this._addOwner(e),new Gw(this,e)}dispose(){this._isDisposed||(this._isDisposed=!0,this._decreaseRefCount(this._debugOwner))}_decreaseRefCount(e){if(this._refCount--,0===this._refCount&&this._disposable.dispose(),e){let t=this._owners.indexOf(e);-1!==t&&this._owners.splice(t,1)}}}class Gw extends Gv{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))}}var GW=x(1146);x(90967);var GK=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},GQ=function(e,t){return function(s,x){t(s,x,e)}};let GJ=u1("diff-review-insert",AK.l.add,(0,ch.NC)("accessibleDiffViewerInsertIcon","Icon for 'Insert' in accessible diff viewer.")),GZ=u1("diff-review-remove",AK.l.remove,(0,ch.NC)("accessibleDiffViewerRemoveIcon","Icon for 'Remove' in accessible diff viewer.")),Gz=u1("diff-review-close",AK.l.close,(0,ch.NC)("accessibleDiffViewerCloseIcon","Icon for 'Close' in accessible diff viewer.")),Gq=class extends TD.JT{static{this._ttPolicy=Ok("diffReview",{createHTML:e=>e})}constructor(e,t,s,x,E,a,r,i,n){super(),this._parentNode=e,this._visible=t,this._setVisible=s,this._canClose=x,this._width=E,this._height=a,this._diffs=r,this._models=i,this._instantiationService=n,this._state=(0,I0.Be)(this,(e,t)=>{let s=this._visible.read(e);if(this._parentNode.style.visibility=s?"visible":"hidden",!s)return null;let x=t.add(this._instantiationService.createInstance(Gj,this._diffs,this._models,this._setVisible,this._canClose)),E=t.add(this._instantiationService.createInstance(G7,this._parentNode,x,this._width,this._height,this._models));return{model:x,view:E}}).recomputeInitiallyAndOnChange(this._store)}next(){(0,I0.PS)(e=>{let t=this._visible.get();this._setVisible(!0,e),t&&this._state.get().model.nextGroup(e)})}prev(){(0,I0.PS)(e=>{this._setVisible(!0,e),this._state.get().model.previousGroup(e)})}close(){(0,I0.PS)(e=>{this._setVisible(!1,e)})}};Gq=GK([GQ(8,Oe.TG)],Gq);let Gj=class extends TD.JT{constructor(e,t,s,x,E){super(),this._diffs=e,this._models=t,this._setVisible=s,this.canClose=x,this._accessibilitySignalService=E,this._groups=(0,I0.uh)(this,[]),this._currentGroupIdx=(0,I0.uh)(this,0),this._currentElementIdx=(0,I0.uh)(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((e,t)=>this._groups.read(t)[e]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((e,t)=>this.currentGroup.read(t)?.lines[e]),this._register((0,I0.EH)(e=>{let t=this._diffs.read(e);if(!t){this._groups.set([],void 0);return}let s=function(e,t,s){let x=[];for(let E of(0,cO.mw)(e,(e,t)=>t.modified.startLineNumber-e.modified.endLineNumberExclusive<6)){let e=[];e.push(new G0);let a=new O2.z(Math.max(1,E[0].original.startLineNumber-3),Math.min(E[E.length-1].original.endLineNumberExclusive+3,t+1)),r=new O2.z(Math.max(1,E[0].modified.startLineNumber-3),Math.min(E[E.length-1].modified.endLineNumberExclusive+3,s+1));(0,cO.zy)(E,(t,s)=>{let x=new O2.z(t?t.original.endLineNumberExclusive:a.startLineNumber,s?s.original.startLineNumber:a.endLineNumberExclusive),E=new O2.z(t?t.modified.endLineNumberExclusive:r.startLineNumber,s?s.modified.startLineNumber:r.endLineNumberExclusive);x.forEach(t=>{e.push(new G3(t,E.startLineNumber+(t-x.startLineNumber)))}),s&&(s.original.forEach(t=>{e.push(new G2(s,t))}),s.modified.forEach(t=>{e.push(new G1(s,t))}))});let i=E[0].modified.join(E[E.length-1].modified),n=E[0].original.join(E[E.length-1].original);x.push(new G$(new O0.f0(i,n),e))}return x}(t,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());(0,I0.PS)(e=>{let t=this._models.getModifiedPosition();if(t){let x=s.findIndex(e=>t?.lineNumber<e.range.modified.endLineNumberExclusive);-1!==x&&this._currentGroupIdx.set(x,e)}this._groups.set(s,e)})})),this._register((0,I0.EH)(e=>{let t=this.currentElement.read(e);t?.type===ey.Deleted?this._accessibilitySignalService.playSignal(DZ.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):t?.type===ey.Added&&this._accessibilitySignalService.playSignal(DZ.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register((0,I0.EH)(e=>{let t=this.currentElement.read(e);if(t&&t.type!==ey.Header){let e=t.modifiedLineNumber??t.diff.modified.startLineNumber;this._models.modifiedSetSelection(OQ.e.fromPositions(new N0.L(e,1)))}}))}_goToGroupDelta(e,t){let s=this.groups.get();s&&!(s.length<=1)&&(0,I0.c8)(t,t=>{this._currentGroupIdx.set(GW.q.ofLength(s.length).clipCyclic(this._currentGroupIdx.get()+e),t),this._currentElementIdx.set(0,t)})}nextGroup(e){this._goToGroupDelta(1,e)}previousGroup(e){this._goToGroupDelta(-1,e)}_goToLineDelta(e){let t=this.currentGroup.get();t&&!(t.lines.length<=1)&&(0,I0.PS)(s=>{this._currentElementIdx.set(GW.q.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),s)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){let t=this.currentGroup.get();if(!t)return;let s=t.lines.indexOf(e);-1!==s&&(0,I0.PS)(e=>{this._currentElementIdx.set(s,e)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);let e=this.currentElement.get();e&&(e.type===ey.Deleted?this._models.originalReveal(OQ.e.fromPositions(new N0.L(e.originalLineNumber,1))):this._models.modifiedReveal(e.type!==ey.Header?OQ.e.fromPositions(new N0.L(e.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};Gj=GK([GQ(4,DK)],Gj),function(e){e[e.Header=0]="Header",e[e.Unchanged=1]="Unchanged",e[e.Deleted=2]="Deleted",e[e.Added=3]="Added"}(ey||(ey={}));class G${constructor(e,t){this.range=e,this.lines=t}}class G0{constructor(){this.type=ey.Header}}class G2{constructor(e,t){this.diff=e,this.originalLineNumber=t,this.type=ey.Deleted,this.modifiedLineNumber=void 0}}class G1{constructor(e,t){this.diff=e,this.modifiedLineNumber=t,this.type=ey.Added,this.originalLineNumber=void 0}}class G3{constructor(e,t){this.originalLineNumber=e,this.modifiedLineNumber=t,this.type=ey.Unchanged}}let G7=class extends TD.JT{constructor(e,t,s,x,E,a){super(),this._element=e,this._model=t,this._width=s,this._height=x,this._models=E,this._languageService=a,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";let r=document.createElement("div");r.className="diff-review-actions",this._actionBar=this._register(new h0(r)),this._register((0,I0.EH)(e=>{this._actionBar.clear(),this._model.canClose.read(e)&&this._actionBar.push(new OE("diffreview.close",(0,ch.NC)("label.close","Close"),"close-diff-review "+Oc.k.asClassName(Gz),!0,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 A5(this._content,{})),RY(this.domNode,this._scrollbar.getDomNode(),r),this._register((0,I0.EH)(e=>{this._height.read(e),this._width.read(e),this._scrollbar.scanDomNode()})),this._register((0,TD.OF)(()=>{RY(this.domNode)})),this._register(GV(this.domNode,{width:this._width,height:this._height})),this._register(GV(this._content,{width:this._width,height:this._height})),this._register((0,I0.gp)((e,t)=>{this._model.currentGroup.read(e),this._render(t)})),this._register(S5(this.domNode,"keydown",e=>{(e.equals(18)||e.equals(2066)||e.equals(530))&&(e.preventDefault(),this._model.goToNextLine()),(e.equals(16)||e.equals(2064)||e.equals(528))&&(e.preventDefault(),this._model.goToPreviousLine()),(e.equals(9)||e.equals(2057)||e.equals(521)||e.equals(1033))&&(e.preventDefault(),this._model.close()),(e.equals(10)||e.equals(3))&&(e.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(e){let t=this._models.getOriginalOptions(),s=this._models.getModifiedOptions(),x=document.createElement("div");x.className="diff-review-table",x.setAttribute("role","list"),x.setAttribute("aria-label",(0,ch.NC)("ariaLabel","Accessible Diff Viewer. Use arrow up and down to navigate.")),R0(x,s.get(50)),RY(this._content,x);let E=this._models.getOriginalModel(),a=this._models.getModifiedModel();if(!E||!a)return;let r=E.getOptions(),i=a.getOptions(),n=s.get(67),_=this._model.currentGroup.get();for(let T of _?.lines||[]){let S;if(!_)break;if(T.type===ey.Header){let e=document.createElement("div");e.className="diff-review-row",e.setAttribute("role","listitem");let t=_.range,s=this._model.currentGroupIndex.get(),x=this._model.groups.get().length,E=e=>0===e?(0,ch.NC)("no_lines_changed","no lines changed"):1===e?(0,ch.NC)("one_line_changed","1 line changed"):(0,ch.NC)("more_lines_changed","{0} lines changed",e),a=E(t.original.length),r=E(t.modified.length);e.setAttribute("aria-label",(0,ch.NC)({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",s+1,x,t.original.startLineNumber,a,t.modified.startLineNumber,r));let i=document.createElement("div");i.className="diff-review-cell diff-review-summary",i.appendChild(document.createTextNode(`${s+1}/${x}: @@ -${t.original.startLineNumber},${t.original.length} +${t.modified.startLineNumber},${t.modified.length} @@`)),e.appendChild(i),S=e}else S=this._createRow(T,n,this._width.get(),t,E,r,s,a,i);x.appendChild(S);let R=(0,I0.nK)(e=>this._model.currentElement.read(e)===T);e.add((0,I0.EH)(e=>{let t=R.read(e);S.tabIndex=t?0:-1,t&&S.focus()})),e.add(S7(S,"focus",()=>{this._model.goToLine(T)}))}this._scrollbar.scanDomNode()}_createRow(e,t,s,x,E,a,r,i,n){let _;let T=x.get(146),S=T.glyphMarginWidth+T.lineNumbersWidth,R=r.get(146),O=10+R.glyphMarginWidth+R.lineNumbersWidth,A="diff-review-row",o="",N=null;switch(e.type){case ey.Added:A="diff-review-row line-insert",o=" char-insert",N=GJ;break;case ey.Deleted:A="diff-review-row line-delete",o=" char-delete",N=GZ}let I=document.createElement("div");I.style.minWidth=s+"px",I.className=A,I.setAttribute("role","listitem"),I.ariaLevel="";let h=document.createElement("div");h.className="diff-review-cell",h.style.height=`${t}px`,I.appendChild(h);let L=document.createElement("span");L.style.width=S+"px",L.style.minWidth=S+"px",L.className="diff-review-line-number"+o,void 0!==e.originalLineNumber?L.appendChild(document.createTextNode(String(e.originalLineNumber))):L.innerText="\xa0",h.appendChild(L);let C=document.createElement("span");C.style.width=O+"px",C.style.minWidth=O+"px",C.style.paddingRight="10px",C.className="diff-review-line-number"+o,void 0!==e.modifiedLineNumber?C.appendChild(document.createTextNode(String(e.modifiedLineNumber))):C.innerText="\xa0",h.appendChild(C);let l=document.createElement("span");if(l.className="diff-review-spacer",N){let e=document.createElement("span");e.className=Oc.k.asClassName(N),e.innerText="\xa0\xa0",l.appendChild(e)}else l.innerText="\xa0\xa0";if(h.appendChild(l),void 0!==e.modifiedLineNumber){let t=this._getLineHtml(i,r,n.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);Gq._ttPolicy&&(t=Gq._ttPolicy.createHTML(t)),h.insertAdjacentHTML("beforeend",t),_=i.getLineContent(e.modifiedLineNumber)}else{let t=this._getLineHtml(E,x,a.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);Gq._ttPolicy&&(t=Gq._ttPolicy.createHTML(t)),h.insertAdjacentHTML("beforeend",t),_=E.getLineContent(e.originalLineNumber)}0===_.length&&(_=(0,ch.NC)("blankLine","blank"));let u="";switch(e.type){case ey.Unchanged:u=e.originalLineNumber===e.modifiedLineNumber?(0,ch.NC)({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",_,e.originalLineNumber):(0,ch.NC)("equalLine","{0} original line {1} modified line {2}",_,e.originalLineNumber,e.modifiedLineNumber);break;case ey.Added:u=(0,ch.NC)("insertLine","+ {0} modified line {1}",_,e.modifiedLineNumber);break;case ey.Deleted:u=(0,ch.NC)("deleteLine","- {0} original line {1}",_,e.originalLineNumber)}return I.setAttribute("aria-label",u),I}_getLineHtml(e,t,s,x,E){let a=e.getLineContent(x),r=t.get(50),i=NO.A.createEmpty(a,E),n=Mk.isBasicASCII(a,e.mightContainNonBasicASCII()),_=Mk.containsRTL(a,n,e.mightContainRTL());return MH(new MG(r.isMonospace&&!t.get(33),r.canUseHalfwidthRightwardsArrow,a,!1,n,_,0,i,[],s,0,r.spaceWidth,r.middotWidth,r.wsmiddotWidth,t.get(118),t.get(100),t.get(95),t.get(51)!==cb.OFF,null)).html}};G7=GK([GQ(5,NS.O)],G7);class G5{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(){return this.editors.modified.getPosition()??void 0}}(0,AY.P6G)("diffEditor.move.border","#8b8b8b9c",(0,ch.NC)("diffEditor.move.border","The border color for text that got moved in the diff editor.")),(0,AY.P6G)("diffEditor.moveActive.border","#FFA500",(0,ch.NC)("diffEditor.moveActive.border","The active border color for text that got moved in the diff editor.")),(0,AY.P6G)("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},(0,ch.NC)("diffEditor.unchangedRegionShadow","The color of the shadow around unchanged region widgets."));let G4=u1("diff-insert",AK.l.add,(0,ch.NC)("diffInsertIcon","Line decoration for inserts in the diff editor.")),G6=u1("diff-remove",AK.l.remove,(0,ch.NC)("diffRemoveIcon","Line decoration for removals in the diff editor.")),G8=p6.qx.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+Oc.k.asClassName(G4),marginClassName:"gutter-insert"}),G9=p6.qx.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+Oc.k.asClassName(G6),marginClassName:"gutter-delete"}),Be=p6.qx.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),Bt=p6.qx.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),Bs=p6.qx.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),Bx=p6.qx.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),BE=p6.qx.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),Ba=p6.qx.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),Br=p6.qx.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),Bi=p6.qx.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"});var Bn=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},B_=function(e,t){return function(s,x){t(s,x,e)}};let Bc=(0,Oe.yh)("diffProviderFactoryService"),BT=class{constructor(e){this.instantiationService=e}createDiffProvider(e){return this.instantiationService.createInstance(BS,e)}};BT=Bn([B_(0,Oe.TG)],BT),(0,AE.z)(Bc,BT,1);let BS=class{static{eV=this}static{this.diffCache=new Map}constructor(e,t,s){this.editorWorkerService=t,this.telemetryService=s,this.onDidChangeEventEmitter=new T0.Q5,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(e)}dispose(){this.diffAlgorithmOnDidChangeSubscription?.dispose()}async computeDiff(e,t,s,x){if("string"!=typeof this.diffAlgorithm)return this.diffAlgorithm.computeDiff(e,t,s,x);if(e.isDisposed()||t.isDisposed())return{changes:[],identical:!0,quitEarly:!1,moves:[]};if(1===e.getLineCount()&&1===e.getLineMaxColumn(1))return 1===t.getLineCount()&&1===t.getLineMaxColumn(1)?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new O0.gB(new O2.z(1,2),new O2.z(1,t.getLineCount()+1),[new O0.iy(e.getFullModelRange(),t.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};let E=JSON.stringify([e.uri.toString(),t.uri.toString()]),a=JSON.stringify([e.id,t.id,e.getAlternativeVersionId(),t.getAlternativeVersionId(),JSON.stringify(s)]),r=eV.diffCache.get(E);if(r&&r.context===a)return r.result;let i=Oq.G.create(),n=await this.editorWorkerService.computeDiff(e.uri,t.uri,s,this.diffAlgorithm),_=i.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:_,timedOut:n?.quitEarly??!0,detectedMoves:s.computeMoves?n?.moves.length??0:-1}),x.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!n)throw Error("no diff result available");return eV.diffCache.size>10&&eV.diffCache.delete(eV.diffCache.keys().next().value),eV.diffCache.set(E,{result:n,context:a}),n}setOptions(e){let t=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&(this.diffAlgorithmOnDidChangeSubscription?.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,"string"!=typeof e.diffAlgorithm&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),t=!0),t&&this.onDidChangeEventEmitter.fire()}};BS=eV=Bn([B_(1,Li.IEditorWorkerService),B_(2,Op)],BS);var BR=x(90943);function BO(){return BR.OB&&!!BR.OB.VSCODE_DEV}function BA(e){if(!BO())return{dispose(){}};{let t=function(){N||(N=new Set);let e=globalThis;return e.$hotReload_applyNewExports||(e.$hotReload_applyNewExports=e=>{let t={config:{mode:void 0},...e},s=[];for(let e of N){let x=e(t);x&&s.push(x)}if(s.length>0)return e=>{let t=!1;for(let x of s)x(e)&&(t=!0);return t}}),N}();return t.add(e),{dispose(){t.delete(e)}}}}function Bo(e,t){var s;return s=[e],BO()&&(0,I0.aq)("reload",e=>BA(({oldExports:t})=>{if([...Object.values(t)].some(e=>s.includes(e)))return t=>(e(void 0),!0)})).read(t),e}BO()&&BA(({oldExports:e,newSrc:t,config:s})=>{if("patch-prototype"===s.mode)return t=>{for(let s in t){let x=t[s];if(console.log(`[hot-reload] Patching prototype methods of '${s}'`,{exportedItem:x}),"function"==typeof x&&x.prototype){let E=e[s];if(E){for(let e of Object.getOwnPropertyNames(x.prototype)){let t=Object.getOwnPropertyDescriptor(x.prototype,e),a=Object.getOwnPropertyDescriptor(E.prototype,e);t?.value?.toString()!==a?.value?.toString()&&console.log(`[hot-reload] Patching prototype method '${s}.${e}'`),Object.defineProperty(E.prototype,e,t)}t[s]=E}}}return!0}});var BN=x(12175),BI=x(25497),Bh=x(42193),BL=x(64728);let BC=class extends TD.JT{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,s){super(),this.model=e,this._options=t,this._diffProviderFactoryService=s,this._isDiffUpToDate=(0,I0.uh)(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=(0,I0.uh)(this,void 0),this.diff=this._diff,this._unchangedRegions=(0,I0.uh)(this,void 0),this.unchangedRegions=(0,I0.nK)(this,e=>this._options.hideUnchangedRegions.read(e)?this._unchangedRegions.read(e)?.regions??[]:((0,I0.PS)(e=>{for(let t of this._unchangedRegions.get()?.regions||[])t.collapseAll(e)}),[])),this.movedTextToCompare=(0,I0.uh)(this,void 0),this._activeMovedText=(0,I0.uh)(this,void 0),this._hoveredMovedText=(0,I0.uh)(this,void 0),this.activeMovedText=(0,I0.nK)(this,e=>this.movedTextToCompare.read(e)??this._hoveredMovedText.read(e)??this._activeMovedText.read(e)),this._cancellationTokenSource=new NH.AU,this._diffProvider=(0,I0.nK)(this,e=>{let t=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(e)}),s=(0,I0.aq)("onDidChange",t.onDidChange);return{diffProvider:t,onChangeSignal:s}}),this._register((0,TD.OF)(()=>this._cancellationTokenSource.cancel()));let x=(0,I0.GN)("contentChangedSignal"),E=this._register(new T$.pY(()=>x.trigger(void 0),200));this._register((0,I0.EH)(t=>{let s=this._unchangedRegions.read(t);if(!s||s.regions.some(e=>e.isDragged.read(t)))return;let x=s.originalDecorationIds.map(t=>e.original.getDecorationRange(t)).map(e=>e?O2.z.fromRangeInclusive(e):void 0),E=s.modifiedDecorationIds.map(t=>e.modified.getDecorationRange(t)).map(e=>e?O2.z.fromRangeInclusive(e):void 0),a=s.regions.map((e,s)=>x[s]&&E[s]?new BD(x[s].startLineNumber,E[s].startLineNumber,x[s].length,e.visibleLineCountTop.read(t),e.visibleLineCountBottom.read(t)):void 0).filter(OR.$K),r=[],i=!1;for(let e of(0,cO.mw)(a,(e,s)=>e.getHiddenModifiedRange(t).endLineNumberExclusive===s.getHiddenModifiedRange(t).startLineNumber))if(e.length>1){i=!0;let t=e.reduce((e,t)=>e+t.lineCount,0),s=new BD(e[0].originalLineNumber,e[0].modifiedLineNumber,t,e[0].visibleLineCountTop.get(),e[e.length-1].visibleLineCountBottom.get());r.push(s)}else r.push(e[0]);if(i){let t=e.original.deltaDecorations(s.originalDecorationIds,r.map(e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),x=e.modified.deltaDecorations(s.modifiedDecorationIds,r.map(e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));(0,I0.PS)(e=>{this._unchangedRegions.set({regions:r,originalDecorationIds:t,modifiedDecorationIds:x},e)})}}));let a=(t,s,x)=>{let E;let a=BD.fromDiffs(t.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(x),this._options.hideUnchangedRegionsContextLineCount.read(x)),r=this._unchangedRegions.get();if(r){let t=r.originalDecorationIds.map(t=>e.original.getDecorationRange(t)).map(e=>e?O2.z.fromRangeInclusive(e):void 0),s=r.modifiedDecorationIds.map(t=>e.modified.getDecorationRange(t)).map(e=>e?O2.z.fromRangeInclusive(e):void 0),a=(function(e,t){let s;return e.filter(e=>{let x=t(e,s);return s=e,x})})(r.regions.map((e,x)=>{if(!t[x]||!s[x])return;let E=t[x].length;return new BD(t[x].startLineNumber,s[x].startLineNumber,E,Math.min(e.visibleLineCountTop.get(),E),Math.min(e.visibleLineCountBottom.get(),E-e.visibleLineCountTop.get()))}).filter(OR.$K),(e,t)=>!t||e.modifiedLineNumber>=t.modifiedLineNumber+t.lineCount&&e.originalLineNumber>=t.originalLineNumber+t.lineCount).map(e=>new O0.f0(e.getHiddenOriginalRange(x),e.getHiddenModifiedRange(x)));a=O0.f0.clip(a,O2.z.ofLength(1,e.original.getLineCount()),O2.z.ofLength(1,e.modified.getLineCount())),E=O0.f0.inverse(a,e.original.getLineCount(),e.modified.getLineCount())}let i=[];if(E)for(let e of a){let t=E.filter(t=>t.original.intersectsStrict(e.originalUnchangedRange)&&t.modified.intersectsStrict(e.modifiedUnchangedRange));i.push(...e.setVisibleRanges(t,s))}else i.push(...a);let n=e.original.deltaDecorations(r?.originalDecorationIds||[],i.map(e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),_=e.modified.deltaDecorations(r?.modifiedDecorationIds||[],i.map(e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:i,originalDecorationIds:n,modifiedDecorationIds:_},s)};this._register(e.modified.onDidChangeContent(t=>{if(this._diff.get()){let s=BI.Q.fromModelContentChanges(t.changes),x=BP(this._lastDiff,s,e.original,e.modified);x&&(this._lastDiff=x,(0,I0.PS)(e=>{this._diff.set(Bl.fromDiffResult(this._lastDiff),e),a(x,e);let t=this.movedTextToCompare.get();this.movedTextToCompare.set(t?this._lastDiff.moves.find(e=>e.lineRangeMapping.modified.intersect(t.lineRangeMapping.modified)):void 0,e)}))}this._isDiffUpToDate.set(!1,void 0),E.schedule()})),this._register(e.original.onDidChangeContent(t=>{if(this._diff.get()){let s=BI.Q.fromModelContentChanges(t.changes),x=BM(this._lastDiff,s,e.original,e.modified);x&&(this._lastDiff=x,(0,I0.PS)(e=>{this._diff.set(Bl.fromDiffResult(this._lastDiff),e),a(x,e);let t=this.movedTextToCompare.get();this.movedTextToCompare.set(t?this._lastDiff.moves.find(e=>e.lineRangeMapping.modified.intersect(t.lineRangeMapping.modified)):void 0,e)}))}this._isDiffUpToDate.set(!1,void 0),E.schedule()})),this._register((0,I0.gp)(async(t,s)=>{this._options.hideUnchangedRegionsMinimumLineCount.read(t),this._options.hideUnchangedRegionsContextLineCount.read(t),E.cancel(),x.read(t);let r=this._diffProvider.read(t);r.onChangeSignal.read(t),Bo(BN.DW,t),Bo(BL.xG,t),this._isDiffUpToDate.set(!1,void 0);let i=[];s.add(e.original.onDidChangeContent(e=>{let t=BI.Q.fromModelContentChanges(e.changes);i=(0,Bh.o)(i,t)}));let n=[];s.add(e.modified.onDidChangeContent(e=>{let t=BI.Q.fromModelContentChanges(e.changes);n=(0,Bh.o)(n,t)}));let _=await r.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(t),maxComputationTimeMs:this._options.maxComputationTimeMs.read(t),computeMoves:this._options.showMoves.read(t)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||e.original.isDisposed()||e.modified.isDisposed()||(_=BP(_=BM(_=function(e,t,s){return{changes:e.changes.map(e=>new O0.gB(e.original,e.modified,e.innerChanges?e.innerChanges.map(e=>{let x,E;return x=e.originalRange,E=e.modifiedRange,1===x.startColumn&&1===E.startColumn&&(1!==x.endColumn||1!==E.endColumn)&&x.endColumn===t.getLineMaxColumn(x.endLineNumber)&&E.endColumn===s.getLineMaxColumn(E.endLineNumber)&&x.endLineNumber<t.getLineCount()&&E.endLineNumber<s.getLineCount()&&(x=x.setEndPosition(x.endLineNumber+1,1),E=E.setEndPosition(E.endLineNumber+1,1)),new O0.iy(x,E)}):void 0)),moves:e.moves,identical:e.identical,quitEarly:e.quitEarly}}(_,e.original,e.modified),i,e.original,e.modified)??_,n,e.original,e.modified)??_,(0,I0.PS)(e=>{a(_,e),this._lastDiff=_;let t=Bl.fromDiffResult(_);this._diff.set(t,e),this._isDiffUpToDate.set(!0,e);let s=this.movedTextToCompare.get();this.movedTextToCompare.set(s?this._lastDiff.moves.find(e=>e.lineRangeMapping.modified.intersect(s.lineRangeMapping.modified)):void 0,e)}))}))}ensureModifiedLineIsVisible(e,t,s){if(this.diff.get()?.mappings.length!==0){for(let x of this._unchangedRegions.get()?.regions||[])if(x.getHiddenModifiedRange(void 0).contains(e)){x.showModifiedLine(e,t,s);return}}}ensureOriginalLineIsVisible(e,t,s){if(this.diff.get()?.mappings.length!==0){for(let x of this._unchangedRegions.get()?.regions||[])if(x.getHiddenOriginalRange(void 0).contains(e)){x.showOriginalLine(e,t,s);return}}}async waitForDiff(){await (0,I0.F_)(this.isDiffUpToDate,e=>e)}serializeState(){let e=this._unchangedRegions.get();return{collapsedRegions:e?.regions.map(e=>({range:e.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(e){let t=e.collapsedRegions?.map(e=>O2.z.deserialize(e.range)),s=this._unchangedRegions.get();s&&t&&(0,I0.PS)(e=>{for(let x of s.regions)for(let s of t)if(x.modifiedUnchangedRange.intersect(s)){x.setHiddenModifiedRange(s,e);break}})}};BC=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([function(e,t){Bc(e,t,2)}],BC);class Bl{static fromDiffResult(e){return new Bl(e.changes.map(e=>new Bu(e)),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,s,x){this.mappings=e,this.movedTexts=t,this.identical=s,this.quitEarly=x}}class Bu{constructor(e){this.lineRangeMapping=e}}class BD{static fromDiffs(e,t,s,x,E){let a=O0.gB.inverse(e,t,s),r=[];for(let e of a){let a=e.original.startLineNumber,i=e.modified.startLineNumber,n=e.original.length,_=1===a&&1===i,T=a+n===t+1&&i+n===s+1;(_||T)&&n>=E+x?(_&&!T&&(n-=E),T&&!_&&(a+=E,i+=E,n-=E),r.push(new BD(a,i,n,0,0))):n>=2*E+x&&(a+=E,i+=E,n-=2*E,r.push(new BD(a,i,n,0,0)))}return r}get originalUnchangedRange(){return O2.z.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return O2.z.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,s,x,E){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=s,this._visibleLineCountTop=(0,I0.uh)(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=(0,I0.uh)(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=(0,I0.nK)(this,e=>this.visibleLineCountTop.read(e)+this.visibleLineCountBottom.read(e)===this.lineCount&&!this.isDragged.read(e)),this.isDragged=(0,I0.uh)(this,void 0);let a=Math.max(Math.min(x,this.lineCount),0),r=Math.max(Math.min(E,this.lineCount-x),0);(0,pz.wN)(x===a),(0,pz.wN)(E===r),this._visibleLineCountTop.set(a,void 0),this._visibleLineCountBottom.set(r,void 0)}setVisibleRanges(e,t){let s=[],x=new O2.i(e.map(e=>e.modified)).subtractFrom(this.modifiedUnchangedRange),E=this.originalLineNumber,a=this.modifiedLineNumber,r=this.modifiedLineNumber+this.lineCount;if(0===x.ranges.length)this.showAll(t),s.push(this);else{let e=0;for(let i of x.ranges){let n=e===x.ranges.length-1;e++;let _=(n?r:i.endLineNumberExclusive)-a,T=new BD(E,a,_,0,0);T.setHiddenModifiedRange(i,t),s.push(T),E=T.originalUnchangedRange.endLineNumberExclusive,a=T.modifiedUnchangedRange.endLineNumberExclusive}}return s}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return O2.z.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return O2.z.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){let s=e.startLineNumber-this.modifiedLineNumber,x=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(s,x,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(e=10,t){let s=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,s),t)}showMoreBelow(e=10,t){let s=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,s),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t,s){let x=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),E=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;0===t&&x<E||1===t?this._visibleLineCountTop.set(this._visibleLineCountTop.get()+x,s):this._visibleLineCountBottom.set(this._visibleLineCountBottom.get()+E,s)}showOriginalLine(e,t,s){let x=e-this.originalLineNumber,E=this.originalLineNumber+this.lineCount-e;0===t&&x<E||1===t?this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+E-x,this.getMaxVisibleLineCountTop()),s):this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+x-E,this.getMaxVisibleLineCountBottom()),s)}collapseAll(e){this._visibleLineCountTop.set(0,e),this._visibleLineCountBottom.set(0,e)}setState(e,t,s){e=Math.max(Math.min(e,this.lineCount),0),t=Math.max(Math.min(t,this.lineCount-e),0),this._visibleLineCountTop.set(e,s),this._visibleLineCountBottom.set(t,s)}}function BM(e,t,s,x){}function BP(e,t,s,x){}class Bd extends TD.JT{get visibility(){return this._visibility}set visibility(e){this._visibility!==e&&(this._visibility=e,this._diffActions.style.visibility=e?"visible":"hidden")}constructor(e,t,s,x,E,a,r,i,n){super(),this._getViewZoneId=e,this._marginDomNode=t,this._modifiedEditor=s,this._diff=x,this._editor=E,this._viewLineCounts=a,this._originalTextModel=r,this._contextMenuService=i,this._clipboardService=n,this._visibility=!1,this._marginDomNode.style.zIndex="10",this._diffActions=document.createElement("div"),this._diffActions.className=Oc.k.asClassName(AK.l.lightBulb)+" lightbulb-glyph",this._diffActions.style.position="absolute";let _=this._modifiedEditor.getOption(67);this._diffActions.style.right="0px",this._diffActions.style.visibility="hidden",this._diffActions.style.height=`${_}px`,this._diffActions.style.lineHeight=`${_}px`,this._marginDomNode.appendChild(this._diffActions);let T=0,S=s.getOption(128)&&!co.gn,R=(e,t)=>{this._contextMenuService.showContextMenu({domForShadowRoot:S?s.getDomNode()??void 0:void 0,getAnchor:()=>({x:e,y:t}),getActions:()=>{let e=[],t=x.modified.isEmpty;return e.push(new OE("diff.clipboard.copyDeletedContent",t?x.original.length>1?(0,ch.NC)("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):(0,ch.NC)("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):x.original.length>1?(0,ch.NC)("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):(0,ch.NC)("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,async()=>{let e=this._originalTextModel.getValueInRange(x.original.toExclusiveRange());await this._clipboardService.writeText(e)})),x.original.length>1&&e.push(new OE("diff.clipboard.copyDeletedLineContent",t?(0,ch.NC)("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",x.original.startLineNumber+T):(0,ch.NC)("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",x.original.startLineNumber+T),void 0,!0,async()=>{let e=this._originalTextModel.getLineContent(x.original.startLineNumber+T);""===e&&(e=0===this._originalTextModel.getEndOfLineSequence()?"\n":"\r\n"),await this._clipboardService.writeText(e)})),s.getOption(92)||e.push(new OE("diff.inline.revertChange",(0,ch.NC)("diff.inline.revertChange.label","Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),e},autoSelectFirstItem:!0})};this._register(S5(this._diffActions,"mousedown",e=>{if(!e.leftButton)return;let{top:t,height:s}=Rx(this._diffActions),x=Math.floor(_/3);e.preventDefault(),R(e.posx,t+s+x)})),this._register(s.onMouseMove(e=>{(8===e.target.type||5===e.target.type)&&e.target.detail.viewZoneId===this._getViewZoneId()?(T=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,_),this.visibility=!0):this.visibility=!1})),this._register(s.onMouseDown(e=>{e.event.leftButton&&(8===e.target.type||5===e.target.type)&&e.target.detail.viewZoneId===this._getViewZoneId()&&(e.event.preventDefault(),T=this._updateLightBulbPosition(this._marginDomNode,e.event.browserEvent.y,_),R(e.event.posx,e.event.posy+_))}))}_updateLightBulbPosition(e,t,s){let{top:x}=Rx(e),E=Math.floor((t-x)/s);if(this._diffActions.style.top=`${E*s}px`,this._viewLineCounts){let e=0;for(let t=0;t<this._viewLineCounts.length;t++)if(E<(e+=this._viewLineCounts[t]))return t}return E}}let BU=Ok("diffEditorWidget",{createHTML:e=>e});class Bp{constructor(e,t,s,x){this.lineTokens=e,this.lineBreakData=t,this.mightContainNonBasicASCII=s,this.mightContainRTL=x}}class BY{static fromEditor(e){let t=e.getOptions(),s=t.get(50),x=t.get(146);return new BY(e.getModel()?.getOptions().tabSize||0,s,t.get(33),s.typicalHalfwidthCharacterWidth,t.get(105),t.get(67),x.decorationsWidth,t.get(118),t.get(100),t.get(95),t.get(51))}constructor(e,t,s,x,E,a,r,i,n,_,T){this.tabSize=e,this.fontInfo=t,this.disableMonospaceOptimizations=s,this.typicalHalfwidthCharacterWidth=x,this.scrollBeyondLastColumn=E,this.lineHeight=a,this.lineDecorationsWidth=r,this.stopRenderingLineAfter=i,this.renderWhitespace=n,this.renderControlCharacters=_,this.fontLigatures=T}}function BG(e,t,s,x,E,a,r,i){i.appendString('<div class="view-line'),x||i.appendString(" char-delete"),i.appendString('" style="top:'),i.appendString(String(e*r.lineHeight)),i.appendString('px;width:1000000px;">');let n=t.getLineContent(),_=Mk.isBasicASCII(n,E),T=Mk.containsRTL(n,_,a),S=Mg(new MG(r.fontInfo.isMonospace&&!r.disableMonospaceOptimizations,r.fontInfo.canUseHalfwidthRightwardsArrow,n,!1,_,T,0,t,s,r.tabSize,0,r.fontInfo.spaceWidth,r.fontInfo.middotWidth,r.fontInfo.wsmiddotWidth,r.stopRenderingLineAfter,r.renderWhitespace,r.renderControlCharacters,r.fontLigatures!==cb.OFF,null),i);return i.appendString("</div>"),S.characterMapping.getHorizontalOffset(S.characterMapping.length)}var BB=function(e,t){return function(s,x){t(s,x,e)}};let Bm=class extends TD.JT{constructor(e,t,s,x,E,a,r,i,n,_){super(),this._targetWindow=e,this._editors=t,this._diffModel=s,this._options=x,this._diffEditorWidget=E,this._canIgnoreViewZoneUpdateEvent=a,this._origViewZonesToIgnore=r,this._modViewZonesToIgnore=i,this._clipboardService=n,this._contextMenuService=_,this._originalTopPadding=(0,I0.uh)(this,0),this._originalScrollOffset=(0,I0.uh)(this,0),this._originalScrollOffsetAnimated=Gg(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=(0,I0.uh)(this,0),this._modifiedScrollOffset=(0,I0.uh)(this,0),this._modifiedScrollOffsetAnimated=Gg(this._targetWindow,this._modifiedScrollOffset,this._store);let T=(0,I0.uh)("invalidateAlignmentsState",0),S=this._register(new T$.pY(()=>{T.set(T.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(e=>{this._canIgnoreViewZoneUpdateEvent()||S.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(e=>{this._canIgnoreViewZoneUpdateEvent()||S.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(e=>{(e.hasChanged(147)||e.hasChanged(67))&&S.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(e=>{(e.hasChanged(147)||e.hasChanged(67))&&S.schedule()}));let R=this._diffModel.map(e=>e?(0,I0.rD)(this,e.model.original.onDidChangeTokens,()=>2===e.model.original.tokenization.backgroundTokenizationState):void 0).map((e,t)=>e?.read(t)),O=(0,I0.nK)(e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);if(!t||!s)return null;T.read(e);let x=this._options.renderSideBySide.read(e);return Bf(this._editors.original,this._editors.modified,s.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,x)}),A=(0,I0.nK)(e=>{let t=this._diffModel.read(e)?.movedTextToCompare.read(e);if(!t)return null;T.read(e);let s=t.changes.map(e=>new Bu(e));return Bf(this._editors.original,this._editors.modified,s,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function o(){let e=document.createElement("div");return e.className="diagonal-fill",e}let N=this._register(new TD.SL);this.viewZones=(0,I0.Be)(this,(e,t)=>{N.clear();let s=O.read(e)||[],x=[],a=[],r=this._modifiedTopPadding.read(e);r>0&&a.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:r,showInHiddenAreas:!0,suppressMouseDown:!0});let i=this._originalTopPadding.read(e);i>0&&x.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:i,showInHiddenAreas:!0,suppressMouseDown:!0});let n=this._options.renderSideBySide.read(e),_=n?void 0:this._editors.modified._getViewModel()?.createLineBreaksComputer();if(_){let e=this._editors.original.getModel();for(let t of s)if(t.diff)for(let s=t.originalRange.startLineNumber;s<t.originalRange.endLineNumberExclusive;s++){if(s>e.getLineCount())return{orig:x,mod:a};_?.addRequest(e.getLineContent(s),null,null)}}let T=_?.finalize()??[],S=0,I=this._editors.modified.getOption(67),h=this._diffModel.read(e)?.movedTextToCompare.read(e),L=this._editors.original.getModel()?.mightContainNonBasicASCII()??!1,C=this._editors.original.getModel()?.mightContainRTL()??!1,l=BY.fromEditor(this._editors.modified);for(let r of s)if(!r.diff||n||this._options.useTrueInlineDiffRendering.read(e)&&BF(r.diff)){let s=r.modifiedHeightInPx-r.originalHeightInPx;if(s>0){if(h?.lineRangeMapping.original.delta(-1).deltaLength(2).contains(r.originalRange.endLineNumberExclusive-1))continue;x.push({afterLineNumber:r.originalRange.endLineNumberExclusive-1,domNode:o(),heightInPx:s,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let x;if(h?.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(r.modifiedRange.endLineNumberExclusive-1))continue;r.diff&&r.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(e)&&(x=function(){let e=document.createElement("div");return e.className="arrow-revert-change "+Oc.k.asClassName(AK.l.arrowRight),t.add(S7(e,"mousedown",e=>e.stopPropagation())),t.add(S7(e,"click",e=>{e.stopPropagation(),E.revert(r.diff)})),Rm("div",{},e)}()),a.push({afterLineNumber:r.modifiedRange.endLineNumberExclusive-1,domNode:o(),heightInPx:-s,marginDomNode:x,showInHiddenAreas:!0,suppressMouseDown:!0})}}else{if(!r.originalRange.isEmpty){let t;R.read(e);let s=document.createElement("div");s.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");let E=this._editors.original.getModel();if(r.originalRange.endLineNumberExclusive-1>E.getLineCount())return{orig:x,mod:a};let i=new Bp(r.originalRange.mapToLineArray(e=>E.tokenization.getLineTokens(e)),r.originalRange.mapToLineArray(e=>T[S++]),L,C),n=[];for(let e of r.diff.innerChanges||[])n.push(new Mw(e.originalRange.delta(-(r.diff.original.startLineNumber-1)),Ba.className,0));let _=function(e,t,s,x){R0(x,t.fontInfo);let E=s.length>0,a=new MD.HT(1e4),r=0,i=0,n=[];for(let x=0;x<e.lineTokens.length;x++){let _=x+1,T=e.lineTokens[x],S=e.lineBreakData[x],R=MM.filter(s,_,1,Number.MAX_SAFE_INTEGER);if(S){let s=0;for(let x of S.breakOffsets)r=Math.max(r,BG(i,T.sliceAndInflate(s,x,0),MM.extractWrapped(R,s,x),E,e.mightContainNonBasicASCII,e.mightContainRTL,t,a)),i++,s=x;n.push(S.breakOffsets.length)}else n.push(1),r=Math.max(r,BG(i,T,R,E,e.mightContainNonBasicASCII,e.mightContainRTL,t,a)),i++}r+=t.scrollBeyondLastColumn;let _=a.build(),T=BU?BU.createHTML(_):_;return x.innerHTML=T,{heightInLines:i,minWidthInPx:r*t.typicalHalfwidthCharacterWidth,viewLineCounts:n}}(i,l,n,s),O=document.createElement("div");if(O.className="inline-deleted-margin-view-zone",R0(O,l.fontInfo),this._options.renderIndicators.read(e))for(let e=0;e<_.heightInLines;e++){let t=document.createElement("div");t.className=`delete-sign ${Oc.k.asClassName(G6)}`,t.setAttribute("style",`position:absolute;top:${e*I}px;width:${l.lineDecorationsWidth}px;height:${I}px;right:0;`),O.appendChild(t)}N.add(new Bd(()=>(0,OR.cW)(t),O,this._editors.modified,r.diff,this._diffEditorWidget,_.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let e=0;e<_.viewLineCounts.length;e++){let t=_.viewLineCounts[e];t>1&&x.push({afterLineNumber:r.originalRange.startLineNumber+e,domNode:o(),heightInPx:(t-1)*I,showInHiddenAreas:!0,suppressMouseDown:!0})}a.push({afterLineNumber:r.modifiedRange.startLineNumber-1,domNode:s,heightInPx:_.heightInLines*I,minWidthInPx:_.minWidthInPx,marginDomNode:O,setZoneId(e){t=e},showInHiddenAreas:!0,suppressMouseDown:!0})}let t=document.createElement("div");t.className="gutter-delete",x.push({afterLineNumber:r.originalRange.endLineNumberExclusive-1,domNode:o(),heightInPx:r.modifiedHeightInPx,marginDomNode:t,showInHiddenAreas:!0,suppressMouseDown:!0})}for(let t of A.read(e)??[]){if(!h?.lineRangeMapping.original.intersect(t.originalRange)||!h?.lineRangeMapping.modified.intersect(t.modifiedRange))continue;let e=t.modifiedHeightInPx-t.originalHeightInPx;e>0?x.push({afterLineNumber:t.originalRange.endLineNumberExclusive-1,domNode:o(),heightInPx:e,showInHiddenAreas:!0,suppressMouseDown:!0}):a.push({afterLineNumber:t.modifiedRange.endLineNumberExclusive-1,domNode:o(),heightInPx:-e,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:x,mod:a}});let I=!1;this._register(this._editors.original.onDidScrollChange(e=>{e.scrollLeftChanged&&!I&&(I=!0,this._editors.modified.setScrollLeft(e.scrollLeft),I=!1)})),this._register(this._editors.modified.onDidScrollChange(e=>{e.scrollLeftChanged&&!I&&(I=!0,this._editors.original.setScrollLeft(e.scrollLeft),I=!1)})),this._originalScrollTop=(0,I0.rD)(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,I0.rD)(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register((0,I0.EH)(e=>{let t=this._originalScrollTop.read(e)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(e))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(e));t!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(t,1)})),this._register((0,I0.EH)(e=>{let t=this._modifiedScrollTop.read(e)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(e))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(e));t!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(t,1)})),this._register((0,I0.EH)(e=>{let t=this._diffModel.read(e)?.movedTextToCompare.read(e),s=0;if(t){let e=this._editors.original.getTopForLineNumber(t.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();s=this._editors.modified.getTopForLineNumber(t.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-e}s>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(s,void 0)):s<0?(this._modifiedTopPadding.set(-s,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-s,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+s,void 0,!0)}))}};function Bf(e,t,s,x,E,a){let r=new cO.H9(Bg(e,x)),i=new cO.H9(Bg(t,E)),n=e.getOption(67),_=t.getOption(67),T=[],S=0,R=0;function O(e,t){for(;;){let s=r.peek(),x=i.peek();if(s&&s.lineNumber>=e&&(s=void 0),x&&x.lineNumber>=t&&(x=void 0),!s&&!x)break;let E=s?s.lineNumber-S:Number.MAX_VALUE,a=x?x.lineNumber-R:Number.MAX_VALUE;E<a?(r.dequeue(),x={lineNumber:s.lineNumber-S+R,heightInPx:0}):E>a?(i.dequeue(),s={lineNumber:x.lineNumber-R+S,heightInPx:0}):(r.dequeue(),i.dequeue()),T.push({originalRange:O2.z.ofLength(s.lineNumber,1),modifiedRange:O2.z.ofLength(x.lineNumber,1),originalHeightInPx:n+s.heightInPx,modifiedHeightInPx:_+x.heightInPx,diff:void 0})}}for(let t of s){let s=t.lineRangeMapping;O(s.original.startLineNumber,s.modified.startLineNumber);let x=!0,E=s.modified.startLineNumber,o=s.original.startLineNumber;function A(e,s,a=!1){if(e<o||s<E)return;if(x)x=!1;else if(!a&&(e===o||s===E))return;let S=new O2.z(o,e),R=new O2.z(E,s);if(S.isEmpty&&R.isEmpty)return;let O=r.takeWhile(t=>t.lineNumber<e)?.reduce((e,t)=>e+t.heightInPx,0)??0,A=i.takeWhile(e=>e.lineNumber<s)?.reduce((e,t)=>e+t.heightInPx,0)??0;T.push({originalRange:S,modifiedRange:R,originalHeightInPx:S.length*n+O,modifiedHeightInPx:R.length*_+A,diff:t.lineRangeMapping}),o=e,E=s}if(a)for(let t of s.innerChanges||[]){t.originalRange.startColumn>1&&t.modifiedRange.startColumn>1&&A(t.originalRange.startLineNumber,t.modifiedRange.startLineNumber);let s=e.getModel(),x=t.originalRange.endLineNumber<=s.getLineCount()?s.getLineMaxColumn(t.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;t.originalRange.endColumn<x&&A(t.originalRange.endLineNumber,t.modifiedRange.endLineNumber)}A(s.original.endLineNumberExclusive,s.modified.endLineNumberExclusive,!0),S=s.original.endLineNumberExclusive,R=s.modified.endLineNumberExclusive}return O(Number.MAX_VALUE,Number.MAX_VALUE),T}function Bg(e,t){let s=[],x=[],E=-1!==e.getOption(147).wrappingColumn,a=e._getViewModel().coordinatesConverter,r=e.getOption(67);if(E)for(let t=1;t<=e.getModel().getLineCount();t++){let e=a.getModelLineViewLineCount(t);e>1&&x.push({lineNumber:t,heightInPx:r*(e-1)})}for(let x of e.getWhitespaces()){if(t.has(x.id))continue;let e=0===x.afterLineNumber?0:a.convertViewPositionToModelPosition(new N0.L(x.afterLineNumber,1)).lineNumber;s.push({lineNumber:e,heightInPx:x.height})}return function(e,t,s,x){if(0===e.length)return t;if(0===t.length)return e;let E=[],a=0,r=0;for(;a<e.length&&r<t.length;){let i=e[a],n=t[r],_=s(i),T=s(n);_<T?(E.push(i),a++):(_>T?E.push(n):(E.push(x(i,n)),a++),r++)}for(;a<e.length;)E.push(e[a]),a++;for(;r<t.length;)E.push(t[r]),r++;return E}(s,x,e=>e.lineNumber,(e,t)=>({lineNumber:e.lineNumber,heightInPx:e.heightInPx+t.heightInPx}))}function BF(e){return!!e.innerChanges&&e.innerChanges.every(e=>BH(e.modifiedRange)&&BH(e.originalRange)||e.originalRange.equalsRange(new OQ.e(1,1,1,1)))}function BH(e){return e.startLineNumber===e.endLineNumber}Bm=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([BB(8,DC),BB(9,AF)],Bm);class By extends TD.JT{static{this.movedCodeBlockPadding=4}constructor(e,t,s,x,E){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=s,this._modifiedEditorLayoutInfo=x,this._editors=E,this._originalScrollTop=(0,I0.rD)(this,this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=(0,I0.rD)(this,this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=(0,I0.aq)("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=(0,I0.uh)(this,0),this._modifiedViewZonesChangedSignal=(0,I0.aq)("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=(0,I0.aq)("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=(0,I0.Be)(this,(e,t)=>{this._element.replaceChildren();let s=this._diffModel.read(e),x=s?.diff.read(e)?.movedTexts;if(!x||0===x.length){this.width.set(0,void 0);return}this._viewZonesChanged.read(e);let E=this._originalEditorLayoutInfo.read(e),a=this._modifiedEditorLayoutInfo.read(e);if(!E||!a){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(e),this._originalViewZonesChangedSignal.read(e);let r=x.map(t=>{function s(e,t){return(t.getTopForLineNumber(e.startLineNumber,!0)+t.getTopForLineNumber(e.endLineNumberExclusive,!0))/2}let x=s(t.lineRangeMapping.original,this._editors.original),E=this._originalScrollTop.read(e),a=s(t.lineRangeMapping.modified,this._editors.modified),r=this._modifiedScrollTop.read(e),i=x-E,n=a-r,_=Math.min(x,a),T=Math.max(x,a);return{range:new GW.q(_,T),from:i,to:n,fromWithoutScroll:x,toWithoutScroll:a,move:t}});r.sort((0,cO.f_)((0,cO.tT)(e=>e.fromWithoutScroll>e.toWithoutScroll,cO.nW),(0,cO.tT)(e=>e.fromWithoutScroll>e.toWithoutScroll?e.fromWithoutScroll:-e.toWithoutScroll,cO.fv)));let i=BV.compute(r.map(e=>e.range)),n=E.verticalScrollbarWidth,_=(i.getTrackCount()-1)*10+20,T=n+_+(a.contentLeft-By.movedCodeBlockPadding),S=0;for(let e of r){let x=n+10+10*i.getTrack(S),E=a.glyphMarginWidth+a.lineNumbersWidth,r=document.createElementNS("http://www.w3.org/2000/svg","rect");r.classList.add("arrow-rectangle"),r.setAttribute("x",`${T-E}`),r.setAttribute("y",`${e.to-9}`),r.setAttribute("width",`${E}`),r.setAttribute("height","18"),this._element.appendChild(r);let _=document.createElementNS("http://www.w3.org/2000/svg","g"),R=document.createElementNS("http://www.w3.org/2000/svg","path");R.setAttribute("d",`M 0 ${e.from} L ${x} ${e.from} L ${x} ${e.to} L ${T-15} ${e.to}`),R.setAttribute("fill","none"),_.appendChild(R);let O=document.createElementNS("http://www.w3.org/2000/svg","polygon");O.classList.add("arrow"),t.add((0,I0.EH)(t=>{R.classList.toggle("currentMove",e.move===s.activeMovedText.read(t)),O.classList.toggle("currentMove",e.move===s.activeMovedText.read(t))})),O.setAttribute("points",`${T-15},${e.to-7.5} ${T},${e.to} ${T-15},${e.to+7.5}`),_.appendChild(O),this._element.appendChild(_),S++}this.width.set(_,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register((0,TD.OF)(()=>this._element.remove())),this._register((0,I0.EH)(e=>{let t=this._originalEditorLayoutInfo.read(e),s=this._modifiedEditorLayoutInfo.read(e);t&&s&&(this._element.style.left=`${t.width-t.verticalScrollbarWidth}px`,this._element.style.height=`${t.height}px`,this._element.style.width=`${t.verticalScrollbarWidth+t.contentLeft-By.movedCodeBlockPadding+this.width.read(e)}px`)})),this._register((0,I0.jx)(this._state));let a=(0,I0.nK)(e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);return s?s.movedTexts.map(e=>({move:e,original:new GH((0,I0.Dz)(e.lineRangeMapping.original.startLineNumber-1),18),modified:new GH((0,I0.Dz)(e.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(GX(this._editors.original,a.map(e=>e.map(e=>e.original)))),this._register(GX(this._editors.modified,a.map(e=>e.map(e=>e.modified)))),this._register((0,I0.gp)((e,t)=>{for(let s of a.read(e))t.add(new BX(this._editors.original,s.original,s.move,"original",this._diffModel.get())),t.add(new BX(this._editors.modified,s.modified,s.move,"modified",this._diffModel.get()))}));let r=(0,I0.aq)("original.onDidFocusEditorWidget",e=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>e(void 0),0))),i=(0,I0.aq)("modified.onDidFocusEditorWidget",e=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>e(void 0),0))),n="modified";this._register((0,I0.nJ)({createEmptyChangeSummary:()=>void 0,handleChange:(e,t)=>(e.didChange(r)&&(n="original"),e.didChange(i)&&(n="modified"),!0)},e=>{let t;r.read(e),i.read(e);let s=this._diffModel.read(e);if(!s)return;let x=s.diff.read(e);if(x&&"original"===n){let s=this._editors.originalCursor.read(e);s&&(t=x.movedTexts.find(e=>e.lineRangeMapping.original.contains(s.lineNumber)))}if(x&&"modified"===n){let s=this._editors.modifiedCursor.read(e);s&&(t=x.movedTexts.find(e=>e.lineRangeMapping.modified.contains(s.lineNumber)))}t!==s.movedTextToCompare.get()&&s.movedTextToCompare.set(void 0,void 0),s.setActiveMovedText(t)}))}}class BV{static compute(e){let t=[],s=[];for(let x of e){let e=t.findIndex(e=>!e.intersectsStrict(x));-1===e&&(t.length>=6?e=(0,Yr.Y0)(t,(0,cO.tT)(e=>e.intersectWithRangeLength(x),cO.fv)):(e=t.length,t.push(new GW.M))),t[e].addRange(x),s.push(e)}return new BV(t.length,s)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class BX extends GF{constructor(e,t,s,x,E){let a;let r=RW("div.diff-hidden-lines-widget");super(e,t,r.root),this._editor=e,this._move=s,this._kind=x,this._diffModel=E,this._nodes=RW("div.diff-moved-code-block",{style:{marginRight:"4px"}},[RW("div.text-content@textContent"),RW("div.action-bar@actionBar")]),r.root.appendChild(this._nodes.root);let i=(0,I0.rD)(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(GV(this._nodes.root,{paddingRight:i.map(e=>e.verticalScrollbarWidth)})),a=s.changes.length>0?"original"===this._kind?(0,ch.NC)("codeMovedToWithChanges","Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,ch.NC)("codeMovedFromWithChanges","Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):"original"===this._kind?(0,ch.NC)("codeMovedTo","Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):(0,ch.NC)("codeMovedFrom","Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);let n=this._register(new h0(this._nodes.actionBar,{highlightToggledItems:!0})),_=new OE("",a,"",!1);n.push(_,{icon:!1,label:!0});let T=new OE("","Compare",Oc.k.asClassName(AK.l.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===s?void 0:this._move,void 0)});this._register((0,I0.EH)(e=>{let t=this._diffModel.movedTextToCompare.read(e)===s;T.checked=t})),n.push(T,{icon:!1,label:!0})}}class Bb extends TD.JT{constructor(e,t,s,x){super(),this._editors=e,this._diffModel=t,this._options=s,this._decorations=(0,I0.nK)(this,e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);if(!s)return null;let x=this._diffModel.read(e).movedTextToCompare.read(e),E=this._options.renderIndicators.read(e),a=this._options.showEmptyDecorations.read(e),r=[],i=[];if(!x)for(let x of s.mappings)if(x.lineRangeMapping.original.isEmpty||r.push({range:x.lineRangeMapping.original.toInclusiveRange(),options:E?G9:Bt}),x.lineRangeMapping.modified.isEmpty||i.push({range:x.lineRangeMapping.modified.toInclusiveRange(),options:E?G8:Be}),x.lineRangeMapping.modified.isEmpty||x.lineRangeMapping.original.isEmpty)x.lineRangeMapping.original.isEmpty||r.push({range:x.lineRangeMapping.original.toInclusiveRange(),options:Br}),x.lineRangeMapping.modified.isEmpty||i.push({range:x.lineRangeMapping.modified.toInclusiveRange(),options:Bx});else{let s=this._options.useTrueInlineDiffRendering.read(e)&&BF(x.lineRangeMapping);for(let e of x.lineRangeMapping.innerChanges||[])if(x.lineRangeMapping.original.contains(e.originalRange.startLineNumber)&&r.push({range:e.originalRange,options:e.originalRange.isEmpty()&&a?Bi:Ba}),x.lineRangeMapping.modified.contains(e.modifiedRange.startLineNumber)&&i.push({range:e.modifiedRange,options:e.modifiedRange.isEmpty()&&a&&!s?BE:Bs}),s){let s=t.model.original.getValueInRange(e.originalRange);i.push({range:e.modifiedRange,options:{description:"deleted-text",before:{content:s,inlineClassName:"inline-deleted-text"},zIndex:1e5,showIfCollapsed:!0}})}}if(x)for(let e of x.changes){let t=e.original.toInclusiveRange();t&&r.push({range:t,options:E?G9:Bt});let s=e.modified.toInclusiveRange();for(let t of(s&&i.push({range:s,options:E?G8:Be}),e.innerChanges||[]))r.push({range:t.originalRange,options:Ba}),i.push({range:t.modifiedRange,options:Bs})}let n=this._diffModel.read(e).activeMovedText.read(e);for(let e of s.movedTexts)r.push({range:e.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(e===n?" currentMove":""),blockPadding:[By.movedCodeBlockPadding,0,By.movedCodeBlockPadding,By.movedCodeBlockPadding]}}),i.push({range:e.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(e===n?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:r,modifiedDecorations:i}}),this._register(GB(this._editors.original,this._decorations.map(e=>e?.originalDecorations||[]))),this._register(GB(this._editors.modified,this._decorations.map(e=>e?.modifiedDecorations||[])))}}class Bv{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(e,t){this._options=e,this.dimensions=t,this.sashLeft=(0,Gp.B5)(this,e=>{let t=this._sashRatio.read(e)??this._options.splitViewDefaultRatio.read(e);return this._computeSashLeft(t,e)},(e,t)=>{let s=this.dimensions.width.get();this._sashRatio.set(e/s,t)}),this._sashRatio=(0,I0.uh)(this,void 0)}_computeSashLeft(e,t){let s=this.dimensions.width.read(t),x=Math.floor(this._options.splitViewDefaultRatio.read(t)*s),E=this._options.enableSplitViewResizing.read(t)?Math.floor(e*s):x;return s<=200?x:E<100?100:E>s-100?s-100:E}}class Bk extends TD.JT{constructor(e,t,s,x,E,a){super(),this._domNode=e,this._dimensions=t,this._enabled=s,this._boundarySashes=x,this.sashLeft=E,this._resetSash=a,this._sash=this._register(new Ca(this._domNode,{getVerticalSashTop:e=>0,getVerticalSashLeft:e=>this.sashLeft.get(),getVerticalSashHeight:e=>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(e=>{this.sashLeft.set(this._startSashPosition+(e.currentX-e.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register((0,I0.EH)(e=>{let t=this._boundarySashes.read(e);t&&(this._sash.orthogonalEndSash=t.bottom)})),this._register((0,I0.EH)(e=>{let t=this._enabled.read(e);this._sash.state=t?3:0,this.sashLeft.read(e),this._dimensions.height.read(e),this._sash.layout()}))}}class Bw extends TD.JT{constructor(e,t,s){super(),this._editor=e,this._domNode=t,this.itemProvider=s,this.scrollTop=(0,I0.rD)(this,this._editor.onDidScrollChange,e=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(e=>0===e),this.modelAttached=(0,I0.rD)(this,this._editor.onDidChangeModel,e=>this._editor.hasModel()),this.editorOnDidChangeViewZones=(0,I0.aq)("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=(0,I0.aq)("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=(0,I0.GN)("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";let x=this._domNode.appendChild(RW("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),E=new ResizeObserver(()=>{(0,I0.PS)(e=>{this.domNodeSizeChanged.trigger(e)})});E.observe(this._domNode),this._register((0,TD.OF)(()=>E.disconnect())),this._register((0,I0.EH)(e=>{x.className=this.isScrollTopZero.read(e)?"":"scroll-decoration"})),this._register((0,I0.EH)(e=>this.render(e)))}dispose(){super.dispose(),RY(this._domNode)}render(e){if(!this.modelAttached.read(e))return;this.domNodeSizeChanged.read(e),this.editorOnDidChangeViewZones.read(e),this.editorOnDidContentSizeChange.read(e);let t=this.scrollTop.read(e),s=this._editor.getVisibleRanges(),x=new Set(this.views.keys()),E=GW.q.ofStartAndLength(0,this._domNode.clientHeight);if(!E.isEmpty)for(let a of s){let s=new O2.z(a.startLineNumber,a.endLineNumber+1),r=this.itemProvider.getIntersectingGutterItems(s,e);(0,I0.PS)(e=>{for(let a of r){if(!a.range.intersect(s))continue;x.delete(a.id);let r=this.views.get(a.id);if(r)r.item.set(a,e);else{let e=document.createElement("div");this._domNode.appendChild(e);let t=(0,I0.uh)("item",a),s=this.itemProvider.createView(t,e);r=new BW(t,s,e),this.views.set(a.id,r)}let i=a.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(a.range.startLineNumber,!0)-t:this._editor.getBottomForLineNumber(a.range.startLineNumber-1,!1)-t,n=(1===a.range.endLineNumberExclusive?Math.max(i,this._editor.getTopForLineNumber(a.range.startLineNumber,!1)-t):Math.max(i,this._editor.getBottomForLineNumber(a.range.endLineNumberExclusive-1,!0)-t))-i;r.domNode.style.top=`${i}px`,r.domNode.style.height=`${n}px`,r.gutterItemView.layout(GW.q.ofStartAndLength(i,n),E)}})}for(let e of x){let t=this.views.get(e);t.gutterItemView.dispose(),t.domNode.remove(),this.views.delete(e)}}}class BW{constructor(e,t,s){this.item=e,this.gutterItemView=t,this.domNode=s}}class BK extends Oa{constructor(e){super(),this._getContext=e}runAction(e,t){let s=this._getContext();return super.runAction(e,s)}}var BQ=x(57544);class BJ extends BQ.MS{constructor(e){super(),this._textModel=e}getValueOfRange(e){return this._textModel.getValueInRange(e)}get length(){let e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new GG.A(e-1,t)}}x(59686);class BZ extends TD.JT{constructor(e,t,s={orientation:0}){super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new T0.z5),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new TD.SL),s.hoverDelegate=s.hoverDelegate??this._register(IF()),this.options=s,this.toggleMenuAction=this._register(new Bz(()=>this.toggleMenuActionViewItem?.show(),s.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new h0(this.element,{orientation:s.orientation,ariaLabel:s.ariaLabel,actionRunner:s.actionRunner,allowContextMenu:s.allowContextMenu,highlightToggledItems:s.highlightToggledItems,hoverDelegate:s.hoverDelegate,actionViewItemProvider:(e,x)=>{if(e.id===Bz.ID)return this.toggleMenuActionViewItem=new hU(e,e.menuActions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:Oc.k.asClassNameArray(s.moreIcon??AK.l.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(s.actionViewItemProvider){let t=s.actionViewItemProvider(e,x);if(t)return t}if(e instanceof Oi){let s=new hU(e,e.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:e.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return s.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(s),this.disposables.add(this._onDidChangeDropdownVisibility.add(s.onDidChangeVisibility)),s}}}))}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}setActions(e,t){this.clear();let s=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),s.push(this.toggleMenuAction)),s.forEach(e=>{this.actionBar.push(e,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(e)})})}getKeybindingLabel(e){let t=this.options.getKeyBinding?.(e);return t?.getLabel()??void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}class Bz extends OE{static{this.ID="toolbar.toggle.more"}constructor(e,t){super(Bz.ID,t=t||ch.NC("moreActions","More Actions..."),void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}}var Bq=x(24176),Bj=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},B$=function(e,t){return function(s,x){t(s,x,e)}};let B0=class extends BZ{constructor(e,t,s,x,E,a,r,i){super(e,E,{getKeyBinding:e=>a.lookupKeybinding(e.id)??void 0,...t,allowContextMenu:!0,skipTelemetry:"string"==typeof t?.telemetrySource}),this._options=t,this._menuService=s,this._contextKeyService=x,this._contextMenuService=E,this._keybindingService=a,this._commandService=r,this._sessionDisposables=this._store.add(new TD.SL);let n=t?.telemetrySource;n&&this._store.add(this.actionBar.onDidRun(e=>i.publicLog2("workbenchActionExecuted",{id:e.action.id,from:n})))}setActions(e,t=[],s){this._sessionDisposables.clear();let x=e.slice(),E=t.slice(),a=[],r=0,i=[],n=!1;if(this._options?.hiddenItemStrategy!==-1)for(let e=0;e<x.length;e++){let t=x[e];(t instanceof OU||t instanceof Od)&&t.hideActions&&(a.push(t.hideActions.toggle),t.hideActions.toggle.checked&&r++,t.hideActions.isHidden&&(n=!0,x[e]=void 0,this._options?.hiddenItemStrategy!==0&&(i[e]=t)))}if(this._options?.overflowBehavior!==void 0){let e=(0,Bq.j)(new Set(this._options.overflowBehavior.exempted),OS.$.map(x,e=>e?.id)),t=this._options.overflowBehavior.maxItems-e.size,s=0;for(let E=0;E<x.length;E++){let a=x[E];a&&(s++,!e.has(a.id)&&s>=t&&(x[E]=void 0,i[E]=a))}}(0,cO.Rs)(x),(0,cO.Rs)(i),super.setActions(x,Or.join(i,E)),(a.length>0||x.length>0)&&this._sessionDisposables.add(S7(this.getElement(),"contextmenu",e=>{let t=new Tq(SK(this.getElement()),e),x=this.getItemAction(t.target);if(!x)return;t.preventDefault(),t.stopPropagation();let E=[];if(x instanceof OU&&x.menuKeybinding)E.push(x.menuKeybinding);else if(!(x instanceof Od||x instanceof Bz)){let e=!!this._keybindingService.lookupKeybinding(x.id);E.push(DN(this._commandService,this._keybindingService,x.id,void 0,e))}if(a.length>0){let e=!1;if(1===r&&this._options?.hiddenItemStrategy===0){e=!0;for(let e=0;e<a.length;e++)if(a[e].checked){a[e]=O_({id:x.id,label:x.label,checked:!0,enabled:!1,run(){}});break}}if(!e&&(x instanceof OU||x instanceof Od)){if(!x.hideActions)return;E.push(x.hideActions.hide)}else E.push(O_({id:"label",label:(0,ch.NC)("hide","Hide"),enabled:!1,run(){}}))}let i=Or.join(E,a);this._options?.resetMenu&&!s&&(s=[this._options.resetMenu]),n&&s&&(i.push(new Or),i.push(O_({id:"resetThisMenu",label:(0,ch.NC)("resetThisMenu","Reset Menu"),run:()=>this._menuService.resetHiddenStates(s)}))),0!==i.length&&this._contextMenuService.showContextMenu({getAnchor:()=>t,getActions:()=>i,menuId:this._options?.contextMenu,menuActionOptions:{renderShortTitle:!0,...this._options?.menuOptions},skipTelemetry:"string"==typeof this._options?.telemetrySource,contextKeyService:this._contextKeyService})}))}};B0=Bj([B$(2,OD),B$(3,Oo.i6),B$(4,AF),B$(5,AH),B$(6,OO),B$(7,Op)],B0);let B2=class extends B0{constructor(e,t,s,x,E,a,r,i,n){super(e,{resetMenu:t,...s},x,E,a,r,i,n),this._onDidChangeMenuItems=this._store.add(new T0.Q5),this.onDidChangeMenuItems=this._onDidChangeMenuItems.event;let _=this._store.add(x.createMenu(t,E,{emitEventsForSubmenuChanges:!0})),T=()=>{let t=[],x=[];(function(e,t,s,x,E,a){let r,i,n,_,T;Array.isArray(e)?(T=e,r=t,i=s,n=x,_=E):(T=e.getActions(t),r=s,i=x,n=E,_=a),hZ(T,r,!1,"string"==typeof i?e=>e===i:i,n,_)})(_,s?.menuOptions,{primary:t,secondary:x},s?.toolbarOptions?.primaryGroup,s?.toolbarOptions?.shouldInlineSubmenu,s?.toolbarOptions?.useSeparatorsInPrimaryActions),e.classList.toggle("has-no-actions",0===t.length&&0===x.length),super.setActions(t,x)};this._store.add(_.onDidChange(()=>{T(),this._onDidChangeMenuItems.fire(this)})),T()}setActions(){throw new TV.he("This toolbar is populated from a menu.")}};B2=Bj([B$(3,OD),B$(4,Oo.i6),B$(5,AF),B$(6,AH),B$(7,OO),B$(8,Op)],B2);var B1=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},B3=function(e,t){return function(s,x){t(s,x,e)}};let B7=[],B5=class extends TD.JT{constructor(e,t,s,x,E,a,r,i,n){super(),this._diffModel=t,this._editors=s,this._options=x,this._sashLayout=E,this._boundarySashes=a,this._instantiationService=r,this._contextKeyService=i,this._menuService=n,this._menu=this._register(this._menuService.createMenu(Ou.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=(0,I0.rD)(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(e=>e.length>0),this._showSash=(0,I0.nK)(this,e=>this._options.renderSideBySide.read(e)&&this._hasActions.read(e)),this.width=(0,I0.nK)(this,e=>this._hasActions.read(e)?35:0),this.elements=RW("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:"35px"}},[]),this._currentDiff=(0,I0.nK)(this,e=>{let t=this._diffModel.read(e);if(!t)return;let s=t.diff.read(e)?.mappings,x=this._editors.modifiedCursor.read(e);if(x)return s?.find(e=>e.lineRangeMapping.modified.contains(x.lineNumber))}),this._selectedDiffs=(0,I0.nK)(this,e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);if(!s)return B7;let x=this._editors.modifiedSelections.read(e);if(x.every(e=>e.isEmpty()))return B7;let E=new O2.i(x.map(e=>O2.z.fromRangeInclusive(e))),a=s.mappings.filter(e=>e.lineRangeMapping.innerChanges&&E.intersects(e.lineRangeMapping.modified)).map(e=>({mapping:e,rangeMappings:e.lineRangeMapping.innerChanges.filter(e=>x.some(t=>OQ.e.areIntersecting(e.modifiedRange,t)))}));return 0===a.length||a.every(e=>0===e.rangeMappings.length)?B7:a}),this._register(function(e,t){return e.prepend(t),(0,TD.OF)(()=>{t.remove()})}(e,this.elements.root)),this._register(S7(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register(GV(this.elements.root,{display:this._hasActions.map(e=>e?"block":"none")})),(0,Gp.kA)(this,t=>this._showSash.read(t)?new Bk(e,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,(0,Gp.B5)(this,e=>this._sashLayout.sashLeft.read(e)-35,(e,t)=>this._sashLayout.sashLeft.set(e+35,t)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store),this._register(new Bw(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(e,t)=>{let s=this._diffModel.read(t);if(!s)return[];let x=s.diff.read(t);if(!x)return[];let E=this._selectedDiffs.read(t);if(E.length>0)return[new B4(O0.gB.fromRangeMappings(E.flatMap(e=>e.rangeMappings)),!0,Ou.DiffEditorSelectionToolbar,void 0,s.model.original.uri,s.model.modified.uri)];let a=this._currentDiff.read(t);return x.mappings.map(e=>new B4(e.lineRangeMapping.withInnerChangesFromLineRanges(),e.lineRangeMapping===a?.lineRangeMapping,Ou.DiffEditorHunkToolbar,void 0,s.model.original.uri,s.model.modified.uri))},createView:(e,t)=>this._instantiationService.createInstance(B6,e,t,this)})),this._register(S7(this.elements.gutter,RD.MOUSE_WHEEL,e=>{this._editors.modified.getOption(104).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(e)},{passive:!1}))}computeStagedValue(e){let t=e.innerChanges??[],s=new BJ(this._editors.modifiedModel.get()),x=new BJ(this._editors.original.getModel());return new BQ.PY(t.map(e=>e.toTextEdit(s))).apply(x)}layout(e){this.elements.gutter.style.left=e+"px"}};B5=B1([B3(6,Oe.TG),B3(7,Oo.i6),B3(8,OD)],B5);class B4{constructor(e,t,s,x,E,a){this.mapping=e,this.showAlways=t,this.menuId=s,this.rangeOverride=x,this.originalUri=E,this.modifiedUri=a}get id(){return this.mapping.modified.toString()}get range(){return this.rangeOverride??this.mapping.modified}}let B6=class extends TD.JT{constructor(e,t,s,x){super(),this._item=e,this._elements=RW("div.gutterItem",{style:{height:"20px",width:"34px"}},[RW("div.background@background",{},[]),RW("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,e=>e.showAlways),this._menuId=this._item.map(this,e=>e.menuId),this._isSmall=(0,I0.uh)(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;let E=this._register(x.createInstance(Af,"element",!0,{position:{hoverPosition:1}}));this._register(Gm(t,this._elements.root)),this._register((0,I0.EH)(e=>{let t=this._showAlways.read(e);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",t),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register((0,I0.gp)((e,t)=>{this._elements.buttons.replaceChildren();let a=t.add(x.createInstance(B2,this._elements.buttons,this._menuId.read(e),{orientation:1,hoverDelegate:E,toolbarOptions:{primaryGroup:e=>e.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(e)?1:3},hiddenItemStrategy:0,actionRunner:new BK(()=>{let e=this._item.get(),t=e.mapping;return{mapping:t,originalWithModifiedChanges:s.computeStagedValue(t),originalUri:e.originalUri,modifiedUri:e.modifiedUri}}),menuOptions:{shouldForwardArgs:!0}}));t.add(a.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(e,t){this._lastItemRange=e,this._lastViewRange=t;let s=this._elements.buttons.clientHeight;this._isSmall.set(1===this._item.get().mapping.original.startLineNumber&&e.length<30,void 0),s=this._elements.buttons.clientHeight;let x=e.length/2-s/2,E=s,a=e.start+x,r=GW.q.tryCreate(E,t.endExclusive-E-s),i=GW.q.tryCreate(e.start+E,e.endExclusive-s-E);i&&r&&i.start<i.endExclusive&&(a=r.clip(a),a=i.clip(a)),this._elements.buttons.style.top=`${a-e.start}px`}};B6=B1([B3(3,Oe.TG)],B6);var B8=x(56384),B9=x(64144);function me(e){return mt.get(e)}class mt extends TD.JT{static{this._map=new Map}static get(e){let t=mt._map.get(e);if(!t){t=new mt(e),mt._map.set(e,t);let s=e.onDidDispose(()=>{let t=mt._map.get(e);t&&(mt._map.delete(e),t.dispose(),s.dispose())})}return t}_beginUpdate(){this._updateCounter++,1===this._updateCounter&&(this._currentTransaction=new B9.es(()=>{}))}_endUpdate(){if(this._updateCounter--,0===this._updateCounter){let e=this._currentTransaction;this._currentTransaction=void 0,e.finish()}}constructor(e){super(),this.editor=e,this._updateCounter=0,this._currentTransaction=void 0,this._model=(0,I0.uh)(this,this.editor.getModel()),this.model=this._model,this.isReadonly=(0,I0.rD)(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(92)),this._versionId=(0,I0.Ku)({owner:this,lazy:!0},this.editor.getModel()?.getVersionId()??null),this.versionId=this._versionId,this._selections=(0,I0.Ku)({owner:this,equalsFn:(0,B8.Tx)((0,B8.ZC)(P4.Y.selectionsEqual)),lazy:!0},this.editor.getSelections()??null),this.selections=this._selections,this.isFocused=(0,I0.rD)(this,e=>{let t=this.editor.onDidFocusEditorWidget(e),s=this.editor.onDidBlurEditorWidget(e);return{dispose(){t.dispose(),s.dispose()}}},()=>this.editor.hasWidgetFocus()),this.value=(0,Gp.B5)(this,e=>(this.versionId.read(e),this.model.read(e)?.getValue()??""),(e,t)=>{let s=this.model.get();null!==s&&e!==s.getValue()&&s.setValue(e)}),this.valueIsEmpty=(0,I0.nK)(this,e=>(this.versionId.read(e),this.editor.getModel()?.getValueLength()===0)),this.cursorSelection=(0,I0.bk)({owner:this,equalsFn:(0,B8.Tx)(P4.Y.selectionsEqual)},e=>this.selections.read(e)?.[0]??null),this.onDidType=(0,I0.GN)(this),this.scrollTop=(0,I0.rD)(this.editor.onDidScrollChange,()=>this.editor.getScrollTop()),this.scrollLeft=(0,I0.rD)(this.editor.onDidScrollChange,()=>this.editor.getScrollLeft()),this.layoutInfo=(0,I0.rD)(this.editor.onDidLayoutChange,()=>this.editor.getLayoutInfo()),this.layoutInfoContentLeft=this.layoutInfo.map(e=>e.contentLeft),this.layoutInfoDecorationsLeft=this.layoutInfo.map(e=>e.decorationsLeft),this.contentWidth=(0,I0.rD)(this.editor.onDidContentSizeChange,()=>this.editor.getContentWidth()),this._overlayWidgetCounter=0,this._register(this.editor.onBeginUpdate(()=>this._beginUpdate())),this._register(this.editor.onEndUpdate(()=>this._endUpdate())),this._register(this.editor.onDidChangeModel(()=>{this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidType(e=>{this._beginUpdate();try{this._forceUpdate(),this.onDidType.trigger(this._currentTransaction,e)}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeModelContent(e=>{this._beginUpdate();try{this._versionId.set(this.editor.getModel()?.getVersionId()??null,this._currentTransaction,e),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeCursorSelection(e=>{this._beginUpdate();try{this._selections.set(this.editor.getSelections(),this._currentTransaction,e),this._forceUpdate()}finally{this._endUpdate()}}))}forceUpdate(e){this._beginUpdate();try{if(this._forceUpdate(),!e)return;return e(this._currentTransaction)}finally{this._endUpdate()}}_forceUpdate(){this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._versionId.set(this.editor.getModel()?.getVersionId()??null,this._currentTransaction,void 0),this._selections.set(this.editor.getSelections(),this._currentTransaction,void 0)}finally{this._endUpdate()}}getOption(e){return(0,I0.rD)(this,t=>this.editor.onDidChangeConfiguration(s=>{s.hasChanged(e)&&t(void 0)}),()=>this.editor.getOption(e))}setDecorations(e){let t=new TD.SL,s=this.editor.createDecorationsCollection();return t.add((0,I0.UV)({owner:this,debugName:()=>`Apply decorations from ${e.debugName}`},t=>{let x=e.read(t);s.set(x)})),t.add({dispose:()=>{s.clear()}}),t}createOverlayWidget(e){let t="observableOverlayWidget"+this._overlayWidgetCounter++,s={getDomNode:()=>e.domNode,getPosition:()=>e.position.get(),getId:()=>t,allowEditorOverflow:e.allowEditorOverflow,getMinContentWidthInPx:()=>e.minContentWidthInPx.get()};this.editor.addOverlayWidget(s);let x=(0,I0.EH)(t=>{e.position.read(t),e.minContentWidthInPx.read(t),this.editor.layoutOverlayWidget(s)});return(0,TD.OF)(()=>{x.dispose(),this.editor.removeOverlayWidget(s)})}}let ms=class extends TD.JT{static{eX=this}static{this._breadcrumbsSourceFactory=(0,I0.uh)(eX,()=>({dispose(){},getBreadcrumbItems:(e,t)=>[]}))}static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,s,x){super(),this._editors=e,this._diffModel=t,this._options=s,this._instantiationService=x,this._modifiedOutlineSource=(0,Gp.kA)(this,e=>{let t=this._editors.modifiedModel.read(e),s=eX._breadcrumbsSourceFactory.read(e);return t&&s?s(t,this._instantiationService):void 0}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(e=>{if(1===e.reason)return;let t=this._diffModel.get();(0,I0.PS)(e=>{for(let s of this._editors.original.getSelections()||[])t?.ensureOriginalLineIsVisible(s.getStartPosition().lineNumber,0,e),t?.ensureOriginalLineIsVisible(s.getEndPosition().lineNumber,0,e)})})),this._register(this._editors.modified.onDidChangeCursorPosition(e=>{if(1===e.reason)return;let t=this._diffModel.get();(0,I0.PS)(e=>{for(let s of this._editors.modified.getSelections()||[])t?.ensureModifiedLineIsVisible(s.getStartPosition().lineNumber,0,e),t?.ensureModifiedLineIsVisible(s.getEndPosition().lineNumber,0,e)})}));let E=this._diffModel.map((e,t)=>{let s=e?.unchangedRegions.read(t)??[];return 1===s.length&&1===s[0].modifiedLineNumber&&s[0].lineCount===this._editors.modifiedModel.read(t)?.getLineCount()?[]:s});this.viewZones=(0,I0.Be)(this,(e,t)=>{let s=this._modifiedOutlineSource.read(e);if(!s)return{origViewZones:[],modViewZones:[]};let x=[],a=[],r=this._options.renderSideBySide.read(e),i=this._options.compactMode.read(e),n=E.read(e);for(let E=0;E<n.length;E++){let _=n[E];if(!_.shouldHideControls(e)&&(!i||0!==E&&E!==n.length-1)){if(i){{let e=new GH((0,I0.nK)(this,e=>_.getHiddenOriginalRange(e).startLineNumber-1),12);x.push(e),t.add(new mx(this._editors.original,e,_,!r))}{let e=new GH((0,I0.nK)(this,e=>_.getHiddenModifiedRange(e).startLineNumber-1),12);a.push(e),t.add(new mx(this._editors.modified,e,_))}}else{{let e=new GH((0,I0.nK)(this,e=>_.getHiddenOriginalRange(e).startLineNumber-1),24);x.push(e),t.add(new mE(this._editors.original,e,_,_.originalUnchangedRange,!r,s,e=>this._diffModel.get().ensureModifiedLineIsVisible(e,2,void 0),this._options))}{let e=new GH((0,I0.nK)(this,e=>_.getHiddenModifiedRange(e).startLineNumber-1),24);a.push(e),t.add(new mE(this._editors.modified,e,_,_.modifiedUnchangedRange,!1,s,e=>this._diffModel.get().ensureModifiedLineIsVisible(e,2,void 0),this._options))}}}}return{origViewZones:x,modViewZones:a}});let a={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},r={description:"Fold Unchanged",glyphMarginHoverMessage:new oW(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown((0,ch.NC)("foldUnchanged","Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+Oc.k.asClassName(AK.l.fold),zIndex:10001};this._register(GB(this._editors.original,(0,I0.nK)(this,e=>{let t=E.read(e),s=t.map(e=>({range:e.originalUnchangedRange.toInclusiveRange(),options:a}));for(let x of t)x.shouldHideControls(e)&&s.push({range:OQ.e.fromPositions(new N0.L(x.originalLineNumber,1)),options:r});return s}))),this._register(GB(this._editors.modified,(0,I0.nK)(this,e=>{let t=E.read(e),s=t.map(e=>({range:e.modifiedUnchangedRange.toInclusiveRange(),options:a}));for(let x of t)x.shouldHideControls(e)&&s.push({range:O2.z.ofLength(x.modifiedLineNumber,1).toInclusiveRange(),options:r});return s}))),this._register((0,I0.EH)(e=>{let t=E.read(e);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(t.map(t=>t.getHiddenOriginalRange(e).toInclusiveRange()).filter(OR.$K)),this._editors.modified.setHiddenAreas(t.map(t=>t.getHiddenModifiedRange(e).toInclusiveRange()).filter(OR.$K))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(e=>{if(!e.event.rightButton&&e.target.position&&e.target.element?.className.includes("fold-unchanged")){let t=e.target.position.lineNumber,s=this._diffModel.get();if(!s)return;let x=s.unchangedRegions.get().find(e=>e.modifiedUnchangedRange.includes(t));x&&(x.collapseAll(void 0),e.event.stopPropagation(),e.event.preventDefault())}})),this._register(this._editors.original.onMouseUp(e=>{if(!e.event.rightButton&&e.target.position&&e.target.element?.className.includes("fold-unchanged")){let t=e.target.position.lineNumber,s=this._diffModel.get();if(!s)return;let x=s.unchangedRegions.get().find(e=>e.originalUnchangedRange.includes(t));x&&(x.collapseAll(void 0),e.event.stopPropagation(),e.event.preventDefault())}}))}};ms=eX=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([(d=Oe.TG,function(e,t){d(e,t,3)})],ms);class mx extends GF{constructor(e,t,s,x=!1){let E=RW("div.diff-hidden-lines-widget");super(e,t,E.root),this._unchangedRegion=s,this._hide=x,this._nodes=RW("div.diff-hidden-lines-compact",[RW("div.line-left",[]),RW("div.text@text",[]),RW("div.line-right",[])]),E.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register((0,I0.EH)(e=>{if(!this._hide){let t=this._unchangedRegion.getHiddenModifiedRange(e).length,s=(0,ch.NC)("hiddenLines","{0} hidden lines",t);this._nodes.text.innerText=s}}))}}class mE extends GF{constructor(e,t,s,x,E,a,r,i){let n=RW("div.diff-hidden-lines-widget");super(e,t,n.root),this._editor=e,this._unchangedRegion=s,this._unchangedRegionRange=x,this._hide=E,this._modifiedOutlineSource=a,this._revealModifiedHiddenLine=r,this._options=i,this._nodes=RW("div.diff-hidden-lines",[RW("div.top@top",{title:(0,ch.NC)("diff.hiddenLines.top","Click or drag to show more above")}),RW("div.center@content",{style:{display:"flex"}},[RW("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[Rm("a",{title:(0,ch.NC)("showUnchangedRegion","Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...or("$(unfold)"))]),RW("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),RW("div.bottom@bottom",{title:(0,ch.NC)("diff.bottom","Click or drag to show more below"),role:"button"})]),n.root.appendChild(this._nodes.root),this._hide?RY(this._nodes.first):this._register(GV(this._nodes.first,{width:me(this._editor).layoutInfoContentLeft})),this._register((0,I0.EH)(e=>{let t=this._unchangedRegion.visibleLineCountTop.read(e)+this._unchangedRegion.visibleLineCountBottom.read(e)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!t),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(e)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(e)>0),this._nodes.top.classList.toggle("canMoveBottom",!t);let s=this._unchangedRegion.isDragged.read(e),x=this._editor.getDomNode();x&&(x.classList.toggle("draggingUnchangedRegion",!!s),"top"===s?(x.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(e)>0),x.classList.toggle("canMoveBottom",!t)):"bottom"===s?(x.classList.toggle("canMoveTop",!t),x.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(e)>0)):(x.classList.toggle("canMoveTop",!1),x.classList.toggle("canMoveBottom",!1)))}));let _=this._editor;this._register(S7(this._nodes.top,"mousedown",e=>{if(0!==e.button)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),e.preventDefault();let t=e.clientY,s=!1,x=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);let E=SK(this._nodes.top),a=S7(E,"mousemove",e=>{let E=e.clientY-t;s=s||Math.abs(E)>2;let a=Math.max(0,Math.min(x+Math.round(E/_.getOption(67)),this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(a,void 0)}),r=S7(E,"mouseup",e=>{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),a.dispose(),r.dispose()})})),this._register(S7(this._nodes.bottom,"mousedown",e=>{if(0!==e.button)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),e.preventDefault();let t=e.clientY,s=!1,x=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);let E=SK(this._nodes.bottom),a=S7(E,"mousemove",e=>{let E=e.clientY-t;s=s||Math.abs(E)>2;let a=Math.max(0,Math.min(x-Math.round(E/_.getOption(67)),this._unchangedRegion.getMaxVisibleLineCountBottom())),r=this._unchangedRegionRange.endLineNumberExclusive>_.getModel().getLineCount()?_.getContentHeight():_.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(a,void 0);let i=this._unchangedRegionRange.endLineNumberExclusive>_.getModel().getLineCount()?_.getContentHeight():_.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);_.setScrollTop(_.getScrollTop()+(i-r))}),r=S7(E,"mouseup",e=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!s){let e=_.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);let t=_.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);_.setScrollTop(_.getScrollTop()+(t-e))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),a.dispose(),r.dispose()})})),this._register((0,I0.EH)(e=>{let t=[];if(!this._hide){let x=s.getHiddenModifiedRange(e).length,E=(0,ch.NC)("hiddenLines","{0} hidden lines",x),a=Rm("span",{title:(0,ch.NC)("diff.hiddenLines.expandAll","Double click to unfold")},E);a.addEventListener("dblclick",e=>{0===e.button&&(e.preventDefault(),this._unchangedRegion.showAll(void 0))}),t.push(a);let r=this._unchangedRegion.getHiddenModifiedRange(e),i=this._modifiedOutlineSource.getBreadcrumbItems(r,e);if(i.length>0){t.push(Rm("span",void 0,"\xa0\xa0|\xa0\xa0"));for(let e=0;e<i.length;e++){let s=i[e],x=RW("div.breadcrumb-item",{style:{display:"flex",alignItems:"center"}},[oi(NA.uZ.toIcon(s.kind)),"\xa0",s.name,...e===i.length-1?[]:[oi(AK.l.chevronRight)]]).root;t.push(x),x.onclick=()=>{this._revealModifiedHiddenLine(s.startLineNumber)}}}}RY(this._nodes.others,...t)}))}}let ma=class extends TD.JT{static{eb=this}static{this.ONE_OVERVIEW_WIDTH=15}static{this.ENTIRE_DIFF_OVERVIEW_WIDTH=2*this.ONE_OVERVIEW_WIDTH}constructor(e,t,s,x,E,a,r){super(),this._editors=e,this._rootElement=t,this._diffModel=s,this._rootWidth=x,this._rootHeight=E,this._modifiedEditorLayoutInfo=a,this._themeService=r,this.width=eb.ENTIRE_DIFF_OVERVIEW_WIDTH;let i=(0,I0.rD)(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),n=(0,I0.nK)(e=>{let t=i.read(e);return{insertColor:t.getColor(AY.P6Y)||(t.getColor(AY.ypS)||AY.CzK).transparent(2),removeColor:t.getColor(AY.F9q)||(t.getColor(AY.P4M)||AY.keg).transparent(2)}}),_=R$(document.createElement("div"));_.setClassName("diffViewport"),_.setPosition("absolute");let T=RW("div.diffOverview",{style:{position:"absolute",top:"0px",width:eb.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(Gm(T,_.domNode)),this._register(S5(T,RD.POINTER_DOWN,e=>{this._editors.modified.delegateVerticalScrollbarPointerDown(e)})),this._register(S7(T,RD.MOUSE_WHEEL,e=>{this._editors.modified.delegateScrollFromMouseWheelEvent(e)},{passive:!1})),this._register(Gm(this._rootElement,T)),this._register((0,I0.gp)((e,t)=>{let s=this._diffModel.read(e),x=this._editors.original.createOverviewRuler("original diffOverviewRuler");x&&(t.add(x),t.add(Gm(T,x.getDomNode())));let E=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(E&&(t.add(E),t.add(Gm(T,E.getDomNode()))),!x||!E)return;let a=(0,I0.aq)("viewZoneChanged",this._editors.original.onDidChangeViewZones),r=(0,I0.aq)("viewZoneChanged",this._editors.modified.onDidChangeViewZones),i=(0,I0.aq)("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),S=(0,I0.aq)("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);t.add((0,I0.EH)(e=>{a.read(e),r.read(e),i.read(e),S.read(e);let t=n.read(e),_=s?.diff.read(e)?.mappings;function T(e,t,s){let x=s._getViewModel();return x?e.filter(e=>e.length>0).map(e=>{let s=x.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(e.startLineNumber,1)),E=x.coordinatesConverter.convertModelPositionToViewPosition(new N0.L(e.endLineNumberExclusive,1)),a=E.lineNumber-s.lineNumber;return new pP(s.lineNumber,E.lineNumber,a,t.toString())}):[]}let R=T((_||[]).map(e=>e.lineRangeMapping.original),t.removeColor,this._editors.original),O=T((_||[]).map(e=>e.lineRangeMapping.modified),t.insertColor,this._editors.modified);x?.setZones(R),E?.setZones(O)})),t.add((0,I0.EH)(e=>{let t=this._rootHeight.read(e),s=this._rootWidth.read(e),a=this._modifiedEditorLayoutInfo.read(e);if(a){let s=eb.ENTIRE_DIFF_OVERVIEW_WIDTH-2*eb.ONE_OVERVIEW_WIDTH;x.setLayout({top:0,height:t,right:s+eb.ONE_OVERVIEW_WIDTH,width:eb.ONE_OVERVIEW_WIDTH}),E.setLayout({top:0,height:t,right:0,width:eb.ONE_OVERVIEW_WIDTH});let r=this._editors.modifiedScrollTop.read(e),i=this._editors.modifiedScrollHeight.read(e),n=this._editors.modified.getOption(104),T=new AW(n.verticalHasArrows?n.arrowSize:0,n.verticalScrollbarSize,0,a.height,i,r);_.setTop(T.getSliderPosition()),_.setHeight(T.getSliderSize())}else _.setTop(0),_.setHeight(0);T.style.height=t+"px",T.style.left=s-eb.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",_.setWidth(eb.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}};ma=eb=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([(U=As.XE,function(e,t){U(e,t,6)})],ma);let mr=[];class mi extends TD.JT{constructor(e,t,s,x){super(),this._editors=e,this._diffModel=t,this._options=s,this._widget=x,this._selectedDiffs=(0,I0.nK)(this,e=>{let t=this._diffModel.read(e),s=t?.diff.read(e);if(!s)return mr;let x=this._editors.modifiedSelections.read(e);if(x.every(e=>e.isEmpty()))return mr;let E=new O2.i(x.map(e=>O2.z.fromRangeInclusive(e))),a=s.mappings.filter(e=>e.lineRangeMapping.innerChanges&&E.intersects(e.lineRangeMapping.modified)).map(e=>({mapping:e,rangeMappings:e.lineRangeMapping.innerChanges.filter(e=>x.some(t=>OQ.e.areIntersecting(e.modifiedRange,t)))}));return 0===a.length||a.every(e=>0===e.rangeMappings.length)?mr:a}),this._register((0,I0.gp)((e,t)=>{if(!this._options.shouldRenderOldRevertArrows.read(e))return;let s=this._diffModel.read(e),x=s?.diff.read(e);if(!s||!x||s.movedTextToCompare.read(e))return;let E=[],a=this._selectedDiffs.read(e),r=new Set(a.map(e=>e.mapping));if(a.length>0){let s=this._editors.modifiedSelections.read(e),x=t.add(new mn(s[s.length-1].positionLineNumber,this._widget,a.flatMap(e=>e.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(x),E.push(x)}for(let e of x.mappings)if(!r.has(e)&&!e.lineRangeMapping.modified.isEmpty&&e.lineRangeMapping.innerChanges){let s=t.add(new mn(e.lineRangeMapping.modified.startLineNumber,this._widget,e.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(s),E.push(s)}t.add((0,TD.OF)(()=>{for(let e of E)this._editors.modified.removeGlyphMarginWidget(e)}))}))}}class mn extends TD.JT{static{this.counter=0}getId(){return this._id}constructor(e,t,s,x){super(),this._lineNumber=e,this._widget=t,this._diffs=s,this._revertSelection=x,this._id=`revertButton${mn.counter++}`,this._domNode=RW("div.revertButton",{title:this._revertSelection?(0,ch.NC)("revertSelectedChanges","Revert Selected Changes"):(0,ch.NC)("revertChange","Revert Change")},[oi(AK.l.arrowRight)]).root,this._register(S7(this._domNode,RD.MOUSE_DOWN,e=>{2!==e.button&&(e.stopPropagation(),e.preventDefault())})),this._register(S7(this._domNode,RD.MOUSE_UP,e=>{e.stopPropagation(),e.preventDefault()})),this._register(S7(this._domNode,RD.CLICK,e=>{this._diffs instanceof O0.f0?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),e.stopPropagation(),e.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:Ml.U.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}var m_=x(64709);function mc(e,t,s){let x=e.bindTo(t);return(0,I0.UV)({debugName:()=>`Set Context Key "${e.key}"`},e=>{x.set(s(e))})}var mT=function(e,t){return function(s,x){t(s,x,e)}};let mS=class extends TD.JT{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,s,x,E,a,r){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=s,this._argCodeEditorWidgetOptions=x,this._createInnerEditor=E,this._instantiationService=a,this._keybindingService=r,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new T0.Q5),this.modifiedScrollTop=(0,I0.rD)(this,this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=(0,I0.rD)(this,this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedObs=me(this.modified),this.originalObs=me(this.original),this.modifiedModel=this.modifiedObs.model,this.modifiedSelections=(0,I0.rD)(this,this.modified.onDidChangeCursorSelection,()=>this.modified.getSelections()??[]),this.modifiedCursor=(0,I0.bk)({owner:this,equalsFn:N0.L.equals},e=>this.modifiedSelections.read(e)[0]?.getPosition()??new N0.L(1,1)),this.originalCursor=(0,I0.rD)(this,this.original.onDidChangeCursorPosition,()=>this.original.getPosition()??new N0.L(1,1)),this._argCodeEditorWidgetOptions=null,this._register((0,I0.nJ)({createEmptyChangeSummary:()=>({}),handleChange:(e,t)=>(e.didChange(s.editorOptions)&&Object.assign(t,e.change.changedOptions),!0)},(e,t)=>{s.editorOptions.read(e),this._options.renderSideBySide.read(e),this.modified.updateOptions(this._adjustOptionsForRightHandSide(e,t)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(e,t))}))}_createLeftHandSideEditor(e,t){let s=this._adjustOptionsForLeftHandSide(void 0,e),x=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,s,t);return x.setContextValue("isInDiffLeftEditor",!0),x}_createRightHandSideEditor(e,t){let s=this._adjustOptionsForRightHandSide(void 0,e),x=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,s,t);return x.setContextValue("isInDiffRightEditor",!0),x}_constructInnerEditor(e,t,s,x){let E=this._createInnerEditor(e,t,s,x);return this._register(E.onDidContentSizeChange(e=>{let t=this.original.getContentWidth()+this.modified.getContentWidth()+ma.ENTIRE_DIFF_OVERVIEW_WIDTH,s=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:s,contentWidth:t,contentHeightChanged:e.contentHeightChanged,contentWidthChanged:e.contentWidthChanged})})),E}_adjustOptionsForLeftHandSide(e,t){let s=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(s.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},s.wordWrapOverride1=this._options.diffWordWrap.get()):(s.wordWrapOverride1="off",s.wordWrapOverride2="off",s.stickyScroll={enabled:!1},s.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),s.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(s.ariaLabel=t.originalAriaLabel),s.ariaLabel=this._updateAriaLabel(s.ariaLabel),s.readOnly=!this._options.originalEditable.get(),s.dropIntoEditor={enabled:!s.readOnly},s.extraEditorClassName="original-in-monaco-diff-editor",s}_adjustOptionsForRightHandSide(e,t){let s=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(s.ariaLabel=t.modifiedAriaLabel),s.ariaLabel=this._updateAriaLabel(s.ariaLabel),s.wordWrapOverride1=this._options.diffWordWrap.get(),s.revealHorizontalRightPadding=TC.revealHorizontalRightPadding.defaultValue+ma.ENTIRE_DIFF_OVERVIEW_WIDTH,s.scrollbar.verticalHasArrows=!1,s.extraEditorClassName="modified-in-monaco-diff-editor",s}_adjustOptionsForSubEditor(e){let t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!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){e||(e="");let t=(0,ch.NC)("diff-aria-navigation-tip"," use {0} to open the accessibility help.",this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp")?.getAriaLabel());return this._options.accessibilityVerbose.get()?e+t:e?e.replaceAll(t,""):""}};mS=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([mT(5,Oe.TG),mT(6,AH)],mS);class mR extends TD.JT{constructor(){super(...arguments),this._id=++mR.idCounter,this._onDidDispose=this._register(new T0.Q5),this.onDidDispose=this._onDidDispose.event}static{this.idCounter=0}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,s=0){this._targetEditor.revealLines(e,t,s)}revealLinesInCenter(e,t,s=0){this._targetEditor.revealLinesInCenter(e,t,s)}revealLinesInCenterIfOutsideViewport(e,t,s=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,s)}revealLinesNearTop(e,t,s=0){this._targetEditor.revealLinesNearTop(e,t,s)}revealRange(e,t=0,s=!1,x=!0){this._targetEditor.revealRange(e,t,s,x)}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,s){this._targetEditor.trigger(e,t,s)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}}let mO=class{get editorOptions(){return this._options}constructor(e,t){this._accessibilityService=t,this._diffEditorWidth=(0,I0.uh)(this,0),this._screenReaderMode=(0,I0.rD)(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=(0,I0.nK)(this,e=>this._options.read(e).renderSideBySide&&this._diffEditorWidth.read(e)<=this._options.read(e).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=(0,I0.nK)(this,e=>this._options.read(e).renderOverviewRuler),this.renderSideBySide=(0,I0.nK)(this,e=>!(this.compactMode.read(e)&&this.shouldRenderInlineViewInSmartMode.read(e))&&this._options.read(e).renderSideBySide&&!(this._options.read(e).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(e)&&!this._screenReaderMode.read(e))),this.readOnly=(0,I0.nK)(this,e=>this._options.read(e).readOnly),this.shouldRenderOldRevertArrows=(0,I0.nK)(this,e=>!(!this._options.read(e).renderMarginRevertIcon||!this.renderSideBySide.read(e)||this.readOnly.read(e)||this.shouldRenderGutterMenu.read(e))),this.shouldRenderGutterMenu=(0,I0.nK)(this,e=>this._options.read(e).renderGutterMenu),this.renderIndicators=(0,I0.nK)(this,e=>this._options.read(e).renderIndicators),this.enableSplitViewResizing=(0,I0.nK)(this,e=>this._options.read(e).enableSplitViewResizing),this.splitViewDefaultRatio=(0,I0.nK)(this,e=>this._options.read(e).splitViewDefaultRatio),this.ignoreTrimWhitespace=(0,I0.nK)(this,e=>this._options.read(e).ignoreTrimWhitespace),this.maxComputationTimeMs=(0,I0.nK)(this,e=>this._options.read(e).maxComputationTime),this.showMoves=(0,I0.nK)(this,e=>this._options.read(e).experimental.showMoves&&this.renderSideBySide.read(e)),this.isInEmbeddedEditor=(0,I0.nK)(this,e=>this._options.read(e).isInEmbeddedEditor),this.diffWordWrap=(0,I0.nK)(this,e=>this._options.read(e).diffWordWrap),this.originalEditable=(0,I0.nK)(this,e=>this._options.read(e).originalEditable),this.diffCodeLens=(0,I0.nK)(this,e=>this._options.read(e).diffCodeLens),this.accessibilityVerbose=(0,I0.nK)(this,e=>this._options.read(e).accessibilityVerbose),this.diffAlgorithm=(0,I0.nK)(this,e=>this._options.read(e).diffAlgorithm),this.showEmptyDecorations=(0,I0.nK)(this,e=>this._options.read(e).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=(0,I0.nK)(this,e=>this._options.read(e).onlyShowAccessibleDiffViewer),this.compactMode=(0,I0.nK)(this,e=>this._options.read(e).compactMode),this.trueInlineDiffRenderingEnabled=(0,I0.nK)(this,e=>this._options.read(e).experimental.useTrueInlineView),this.useTrueInlineDiffRendering=(0,I0.nK)(this,e=>!this.renderSideBySide.read(e)&&this.trueInlineDiffRenderingEnabled.read(e)),this.hideUnchangedRegions=(0,I0.nK)(this,e=>this._options.read(e).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=(0,I0.nK)(this,e=>this._options.read(e).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=(0,I0.nK)(this,e=>this._options.read(e).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=(0,I0.nK)(this,e=>this._options.read(e).hideUnchangedRegions.minimumLineCount),this._model=(0,I0.uh)(this,void 0),this.shouldRenderInlineViewInSmartMode=this._model.map(this,e=>(0,m_.lI)(this,t=>{var s;let x=e?.diff.read(t);return x?(s=this.trueInlineDiffRenderingEnabled.read(t),x.mappings.every(e=>0===e.lineRangeMapping.original.length||0===e.lineRangeMapping.modified.length||s&&BF(e.lineRangeMapping))):void 0})).flatten().map(this,e=>!!e),this.inlineViewHideOriginalLineNumbers=this.compactMode;let s={...e,...mA(e,NJ)};this._options=(0,I0.uh)(this,s)}updateOptions(e){let t=mA(e,this._options.get()),s={...this._options.get(),...e,...t};this._options.set(s,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}setModel(e){this._model.set(e,void 0)}};function mA(e,t){return{enableSplitViewResizing:cd(e.enableSplitViewResizing,t.enableSplitViewResizing),splitViewDefaultRatio:function(e,t,s,x){if(void 0===e)return .5;let E=cG.float(e,.5);return cG.clamp(E,.1,.9)}(e.splitViewDefaultRatio,0,0,0),renderSideBySide:cd(e.renderSideBySide,t.renderSideBySide),renderMarginRevertIcon:cd(e.renderMarginRevertIcon,t.renderMarginRevertIcon),maxComputationTime:cp(e.maxComputationTime,t.maxComputationTime,0,1073741824),maxFileSize:cp(e.maxFileSize,t.maxFileSize,0,1073741824),ignoreTrimWhitespace:cd(e.ignoreTrimWhitespace,t.ignoreTrimWhitespace),renderIndicators:cd(e.renderIndicators,t.renderIndicators),originalEditable:cd(e.originalEditable,t.originalEditable),diffCodeLens:cd(e.diffCodeLens,t.diffCodeLens),renderOverviewRuler:cd(e.renderOverviewRuler,t.renderOverviewRuler),diffWordWrap:cm(e.diffWordWrap,t.diffWordWrap,["off","on","inherit"]),diffAlgorithm:cm(e.diffAlgorithm,t.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:cd(e.accessibilityVerbose,t.accessibilityVerbose),experimental:{showMoves:cd(e.experimental?.showMoves,t.experimental.showMoves),showEmptyDecorations:cd(e.experimental?.showEmptyDecorations,t.experimental.showEmptyDecorations),useTrueInlineView:cd(e.experimental?.useTrueInlineView,t.experimental.useTrueInlineView)},hideUnchangedRegions:{enabled:cd(e.hideUnchangedRegions?.enabled??e.experimental?.collapseUnchangedRegions,t.hideUnchangedRegions.enabled),contextLineCount:cp(e.hideUnchangedRegions?.contextLineCount,t.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:cp(e.hideUnchangedRegions?.minimumLineCount,t.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:cp(e.hideUnchangedRegions?.revealLineCount,t.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:cd(e.isInEmbeddedEditor,t.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:cd(e.onlyShowAccessibleDiffViewer,t.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:cp(e.renderSideBySideInlineBreakpoint,t.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:cd(e.useInlineViewWhenSpaceIsLimited,t.useInlineViewWhenSpaceIsLimited),renderGutterMenu:cd(e.renderGutterMenu,t.renderGutterMenu),compactMode:cd(e.compactMode,t.compactMode)}}mO=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([function(e,t){Nu(e,t,1)}],mO);var mo=function(e,t){return function(s,x){t(s,x,e)}};let mN=class extends mR{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,s,x,E,a,r,i){let n;super(),this._domElement=e,this._parentContextKeyService=x,this._parentInstantiationService=E,this._accessibilitySignalService=r,this._editorProgressService=i,this.elements=RW("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[RW("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),RW("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),RW("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register((0,I0.DN)(this,void 0)),this._diffModel=(0,I0.nK)(this,e=>this._diffModelSrc.read(e)?.object),this.onDidChangeModel=T0.ju.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new DF([Oo.i6,this._contextKeyService]))),this._boundarySashes=(0,I0.uh)(this,void 0),this._accessibleDiffViewerShouldBeVisible=(0,I0.uh)(this,!1),this._accessibleDiffViewerVisible=(0,I0.nK)(this,e=>!!this._options.onlyShowAccessibleDiffViewer.read(e)||this._accessibleDiffViewerShouldBeVisible.read(e)),this._movedBlocksLinesPart=(0,I0.uh)(this,void 0),this._layoutInfo=(0,I0.nK)(this,e=>{let t,s,x,E,a;let r=this._rootSizeObserver.width.read(e),i=this._rootSizeObserver.height.read(e);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=i+"px";let n=this._sash.read(e),_=this._gutter.read(e),T=_?.width.read(e)??0,S=this._overviewRulerPart.read(e)?.width??0;if(n){let i=n.sashLeft.read(e);t=0,s=i-T-(this._movedBlocksLinesPart.read(e)?.width.read(e)??0),a=i-T,E=r-(x=i)-S}else{a=0;let i=this._options.inlineViewHideOriginalLineNumbers.read(e);t=T,E=r-(x=T+(s=i?0:Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read(e))))-S}return this.elements.original.style.left=t+"px",this.elements.original.style.width=s+"px",this._editors.original.layout({width:s,height:i},!0),_?.layout(a),this.elements.modified.style.left=x+"px",this.elements.modified.style.width=E+"px",this._editors.modified.layout({width:E,height:i},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((e,t)=>e?.diff.read(t)),this.onDidUpdateDiff=T0.ju.fromObservableLight(this._diffValue),a.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register((0,TD.OF)(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new Gf(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout(t.automaticLayout??!1),this._options=this._instantiationService.createInstance(mO,t),this._register((0,I0.EH)(e=>{this._options.setWidth(this._rootSizeObserver.width.read(e))})),this._contextKeyService.createKey(eG.isEmbeddedDiffEditor.key,!1),this._register(mc(eG.isEmbeddedDiffEditor,this._contextKeyService,e=>this._options.isInEmbeddedEditor.read(e))),this._register(mc(eG.comparingMovedCode,this._contextKeyService,e=>!!this._diffModel.read(e)?.movedTextToCompare.read(e))),this._register(mc(eG.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,e=>this._options.couldShowInlineViewBecauseOfSize.read(e))),this._register(mc(eG.diffEditorInlineMode,this._contextKeyService,e=>!this._options.renderSideBySide.read(e))),this._register(mc(eG.hasChanges,this._contextKeyService,e=>(this._diffModel.read(e)?.diff.read(e)?.mappings.length??0)>0)),this._editors=this._register(this._instantiationService.createInstance(mS,this.elements.original,this.elements.modified,this._options,s,(e,t,s,x)=>this._createInnerEditor(e,t,s,x))),this._register(mc(eG.diffEditorOriginalWritable,this._contextKeyService,e=>this._options.originalEditable.read(e))),this._register(mc(eG.diffEditorModifiedWritable,this._contextKeyService,e=>!this._options.readOnly.read(e))),this._register(mc(eG.diffEditorOriginalUri,this._contextKeyService,e=>this._diffModel.read(e)?.model.original.uri.toString()??"")),this._register(mc(eG.diffEditorModifiedUri,this._contextKeyService,e=>this._diffModel.read(e)?.model.modified.uri.toString()??"")),this._overviewRulerPart=(0,Gp.kA)(this,e=>this._options.renderOverviewRuler.read(e)?this._instantiationService.createInstance(Bo(ma,e),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(e=>e.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);let _={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((e,t)=>e-(this._overviewRulerPart.read(t)?.width??0))};this._sashLayout=new Bv(this._options,_),this._sash=(0,Gp.kA)(this,e=>{let t=this._options.renderSideBySide.read(e);return this.elements.root.classList.toggle("side-by-side",t),t?new Bk(this.elements.root,_,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);let T=(0,Gp.kA)(this,e=>this._instantiationService.createInstance(Bo(ms,e),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);(0,Gp.kA)(this,e=>this._instantiationService.createInstance(Bo(Bb,e),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);let S=new Set,R=new Set,O=!1,A=(0,Gp.kA)(this,e=>this._instantiationService.createInstance(Bo(Bm,e),SK(this._domElement),this._editors,this._diffModel,this._options,this,()=>O||T.get().isUpdatingHiddenAreas,S,R)).recomputeInitiallyAndOnChange(this._store),o=(0,I0.nK)(this,e=>{let t=A.read(e).viewZones.read(e).orig,s=T.read(e).viewZones.read(e).origViewZones;return t.concat(s)}),N=(0,I0.nK)(this,e=>{let t=A.read(e).viewZones.read(e).mod,s=T.read(e).viewZones.read(e).modViewZones;return t.concat(s)});this._register(GX(this._editors.original,o,e=>{O=e},S)),this._register(GX(this._editors.modified,N,e=>{(O=e)?n=GY.capture(this._editors.modified):(n?.restore(this._editors.modified),n=void 0)},R)),this._accessibleDiffViewer=(0,Gp.kA)(this,e=>this._instantiationService.createInstance(Bo(Gq,e),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(e,t)=>this._accessibleDiffViewerShouldBeVisible.set(e,t),this._options.onlyShowAccessibleDiffViewer.map(e=>!e),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((e,t)=>e?.diff.read(t)?.mappings.map(e=>e.lineRangeMapping)),new G5(this._editors))).recomputeInitiallyAndOnChange(this._store);let I=this._accessibleDiffViewerVisible.map(e=>e?"hidden":"visible");this._register(GV(this.elements.modified,{visibility:I})),this._register(GV(this.elements.original,{visibility:I})),this._createDiffEditorContributions(),a.addDiffEditor(this),this._gutter=(0,Gp.kA)(this,e=>this._options.shouldRenderGutterMenu.read(e)?this._instantiationService.createInstance(Bo(B5,e),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register((0,I0.jx)(this._layoutInfo)),(0,Gp.kA)(this,e=>new(Bo(By,e))(this.elements.root,this._diffModel,this._layoutInfo.map(e=>e.originalEditor),this._layoutInfo.map(e=>e.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,e=>{this._movedBlocksLinesPart.set(e,void 0)}),this._register(T0.ju.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,e=>this._handleCursorPositionChange(e,!0))),this._register(T0.ju.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,e=>this._handleCursorPositionChange(e,!1)));let h=this._diffModel.map(this,(e,t)=>{if(e)return void 0===e.diff.read(t)&&!e.isDiffUpToDate.read(t)});this._register((0,I0.gp)((e,t)=>{if(!0===h.read(e)){let e=this._editorProgressService.show(!0,1e3);t.add((0,TD.OF)(()=>e.done()))}})),this._register((0,I0.gp)((e,t)=>{t.add(new(Bo(mi,e))(this._editors,this._diffModel,this._options,this))})),this._register((0,I0.gp)((e,t)=>{let s=this._diffModel.read(e);if(s)for(let e of[s.model.original,s.model.modified])t.add(e.onWillDispose(e=>{(0,TV.dL)(new TV.he("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register((0,I0.EH)(e=>{this._options.setModel(this._diffModel.read(e))}))}_createInnerEditor(e,t,s,x){return e.createInstance(GA,t,s,x)}_createDiffEditorContributions(){for(let e of f.getDiffEditorContributions())try{this._register(this._instantiationService.createInstance(e.ctor,this))}catch(e){(0,TV.dL)(e)}}get _targetEditor(){return this._editors.modified}getEditorType(){return MC.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){return{original:this._editors.original.saveViewState(),modified:this._editors.modified.saveViewState(),modelState:this._diffModel.get()?.serializeState()}}restoreViewState(e){e&&e.original&&e.modified&&(this._editors.original.restoreViewState(e.original),this._editors.modified.restoreViewState(e.modified),e.modelState&&this._diffModel.get()?.restoreSerializedState(e.modelState))}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(BC,e,this._options)}getModel(){return this._diffModel.get()?.model??null}setModel(e){let t=e?"model"in e?Gv.create(e).createNewRef(this):Gv.create(this.createViewModel(e),this):null;this.setDiffModel(t)}setDiffModel(e,t){let s=this._diffModel.get();!e&&s&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==e?.object&&(0,I0.c8)(t,t=>{let s=e?.object;I0.rD.batchEventsGlobally(t,()=>{this._editors.original.setModel(s?s.model.original:null),this._editors.modified.setModel(s?s.model.modified:null)});let x=this._diffModelSrc.get()?.createNewRef(this);this._diffModelSrc.set(e?.createNewRef(this),t),setTimeout(()=>{x?.dispose()},0)})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){let e=this._diffModel.get()?.diff.get();return e?e.mappings.map(e=>{let t,s,x,E;let a=e.lineRangeMapping,r=a.innerChanges;return a.original.isEmpty?(t=a.original.startLineNumber-1,s=0,r=void 0):(t=a.original.startLineNumber,s=a.original.endLineNumberExclusive-1),a.modified.isEmpty?(x=a.modified.startLineNumber-1,E=0,r=void 0):(x=a.modified.startLineNumber,E=a.modified.endLineNumberExclusive-1),{originalStartLineNumber:t,originalEndLineNumber:s,modifiedStartLineNumber:x,modifiedEndLineNumber:E,charChanges:r?.map(e=>({originalStartLineNumber:e.originalRange.startLineNumber,originalStartColumn:e.originalRange.startColumn,originalEndLineNumber:e.originalRange.endLineNumber,originalEndColumn:e.originalRange.endColumn,modifiedStartLineNumber:e.modifiedRange.startLineNumber,modifiedStartColumn:e.modifiedRange.startColumn,modifiedEndLineNumber:e.modifiedRange.endLineNumber,modifiedEndColumn:e.modifiedRange.endColumn}))}}):null}revert(e){let t=this._diffModel.get();t&&t.isDiffUpToDate.get()&&this._editors.modified.executeEdits("diffEditor",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}])}revertRangeMappings(e){let t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;let s=e.map(e=>({range:e.modifiedRange,text:t.model.original.getValueInRange(e.originalRange)}));this._editors.modified.executeEdits("diffEditor",s)}_goTo(e){this._editors.modified.setPosition(new N0.L(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){let t;let s=this._diffModel.get()?.diff.get()?.mappings;if(!s||0===s.length)return;let x=this._editors.modified.getPosition().lineNumber;t="next"===e?s.find(e=>e.lineRangeMapping.modified.startLineNumber>x)??s[0]:(0,Yr.dF)(s,e=>e.lineRangeMapping.modified.startLineNumber<x)??s[s.length-1],this._goTo(t),t.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(DZ.diffLineDeleted,{source:"diffEditor.goToDiff"}):t.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(DZ.diffLineInserted,{source:"diffEditor.goToDiff"}):t&&this._accessibilitySignalService.playSignal(DZ.diffLineModified,{source:"diffEditor.goToDiff"})}revealFirstDiff(){let e=this._diffModel.get();e&&this.waitForDiff().then(()=>{let t=e.diff.get()?.mappings;t&&0!==t.length&&this._goTo(t[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){let e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){let e;let t=this._editors.modified.hasWidgetFocus(),s=t?this._editors.modified:this._editors.original,x=t?this._editors.original:this._editors.modified,E=s.getSelection();if(E){let s=this._diffModel.get()?.diff.get()?.mappings.map(e=>t?e.lineRangeMapping.flip():e.lineRangeMapping);if(s){let t=Gb(E.getStartPosition(),s),x=Gb(E.getEndPosition(),s);e=OQ.e.plusRange(t,x)}}return{destination:x,destinationSelection:e}}switchSide(){let{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){let e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){let e=this._diffModel.get()?.unchangedRegions.get();e&&(0,I0.PS)(t=>{for(let s of e)s.collapseAll(t)})}showAllUnchangedRegions(){let e=this._diffModel.get()?.unchangedRegions.get();e&&(0,I0.PS)(t=>{for(let s of e)s.showAll(t)})}_handleCursorPositionChange(e,t){if(e?.reason===3){let s=this._diffModel.get()?.diff.get()?.mappings.find(s=>t?s.lineRangeMapping.modified.contains(e.position.lineNumber):s.lineRangeMapping.original.contains(e.position.lineNumber));s?.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(DZ.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):s?.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(DZ.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):s&&this._accessibilitySignalService.playSignal(DZ.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};mN=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([mo(3,Oo.i6),mo(4,Oe.TG),mo(5,Ot),mo(6,DK),mo(7,Ih)],mN);var mI=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r},mh=function(e,t){return function(s,x){t(s,x,e)}};let mL=0,mC=!1,ml=class extends GA{constructor(e,t,s,x,E,a,r,R,O,A,o,N,I){let h={...t};h.ariaLabel=h.ariaLabel||W.editorViewAccessibleLabel,super(e,h,{},s,x,E,a,O,A,o,N,I),R instanceof Mt?this._standaloneKeybindingService=R:this._standaloneKeybindingService=null,function(e){if(!e){if(mC)return;mC=!0}!function(e){(i=document.createElement("div")).className="monaco-aria-container";let t=()=>{let e=document.createElement("div");return e.className="monaco-alert",e.setAttribute("role","alert"),e.setAttribute("aria-atomic","true"),i.appendChild(e),e};n=t(),_=t();let s=()=>{let e=document.createElement("div");return e.className="monaco-status",e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),i.appendChild(e),e};T=s(),S=s(),e.appendChild(i)}(e||Tu.document.body)}(h.ariaContainerElement),IB=(e,t)=>s.createInstance(Af,e,t,{}),IH=r}addCommand(e,t,s){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;let x="DYNAMIC_"+ ++mL,E=Oo.Ao.deserialize(s);return this._standaloneKeybindingService.addDynamicKeybinding(x,e,t,E),x}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw 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"),TD.JT.None;let t=e.id,s=e.label,x=Oo.Ao.and(Oo.Ao.equals("editorId",this.getId()),Oo.Ao.deserialize(e.precondition)),E=e.keybindings,a=Oo.Ao.and(x,Oo.Ao.deserialize(e.keybindingContext)),r=e.contextMenuGroupId||null,i=e.contextMenuOrder||0,n=(t,...s)=>Promise.resolve(e.run(this,...s)),_=new TD.SL,T=this.getId()+":"+t;if(_.add(OA.registerCommand(T,n)),r&&_.add(OP.appendMenuItem(Ou.EditorContext,{command:{id:T,title:s},when:x,group:r,order:i})),Array.isArray(E))for(let e of E)_.add(this._standaloneKeybindingService.addDynamicKeybinding(T,e,n,a));let S=new p4(T,s,s,void 0,x,(...t)=>Promise.resolve(e.run(this,...t)),this._contextKeyService);return this._actions.set(t,S),_.add((0,TD.OF)(()=>{this._actions.delete(t)})),_}_triggerCommand(e,t){if(this._codeEditorService instanceof Ar)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};ml=mI([mh(2,Oe.TG),mh(3,Ot),mh(4,OO),mh(5,Oo.i6),mh(6,Am),mh(7,AH),mh(8,As.XE),mh(9,AA),mh(10,Nu),mh(11,OJ.c_),mh(12,Oj.ILanguageFeaturesService)],ml);let mu=class extends ml{constructor(e,t,s,x,E,a,r,i,n,_,T,S,R,O,A,o){let N;let I={...t};M_(T,I,!1);let h=n.registerEditorContainer(e);"string"==typeof I.theme&&n.setTheme(I.theme),void 0!==I.autoDetectHighContrast&&n.setAutoDetectHighContrast(!!I.autoDetectHighContrast);let L=I.model;if(delete I.model,super(e,I,s,x,E,a,r,i,n,_,S,A,o),this._configurationService=T,this._standaloneThemeService=n,this._register(h),void 0===L){let e=O.getLanguageIdByMimeType(I.language)||I.language||NR.bd;N=mM(R,O,I.value||"",e,void 0),this._ownsModel=!0}else N=L,this._ownsModel=!1;if(this._attachModel(N),N){let e={oldModelUrl:null,newModelUrl:N.uri};this._onDidChangeModel.fire(e)}}dispose(){super.dispose()}updateOptions(e){M_(this._configurationService,e,!1),"string"==typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),void 0!==e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};mu=mI([mh(2,Oe.TG),mh(3,Ot),mh(4,OO),mh(5,Oo.i6),mh(6,Am),mh(7,AH),mh(8,Di),mh(9,AA),mh(10,AG.Ui),mh(11,Nu),mh(12,Os.IModelService),mh(13,NS.O),mh(14,OJ.c_),mh(15,Oj.ILanguageFeaturesService)],mu);let mD=class extends mN{constructor(e,t,s,x,E,a,r,i,n,_,T,S){let R={...t};M_(i,R,!0);let O=a.registerEditorContainer(e);"string"==typeof R.theme&&a.setTheme(R.theme),void 0!==R.autoDetectHighContrast&&a.setAutoDetectHighContrast(!!R.autoDetectHighContrast),super(e,R,{},x,s,E,S,_),this._configurationService=i,this._standaloneThemeService=a,this._register(O)}dispose(){super.dispose()}updateOptions(e){M_(this._configurationService,e,!0),"string"==typeof e.theme&&this._standaloneThemeService.setTheme(e.theme),void 0!==e.autoDetectHighContrast&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,s){return e.createInstance(ml,t,s)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,s){return this.getModifiedEditor().addCommand(e,t,s)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};function mM(e,t,s,x,E){if(s=s||"",!x){let x=s.indexOf("\n"),a=s;return -1!==x&&(a=s.substring(0,x)),mP(e,s,t.createByFilepathOrFirstLine(E||null,a),E)}return mP(e,s,t.createById(x),E)}function mP(e,t,s,x){return e.createModel(t,s,x)}mD=mI([mh(2,Oe.TG),mh(3,Oo.i6),mh(4,Ot),mh(5,Di),mh(6,AA),mh(7,AG.Ui),mh(8,AF),mh(9,Ih),mh(10,DC),mh(11,DK)],mD),x(45888);var md=function(e,t){return function(s,x){t(s,x,e)}};class mU{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let mp=class extends TD.JT{constructor(e,t,s,x,E){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=s,this._instantiationService=x,this._viewModel=(0,B9.uh)(this,void 0),this._collapsed=(0,I0.nK)(this,e=>this._viewModel.read(e)?.collapsed.read(e)),this._editorContentHeight=(0,B9.uh)(this,500),this.contentHeight=(0,I0.nK)(this,e=>(this._collapsed.read(e)?0:this._editorContentHeight.read(e))+this._outerEditorHeight),this._modifiedContentWidth=(0,B9.uh)(this,0),this._modifiedWidth=(0,B9.uh)(this,0),this._originalContentWidth=(0,B9.uh)(this,0),this._originalWidth=(0,B9.uh)(this,0),this.maxScroll=(0,I0.nK)(this,e=>{let t=this._modifiedContentWidth.read(e)-this._modifiedWidth.read(e),s=this._originalContentWidth.read(e)-this._originalWidth.read(e);return t>s?{maxScroll:t,width:this._modifiedWidth.read(e)}:{maxScroll:s,width:this._originalWidth.read(e)}}),this._elements=RW("div.multiDiffEntry",[RW("div.header@header",[RW("div.header-content",[RW("div.collapse-button@collapseButton"),RW("div.file-path",[RW("div.title.modified.show-file-icons@primaryPath",[]),RW("div.status.deleted@status",["R"]),RW("div.title.original.show-file-icons@secondaryPath",[])]),RW("div.actions@actions")])]),RW("div.editorParent",[RW("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(mN,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=me(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=me(this.editor.getOriginalEditor()).isFocused,this.isFocused=(0,I0.nK)(this,e=>this.isModifedFocused.read(e)||this.isOriginalFocused.read(e)),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 TD.SL),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;let a=new Ly(this._elements.collapseButton,{});this._register((0,I0.EH)(e=>{a.element.className="",a.icon=this._collapsed.read(e)?AK.l.chevronRight:AK.l.chevronDown})),this._register(a.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register((0,I0.EH)(e=>{this._elements.editor.style.display=this._collapsed.read(e)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(e=>{let t=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(t,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(e=>{let t=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(t,void 0)})),this._register(this.editor.onDidContentSizeChange(e=>{(0,B9.Bl)(t=>{this._editorContentHeight.set(e.contentHeight,t),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),t),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),t)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(e=>{if(this._isSettingScrollTop||!e.scrollTopChanged||!this._data)return;let t=e.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(t)})),this._register((0,I0.EH)(e=>{let t=this._viewModel.read(e)?.isActive.read(e);this._elements.root.classList.toggle("active",t)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(E.createScoped(this._elements.actions));let r=this._register(this._instantiationService.createChild(new DF([Oo.i6,this._contextKeyService])));this._register(r.createInstance(B2,this._elements.actions,Ou.MultiDiffEditorFileToolbar,{actionRunner:this._register(new BK(()=>this._viewModel.get()?.modifiedUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:e=>e.startsWith("navigation")},actionViewItemProvider:(e,t)=>(function(e,t,s){return t instanceof OU?e.createInstance(hz,t,s):t instanceof Od?t.item.isSelection?e.createInstance(h$,t):t.item.rememberDefaultAction?e.createInstance(hj,t,{...s,persistLastActionId:!0}):e.createInstance(hq,t,s):void 0})(r,e,t)}))}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){function t(e){return{...e,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(this._data=e,!e){(0,B9.Bl)(e=>{this._viewModel.set(void 0,e),this.editor.setDiffModel(null,e),this._dataStore.clear()});return}let s=e.viewModel.documentDiffItem;if((0,B9.Bl)(x=>{this._resourceLabel?.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:void 0===e.viewModel.modifiedUri});let E=!1,a=!1,r=!1,i="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(i="R",E=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(i="A",r=!0):(i="D",a=!0),this._elements.status.classList.toggle("renamed",E),this._elements.status.classList.toggle("deleted",a),this._elements.status.classList.toggle("added",r),this._elements.status.innerText=i,this._resourceLabel2?.setUri(E?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,x),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,x),this.editor.updateOptions(t(s.options??{}))}),s.onOptionsDidChange&&this._dataStore.add(s.onOptionsDidChange(()=>{this.editor.updateOptions(t(s.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,e=>{e||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(let[t,s]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(t,s)}render(e,t,s,x){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";let E=e.length-this._headerHeight,a=Math.max(0,Math.min(x.start-e.start,E));this._elements.header.style.transform=`translateY(${a}px)`,(0,B9.Bl)(s=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=s,this.editor.getOriginalEditor().setScrollTop(s)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",a>0||s>0),this._elements.header.classList.toggle("collapsed",a===E)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};mp=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([md(3,Oe.TG),md(4,Oo.i6)],mp);class mY{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(0===this._unused.size)t=this._create(e),this._itemData.set(t,e);else{let s=[...this._unused.values()];t=s.find(t=>this._itemData.get(t).getId()===e.getId())??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(let e of this._used)e.dispose();for(let e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var mG=function(e,t){return function(s,x){t(s,x,e)}};let mB=class extends TD.JT{constructor(e,t,s,x,E,r){super(),this._element=e,this._dimension=t,this._viewModel=s,this._workbenchUIElementFactory=x,this._parentContextKeyService=E,this._parentInstantiationService=r,this._scrollableElements=RW("div.scrollContent",[RW("div@content",{style:{overflow:"hidden"}}),RW("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new Az({forceIntegerValues:!1,scheduleAtNextAnimationFrame:e=>a(SK(this._element),e),smoothScrollDuration:100})),this._scrollableElement=this._register(new A7(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=RW("div.monaco-component.multiDiffEditor",{},[RW("div",{},[this._scrollableElement.getDomNode()]),RW("div.placeholder@placeholder",{},[RW("div",[(0,ch.NC)("noChangedFiles","No Changed Files")])])]),this._sizeObserver=this._register(new Gf(this._element,void 0)),this._objectPool=this._register(new mY(e=>{let t=this._instantiationService.createInstance(mp,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return t.setData(e),t})),this.scrollTop=(0,I0.rD)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=(0,I0.rD)(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=(0,I0.Be)(this,(e,t)=>{let s=this._viewModel.read(e);if(!s)return{items:[],getItem:e=>{throw new TV.he}};let x=s.items.read(e),E=new Map;return{items:x.map(e=>{let s=t.add(new mm(e,this._objectPool,this.scrollLeft,e=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+e})})),x=this._lastDocStates?.[s.getKey()];return x&&(0,B9.PS)(e=>{s.setViewState(x,e)}),E.set(e,s),s}),getItem:e=>E.get(e)}}),this._viewItems=this._viewItemsInfo.map(this,e=>e.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(e,t)=>e.reduce((e,s)=>e+s.contentHeight.read(t)+this._spaceBetweenPx,0)),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new DF([Oo.i6,this._contextKeyService]))),this._lastDocStates={},this._contextKeyService.createKey(eG.inMultiDiffEditor.key,!0),this._register((0,I0.gp)((e,t)=>{let s=this._viewModel.read(e);if(s&&s.contextKeys)for(let[e,x]of Object.entries(s.contextKeys)){let s=this._contextKeyService.createKey(e,void 0);s.set(x),t.add((0,TD.OF)(()=>s.reset()))}}));let i=this._parentContextKeyService.createKey(eG.multiDiffEditorAllCollapsed.key,!1);this._register((0,I0.EH)(e=>{let t=this._viewModel.read(e);if(t){let s=t.items.read(e).every(t=>t.collapsed.read(e));i.set(s)}})),this._register((0,I0.EH)(e=>{let t=this._dimension.read(e);this._sizeObserver.observe(t)})),this._register((0,I0.EH)(e=>{let t=this._viewItems.read(e);this._elements.placeholder.classList.toggle("visible",0===t.length)})),this._scrollableElements.content.style.position="relative",this._register((0,I0.EH)(e=>{let t=this._sizeObserver.height.read(e);this._scrollableElements.root.style.height=`${t}px`;let s=this._totalHeight.read(e);this._scrollableElements.content.style.height=`${s}px`;let x=this._sizeObserver.width.read(e),E=x,a=this._viewItems.read(e),r=(0,Yr.hV)(a,(0,cO.tT)(t=>t.maxScroll.read(e).maxScroll,cO.fv));r&&(E=x+r.maxScroll.read(e).maxScroll),this._scrollableElement.setScrollDimensions({width:x,height:t,scrollHeight:s,scrollWidth:E})})),e.replaceChildren(this._elements.root),this._register((0,TD.OF)(()=>{e.replaceChildren()})),this._register(this._register((0,I0.EH)(e=>{(0,B9.Bl)(t=>{this.render(e)})})))}render(e){let t=this.scrollTop.read(e),s=0,x=0,E=0,a=this._sizeObserver.height.read(e),r=GW.q.ofStartAndLength(t,a),i=this._sizeObserver.width.read(e);for(let n of this._viewItems.read(e)){let _=n.contentHeight.read(e),T=Math.min(_,a),S=GW.q.ofStartAndLength(x,T),R=GW.q.ofStartAndLength(E,_);if(R.isBefore(r))s-=_-T,n.hide();else if(R.isAfter(r))n.hide();else{let e=Math.max(0,Math.min(r.start-R.start,_-T));s-=e;let x=GW.q.ofStartAndLength(t+s,a);n.render(S,e,i,x)}x+=T+this._spaceBetweenPx,E+=_+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+s)}px)`}};mB=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([mG(4,Oo.i6),mG(5,Oe.TG)],mB);class mm extends TD.JT{constructor(e,t,s,x){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=s,this._deltaScrollVertical=x,this._templateRef=this._register((0,B9.DN)(this,void 0)),this.contentHeight=(0,I0.nK)(this,e=>this._templateRef.read(e)?.object.contentHeight?.read(e)??this.viewModel.lastTemplateData.read(e).contentHeight),this.maxScroll=(0,I0.nK)(this,e=>this._templateRef.read(e)?.object.maxScroll.read(e)??{maxScroll:0,scrollWidth:0}),this.template=(0,I0.nK)(this,e=>this._templateRef.read(e)?.object),this._isHidden=(0,I0.uh)(this,!1),this._isFocused=(0,I0.nK)(this,e=>this.template.read(e)?.isFocused.read(e)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register((0,I0.EH)(e=>{let t=this._scrollLeft.read(e);this._templateRef.read(e)?.object.setScrollLeft(t)})),this._register((0,I0.EH)(e=>{let t=this._templateRef.read(e);!t||!this._isHidden.read(e)||t.object.isFocused.read(e)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);let s=this.viewModel.lastTemplateData.get(),x=e.selections?.map(P4.Y.liftSelection);this.viewModel.lastTemplateData.set({...s,selections:x},t);let E=this._templateRef.get();E&&x&&E.object.editor.setSelections(x)}_updateTemplateData(e){let t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){let e=this._templateRef.get();e&&(0,B9.PS)(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,s,x){this._isHidden.set(!1,void 0);let E=this._templateRef.get();if(!E){E=this._objectPool.getUnusedObj(new mU(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(E,void 0);let e=this.viewModel.lastTemplateData.get().selections;e&&E.object.editor.setSelections(e)}E.object.render(e,s,t,x)}}(0,AY.P6G)("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},(0,ch.NC)("multiDiffEditor.headerBackground","The background color of the diff editor's header")),(0,AY.P6G)("multiDiffEditor.background",AY.cvW,(0,ch.NC)("multiDiffEditor.background","The background color of the multi file diff editor")),(0,AY.P6G)("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},(0,ch.NC)("multiDiffEditor.border","The border color of the multi file diff editor"));let mf=class extends TD.JT{constructor(e,t,s){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=s,this._dimension=(0,I0.uh)(this,void 0),this._viewModel=(0,I0.uh)(this,void 0),this._widgetImpl=(0,I0.Be)(this,(e,t)=>(Bo(mp,e),t.add(this._instantiationService.createInstance(Bo(mB,e),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register((0,I0.jx)(this._widgetImpl))}};function mg(e){let t=eD.get(AH);return t instanceof Mt?t.addDynamicKeybindings(e.map(e=>({keybinding:e.keybinding,command:e.command,commandArgs:e.commandArgs,when:Oo.Ao.deserialize(e.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),TD.JT.None)}function mF(e,t){return"boolean"==typeof e?e:t}function mH(e,t){return"string"==typeof e?e:t}function my(e,t=!1){t&&(e=e.map(function(e){return e.toLowerCase()}));let s=function(e){let t={};for(let s of e)t[s]=!0;return t}(e);return t?function(e){return void 0!==s[e.toLowerCase()]&&s.hasOwnProperty(e.toLowerCase())}:function(e){return void 0!==s[e]&&s.hasOwnProperty(e)}}function mV(e,t,s){let x;t=t.replace(/@@/g,`\x01`);let E=0;do x=!1,t=t.replace(/@(\w+)/g,function(s,E){x=!0;let a="";if("string"==typeof e[E])a=e[E];else if(e[E]&&e[E]instanceof RegExp)a=e[E].source;else{if(void 0===e[E])throw Mq(e,"language definition does not contain attribute '"+E+"', used at: "+t);throw Mq(e,"attribute reference '"+E+"' must be a string, used at: "+t)}return a?"(?:"+a+")":""}),E++;while(x&&E<5);t=t.replace(/\x01/g,"@");let a=(e.ignoreCase?"i":"")+(e.unicode?"u":"");if(s&&t.match(/\$[sS](\d\d?)/g)){let s=null,x=null;return E=>{let r;return x&&s===E?x:(s=E,x=new RegExp((r=null,t.replace(/\$[sS](\d\d?)/g,function(t,s){return(null===r&&(r=E.split(".")).unshift(E),s&&s<r.length)?MZ(e,r[s]):""})),a))}}return new RegExp(t,a)}mf=function(e,t,s,x){var E,a=arguments.length,r=a<3?t:null===x?x=Object.getOwnPropertyDescriptor(t,s):x;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,x);else for(var i=e.length-1;i>=0;i--)(E=e[i])&&(r=(a<3?E(r):a>3?E(t,s,r):E(t,s))||r);return a>3&&r&&Object.defineProperty(t,s,r),r}([(p=Oe.TG,function(e,t){p(e,t,2)})],mf);class mX{constructor(e){this.regex=RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let s;if("string"==typeof t)s=t;else if(t instanceof RegExp)s=t.source;else throw Mq(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=s.length>0&&"^"===s[0],this.name=this.name+": "+s,this.regex=mV(e,"^(?:"+(this.matchOnlyAtLineStart?s.substr(1):s)+")",!0)}setAction(e,t){this.action=function e(t,s,x){if(!x)return{token:""};if("string"==typeof x)return x;if(x.token||""===x.token){if("string"!=typeof x.token)throw Mq(t,"a 'token' attribute must be of type string, in rule: "+s);{let e={token:x.token};if(x.token.indexOf("$")>=0&&(e.tokenSubst=!0),"string"==typeof x.bracket){if("@open"===x.bracket)e.bracket=1;else if("@close"===x.bracket)e.bracket=-1;else throw Mq(t,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+s)}if(x.next){if("string"!=typeof x.next)throw Mq(t,"the next state must be a string value in rule: "+s);{let E=x.next;if(!/^(@pop|@push|@popall)$/.test(E)&&("@"===E[0]&&(E=E.substr(1)),0>E.indexOf("$")&&!function(e,t){let s=t;for(;s&&s.length>0;){if(e.stateNames[s])return!0;let t=s.lastIndexOf(".");s=t<0?null:s.substr(0,t)}return!1}(t,Mj(t,E,"",[],""))))throw Mq(t,"the next state '"+x.next+"' is not defined in rule: "+s);e.next=E}}return"number"==typeof x.goBack&&(e.goBack=x.goBack),"string"==typeof x.switchTo&&(e.switchTo=x.switchTo),"string"==typeof x.log&&(e.log=x.log),"string"==typeof x.nextEmbedded&&(e.nextEmbedded=x.nextEmbedded,t.usesEmbedded=!0),e}}if(Array.isArray(x)){let E=[];for(let a=0,r=x.length;a<r;a++)E[a]=e(t,s,x[a]);return{group:E}}if(x.cases){let E=[];for(let a in x.cases)if(x.cases.hasOwnProperty(a)){let r=e(t,s,x.cases[a]);"@default"===a||"@"===a||""===a?E.push({test:void 0,value:r,name:a}):"@eos"===a?E.push({test:function(e,t,s,x){return x},value:r,name:a}):E.push(function(e,t,s,x){let E,a=-1,r=s,i=s.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);i&&(i[3]&&(a=parseInt(i[3]),i[2]&&(a+=100)),r=i[4]);let n="~",_=r;if(r&&0!==r.length?/^\w*$/.test(_)?n="==":(i=r.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(n=i[1],_=i[2]):(n="!=",_=""),("~"===n||"!~"===n)&&/^(\w|\|)*$/.test(_)){let t=my(_.split("|"),e.ignoreCase);E=function(e){return"~"===n?t(e):!t(e)}}else if("@"===n||"!@"===n){let s=e[_];if(!s)throw Mq(e,"the @ match target '"+_+"' is not defined, in rule: "+t);if(!function(e,t){if(!t||!Array.isArray(t))return!1;for(let s of t)if(!e(s))return!1;return!0}(function(e){return"string"==typeof e},s))throw Mq(e,"the @ match target '"+_+"' must be an array of strings, in rule: "+t);let x=my(s,e.ignoreCase);E=function(e){return"@"===n?x(e):!x(e)}}else if("~"===n||"!~"===n){if(0>_.indexOf("$")){let t=mV(e,"^"+_+"$",!1);E=function(e){return"~"===n?t.test(e):!t.test(e)}}else E=function(t,s,x,E){return mV(e,"^"+Mj(e,_,s,x,E)+"$",!1).test(t)}}else if(0>_.indexOf("$")){let t=MZ(e,_);E=function(e){return"=="===n?e===t:e!==t}}else{let t=MZ(e,_);E=function(s,x,E,a,r){let i=Mj(e,t,x,E,a);return"=="===n?s===i:s!==i}}return -1===a?{name:s,value:x,test:function(e,t,s,x){return E(e,e,t,s,x)}}:{name:s,value:x,test:function(e,t,s,x){let r=function(e,t,s,x){if(x<0)return e;if(x<t.length)return t[x];if(x>=100){x-=100;let e=s.split(".");if(e.unshift(s),x<e.length)return e[x]}return null}(e,t,s,a);return E(r||"",e,t,s,x)}}}(t,s,a,r))}let a=t.defaultToken;return{test:function(e,t,s,x){for(let a of E)if(!a.test||a.test(e,t,s,x))return a.value;return a}}}throw Mq(t,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+s)}(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function mb(e,t){if(!t||"object"!=typeof t)throw Error("Monarch: expecting a language definition object");let s={languageId:e,includeLF:mF(t.includeLF,!1),noThrow:!1,maxStack:100,start:"string"==typeof t.start?t.start:null,ignoreCase:mF(t.ignoreCase,!1),unicode:mF(t.unicode,!1),tokenPostfix:mH(t.tokenPostfix,"."+e),defaultToken:mH(t.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]};if(t.languageId=e,t.includeLF=s.includeLF,t.ignoreCase=s.ignoreCase,t.unicode=s.unicode,t.noThrow=s.noThrow,t.usesEmbedded=s.usesEmbedded,t.stateNames=t.tokenizer,t.defaultToken=s.defaultToken,!t.tokenizer||"object"!=typeof t.tokenizer)throw Mq(s,"a language definition must define the 'tokenizer' attribute as an object");for(let e in s.tokenizer=[],t.tokenizer)if(t.tokenizer.hasOwnProperty(e)){s.start||(s.start=e);let x=t.tokenizer[e];s.tokenizer[e]=[],function e(x,E,a){for(let r of a){let a=r.include;if(a){if("string"!=typeof a)throw Mq(s,"an 'include' attribute must be a string at: "+x);if("@"===a[0]&&(a=a.substr(1)),!t.tokenizer[a])throw Mq(s,"include target '"+a+"' is not defined at: "+x);e(x+"."+a,E,t.tokenizer[a])}else{let e=new mX(x);if(Array.isArray(r)&&r.length>=1&&r.length<=3){if(e.setRegex(t,r[0]),r.length>=3){if("string"==typeof r[1])e.setAction(t,{token:r[1],next:r[2]});else if("object"==typeof r[1]){let s=r[1];s.next=r[2],e.setAction(t,s)}else throw Mq(s,"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: "+x)}else e.setAction(t,r[1])}else{if(!r.regex)throw Mq(s,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+x);r.name&&"string"==typeof r.name&&(e.name=r.name),r.matchOnlyAtStart&&(e.matchOnlyAtLineStart=mF(r.matchOnlyAtLineStart,!1)),e.setRegex(t,r.regex),e.setAction(t,r.action)}E.push(e)}}}("tokenizer."+e,s.tokenizer[e],x)}if(s.usesEmbedded=t.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw Mq(s,"the 'brackets' attribute must be defined as an array")}else t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];let x=[];for(let e of t.brackets){let t=e;if(t&&Array.isArray(t)&&3===t.length&&(t={token:t[2],open:t[0],close:t[1]}),t.open===t.close)throw Mq(s,"open and close brackets in a 'brackets' attribute must be different: "+t.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required.");if("string"==typeof t.open&&"string"==typeof t.token&&"string"==typeof t.close)x.push({token:t.token+s.tokenPostfix,open:MZ(s,t.open),close:MZ(s,t.close)});else throw Mq(s,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return s.brackets=x,s.noThrow=!0,s}class mv{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,s){if("function"==typeof this._actual.tokenize)return mk.adaptTokenize(this._languageId,this._actual,e,s);throw Error("Not supported!")}tokenizeEncoded(e,t,s){let x=this._actual.tokenizeEncoded(e,s);return new NA.DI(x.tokens,x.endState)}}class mk{constructor(e,t,s,x){this._languageId=e,this._actual=t,this._languageService=s,this._standaloneThemeService=x}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){let s=[],x=0;for(let E=0,a=e.length;E<a;E++){let a=e[E],r=a.startIndex;0===E?r=0:r<x&&(r=x),s[E]=new NA.WU(r,a.scopes,t),x=r}return s}static adaptTokenize(e,t,s,x){let E;let a=t.tokenize(s,x),r=mk._toClassicTokens(a.tokens,e);return E=a.endState.equals(x)?x:a.endState,new NA.hG(r,E)}tokenize(e,t,s){return mk.adaptTokenize(this._languageId,this._actual,e,s)}_toBinaryTokens(e,t){let s=e.encodeLanguageId(this._languageId),x=this._standaloneThemeService.getColorTheme().tokenTheme,E=[],a=0,r=0;for(let e=0,i=t.length;e<i;e++){let i=t[e],n=1024|x.match(s,i.scopes);if(a>0&&E[a-1]===n)continue;let _=i.startIndex;0===e?_=0:_<r&&(_=r),E[a++]=_,E[a++]=n,r=_}let i=new Uint32Array(a);for(let e=0;e<a;e++)i[e]=E[e];return i}tokenizeEncoded(e,t,s){let x;let E=this._actual.tokenize(e,s),a=this._toBinaryTokens(this._languageService.languageIdCodec,E.tokens);return x=E.endState.equals(s)?s:E.endState,new NA.DI(a,x)}}function mw(e){return e&&"function"==typeof e.then}function mW(e,t){return"tokenizeEncoded"in t?new mv(e,t):new mk(e,t,eD.get(NS.O),eD.get(Di))}function mK(e,t){let s=new NA.MO(async()=>{let s=await Promise.resolve(t.create());return s?"function"==typeof s.getInitialState?mW(e,s):new M6(eD.get(NS.O),eD.get(Di),e,mb(e,s),eD.get(AG.Ui)):null});return NA.RW.registerFactory(e,s)}let mQ=(0,Oe.yh)("IEditorCancelService"),mJ=new Oo.uy("cancellableOperation",!1,(0,ch.NC)("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));(0,AE.z)(mQ,class{constructor(){this._tokens=new WeakMap}add(e,t){let s,x=this._tokens.get(e);return x||(x=e.invokeWithinContext(e=>({key:mJ.bindTo(e.get(Oo.i6)),tokens:new OT.S})),this._tokens.set(e,x)),x.key.set(!0),s=x.tokens.push(t),()=>{s&&(s(),x.key.set(!x.tokens.isEmpty()),s=void 0)}}cancel(e){let t=this._tokens.get(e);if(!t)return;let s=t.tokens.pop();s&&(s.cancel(),t.key.set(!t.tokens.isEmpty()))}},1),Og(new class extends Of{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:mJ})}runEditorCommand(e,t){e.get(mQ).cancel(t)}});class mZ{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return"string"==typeof e?e.toLowerCase():e._lower}}class mz{constructor(e){if(this._set=new Set,e)for(let t of e)this.add(t)}add(e){this._set.add(mZ.toKey(e))}has(e){return this._set.has(mZ.toKey(e))}}class mq{static{this._selectors=new OT.S}static setFormatterSelector(e){return{dispose:mq._selectors.unshift(e)}}static async select(e,t,s,x){if(0===e.length)return;let E=OS.$.first(mq._selectors);if(E)return await E(e,t,s,x)}}async function mj(e,t,s,x,E,a){for(let r of t.documentRangeFormattingEditProvider.ordered(s)){let t=await Promise.resolve(r.provideDocumentRangeFormattingEdits(s,x,E,a)).catch(TV.Cp);if((0,cO.Of)(t))return await e.computeMoreMinimalEdits(s.uri,t)}}async function m$(e,t,s,x,E){for(let a of function(e,t,s){let x=[],E=new mz;for(let t of e.ordered(s))x.push(t),t.extensionId&&E.add(t.extensionId);for(let e of t.ordered(s)){if(e.extensionId){if(E.has(e.extensionId))continue;E.add(e.extensionId)}x.push({displayName:e.displayName,extensionId:e.extensionId,provideDocumentFormattingEdits:(t,s,x)=>e.provideDocumentRangeFormattingEdits(t,t.getFullModelRange(),s,x)})}return x}(t.documentFormattingEditProvider,t.documentRangeFormattingEditProvider,s)){let t=await Promise.resolve(a.provideDocumentFormattingEdits(s,x,E)).catch(TV.Cp);if((0,cO.Of)(t))return await e.computeMoreMinimalEdits(s.uri,t)}}OA.registerCommand("_executeFormatRangeProvider",async function(e,...t){let[s,x,E]=t;(0,OR.p_)(TP.o.isUri(s)),(0,OR.p_)(OQ.e.isIRange(x));let a=e.get(Ox.ITextModelService),r=e.get(Li.IEditorWorkerService),i=e.get(Oj.ILanguageFeaturesService),n=await a.createModelReference(s);try{return mj(r,i,n.object.textEditorModel,OQ.e.lift(x),E,NH.Ts.None)}finally{n.dispose()}}),OA.registerCommand("_executeFormatDocumentProvider",async function(e,...t){let[s,x]=t;(0,OR.p_)(TP.o.isUri(s));let E=e.get(Ox.ITextModelService),a=e.get(Li.IEditorWorkerService),r=e.get(Oj.ILanguageFeaturesService),i=await E.createModelReference(s);try{return m$(a,r,i.object.textEditorModel,x,NH.Ts.None)}finally{i.dispose()}}),OA.registerCommand("_executeFormatOnTypeProvider",async function(e,...t){let[s,x,E,a]=t;(0,OR.p_)(TP.o.isUri(s)),(0,OR.p_)(N0.L.isIPosition(x)),(0,OR.p_)("string"==typeof E);let r=e.get(Ox.ITextModelService),i=e.get(Li.IEditorWorkerService),n=e.get(Oj.ILanguageFeaturesService),_=await r.createModelReference(s);try{return function(e,t,s,x,E,a,r){let i=t.onTypeFormattingEditProvider.ordered(s);return 0===i.length||0>i[0].autoFormatTriggerCharacters.indexOf(E)?Promise.resolve(void 0):Promise.resolve(i[0].provideOnTypeFormattingEdits(s,x,E,a,r)).catch(TV.Cp).then(t=>e.computeMoreMinimalEdits(s.uri,t))}(i,n,_.object.textEditorModel,N0.L.lift(x),E,a,NH.Ts.None)}finally{_.dispose()}}),TC.wrappingIndent.defaultValue=0,TC.glyphMargin.defaultValue=!1,TC.autoIndent.defaultValue=3,TC.overviewRulerLanes.defaultValue=2,mq.setFormatterSelector((e,t,s)=>Promise.resolve(e[0]));let m0=(0,Tl.createMonacoBaseAPI)();m0.editor={create:function(e,t,s){return eD.initialize(s||{}).createInstance(mu,e,t)},getEditors:function(){return eD.get(Ot).listCodeEditors()},getDiffEditors:function(){return eD.get(Ot).listDiffEditors()},onDidCreateEditor:function(e){return eD.get(Ot).onCodeEditorAdd(t=>{e(t)})},onDidCreateDiffEditor:function(e){return eD.get(Ot).onDiffEditorAdd(t=>{e(t)})},createDiffEditor:function(e,t,s){return eD.initialize(s||{}).createInstance(mD,e,t)},addCommand:function(e){if("string"!=typeof e.id||"function"!=typeof e.run)throw Error("Invalid command descriptor, `id` and `run` are required properties!");return OA.registerCommand(e.id,e.run)},addEditorAction:function(e){if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");let t=Oo.Ao.deserialize(e.precondition),s=new TD.SL;if(s.add(OA.registerCommand(e.id,(s,...x)=>Of.runEditorCommand(s,x,t,(t,s,x)=>Promise.resolve(e.run(s,...x))))),e.contextMenuGroupId){let x={command:{id:e.id,title:e.label},when:t,group:e.contextMenuGroupId,order:e.contextMenuOrder||0};s.add(OP.appendMenuItem(Ou.EditorContext,x))}if(Array.isArray(e.keybindings)){let x=eD.get(AH);if(x instanceof Mt){let E=Oo.Ao.and(t,Oo.Ao.deserialize(e.keybindingContext));s.add(x.addDynamicKeybindings(e.keybindings.map(t=>({keybinding:t,command:e.id,when:E}))))}else console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService")}return s},addKeybindingRule:function(e){return mg([e])},addKeybindingRules:mg,createModel:function(e,t,s){let x=eD.get(NS.O),E=x.getLanguageIdByMimeType(t)||t;return mM(eD.get(Os.IModelService),x,e,E,s)},setModelLanguage:function(e,t){let s=eD.get(NS.O),x=s.getLanguageIdByMimeType(t)||t||NR.bd;e.setLanguage(s.createById(x))},setModelMarkers:function(e,t,s){e&&eD.get(DX.lT).changeOne(t,e.uri,s)},getModelMarkers:function(e){return eD.get(DX.lT).read(e)},removeAllMarkers:function(e){eD.get(DX.lT).changeAll(e,[])},onDidChangeMarkers:function(e){return eD.get(DX.lT).onMarkerChanged(e)},getModels:function(){return eD.get(Os.IModelService).getModels()},getModel:function(e){return eD.get(Os.IModelService).getModel(e)},onDidCreateModel:function(e){return eD.get(Os.IModelService).onModelAdded(e)},onWillDisposeModel:function(e){return eD.get(Os.IModelService).onModelRemoved(e)},onDidChangeModelLanguage:function(e){return eD.get(Os.IModelService).onModelLanguageChanged(t=>{e({model:t.model,oldLanguage:t.oldLanguageId})})},createWebWorker:function(e){return new ML(eD.get(Os.IModelService),e)},colorizeElement:function(e,t){let s=eD.get(NS.O),x=eD.get(Di);return M9.colorizeElement(x,s,e,t).then(()=>{x.registerEditorContainer(e)})},colorize:function(e,t,s){let x=eD.get(NS.O);return eD.get(Di).registerEditorContainer(Tu.document.body),M9.colorize(x,e,t,s)},colorizeModelLine:function(e,t,s=4){return eD.get(Di).registerEditorContainer(Tu.document.body),M9.colorizeModelLine(e,t,s)},tokenize:function(e,t){var s;NA.RW.getOrCreate(t);let x=(s=t,NA.RW.get(s)||{getInitialState:()=>No.TJ,tokenize:(e,t,x)=>(0,No.Ri)(s,x)}),E=(0,TM.uq)(e),a=[],r=x.getInitialState();for(let e=0,t=E.length;e<t;e++){let t=E[e],s=x.tokenize(t,!0,r);a[e]=s.tokens,r=s.endState}return a},defineTheme:function(e,t){eD.get(Di).defineTheme(e,t)},setTheme:function(e){eD.get(Di).setTheme(e)},remeasureFonts:function(){R9.clearAllFontInfos()},registerCommand:function(e,t){return OA.registerCommand({id:e,handler:t})},registerLinkOpener:function(e){return eD.get(oe).registerOpener({open:async t=>("string"==typeof t&&(t=TP.o.parse(t)),e.open(t))})},registerEditorOpener:function(e){return eD.get(Ot).registerCodeEditorOpenHandler(async(t,s,x)=>{let E;if(!s)return null;let a=t.options?.selection;return(a&&"number"==typeof a.endLineNumber&&"number"==typeof a.endColumn?E=a:a&&(E={lineNumber:a.startLineNumber,column:a.startColumn}),await e.openCodeEditor(s,t.resource,E))?s:null})},AccessibilitySupport:Mu.ao,ContentWidgetPositionPreference:Mu.r3,CursorChangeReason:Mu.Vi,DefaultEndOfLine:Mu._x,EditorAutoIndentStrategy:Mu.rf,EditorOption:Mu.wT,EndOfLinePreference:Mu.gm,EndOfLineSequence:Mu.jl,MinimapPosition:Mu.F5,MinimapSectionHeaderStyle:Mu.WG,MouseTargetType:Mu.MG,OverlayWidgetPositionPreference:Mu.E$,OverviewRulerLane:Mu.sh,GlyphMarginLane:Mu.U,RenderLineNumbersType:Mu.Lu,RenderMinimap:Mu.vQ,ScrollbarVisibility:Mu.g_,ScrollType:Mu.g4,TextEditorCursorBlinkingStyle:Mu.In,TextEditorCursorStyle:Mu.d2,TrackedRangeStickiness:Mu.OI,WrappingIndent:Mu.up,InjectedTextCursorStops:Mu.RM,PositionAffinity:Mu.py,ShowLightbulbIconMode:Mu.$r,ConfigurationChangedEvent:cL,BareFontInfo:R5,FontInfo:R4,TextModelResolvedOptions:Ml.dJ,FindMatch:Ml.tk,ApplyUpdateResult:cu,EditorZoom:R3,createMultiFileDiffEditor:function(e,t){let s=eD.initialize(t||{});return new mf(e,{},s)},EditorType:MC,EditorOptions:TC},m0.languages={register:function(e){NR.dQ.registerLanguage(e)},getLanguages:function(){return[].concat(NR.dQ.getLanguages())},onLanguage:function(e,t){return eD.withServices(()=>{let s=eD.get(NS.O).onDidRequestRichLanguageFeatures(x=>{x===e&&(s.dispose(),t())});return s})},onLanguageEncountered:function(e,t){return eD.withServices(()=>{let s=eD.get(NS.O).onDidRequestBasicLanguageFeatures(x=>{x===e&&(s.dispose(),t())});return s})},getEncodedLanguageId:function(e){return eD.get(NS.O).languageIdCodec.encodeLanguageId(e)},setLanguageConfiguration:function(e,t){if(!eD.get(NS.O).isRegisteredLanguageId(e))throw Error(`Cannot set configuration for unknown language ${e}`);return eD.get(OJ.c_).register(e,t,100)},setColorMap:function(e){let t=eD.get(Di);if(e){let s=[null];for(let t=1,x=e.length;t<x;t++)s[t]=IV.Il.fromHex(e[t]);t.setColorMapOverride(s)}else t.setColorMapOverride(null)},registerTokensProviderFactory:mK,setTokensProvider:function(e,t){if(!eD.get(NS.O).isRegisteredLanguageId(e))throw Error(`Cannot set tokens provider for unknown language ${e}`);return mw(t)?mK(e,{create:()=>t}):NA.RW.register(e,mW(e,t))},setMonarchTokensProvider:function(e,t){return mw(t)?mK(e,{create:()=>t}):NA.RW.register(e,new M6(eD.get(NS.O),eD.get(Di),e,mb(e,t),eD.get(AG.Ui)))},registerReferenceProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).referenceProvider.register(e,t)},registerRenameProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).renameProvider.register(e,t)},registerNewSymbolNameProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).newSymbolNamesProvider.register(e,t)},registerCompletionItemProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).completionProvider.register(e,t)},registerSignatureHelpProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).signatureHelpProvider.register(e,t)},registerHoverProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).hoverProvider.register(e,{provideHover:async(e,s,x,E)=>{let a=e.getWordAtPosition(s);return Promise.resolve(t.provideHover(e,s,x,E)).then(e=>{if(e)return!e.range&&a&&(e.range=new OQ.e(s.lineNumber,a.startColumn,s.lineNumber,a.endColumn)),e.range||(e.range=new OQ.e(s.lineNumber,s.column,s.lineNumber,s.column)),e})}})},registerDocumentSymbolProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentSymbolProvider.register(e,t)},registerDocumentHighlightProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentHighlightProvider.register(e,t)},registerLinkedEditingRangeProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).linkedEditingRangeProvider.register(e,t)},registerDefinitionProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).definitionProvider.register(e,t)},registerImplementationProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).implementationProvider.register(e,t)},registerTypeDefinitionProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).typeDefinitionProvider.register(e,t)},registerCodeLensProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).codeLensProvider.register(e,t)},registerCodeActionProvider:function(e,t,s){return eD.get(Oj.ILanguageFeaturesService).codeActionProvider.register(e,{providedCodeActionKinds:s?.providedCodeActionKinds,documentation:s?.documentation,provideCodeActions:(e,s,x,E)=>{let a=eD.get(DX.lT).read({resource:e.uri}).filter(e=>OQ.e.areIntersectingOrTouching(e,s));return t.provideCodeActions(e,s,{markers:a,only:x.only,trigger:x.trigger},E)},resolveCodeAction:t.resolveCodeAction})},registerDocumentFormattingEditProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentFormattingEditProvider.register(e,t)},registerDocumentRangeFormattingEditProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentRangeFormattingEditProvider.register(e,t)},registerOnTypeFormattingEditProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).onTypeFormattingEditProvider.register(e,t)},registerLinkProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).linkProvider.register(e,t)},registerColorProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).colorProvider.register(e,t)},registerFoldingRangeProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).foldingRangeProvider.register(e,t)},registerDeclarationProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).declarationProvider.register(e,t)},registerSelectionRangeProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).selectionRangeProvider.register(e,t)},registerDocumentSemanticTokensProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentSemanticTokensProvider.register(e,t)},registerDocumentRangeSemanticTokensProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).documentRangeSemanticTokensProvider.register(e,t)},registerInlineCompletionsProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).inlineCompletionsProvider.register(e,t)},registerInlineEditProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).inlineEditProvider.register(e,t)},registerInlayHintsProvider:function(e,t){return eD.get(Oj.ILanguageFeaturesService).inlayHintsProvider.register(e,t)},DocumentHighlightKind:Mu.MY,CompletionItemKind:Mu.cm,CompletionItemTag:Mu.we,CompletionItemInsertTextRule:Mu.a7,SymbolKind:Mu.cR,SymbolTag:Mu.r4,IndentAction:Mu.wU,CompletionTriggerKind:Mu.Ij,SignatureHelpTriggerKind:Mu.WW,InlayHintKind:Mu.gl,InlineCompletionTriggerKind:Mu.bw,InlineEditTriggerKind:Mu.rn,CodeActionTriggerType:Mu.np,NewSymbolNameTag:Mu.w,NewSymbolNameTriggerKind:Mu.Ll,PartialAcceptTriggerKind:Mu.NA,HoverVerbosityAction:Mu.bq,FoldingRangeKind:NA.AD,SelectedSuggestionInfo:NA.ln},m0.CancellationTokenSource,m0.Emitter,m0.KeyCode,m0.KeyMod,m0.Position,m0.Range,m0.Selection,m0.SelectionDirection,m0.MarkerSeverity,m0.MarkerTag,m0.Uri,m0.Token,m0.editor,m0.languages;let m2=globalThis.MonacoEnvironment;(m2?.globalAPI||"function"==typeof define&&x.amdO)&&(globalThis.monaco=m0),void 0!==globalThis.require&&"function"==typeof globalThis.require.config&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});var m1=x(42206);function m3(e,t){(null==t||t>e.length)&&(t=e.length);for(var s=0,x=Array(t);s<t;s++)x[s]=e[s];return x}function m7(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var x=Object.getOwnPropertySymbols(e);t&&(x=x.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,x)}return s}function m5(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?m7(Object(s),!0).forEach(function(t){var x;x=s[t],t in e?Object.defineProperty(e,t,{value:x,enumerable:!0,configurable:!0,writable:!0}):e[t]=x}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):m7(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function m4(e){return function t(){for(var s=this,x=arguments.length,E=Array(x),a=0;a<x;a++)E[a]=arguments[a];return E.length>=e.length?e.apply(this,E):function(){for(var e=arguments.length,x=Array(e),a=0;a<e;a++)x[a]=arguments[a];return t.apply(s,[].concat(E,x))}}}function m6(e){return({}).toString.call(e).includes("Object")}function m8(e){return"function"==typeof e}var m9=m4(function(e,t){throw Error(e[t]||e.default)})({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),fe={changes:function(e,t){return m6(t)||m9("changeType"),Object.keys(t).some(function(t){return!Object.prototype.hasOwnProperty.call(e,t)})&&m9("changeField"),t},selector:function(e){m8(e)||m9("selectorType")},handler:function(e){m8(e)||m6(e)||m9("handlerType"),m6(e)&&Object.values(e).some(function(e){return!m8(e)})&&m9("handlersType")},initial:function(e){e||m9("initialIsRequired"),m6(e)||m9("initialType"),Object.keys(e).length||m9("initialContent")}};function ft(e,t){return m8(t)?t(e.current):t}function fs(e,t){return e.current=m5(m5({},e.current),t),t}function fx(e,t,s){return m8(t)?t(e.current):Object.keys(s).forEach(function(s){var x;return null===(x=t[s])||void 0===x?void 0:x.call(t,e.current[s])}),s}(function(e){return function t(){for(var s=this,x=arguments.length,E=Array(x),a=0;a<x;a++)E[a]=arguments[a];return E.length>=e.length?e.apply(this,E):function(){for(var e=arguments.length,x=Array(e),a=0;a<e;a++)x[a]=arguments[a];return t.apply(s,[].concat(E,x))}}})(function(e,t){throw Error(e[t]||e.default)})({configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "});let fE=function(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}};var fa={type:"cancelation",msg:"operation is manually canceled"};let fr=function(e){var t=!1,s=new Promise(function(s,x){e.then(function(e){return t?x(fa):s(e)}),e.catch(x)});return s.cancel=function(){return t=!0},s};var fi=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var s=[],x=!0,E=!1,a=void 0;try{for(var r,i=e[Symbol.iterator]();!(x=(r=i.next()).done)&&(s.push(r.value),2!==s.length);x=!0);}catch(e){E=!0,a=e}finally{try{x||null==i.return||i.return()}finally{if(E)throw a}}return s}}(e,2)||function(e,t){if(e){if("string"==typeof e)return m3(e,2);var s=Object.prototype.toString.call(e).slice(8,-1);if("Object"===s&&e.constructor&&(s=e.constructor.name),"Map"===s||"Set"===s)return Array.from(e);if("Arguments"===s||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(s))return m3(e,t)}}(e,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(({create:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};fe.initial(e),fe.handler(t);var s={current:e},x=m4(fx)(s,t),E=m4(fs)(s),a=m4(fe.changes)(e),r=m4(ft)(s);return[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return fe.selector(e),e(s.current)},function(e){(function(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}})(x,E,a,r)(e)}]}}).create({config:{paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}},isInitialized:!1,resolve:null,reject:null,monaco:null}),0),fn=fi[0],f_=fi[1];function fc(e){return document.body.appendChild(e)}function fT(e){var t,s,x=fn(function(e){return{config:e.config,reject:e.reject}}),E=(t="".concat(x.config.paths.vs,"/loader.js"),s=document.createElement("script"),t&&(s.src=t),s);return E.onload=function(){return e()},E.onerror=x.reject,E}function fS(){var e=fn(function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(t){fR(t),e.resolve(t)},function(t){e.reject(t)})}function fR(e){fn().monaco||f_({monaco:e})}var fO=new Promise(function(e,t){return f_({resolve:e,reject:t})});let fA={init:function(){var e=fn(function(e){return{monaco:e.monaco,isInitialized:e.isInitialized,resolve:e.resolve}});if(!e.isInitialized){if(f_({isInitialized:!0}),e.monaco)return e.resolve(e.monaco),fr(fO);if(window.monaco&&window.monaco.editor)return fR(window.monaco),e.resolve(window.monaco),fr(fO);fE(fc,fT)(fS)}return fr(fO)},__getMonacoInstance:function(){return fn(function(e){return e.monaco})}};var fo={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},fN={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},fI=function({children:e}){return eQ.createElement("div",{style:fN.container},e)},fh=(0,eQ.memo)(function({width:e,height:t,isEditorReady:s,loading:x,_ref:E,className:a,wrapperProps:r}){return eQ.createElement("section",{style:{...fo.wrapper,width:e,height:t},...r},!s&&eQ.createElement(fI,null,x),eQ.createElement("div",{ref:E,style:{...fo.fullWidth,...!s&&fo.hide},className:a}))}),fL=function(e){(0,eQ.useEffect)(e,[])},fC=function(e,t,s=!0){let x=(0,eQ.useRef)(!0);(0,eQ.useEffect)(x.current||!s?()=>{x.current=!1}:e,t)};function fl(){}function fu(e,t,s,x){return e.editor.getModel(fD(e,x))||e.editor.createModel(t,s,x?fD(e,x):void 0)}function fD(e,t){return e.Uri.parse(t)}(0,eQ.memo)(function({original:e,modified:t,language:s,originalLanguage:x,modifiedLanguage:E,originalModelPath:a,modifiedModelPath:r,keepCurrentOriginalModel:i=!1,keepCurrentModifiedModel:n=!1,theme:_="light",loading:T="Loading...",options:S={},height:R="100%",width:O="100%",className:A,wrapperProps:o={},beforeMount:N=fl,onMount:I=fl}){let[h,L]=(0,eQ.useState)(!1),[C,l]=(0,eQ.useState)(!0),u=(0,eQ.useRef)(null),D=(0,eQ.useRef)(null),M=(0,eQ.useRef)(null),P=(0,eQ.useRef)(I),d=(0,eQ.useRef)(N),U=(0,eQ.useRef)(!1);fL(()=>{let e=fA.init();return e.then(e=>(D.current=e)&&l(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>{let t;return u.current?(t=u.current?.getModel(),void(i||t?.original?.dispose(),n||t?.modified?.dispose(),u.current?.dispose())):e.cancel()}}),fC(()=>{if(u.current&&D.current){let t=u.current.getOriginalEditor(),E=fu(D.current,e||"",x||s||"text",a||"");E!==t.getModel()&&t.setModel(E)}},[a],h),fC(()=>{if(u.current&&D.current){let e=u.current.getModifiedEditor(),x=fu(D.current,t||"",E||s||"text",r||"");x!==e.getModel()&&e.setModel(x)}},[r],h),fC(()=>{let e=u.current.getModifiedEditor();e.getOption(D.current.editor.EditorOption.readOnly)?e.setValue(t||""):t!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),e.pushUndoStop())},[t],h),fC(()=>{u.current?.getModel()?.original.setValue(e||"")},[e],h),fC(()=>{let{original:e,modified:t}=u.current.getModel();D.current.editor.setModelLanguage(e,x||s||"text"),D.current.editor.setModelLanguage(t,E||s||"text")},[s,x,E],h),fC(()=>{D.current?.editor.setTheme(_)},[_],h),fC(()=>{u.current?.updateOptions(S)},[S],h);let p=(0,eQ.useCallback)(()=>{if(!D.current)return;d.current(D.current);let i=fu(D.current,e||"",x||s||"text",a||""),n=fu(D.current,t||"",E||s||"text",r||"");u.current?.setModel({original:i,modified:n})},[s,t,E,e,x,a,r]),Y=(0,eQ.useCallback)(()=>{!U.current&&M.current&&(u.current=D.current.editor.createDiffEditor(M.current,{automaticLayout:!0,...S}),p(),D.current?.editor.setTheme(_),L(!0),U.current=!0)},[S,_,p]);return(0,eQ.useEffect)(()=>{h&&P.current(u.current,D.current)},[h]),(0,eQ.useEffect)(()=>{C||h||Y()},[C,h,Y]),eQ.createElement(fh,{width:O,height:R,isEditorReady:h,loading:T,_ref:M,className:A,wrapperProps:o})});var fM=function(){let[e,t]=(0,eQ.useState)(fA.__getMonacoInstance());return fL(()=>{let s;return e||(s=fA.init()).then(e=>{t(e)}),()=>s?.cancel()}),e},fP=function(e){let t=(0,eQ.useRef)();return(0,eQ.useEffect)(()=>{t.current=e},[e]),t.current},fd=new Map,fU=(0,eQ.memo)(function({defaultValue:e,defaultLanguage:t,defaultPath:s,value:x,language:E,path:a,theme:r="light",line:i,loading:n="Loading...",options:_={},overrideServices:T={},saveViewState:S=!0,keepCurrentModel:R=!1,width:O="100%",height:A="100%",className:o,wrapperProps:N={},beforeMount:I=fl,onMount:h=fl,onChange:L,onValidate:C=fl}){let[l,u]=(0,eQ.useState)(!1),[D,M]=(0,eQ.useState)(!0),P=(0,eQ.useRef)(null),d=(0,eQ.useRef)(null),U=(0,eQ.useRef)(null),p=(0,eQ.useRef)(h),Y=(0,eQ.useRef)(I),G=(0,eQ.useRef)(),B=(0,eQ.useRef)(x),m=fP(a),f=(0,eQ.useRef)(!1),g=(0,eQ.useRef)(!1);fL(()=>{let e=fA.init();return e.then(e=>(P.current=e)&&M(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>d.current?void(G.current?.dispose(),R?S&&fd.set(a,d.current.saveViewState()):d.current.getModel()?.dispose(),d.current.dispose()):e.cancel()}),fC(()=>{let r=fu(P.current,e||x||"",t||E||"",a||s||"");r!==d.current?.getModel()&&(S&&fd.set(m,d.current?.saveViewState()),d.current?.setModel(r),S&&d.current?.restoreViewState(fd.get(a)))},[a],l),fC(()=>{d.current?.updateOptions(_)},[_],l),fC(()=>{d.current&&void 0!==x&&(d.current.getOption(P.current.editor.EditorOption.readOnly)?d.current.setValue(x):x===d.current.getValue()||(g.current=!0,d.current.executeEdits("",[{range:d.current.getModel().getFullModelRange(),text:x,forceMoveMarkers:!0}]),d.current.pushUndoStop(),g.current=!1))},[x],l),fC(()=>{let e=d.current?.getModel();e&&E&&P.current?.editor.setModelLanguage(e,E)},[E],l),fC(()=>{void 0!==i&&d.current?.revealLine(i)},[i],l),fC(()=>{P.current?.editor.setTheme(r)},[r],l);let F=(0,eQ.useCallback)(()=>{if(!(!U.current||!P.current)&&!f.current){Y.current(P.current);let n=a||s,R=fu(P.current,x||e||"",t||E||"",n||"");d.current=P.current?.editor.create(U.current,{model:R,automaticLayout:!0,..._},T),S&&d.current.restoreViewState(fd.get(n)),P.current.editor.setTheme(r),void 0!==i&&d.current.revealLine(i),u(!0),f.current=!0}},[e,t,s,x,E,a,_,T,S,r,i]);return(0,eQ.useEffect)(()=>{l&&p.current(d.current,P.current)},[l]),(0,eQ.useEffect)(()=>{D||l||F()},[D,l,F]),B.current=x,(0,eQ.useEffect)(()=>{l&&L&&(G.current?.dispose(),G.current=d.current?.onDidChangeModelContent(e=>{g.current||L(d.current.getValue(),e)}))},[l,L]),(0,eQ.useEffect)(()=>{if(l){let e=P.current.editor.onDidChangeMarkers(e=>{let t=d.current.getModel()?.uri;if(t&&e.find(e=>e.path===t.path)){let e=P.current.editor.getModelMarkers({resource:t});C?.(e)}});return()=>{e?.dispose()}}return()=>{}},[l,C]),eQ.createElement(fh,{width:O,height:A,isEditorReady:l,loading:n,_ref:U,className:o,wrapperProps:N})});function fp(e,t,{checkForDefaultPrevented:s=!0}={}){return function(x){if(e?.(x),!1===s||!x.defaultPrevented)return t?.(x)}}function fY(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}function fG(...e){return t=>{let s=!1,x=e.map(e=>{let x=fY(e,t);return s||"function"!=typeof x||(s=!0),x});if(s)return()=>{for(let t=0;t<x.length;t++){let s=x[t];"function"==typeof s?s():fY(e[t],null)}}}}function fB(...e){return eQ.useCallback(fG(...e),e)}function fm(e,t=[]){let s=[],x=()=>{let t=s.map(e=>eQ.createContext(e));return function(s){let x=s?.[e]||t;return eQ.useMemo(()=>({[`__scope${e}`]:{...s,[e]:x}}),[s,x])}};return x.scopeName=e,[function(t,x){let E=eQ.createContext(x),a=s.length;s=[...s,x];let r=t=>{let{scope:s,children:x,...r}=t,i=s?.[e]?.[a]||E,n=eQ.useMemo(()=>r,Object.values(r));return(0,ew.jsx)(i.Provider,{value:n,children:x})};return r.displayName=t+"Provider",[r,function(s,r){let i=r?.[e]?.[a]||E,n=eQ.useContext(i);if(n)return n;if(void 0!==x)return x;throw Error(`\`${s}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let s=()=>{let s=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let x=s.reduce((t,{useScope:s,scopeName:x})=>{let E=s(e)[`__scope${x}`];return{...t,...E}},{});return eQ.useMemo(()=>({[`__scope${t.scopeName}`]:x}),[x])}};return s.scopeName=t.scopeName,s}(x,...t)]}var ff=x(25517),fg=eQ.forwardRef((e,t)=>{let{children:s,...x}=e,E=eQ.Children.toArray(s),a=E.find(fy);if(a){let e=a.props.children,s=E.map(t=>t!==a?t:eQ.Children.count(e)>1?eQ.Children.only(null):eQ.isValidElement(e)?e.props.children:null);return(0,ew.jsx)(fF,{...x,ref:t,children:eQ.isValidElement(e)?eQ.cloneElement(e,void 0,s):null})}return(0,ew.jsx)(fF,{...x,ref:t,children:s})});fg.displayName="Slot";var fF=eQ.forwardRef((e,t)=>{let{children:s,...x}=e;if(eQ.isValidElement(s)){let e=function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(s=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}(s);return eQ.cloneElement(s,{...function(e,t){let s={...t};for(let x in t){let E=e[x],a=t[x];/^on[A-Z]/.test(x)?E&&a?s[x]=(...e)=>{a(...e),E(...e)}:E&&(s[x]=E):"style"===x?s[x]={...E,...a}:"className"===x&&(s[x]=[E,a].filter(Boolean).join(" "))}return{...e,...s}}(x,s.props),ref:t?fG(t,e):e})}return eQ.Children.count(s)>1?eQ.Children.only(null):null});fF.displayName="SlotClone";var fH=({children:e})=>(0,ew.jsx)(ew.Fragment,{children:e});function fy(e){return eQ.isValidElement(e)&&e.type===fH}var fV=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let s=eQ.forwardRef((e,s)=>{let{asChild:x,...E}=e,a=x?fg:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,ew.jsx)(a,{...E,ref:s})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{}),fX=x(20596),fb=x(80575),fv="dismissableLayer.update",fk=eQ.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),fw=eQ.forwardRef((e,t)=>{let{disableOutsidePointerEvents:s=!1,onEscapeKeyDown:x,onPointerDownOutside:E,onFocusOutside:a,onInteractOutside:r,onDismiss:i,...n}=e,_=eQ.useContext(fk),[T,S]=eQ.useState(null),R=T?.ownerDocument??globalThis?.document,[,O]=eQ.useState({}),A=fB(t,e=>S(e)),o=Array.from(_.layers),[N]=[..._.layersWithOutsidePointerEventsDisabled].slice(-1),I=o.indexOf(N),h=T?o.indexOf(T):-1,L=_.layersWithOutsidePointerEventsDisabled.size>0,C=h>=I,l=function(e,t=globalThis?.document){let s=(0,fX.W)(e),x=eQ.useRef(!1),E=eQ.useRef(()=>{});return eQ.useEffect(()=>{let e=e=>{if(e.target&&!x.current){let x=function(){fK("dismissableLayer.pointerDownOutside",s,a,{discrete:!0})},a={originalEvent:e};"touch"===e.pointerType?(t.removeEventListener("click",E.current),E.current=x,t.addEventListener("click",E.current,{once:!0})):x()}else t.removeEventListener("click",E.current);x.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",e)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",e),t.removeEventListener("click",E.current)}},[t,s]),{onPointerDownCapture:()=>x.current=!0}}(e=>{let t=e.target,s=[..._.branches].some(e=>e.contains(t));!C||s||(E?.(e),r?.(e),e.defaultPrevented||i?.())},R),u=function(e,t=globalThis?.document){let s=(0,fX.W)(e),x=eQ.useRef(!1);return eQ.useEffect(()=>{let e=e=>{e.target&&!x.current&&fK("dismissableLayer.focusOutside",s,{originalEvent:e},{discrete:!1})};return t.addEventListener("focusin",e),()=>t.removeEventListener("focusin",e)},[t,s]),{onFocusCapture:()=>x.current=!0,onBlurCapture:()=>x.current=!1}}(e=>{let t=e.target;[..._.branches].some(e=>e.contains(t))||(a?.(e),r?.(e),e.defaultPrevented||i?.())},R);return(0,fb.e)(e=>{h!==_.layers.size-1||(x?.(e),!e.defaultPrevented&&i&&(e.preventDefault(),i()))},R),eQ.useEffect(()=>{if(T)return s&&(0===_.layersWithOutsidePointerEventsDisabled.size&&(ev=R.body.style.pointerEvents,R.body.style.pointerEvents="none"),_.layersWithOutsidePointerEventsDisabled.add(T)),_.layers.add(T),fW(),()=>{s&&1===_.layersWithOutsidePointerEventsDisabled.size&&(R.body.style.pointerEvents=ev)}},[T,R,s,_]),eQ.useEffect(()=>()=>{T&&(_.layers.delete(T),_.layersWithOutsidePointerEventsDisabled.delete(T),fW())},[T,_]),eQ.useEffect(()=>{let e=()=>O({});return document.addEventListener(fv,e),()=>document.removeEventListener(fv,e)},[]),(0,ew.jsx)(fV.div,{...n,ref:A,style:{pointerEvents:L?C?"auto":"none":void 0,...e.style},onFocusCapture:fp(e.onFocusCapture,u.onFocusCapture),onBlurCapture:fp(e.onBlurCapture,u.onBlurCapture),onPointerDownCapture:fp(e.onPointerDownCapture,l.onPointerDownCapture)})});function fW(){let e=new CustomEvent(fv);document.dispatchEvent(e)}function fK(e,t,s,{discrete:x}){let E=s.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:s});(t&&E.addEventListener(e,t,{once:!0}),x)?E&&ff.flushSync(()=>E.dispatchEvent(a)):E.dispatchEvent(a)}fw.displayName="DismissableLayer",eQ.forwardRef((e,t)=>{let s=eQ.useContext(fk),x=eQ.useRef(null),E=fB(t,x);return eQ.useEffect(()=>{let e=x.current;if(e)return s.branches.add(e),()=>{s.branches.delete(e)}},[s.branches]),(0,ew.jsx)(fV.div,{...e,ref:E})}).displayName="DismissableLayerBranch";var fQ=x(85799),fJ=x(10266),fZ=x(91457),fz=eQ.forwardRef((e,t)=>{let{children:s,width:x=10,height:E=5,...a}=e;return(0,ew.jsx)(fV.svg,{...a,ref:t,width:x,height:E,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?s:(0,ew.jsx)("polygon",{points:"0,0 30,0 15,10"})})});fz.displayName="Arrow";var fq=x(80081),fj=x(50681),f$="Popper",[f0,f2]=fm(f$),[f1,f3]=f0(f$),f7=e=>{let{__scopePopper:t,children:s}=e,[x,E]=eQ.useState(null);return(0,ew.jsx)(f1,{scope:t,anchor:x,onAnchorChange:E,children:s})};f7.displayName=f$;var f5="PopperAnchor",f4=eQ.forwardRef((e,t)=>{let{__scopePopper:s,virtualRef:x,...E}=e,a=f3(f5,s),r=eQ.useRef(null),i=fB(t,r);return eQ.useEffect(()=>{a.onAnchorChange(x?.current||r.current)}),x?null:(0,ew.jsx)(fV.div,{...E,ref:i})});f4.displayName=f5;var f6="PopperContent",[f8,f9]=f0(f6),ge=eQ.forwardRef((e,t)=>{let{__scopePopper:s,side:x="bottom",sideOffset:E=0,align:a="center",alignOffset:r=0,arrowPadding:i=0,avoidCollisions:n=!0,collisionBoundary:_=[],collisionPadding:T=0,sticky:S="partial",hideWhenDetached:R=!1,updatePositionStrategy:O="optimized",onPlaced:A,...o}=e,N=f3(f6,s),[I,h]=eQ.useState(null),L=fB(t,e=>h(e)),[C,l]=eQ.useState(null),u=(0,fj.t)(C),D=u?.width??0,M=u?.height??0,P="number"==typeof T?T:{top:0,right:0,bottom:0,left:0,...T},d=Array.isArray(_)?_:[_],U=d.length>0,p={padding:P,boundary:d.filter(gE),altBoundary:U},{refs:Y,floatingStyles:G,placement:B,isPositioned:m,middlewareData:f}=(0,fJ.YF)({strategy:"fixed",placement:x+("center"!==a?"-"+a:""),whileElementsMounted:(...e)=>(0,fZ.Me)(...e,{animationFrame:"always"===O}),elements:{reference:N.anchor},middleware:[(0,fJ.cv)({mainAxis:E+M,alignmentAxis:r}),n&&(0,fJ.uY)({mainAxis:!0,crossAxis:!1,limiter:"partial"===S?(0,fJ.dr)():void 0,...p}),n&&(0,fJ.RR)({...p}),(0,fJ.dp)({...p,apply:({elements:e,rects:t,availableWidth:s,availableHeight:x})=>{let{width:E,height:a}=t.reference,r=e.floating.style;r.setProperty("--radix-popper-available-width",`${s}px`),r.setProperty("--radix-popper-available-height",`${x}px`),r.setProperty("--radix-popper-anchor-width",`${E}px`),r.setProperty("--radix-popper-anchor-height",`${a}px`)}}),C&&(0,fJ.x7)({element:C,padding:i}),ga({arrowWidth:D,arrowHeight:M}),R&&(0,fJ.Cp)({strategy:"referenceHidden",...p})]}),[g,F]=gr(B),H=(0,fX.W)(A);(0,fq.b)(()=>{m&&H?.()},[m,H]);let y=f.arrow?.x,V=f.arrow?.y,X=f.arrow?.centerOffset!==0,[b,v]=eQ.useState();return(0,fq.b)(()=>{I&&v(window.getComputedStyle(I).zIndex)},[I]),(0,ew.jsx)("div",{ref:Y.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:m?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:b,"--radix-popper-transform-origin":[f.transformOrigin?.x,f.transformOrigin?.y].join(" "),...f.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:(0,ew.jsx)(f8,{scope:s,placedSide:g,onArrowChange:l,arrowX:y,arrowY:V,shouldHideArrow:X,children:(0,ew.jsx)(fV.div,{"data-side":g,"data-align":F,...o,ref:L,style:{...o.style,animation:m?void 0:"none"}})})})});ge.displayName=f6;var gt="PopperArrow",gs={top:"bottom",right:"left",bottom:"top",left:"right"},gx=eQ.forwardRef(function(e,t){let{__scopePopper:s,...x}=e,E=f9(gt,s),a=gs[E.placedSide];return(0,ew.jsx)("span",{ref:E.onArrowChange,style:{position:"absolute",left:E.arrowX,top:E.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[E.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[E.placedSide],visibility:E.shouldHideArrow?"hidden":void 0},children:(0,ew.jsx)(fz,{...x,ref:t,style:{...x.style,display:"block"}})})});function gE(e){return null!==e}gx.displayName=gt;var ga=e=>({name:"transformOrigin",options:e,fn(t){let{placement:s,rects:x,middlewareData:E}=t,a=E.arrow?.centerOffset!==0,r=a?0:e.arrowWidth,i=a?0:e.arrowHeight,[n,_]=gr(s),T={start:"0%",center:"50%",end:"100%"}[_],S=(E.arrow?.x??0)+r/2,R=(E.arrow?.y??0)+i/2,O="",A="";return"bottom"===n?(O=a?T:`${S}px`,A=`${-i}px`):"top"===n?(O=a?T:`${S}px`,A=`${x.floating.height+i}px`):"right"===n?(O=`${-i}px`,A=a?T:`${R}px`):"left"===n&&(O=`${x.floating.width+i}px`,A=a?T:`${R}px`),{data:{x:O,y:A}}}});function gr(e){let[t,s="center"]=e.split("-");return[t,s]}eQ.forwardRef((e,t)=>{let{container:s,...x}=e,[E,a]=eQ.useState(!1);(0,fq.b)(()=>a(!0),[]);let r=s||E&&globalThis?.document?.body;return r?ff.createPortal((0,ew.jsx)(fV.div,{...x,ref:t}),r):null}).displayName="Portal";var gi=e=>{let{present:t,children:s}=e,x=function(e){var t,s;let[x,E]=eQ.useState(),a=eQ.useRef({}),r=eQ.useRef(e),i=eQ.useRef("none"),[n,_]=(t=e?"mounted":"unmounted",s={mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}},eQ.useReducer((e,t)=>s[e][t]??e,t));return eQ.useEffect(()=>{let e=gn(a.current);i.current="mounted"===n?e:"none"},[n]),(0,fq.b)(()=>{let t=a.current,s=r.current;if(s!==e){let x=i.current,E=gn(t);e?_("MOUNT"):"none"===E||t?.display==="none"?_("UNMOUNT"):s&&x!==E?_("ANIMATION_OUT"):_("UNMOUNT"),r.current=e}},[e,_]),(0,fq.b)(()=>{if(x){let e;let t=x.ownerDocument.defaultView??window,s=s=>{let E=gn(a.current).includes(s.animationName);if(s.target===x&&E&&(_("ANIMATION_END"),!r.current)){let s=x.style.animationFillMode;x.style.animationFillMode="forwards",e=t.setTimeout(()=>{"forwards"===x.style.animationFillMode&&(x.style.animationFillMode=s)})}},E=e=>{e.target===x&&(i.current=gn(a.current))};return x.addEventListener("animationstart",E),x.addEventListener("animationcancel",s),x.addEventListener("animationend",s),()=>{t.clearTimeout(e),x.removeEventListener("animationstart",E),x.removeEventListener("animationcancel",s),x.removeEventListener("animationend",s)}}_("ANIMATION_END")},[x,_]),{isPresent:["mounted","unmountSuspended"].includes(n),ref:eQ.useCallback(e=>{e&&(a.current=getComputedStyle(e)),E(e)},[])}}(t),E="function"==typeof s?s({present:x.isPresent}):eQ.Children.only(s),a=fB(x.ref,function(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,s=t&&"isReactWarning"in t&&t.isReactWarning;return s?e.ref:(s=(t=Object.getOwnPropertyDescriptor(e,"ref")?.get)&&"isReactWarning"in t&&t.isReactWarning)?e.props.ref:e.props.ref||e.ref}(E));return"function"==typeof s||x.isPresent?eQ.cloneElement(E,{ref:a}):null};function gn(e){return e?.animationName||"none"}gi.displayName="Presence";var g_=x(1775),gc=eQ.forwardRef((e,t)=>(0,ew.jsx)(fV.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));gc.displayName="VisuallyHidden";var[gT,gS]=fm("Tooltip",[f2]),gR=f2(),gO="TooltipProvider",gA="tooltip.open",[go,gN]=gT(gO),gI=e=>{let{__scopeTooltip:t,delayDuration:s=700,skipDelayDuration:x=300,disableHoverableContent:E=!1,children:a}=e,[r,i]=eQ.useState(!0),n=eQ.useRef(!1),_=eQ.useRef(0);return eQ.useEffect(()=>{let e=_.current;return()=>window.clearTimeout(e)},[]),(0,ew.jsx)(go,{scope:t,isOpenDelayed:r,delayDuration:s,onOpen:eQ.useCallback(()=>{window.clearTimeout(_.current),i(!1)},[]),onClose:eQ.useCallback(()=>{window.clearTimeout(_.current),_.current=window.setTimeout(()=>i(!0),x)},[x]),isPointerInTransitRef:n,onPointerInTransitChange:eQ.useCallback(e=>{n.current=e},[]),disableHoverableContent:E,children:a})};gI.displayName=gO;var gh="Tooltip",[gL,gC]=gT(gh),gl=e=>{let{__scopeTooltip:t,children:s,open:x,defaultOpen:E=!1,onOpenChange:a,disableHoverableContent:r,delayDuration:i}=e,n=gN(gh,e.__scopeTooltip),_=gR(t),[T,S]=eQ.useState(null),R=(0,fQ.M)(),O=eQ.useRef(0),A=r??n.disableHoverableContent,o=i??n.delayDuration,N=eQ.useRef(!1),[I=!1,h]=(0,g_.T)({prop:x,defaultProp:E,onChange:e=>{e?(n.onOpen(),document.dispatchEvent(new CustomEvent(gA))):n.onClose(),a?.(e)}}),L=eQ.useMemo(()=>I?N.current?"delayed-open":"instant-open":"closed",[I]),C=eQ.useCallback(()=>{window.clearTimeout(O.current),O.current=0,N.current=!1,h(!0)},[h]),l=eQ.useCallback(()=>{window.clearTimeout(O.current),O.current=0,h(!1)},[h]),u=eQ.useCallback(()=>{window.clearTimeout(O.current),O.current=window.setTimeout(()=>{N.current=!0,h(!0),O.current=0},o)},[o,h]);return eQ.useEffect(()=>()=>{O.current&&(window.clearTimeout(O.current),O.current=0)},[]),(0,ew.jsx)(f7,{..._,children:(0,ew.jsx)(gL,{scope:t,contentId:R,open:I,stateAttribute:L,trigger:T,onTriggerChange:S,onTriggerEnter:eQ.useCallback(()=>{n.isOpenDelayed?u():C()},[n.isOpenDelayed,u,C]),onTriggerLeave:eQ.useCallback(()=>{A?l():(window.clearTimeout(O.current),O.current=0)},[l,A]),onOpen:C,onClose:l,disableHoverableContent:A,children:s})})};gl.displayName=gh;var gu="TooltipTrigger",gD=eQ.forwardRef((e,t)=>{let{__scopeTooltip:s,...x}=e,E=gC(gu,s),a=gN(gu,s),r=gR(s),i=fB(t,eQ.useRef(null),E.onTriggerChange),n=eQ.useRef(!1),_=eQ.useRef(!1),T=eQ.useCallback(()=>n.current=!1,[]);return eQ.useEffect(()=>()=>document.removeEventListener("pointerup",T),[T]),(0,ew.jsx)(f4,{asChild:!0,...r,children:(0,ew.jsx)(fV.button,{"aria-describedby":E.open?E.contentId:void 0,"data-state":E.stateAttribute,...x,ref:i,onPointerMove:fp(e.onPointerMove,e=>{"touch"===e.pointerType||_.current||a.isPointerInTransitRef.current||(E.onTriggerEnter(),_.current=!0)}),onPointerLeave:fp(e.onPointerLeave,()=>{E.onTriggerLeave(),_.current=!1}),onPointerDown:fp(e.onPointerDown,()=>{n.current=!0,document.addEventListener("pointerup",T,{once:!0})}),onFocus:fp(e.onFocus,()=>{n.current||E.onOpen()}),onBlur:fp(e.onBlur,E.onClose),onClick:fp(e.onClick,E.onClose)})})});gD.displayName=gu;var[gM,gP]=gT("TooltipPortal",{forceMount:void 0}),gd="TooltipContent",gU=eQ.forwardRef((e,t)=>{let s=gP(gd,e.__scopeTooltip),{forceMount:x=s.forceMount,side:E="top",...a}=e,r=gC(gd,e.__scopeTooltip);return(0,ew.jsx)(gi,{present:x||r.open,children:r.disableHoverableContent?(0,ew.jsx)(gB,{side:E,...a,ref:t}):(0,ew.jsx)(gp,{side:E,...a,ref:t})})}),gp=eQ.forwardRef((e,t)=>{let s=gC(gd,e.__scopeTooltip),x=gN(gd,e.__scopeTooltip),E=eQ.useRef(null),a=fB(t,E),[r,i]=eQ.useState(null),{trigger:n,onClose:_}=s,T=E.current,{onPointerInTransitChange:S}=x,R=eQ.useCallback(()=>{i(null),S(!1)},[S]),O=eQ.useCallback((e,t)=>{let s=e.currentTarget,x={x:e.clientX,y:e.clientY},E=function(e,t){let s=Math.abs(t.top-e.y),x=Math.abs(t.bottom-e.y),E=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(s,x,E,a)){case a:return"left";case E:return"right";case s:return"top";case x:return"bottom";default:throw Error("unreachable")}}(x,s.getBoundingClientRect());i(function(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:e.y>t.y?1:0),function(e){if(e.length<=1)return e.slice();let t=[];for(let s=0;s<e.length;s++){let x=e[s];for(;t.length>=2;){let e=t[t.length-1],s=t[t.length-2];if((e.x-s.x)*(x.y-s.y)>=(e.y-s.y)*(x.x-s.x))t.pop();else break}t.push(x)}t.pop();let s=[];for(let t=e.length-1;t>=0;t--){let x=e[t];for(;s.length>=2;){let e=s[s.length-1],t=s[s.length-2];if((e.x-t.x)*(x.y-t.y)>=(e.y-t.y)*(x.x-t.x))s.pop();else break}s.push(x)}return(s.pop(),1===t.length&&1===s.length&&t[0].x===s[0].x&&t[0].y===s[0].y)?t:t.concat(s)}(t)}([...function(e,t,s=5){let x=[];switch(t){case"top":x.push({x:e.x-s,y:e.y+s},{x:e.x+s,y:e.y+s});break;case"bottom":x.push({x:e.x-s,y:e.y-s},{x:e.x+s,y:e.y-s});break;case"left":x.push({x:e.x+s,y:e.y-s},{x:e.x+s,y:e.y+s});break;case"right":x.push({x:e.x-s,y:e.y-s},{x:e.x-s,y:e.y+s})}return x}(x,E),...function(e){let{top:t,right:s,bottom:x,left:E}=e;return[{x:E,y:t},{x:s,y:t},{x:s,y:x},{x:E,y:x}]}(t.getBoundingClientRect())])),S(!0)},[S]);return eQ.useEffect(()=>()=>R(),[R]),eQ.useEffect(()=>{if(n&&T){let e=e=>O(e,T),t=e=>O(e,n);return n.addEventListener("pointerleave",e),T.addEventListener("pointerleave",t),()=>{n.removeEventListener("pointerleave",e),T.removeEventListener("pointerleave",t)}}},[n,T,O,R]),eQ.useEffect(()=>{if(r){let e=e=>{let t=e.target,s={x:e.clientX,y:e.clientY},x=n?.contains(t)||T?.contains(t),E=!function(e,t){let{x:s,y:x}=e,E=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let r=t[e].x,i=t[e].y,n=t[a].x,_=t[a].y;i>x!=_>x&&s<(n-r)*(x-i)/(_-i)+r&&(E=!E)}return E}(s,r);x?R():E&&(R(),_())};return document.addEventListener("pointermove",e),()=>document.removeEventListener("pointermove",e)}},[n,T,r,_,R]),(0,ew.jsx)(gB,{...e,ref:a})}),[gY,gG]=gT(gh,{isInside:!1}),gB=eQ.forwardRef((e,t)=>{let{__scopeTooltip:s,children:x,"aria-label":E,onEscapeKeyDown:a,onPointerDownOutside:r,...i}=e,n=gC(gd,s),_=gR(s),{onClose:T}=n;return eQ.useEffect(()=>(document.addEventListener(gA,T),()=>document.removeEventListener(gA,T)),[T]),eQ.useEffect(()=>{if(n.trigger){let e=e=>{let t=e.target;t?.contains(n.trigger)&&T()};return window.addEventListener("scroll",e,{capture:!0}),()=>window.removeEventListener("scroll",e,{capture:!0})}},[n.trigger,T]),(0,ew.jsx)(fw,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:r,onFocusOutside:e=>e.preventDefault(),onDismiss:T,children:(0,ew.jsxs)(ge,{"data-state":n.stateAttribute,..._,...i,ref:t,style:{...i.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[(0,ew.jsx)(fH,{children:x}),(0,ew.jsx)(gY,{scope:s,isInside:!0,children:(0,ew.jsx)(gc,{id:n.contentId,role:"tooltip",children:E||x})})]})})});gU.displayName=gd;var gm="TooltipArrow";eQ.forwardRef((e,t)=>{let{__scopeTooltip:s,...x}=e,E=gR(s);return gG(gm,s).isInside?null:(0,ew.jsx)(gx,{...E,...x,ref:t})}).displayName=gm;var gf=x(13601);let gg=eQ.forwardRef(({className:e,sideOffset:t=4,...s},x)=>ew.jsx(gU,{ref:x,sideOffset:t,className:(0,gf.cn)("z-50 overflow-hidden rounded-md border bg-popover text-popover-foreground px-3 py-1.5 text-sm shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...s}));function gF({text:e,children:t}){return ew.jsx(gI,{children:(0,ew.jsxs)(gl,{children:[ew.jsx(gD,{children:t}),ew.jsx(gg,{children:ew.jsx("p",{className:"text-xs",children:e})})]})})}gg.displayName=gU.displayName;var gH=x(3090),gy=x(75689);function gV(){let[e,t]=(0,eK.v1)("query",eK.Oi.withDefault(""));return[decodeURIComponent(e),e=>t(encodeURIComponent(e))]}function gX({table:e,isLiveQuery:t}){let{chainName:s,worldAddress:x}=(0,eW.useParams)(),{id:E}=(0,eJ.A)(),[a]=gV(),r=(0,eZ.Y)(E);return(0,e$.a)({queryKey:["tableData",s,x,a],queryFn:async()=>{let e=performance.now(),t=await fetch(r.url,{method:"POST",headers:{"Content-Type":"application/json"},body:(0,ez.P)([{address:x,query:a}])}),s=await t.json();if(!t.ok)throw Error(s.msg||"Network response was not ok");let E=performance.now()-e,i=s.block_height;return{...s,queryDuration:E,blockHeight:i}},select:t=>{if(!e||!t?.result?.[0])return;let s=t.result[0];if(!s[0])return;let x=Object.keys(e.schema),E=s[0]?.map(e=>x.find(t=>t.toLowerCase()===e)||e),a=s.slice(1).map(t=>Object.fromEntries(E.map((s,x)=>{let E=t[x],a=e?.schema[s];return a?.type==="bool"?[s,"sqlite"===r.type?"1"===E:E]:[s,E]})));return{columns:E,rows:a,queryDuration:t.queryDuration,blockHeight:t.blockHeight}},retry:!1,enabled:!!e&&!!a,refetchInterval:e=>!e.state.error&&!!t&&1e3})}let gb=[5,10,20,30,40,50,100],gv={fontSize:14,fontWeight:"normal",wordWrap:"on",wrappingStrategy:"advanced",lineNumbers:"off",lineNumbersMinChars:0,overviewRulerLanes:0,overviewRulerBorder:!1,hideCursorInOverviewRuler:!0,lineDecorationsWidth:0,glyphMargin:!1,folding:!1,scrollBeyondLastColumn:0,scrollBeyondLastLine:!1,scrollbar:{horizontal:"hidden",vertical:"hidden",alwaysConsumeMouseWheel:!1,handleMouseWheel:!1},find:{addExtraSpaceOnTop:!1,autoFindInSelection:"never",seedSearchStringFromSelection:"never"},minimap:{enabled:!1},wordBasedSuggestions:"off",links:!1,occurrencesHighlight:"off",cursorStyle:"line-thin",renderLineHighlight:"none",contextmenu:!1,roundedSelection:!1,hover:{delay:100},acceptSuggestionOnEnter:"on",automaticLayout:!0,fixedOverflowWidgets:!0};function gk(e=10){let[t,s]=(0,eK.v1)("page",eK.U.withDefault(0)),[x,E]=(0,eK.v1)("pageSize",eK.U.withDefault(e));return[{pageIndex:t,pageSize:x},(0,eQ.useCallback)(e=>{s(e.pageIndex),E(e.pageSize)},[s,E])]}var gw=x(2640),gW=x(30103);let gK=new gW.Parser,gQ={database:"Postgresql"};function gJ(e,t){let s=e.split("\n"),x=1,E=1,a=0;for(let r=0;r<s.length;r++){let i=s[r]?.length;if(i){if(a+i>=e.indexOf(t)){x=r+1,E=e.indexOf(t)-a+1;break}a+=i+1}}return{startLineNumber:x,endLineNumber:x,startColumn:E,endColumn:E+t.length}}let gZ=new gW.Parser,gz={database:"Postgresql"};function gq(e){try{let t=decodeURIComponent(e),s=gZ.astify(t,gz);if(Array.isArray(s)&&s.length>0){let e=s[0];e&&(s=e)}let x=null,E=null;return"limit"in s&&(s.limit?.seperator==="offset"?(x=s.limit?.value?.[0]?.value,E=s.limit?.value?.[1]?.value):x=s.limit?.value?.[0]?.value),{limit:x,offset:E}}catch(e){return console.error("Error parsing query:",e),{limit:null,offset:null}}}function gj({table:e,isLiveQuery:t,setIsLiveQuery:s}){let x=(0,eQ.useRef)(null),E=(0,eQ.useRef)(null),[a,r]=(0,eQ.useState)(!1),[i,n]=(0,eQ.useState)(!1),[_,T]=gk(),[S,R]=gV(),O=function(e){let t=fM(),{worldAddress:s}=(0,eW.useParams)(),{id:x}=(0,eJ.A)(),E=(0,eZ.Y)(x),a=function(){let e=fM();return(0,eQ.useCallback)(({message:t,startLineNumber:s,endLineNumber:x,startColumn:E,endColumn:a})=>{let r=e?.editor.getModels()[0];r&&e.editor.setModelMarkers(r,"sql",[{severity:e.MarkerSeverity.Error,message:t,startLineNumber:s,endLineNumber:x,startColumn:E,endColumn:a}])},[e])}();return(0,eQ.useCallback)(x=>{var r;if(!t||!e)return!0;let i=(r=decodeURIComponent(x)).endsWith(";")?r:`${r};`;try{let x=gK.astify(i,gQ);if("columns"in x&&Array.isArray(x.columns))for(let t of x.columns){let s=t.expr.column;if(!Object.keys(e.schema).includes(s))return a({message:`Column '${s}' does not exist in the table schema.`,...gJ(i,s)}),!1}if("from"in x&&Array.isArray(x.from)){for(let t of x.from)if("table"in t){let x=t.table,r=ci(e,s,E.type);if(x!==r)return a({message:`Only '${r}' is available for this query.`,...gJ(i,x)}),!1}}let r=t?.editor.getModels()[0];return r&&t.editor.setModelMarkers(r,"sql",[]),!0}catch(e){if(e instanceof Error){let t=i.split("\n"),s=t[t.length-1];a({message:e.message,startLineNumber:1,endLineNumber:t.length,startColumn:1,endColumn:s?s.length+1:1})}return!1}},[t,e,a,s,E.type])}(e),{data:A,refetch:o,isRefetching:N}=gX({table:e,isLiveQuery:t});fM(),function(e){let{worldAddress:t}=(0,eW.useParams)(),{id:s}=(0,eJ.A)(),x=(0,eZ.Y)(s);(0,eQ.useMemo)(()=>{if(!e||!t||!s)return null;let E=ci(e,t,x.type),a=Object.keys(e.schema);return new gw.SQLAutocomplete(gw.SQLDialect.PLpgSQL,[E],a)},[e,t,s,x.type])}(e);let I=(0,m1.cI)({defaultValues:{query:S}}),h=I.watch("query"),L=I.handleSubmit(({query:e})=>{if(O(e)){R(e);let{limit:t,offset:s}=gq(e);null==t||null==s?T({..._,pageIndex:0}):gb.includes(t)&&(0===s||s%t==0)?T({pageSize:t,pageIndex:s/t}):T({..._,pageIndex:0}),n(!0),o().finally(()=>n(!1))}}),C=()=>{if(x.current){let e=Math.min(200,x.current.getContentHeight());E.current&&(E.current.style.height=`${e}px`),x.current.layout({width:x.current.getLayoutInfo().width,height:e})}};return ew.jsx(gy.l0,{...I,children:(0,ew.jsxs)("form",{onSubmit:L,className:"space-y-4",children:[(0,ew.jsxs)("div",{className:(0,gf.cn)("relative w-full rounded-md border bg-black px-3 py-2 ring-offset-background",{"outline-none ring-2 ring-ring ring-offset-2":a}),children:[ew.jsx(gy.Wi,{name:"query",render:({field:e})=>ew.jsx("div",{ref:E,className:"min-h-[21px] w-full",children:ew.jsx(fU,{width:"100%",theme:"vs-dark",value:decodeURIComponent(e.value),options:gv,language:"sql",onChange:t=>e.onChange(t??""),onMount:(e,t)=>{x.current=e,t.editor.defineTheme("custom-vs-dark",{base:"vs-dark",inherit:!0,rules:[{token:"string.sql",foreground:"#C5947C"}],colors:{"editor.background":"#000000"}}),t.editor.setTheme("custom-vs-dark"),C(),e.onDidContentSizeChange(C),e.onDidFocusEditorText(()=>r(!0)),e.onDidBlurEditorText(()=>r(!1))},loading:null})})}),h!==S?ew.jsx("span",{className:"absolute right-1 top-[-6px] text-5xl text-primary",children:ew.jsx("span",{className:"text-5xl text-primary",children:"\xb7"})}):null]}),(0,ew.jsxs)("div",{className:"flex justify-end gap-4",children:[A?(0,ew.jsxs)(ew.Fragment,{children:[(0,ew.jsxs)("span",{className:"flex items-center gap-1.5 text-xs text-white/60",children:[ew.jsx(gF,{text:"Execution time for the SQL query",children:(0,ew.jsxs)("span",{className:"flex items-center gap-1.5",children:[ew.jsx("span",{className:(0,gf.cn)("inline-block h-[6px] w-[6px] rounded-full bg-success",{"animate-pulse":t})}),(0,ew.jsxs)("span",{children:[A?Math.round(A.queryDuration):0,"ms"]})]})}),"\xb7",(0,ew.jsxs)("span",{children:[A?.rows.length??0," row",A?.rows.length!==1?"s":""]})]}),ew.jsx(gF,{text:t?"Pause live query":"Start live query",children:ew.jsx(gH.z,{type:"button",variant:"outline",size:"icon",onClick:e=>{e.preventDefault(),s(!t)},children:t?ew.jsx(c_,{className:"h-4 w-4"}):ew.jsx(cc,{className:"h-4 w-4"})})})]}):null,(0,ew.jsxs)(gH.z,{className:"group relative flex gap-2 pl-4 pr-3",type:"submit",disabled:N&&i,children:["Run",(0,ew.jsxs)("span",{className:"relative flex items-center gap-0.5 text-white/60",children:[ew.jsx(cT.Z,{className:"absolute h-4 w-4 animate-spin opacity-0 group-disabled:opacity-100"}),ew.jsx("span",{className:"flex items-center gap-0.5 opacity-100 group-disabled:opacity-0",children:navigator.platform.toLowerCase().includes("mac")?(0,ew.jsxs)(ew.Fragment,{children:[ew.jsx(cS,{className:"h-3 w-3"}),ew.jsx(cR,{className:"h-3 w-3"})]}):(0,ew.jsxs)(ew.Fragment,{children:[ew.jsx("span",{className:"text-xs",children:"CTRL"}),ew.jsx(cR,{className:"h-3 w-3"})]})})]})]})]})]})})}var g$=x(82578);/**
|
|
1078
1078
|
* @license lucide-react v0.408.0 - ISC
|
|
1079
1079
|
*
|
|
1080
1080
|
* This source code is licensed under the ISC license.
|