{"version":3,"file":"static/js/8751_c683250585dccc0eb780.js","mappings":"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","sources":["file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overlayWidgets/overlayWidgets.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/overviewRuler/overviewRuler.js","file:////home/runner/work/platform/platform/common/temp/node_modules/.pnpm/monaco-editor@0.50.0/node_modules/monaco-editor/esm/vs/editor/browser/viewParts/rulers/rulers.js"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './overlayWidgets.css';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { PartFingerprints, ViewPart } from '../../view/viewPart.js';\nimport * as dom from '../../../../base/browser/dom.js';\nexport class ViewOverlayWidgets extends ViewPart {\n constructor(context, viewDomNode) {\n super(context);\n this._viewDomNode = viewDomNode;\n const options = this._context.configuration.options;\n const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n this._widgets = {};\n this._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n this._minimapWidth = layoutInfo.minimap.minimapWidth;\n this._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n this._editorHeight = layoutInfo.height;\n this._editorWidth = layoutInfo.width;\n this._viewDomNodeRect = { top: 0, left: 0, width: 0, height: 0 };\n this._domNode = createFastDomNode(document.createElement('div'));\n PartFingerprints.write(this._domNode, 4 /* PartFingerprint.OverlayWidgets */);\n this._domNode.setClassName('overlayWidgets');\n this.overflowingOverlayWidgetsDomNode = createFastDomNode(document.createElement('div'));\n PartFingerprints.write(this.overflowingOverlayWidgetsDomNode, 5 /* PartFingerprint.OverflowingOverlayWidgets */);\n this.overflowingOverlayWidgetsDomNode.setClassName('overflowingOverlayWidgets');\n }\n dispose() {\n super.dispose();\n this._widgets = {};\n }\n getDomNode() {\n return this._domNode;\n }\n // ---- begin view event handlers\n onConfigurationChanged(e) {\n const options = this._context.configuration.options;\n const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n this._verticalScrollbarWidth = layoutInfo.verticalScrollbarWidth;\n this._minimapWidth = layoutInfo.minimap.minimapWidth;\n this._horizontalScrollbarHeight = layoutInfo.horizontalScrollbarHeight;\n this._editorHeight = layoutInfo.height;\n this._editorWidth = layoutInfo.width;\n return true;\n }\n // ---- end view event handlers\n addWidget(widget) {\n const domNode = createFastDomNode(widget.getDomNode());\n this._widgets[widget.getId()] = {\n widget: widget,\n preference: null,\n domNode: domNode\n };\n // This is sync because a widget wants to be in the dom\n domNode.setPosition('absolute');\n domNode.setAttribute('widgetId', widget.getId());\n if (widget.allowEditorOverflow) {\n this.overflowingOverlayWidgetsDomNode.appendChild(domNode);\n }\n else {\n this._domNode.appendChild(domNode);\n }\n this.setShouldRender();\n this._updateMaxMinWidth();\n }\n setWidgetPosition(widget, position) {\n const widgetData = this._widgets[widget.getId()];\n const preference = position ? position.preference : null;\n const stack = position === null || position === void 0 ? void 0 : position.stackOridinal;\n if (widgetData.preference === preference && widgetData.stack === stack) {\n this._updateMaxMinWidth();\n return false;\n }\n widgetData.preference = preference;\n widgetData.stack = stack;\n this.setShouldRender();\n this._updateMaxMinWidth();\n return true;\n }\n removeWidget(widget) {\n const widgetId = widget.getId();\n if (this._widgets.hasOwnProperty(widgetId)) {\n const widgetData = this._widgets[widgetId];\n const domNode = widgetData.domNode.domNode;\n delete this._widgets[widgetId];\n domNode.remove();\n this.setShouldRender();\n this._updateMaxMinWidth();\n }\n }\n _updateMaxMinWidth() {\n var _a, _b;\n let maxMinWidth = 0;\n const keys = Object.keys(this._widgets);\n for (let i = 0, len = keys.length; i < len; i++) {\n const widgetId = keys[i];\n const widget = this._widgets[widgetId];\n const widgetMinWidthInPx = (_b = (_a = widget.widget).getMinContentWidthInPx) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (typeof widgetMinWidthInPx !== 'undefined') {\n maxMinWidth = Math.max(maxMinWidth, widgetMinWidthInPx);\n }\n }\n this._context.viewLayout.setOverlayWidgetsMinWidth(maxMinWidth);\n }\n _renderWidget(widgetData, stackCoordinates) {\n const domNode = widgetData.domNode;\n if (widgetData.preference === null) {\n domNode.setTop('');\n return;\n }\n const maxRight = (2 * this._verticalScrollbarWidth) + this._minimapWidth;\n if (widgetData.preference === 0 /* OverlayWidgetPositionPreference.TOP_RIGHT_CORNER */ || widgetData.preference === 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */) {\n if (widgetData.preference === 1 /* OverlayWidgetPositionPreference.BOTTOM_RIGHT_CORNER */) {\n const widgetHeight = domNode.domNode.clientHeight;\n domNode.setTop((this._editorHeight - widgetHeight - 2 * this._horizontalScrollbarHeight));\n }\n else {\n domNode.setTop(0);\n }\n if (widgetData.stack !== undefined) {\n domNode.setTop(stackCoordinates[widgetData.preference]);\n stackCoordinates[widgetData.preference] += domNode.domNode.clientWidth;\n }\n else {\n domNode.setRight(maxRight);\n }\n }\n else if (widgetData.preference === 2 /* OverlayWidgetPositionPreference.TOP_CENTER */) {\n domNode.domNode.style.right = '50%';\n if (widgetData.stack !== undefined) {\n domNode.setTop(stackCoordinates[2 /* OverlayWidgetPositionPreference.TOP_CENTER */]);\n stackCoordinates[2 /* OverlayWidgetPositionPreference.TOP_CENTER */] += domNode.domNode.clientHeight;\n }\n else {\n domNode.setTop(0);\n }\n }\n else {\n const { top, left } = widgetData.preference;\n const fixedOverflowWidgets = this._context.configuration.options.get(42 /* EditorOption.fixedOverflowWidgets */);\n if (fixedOverflowWidgets && widgetData.widget.allowEditorOverflow) {\n // top, left are computed relative to the editor and we need them relative to the page\n const editorBoundingBox = this._viewDomNodeRect;\n domNode.setTop(top + editorBoundingBox.top);\n domNode.setLeft(left + editorBoundingBox.left);\n domNode.setPosition('fixed');\n }\n else {\n domNode.setTop(top);\n domNode.setLeft(left);\n domNode.setPosition('absolute');\n }\n }\n }\n prepareRender(ctx) {\n this._viewDomNodeRect = dom.getDomNodePagePosition(this._viewDomNode.domNode);\n }\n render(ctx) {\n this._domNode.setWidth(this._editorWidth);\n const keys = Object.keys(this._widgets);\n const stackCoordinates = Array.from({ length: 2 /* OverlayWidgetPositionPreference.TOP_CENTER */ + 1 }, () => 0);\n keys.sort((a, b) => (this._widgets[a].stack || 0) - (this._widgets[b].stack || 0));\n for (let i = 0, len = keys.length; i < len; i++) {\n const widgetId = keys[i];\n this._renderWidget(this._widgets[widgetId], stackCoordinates);\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { Color } from '../../../../base/common/color.js';\nimport { ViewPart } from '../../view/viewPart.js';\nimport { Position } from '../../../common/core/position.js';\nimport { TokenizationRegistry } from '../../../common/languages.js';\nimport { editorCursorForeground, editorOverviewRulerBorder, editorOverviewRulerBackground, editorMultiCursorSecondaryForeground, editorMultiCursorPrimaryForeground } from '../../../common/core/editorColorRegistry.js';\nimport { OverviewRulerDecorationsGroup } from '../../../common/viewModel.js';\nimport { equals } from '../../../../base/common/arrays.js';\nclass Settings {\n constructor(config, theme) {\n const options = config.options;\n this.lineHeight = options.get(67 /* EditorOption.lineHeight */);\n this.pixelRatio = options.get(143 /* EditorOption.pixelRatio */);\n this.overviewRulerLanes = options.get(83 /* EditorOption.overviewRulerLanes */);\n this.renderBorder = options.get(82 /* EditorOption.overviewRulerBorder */);\n const borderColor = theme.getColor(editorOverviewRulerBorder);\n this.borderColor = borderColor ? borderColor.toString() : null;\n this.hideCursor = options.get(59 /* EditorOption.hideCursorInOverviewRuler */);\n const cursorColorSingle = theme.getColor(editorCursorForeground);\n this.cursorColorSingle = cursorColorSingle ? cursorColorSingle.transparent(0.7).toString() : null;\n const cursorColorPrimary = theme.getColor(editorMultiCursorPrimaryForeground);\n this.cursorColorPrimary = cursorColorPrimary ? cursorColorPrimary.transparent(0.7).toString() : null;\n const cursorColorSecondary = theme.getColor(editorMultiCursorSecondaryForeground);\n this.cursorColorSecondary = cursorColorSecondary ? cursorColorSecondary.transparent(0.7).toString() : null;\n this.themeType = theme.type;\n const minimapOpts = options.get(73 /* EditorOption.minimap */);\n const minimapEnabled = minimapOpts.enabled;\n const minimapSide = minimapOpts.side;\n const themeColor = theme.getColor(editorOverviewRulerBackground);\n const defaultBackground = TokenizationRegistry.getDefaultBackground();\n if (themeColor) {\n this.backgroundColor = themeColor;\n }\n else if (minimapEnabled && minimapSide === 'right') {\n this.backgroundColor = defaultBackground;\n }\n else {\n this.backgroundColor = null;\n }\n const layoutInfo = options.get(145 /* EditorOption.layoutInfo */);\n const position = layoutInfo.overviewRuler;\n this.top = position.top;\n this.right = position.right;\n this.domWidth = position.width;\n this.domHeight = position.height;\n if (this.overviewRulerLanes === 0) {\n // overview ruler is off\n this.canvasWidth = 0;\n this.canvasHeight = 0;\n }\n else {\n this.canvasWidth = (this.domWidth * this.pixelRatio) | 0;\n this.canvasHeight = (this.domHeight * this.pixelRatio) | 0;\n }\n const [x, w] = this._initLanes(1, this.canvasWidth, this.overviewRulerLanes);\n this.x = x;\n this.w = w;\n }\n _initLanes(canvasLeftOffset, canvasWidth, laneCount) {\n const remainingWidth = canvasWidth - canvasLeftOffset;\n if (laneCount >= 3) {\n const leftWidth = Math.floor(remainingWidth / 3);\n const rightWidth = Math.floor(remainingWidth / 3);\n const centerWidth = remainingWidth - leftWidth - rightWidth;\n const leftOffset = canvasLeftOffset;\n const centerOffset = leftOffset + leftWidth;\n const rightOffset = leftOffset + leftWidth + centerWidth;\n return [\n [\n 0,\n leftOffset, // Left\n centerOffset, // Center\n leftOffset, // Left | Center\n rightOffset, // Right\n leftOffset, // Left | Right\n centerOffset, // Center | Right\n leftOffset, // Left | Center | Right\n ], [\n 0,\n leftWidth, // Left\n centerWidth, // Center\n leftWidth + centerWidth, // Left | Center\n rightWidth, // Right\n leftWidth + centerWidth + rightWidth, // Left | Right\n centerWidth + rightWidth, // Center | Right\n leftWidth + centerWidth + rightWidth, // Left | Center | Right\n ]\n ];\n }\n else if (laneCount === 2) {\n const leftWidth = Math.floor(remainingWidth / 2);\n const rightWidth = remainingWidth - leftWidth;\n const leftOffset = canvasLeftOffset;\n const rightOffset = leftOffset + leftWidth;\n return [\n [\n 0,\n leftOffset, // Left\n leftOffset, // Center\n leftOffset, // Left | Center\n rightOffset, // Right\n leftOffset, // Left | Right\n leftOffset, // Center | Right\n leftOffset, // Left | Center | Right\n ], [\n 0,\n leftWidth, // Left\n leftWidth, // Center\n leftWidth, // Left | Center\n rightWidth, // Right\n leftWidth + rightWidth, // Left | Right\n leftWidth + rightWidth, // Center | Right\n leftWidth + rightWidth, // Left | Center | Right\n ]\n ];\n }\n else {\n const offset = canvasLeftOffset;\n const width = remainingWidth;\n return [\n [\n 0,\n offset, // Left\n offset, // Center\n offset, // Left | Center\n offset, // Right\n offset, // Left | Right\n offset, // Center | Right\n offset, // Left | Center | Right\n ], [\n 0,\n width, // Left\n width, // Center\n width, // Left | Center\n width, // Right\n width, // Left | Right\n width, // Center | Right\n width, // Left | Center | Right\n ]\n ];\n }\n }\n equals(other) {\n return (this.lineHeight === other.lineHeight\n && this.pixelRatio === other.pixelRatio\n && this.overviewRulerLanes === other.overviewRulerLanes\n && this.renderBorder === other.renderBorder\n && this.borderColor === other.borderColor\n && this.hideCursor === other.hideCursor\n && this.cursorColorSingle === other.cursorColorSingle\n && this.cursorColorPrimary === other.cursorColorPrimary\n && this.cursorColorSecondary === other.cursorColorSecondary\n && this.themeType === other.themeType\n && Color.equals(this.backgroundColor, other.backgroundColor)\n && this.top === other.top\n && this.right === other.right\n && this.domWidth === other.domWidth\n && this.domHeight === other.domHeight\n && this.canvasWidth === other.canvasWidth\n && this.canvasHeight === other.canvasHeight);\n }\n}\nexport class DecorationsOverviewRuler extends ViewPart {\n constructor(context) {\n super(context);\n this._actualShouldRender = 0 /* ShouldRenderValue.NotNeeded */;\n this._renderedDecorations = [];\n this._renderedCursorPositions = [];\n this._domNode = createFastDomNode(document.createElement('canvas'));\n this._domNode.setClassName('decorationsOverviewRuler');\n this._domNode.setPosition('absolute');\n this._domNode.setLayerHinting(true);\n this._domNode.setContain('strict');\n this._domNode.setAttribute('aria-hidden', 'true');\n this._updateSettings(false);\n this._tokensColorTrackerListener = TokenizationRegistry.onDidChange((e) => {\n if (e.changedColorMap) {\n this._updateSettings(true);\n }\n });\n this._cursorPositions = [{ position: new Position(1, 1), color: this._settings.cursorColorSingle }];\n }\n dispose() {\n super.dispose();\n this._tokensColorTrackerListener.dispose();\n }\n _updateSettings(renderNow) {\n const newSettings = new Settings(this._context.configuration, this._context.theme);\n if (this._settings && this._settings.equals(newSettings)) {\n // nothing to do\n return false;\n }\n this._settings = newSettings;\n this._domNode.setTop(this._settings.top);\n this._domNode.setRight(this._settings.right);\n this._domNode.setWidth(this._settings.domWidth);\n this._domNode.setHeight(this._settings.domHeight);\n this._domNode.domNode.width = this._settings.canvasWidth;\n this._domNode.domNode.height = this._settings.canvasHeight;\n if (renderNow) {\n this._render();\n }\n return true;\n }\n // ---- begin view event handlers\n _markRenderingIsNeeded() {\n this._actualShouldRender = 2 /* ShouldRenderValue.Needed */;\n return true;\n }\n _markRenderingIsMaybeNeeded() {\n this._actualShouldRender = 1 /* ShouldRenderValue.Maybe */;\n return true;\n }\n onConfigurationChanged(e) {\n return this._updateSettings(false) ? this._markRenderingIsNeeded() : false;\n }\n onCursorStateChanged(e) {\n this._cursorPositions = [];\n for (let i = 0, len = e.selections.length; i < len; i++) {\n let color = this._settings.cursorColorSingle;\n if (len > 1) {\n color = i === 0 ? this._settings.cursorColorPrimary : this._settings.cursorColorSecondary;\n }\n this._cursorPositions.push({ position: e.selections[i].getPosition(), color });\n }\n this._cursorPositions.sort((a, b) => Position.compare(a.position, b.position));\n return this._markRenderingIsMaybeNeeded();\n }\n onDecorationsChanged(e) {\n if (e.affectsOverviewRuler) {\n return this._markRenderingIsMaybeNeeded();\n }\n return false;\n }\n onFlushed(e) {\n return this._markRenderingIsNeeded();\n }\n onScrollChanged(e) {\n return e.scrollHeightChanged ? this._markRenderingIsNeeded() : false;\n }\n onZonesChanged(e) {\n return this._markRenderingIsNeeded();\n }\n onThemeChanged(e) {\n return this._updateSettings(false) ? this._markRenderingIsNeeded() : false;\n }\n // ---- end view event handlers\n getDomNode() {\n return this._domNode.domNode;\n }\n prepareRender(ctx) {\n // Nothing to read\n }\n render(editorCtx) {\n this._render();\n this._actualShouldRender = 0 /* ShouldRenderValue.NotNeeded */;\n }\n _render() {\n const backgroundColor = this._settings.backgroundColor;\n if (this._settings.overviewRulerLanes === 0) {\n // overview ruler is off\n this._domNode.setBackgroundColor(backgroundColor ? Color.Format.CSS.formatHexA(backgroundColor) : '');\n this._domNode.setDisplay('none');\n return;\n }\n const decorations = this._context.viewModel.getAllOverviewRulerDecorations(this._context.theme);\n decorations.sort(OverviewRulerDecorationsGroup.compareByRenderingProps);\n if (this._actualShouldRender === 1 /* ShouldRenderValue.Maybe */ && !OverviewRulerDecorationsGroup.equalsArr(this._renderedDecorations, decorations)) {\n this._actualShouldRender = 2 /* ShouldRenderValue.Needed */;\n }\n if (this._actualShouldRender === 1 /* ShouldRenderValue.Maybe */ && !equals(this._renderedCursorPositions, this._cursorPositions, (a, b) => a.position.lineNumber === b.position.lineNumber && a.color === b.color)) {\n this._actualShouldRender = 2 /* ShouldRenderValue.Needed */;\n }\n if (this._actualShouldRender === 1 /* ShouldRenderValue.Maybe */) {\n // both decorations and cursor positions are unchanged, nothing to do\n return;\n }\n this._renderedDecorations = decorations;\n this._renderedCursorPositions = this._cursorPositions;\n this._domNode.setDisplay('block');\n const canvasWidth = this._settings.canvasWidth;\n const canvasHeight = this._settings.canvasHeight;\n const lineHeight = this._settings.lineHeight;\n const viewLayout = this._context.viewLayout;\n const outerHeight = this._context.viewLayout.getScrollHeight();\n const heightRatio = canvasHeight / outerHeight;\n const minDecorationHeight = (6 /* Constants.MIN_DECORATION_HEIGHT */ * this._settings.pixelRatio) | 0;\n const halfMinDecorationHeight = (minDecorationHeight / 2) | 0;\n const canvasCtx = this._domNode.domNode.getContext('2d');\n if (backgroundColor) {\n if (backgroundColor.isOpaque()) {\n // We have a background color which is opaque, we can just paint the entire surface with it\n canvasCtx.fillStyle = Color.Format.CSS.formatHexA(backgroundColor);\n canvasCtx.fillRect(0, 0, canvasWidth, canvasHeight);\n }\n else {\n // We have a background color which is transparent, we need to first clear the surface and\n // then fill it\n canvasCtx.clearRect(0, 0, canvasWidth, canvasHeight);\n canvasCtx.fillStyle = Color.Format.CSS.formatHexA(backgroundColor);\n canvasCtx.fillRect(0, 0, canvasWidth, canvasHeight);\n }\n }\n else {\n // We don't have a background color\n canvasCtx.clearRect(0, 0, canvasWidth, canvasHeight);\n }\n const x = this._settings.x;\n const w = this._settings.w;\n for (const decorationGroup of decorations) {\n const color = decorationGroup.color;\n const decorationGroupData = decorationGroup.data;\n canvasCtx.fillStyle = color;\n let prevLane = 0;\n let prevY1 = 0;\n let prevY2 = 0;\n for (let i = 0, len = decorationGroupData.length / 3; i < len; i++) {\n const lane = decorationGroupData[3 * i];\n const startLineNumber = decorationGroupData[3 * i + 1];\n const endLineNumber = decorationGroupData[3 * i + 2];\n let y1 = (viewLayout.getVerticalOffsetForLineNumber(startLineNumber) * heightRatio) | 0;\n let y2 = ((viewLayout.getVerticalOffsetForLineNumber(endLineNumber) + lineHeight) * heightRatio) | 0;\n const height = y2 - y1;\n if (height < minDecorationHeight) {\n let yCenter = ((y1 + y2) / 2) | 0;\n if (yCenter < halfMinDecorationHeight) {\n yCenter = halfMinDecorationHeight;\n }\n else if (yCenter + halfMinDecorationHeight > canvasHeight) {\n yCenter = canvasHeight - halfMinDecorationHeight;\n }\n y1 = yCenter - halfMinDecorationHeight;\n y2 = yCenter + halfMinDecorationHeight;\n }\n if (y1 > prevY2 + 1 || lane !== prevLane) {\n // flush prev\n if (i !== 0) {\n canvasCtx.fillRect(x[prevLane], prevY1, w[prevLane], prevY2 - prevY1);\n }\n prevLane = lane;\n prevY1 = y1;\n prevY2 = y2;\n }\n else {\n // merge into prev\n if (y2 > prevY2) {\n prevY2 = y2;\n }\n }\n }\n canvasCtx.fillRect(x[prevLane], prevY1, w[prevLane], prevY2 - prevY1);\n }\n // Draw cursors\n if (!this._settings.hideCursor) {\n const cursorHeight = (2 * this._settings.pixelRatio) | 0;\n const halfCursorHeight = (cursorHeight / 2) | 0;\n const cursorX = this._settings.x[7 /* OverviewRulerLane.Full */];\n const cursorW = this._settings.w[7 /* OverviewRulerLane.Full */];\n let prevY1 = -100;\n let prevY2 = -100;\n let prevColor = null;\n for (let i = 0, len = this._cursorPositions.length; i < len; i++) {\n const color = this._cursorPositions[i].color;\n if (!color) {\n continue;\n }\n const cursor = this._cursorPositions[i].position;\n let yCenter = (viewLayout.getVerticalOffsetForLineNumber(cursor.lineNumber) * heightRatio) | 0;\n if (yCenter < halfCursorHeight) {\n yCenter = halfCursorHeight;\n }\n else if (yCenter + halfCursorHeight > canvasHeight) {\n yCenter = canvasHeight - halfCursorHeight;\n }\n const y1 = yCenter - halfCursorHeight;\n const y2 = y1 + cursorHeight;\n if (y1 > prevY2 + 1 || color !== prevColor) {\n // flush prev\n if (i !== 0 && prevColor) {\n canvasCtx.fillRect(cursorX, prevY1, cursorW, prevY2 - prevY1);\n }\n prevY1 = y1;\n prevY2 = y2;\n }\n else {\n // merge into prev\n if (y2 > prevY2) {\n prevY2 = y2;\n }\n }\n prevColor = color;\n canvasCtx.fillStyle = color;\n }\n if (prevColor) {\n canvasCtx.fillRect(cursorX, prevY1, cursorW, prevY2 - prevY1);\n }\n }\n if (this._settings.renderBorder && this._settings.borderColor && this._settings.overviewRulerLanes > 0) {\n canvasCtx.beginPath();\n canvasCtx.lineWidth = 1;\n canvasCtx.strokeStyle = this._settings.borderColor;\n canvasCtx.moveTo(0, 0);\n canvasCtx.lineTo(0, canvasHeight);\n canvasCtx.stroke();\n canvasCtx.moveTo(0, 0);\n canvasCtx.lineTo(canvasWidth, 0);\n canvasCtx.stroke();\n }\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { OverviewZoneManager } from '../../../common/viewModel/overviewZoneManager.js';\nimport { ViewEventHandler } from '../../../common/viewEventHandler.js';\nexport class OverviewRuler extends ViewEventHandler {\n constructor(context, cssClassName) {\n super();\n this._context = context;\n const options = this._context.configuration.options;\n this._domNode = createFastDomNode(document.createElement('canvas'));\n this._domNode.setClassName(cssClassName);\n this._domNode.setPosition('absolute');\n this._domNode.setLayerHinting(true);\n this._domNode.setContain('strict');\n this._zoneManager = new OverviewZoneManager((lineNumber) => this._context.viewLayout.getVerticalOffsetForLineNumber(lineNumber));\n this._zoneManager.setDOMWidth(0);\n this._zoneManager.setDOMHeight(0);\n this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight());\n this._zoneManager.setLineHeight(options.get(67 /* EditorOption.lineHeight */));\n this._zoneManager.setPixelRatio(options.get(143 /* EditorOption.pixelRatio */));\n this._context.addEventHandler(this);\n }\n dispose() {\n this._context.removeEventHandler(this);\n super.dispose();\n }\n // ---- begin view event handlers\n onConfigurationChanged(e) {\n const options = this._context.configuration.options;\n if (e.hasChanged(67 /* EditorOption.lineHeight */)) {\n this._zoneManager.setLineHeight(options.get(67 /* EditorOption.lineHeight */));\n this._render();\n }\n if (e.hasChanged(143 /* EditorOption.pixelRatio */)) {\n this._zoneManager.setPixelRatio(options.get(143 /* EditorOption.pixelRatio */));\n this._domNode.setWidth(this._zoneManager.getDOMWidth());\n this._domNode.setHeight(this._zoneManager.getDOMHeight());\n this._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n this._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n this._render();\n }\n return true;\n }\n onFlushed(e) {\n this._render();\n return true;\n }\n onScrollChanged(e) {\n if (e.scrollHeightChanged) {\n this._zoneManager.setOuterHeight(e.scrollHeight);\n this._render();\n }\n return true;\n }\n onZonesChanged(e) {\n this._render();\n return true;\n }\n // ---- end view event handlers\n getDomNode() {\n return this._domNode.domNode;\n }\n setLayout(position) {\n this._domNode.setTop(position.top);\n this._domNode.setRight(position.right);\n let hasChanged = false;\n hasChanged = this._zoneManager.setDOMWidth(position.width) || hasChanged;\n hasChanged = this._zoneManager.setDOMHeight(position.height) || hasChanged;\n if (hasChanged) {\n this._domNode.setWidth(this._zoneManager.getDOMWidth());\n this._domNode.setHeight(this._zoneManager.getDOMHeight());\n this._domNode.domNode.width = this._zoneManager.getCanvasWidth();\n this._domNode.domNode.height = this._zoneManager.getCanvasHeight();\n this._render();\n }\n }\n setZones(zones) {\n this._zoneManager.setZones(zones);\n this._render();\n }\n _render() {\n if (this._zoneManager.getOuterHeight() === 0) {\n return false;\n }\n const width = this._zoneManager.getCanvasWidth();\n const height = this._zoneManager.getCanvasHeight();\n const colorZones = this._zoneManager.resolveColorZones();\n const id2Color = this._zoneManager.getId2Color();\n const ctx = this._domNode.domNode.getContext('2d');\n ctx.clearRect(0, 0, width, height);\n if (colorZones.length > 0) {\n this._renderOneLane(ctx, colorZones, id2Color, width);\n }\n return true;\n }\n _renderOneLane(ctx, colorZones, id2Color, width) {\n let currentColorId = 0;\n let currentFrom = 0;\n let currentTo = 0;\n for (const zone of colorZones) {\n const zoneColorId = zone.colorId;\n const zoneFrom = zone.from;\n const zoneTo = zone.to;\n if (zoneColorId !== currentColorId) {\n ctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n currentColorId = zoneColorId;\n ctx.fillStyle = id2Color[currentColorId];\n currentFrom = zoneFrom;\n currentTo = zoneTo;\n }\n else {\n if (currentTo >= zoneFrom) {\n currentTo = Math.max(currentTo, zoneTo);\n }\n else {\n ctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n currentFrom = zoneFrom;\n currentTo = zoneTo;\n }\n }\n }\n ctx.fillRect(0, currentFrom, width, currentTo - currentFrom);\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport './rulers.css';\nimport { createFastDomNode } from '../../../../base/browser/fastDomNode.js';\nimport { ViewPart } from '../../view/viewPart.js';\nexport class Rulers extends ViewPart {\n constructor(context) {\n super(context);\n this.domNode = createFastDomNode(document.createElement('div'));\n this.domNode.setAttribute('role', 'presentation');\n this.domNode.setAttribute('aria-hidden', 'true');\n this.domNode.setClassName('view-rulers');\n this._renderedRulers = [];\n const options = this._context.configuration.options;\n this._rulers = options.get(102 /* EditorOption.rulers */);\n this._typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n }\n dispose() {\n super.dispose();\n }\n // --- begin event handlers\n onConfigurationChanged(e) {\n const options = this._context.configuration.options;\n this._rulers = options.get(102 /* EditorOption.rulers */);\n this._typicalHalfwidthCharacterWidth = options.get(50 /* EditorOption.fontInfo */).typicalHalfwidthCharacterWidth;\n return true;\n }\n onScrollChanged(e) {\n return e.scrollHeightChanged;\n }\n // --- end event handlers\n prepareRender(ctx) {\n // Nothing to read\n }\n _ensureRulersCount() {\n const currentCount = this._renderedRulers.length;\n const desiredCount = this._rulers.length;\n if (currentCount === desiredCount) {\n // Nothing to do\n return;\n }\n if (currentCount < desiredCount) {\n const { tabSize } = this._context.viewModel.model.getOptions();\n const rulerWidth = tabSize;\n let addCount = desiredCount - currentCount;\n while (addCount > 0) {\n const node = createFastDomNode(document.createElement('div'));\n node.setClassName('view-ruler');\n node.setWidth(rulerWidth);\n this.domNode.appendChild(node);\n this._renderedRulers.push(node);\n addCount--;\n }\n return;\n }\n let removeCount = currentCount - desiredCount;\n while (removeCount > 0) {\n const node = this._renderedRulers.pop();\n this.domNode.removeChild(node);\n removeCount--;\n }\n }\n render(ctx) {\n this._ensureRulersCount();\n for (let i = 0, len = this._rulers.length; i < len; i++) {\n const node = this._renderedRulers[i];\n const ruler = this._rulers[i];\n node.setBoxShadow(ruler.color ? `1px 0 0 0 ${ruler.color} inset` : ``);\n node.setHeight(Math.min(ctx.scrollHeight, 1000000));\n node.setLeft(ruler.column * this._typicalHalfwidthCharacterWidth);\n }\n }\n}\n"],"names":["ViewOverlayWidgets","constructor","context","viewDomNode","super","this","_viewDomNode","layoutInfo","_context","configuration","options","get","_widgets","_verticalScrollbarWidth","verticalScrollbarWidth","_minimapWidth","minimap","minimapWidth","_horizontalScrollbarHeight","horizontalScrollbarHeight","_editorHeight","height","_editorWidth","width","_viewDomNodeRect","top","left","_domNode","document","createElement","setClassName","overflowingOverlayWidgetsDomNode","dispose","getDomNode","onConfigurationChanged","e","addWidget","widget","domNode","getId","preference","setPosition","setAttribute","allowEditorOverflow","appendChild","setShouldRender","_updateMaxMinWidth","setWidgetPosition","position","widgetData","stack","stackOridinal","removeWidget","widgetId","hasOwnProperty","remove","_a","_b","maxMinWidth","keys","Object","i","len","length","widgetMinWidthInPx","getMinContentWidthInPx","call","Math","max","viewLayout","setOverlayWidgetsMinWidth","_renderWidget","stackCoordinates","setTop","maxRight","widgetHeight","clientHeight","undefined","clientWidth","setRight","style","right","editorBoundingBox","setLeft","prepareRender","ctx","render","setWidth","Array","from","sort","a","b","Settings","config","theme","lineHeight","pixelRatio","overviewRulerLanes","renderBorder","borderColor","getColor","toString","hideCursor","cursorColorSingle","transparent","cursorColorPrimary","cursorColorSecondary","themeType","type","minimapOpts","minimapEnabled","enabled","minimapSide","side","themeColor","defaultBackground","backgroundColor","overviewRuler","domWidth","domHeight","canvasWidth","canvasHeight","x","w","_initLanes","canvasLeftOffset","laneCount","remainingWidth","leftWidth","floor","rightWidth","centerWidth","centerOffset","equals","other","DecorationsOverviewRuler","_actualShouldRender","_renderedDecorations","_renderedCursorPositions","setLayerHinting","setContain","_updateSettings","_tokensColorTrackerListener","changedColorMap","_cursorPositions","color","_settings","renderNow","newSettings","setHeight","_render","_markRenderingIsNeeded","_markRenderingIsMaybeNeeded","onCursorStateChanged","selections","push","getPosition","onDecorationsChanged","affectsOverviewRuler","onFlushed","onScrollChanged","scrollHeightChanged","onZonesChanged","onThemeChanged","editorCtx","setBackgroundColor","setDisplay","decorations","viewModel","getAllOverviewRulerDecorations","lineNumber","heightRatio","getScrollHeight","minDecorationHeight","halfMinDecorationHeight","canvasCtx","getContext","isOpaque","fillStyle","fillRect","clearRect","decorationGroup","decorationGroupData","data","prevLane","prevY1","prevY2","lane","startLineNumber","endLineNumber","y1","getVerticalOffsetForLineNumber","y2","yCenter","cursorHeight","halfCursorHeight","cursorX","cursorW","prevColor","cursor","beginPath","lineWidth","strokeStyle","moveTo","lineTo","stroke","OverviewRuler","cssClassName","_zoneManager","setDOMWidth","setDOMHeight","setOuterHeight","setLineHeight","setPixelRatio","addEventHandler","removeEventHandler","hasChanged","getDOMWidth","getDOMHeight","getCanvasWidth","getCanvasHeight","scrollHeight","setLayout","setZones","zones","getOuterHeight","colorZones","resolveColorZones","id2Color","getId2Color","_renderOneLane","currentColorId","currentFrom","currentTo","zone","zoneColorId","colorId","zoneFrom","zoneTo","to","Rulers","_renderedRulers","_rulers","_typicalHalfwidthCharacterWidth","typicalHalfwidthCharacterWidth","_ensureRulersCount","currentCount","desiredCount","tabSize","model","getOptions","rulerWidth","addCount","node","removeCount","pop","removeChild","ruler","setBoxShadow","min","column"],"sourceRoot":""}