monaco-editor-core 0.55.0-dev-20251022 → 0.55.0-dev-20251024

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/esm/nls.keys.json +1 -1
  2. package/esm/nls.messages.cs.js +2 -2
  3. package/esm/nls.messages.de.js +2 -2
  4. package/esm/nls.messages.es.js +2 -2
  5. package/esm/nls.messages.fr.js +2 -2
  6. package/esm/nls.messages.it.js +2 -2
  7. package/esm/nls.messages.ja.js +2 -2
  8. package/esm/nls.messages.js +1 -1
  9. package/esm/nls.messages.json +1 -1
  10. package/esm/nls.messages.ko.js +2 -2
  11. package/esm/nls.messages.pl.js +2 -2
  12. package/esm/nls.messages.pt-br.js +2 -2
  13. package/esm/nls.messages.ru.js +2 -2
  14. package/esm/nls.messages.tr.js +2 -2
  15. package/esm/nls.messages.zh-cn.js +2 -2
  16. package/esm/nls.messages.zh-tw.js +2 -2
  17. package/esm/nls.metadata.json +6 -0
  18. package/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  19. package/esm/vs/base/browser/ui/iconLabel/iconlabel.css +2 -0
  20. package/esm/vs/base/browser/ui/list/listPaging.js +5 -1
  21. package/esm/vs/base/browser/ui/list/listPaging.js.map +1 -1
  22. package/esm/vs/base/browser/ui/list/listView.js +4 -3
  23. package/esm/vs/base/browser/ui/list/listView.js.map +1 -1
  24. package/esm/vs/base/browser/ui/toggle/toggle.js +2 -2
  25. package/esm/vs/base/browser/ui/toggle/toggle.js.map +1 -1
  26. package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js +7 -0
  27. package/esm/vs/base/browser/ui/tree/compressedObjectTreeModel.js.map +1 -1
  28. package/esm/vs/base/browser/ui/tree/objectTree.js +3 -0
  29. package/esm/vs/base/browser/ui/tree/objectTree.js.map +1 -1
  30. package/esm/vs/base/browser/ui/tree/objectTreeModel.js +20 -0
  31. package/esm/vs/base/browser/ui/tree/objectTreeModel.js.map +1 -1
  32. package/esm/vs/base/common/arrays.js +10 -0
  33. package/esm/vs/base/common/arrays.js.map +1 -1
  34. package/esm/vs/base/common/codiconsLibrary.js +2 -0
  35. package/esm/vs/base/common/codiconsLibrary.js.map +1 -1
  36. package/esm/vs/base/common/network.js +5 -1
  37. package/esm/vs/base/common/network.js.map +1 -1
  38. package/esm/vs/base/common/paging.js.map +1 -1
  39. package/esm/vs/base/common/validation.js +157 -0
  40. package/esm/vs/base/common/validation.js.map +1 -0
  41. package/esm/vs/editor/common/languages.js +10 -0
  42. package/esm/vs/editor/common/languages.js.map +1 -1
  43. package/esm/vs/editor/common/model/pieceTreeTextBuffer/pieceTreeBase.js.map +1 -1
  44. package/esm/vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.js +1 -1
  45. package/esm/vs/editor/common/model/tokens/treeSitter/treeSitterSyntaxTokenBackend.js.map +1 -1
  46. package/esm/vs/editor/common/services/treeSitter/treeSitterLibraryService.js.map +1 -1
  47. package/esm/vs/editor/common/viewModel/viewModelLines.js.map +1 -1
  48. package/esm/vs/editor/contrib/inPlaceReplace/browser/inPlaceReplace.js +2 -2
  49. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js +64 -20
  50. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/commands.js.map +1 -1
  51. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionContextKeys.js +12 -12
  52. package/esm/vs/editor/contrib/inlineCompletions/browser/controller/inlineCompletionsController.js +1 -1
  53. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/hoverParticipant.js +1 -1
  54. package/esm/vs/editor/contrib/inlineCompletions/browser/hintsWidget/inlineCompletionsHintsWidget.js +5 -5
  55. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js +11 -12
  56. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineCompletionsModel.js.map +1 -1
  57. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js +4 -4
  58. package/esm/vs/editor/contrib/inlineCompletions/browser/model/inlineSuggestionItem.js.map +1 -1
  59. package/esm/vs/editor/contrib/inlineCompletions/browser/model/suggestWidgetAdapter.js.map +1 -1
  60. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/components/gutterIndicatorMenu.js +6 -6
  61. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js +3 -0
  62. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditWithChanges.js.map +1 -1
  63. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsModel.js +1 -1
  64. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js +5 -5
  65. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/inlineEditsView.js.map +1 -1
  66. package/esm/vs/editor/contrib/inlineCompletions/browser/view/inlineEdits/theme.js +20 -20
  67. package/esm/vs/editor/contrib/insertFinalNewLine/browser/insertFinalNewLine.js +1 -1
  68. package/esm/vs/editor/contrib/lineSelection/browser/lineSelection.js +1 -1
  69. package/esm/vs/editor/contrib/linesOperations/browser/linesOperations.js +31 -31
  70. package/esm/vs/editor/contrib/linkedEditing/browser/linkedEditing.js +2 -2
  71. package/esm/vs/editor/contrib/links/browser/links.js +10 -10
  72. package/esm/vs/editor/contrib/message/browser/messageController.js +1 -1
  73. package/esm/vs/editor/contrib/multicursor/browser/multicursor.js +22 -22
  74. package/esm/vs/editor/contrib/parameterHints/browser/parameterHints.js +1 -1
  75. package/esm/vs/editor/contrib/parameterHints/browser/parameterHintsWidget.js +4 -4
  76. package/esm/vs/editor/contrib/peekView/browser/peekView.js +18 -18
  77. package/esm/vs/editor/contrib/placeholderText/browser/placeholderText.contribution.js +1 -1
  78. package/esm/vs/editor/contrib/quickAccess/browser/gotoLineQuickAccess.js +8 -8
  79. package/esm/vs/editor/contrib/quickAccess/browser/gotoSymbolQuickAccess.js +32 -32
  80. package/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +2 -2
  81. package/esm/vs/editor/contrib/rename/browser/rename.js +11 -11
  82. package/esm/vs/editor/contrib/rename/browser/renameWidget.js +7 -7
  83. package/esm/vs/editor/contrib/smartSelect/browser/smartSelect.js +4 -4
  84. package/esm/vs/editor/contrib/snippet/browser/snippetController2.js +4 -4
  85. package/esm/vs/editor/contrib/snippet/browser/snippetVariables.js +4 -4
  86. package/esm/vs/editor/contrib/stickyScroll/browser/stickyScrollActions.js +11 -11
  87. package/esm/vs/editor/contrib/suggest/browser/suggest.js +8 -8
  88. package/esm/vs/editor/contrib/suggest/browser/suggestController.js +10 -10
  89. package/esm/vs/editor/contrib/suggest/browser/suggestWidget.js +17 -17
  90. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetDetails.js +2 -2
  91. package/esm/vs/editor/contrib/suggest/browser/suggestWidgetRenderer.js +2 -2
  92. package/esm/vs/editor/contrib/suggest/browser/wordContextKey.js +1 -1
  93. package/esm/vs/editor/contrib/symbolIcons/browser/symbolIcons.js +33 -33
  94. package/esm/vs/editor/contrib/toggleTabFocusMode/browser/toggleTabFocusMode.js +4 -4
  95. package/esm/vs/editor/contrib/tokenization/browser/tokenization.js +1 -1
  96. package/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +1 -1
  97. package/esm/vs/editor/contrib/unicodeHighlighter/browser/unicodeHighlighter.js +24 -24
  98. package/esm/vs/editor/contrib/unusualLineTerminators/browser/unusualLineTerminators.js +5 -5
  99. package/esm/vs/editor/contrib/wordHighlighter/browser/highlightDecorations.js +9 -9
  100. package/esm/vs/editor/contrib/wordHighlighter/browser/wordHighlighter.js +3 -3
  101. package/esm/vs/editor/contrib/wordOperations/browser/wordOperations.js +1 -1
  102. package/esm/vs/editor/standalone/browser/standaloneTreeSitterLibraryService.js +2 -12
  103. package/esm/vs/editor/standalone/browser/standaloneTreeSitterLibraryService.js.map +1 -1
  104. package/esm/vs/platform/accessibilitySignal/browser/accessibilitySignalService.js +62 -62
  105. package/esm/vs/platform/action/common/actionCommonCategories.js +6 -6
  106. package/esm/vs/platform/actionWidget/browser/actionList.js +4 -4
  107. package/esm/vs/platform/actionWidget/browser/actionWidget.js +7 -7
  108. package/esm/vs/platform/actions/browser/menuEntryActionViewItem.js +5 -5
  109. package/esm/vs/platform/actions/browser/toolbar.js +2 -2
  110. package/esm/vs/platform/actions/common/actions.js +1 -0
  111. package/esm/vs/platform/actions/common/actions.js.map +1 -1
  112. package/esm/vs/platform/actions/common/menuService.js +2 -2
  113. package/esm/vs/platform/configuration/common/configurationRegistry.js +22 -10
  114. package/esm/vs/platform/configuration/common/configurationRegistry.js.map +1 -1
  115. package/esm/vs/platform/contextkey/browser/contextKeyService.js +1 -1
  116. package/esm/vs/platform/contextkey/common/contextkey.js +9 -9
  117. package/esm/vs/platform/contextkey/common/contextkeys.js +9 -9
  118. package/esm/vs/platform/contextkey/common/scanner.js +5 -5
  119. package/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +1 -1
  120. package/esm/vs/platform/keybinding/common/abstractKeybindingService.js +4 -4
  121. package/esm/vs/platform/list/browser/listService.js +27 -27
  122. package/esm/vs/platform/markers/common/markerService.js +2 -2
  123. package/esm/vs/platform/markers/common/markers.js +6 -6
  124. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +19 -9
  125. package/esm/vs/platform/quickinput/browser/commandsQuickAccess.js.map +1 -1
  126. package/esm/vs/platform/quickinput/browser/helpQuickAccess.js +1 -1
  127. package/esm/vs/platform/quickinput/browser/quickInput.js +12 -10
  128. package/esm/vs/platform/quickinput/browser/quickInput.js.map +1 -1
  129. package/esm/vs/platform/quickinput/browser/quickInputActions.js +5 -5
  130. package/esm/vs/platform/quickinput/browser/quickInputController.js +12 -6
  131. package/esm/vs/platform/quickinput/browser/quickInputController.js.map +1 -1
  132. package/esm/vs/platform/quickinput/browser/quickInputList.js +1 -1
  133. package/esm/vs/platform/quickinput/browser/quickInputUtils.js +1 -1
  134. package/esm/vs/platform/quickinput/browser/tree/quickInputTree.js +9 -9
  135. package/esm/vs/platform/quickinput/browser/tree/quickInputTree.js.map +1 -1
  136. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js +2 -2
  137. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeAccessibilityProvider.js.map +1 -1
  138. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js +19 -26
  139. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeController.js.map +1 -1
  140. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeSorter.js +46 -0
  141. package/esm/vs/platform/quickinput/browser/tree/quickInputTreeSorter.js.map +1 -0
  142. package/esm/vs/platform/quickinput/common/quickInput.js.map +1 -1
  143. package/esm/vs/platform/theme/common/colorUtils.js +2 -2
  144. package/esm/vs/platform/theme/common/colors/baseColors.js +17 -17
  145. package/esm/vs/platform/theme/common/colors/chartsColors.js +8 -8
  146. package/esm/vs/platform/theme/common/colors/editorColors.js +95 -95
  147. package/esm/vs/platform/theme/common/colors/inputColors.js +47 -47
  148. package/esm/vs/platform/theme/common/colors/listColors.js +36 -36
  149. package/esm/vs/platform/theme/common/colors/menuColors.js +7 -7
  150. package/esm/vs/platform/theme/common/colors/minimapColors.js +11 -11
  151. package/esm/vs/platform/theme/common/colors/miscColors.js +15 -15
  152. package/esm/vs/platform/theme/common/colors/quickpickColors.js +9 -9
  153. package/esm/vs/platform/theme/common/colors/searchColors.js +3 -3
  154. package/esm/vs/platform/theme/common/iconRegistry.js +6 -6
  155. package/esm/vs/platform/undoRedo/common/undoRedoService.js +20 -20
  156. package/esm/vs/platform/workspace/common/workspace.js +1 -1
  157. package/package.json +2 -2
