{"version":3,"file":"static/js/8612_55c35f281331def5274b.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/widget/diffEditor/commands.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/widget/diffEditor/components/accessibleDiffViewer.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/widget/diffEditor/components/diffEditorDecorations.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/widget/diffEditor/components/diffEditorEditors.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/widget/diffEditor/components/diffEditorSash.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/widget/diffEditor/components/diffEditorViewZones/inlineDiffDeletedCodeMargin.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/widget/diffEditor/components/diffEditorViewZones/renderLines.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/widget/diffEditor/components/diffEditorViewZones/diffEditorViewZones.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 { getActiveElement } from '../../../../base/browser/dom.js';\nimport { Codicon } from '../../../../base/common/codicons.js';\nimport { EditorAction2 } from '../../editorExtensions.js';\nimport { ICodeEditorService } from '../../services/codeEditorService.js';\nimport { DiffEditorWidget } from './diffEditorWidget.js';\nimport { EditorContextKeys } from '../../../common/editorContextKeys.js';\nimport { localize2 } from '../../../../nls.js';\nimport { Action2, MenuId } from '../../../../platform/actions/common/actions.js';\nimport { IConfigurationService } from '../../../../platform/configuration/common/configuration.js';\nimport { ContextKeyExpr } from '../../../../platform/contextkey/common/contextkey.js';\nimport './registrations.contribution.js';\nexport class ToggleCollapseUnchangedRegions extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleCollapseUnchangedRegions',\n title: localize2('toggleCollapseUnchangedRegions', 'Toggle Collapse Unchanged Regions'),\n icon: Codicon.map,\n toggled: ContextKeyExpr.has('config.diffEditor.hideUnchangedRegions.enabled'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n menu: {\n when: ContextKeyExpr.has('isInDiffEditor'),\n id: MenuId.EditorTitle,\n order: 22,\n group: 'navigation',\n },\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.hideUnchangedRegions.enabled');\n configurationService.updateValue('diffEditor.hideUnchangedRegions.enabled', newValue);\n }\n}\nexport class ToggleShowMovedCodeBlocks extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleShowMovedCodeBlocks',\n title: localize2('toggleShowMovedCodeBlocks', 'Toggle Show Moved Code Blocks'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.experimental.showMoves');\n configurationService.updateValue('diffEditor.experimental.showMoves', newValue);\n }\n}\nexport class ToggleUseInlineViewWhenSpaceIsLimited extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.toggleUseInlineViewWhenSpaceIsLimited',\n title: localize2('toggleUseInlineViewWhenSpaceIsLimited', 'Toggle Use Inline View When Space Is Limited'),\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n });\n }\n run(accessor, ...args) {\n const configurationService = accessor.get(IConfigurationService);\n const newValue = !configurationService.getValue('diffEditor.useInlineViewWhenSpaceIsLimited');\n configurationService.updateValue('diffEditor.useInlineViewWhenSpaceIsLimited', newValue);\n }\n}\nconst diffEditorCategory = localize2('diffEditor', \"Diff Editor\");\nexport class SwitchSide extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.switchSide',\n title: localize2('switchSide', 'Switch Side'),\n icon: Codicon.arrowSwap,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, arg) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n if (arg && arg.dryRun) {\n return { destinationSelection: diffEditor.mapToOtherSide().destinationSelection };\n }\n else {\n diffEditor.switchSide();\n }\n }\n return undefined;\n }\n}\nexport class ExitCompareMove extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.exitCompareMove',\n title: localize2('exitCompareMove', 'Exit Compare Move'),\n icon: Codicon.close,\n precondition: EditorContextKeys.comparingMovedCode,\n f1: false,\n category: diffEditorCategory,\n keybinding: {\n weight: 10000,\n primary: 9 /* KeyCode.Escape */,\n }\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.exitCompareMove();\n }\n }\n}\nexport class CollapseAllUnchangedRegions extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.collapseAllUnchangedRegions',\n title: localize2('collapseAllUnchangedRegions', 'Collapse All Unchanged Regions'),\n icon: Codicon.fold,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.collapseAllUnchangedRegions();\n }\n }\n}\nexport class ShowAllUnchangedRegions extends EditorAction2 {\n constructor() {\n super({\n id: 'diffEditor.showAllUnchangedRegions',\n title: localize2('showAllUnchangedRegions', 'Show All Unchanged Regions'),\n icon: Codicon.unfold,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n f1: true,\n category: diffEditorCategory,\n });\n }\n runEditorCommand(accessor, editor, ...args) {\n const diffEditor = findFocusedDiffEditor(accessor);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.showAllUnchangedRegions();\n }\n }\n}\nexport class RevertHunkOrSelection extends Action2 {\n constructor() {\n super({\n id: 'diffEditor.revert',\n title: localize2('revert', 'Revert'),\n f1: false,\n category: diffEditorCategory,\n });\n }\n run(accessor, arg) {\n var _a;\n const diffEditor = findDiffEditor(accessor, arg.originalUri, arg.modifiedUri);\n if (diffEditor instanceof DiffEditorWidget) {\n diffEditor.revertRangeMappings((_a = arg.mapping.innerChanges) !== null && _a !== void 0 ? _a : []);\n }\n return undefined;\n }\n}\nconst accessibleDiffViewerCategory = localize2('accessibleDiffViewer', \"Accessible Diff Viewer\");\nexport class AccessibleDiffViewerNext extends Action2 {\n constructor() {\n super({\n id: AccessibleDiffViewerNext.id,\n title: localize2('editor.action.accessibleDiffViewer.next', 'Go to Next Difference'),\n category: accessibleDiffViewerCategory,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n keybinding: {\n primary: 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n f1: true,\n });\n }\n run(accessor) {\n const diffEditor = findFocusedDiffEditor(accessor);\n diffEditor === null || diffEditor === void 0 ? void 0 : diffEditor.accessibleDiffViewerNext();\n }\n}\nAccessibleDiffViewerNext.id = 'editor.action.accessibleDiffViewer.next';\nexport class AccessibleDiffViewerPrev extends Action2 {\n constructor() {\n super({\n id: AccessibleDiffViewerPrev.id,\n title: localize2('editor.action.accessibleDiffViewer.prev', 'Go to Previous Difference'),\n category: accessibleDiffViewerCategory,\n precondition: ContextKeyExpr.has('isInDiffEditor'),\n keybinding: {\n primary: 1024 /* KeyMod.Shift */ | 65 /* KeyCode.F7 */,\n weight: 100 /* KeybindingWeight.EditorContrib */\n },\n f1: true,\n });\n }\n run(accessor) {\n const diffEditor = findFocusedDiffEditor(accessor);\n diffEditor === null || diffEditor === void 0 ? void 0 : diffEditor.accessibleDiffViewerPrev();\n }\n}\nAccessibleDiffViewerPrev.id = 'editor.action.accessibleDiffViewer.prev';\nexport function findDiffEditor(accessor, originalUri, modifiedUri) {\n const codeEditorService = accessor.get(ICodeEditorService);\n const diffEditors = codeEditorService.listDiffEditors();\n return diffEditors.find(diffEditor => {\n var _a, _b;\n const modified = diffEditor.getModifiedEditor();\n const original = diffEditor.getOriginalEditor();\n return modified && ((_a = modified.getModel()) === null || _a === void 0 ? void 0 : _a.uri.toString()) === modifiedUri.toString()\n && original && ((_b = original.getModel()) === null || _b === void 0 ? void 0 : _b.uri.toString()) === originalUri.toString();\n }) || null;\n}\nexport function findFocusedDiffEditor(accessor) {\n const codeEditorService = accessor.get(ICodeEditorService);\n const diffEditors = codeEditorService.listDiffEditors();\n const activeElement = getActiveElement();\n if (activeElement) {\n for (const d of diffEditors) {\n const container = d.getContainerDomNode();\n if (isElementOrParentOf(container, activeElement)) {\n return d;\n }\n }\n }\n return null;\n}\nfunction isElementOrParentOf(elementOrParent, element) {\n let e = element;\n while (e) {\n if (e === elementOrParent) {\n return true;\n }\n e = e.parentElement;\n }\n return false;\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 *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { addDisposableListener, addStandardDisposableListener, reset } from '../../../../../base/browser/dom.js';\nimport { createTrustedTypesPolicy } from '../../../../../base/browser/trustedTypes.js';\nimport { ActionBar } from '../../../../../base/browser/ui/actionbar/actionbar.js';\nimport { DomScrollableElement } from '../../../../../base/browser/ui/scrollbar/scrollableElement.js';\nimport { Action } from '../../../../../base/common/actions.js';\nimport { forEachAdjacent, groupAdjacentBy } from '../../../../../base/common/arrays.js';\nimport { Codicon } from '../../../../../base/common/codicons.js';\nimport { Disposable, toDisposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, autorunWithStore, derived, derivedWithStore, observableValue, subtransaction, transaction } from '../../../../../base/common/observable.js';\nimport { ThemeIcon } from '../../../../../base/common/themables.js';\nimport { applyFontInfo } from '../../../config/domFontInfo.js';\nimport { applyStyle } from '../utils.js';\nimport { EditorFontLigatures } from '../../../../common/config/editorOptions.js';\nimport { LineRange } from '../../../../common/core/lineRange.js';\nimport { OffsetRange } from '../../../../common/core/offsetRange.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { Range } from '../../../../common/core/range.js';\nimport { LineRangeMapping } from '../../../../common/diff/rangeMapping.js';\nimport { ILanguageService } from '../../../../common/languages/language.js';\nimport { LineTokens } from '../../../../common/tokens/lineTokens.js';\nimport { RenderLineInput, renderViewLine2 } from '../../../../common/viewLayout/viewLineRenderer.js';\nimport { ViewLineRenderingData } from '../../../../common/viewModel.js';\nimport { localize } from '../../../../../nls.js';\nimport { AccessibilitySignal, IAccessibilitySignalService } from '../../../../../platform/accessibilitySignal/browser/accessibilitySignalService.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { registerIcon } from '../../../../../platform/theme/common/iconRegistry.js';\nimport './accessibleDiffViewer.css';\nconst accessibleDiffViewerInsertIcon = registerIcon('diff-review-insert', Codicon.add, localize('accessibleDiffViewerInsertIcon', 'Icon for \\'Insert\\' in accessible diff viewer.'));\nconst accessibleDiffViewerRemoveIcon = registerIcon('diff-review-remove', Codicon.remove, localize('accessibleDiffViewerRemoveIcon', 'Icon for \\'Remove\\' in accessible diff viewer.'));\nconst accessibleDiffViewerCloseIcon = registerIcon('diff-review-close', Codicon.close, localize('accessibleDiffViewerCloseIcon', 'Icon for \\'Close\\' in accessible diff viewer.'));\nlet AccessibleDiffViewer = class AccessibleDiffViewer extends Disposable {\n constructor(_parentNode, _visible, _setVisible, _canClose, _width, _height, _diffs, _models, _instantiationService) {\n super();\n this._parentNode = _parentNode;\n this._visible = _visible;\n this._setVisible = _setVisible;\n this._canClose = _canClose;\n this._width = _width;\n this._height = _height;\n this._diffs = _diffs;\n this._models = _models;\n this._instantiationService = _instantiationService;\n this._state = derivedWithStore(this, (reader, store) => {\n const visible = this._visible.read(reader);\n this._parentNode.style.visibility = visible ? 'visible' : 'hidden';\n if (!visible) {\n return null;\n }\n const model = store.add(this._instantiationService.createInstance(ViewModel, this._diffs, this._models, this._setVisible, this._canClose));\n const view = store.add(this._instantiationService.createInstance(View, this._parentNode, model, this._width, this._height, this._models));\n return { model, view, };\n }).recomputeInitiallyAndOnChange(this._store);\n }\n next() {\n transaction(tx => {\n const isVisible = this._visible.get();\n this._setVisible(true, tx);\n if (isVisible) {\n this._state.get().model.nextGroup(tx);\n }\n });\n }\n prev() {\n transaction(tx => {\n this._setVisible(true, tx);\n this._state.get().model.previousGroup(tx);\n });\n }\n close() {\n transaction(tx => {\n this._setVisible(false, tx);\n });\n }\n};\nAccessibleDiffViewer._ttPolicy = createTrustedTypesPolicy('diffReview', { createHTML: value => value });\nAccessibleDiffViewer = __decorate([\n __param(8, IInstantiationService)\n], AccessibleDiffViewer);\nexport { AccessibleDiffViewer };\nlet ViewModel = class ViewModel extends Disposable {\n constructor(_diffs, _models, _setVisible, canClose, _accessibilitySignalService) {\n super();\n this._diffs = _diffs;\n this._models = _models;\n this._setVisible = _setVisible;\n this.canClose = canClose;\n this._accessibilitySignalService = _accessibilitySignalService;\n this._groups = observableValue(this, []);\n this._currentGroupIdx = observableValue(this, 0);\n this._currentElementIdx = observableValue(this, 0);\n this.groups = this._groups;\n this.currentGroup = this._currentGroupIdx.map((idx, r) => this._groups.read(r)[idx]);\n this.currentGroupIndex = this._currentGroupIdx;\n this.currentElement = this._currentElementIdx.map((idx, r) => { var _a; return (_a = this.currentGroup.read(r)) === null || _a === void 0 ? void 0 : _a.lines[idx]; });\n this._register(autorun(reader => {\n /** @description update groups */\n const diffs = this._diffs.read(reader);\n if (!diffs) {\n this._groups.set([], undefined);\n return;\n }\n const groups = computeViewElementGroups(diffs, this._models.getOriginalModel().getLineCount(), this._models.getModifiedModel().getLineCount());\n transaction(tx => {\n const p = this._models.getModifiedPosition();\n if (p) {\n const nextGroup = groups.findIndex(g => (p === null || p === void 0 ? void 0 : p.lineNumber) < g.range.modified.endLineNumberExclusive);\n if (nextGroup !== -1) {\n this._currentGroupIdx.set(nextGroup, tx);\n }\n }\n this._groups.set(groups, tx);\n });\n }));\n this._register(autorun(reader => {\n /** @description play audio-cue for diff */\n const currentViewItem = this.currentElement.read(reader);\n if ((currentViewItem === null || currentViewItem === void 0 ? void 0 : currentViewItem.type) === LineType.Deleted) {\n this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineDeleted, { source: 'accessibleDiffViewer.currentElementChanged' });\n }\n else if ((currentViewItem === null || currentViewItem === void 0 ? void 0 : currentViewItem.type) === LineType.Added) {\n this._accessibilitySignalService.playSignal(AccessibilitySignal.diffLineInserted, { source: 'accessibleDiffViewer.currentElementChanged' });\n }\n }));\n this._register(autorun(reader => {\n var _a;\n /** @description select lines in editor */\n // This ensures editor commands (like revert/stage) work\n const currentViewItem = this.currentElement.read(reader);\n if (currentViewItem && currentViewItem.type !== LineType.Header) {\n const lineNumber = (_a = currentViewItem.modifiedLineNumber) !== null && _a !== void 0 ? _a : currentViewItem.diff.modified.startLineNumber;\n this._models.modifiedSetSelection(Range.fromPositions(new Position(lineNumber, 1)));\n }\n }));\n }\n _goToGroupDelta(delta, tx) {\n const groups = this.groups.get();\n if (!groups || groups.length <= 1) {\n return;\n }\n subtransaction(tx, tx => {\n this._currentGroupIdx.set(OffsetRange.ofLength(groups.length).clipCyclic(this._currentGroupIdx.get() + delta), tx);\n this._currentElementIdx.set(0, tx);\n });\n }\n nextGroup(tx) { this._goToGroupDelta(1, tx); }\n previousGroup(tx) { this._goToGroupDelta(-1, tx); }\n _goToLineDelta(delta) {\n const group = this.currentGroup.get();\n if (!group || group.lines.length <= 1) {\n return;\n }\n transaction(tx => {\n this._currentElementIdx.set(OffsetRange.ofLength(group.lines.length).clip(this._currentElementIdx.get() + delta), tx);\n });\n }\n goToNextLine() { this._goToLineDelta(1); }\n goToPreviousLine() { this._goToLineDelta(-1); }\n goToLine(line) {\n const group = this.currentGroup.get();\n if (!group) {\n return;\n }\n const idx = group.lines.indexOf(line);\n if (idx === -1) {\n return;\n }\n transaction(tx => {\n this._currentElementIdx.set(idx, tx);\n });\n }\n revealCurrentElementInEditor() {\n if (!this.canClose.get()) {\n return;\n }\n this._setVisible(false, undefined);\n const curElem = this.currentElement.get();\n if (curElem) {\n if (curElem.type === LineType.Deleted) {\n this._models.originalReveal(Range.fromPositions(new Position(curElem.originalLineNumber, 1)));\n }\n else {\n this._models.modifiedReveal(curElem.type !== LineType.Header\n ? Range.fromPositions(new Position(curElem.modifiedLineNumber, 1))\n : undefined);\n }\n }\n }\n close() {\n if (!this.canClose.get()) {\n return;\n }\n this._setVisible(false, undefined);\n this._models.modifiedFocus();\n }\n};\nViewModel = __decorate([\n __param(4, IAccessibilitySignalService)\n], ViewModel);\nconst viewElementGroupLineMargin = 3;\nfunction computeViewElementGroups(diffs, originalLineCount, modifiedLineCount) {\n const result = [];\n for (const g of groupAdjacentBy(diffs, (a, b) => (b.modified.startLineNumber - a.modified.endLineNumberExclusive < 2 * viewElementGroupLineMargin))) {\n const viewElements = [];\n viewElements.push(new HeaderViewElement());\n const origFullRange = new LineRange(Math.max(1, g[0].original.startLineNumber - viewElementGroupLineMargin), Math.min(g[g.length - 1].original.endLineNumberExclusive + viewElementGroupLineMargin, originalLineCount + 1));\n const modifiedFullRange = new LineRange(Math.max(1, g[0].modified.startLineNumber - viewElementGroupLineMargin), Math.min(g[g.length - 1].modified.endLineNumberExclusive + viewElementGroupLineMargin, modifiedLineCount + 1));\n forEachAdjacent(g, (a, b) => {\n const origRange = new LineRange(a ? a.original.endLineNumberExclusive : origFullRange.startLineNumber, b ? b.original.startLineNumber : origFullRange.endLineNumberExclusive);\n const modifiedRange = new LineRange(a ? a.modified.endLineNumberExclusive : modifiedFullRange.startLineNumber, b ? b.modified.startLineNumber : modifiedFullRange.endLineNumberExclusive);\n origRange.forEach(origLineNumber => {\n viewElements.push(new UnchangedLineViewElement(origLineNumber, modifiedRange.startLineNumber + (origLineNumber - origRange.startLineNumber)));\n });\n if (b) {\n b.original.forEach(origLineNumber => {\n viewElements.push(new DeletedLineViewElement(b, origLineNumber));\n });\n b.modified.forEach(modifiedLineNumber => {\n viewElements.push(new AddedLineViewElement(b, modifiedLineNumber));\n });\n }\n });\n const modifiedRange = g[0].modified.join(g[g.length - 1].modified);\n const originalRange = g[0].original.join(g[g.length - 1].original);\n result.push(new ViewElementGroup(new LineRangeMapping(modifiedRange, originalRange), viewElements));\n }\n return result;\n}\nvar LineType;\n(function (LineType) {\n LineType[LineType[\"Header\"] = 0] = \"Header\";\n LineType[LineType[\"Unchanged\"] = 1] = \"Unchanged\";\n LineType[LineType[\"Deleted\"] = 2] = \"Deleted\";\n LineType[LineType[\"Added\"] = 3] = \"Added\";\n})(LineType || (LineType = {}));\nclass ViewElementGroup {\n constructor(range, lines) {\n this.range = range;\n this.lines = lines;\n }\n}\nclass HeaderViewElement {\n constructor() {\n this.type = LineType.Header;\n }\n}\nclass DeletedLineViewElement {\n constructor(diff, originalLineNumber) {\n this.diff = diff;\n this.originalLineNumber = originalLineNumber;\n this.type = LineType.Deleted;\n this.modifiedLineNumber = undefined;\n }\n}\nclass AddedLineViewElement {\n constructor(diff, modifiedLineNumber) {\n this.diff = diff;\n this.modifiedLineNumber = modifiedLineNumber;\n this.type = LineType.Added;\n this.originalLineNumber = undefined;\n }\n}\nclass UnchangedLineViewElement {\n constructor(originalLineNumber, modifiedLineNumber) {\n this.originalLineNumber = originalLineNumber;\n this.modifiedLineNumber = modifiedLineNumber;\n this.type = LineType.Unchanged;\n }\n}\nlet View = class View extends Disposable {\n constructor(_element, _model, _width, _height, _models, _languageService) {\n super();\n this._element = _element;\n this._model = _model;\n this._width = _width;\n this._height = _height;\n this._models = _models;\n this._languageService = _languageService;\n this.domNode = this._element;\n this.domNode.className = 'monaco-component diff-review monaco-editor-background';\n const actionBarContainer = document.createElement('div');\n actionBarContainer.className = 'diff-review-actions';\n this._actionBar = this._register(new ActionBar(actionBarContainer));\n this._register(autorun(reader => {\n /** @description update actions */\n this._actionBar.clear();\n if (this._model.canClose.read(reader)) {\n this._actionBar.push(new Action('diffreview.close', localize('label.close', \"Close\"), 'close-diff-review ' + ThemeIcon.asClassName(accessibleDiffViewerCloseIcon), true, async () => _model.close()), { label: false, icon: true });\n }\n }));\n this._content = document.createElement('div');\n this._content.className = 'diff-review-content';\n this._content.setAttribute('role', 'code');\n this._scrollbar = this._register(new DomScrollableElement(this._content, {}));\n reset(this.domNode, this._scrollbar.getDomNode(), actionBarContainer);\n this._register(autorun(r => {\n this._height.read(r);\n this._width.read(r);\n this._scrollbar.scanDomNode();\n }));\n this._register(toDisposable(() => { reset(this.domNode); }));\n this._register(applyStyle(this.domNode, { width: this._width, height: this._height }));\n this._register(applyStyle(this._content, { width: this._width, height: this._height }));\n this._register(autorunWithStore((reader, store) => {\n /** @description render */\n this._model.currentGroup.read(reader);\n this._render(store);\n }));\n // TODO@hediet use commands\n this._register(addStandardDisposableListener(this.domNode, 'keydown', (e) => {\n if (e.equals(18 /* KeyCode.DownArrow */)\n || e.equals(2048 /* KeyMod.CtrlCmd */ | 18 /* KeyCode.DownArrow */)\n || e.equals(512 /* KeyMod.Alt */ | 18 /* KeyCode.DownArrow */)) {\n e.preventDefault();\n this._model.goToNextLine();\n }\n if (e.equals(16 /* KeyCode.UpArrow */)\n || e.equals(2048 /* KeyMod.CtrlCmd */ | 16 /* KeyCode.UpArrow */)\n || e.equals(512 /* KeyMod.Alt */ | 16 /* KeyCode.UpArrow */)) {\n e.preventDefault();\n this._model.goToPreviousLine();\n }\n if (e.equals(9 /* KeyCode.Escape */)\n || e.equals(2048 /* KeyMod.CtrlCmd */ | 9 /* KeyCode.Escape */)\n || e.equals(512 /* KeyMod.Alt */ | 9 /* KeyCode.Escape */)\n || e.equals(1024 /* KeyMod.Shift */ | 9 /* KeyCode.Escape */)) {\n e.preventDefault();\n this._model.close();\n }\n if (e.equals(10 /* KeyCode.Space */)\n || e.equals(3 /* KeyCode.Enter */)) {\n e.preventDefault();\n this._model.revealCurrentElementInEditor();\n }\n }));\n }\n _render(store) {\n const originalOptions = this._models.getOriginalOptions();\n const modifiedOptions = this._models.getModifiedOptions();\n const container = document.createElement('div');\n container.className = 'diff-review-table';\n container.setAttribute('role', 'list');\n container.setAttribute('aria-label', localize('ariaLabel', 'Accessible Diff Viewer. Use arrow up and down to navigate.'));\n applyFontInfo(container, modifiedOptions.get(50 /* EditorOption.fontInfo */));\n reset(this._content, container);\n const originalModel = this._models.getOriginalModel();\n const modifiedModel = this._models.getModifiedModel();\n if (!originalModel || !modifiedModel) {\n return;\n }\n const originalModelOpts = originalModel.getOptions();\n const modifiedModelOpts = modifiedModel.getOptions();\n const lineHeight = modifiedOptions.get(67 /* EditorOption.lineHeight */);\n const group = this._model.currentGroup.get();\n for (const viewItem of (group === null || group === void 0 ? void 0 : group.lines) || []) {\n if (!group) {\n break;\n }\n let row;\n if (viewItem.type === LineType.Header) {\n const header = document.createElement('div');\n header.className = 'diff-review-row';\n header.setAttribute('role', 'listitem');\n const r = group.range;\n const diffIndex = this._model.currentGroupIndex.get();\n const diffsLength = this._model.groups.get().length;\n const getAriaLines = (lines) => lines === 0 ? localize('no_lines_changed', \"no lines changed\")\n : lines === 1 ? localize('one_line_changed', \"1 line changed\")\n : localize('more_lines_changed', \"{0} lines changed\", lines);\n const originalChangedLinesCntAria = getAriaLines(r.original.length);\n const modifiedChangedLinesCntAria = getAriaLines(r.modified.length);\n header.setAttribute('aria-label', localize({\n key: 'header',\n comment: [\n 'This is the ARIA label for a git diff header.',\n 'A git diff header looks like this: @@ -154,12 +159,39 @@.',\n 'That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.',\n 'Variables 0 and 1 refer to the diff index out of total number of diffs.',\n 'Variables 2 and 4 will be numbers (a line number).',\n 'Variables 3 and 5 will be \"no lines changed\", \"1 line changed\" or \"X lines changed\", localized separately.'\n ]\n }, \"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}\", (diffIndex + 1), diffsLength, r.original.startLineNumber, originalChangedLinesCntAria, r.modified.startLineNumber, modifiedChangedLinesCntAria));\n const cell = document.createElement('div');\n cell.className = 'diff-review-cell diff-review-summary';\n // e.g.: `1/10: @@ -504,7 +517,7 @@`\n cell.appendChild(document.createTextNode(`${diffIndex + 1}/${diffsLength}: @@ -${r.original.startLineNumber},${r.original.length} +${r.modified.startLineNumber},${r.modified.length} @@`));\n header.appendChild(cell);\n row = header;\n }\n else {\n row = this._createRow(viewItem, lineHeight, this._width.get(), originalOptions, originalModel, originalModelOpts, modifiedOptions, modifiedModel, modifiedModelOpts);\n }\n container.appendChild(row);\n const isSelectedObs = derived(reader => /** @description isSelected */ this._model.currentElement.read(reader) === viewItem);\n store.add(autorun(reader => {\n /** @description update tab index */\n const isSelected = isSelectedObs.read(reader);\n row.tabIndex = isSelected ? 0 : -1;\n if (isSelected) {\n row.focus();\n }\n }));\n store.add(addDisposableListener(row, 'focus', () => {\n this._model.goToLine(viewItem);\n }));\n }\n this._scrollbar.scanDomNode();\n }\n _createRow(item, lineHeight, width, originalOptions, originalModel, originalModelOpts, modifiedOptions, modifiedModel, modifiedModelOpts) {\n const originalLayoutInfo = originalOptions.get(145 /* EditorOption.layoutInfo */);\n const originalLineNumbersWidth = originalLayoutInfo.glyphMarginWidth + originalLayoutInfo.lineNumbersWidth;\n const modifiedLayoutInfo = modifiedOptions.get(145 /* EditorOption.layoutInfo */);\n const modifiedLineNumbersWidth = 10 + modifiedLayoutInfo.glyphMarginWidth + modifiedLayoutInfo.lineNumbersWidth;\n let rowClassName = 'diff-review-row';\n let lineNumbersExtraClassName = '';\n const spacerClassName = 'diff-review-spacer';\n let spacerIcon = null;\n switch (item.type) {\n case LineType.Added:\n rowClassName = 'diff-review-row line-insert';\n lineNumbersExtraClassName = ' char-insert';\n spacerIcon = accessibleDiffViewerInsertIcon;\n break;\n case LineType.Deleted:\n rowClassName = 'diff-review-row line-delete';\n lineNumbersExtraClassName = ' char-delete';\n spacerIcon = accessibleDiffViewerRemoveIcon;\n break;\n }\n const row = document.createElement('div');\n row.style.minWidth = width + 'px';\n row.className = rowClassName;\n row.setAttribute('role', 'listitem');\n row.ariaLevel = '';\n const cell = document.createElement('div');\n cell.className = 'diff-review-cell';\n cell.style.height = `${lineHeight}px`;\n row.appendChild(cell);\n const originalLineNumber = document.createElement('span');\n originalLineNumber.style.width = (originalLineNumbersWidth + 'px');\n originalLineNumber.style.minWidth = (originalLineNumbersWidth + 'px');\n originalLineNumber.className = 'diff-review-line-number' + lineNumbersExtraClassName;\n if (item.originalLineNumber !== undefined) {\n originalLineNumber.appendChild(document.createTextNode(String(item.originalLineNumber)));\n }\n else {\n originalLineNumber.innerText = '\\u00a0';\n }\n cell.appendChild(originalLineNumber);\n const modifiedLineNumber = document.createElement('span');\n modifiedLineNumber.style.width = (modifiedLineNumbersWidth + 'px');\n modifiedLineNumber.style.minWidth = (modifiedLineNumbersWidth + 'px');\n modifiedLineNumber.style.paddingRight = '10px';\n modifiedLineNumber.className = 'diff-review-line-number' + lineNumbersExtraClassName;\n if (item.modifiedLineNumber !== undefined) {\n modifiedLineNumber.appendChild(document.createTextNode(String(item.modifiedLineNumber)));\n }\n else {\n modifiedLineNumber.innerText = '\\u00a0';\n }\n cell.appendChild(modifiedLineNumber);\n const spacer = document.createElement('span');\n spacer.className = spacerClassName;\n if (spacerIcon) {\n const spacerCodicon = document.createElement('span');\n spacerCodicon.className = ThemeIcon.asClassName(spacerIcon);\n spacerCodicon.innerText = '\\u00a0\\u00a0';\n spacer.appendChild(spacerCodicon);\n }\n else {\n spacer.innerText = '\\u00a0\\u00a0';\n }\n cell.appendChild(spacer);\n let lineContent;\n if (item.modifiedLineNumber !== undefined) {\n let html = this._getLineHtml(modifiedModel, modifiedOptions, modifiedModelOpts.tabSize, item.modifiedLineNumber, this._languageService.languageIdCodec);\n if (AccessibleDiffViewer._ttPolicy) {\n html = AccessibleDiffViewer._ttPolicy.createHTML(html);\n }\n cell.insertAdjacentHTML('beforeend', html);\n lineContent = modifiedModel.getLineContent(item.modifiedLineNumber);\n }\n else {\n let html = this._getLineHtml(originalModel, originalOptions, originalModelOpts.tabSize, item.originalLineNumber, this._languageService.languageIdCodec);\n if (AccessibleDiffViewer._ttPolicy) {\n html = AccessibleDiffViewer._ttPolicy.createHTML(html);\n }\n cell.insertAdjacentHTML('beforeend', html);\n lineContent = originalModel.getLineContent(item.originalLineNumber);\n }\n if (lineContent.length === 0) {\n lineContent = localize('blankLine', \"blank\");\n }\n let ariaLabel = '';\n switch (item.type) {\n case LineType.Unchanged:\n if (item.originalLineNumber === item.modifiedLineNumber) {\n ariaLabel = localize({ key: 'unchangedLine', comment: ['The placeholders are contents of the line and should not be translated.'] }, \"{0} unchanged line {1}\", lineContent, item.originalLineNumber);\n }\n else {\n ariaLabel = localize('equalLine', \"{0} original line {1} modified line {2}\", lineContent, item.originalLineNumber, item.modifiedLineNumber);\n }\n break;\n case LineType.Added:\n ariaLabel = localize('insertLine', \"+ {0} modified line {1}\", lineContent, item.modifiedLineNumber);\n break;\n case LineType.Deleted:\n ariaLabel = localize('deleteLine', \"- {0} original line {1}\", lineContent, item.originalLineNumber);\n break;\n }\n row.setAttribute('aria-label', ariaLabel);\n return row;\n }\n _getLineHtml(model, options, tabSize, lineNumber, languageIdCodec) {\n const lineContent = model.getLineContent(lineNumber);\n const fontInfo = options.get(50 /* EditorOption.fontInfo */);\n const lineTokens = LineTokens.createEmpty(lineContent, languageIdCodec);\n const isBasicASCII = ViewLineRenderingData.isBasicASCII(lineContent, model.mightContainNonBasicASCII());\n const containsRTL = ViewLineRenderingData.containsRTL(lineContent, isBasicASCII, model.mightContainRTL());\n const r = renderViewLine2(new RenderLineInput((fontInfo.isMonospace && !options.get(33 /* EditorOption.disableMonospaceOptimizations */)), fontInfo.canUseHalfwidthRightwardsArrow, lineContent, false, isBasicASCII, containsRTL, 0, lineTokens, [], tabSize, 0, fontInfo.spaceWidth, fontInfo.middotWidth, fontInfo.wsmiddotWidth, options.get(117 /* EditorOption.stopRenderingLineAfter */), options.get(99 /* EditorOption.renderWhitespace */), options.get(94 /* EditorOption.renderControlCharacters */), options.get(51 /* EditorOption.fontLigatures */) !== EditorFontLigatures.OFF, null));\n return r.html;\n }\n};\nView = __decorate([\n __param(5, ILanguageService)\n], View);\nexport class AccessibleDiffViewerModelFromEditors {\n constructor(editors) {\n this.editors = editors;\n }\n getOriginalModel() {\n return this.editors.original.getModel();\n }\n getOriginalOptions() {\n return this.editors.original.getOptions();\n }\n originalReveal(range) {\n this.editors.original.revealRange(range);\n this.editors.original.setSelection(range);\n this.editors.original.focus();\n }\n getModifiedModel() {\n return this.editors.modified.getModel();\n }\n getModifiedOptions() {\n return this.editors.modified.getOptions();\n }\n modifiedReveal(range) {\n if (range) {\n this.editors.modified.revealRange(range);\n this.editors.modified.setSelection(range);\n }\n this.editors.modified.focus();\n }\n modifiedSetSelection(range) {\n this.editors.modified.setSelection(range);\n }\n modifiedFocus() {\n this.editors.modified.focus();\n }\n getModifiedPosition() {\n var _a;\n return (_a = this.editors.modified.getPosition()) !== null && _a !== void 0 ? _a : undefined;\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 { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { derived } from '../../../../../base/common/observable.js';\nimport { MovedBlocksLinesFeature } from '../features/movedBlocksLinesFeature.js';\nimport { diffAddDecoration, diffAddDecorationEmpty, diffDeleteDecoration, diffDeleteDecorationEmpty, diffLineAddDecorationBackground, diffLineAddDecorationBackgroundWithIndicator, diffLineDeleteDecorationBackground, diffLineDeleteDecorationBackgroundWithIndicator, diffWholeLineAddDecoration, diffWholeLineDeleteDecoration } from '../registrations.contribution.js';\nimport { applyObservableDecorations } from '../utils.js';\nexport class DiffEditorDecorations extends Disposable {\n constructor(_editors, _diffModel, _options, widget) {\n super();\n this._editors = _editors;\n this._diffModel = _diffModel;\n this._options = _options;\n this._decorations = derived(this, (reader) => {\n var _a;\n const diff = (_a = this._diffModel.read(reader)) === null || _a === void 0 ? void 0 : _a.diff.read(reader);\n if (!diff) {\n return null;\n }\n const movedTextToCompare = this._diffModel.read(reader).movedTextToCompare.read(reader);\n const renderIndicators = this._options.renderIndicators.read(reader);\n const showEmptyDecorations = this._options.showEmptyDecorations.read(reader);\n const originalDecorations = [];\n const modifiedDecorations = [];\n if (!movedTextToCompare) {\n for (const m of diff.mappings) {\n if (!m.lineRangeMapping.original.isEmpty) {\n originalDecorations.push({ range: m.lineRangeMapping.original.toInclusiveRange(), options: renderIndicators ? diffLineDeleteDecorationBackgroundWithIndicator : diffLineDeleteDecorationBackground });\n }\n if (!m.lineRangeMapping.modified.isEmpty) {\n modifiedDecorations.push({ range: m.lineRangeMapping.modified.toInclusiveRange(), options: renderIndicators ? diffLineAddDecorationBackgroundWithIndicator : diffLineAddDecorationBackground });\n }\n if (m.lineRangeMapping.modified.isEmpty || m.lineRangeMapping.original.isEmpty) {\n if (!m.lineRangeMapping.original.isEmpty) {\n originalDecorations.push({ range: m.lineRangeMapping.original.toInclusiveRange(), options: diffWholeLineDeleteDecoration });\n }\n if (!m.lineRangeMapping.modified.isEmpty) {\n modifiedDecorations.push({ range: m.lineRangeMapping.modified.toInclusiveRange(), options: diffWholeLineAddDecoration });\n }\n }\n else {\n for (const i of m.lineRangeMapping.innerChanges || []) {\n // Don't show empty markers outside the line range\n if (m.lineRangeMapping.original.contains(i.originalRange.startLineNumber)) {\n originalDecorations.push({ range: i.originalRange, options: (i.originalRange.isEmpty() && showEmptyDecorations) ? diffDeleteDecorationEmpty : diffDeleteDecoration });\n }\n if (m.lineRangeMapping.modified.contains(i.modifiedRange.startLineNumber)) {\n modifiedDecorations.push({ range: i.modifiedRange, options: (i.modifiedRange.isEmpty() && showEmptyDecorations) ? diffAddDecorationEmpty : diffAddDecoration });\n }\n }\n }\n }\n }\n if (movedTextToCompare) {\n for (const m of movedTextToCompare.changes) {\n const fullRangeOriginal = m.original.toInclusiveRange();\n if (fullRangeOriginal) {\n originalDecorations.push({ range: fullRangeOriginal, options: renderIndicators ? diffLineDeleteDecorationBackgroundWithIndicator : diffLineDeleteDecorationBackground });\n }\n const fullRangeModified = m.modified.toInclusiveRange();\n if (fullRangeModified) {\n modifiedDecorations.push({ range: fullRangeModified, options: renderIndicators ? diffLineAddDecorationBackgroundWithIndicator : diffLineAddDecorationBackground });\n }\n for (const i of m.innerChanges || []) {\n originalDecorations.push({ range: i.originalRange, options: diffDeleteDecoration });\n modifiedDecorations.push({ range: i.modifiedRange, options: diffAddDecoration });\n }\n }\n }\n const activeMovedText = this._diffModel.read(reader).activeMovedText.read(reader);\n for (const m of diff.movedTexts) {\n originalDecorations.push({\n range: m.lineRangeMapping.original.toInclusiveRange(), options: {\n description: 'moved',\n blockClassName: 'movedOriginal' + (m === activeMovedText ? ' currentMove' : ''),\n blockPadding: [MovedBlocksLinesFeature.movedCodeBlockPadding, 0, MovedBlocksLinesFeature.movedCodeBlockPadding, MovedBlocksLinesFeature.movedCodeBlockPadding],\n }\n });\n modifiedDecorations.push({\n range: m.lineRangeMapping.modified.toInclusiveRange(), options: {\n description: 'moved',\n blockClassName: 'movedModified' + (m === activeMovedText ? ' currentMove' : ''),\n blockPadding: [4, 0, 4, 4],\n }\n });\n }\n return { originalDecorations, modifiedDecorations };\n });\n this._register(applyObservableDecorations(this._editors.original, this._decorations.map(d => (d === null || d === void 0 ? void 0 : d.originalDecorations) || [])));\n this._register(applyObservableDecorations(this._editors.modified, this._decorations.map(d => (d === null || d === void 0 ? void 0 : d.modifiedDecorations) || [])));\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 *--------------------------------------------------------------------------------------------*/\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (this && this.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nimport { Emitter } from '../../../../../base/common/event.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { autorunHandleChanges, derivedOpts, observableFromEvent } from '../../../../../base/common/observable.js';\nimport { obsCodeEditor } from '../../../observableUtilities.js';\nimport { OverviewRulerFeature } from '../features/overviewRulerFeature.js';\nimport { EditorOptions } from '../../../../common/config/editorOptions.js';\nimport { Position } from '../../../../common/core/position.js';\nimport { localize } from '../../../../../nls.js';\nimport { IInstantiationService } from '../../../../../platform/instantiation/common/instantiation.js';\nimport { IKeybindingService } from '../../../../../platform/keybinding/common/keybinding.js';\nlet DiffEditorEditors = class DiffEditorEditors extends Disposable {\n get onDidContentSizeChange() { return this._onDidContentSizeChange.event; }\n constructor(originalEditorElement, modifiedEditorElement, _options, _argCodeEditorWidgetOptions, _createInnerEditor, _instantiationService, _keybindingService) {\n super();\n this.originalEditorElement = originalEditorElement;\n this.modifiedEditorElement = modifiedEditorElement;\n this._options = _options;\n this._argCodeEditorWidgetOptions = _argCodeEditorWidgetOptions;\n this._createInnerEditor = _createInnerEditor;\n this._instantiationService = _instantiationService;\n this._keybindingService = _keybindingService;\n this.original = this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(), this._argCodeEditorWidgetOptions.originalEditor || {}));\n this.modified = this._register(this._createRightHandSideEditor(this._options.editorOptions.get(), this._argCodeEditorWidgetOptions.modifiedEditor || {}));\n this._onDidContentSizeChange = this._register(new Emitter());\n this.modifiedScrollTop = observableFromEvent(this.modified.onDidScrollChange, () => /** @description modified.getScrollTop */ this.modified.getScrollTop());\n this.modifiedScrollHeight = observableFromEvent(this.modified.onDidScrollChange, () => /** @description modified.getScrollHeight */ this.modified.getScrollHeight());\n this.modifiedModel = obsCodeEditor(this.modified).model;\n this.modifiedSelections = observableFromEvent(this.modified.onDidChangeCursorSelection, () => { var _a; return (_a = this.modified.getSelections()) !== null && _a !== void 0 ? _a : []; });\n this.modifiedCursor = derivedOpts({ owner: this, equalsFn: Position.equals }, reader => { var _a, _b; return (_b = (_a = this.modifiedSelections.read(reader)[0]) === null || _a === void 0 ? void 0 : _a.getPosition()) !== null && _b !== void 0 ? _b : new Position(1, 1); });\n this.originalCursor = observableFromEvent(this.original.onDidChangeCursorPosition, () => { var _a; return (_a = this.original.getPosition()) !== null && _a !== void 0 ? _a : new Position(1, 1); });\n this._argCodeEditorWidgetOptions = null;\n this._register(autorunHandleChanges({\n createEmptyChangeSummary: () => ({}),\n handleChange: (ctx, changeSummary) => {\n if (ctx.didChange(_options.editorOptions)) {\n Object.assign(changeSummary, ctx.change.changedOptions);\n }\n return true;\n }\n }, (reader, changeSummary) => {\n /** @description update editor options */\n _options.editorOptions.read(reader);\n this._options.renderSideBySide.read(reader);\n this.modified.updateOptions(this._adjustOptionsForRightHandSide(reader, changeSummary));\n this.original.updateOptions(this._adjustOptionsForLeftHandSide(reader, changeSummary));\n }));\n }\n _createLeftHandSideEditor(options, codeEditorWidgetOptions) {\n const leftHandSideOptions = this._adjustOptionsForLeftHandSide(undefined, options);\n const editor = this._constructInnerEditor(this._instantiationService, this.originalEditorElement, leftHandSideOptions, codeEditorWidgetOptions);\n editor.setContextValue('isInDiffLeftEditor', true);\n return editor;\n }\n _createRightHandSideEditor(options, codeEditorWidgetOptions) {\n const rightHandSideOptions = this._adjustOptionsForRightHandSide(undefined, options);\n const editor = this._constructInnerEditor(this._instantiationService, this.modifiedEditorElement, rightHandSideOptions, codeEditorWidgetOptions);\n editor.setContextValue('isInDiffRightEditor', true);\n return editor;\n }\n _constructInnerEditor(instantiationService, container, options, editorWidgetOptions) {\n const editor = this._createInnerEditor(instantiationService, container, options, editorWidgetOptions);\n this._register(editor.onDidContentSizeChange(e => {\n const width = this.original.getContentWidth() + this.modified.getContentWidth() + OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH;\n const height = Math.max(this.modified.getContentHeight(), this.original.getContentHeight());\n this._onDidContentSizeChange.fire({\n contentHeight: height,\n contentWidth: width,\n contentHeightChanged: e.contentHeightChanged,\n contentWidthChanged: e.contentWidthChanged\n });\n }));\n return editor;\n }\n _adjustOptionsForLeftHandSide(_reader, changedOptions) {\n const result = this._adjustOptionsForSubEditor(changedOptions);\n if (!this._options.renderSideBySide.get()) {\n // never wrap hidden editor\n result.wordWrapOverride1 = 'off';\n result.wordWrapOverride2 = 'off';\n result.stickyScroll = { enabled: false };\n // Disable unicode highlighting for the original side in inline mode, as they are not shown anyway.\n result.unicodeHighlight = { nonBasicASCII: false, ambiguousCharacters: false, invisibleCharacters: false };\n }\n else {\n result.unicodeHighlight = this._options.editorOptions.get().unicodeHighlight || {};\n result.wordWrapOverride1 = this._options.diffWordWrap.get();\n }\n result.glyphMargin = this._options.renderSideBySide.get();\n if (changedOptions.originalAriaLabel) {\n result.ariaLabel = changedOptions.originalAriaLabel;\n }\n result.ariaLabel = this._updateAriaLabel(result.ariaLabel);\n result.readOnly = !this._options.originalEditable.get();\n result.dropIntoEditor = { enabled: !result.readOnly };\n result.extraEditorClassName = 'original-in-monaco-diff-editor';\n return result;\n }\n _adjustOptionsForRightHandSide(reader, changedOptions) {\n const result = this._adjustOptionsForSubEditor(changedOptions);\n if (changedOptions.modifiedAriaLabel) {\n result.ariaLabel = changedOptions.modifiedAriaLabel;\n }\n result.ariaLabel = this._updateAriaLabel(result.ariaLabel);\n result.wordWrapOverride1 = this._options.diffWordWrap.get();\n result.revealHorizontalRightPadding = EditorOptions.revealHorizontalRightPadding.defaultValue + OverviewRulerFeature.ENTIRE_DIFF_OVERVIEW_WIDTH;\n result.scrollbar.verticalHasArrows = false;\n result.extraEditorClassName = 'modified-in-monaco-diff-editor';\n return result;\n }\n _adjustOptionsForSubEditor(options) {\n const clonedOptions = {\n ...options,\n dimension: {\n height: 0,\n width: 0\n },\n };\n clonedOptions.inDiffEditor = true;\n clonedOptions.automaticLayout = false;\n // Clone scrollbar options before changing them\n clonedOptions.scrollbar = { ...(clonedOptions.scrollbar || {}) };\n clonedOptions.folding = false;\n clonedOptions.codeLens = this._options.diffCodeLens.get();\n clonedOptions.fixedOverflowWidgets = true;\n // Clone minimap options before changing them\n clonedOptions.minimap = { ...(clonedOptions.minimap || {}) };\n clonedOptions.minimap.enabled = false;\n if (this._options.hideUnchangedRegions.get()) {\n clonedOptions.stickyScroll = { enabled: false };\n }\n else {\n clonedOptions.stickyScroll = this._options.editorOptions.get().stickyScroll;\n }\n return clonedOptions;\n }\n _updateAriaLabel(ariaLabel) {\n var _a;\n if (!ariaLabel) {\n ariaLabel = '';\n }\n const ariaNavigationTip = localize('diff-aria-navigation-tip', ' use {0} to open the accessibility help.', (_a = this._keybindingService.lookupKeybinding('editor.action.accessibilityHelp')) === null || _a === void 0 ? void 0 : _a.getAriaLabel());\n if (this._options.accessibilityVerbose.get()) {\n return ariaLabel + ariaNavigationTip;\n }\n else if (ariaLabel) {\n return ariaLabel.replaceAll(ariaNavigationTip, '');\n }\n return '';\n }\n};\nDiffEditorEditors = __decorate([\n __param(5, IInstantiationService),\n __param(6, IKeybindingService)\n], DiffEditorEditors);\nexport { DiffEditorEditors };\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 { Sash } from '../../../../../base/browser/ui/sash/sash.js';\nimport { Disposable } from '../../../../../base/common/lifecycle.js';\nimport { autorun, observableValue } from '../../../../../base/common/observable.js';\nimport { derivedWithSetter } from '../../../../../base/common/observableInternal/derived.js';\nexport class SashLayout {\n resetSash() {\n this._sashRatio.set(undefined, undefined);\n }\n constructor(_options, dimensions) {\n this._options = _options;\n this.dimensions = dimensions;\n this.sashLeft = derivedWithSetter(this, reader => {\n var _a;\n const ratio = (_a = this._sashRatio.read(reader)) !== null && _a !== void 0 ? _a : this._options.splitViewDefaultRatio.read(reader);\n return this._computeSashLeft(ratio, reader);\n }, (value, tx) => {\n const contentWidth = this.dimensions.width.get();\n this._sashRatio.set(value / contentWidth, tx);\n });\n this._sashRatio = observableValue(this, undefined);\n }\n /** @pure */\n _computeSashLeft(desiredRatio, reader) {\n const contentWidth = this.dimensions.width.read(reader);\n const midPoint = Math.floor(this._options.splitViewDefaultRatio.read(reader) * contentWidth);\n const sashLeft = this._options.enableSplitViewResizing.read(reader) ? Math.floor(desiredRatio * contentWidth) : midPoint;\n const MINIMUM_EDITOR_WIDTH = 100;\n if (contentWidth <= MINIMUM_EDITOR_WIDTH * 2) {\n return midPoint;\n }\n if (sashLeft < MINIMUM_EDITOR_WIDTH) {\n return MINIMUM_EDITOR_WIDTH;\n }\n if (sashLeft > contentWidth - MINIMUM_EDITOR_WIDTH) {\n return contentWidth - MINIMUM_EDITOR_WIDTH;\n }\n return sashLeft;\n }\n}\nexport class DiffEditorSash extends Disposable {\n constructor(_domNode, _dimensions, _enabled, _boundarySashes, sashLeft, _resetSash) {\n super();\n this._domNode = _domNode;\n this._dimensions = _dimensions;\n this._enabled = _enabled;\n this._boundarySashes = _boundarySashes;\n this.sashLeft = sashLeft;\n this._resetSash = _resetSash;\n this._sash = this._register(new Sash(this._domNode, {\n getVerticalSashTop: (_sash) => 0,\n getVerticalSashLeft: (_sash) => this.sashLeft.get(),\n getVerticalSashHeight: (_sash) => this._dimensions.height.get(),\n }, { orientation: 0 /* Orientation.VERTICAL */ }));\n this._startSashPosition = undefined;\n this._register(this._sash.onDidStart(() => {\n this._startSashPosition = this.sashLeft.get();\n }));\n this._register(this._sash.onDidChange((e) => {\n this.sashLeft.set(this._startSashPosition + (e.currentX - e.startX), undefined);\n }));\n this._register(this._sash.onDidEnd(() => this._sash.layout()));\n this._register(this._sash.onDidReset(() => this._resetSash()));\n this._register(autorun(reader => {\n const sashes = this._boundarySashes.read(reader);\n if (sashes) {\n this._sash.orthogonalEndSash = sashes.bottom;\n }\n }));\n this._register(autorun(reader => {\n /** @description DiffEditorSash.layoutSash */\n const enabled = this._enabled.read(reader);\n this._sash.state = enabled ? 3 /* SashState.Enabled */ : 0 /* SashState.Disabled */;\n this.sashLeft.read(reader);\n this._dimensions.height.read(reader);\n this._sash.layout();\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 { addStandardDisposableListener, getDomNodePagePosition } from '../../../../../../base/browser/dom.js';\nimport { Action } from '../../../../../../base/common/actions.js';\nimport { Codicon } from '../../../../../../base/common/codicons.js';\nimport { Disposable } from '../../../../../../base/common/lifecycle.js';\nimport { isIOS } from '../../../../../../base/common/platform.js';\nimport { ThemeIcon } from '../../../../../../base/common/themables.js';\nimport { localize } from '../../../../../../nls.js';\nexport class InlineDiffDeletedCodeMargin extends Disposable {\n get visibility() {\n return this._visibility;\n }\n set visibility(_visibility) {\n if (this._visibility !== _visibility) {\n this._visibility = _visibility;\n this._diffActions.style.visibility = _visibility ? 'visible' : 'hidden';\n }\n }\n constructor(_getViewZoneId, _marginDomNode, _modifiedEditor, _diff, _editor, _viewLineCounts, _originalTextModel, _contextMenuService, _clipboardService) {\n super();\n this._getViewZoneId = _getViewZoneId;\n this._marginDomNode = _marginDomNode;\n this._modifiedEditor = _modifiedEditor;\n this._diff = _diff;\n this._editor = _editor;\n this._viewLineCounts = _viewLineCounts;\n this._originalTextModel = _originalTextModel;\n this._contextMenuService = _contextMenuService;\n this._clipboardService = _clipboardService;\n this._visibility = false;\n // make sure the diff margin shows above overlay.\n this._marginDomNode.style.zIndex = '10';\n this._diffActions = document.createElement('div');\n this._diffActions.className = ThemeIcon.asClassName(Codicon.lightBulb) + ' lightbulb-glyph';\n this._diffActions.style.position = 'absolute';\n const lineHeight = this._modifiedEditor.getOption(67 /* EditorOption.lineHeight */);\n this._diffActions.style.right = '0px';\n this._diffActions.style.visibility = 'hidden';\n this._diffActions.style.height = `${lineHeight}px`;\n this._diffActions.style.lineHeight = `${lineHeight}px`;\n this._marginDomNode.appendChild(this._diffActions);\n let currentLineNumberOffset = 0;\n const useShadowDOM = _modifiedEditor.getOption(127 /* EditorOption.useShadowDOM */) && !isIOS; // Do not use shadow dom on IOS #122035\n const showContextMenu = (x, y) => {\n var _a;\n this._contextMenuService.showContextMenu({\n domForShadowRoot: useShadowDOM ? (_a = _modifiedEditor.getDomNode()) !== null && _a !== void 0 ? _a : undefined : undefined,\n getAnchor: () => ({ x, y }),\n getActions: () => {\n const actions = [];\n const isDeletion = _diff.modified.isEmpty;\n // default action\n actions.push(new Action('diff.clipboard.copyDeletedContent', isDeletion\n ? (_diff.original.length > 1\n ? localize('diff.clipboard.copyDeletedLinesContent.label', \"Copy deleted lines\")\n : localize('diff.clipboard.copyDeletedLinesContent.single.label', \"Copy deleted line\"))\n : (_diff.original.length > 1\n ? localize('diff.clipboard.copyChangedLinesContent.label', \"Copy changed lines\")\n : localize('diff.clipboard.copyChangedLinesContent.single.label', \"Copy changed line\")), undefined, true, async () => {\n const originalText = this._originalTextModel.getValueInRange(_diff.original.toExclusiveRange());\n await this._clipboardService.writeText(originalText);\n }));\n if (_diff.original.length > 1) {\n actions.push(new Action('diff.clipboard.copyDeletedLineContent', isDeletion\n ? localize('diff.clipboard.copyDeletedLineContent.label', \"Copy deleted line ({0})\", _diff.original.startLineNumber + currentLineNumberOffset)\n : localize('diff.clipboard.copyChangedLineContent.label', \"Copy changed line ({0})\", _diff.original.startLineNumber + currentLineNumberOffset), undefined, true, async () => {\n let lineContent = this._originalTextModel.getLineContent(_diff.original.startLineNumber + currentLineNumberOffset);\n if (lineContent === '') {\n // empty line -> new line\n const eof = this._originalTextModel.getEndOfLineSequence();\n lineContent = eof === 0 /* EndOfLineSequence.LF */ ? '\\n' : '\\r\\n';\n }\n await this._clipboardService.writeText(lineContent);\n }));\n }\n const readOnly = _modifiedEditor.getOption(91 /* EditorOption.readOnly */);\n if (!readOnly) {\n actions.push(new Action('diff.inline.revertChange', localize('diff.inline.revertChange.label', \"Revert this change\"), undefined, true, async () => {\n this._editor.revert(this._diff);\n }));\n }\n return actions;\n },\n autoSelectFirstItem: true\n });\n };\n this._register(addStandardDisposableListener(this._diffActions, 'mousedown', e => {\n if (!e.leftButton) {\n return;\n }\n const { top, height } = getDomNodePagePosition(this._diffActions);\n const pad = Math.floor(lineHeight / 3);\n e.preventDefault();\n showContextMenu(e.posx, top + height + pad);\n }));\n this._register(_modifiedEditor.onMouseMove((e) => {\n if ((e.target.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */ || e.target.type === 5 /* MouseTargetType.GUTTER_VIEW_ZONE */) && e.target.detail.viewZoneId === this._getViewZoneId()) {\n currentLineNumberOffset = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, lineHeight);\n this.visibility = true;\n }\n else {\n this.visibility = false;\n }\n }));\n this._register(_modifiedEditor.onMouseDown((e) => {\n if (!e.event.leftButton) {\n return;\n }\n if (e.target.type === 8 /* MouseTargetType.CONTENT_VIEW_ZONE */ || e.target.type === 5 /* MouseTargetType.GUTTER_VIEW_ZONE */) {\n const viewZoneId = e.target.detail.viewZoneId;\n if (viewZoneId === this._getViewZoneId()) {\n e.event.preventDefault();\n currentLineNumberOffset = this._updateLightBulbPosition(this._marginDomNode, e.event.browserEvent.y, lineHeight);\n showContextMenu(e.event.posx, e.event.posy + lineHeight);\n }\n }\n }));\n }\n _updateLightBulbPosition(marginDomNode, y, lineHeight) {\n const { top } = getDomNodePagePosition(marginDomNode);\n const offset = y - top;\n const lineNumberOffset = Math.floor(offset / lineHeight);\n const newTop = lineNumberOffset * lineHeight;\n this._diffActions.style.top = `${newTop}px`;\n if (this._viewLineCounts) {\n let acc = 0;\n for (let i = 0; i < this._viewLineCounts.length; i++) {\n acc += this._viewLineCounts[i];\n if (lineNumberOffset < acc) {\n return i;\n }\n }\n }\n return lineNumberOffset;\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 { createTrustedTypesPolicy } from '../../../../../../base/browser/trustedTypes.js';\nimport { applyFontInfo } from '../../../../config/domFontInfo.js';\nimport { EditorFontLigatures } from '../../../../../common/config/editorOptions.js';\nimport { StringBuilder } from '../../../../../common/core/stringBuilder.js';\nimport { LineDecoration } from '../../../../../common/viewLayout/lineDecorations.js';\nimport { RenderLineInput, renderViewLine } from '../../../../../common/viewLayout/viewLineRenderer.js';\nimport { ViewLineRenderingData } from '../../../../../common/viewModel.js';\nconst ttPolicy = createTrustedTypesPolicy('diffEditorWidget', { createHTML: value => value });\nexport function renderLines(source, options, decorations, domNode) {\n applyFontInfo(domNode, options.fontInfo);\n const hasCharChanges = (decorations.length > 0);\n const sb = new StringBuilder(10000);\n let maxCharsPerLine = 0;\n let renderedLineCount = 0;\n const viewLineCounts = [];\n for (let lineIndex = 0; lineIndex < source.lineTokens.length; lineIndex++) {\n const lineNumber = lineIndex + 1;\n const lineTokens = source.lineTokens[lineIndex];\n const lineBreakData = source.lineBreakData[lineIndex];\n const actualDecorations = LineDecoration.filter(decorations, lineNumber, 1, Number.MAX_SAFE_INTEGER);\n if (lineBreakData) {\n let lastBreakOffset = 0;\n for (const breakOffset of lineBreakData.breakOffsets) {\n const viewLineTokens = lineTokens.sliceAndInflate(lastBreakOffset, breakOffset, 0);\n maxCharsPerLine = Math.max(maxCharsPerLine, renderOriginalLine(renderedLineCount, viewLineTokens, LineDecoration.extractWrapped(actualDecorations, lastBreakOffset, breakOffset), hasCharChanges, source.mightContainNonBasicASCII, source.mightContainRTL, options, sb));\n renderedLineCount++;\n lastBreakOffset = breakOffset;\n }\n viewLineCounts.push(lineBreakData.breakOffsets.length);\n }\n else {\n viewLineCounts.push(1);\n maxCharsPerLine = Math.max(maxCharsPerLine, renderOriginalLine(renderedLineCount, lineTokens, actualDecorations, hasCharChanges, source.mightContainNonBasicASCII, source.mightContainRTL, options, sb));\n renderedLineCount++;\n }\n }\n maxCharsPerLine += options.scrollBeyondLastColumn;\n const html = sb.build();\n const trustedhtml = ttPolicy ? ttPolicy.createHTML(html) : html;\n domNode.innerHTML = trustedhtml;\n const minWidthInPx = (maxCharsPerLine * options.typicalHalfwidthCharacterWidth);\n return {\n heightInLines: renderedLineCount,\n minWidthInPx,\n viewLineCounts,\n };\n}\nexport class LineSource {\n constructor(lineTokens, lineBreakData, mightContainNonBasicASCII, mightContainRTL) {\n this.lineTokens = lineTokens;\n this.lineBreakData = lineBreakData;\n this.mightContainNonBasicASCII = mightContainNonBasicASCII;\n this.mightContainRTL = mightContainRTL;\n }\n}\nexport class RenderOptions {\n static fromEditor(editor) {\n var _a;\n const modifiedEditorOptions = editor.getOptions();\n const fontInfo = modifiedEditorOptions.get(50 /* EditorOption.fontInfo */);\n const layoutInfo = modifiedEditorOptions.get(145 /* EditorOption.layoutInfo */);\n return new RenderOptions(((_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getOptions().tabSize) || 0, fontInfo, modifiedEditorOptions.get(33 /* EditorOption.disableMonospaceOptimizations */), fontInfo.typicalHalfwidthCharacterWidth, modifiedEditorOptions.get(104 /* EditorOption.scrollBeyondLastColumn */), modifiedEditorOptions.get(67 /* EditorOption.lineHeight */), layoutInfo.decorationsWidth, modifiedEditorOptions.get(117 /* EditorOption.stopRenderingLineAfter */), modifiedEditorOptions.get(99 /* EditorOption.renderWhitespace */), modifiedEditorOptions.get(94 /* EditorOption.renderControlCharacters */), modifiedEditorOptions.get(51 /* EditorOption.fontLigatures */));\n }\n constructor(tabSize, fontInfo, disableMonospaceOptimizations, typicalHalfwidthCharacterWidth, scrollBeyondLastColumn, lineHeight, lineDecorationsWidth, stopRenderingLineAfter, renderWhitespace, renderControlCharacters, fontLigatures) {\n this.tabSize = tabSize;\n this.fontInfo = fontInfo;\n this.disableMonospaceOptimizations = disableMonospaceOptimizations;\n this.typicalHalfwidthCharacterWidth = typicalHalfwidthCharacterWidth;\n this.scrollBeyondLastColumn = scrollBeyondLastColumn;\n this.lineHeight = lineHeight;\n this.lineDecorationsWidth = lineDecorationsWidth;\n this.stopRenderingLineAfter = stopRenderingLineAfter;\n this.renderWhitespace = renderWhitespace;\n this.renderControlCharacters = renderControlCharacters;\n this.fontLigatures = fontLigatures;\n }\n}\nfunction renderOriginalLine(viewLineIdx, lineTokens, decorations, hasCharChanges, mightContainNonBasicASCII, mightContainRTL, options, sb) {\n sb.appendString('