@@ -5,7 +5,7 @@
5
5
  import { range } from '../../../common/arrays.js';
6
6
  import { CancellationTokenSource } from '../../../common/cancellation.js';
7
7
  import { Event } from '../../../common/event.js';
8
- import { Disposable } from '../../../common/lifecycle.js';
8
+ import { Disposable, DisposableStore } from '../../../common/lifecycle.js';
9
9
  import './list.css';
10
10
  import { List } from './listWidget.js';
11
11
  class PagedRenderer {
@@ -68,6 +68,7 @@ function fromPagedListOptions(modelProvider, options) {
68
68
  }
69
69
  export class PagedList {
70
70
  constructor(user, container, virtualDelegate, renderers, options = {}) {
71
+ this.modelDisposables = new DisposableStore();
71
72
  const modelProvider = () => this.model;
72
73
  const pagedRenderers = renderers.map(r => new PagedRenderer(r, modelProvider));
73
74
  this.list = new List(user, container, virtualDelegate, pagedRenderers, fromPagedListOptions(modelProvider, options));
@@ -100,8 +101,10 @@ export class PagedList {
100
101
  return this._model;
101
102
  }
102
103
  set model(model) {
104
+ this.modelDisposables.clear();
103
105
  this._model = model;
104
106
  this.list.splice(0, this.list.length, range(model.length));
107
+ this.modelDisposables.add(model.onDidIncrementLength(newLength => this.list.splice(this.list.length, 0, range(this.list.length, newLength))));
105
108
  }
106
109
  getFocus() {
107
110
  return this.list.getFocus();
@@ -117,6 +120,7 @@ export class PagedList {
117
120
  }
118
121
  dispose() {
119
122
  this.list.dispose();
123
+ this.modelDisposables.dispose();
120
124
  }
121
125
  }
122
126
  //# sourceMappingURL=listPaging.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/browser/ui/list/listPaging.ts","vs/base/browser/ui/list/listPaging.ts"],"names":[],"mappings":"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","file":"listPaging.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","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 *--------------------------------------------------------------------------------------------*/\n\nimport { range } from '../../../common/arrays.js';\nimport { CancellationTokenSource } from '../../../common/cancellation.js';\nimport { Event } from '../../../common/event.js';\nimport { Disposable, IDisposable } from '../../../common/lifecycle.js';\nimport { IPagedModel } from '../../../common/paging.js';\nimport './list.css';\nimport { IListElementRenderDetails, IListEvent, IListMouseEvent, IListRenderer, IListVirtualDelegate } from './list.js';\nimport { IListAccessibilityProvider, IListOptions, IListOptionsUpdate, IListStyles, List } from './listWidget.js';\n\nexport interface IPagedRenderer<TElement, TTemplateData> extends IListRenderer<TElement, TTemplateData> {\n\trenderPlaceholder(index: number, templateData: TTemplateData): void;\n}\n\nexport interface ITemplateData<T> {\n\tdata?: T;\n\tdisposable?: IDisposable;\n}\n\nclass PagedRenderer<TElement, TTemplateData> implements IListRenderer<number, ITemplateData<TTemplateData>> {\n\n\tget templateId(): string { return this.renderer.templateId; }\n\n\tconstructor(\n\t\tprivate renderer: IPagedRenderer<TElement, TTemplateData>,\n\t\tprivate modelProvider: () => IPagedModel<TElement>\n\t) { }\n\n\trenderTemplate(container: HTMLElement): ITemplateData<TTemplateData> {\n\t\tconst data = this.renderer.renderTemplate(container);\n\t\treturn { data, disposable: Disposable.None };\n\t}\n\n\trenderElement(index: number, _: number, data: ITemplateData<TTemplateData>, details?: IListElementRenderDetails): void {\n\t\tdata.disposable?.dispose();\n\n\t\tif (!data.data) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.modelProvider();\n\n\t\tif (model.isResolved(index)) {\n\t\t\treturn this.renderer.renderElement(model.get(index), index, data.data, details);\n\t\t}\n\n\t\tconst cts = new CancellationTokenSource();\n\t\tconst promise = model.resolve(index, cts.token);\n\t\tdata.disposable = { dispose: () => cts.cancel() };\n\n\t\tthis.renderer.renderPlaceholder(index, data.data);\n\t\tpromise.then(entry => this.renderer.renderElement(entry, index, data.data!, details));\n\t}\n\n\tdisposeTemplate(data: ITemplateData<TTemplateData>): void {\n\t\tif (data.disposable) {\n\t\t\tdata.disposable.dispose();\n\t\t\tdata.disposable = undefined;\n\t\t}\n\t\tif (data.data) {\n\t\t\tthis.renderer.disposeTemplate(data.data);\n\t\t\tdata.data = undefined;\n\t\t}\n\t}\n}\n\nclass PagedAccessibilityProvider<T> implements IListAccessibilityProvider<number> {\n\n\tconstructor(\n\t\tprivate modelProvider: () => IPagedModel<T>,\n\t\tprivate accessibilityProvider: IListAccessibilityProvider<T>\n\t) { }\n\n\tgetWidgetAriaLabel() {\n\t\treturn this.accessibilityProvider.getWidgetAriaLabel();\n\t}\n\n\tgetAriaLabel(index: number) {\n\t\tconst model = this.modelProvider();\n\n\t\tif (!model.isResolved(index)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.accessibilityProvider.getAriaLabel(model.get(index));\n\t}\n}\n\nexport interface IPagedListOptions<T> {\n\treadonly keyboardSupport?: boolean;\n\treadonly accessibilityProvider?: IListAccessibilityProvider<T>;\n\treadonly horizontalScrolling?: boolean;\n}\n\nfunction fromPagedListOptions<T>(modelProvider: () => IPagedModel<T>, options: IPagedListOptions<T>): IListOptions<number> {\n\treturn {\n\t\t...options,\n\t\taccessibilityProvider: options.accessibilityProvider && new PagedAccessibilityProvider(modelProvider, options.accessibilityProvider)\n\t};\n}\n\nexport class PagedList<T> implements IDisposable {\n\n\tprivate list: List<number>;\n\tprivate _model!: IPagedModel<T>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tvirtualDelegate: IListVirtualDelegate<number>,\n\t\trenderers: IPagedRenderer<T, any>[],\n\t\toptions: IPagedListOptions<T> = {}\n\t) {\n\t\tconst modelProvider = () => this.model;\n\t\tconst pagedRenderers = renderers.map(r => new PagedRenderer<T, ITemplateData<T>>(r, modelProvider));\n\t\tthis.list = new List(user, container, virtualDelegate, pagedRenderers, fromPagedListOptions(modelProvider, options));\n\t}\n\n\tupdateOptions(options: IListOptionsUpdate) {\n\t\tthis.list.updateOptions(options);\n\t}\n\n\tgetHTMLElement(): HTMLElement {\n\t\treturn this.list.getHTMLElement();\n\t}\n\n\tget onDidFocus(): Event<void> {\n\t\treturn this.list.onDidFocus;\n\t}\n\n\tget widget(): List<number> {\n\t\treturn this.list;\n\t}\n\n\tget onDidDispose(): Event<void> {\n\t\treturn this.list.onDidDispose;\n\t}\n\n\tget onMouseDblClick(): Event<IListMouseEvent<T>> {\n\t\treturn Event.map(this.list.onMouseDblClick, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n\t}\n\n\tget onPointer(): Event<IListMouseEvent<T>> {\n\t\treturn Event.map(this.list.onPointer, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n\t}\n\n\tget onDidChangeSelection(): Event<IListEvent<T>> {\n\t\treturn Event.map(this.list.onDidChangeSelection, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));\n\t}\n\n\tget model(): IPagedModel<T> {\n\t\treturn this._model;\n\t}\n\n\tset model(model: IPagedModel<T>) {\n\t\tthis._model = model;\n\t\tthis.list.splice(0, this.list.length, range(model.length));\n\t}\n\n\tgetFocus(): number[] {\n\t\treturn this.list.getFocus();\n\t}\n\n\tgetSelection(): number[] {\n\t\treturn this.list.getSelection();\n\t}\n\n\tgetSelectedElements(): T[] {\n\t\treturn this.getSelection().map(i => this.model.get(i));\n\t}\n\n\tstyle(styles: IListStyles): void {\n\t\tthis.list.style(styles);\n\t}\n\n\tdispose(): void {\n\t\tthis.list.dispose();\n\t}\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 *--------------------------------------------------------------------------------------------*/\n\nimport { range } from '../../../common/arrays.js';\nimport { CancellationTokenSource } from '../../../common/cancellation.js';\nimport { Event } from '../../../common/event.js';\nimport { Disposable, IDisposable } from '../../../common/lifecycle.js';\nimport { IPagedModel } from '../../../common/paging.js';\nimport './list.css';\nimport { IListElementRenderDetails, IListEvent, IListMouseEvent, IListRenderer, IListVirtualDelegate } from './list.js';\nimport { IListAccessibilityProvider, IListOptions, IListOptionsUpdate, IListStyles, List } from './listWidget.js';\n\nexport interface IPagedRenderer<TElement, TTemplateData> extends IListRenderer<TElement, TTemplateData> {\n\trenderPlaceholder(index: number, templateData: TTemplateData): void;\n}\n\nexport interface ITemplateData<T> {\n\tdata?: T;\n\tdisposable?: IDisposable;\n}\n\nclass PagedRenderer<TElement, TTemplateData> implements IListRenderer<number, ITemplateData<TTemplateData>> {\n\n\tget templateId(): string { return this.renderer.templateId; }\n\n\tconstructor(\n\t\tprivate renderer: IPagedRenderer<TElement, TTemplateData>,\n\t\tprivate modelProvider: () => IPagedModel<TElement>\n\t) { }\n\n\trenderTemplate(container: HTMLElement): ITemplateData<TTemplateData> {\n\t\tconst data = this.renderer.renderTemplate(container);\n\t\treturn { data, disposable: Disposable.None };\n\t}\n\n\trenderElement(index: number, _: number, data: ITemplateData<TTemplateData>, details?: IListElementRenderDetails): void {\n\t\tdata.disposable?.dispose();\n\n\t\tif (!data.data) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.modelProvider();\n\n\t\tif (model.isResolved(index)) {\n\t\t\treturn this.renderer.renderElement(model.get(index), index, data.data, details);\n\t\t}\n\n\t\tconst cts = new CancellationTokenSource();\n\t\tconst promise = model.resolve(index, cts.token);\n\t\tdata.disposable = { dispose: () => cts.cancel() };\n\n\t\tthis.renderer.renderPlaceholder(index, data.data);\n\t\tpromise.then(entry => this.renderer.renderElement(entry, index, data.data!, details));\n\t}\n\n\tdisposeTemplate(data: ITemplateData<TTemplateData>): void {\n\t\tif (data.disposable) {\n\t\t\tdata.disposable.dispose();\n\t\t\tdata.disposable = undefined;\n\t\t}\n\t\tif (data.data) {\n\t\t\tthis.renderer.disposeTemplate(data.data);\n\t\t\tdata.data = undefined;\n\t\t}\n\t}\n}\n\nclass PagedAccessibilityProvider<T> implements IListAccessibilityProvider<number> {\n\n\tconstructor(\n\t\tprivate modelProvider: () => IPagedModel<T>,\n\t\tprivate accessibilityProvider: IListAccessibilityProvider<T>\n\t) { }\n\n\tgetWidgetAriaLabel() {\n\t\treturn this.accessibilityProvider.getWidgetAriaLabel();\n\t}\n\n\tgetAriaLabel(index: number) {\n\t\tconst model = this.modelProvider();\n\n\t\tif (!model.isResolved(index)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.accessibilityProvider.getAriaLabel(model.get(index));\n\t}\n}\n\nexport interface IPagedListOptions<T> {\n\treadonly keyboardSupport?: boolean;\n\treadonly accessibilityProvider?: IListAccessibilityProvider<T>;\n\treadonly horizontalScrolling?: boolean;\n}\n\nfunction fromPagedListOptions<T>(modelProvider: () => IPagedModel<T>, options: IPagedListOptions<T>): IListOptions<number> {\n\treturn {\n\t\t...options,\n\t\taccessibilityProvider: options.accessibilityProvider && new PagedAccessibilityProvider(modelProvider, options.accessibilityProvider)\n\t};\n}\n\nexport class PagedList<T> implements IDisposable {\n\n\tprivate list: List<number>;\n\tprivate _model!: IPagedModel<T>;\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tvirtualDelegate: IListVirtualDelegate<number>,\n\t\trenderers: IPagedRenderer<T, any>[],\n\t\toptions: IPagedListOptions<T> = {}\n\t) {\n\t\tconst modelProvider = () => this.model;\n\t\tconst pagedRenderers = renderers.map(r => new PagedRenderer<T, ITemplateData<T>>(r, modelProvider));\n\t\tthis.list = new List(user, container, virtualDelegate, pagedRenderers, fromPagedListOptions(modelProvider, options));\n\t}\n\n\tupdateOptions(options: IListOptionsUpdate) {\n\t\tthis.list.updateOptions(options);\n\t}\n\n\tgetHTMLElement(): HTMLElement {\n\t\treturn this.list.getHTMLElement();\n\t}\n\n\tget onDidFocus(): Event<void> {\n\t\treturn this.list.onDidFocus;\n\t}\n\n\tget widget(): List<number> {\n\t\treturn this.list;\n\t}\n\n\tget onDidDispose(): Event<void> {\n\t\treturn this.list.onDidDispose;\n\t}\n\n\tget onMouseDblClick(): Event<IListMouseEvent<T>> {\n\t\treturn Event.map(this.list.onMouseDblClick, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n\t}\n\n\tget onPointer(): Event<IListMouseEvent<T>> {\n\t\treturn Event.map(this.list.onPointer, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n\t}\n\n\tget onDidChangeSelection(): Event<IListEvent<T>> {\n\t\treturn Event.map(this.list.onDidChangeSelection, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));\n\t}\n\n\tget model(): IPagedModel<T> {\n\t\treturn this._model;\n\t}\n\n\tset model(model: IPagedModel<T>) {\n\t\tthis._model = model;\n\t\tthis.list.splice(0, this.list.length, range(model.length));\n\t}\n\n\tgetFocus(): number[] {\n\t\treturn this.list.getFocus();\n\t}\n\n\tgetSelection(): number[] {\n\t\treturn this.list.getSelection();\n\t}\n\n\tgetSelectedElements(): T[] {\n\t\treturn this.getSelection().map(i => this.model.get(i));\n\t}\n\n\tstyle(styles: IListStyles): void {\n\t\tthis.list.style(styles);\n\t}\n\n\tdispose(): void {\n\t\tthis.list.dispose();\n\t}\n}\n"]}
1
+ {"version":3,"sources":["file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src/vs/base/browser/ui/list/listPaging.ts","vs/base/browser/ui/list/listPaging.ts"],"names":[],"mappings":"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","file":"listPaging.js","sourceRoot":"file:///mnt/vss/_work/1/s/dependencies/vscode/out-editor-src","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 *--------------------------------------------------------------------------------------------*/\n\nimport { range } from '../../../common/arrays.js';\nimport { CancellationTokenSource } from '../../../common/cancellation.js';\nimport { Event } from '../../../common/event.js';\nimport { Disposable, DisposableStore, IDisposable } from '../../../common/lifecycle.js';\nimport { IPagedModel } from '../../../common/paging.js';\nimport './list.css';\nimport { IListElementRenderDetails, IListEvent, IListMouseEvent, IListRenderer, IListVirtualDelegate } from './list.js';\nimport { IListAccessibilityProvider, IListOptions, IListOptionsUpdate, IListStyles, List } from './listWidget.js';\n\nexport interface IPagedRenderer<TElement, TTemplateData> extends IListRenderer<TElement, TTemplateData> {\n\trenderPlaceholder(index: number, templateData: TTemplateData): void;\n}\n\nexport interface ITemplateData<T> {\n\tdata?: T;\n\tdisposable?: IDisposable;\n}\n\nclass PagedRenderer<TElement, TTemplateData> implements IListRenderer<number, ITemplateData<TTemplateData>> {\n\n\tget templateId(): string { return this.renderer.templateId; }\n\n\tconstructor(\n\t\tprivate renderer: IPagedRenderer<TElement, TTemplateData>,\n\t\tprivate modelProvider: () => IPagedModel<TElement>\n\t) { }\n\n\trenderTemplate(container: HTMLElement): ITemplateData<TTemplateData> {\n\t\tconst data = this.renderer.renderTemplate(container);\n\t\treturn { data, disposable: Disposable.None };\n\t}\n\n\trenderElement(index: number, _: number, data: ITemplateData<TTemplateData>, details?: IListElementRenderDetails): void {\n\t\tdata.disposable?.dispose();\n\n\t\tif (!data.data) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.modelProvider();\n\n\t\tif (model.isResolved(index)) {\n\t\t\treturn this.renderer.renderElement(model.get(index), index, data.data, details);\n\t\t}\n\n\t\tconst cts = new CancellationTokenSource();\n\t\tconst promise = model.resolve(index, cts.token);\n\t\tdata.disposable = { dispose: () => cts.cancel() };\n\n\t\tthis.renderer.renderPlaceholder(index, data.data);\n\t\tpromise.then(entry => this.renderer.renderElement(entry, index, data.data!, details));\n\t}\n\n\tdisposeTemplate(data: ITemplateData<TTemplateData>): void {\n\t\tif (data.disposable) {\n\t\t\tdata.disposable.dispose();\n\t\t\tdata.disposable = undefined;\n\t\t}\n\t\tif (data.data) {\n\t\t\tthis.renderer.disposeTemplate(data.data);\n\t\t\tdata.data = undefined;\n\t\t}\n\t}\n}\n\nclass PagedAccessibilityProvider<T> implements IListAccessibilityProvider<number> {\n\n\tconstructor(\n\t\tprivate modelProvider: () => IPagedModel<T>,\n\t\tprivate accessibilityProvider: IListAccessibilityProvider<T>\n\t) { }\n\n\tgetWidgetAriaLabel() {\n\t\treturn this.accessibilityProvider.getWidgetAriaLabel();\n\t}\n\n\tgetAriaLabel(index: number) {\n\t\tconst model = this.modelProvider();\n\n\t\tif (!model.isResolved(index)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.accessibilityProvider.getAriaLabel(model.get(index));\n\t}\n}\n\nexport interface IPagedListOptions<T> {\n\treadonly keyboardSupport?: boolean;\n\treadonly accessibilityProvider?: IListAccessibilityProvider<T>;\n\treadonly horizontalScrolling?: boolean;\n}\n\nfunction fromPagedListOptions<T>(modelProvider: () => IPagedModel<T>, options: IPagedListOptions<T>): IListOptions<number> {\n\treturn {\n\t\t...options,\n\t\taccessibilityProvider: options.accessibilityProvider && new PagedAccessibilityProvider(modelProvider, options.accessibilityProvider)\n\t};\n}\n\nexport class PagedList<T> implements IDisposable {\n\n\tprivate readonly list: List<number>;\n\tprivate _model!: IPagedModel<T>;\n\tprivate readonly modelDisposables = new DisposableStore();\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tvirtualDelegate: IListVirtualDelegate<number>,\n\t\trenderers: IPagedRenderer<T, any>[],\n\t\toptions: IPagedListOptions<T> = {}\n\t) {\n\t\tconst modelProvider = () => this.model;\n\t\tconst pagedRenderers = renderers.map(r => new PagedRenderer<T, ITemplateData<T>>(r, modelProvider));\n\t\tthis.list = new List(user, container, virtualDelegate, pagedRenderers, fromPagedListOptions(modelProvider, options));\n\t}\n\n\tupdateOptions(options: IListOptionsUpdate) {\n\t\tthis.list.updateOptions(options);\n\t}\n\n\tgetHTMLElement(): HTMLElement {\n\t\treturn this.list.getHTMLElement();\n\t}\n\n\tget onDidFocus(): Event<void> {\n\t\treturn this.list.onDidFocus;\n\t}\n\n\tget widget(): List<number> {\n\t\treturn this.list;\n\t}\n\n\tget onDidDispose(): Event<void> {\n\t\treturn this.list.onDidDispose;\n\t}\n\n\tget onMouseDblClick(): Event<IListMouseEvent<T>> {\n\t\treturn Event.map(this.list.onMouseDblClick, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n\t}\n\n\tget onPointer(): Event<IListMouseEvent<T>> {\n\t\treturn Event.map(this.list.onPointer, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n\t}\n\n\tget onDidChangeSelection(): Event<IListEvent<T>> {\n\t\treturn Event.map(this.list.onDidChangeSelection, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));\n\t}\n\n\tget model(): IPagedModel<T> {\n\t\treturn this._model;\n\t}\n\n\tset model(model: IPagedModel<T>) {\n\t\tthis.modelDisposables.clear();\n\t\tthis._model = model;\n\t\tthis.list.splice(0, this.list.length, range(model.length));\n\t\tthis.modelDisposables.add(model.onDidIncrementLength(newLength => this.list.splice(this.list.length, 0, range(this.list.length, newLength))));\n\t}\n\n\tgetFocus(): number[] {\n\t\treturn this.list.getFocus();\n\t}\n\n\tgetSelection(): number[] {\n\t\treturn this.list.getSelection();\n\t}\n\n\tgetSelectedElements(): T[] {\n\t\treturn this.getSelection().map(i => this.model.get(i));\n\t}\n\n\tstyle(styles: IListStyles): void {\n\t\tthis.list.style(styles);\n\t}\n\n\tdispose(): void {\n\t\tthis.list.dispose();\n\t\tthis.modelDisposables.dispose();\n\t}\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 *--------------------------------------------------------------------------------------------*/\n\nimport { range } from '../../../common/arrays.js';\nimport { CancellationTokenSource } from '../../../common/cancellation.js';\nimport { Event } from '../../../common/event.js';\nimport { Disposable, DisposableStore, IDisposable } from '../../../common/lifecycle.js';\nimport { IPagedModel } from '../../../common/paging.js';\nimport './list.css';\nimport { IListElementRenderDetails, IListEvent, IListMouseEvent, IListRenderer, IListVirtualDelegate } from './list.js';\nimport { IListAccessibilityProvider, IListOptions, IListOptionsUpdate, IListStyles, List } from './listWidget.js';\n\nexport interface IPagedRenderer<TElement, TTemplateData> extends IListRenderer<TElement, TTemplateData> {\n\trenderPlaceholder(index: number, templateData: TTemplateData): void;\n}\n\nexport interface ITemplateData<T> {\n\tdata?: T;\n\tdisposable?: IDisposable;\n}\n\nclass PagedRenderer<TElement, TTemplateData> implements IListRenderer<number, ITemplateData<TTemplateData>> {\n\n\tget templateId(): string { return this.renderer.templateId; }\n\n\tconstructor(\n\t\tprivate renderer: IPagedRenderer<TElement, TTemplateData>,\n\t\tprivate modelProvider: () => IPagedModel<TElement>\n\t) { }\n\n\trenderTemplate(container: HTMLElement): ITemplateData<TTemplateData> {\n\t\tconst data = this.renderer.renderTemplate(container);\n\t\treturn { data, disposable: Disposable.None };\n\t}\n\n\trenderElement(index: number, _: number, data: ITemplateData<TTemplateData>, details?: IListElementRenderDetails): void {\n\t\tdata.disposable?.dispose();\n\n\t\tif (!data.data) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst model = this.modelProvider();\n\n\t\tif (model.isResolved(index)) {\n\t\t\treturn this.renderer.renderElement(model.get(index), index, data.data, details);\n\t\t}\n\n\t\tconst cts = new CancellationTokenSource();\n\t\tconst promise = model.resolve(index, cts.token);\n\t\tdata.disposable = { dispose: () => cts.cancel() };\n\n\t\tthis.renderer.renderPlaceholder(index, data.data);\n\t\tpromise.then(entry => this.renderer.renderElement(entry, index, data.data!, details));\n\t}\n\n\tdisposeTemplate(data: ITemplateData<TTemplateData>): void {\n\t\tif (data.disposable) {\n\t\t\tdata.disposable.dispose();\n\t\t\tdata.disposable = undefined;\n\t\t}\n\t\tif (data.data) {\n\t\t\tthis.renderer.disposeTemplate(data.data);\n\t\t\tdata.data = undefined;\n\t\t}\n\t}\n}\n\nclass PagedAccessibilityProvider<T> implements IListAccessibilityProvider<number> {\n\n\tconstructor(\n\t\tprivate modelProvider: () => IPagedModel<T>,\n\t\tprivate accessibilityProvider: IListAccessibilityProvider<T>\n\t) { }\n\n\tgetWidgetAriaLabel() {\n\t\treturn this.accessibilityProvider.getWidgetAriaLabel();\n\t}\n\n\tgetAriaLabel(index: number) {\n\t\tconst model = this.modelProvider();\n\n\t\tif (!model.isResolved(index)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this.accessibilityProvider.getAriaLabel(model.get(index));\n\t}\n}\n\nexport interface IPagedListOptions<T> {\n\treadonly keyboardSupport?: boolean;\n\treadonly accessibilityProvider?: IListAccessibilityProvider<T>;\n\treadonly horizontalScrolling?: boolean;\n}\n\nfunction fromPagedListOptions<T>(modelProvider: () => IPagedModel<T>, options: IPagedListOptions<T>): IListOptions<number> {\n\treturn {\n\t\t...options,\n\t\taccessibilityProvider: options.accessibilityProvider && new PagedAccessibilityProvider(modelProvider, options.accessibilityProvider)\n\t};\n}\n\nexport class PagedList<T> implements IDisposable {\n\n\tprivate readonly list: List<number>;\n\tprivate _model!: IPagedModel<T>;\n\tprivate readonly modelDisposables = new DisposableStore();\n\n\tconstructor(\n\t\tuser: string,\n\t\tcontainer: HTMLElement,\n\t\tvirtualDelegate: IListVirtualDelegate<number>,\n\t\trenderers: IPagedRenderer<T, any>[],\n\t\toptions: IPagedListOptions<T> = {}\n\t) {\n\t\tconst modelProvider = () => this.model;\n\t\tconst pagedRenderers = renderers.map(r => new PagedRenderer<T, ITemplateData<T>>(r, modelProvider));\n\t\tthis.list = new List(user, container, virtualDelegate, pagedRenderers, fromPagedListOptions(modelProvider, options));\n\t}\n\n\tupdateOptions(options: IListOptionsUpdate) {\n\t\tthis.list.updateOptions(options);\n\t}\n\n\tgetHTMLElement(): HTMLElement {\n\t\treturn this.list.getHTMLElement();\n\t}\n\n\tget onDidFocus(): Event<void> {\n\t\treturn this.list.onDidFocus;\n\t}\n\n\tget widget(): List<number> {\n\t\treturn this.list;\n\t}\n\n\tget onDidDispose(): Event<void> {\n\t\treturn this.list.onDidDispose;\n\t}\n\n\tget onMouseDblClick(): Event<IListMouseEvent<T>> {\n\t\treturn Event.map(this.list.onMouseDblClick, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n\t}\n\n\tget onPointer(): Event<IListMouseEvent<T>> {\n\t\treturn Event.map(this.list.onPointer, ({ element, index, browserEvent }) => ({ element: element === undefined ? undefined : this._model.get(element), index, browserEvent }));\n\t}\n\n\tget onDidChangeSelection(): Event<IListEvent<T>> {\n\t\treturn Event.map(this.list.onDidChangeSelection, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));\n\t}\n\n\tget model(): IPagedModel<T> {\n\t\treturn this._model;\n\t}\n\n\tset model(model: IPagedModel<T>) {\n\t\tthis.modelDisposables.clear();\n\t\tthis._model = model;\n\t\tthis.list.splice(0, this.list.length, range(model.length));\n\t\tthis.modelDisposables.add(model.onDidIncrementLength(newLength => this.list.splice(this.list.length, 0, range(this.list.length, newLength))));\n\t}\n\n\tgetFocus(): number[] {\n\t\treturn this.list.getFocus();\n\t}\n\n\tgetSelection(): number[] {\n\t\treturn this.list.getSelection();\n\t}\n\n\tgetSelectedElements(): T[] {\n\t\treturn this.getSelection().map(i => this.model.get(i));\n\t}\n\n\tstyle(styles: IListStyles): void {\n\t\tthis.list.style(styles);\n\t}\n\n\tdispose(): void {\n\t\tthis.list.dispose();\n\t\tthis.modelDisposables.dispose();\n\t}\n}\n"]}
@@ -568,11 +568,12 @@ export class ListView {
568
568
  const role = this.accessibilityProvider.getRole(item.element) || 'listitem';
569
569
  item.row.domNode.setAttribute('role', role);
570
570
  const checked = this.accessibilityProvider.isChecked(item.element);
571
- if (typeof checked === 'boolean') {
572
- item.row.domNode.setAttribute('aria-checked', String(!!checked));
571
+ const toAriaState = (value) => value === 'mixed' ? 'mixed' : String(!!value);
572
+ if (typeof checked === 'boolean' || checked === 'mixed') {
573
+ item.row.domNode.setAttribute('aria-checked', toAriaState(checked));
573
574
  }
574
575
  else if (checked) {
575
- const update = (checked) => item.row.domNode.setAttribute('aria-checked', String(!!checked));
576
+ const update = (value) => item.row.domNode.setAttribute('aria-checked', toAriaState(value));
576
577
  update(checked.value);
577
578
  item.checkedDisposable = checked.onDidChange(() => update(checked.value));
578
579
  }