monaco-editor11 1.1.0 → 1.1.2

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 (1068) hide show
  1. package/dist/index.d.ts +1 -8
  2. package/dist/monaco-editor11.es.js +1 -49
  3. package/dist/monaco-editor11.umd.js +1 -1
  4. package/dist/workers/_.contribution.js +120 -0
  5. package/dist/workers/abap.contribution.js +8 -0
  6. package/dist/workers/abap.js +1397 -0
  7. package/dist/workers/abstractCodeEditorService.js +129 -0
  8. package/dist/workers/abstractKeybindingService.js +286 -0
  9. package/dist/workers/abstractScrollbar.js +214 -0
  10. package/dist/workers/abstractSyntaxTokenBackend.js +128 -0
  11. package/dist/workers/abstractText.js +89 -0
  12. package/dist/workers/abstractTree.js +2027 -0
  13. package/dist/workers/accessibility.js +11 -0
  14. package/dist/workers/accessibilityService.js +111 -0
  15. package/dist/workers/accessibilitySignalService.js +331 -0
  16. package/dist/workers/accessibleDiffViewer.js +588 -0
  17. package/dist/workers/accessibleViewRegistry.js +25 -0
  18. package/dist/workers/action.js +15 -0
  19. package/dist/workers/actionCommonCategories.js +16 -0
  20. package/dist/workers/actionList.js +344 -0
  21. package/dist/workers/actionViewItemService.js +29 -0
  22. package/dist/workers/actionViewItems.js +376 -0
  23. package/dist/workers/actionWidget.js +236 -0
  24. package/dist/workers/actionbar.js +462 -0
  25. package/dist/workers/actions.js +483 -0
  26. package/dist/workers/anchorSelect.js +160 -0
  27. package/dist/workers/animation.js +74 -0
  28. package/dist/workers/apex.contribution.js +9 -0
  29. package/dist/workers/apex.js +329 -0
  30. package/dist/workers/aria.js +84 -0
  31. package/dist/workers/arrays.js +529 -0
  32. package/dist/workers/arraysFind.js +177 -0
  33. package/dist/workers/assert.js +79 -0
  34. package/dist/workers/ast.js +485 -0
  35. package/dist/workers/async.js +938 -0
  36. package/dist/workers/asyncDataTree.js +946 -0
  37. package/dist/workers/autoIndent.js +390 -0
  38. package/dist/workers/autorun.js +89 -0
  39. package/dist/workers/autorunImpl.js +215 -0
  40. package/dist/workers/azcli.contribution.js +8 -0
  41. package/dist/workers/azcli.js +67 -0
  42. package/dist/workers/bannerController.js +118 -0
  43. package/dist/workers/base.js +19 -0
  44. package/dist/workers/baseColors.js +31 -0
  45. package/dist/workers/baseObservable.js +106 -0
  46. package/dist/workers/baseRenderStrategy.js +19 -0
  47. package/dist/workers/baseResolvedKeybinding.js +56 -0
  48. package/dist/workers/bat.contribution.js +8 -0
  49. package/dist/workers/bat.js +99 -0
  50. package/dist/workers/beforeEditPositionMapper.js +110 -0
  51. package/dist/workers/bicep.contribution.js +8 -0
  52. package/dist/workers/bicep.js +108 -0
  53. package/dist/workers/blockCommentCommand.js +149 -0
  54. package/dist/workers/blockDecorations.js +97 -0
  55. package/dist/workers/bracketMatching.js +359 -0
  56. package/dist/workers/bracketPairsImpl.js +717 -0
  57. package/dist/workers/bracketPairsTree.js +343 -0
  58. package/dist/workers/bracketSelections.js +149 -0
  59. package/dist/workers/brackets.js +108 -0
  60. package/dist/workers/browser.js +57 -0
  61. package/dist/workers/buffer.js +81 -0
  62. package/dist/workers/bufferDirtyTracker.js +45 -0
  63. package/dist/workers/bulkEditService.js +76 -0
  64. package/dist/workers/button.js +226 -0
  65. package/dist/workers/cache.js +61 -0
  66. package/dist/workers/cameligo.contribution.js +8 -0
  67. package/dist/workers/cameligo.js +173 -0
  68. package/dist/workers/canIUse.js +23 -0
  69. package/dist/workers/cancellation.js +116 -0
  70. package/dist/workers/caretOperations.js +48 -0
  71. package/dist/workers/changeRecorder.js +78 -0
  72. package/dist/workers/changeTracker.js +80 -0
  73. package/dist/workers/charWidthReader.js +104 -0
  74. package/dist/workers/characterClassifier.js +59 -0
  75. package/dist/workers/characterPair.js +40 -0
  76. package/dist/workers/chartsColors.js +18 -0
  77. package/dist/workers/clickLinkGesture.js +161 -0
  78. package/dist/workers/clipboard.js +308 -0
  79. package/dist/workers/clipboardService.js +9 -0
  80. package/dist/workers/clipboardUtils.js +85 -0
  81. package/dist/workers/clojure.contribution.js +8 -0
  82. package/dist/workers/clojure.js +760 -0
  83. package/dist/workers/codeAction.js +306 -0
  84. package/dist/workers/codeActionCommands.js +230 -0
  85. package/dist/workers/codeActionContributions.js +55 -0
  86. package/dist/workers/codeActionController.js +372 -0
  87. package/dist/workers/codeActionKeybindingResolver.js +90 -0
  88. package/dist/workers/codeActionMenu.js +68 -0
  89. package/dist/workers/codeActionModel.js +334 -0
  90. package/dist/workers/codeEditorContributions.js +132 -0
  91. package/dist/workers/codeEditorService.js +9 -0
  92. package/dist/workers/codeEditorWidget.js +1856 -0
  93. package/dist/workers/codeLensCache.js +112 -0
  94. package/dist/workers/codelens.js +114 -0
  95. package/dist/workers/codelensController.js +469 -0
  96. package/dist/workers/codelensWidget.js +265 -0
  97. package/dist/workers/codicons.js +50 -0
  98. package/dist/workers/codiconsLibrary.js +642 -0
  99. package/dist/workers/codiconsUtil.js +22 -0
  100. package/dist/workers/coffee.contribution.js +9 -0
  101. package/dist/workers/coffee.js +231 -0
  102. package/dist/workers/collections.js +98 -0
  103. package/dist/workers/color.js +94 -0
  104. package/dist/workers/colorDetector.js +245 -0
  105. package/dist/workers/colorPickerBody.js +71 -0
  106. package/dist/workers/colorPickerCloseButton.js +34 -0
  107. package/dist/workers/colorPickerContribution.js +50 -0
  108. package/dist/workers/colorPickerHeader.js +79 -0
  109. package/dist/workers/colorPickerInsertButton.js +27 -0
  110. package/dist/workers/colorPickerModel.js +74 -0
  111. package/dist/workers/colorPickerParticipantUtils.js +52 -0
  112. package/dist/workers/colorPickerSaturationBox.js +106 -0
  113. package/dist/workers/colorPickerStrip.js +98 -0
  114. package/dist/workers/colorPickerWidget.js +32 -0
  115. package/dist/workers/colorUtils.js +199 -0
  116. package/dist/workers/colorizedBracketPairsDecorationProvider.js +97 -0
  117. package/dist/workers/colorizer.js +120 -0
  118. package/dist/workers/colors.js +20 -0
  119. package/dist/workers/columnRange.js +35 -0
  120. package/dist/workers/combineTextEditInfos.js +124 -0
  121. package/dist/workers/commandIds.js +12 -0
  122. package/dist/workers/commands.js +329 -0
  123. package/dist/workers/commandsQuickAccess.js +40 -0
  124. package/dist/workers/comment.js +147 -0
  125. package/dist/workers/common.js +20 -0
  126. package/dist/workers/comparers.js +87 -0
  127. package/dist/workers/completionModel.js +227 -0
  128. package/dist/workers/compressedObjectTreeModel.js +385 -0
  129. package/dist/workers/computeGhostText.js +182 -0
  130. package/dist/workers/computeMovedLines.js +249 -0
  131. package/dist/workers/concat23Trees.js +192 -0
  132. package/dist/workers/configuration.js +92 -0
  133. package/dist/workers/configurationModels.js +614 -0
  134. package/dist/workers/configurationRegistry.js +400 -0
  135. package/dist/workers/configurations.js +46 -0
  136. package/dist/workers/consoleObservableLogger.js +83 -0
  137. package/dist/workers/constObservable.js +35 -0
  138. package/dist/workers/contentHoverComputer.js +71 -0
  139. package/dist/workers/contentHoverController.js +320 -0
  140. package/dist/workers/contentHoverRendered.js +336 -0
  141. package/dist/workers/contentHoverStatusBar.js +52 -0
  142. package/dist/workers/contentHoverTypes.js +29 -0
  143. package/dist/workers/contentHoverWidget.js +394 -0
  144. package/dist/workers/contentHoverWidgetWrapper.js +362 -0
  145. package/dist/workers/contentSegmenter.js +52 -0
  146. package/dist/workers/contentWidgets.js +495 -0
  147. package/dist/workers/contextKeyService.js +468 -0
  148. package/dist/workers/contextMenuHandler.js +126 -0
  149. package/dist/workers/contextMenuService.js +103 -0
  150. package/dist/workers/contextScopedHistoryWidget.js +106 -0
  151. package/dist/workers/contextViewService.js +73 -0
  152. package/dist/workers/contextkey.js +1551 -0
  153. package/dist/workers/contextkeys.js +21 -0
  154. package/dist/workers/contextmenu.js +334 -0
  155. package/dist/workers/contextview.js +298 -0
  156. package/dist/workers/contiguousMultilineTokens.js +32 -0
  157. package/dist/workers/contiguousMultilineTokensBuilder.js +23 -0
  158. package/dist/workers/contiguousTokensEditing.js +128 -0
  159. package/dist/workers/contiguousTokensStore.js +207 -0
  160. package/dist/workers/contribution.js +36 -0
  161. package/dist/workers/coordinatesConverter.js +51 -0
  162. package/dist/workers/copyLinesCommand.js +73 -0
  163. package/dist/workers/copyPasteContribution.js +114 -0
  164. package/dist/workers/copyPasteController.js +585 -0
  165. package/dist/workers/copySelection.js +47 -0
  166. package/dist/workers/coreCommands.js +1731 -0
  167. package/dist/workers/countBadge.js +52 -0
  168. package/dist/workers/cpp.contribution.js +14 -0
  169. package/dist/workers/cpp.js +388 -0
  170. package/dist/workers/csharp.contribution.js +8 -0
  171. package/dist/workers/csharp.js +325 -0
  172. package/dist/workers/csp.contribution.js +8 -0
  173. package/dist/workers/csp.js +52 -0
  174. package/dist/workers/css.contribution.js +9 -0
  175. package/dist/workers/css.js +184 -0
  176. package/dist/workers/cssMode.js +198 -0
  177. package/dist/workers/cssValue.js +69 -0
  178. package/dist/workers/cssWorker.js +183 -0
  179. package/dist/workers/currentLineHighlight.js +205 -0
  180. package/dist/workers/cursor.js +899 -0
  181. package/dist/workers/cursorAtomicMoveOperations.js +145 -0
  182. package/dist/workers/cursorCollection.js +194 -0
  183. package/dist/workers/cursorColumnSelection.js +93 -0
  184. package/dist/workers/cursorColumns.js +112 -0
  185. package/dist/workers/cursorCommon.js +250 -0
  186. package/dist/workers/cursorContext.js +15 -0
  187. package/dist/workers/cursorDeleteOperations.js +231 -0
  188. package/dist/workers/cursorMoveCommands.js +676 -0
  189. package/dist/workers/cursorMoveOperations.js +290 -0
  190. package/dist/workers/cursorTypeEditOperations.js +968 -0
  191. package/dist/workers/cursorTypeOperations.js +173 -0
  192. package/dist/workers/cursorUndo.js +133 -0
  193. package/dist/workers/cursorUtils.js +75 -0
  194. package/dist/workers/cursorWordOperations.js +720 -0
  195. package/dist/workers/cypher.contribution.js +8 -0
  196. package/dist/workers/cypher.js +262 -0
  197. package/dist/workers/dart.contribution.js +9 -0
  198. package/dist/workers/dart.js +280 -0
  199. package/dist/workers/dataChannel.js +12 -0
  200. package/dist/workers/dataTransfer.js +80 -0
  201. package/dist/workers/dataTree.js +20 -0
  202. package/dist/workers/date.js +57 -0
  203. package/dist/workers/debugLocation.js +66 -0
  204. package/dist/workers/debugName.js +110 -0
  205. package/dist/workers/debuggerRpc.js +67 -0
  206. package/dist/workers/decorationCssRuleExtractor.js +73 -0
  207. package/dist/workers/decorationStyleCache.js +40 -0
  208. package/dist/workers/decorations.js +196 -0
  209. package/dist/workers/decorationsOverviewRuler.js +416 -0
  210. package/dist/workers/decorators.js +33 -0
  211. package/dist/workers/defaultDocumentColorProvider.js +55 -0
  212. package/dist/workers/defaultDocumentColorsComputer.js +138 -0
  213. package/dist/workers/defaultLinesDiffComputer.js +188 -0
  214. package/dist/workers/defaultProviders.js +230 -0
  215. package/dist/workers/defaultStyles.js +194 -0
  216. package/dist/workers/delegatingEditorImpl.js +111 -0
  217. package/dist/workers/derived.js +80 -0
  218. package/dist/workers/derivedImpl.js +353 -0
  219. package/dist/workers/descriptors.js +13 -0
  220. package/dist/workers/devToolsLogger.js +442 -0
  221. package/dist/workers/dialogs.js +5 -0
  222. package/dist/workers/diff.js +902 -0
  223. package/dist/workers/diffAlgorithm.js +139 -0
  224. package/dist/workers/diffChange.js +34 -0
  225. package/dist/workers/diffEditor.contribution.js +83 -0
  226. package/dist/workers/diffEditor.js +38 -0
  227. package/dist/workers/diffEditorDecorations.js +115 -0
  228. package/dist/workers/diffEditorEditors.js +190 -0
  229. package/dist/workers/diffEditorItemTemplate.js +272 -0
  230. package/dist/workers/diffEditorOptions.js +152 -0
  231. package/dist/workers/diffEditorSash.js +86 -0
  232. package/dist/workers/diffEditorViewModel.js +608 -0
  233. package/dist/workers/diffEditorViewZones.js +525 -0
  234. package/dist/workers/diffEditorWidget.js +590 -0
  235. package/dist/workers/diffProviderFactoryService.js +142 -0
  236. package/dist/workers/dnd.js +198 -0
  237. package/dist/workers/dockerfile.contribution.js +9 -0
  238. package/dist/workers/dockerfile.js +129 -0
  239. package/dist/workers/documentSemanticTokens.js +362 -0
  240. package/dist/workers/documentSymbols.js +24 -0
  241. package/dist/workers/dom.js +1454 -0
  242. package/dist/workers/domFontInfo.js +28 -0
  243. package/dist/workers/domLineBreaksComputer.js +301 -0
  244. package/dist/workers/domReadingContext.js +43 -0
  245. package/dist/workers/domSanitize.js +312 -0
  246. package/dist/workers/domStylesheets.js +145 -0
  247. package/dist/workers/dompurify.js +1347 -0
  248. package/dist/workers/dragAndDropCommand.js +65 -0
  249. package/dist/workers/dragScrolling.js +174 -0
  250. package/dist/workers/dropIntoEditorContribution.js +41 -0
  251. package/dist/workers/dropIntoEditorController.js +173 -0
  252. package/dist/workers/dropdown.js +141 -0
  253. package/dist/workers/dropdownActionViewItem.js +109 -0
  254. package/dist/workers/dynamicProgrammingDiffing.js +101 -0
  255. package/dist/workers/dynamicViewOverlay.js +10 -0
  256. package/dist/workers/ecl.contribution.js +8 -0
  257. package/dist/workers/ecl.js +455 -0
  258. package/dist/workers/edcore.main.js +74 -0
  259. package/dist/workers/edit.js +83 -0
  260. package/dist/workers/editContext.js +10 -0
  261. package/dist/workers/editContextFactory.js +16 -0
  262. package/dist/workers/editOperation.js +36 -0
  263. package/dist/workers/editStack.js +363 -0
  264. package/dist/workers/editor.all.js +65 -0
  265. package/dist/workers/editor.api.js +2 -0
  266. package/dist/workers/editor.api2.js +60 -0
  267. package/dist/workers/editor.js +15 -0
  268. package/dist/workers/editor.main.js +170 -0
  269. package/dist/workers/editor.worker.start.js +44 -0
  270. package/dist/workers/editorAction.js +26 -0
  271. package/dist/workers/editorBaseApi.js +43 -0
  272. package/dist/workers/editorBrowser.js +53 -0
  273. package/dist/workers/editorColorRegistry.js +102 -0
  274. package/dist/workers/editorColors.js +128 -0
  275. package/dist/workers/editorCommon.js +13 -0
  276. package/dist/workers/editorConfiguration.js +292 -0
  277. package/dist/workers/editorConfigurationSchema.js +338 -0
  278. package/dist/workers/editorContextKeys.js +84 -0
  279. package/dist/workers/editorDom.js +299 -0
  280. package/dist/workers/editorExtensions.js +489 -0
  281. package/dist/workers/editorFeatures.js +17 -0
  282. package/dist/workers/editorGutter.js +117 -0
  283. package/dist/workers/editorMarkdownCodeBlockRenderer.js +85 -0
  284. package/dist/workers/editorNavigationQuickAccess.js +152 -0
  285. package/dist/workers/editorOptions.js +3440 -0
  286. package/dist/workers/editorScrollbar.js +151 -0
  287. package/dist/workers/editorState.js +115 -0
  288. package/dist/workers/editorTheme.js +23 -0
  289. package/dist/workers/editorWebWorker.js +299 -0
  290. package/dist/workers/editorWorker.js +9 -0
  291. package/dist/workers/editorWorkerHost.js +15 -0
  292. package/dist/workers/editorWorkerService.js +366 -0
  293. package/dist/workers/editorZoom.js +26 -0
  294. package/dist/workers/electricCharacter.js +55 -0
  295. package/dist/workers/elementSizeObserver.js +107 -0
  296. package/dist/workers/elixir.contribution.js +8 -0
  297. package/dist/workers/elixir.js +568 -0
  298. package/dist/workers/embeddedCodeEditorWidget.js +66 -0
  299. package/dist/workers/encodedTokenAttributes.js +79 -0
  300. package/dist/workers/enterAction.js +53 -0
  301. package/dist/workers/environment.js +5 -0
  302. package/dist/workers/eolCounter.js +44 -0
  303. package/dist/workers/equals.js +84 -0
  304. package/dist/workers/errorMessage.js +71 -0
  305. package/dist/workers/errors.js +163 -0
  306. package/dist/workers/event.js +1197 -0
  307. package/dist/workers/extensions.js +18 -0
  308. package/dist/workers/extpath.js +147 -0
  309. package/dist/workers/fastDomNode.js +255 -0
  310. package/dist/workers/files.js +19 -0
  311. package/dist/workers/filters.js +742 -0
  312. package/dist/workers/findController.js +970 -0
  313. package/dist/workers/findDecorations.js +311 -0
  314. package/dist/workers/findInput.js +294 -0
  315. package/dist/workers/findInputToggles.js +52 -0
  316. package/dist/workers/findModel.js +497 -0
  317. package/dist/workers/findOptionsWidget.js +155 -0
  318. package/dist/workers/findSectionHeaders.js +128 -0
  319. package/dist/workers/findState.js +244 -0
  320. package/dist/workers/findWidget.js +1168 -0
  321. package/dist/workers/findWidgetSearchHistory.js +85 -0
  322. package/dist/workers/fixBrackets.js +67 -0
  323. package/dist/workers/fixedArray.js +70 -0
  324. package/dist/workers/floatingMenu.contribution.js +9 -0
  325. package/dist/workers/floatingMenu.js +94 -0
  326. package/dist/workers/flow9.contribution.js +8 -0
  327. package/dist/workers/flow9.js +141 -0
  328. package/dist/workers/folding.js +1136 -0
  329. package/dist/workers/foldingDecorations.js +158 -0
  330. package/dist/workers/foldingModel.js +532 -0
  331. package/dist/workers/foldingRanges.js +354 -0
  332. package/dist/workers/fontInfo.js +172 -0
  333. package/dist/workers/fontInfoFromSettings.js +29 -0
  334. package/dist/workers/fontMeasurements.js +206 -0
  335. package/dist/workers/fontZoom.js +47 -0
  336. package/dist/workers/fonts.js +17 -0
  337. package/dist/workers/format.js +367 -0
  338. package/dist/workers/formatActions.js +263 -0
  339. package/dist/workers/formattedTextRenderer.js +160 -0
  340. package/dist/workers/formattingEdit.js +57 -0
  341. package/dist/workers/forwardingTelemetryService.js +60 -0
  342. package/dist/workers/freemarker2.contribution.js +52 -0
  343. package/dist/workers/freemarker2.js +1062 -0
  344. package/dist/workers/fsharp.contribution.js +8 -0
  345. package/dist/workers/fsharp.js +216 -0
  346. package/dist/workers/fullFileRenderStrategy.js +414 -0
  347. package/dist/workers/fullFileRenderStrategy.wgsl.js +93 -0
  348. package/dist/workers/functional.js +24 -0
  349. package/dist/workers/fuzzyScorer.js +143 -0
  350. package/dist/workers/getHover.js +56 -0
  351. package/dist/workers/getIconClasses.js +106 -0
  352. package/dist/workers/getLinks.js +157 -0
  353. package/dist/workers/getPositionOffsetTransformerFromTextModel.js +24 -0
  354. package/dist/workers/getSemanticTokens.js +211 -0
  355. package/dist/workers/ghostText.js +111 -0
  356. package/dist/workers/ghostTextView.js +449 -0
  357. package/dist/workers/glob.js +581 -0
  358. package/dist/workers/globalPointerMoveMonitor.js +83 -0
  359. package/dist/workers/glyphHoverComputer.js +40 -0
  360. package/dist/workers/glyphHoverController.js +171 -0
  361. package/dist/workers/glyphHoverWidget.js +184 -0
  362. package/dist/workers/glyphLanesModel.js +61 -0
  363. package/dist/workers/glyphMargin.js +403 -0
  364. package/dist/workers/glyphRasterizer.js +276 -0
  365. package/dist/workers/go.contribution.js +8 -0
  366. package/dist/workers/go.js +217 -0
  367. package/dist/workers/goToCommands.js +694 -0
  368. package/dist/workers/goToDefinitionAtPosition.js +267 -0
  369. package/dist/workers/goToSymbol.js +128 -0
  370. package/dist/workers/gotoError.js +272 -0
  371. package/dist/workers/gotoErrorWidget.js +352 -0
  372. package/dist/workers/gotoLineQuickAccess.js +183 -0
  373. package/dist/workers/gotoSymbolQuickAccess.js +395 -0
  374. package/dist/workers/gpuActions.js +126 -0
  375. package/dist/workers/gpuDisposable.js +48 -0
  376. package/dist/workers/gpuMark.js +80 -0
  377. package/dist/workers/gpuUtils.js +58 -0
  378. package/dist/workers/graph.js +74 -0
  379. package/dist/workers/graphql.contribution.js +9 -0
  380. package/dist/workers/graphql.js +150 -0
  381. package/dist/workers/guidesTextModelPart.js +405 -0
  382. package/dist/workers/gutterFeature.js +238 -0
  383. package/dist/workers/gutterIndicatorMenu.js +252 -0
  384. package/dist/workers/gutterIndicatorView.js +456 -0
  385. package/dist/workers/handlebars.contribution.js +9 -0
  386. package/dist/workers/handlebars.js +485 -0
  387. package/dist/workers/hash.js +256 -0
  388. package/dist/workers/hcl.contribution.js +8 -0
  389. package/dist/workers/hcl.js +182 -0
  390. package/dist/workers/helpQuickAccess.js +77 -0
  391. package/dist/workers/heuristicSequenceOptimizations.js +374 -0
  392. package/dist/workers/hiddenRangeModel.js +126 -0
  393. package/dist/workers/hideUnchangedRegionsFeature.js +433 -0
  394. package/dist/workers/hierarchicalKind.js +26 -0
  395. package/dist/workers/highlightDecorations.js +111 -0
  396. package/dist/workers/highlightedLabel.js +129 -0
  397. package/dist/workers/history.js +85 -0
  398. package/dist/workers/historyWidgetKeybindingHint.js +9 -0
  399. package/dist/workers/horizontalScrollbar.js +91 -0
  400. package/dist/workers/hotReloadHelpers.js +17 -0
  401. package/dist/workers/hover.js +11 -0
  402. package/dist/workers/hoverAccessibleViews.js +8 -0
  403. package/dist/workers/hoverActionIds.js +23 -0
  404. package/dist/workers/hoverActions.js +424 -0
  405. package/dist/workers/hoverColorPicker.js +14 -0
  406. package/dist/workers/hoverColorPickerContribution.js +44 -0
  407. package/dist/workers/hoverColorPickerParticipant.js +151 -0
  408. package/dist/workers/hoverContribution.js +56 -0
  409. package/dist/workers/hoverCopyButton.js +54 -0
  410. package/dist/workers/hoverDelegate2.js +39 -0
  411. package/dist/workers/hoverDelegateFactory.js +34 -0
  412. package/dist/workers/hoverOperation.js +168 -0
  413. package/dist/workers/hoverParticipant.js +161 -0
  414. package/dist/workers/hoverService.js +542 -0
  415. package/dist/workers/hoverTypes.js +64 -0
  416. package/dist/workers/hoverUtils.js +18 -0
  417. package/dist/workers/hoverWidget.js +93 -0
  418. package/dist/workers/html.contribution.js +9 -0
  419. package/dist/workers/html.js +374 -0
  420. package/dist/workers/htmlContent.js +164 -0
  421. package/dist/workers/htmlMode.js +213 -0
  422. package/dist/workers/htmlWorker.js +126 -0
  423. package/dist/workers/iPadShowKeyboard.js +74 -0
  424. package/dist/workers/iconLabel.js +291 -0
  425. package/dist/workers/iconLabels.js +33 -0
  426. package/dist/workers/iconRegistry.js +183 -0
  427. package/dist/workers/iconsStyleSheet.js +75 -0
  428. package/dist/workers/idGenerator.js +16 -0
  429. package/dist/workers/iframe.js +87 -0
  430. package/dist/workers/ime.js +33 -0
  431. package/dist/workers/inPlaceReplace.js +151 -0
  432. package/dist/workers/inPlaceReplaceCommand.js +27 -0
  433. package/dist/workers/indentGuides.js +254 -0
  434. package/dist/workers/indentRangeProvider.js +166 -0
  435. package/dist/workers/indentRules.js +63 -0
  436. package/dist/workers/indentUtils.js +33 -0
  437. package/dist/workers/indentation.js +100 -0
  438. package/dist/workers/indentationGuesser.js +178 -0
  439. package/dist/workers/indentationLineProcessor.js +193 -0
  440. package/dist/workers/index.js +21 -0
  441. package/dist/workers/indexTreeModel.js +538 -0
  442. package/dist/workers/ini.contribution.js +9 -0
  443. package/dist/workers/ini.js +70 -0
  444. package/dist/workers/initialize.js +11 -0
  445. package/dist/workers/inlayHints.js +147 -0
  446. package/dist/workers/inlayHintsContribution.js +11 -0
  447. package/dist/workers/inlayHintsController.js +686 -0
  448. package/dist/workers/inlayHintsHover.js +162 -0
  449. package/dist/workers/inlayHintsLocations.js +96 -0
  450. package/dist/workers/inlineCompletionContextKeys.js +23 -0
  451. package/dist/workers/inlineCompletions.contribution.js +31 -0
  452. package/dist/workers/inlineCompletionsAccessibleView.js +4 -0
  453. package/dist/workers/inlineCompletionsController.js +427 -0
  454. package/dist/workers/inlineCompletionsHintsWidget.js +356 -0
  455. package/dist/workers/inlineCompletionsModel.js +1048 -0
  456. package/dist/workers/inlineCompletionsService.js +170 -0
  457. package/dist/workers/inlineCompletionsSource.js +548 -0
  458. package/dist/workers/inlineCompletionsView.js +86 -0
  459. package/dist/workers/inlineDecorations.js +26 -0
  460. package/dist/workers/inlineDiffDeletedCodeMargin.js +138 -0
  461. package/dist/workers/inlineEdit.js +17 -0
  462. package/dist/workers/inlineEditWithChanges.js +30 -0
  463. package/dist/workers/inlineEditsCollapsedView.js +132 -0
  464. package/dist/workers/inlineEditsCustomView.js +256 -0
  465. package/dist/workers/inlineEditsDeletionView.js +178 -0
  466. package/dist/workers/inlineEditsInsertionView.js +267 -0
  467. package/dist/workers/inlineEditsLineReplacementView.js +329 -0
  468. package/dist/workers/inlineEditsModel.js +59 -0
  469. package/dist/workers/inlineEditsNewUsers.js +174 -0
  470. package/dist/workers/inlineEditsSideBySideView.js +517 -0
  471. package/dist/workers/inlineEditsView.js +561 -0
  472. package/dist/workers/inlineEditsViewInterface.js +21 -0
  473. package/dist/workers/inlineEditsViewProducer.js +119 -0
  474. package/dist/workers/inlineEditsWordReplacementView.js +211 -0
  475. package/dist/workers/inlineProgress.js +139 -0
  476. package/dist/workers/inlineSuggestionItem.js +497 -0
  477. package/dist/workers/inplaceReplaceSupport.js +87 -0
  478. package/dist/workers/inputBox.js +510 -0
  479. package/dist/workers/inputColors.js +66 -0
  480. package/dist/workers/inputMode.js +22 -0
  481. package/dist/workers/insertFinalNewLine.js +32 -0
  482. package/dist/workers/insertFinalNewLineCommand.js +39 -0
  483. package/dist/workers/inspectTokens.js +240 -0
  484. package/dist/workers/instantiation.js +44 -0
  485. package/dist/workers/instantiationService.js +403 -0
  486. package/dist/workers/intervalTree.js +1002 -0
  487. package/dist/workers/iterator.js +186 -0
  488. package/dist/workers/java.contribution.js +9 -0
  489. package/dist/workers/java.js +231 -0
  490. package/dist/workers/javascript.contribution.js +11 -0
  491. package/dist/workers/javascript.js +70 -0
  492. package/dist/workers/jsonContributionRegistry.js +42 -0
  493. package/dist/workers/jsonMode.js +224 -0
  494. package/dist/workers/jsonWorker.js +187 -0
  495. package/dist/workers/julia.contribution.js +8 -0
  496. package/dist/workers/julia.js +510 -0
  497. package/dist/workers/keyCodes.js +351 -0
  498. package/dist/workers/keybinding.js +9 -0
  499. package/dist/workers/keybindingCancellation.js +81 -0
  500. package/dist/workers/keybindingLabel.js +122 -0
  501. package/dist/workers/keybindingLabels.js +139 -0
  502. package/dist/workers/keybindingResolver.js +304 -0
  503. package/dist/workers/keybindings.js +104 -0
  504. package/dist/workers/keybindingsRegistry.js +111 -0
  505. package/dist/workers/keyboardEvent.js +125 -0
  506. package/dist/workers/korean.js +321 -0
  507. package/dist/workers/kotlin.contribution.js +9 -0
  508. package/dist/workers/kotlin.js +251 -0
  509. package/dist/workers/label.js +5 -0
  510. package/dist/workers/labels.js +15 -0
  511. package/dist/workers/language.js +9 -0
  512. package/dist/workers/languageBracketsConfiguration.js +133 -0
  513. package/dist/workers/languageConfiguration.js +138 -0
  514. package/dist/workers/languageConfigurationRegistry.js +361 -0
  515. package/dist/workers/languageFeatureDebounce.js +137 -0
  516. package/dist/workers/languageFeatureRegistry.js +180 -0
  517. package/dist/workers/languageFeatures.js +9 -0
  518. package/dist/workers/languageFeaturesService.js +47 -0
  519. package/dist/workers/languageSelector.js +112 -0
  520. package/dist/workers/languageService.js +92 -0
  521. package/dist/workers/languages.js +522 -0
  522. package/dist/workers/languagesAssociations.js +193 -0
  523. package/dist/workers/languagesRegistry.js +237 -0
  524. package/dist/workers/layoutService.js +9 -0
  525. package/dist/workers/lazy.js +49 -0
  526. package/dist/workers/lazyObservableValue.js +125 -0
  527. package/dist/workers/legacyLinesDiffComputer.js +468 -0
  528. package/dist/workers/length.js +129 -0
  529. package/dist/workers/less.contribution.js +9 -0
  530. package/dist/workers/less.js +160 -0
  531. package/dist/workers/lexon.contribution.js +8 -0
  532. package/dist/workers/lexon.js +156 -0
  533. package/dist/workers/lib.index.js +103 -0
  534. package/dist/workers/lib.js +1107 -0
  535. package/dist/workers/lifecycle.js +311 -0
  536. package/dist/workers/lightBulbWidget.js +427 -0
  537. package/dist/workers/lineCommentCommand.js +328 -0
  538. package/dist/workers/lineDecorations.js +208 -0
  539. package/dist/workers/lineEdit.js +75 -0
  540. package/dist/workers/lineHeights.js +370 -0
  541. package/dist/workers/lineNumbers.js +184 -0
  542. package/dist/workers/linePart.js +25 -0
  543. package/dist/workers/lineRange.js +312 -0
  544. package/dist/workers/lineSelection.js +36 -0
  545. package/dist/workers/lineSequence.js +36 -0
  546. package/dist/workers/lineTokens.js +405 -0
  547. package/dist/workers/linesDecorations.js +104 -0
  548. package/dist/workers/linesDiffComputer.js +29 -0
  549. package/dist/workers/linesDiffComputers.js +13 -0
  550. package/dist/workers/linesLayout.js +765 -0
  551. package/dist/workers/linesOperations.js +1187 -0
  552. package/dist/workers/linesSliceCharSequence.js +205 -0
  553. package/dist/workers/link.js +95 -0
  554. package/dist/workers/linkComputer.js +269 -0
  555. package/dist/workers/linkedEditing.js +381 -0
  556. package/dist/workers/linkedList.js +126 -0
  557. package/dist/workers/linkedText.js +48 -0
  558. package/dist/workers/links.js +376 -0
  559. package/dist/workers/liquid.contribution.js +9 -0
  560. package/dist/workers/liquid.js +306 -0
  561. package/dist/workers/list.js +11 -0
  562. package/dist/workers/listColors.js +51 -0
  563. package/dist/workers/listPaging.js +128 -0
  564. package/dist/workers/listService.js +1025 -0
  565. package/dist/workers/listView.js +1173 -0
  566. package/dist/workers/listWidget.js +1535 -0
  567. package/dist/workers/log.js +271 -0
  568. package/dist/workers/logService.js +40 -0
  569. package/dist/workers/logging.js +86 -0
  570. package/dist/workers/longLinesHelper.js +23 -0
  571. package/dist/workers/lspLanguageFeatures.js +716 -0
  572. package/dist/workers/lua.contribution.js +8 -0
  573. package/dist/workers/lua.js +161 -0
  574. package/dist/workers/m3.contribution.js +8 -0
  575. package/dist/workers/m3.js +209 -0
  576. package/dist/workers/map.js +670 -0
  577. package/dist/workers/margin.js +71 -0
  578. package/dist/workers/marginDecorations.js +84 -0
  579. package/dist/workers/markdown.contribution.js +8 -0
  580. package/dist/workers/markdown.js +228 -0
  581. package/dist/workers/markdownHoverParticipant.js +419 -0
  582. package/dist/workers/markdownRenderer.js +73 -0
  583. package/dist/workers/marked.js +2478 -0
  584. package/dist/workers/markerDecorations.js +9 -0
  585. package/dist/workers/markerDecorationsService.js +248 -0
  586. package/dist/workers/markerHoverParticipant.js +270 -0
  587. package/dist/workers/markerNavigationService.js +223 -0
  588. package/dist/workers/markerService.js +330 -0
  589. package/dist/workers/markers.js +127 -0
  590. package/dist/workers/marshalling.js +62 -0
  591. package/dist/workers/mdx.contribution.js +8 -0
  592. package/dist/workers/mdx.js +230 -0
  593. package/dist/workers/menu.js +1147 -0
  594. package/dist/workers/menuColors.js +19 -0
  595. package/dist/workers/menuEntryActionViewItem.js +519 -0
  596. package/dist/workers/menuService.js +436 -0
  597. package/dist/workers/messageController.js +186 -0
  598. package/dist/workers/middleScroll.contribution.js +8 -0
  599. package/dist/workers/middleScrollController.js +128 -0
  600. package/dist/workers/migrateOptions.js +220 -0
  601. package/dist/workers/mime.js +11 -0
  602. package/dist/workers/minimap.js +1662 -0
  603. package/dist/workers/minimapCharRenderer.js +90 -0
  604. package/dist/workers/minimapCharRendererFactory.js +136 -0
  605. package/dist/workers/minimapCharSheet.js +25 -0
  606. package/dist/workers/minimapColors.js +23 -0
  607. package/dist/workers/minimapPreBaked.js +52 -0
  608. package/dist/workers/minimapTokensColorTracker.js +58 -0
  609. package/dist/workers/mips.contribution.js +9 -0
  610. package/dist/workers/mips.js +197 -0
  611. package/dist/workers/mirrorTextModel.js +117 -0
  612. package/dist/workers/miscColors.js +32 -0
  613. package/dist/workers/model.js +9 -0
  614. package/dist/workers/modelLineProjection.js +350 -0
  615. package/dist/workers/modelLineProjectionData.js +297 -0
  616. package/dist/workers/modelService.js +413 -0
  617. package/dist/workers/modesRegistry.js +75 -0
  618. package/dist/workers/monaco.contribution.js +302 -0
  619. package/dist/workers/monarchCommon.js +147 -0
  620. package/dist/workers/monarchCompile.js +546 -0
  621. package/dist/workers/monarchLexer.js +764 -0
  622. package/dist/workers/monospaceLineBreaksComputer.js +473 -0
  623. package/dist/workers/mouseCursor.js +9 -0
  624. package/dist/workers/mouseEvent.js +153 -0
  625. package/dist/workers/mouseHandler.js +539 -0
  626. package/dist/workers/mouseTarget.js +978 -0
  627. package/dist/workers/moveCaretCommand.js +49 -0
  628. package/dist/workers/moveLinesCommand.js +394 -0
  629. package/dist/workers/movedBlocksLinesFeature.js +277 -0
  630. package/dist/workers/msdax.contribution.js +8 -0
  631. package/dist/workers/msdax.js +374 -0
  632. package/dist/workers/multiDiffEditorWidget.js +43 -0
  633. package/dist/workers/multiDiffEditorWidgetImpl.js +427 -0
  634. package/dist/workers/multicursor.js +1004 -0
  635. package/dist/workers/myersDiffAlgorithm.js +159 -0
  636. package/dist/workers/mysql.contribution.js +8 -0
  637. package/dist/workers/mysql.js +877 -0
  638. package/dist/workers/nativeEditContext.js +518 -0
  639. package/dist/workers/nativeEditContextRegistry.js +23 -0
  640. package/dist/workers/nativeEditContextUtils.js +85 -0
  641. package/dist/workers/navigator.js +36 -0
  642. package/dist/workers/network.js +267 -0
  643. package/dist/workers/nls.js +76 -0
  644. package/dist/workers/nls.messages.js +18 -0
  645. package/dist/workers/nodeReader.js +127 -0
  646. package/dist/workers/normalization.js +41 -0
  647. package/dist/workers/notification.js +9 -0
  648. package/dist/workers/nullTokenize.js +29 -0
  649. package/dist/workers/numbers.js +45 -0
  650. package/dist/workers/objectCollectionBuffer.js +102 -0
  651. package/dist/workers/objectPool.js +47 -0
  652. package/dist/workers/objectTree.js +204 -0
  653. package/dist/workers/objectTreeModel.js +220 -0
  654. package/dist/workers/objective-c.contribution.js +8 -0
  655. package/dist/workers/objective-c.js +182 -0
  656. package/dist/workers/objects.js +152 -0
  657. package/dist/workers/observableCodeEditor.js +373 -0
  658. package/dist/workers/observableFromEvent.js +123 -0
  659. package/dist/workers/observableSignal.js +47 -0
  660. package/dist/workers/observableSignalFromEvent.js +41 -0
  661. package/dist/workers/observableValue.js +105 -0
  662. package/dist/workers/observableValueOpts.js +20 -0
  663. package/dist/workers/offsetRange.js +225 -0
  664. package/dist/workers/onEnter.js +109 -0
  665. package/dist/workers/oneCursor.js +117 -0
  666. package/dist/workers/opener.js +43 -0
  667. package/dist/workers/openerService.js +222 -0
  668. package/dist/workers/originalEditorInlineDiffView.js +215 -0
  669. package/dist/workers/outlineModel.js +265 -0
  670. package/dist/workers/overlayWidgets.js +181 -0
  671. package/dist/workers/overviewRuler.js +134 -0
  672. package/dist/workers/overviewRulerFeature.js +168 -0
  673. package/dist/workers/overviewZoneManager.js +176 -0
  674. package/dist/workers/parameterHints.js +126 -0
  675. package/dist/workers/parameterHintsModel.js +258 -0
  676. package/dist/workers/parameterHintsWidget.js +318 -0
  677. package/dist/workers/parser.js +121 -0
  678. package/dist/workers/pascal.contribution.js +9 -0
  679. package/dist/workers/pascal.js +250 -0
  680. package/dist/workers/pascaligo.contribution.js +8 -0
  681. package/dist/workers/pascaligo.js +163 -0
  682. package/dist/workers/path.js +1451 -0
  683. package/dist/workers/peekView.js +246 -0
  684. package/dist/workers/performance.js +222 -0
  685. package/dist/workers/perl.contribution.js +8 -0
  686. package/dist/workers/perl.js +625 -0
  687. package/dist/workers/pgsql.contribution.js +8 -0
  688. package/dist/workers/pgsql.js +850 -0
  689. package/dist/workers/php.contribution.js +9 -0
  690. package/dist/workers/php.js +499 -0
  691. package/dist/workers/pickerQuickAccess.js +271 -0
  692. package/dist/workers/pieceTreeBase.js +1473 -0
  693. package/dist/workers/pieceTreeTextBuffer.js +461 -0
  694. package/dist/workers/pieceTreeTextBufferBuilder.js +140 -0
  695. package/dist/workers/pixelRatio.js +88 -0
  696. package/dist/workers/pla.contribution.js +7 -0
  697. package/dist/workers/pla.js +136 -0
  698. package/dist/workers/placeholderText.contribution.js +14 -0
  699. package/dist/workers/placeholderTextContribution.js +77 -0
  700. package/dist/workers/platform.js +32 -0
  701. package/dist/workers/platformObservableUtils.js +31 -0
  702. package/dist/workers/point.js +50 -0
  703. package/dist/workers/pointerHandler.js +132 -0
  704. package/dist/workers/position.js +142 -0
  705. package/dist/workers/positionToOffset.js +17 -0
  706. package/dist/workers/positionToOffsetImpl.js +98 -0
  707. package/dist/workers/postEditWidget.js +220 -0
  708. package/dist/workers/postiats.contribution.js +8 -0
  709. package/dist/workers/postiats.js +906 -0
  710. package/dist/workers/powerquery.contribution.js +8 -0
  711. package/dist/workers/powerquery.js +889 -0
  712. package/dist/workers/powershell.contribution.js +8 -0
  713. package/dist/workers/powershell.js +238 -0
  714. package/dist/workers/prefixSumComputer.js +226 -0
  715. package/dist/workers/process.js +61 -0
  716. package/dist/workers/product.js +70 -0
  717. package/dist/workers/productService.js +9 -0
  718. package/dist/workers/progress.js +16 -0
  719. package/dist/workers/progressbar.js +105 -0
  720. package/dist/workers/promise.js +56 -0
  721. package/dist/workers/protobuf.contribution.js +8 -0
  722. package/dist/workers/protobuf.js +419 -0
  723. package/dist/workers/provideInlineCompletions.js +372 -0
  724. package/dist/workers/provideSignatureHelp.js +59 -0
  725. package/dist/workers/pug.contribution.js +8 -0
  726. package/dist/workers/pug.js +401 -0
  727. package/dist/workers/python.contribution.js +9 -0
  728. package/dist/workers/python.js +366 -0
  729. package/dist/workers/qsharp.contribution.js +8 -0
  730. package/dist/workers/qsharp.js +300 -0
  731. package/dist/workers/quickAccess.js +56 -0
  732. package/dist/workers/quickInput.js +108 -0
  733. package/dist/workers/quickInputActions.js +189 -0
  734. package/dist/workers/quickInputBox.js +104 -0
  735. package/dist/workers/quickInputController.js +901 -0
  736. package/dist/workers/quickInputDelegate.js +19 -0
  737. package/dist/workers/quickInputList.js +1391 -0
  738. package/dist/workers/quickInputService.js +197 -0
  739. package/dist/workers/quickInputTree.js +37 -0
  740. package/dist/workers/quickInputTreeAccessibilityProvider.js +39 -0
  741. package/dist/workers/quickInputTreeController.js +181 -0
  742. package/dist/workers/quickInputTreeFilter.js +42 -0
  743. package/dist/workers/quickInputTreeRenderer.js +141 -0
  744. package/dist/workers/quickInputTreeSorter.js +48 -0
  745. package/dist/workers/quickInputUtils.js +89 -0
  746. package/dist/workers/quickpickColors.js +21 -0
  747. package/dist/workers/r.contribution.js +8 -0
  748. package/dist/workers/r.js +242 -0
  749. package/dist/workers/range.js +421 -0
  750. package/dist/workers/rangeMap.js +161 -0
  751. package/dist/workers/rangeMapping.js +229 -0
  752. package/dist/workers/rangeSingleLine.js +17 -0
  753. package/dist/workers/rangeUtil.js +117 -0
  754. package/dist/workers/razor.contribution.js +9 -0
  755. package/dist/workers/razor.js +616 -0
  756. package/dist/workers/rbTreeBase.js +362 -0
  757. package/dist/workers/rect.js +163 -0
  758. package/dist/workers/rectangleRenderer.js +214 -0
  759. package/dist/workers/rectangleRenderer.wgsl.js +68 -0
  760. package/dist/workers/redis.contribution.js +8 -0
  761. package/dist/workers/redis.js +301 -0
  762. package/dist/workers/redshift.contribution.js +8 -0
  763. package/dist/workers/redshift.js +808 -0
  764. package/dist/workers/reducer.js +46 -0
  765. package/dist/workers/referencesController.js +382 -0
  766. package/dist/workers/referencesModel.js +241 -0
  767. package/dist/workers/referencesTree.js +200 -0
  768. package/dist/workers/referencesWidget.js +525 -0
  769. package/dist/workers/registrations.contribution.js +82 -0
  770. package/dist/workers/rename.js +458 -0
  771. package/dist/workers/renameWidget.js +741 -0
  772. package/dist/workers/renderLines.js +185 -0
  773. package/dist/workers/renderingContext.js +118 -0
  774. package/dist/workers/replaceAllCommand.js +54 -0
  775. package/dist/workers/replaceCommand.js +158 -0
  776. package/dist/workers/replaceInput.js +176 -0
  777. package/dist/workers/replacePattern.js +289 -0
  778. package/dist/workers/replaceWidgetHistory.js +85 -0
  779. package/dist/workers/resizable.js +150 -0
  780. package/dist/workers/resizableContentWidget.js +92 -0
  781. package/dist/workers/resolvedKeybindingItem.js +35 -0
  782. package/dist/workers/resolverService.js +5 -0
  783. package/dist/workers/resources.js +231 -0
  784. package/dist/workers/restructuredtext.contribution.js +8 -0
  785. package/dist/workers/restructuredtext.js +173 -0
  786. package/dist/workers/revertButtonsFeature.js +149 -0
  787. package/dist/workers/rgba.js +35 -0
  788. package/dist/workers/richEditBrackets.js +356 -0
  789. package/dist/workers/rowCache.js +110 -0
  790. package/dist/workers/rpc.js +57 -0
  791. package/dist/workers/ruby.contribution.js +9 -0
  792. package/dist/workers/ruby.js +510 -0
  793. package/dist/workers/rulers.js +82 -0
  794. package/dist/workers/rulersGpu.js +66 -0
  795. package/dist/workers/runOnChange.js +61 -0
  796. package/dist/workers/rust.contribution.js +8 -0
  797. package/dist/workers/rust.js +342 -0
  798. package/dist/workers/sash.js +451 -0
  799. package/dist/workers/sb.contribution.js +8 -0
  800. package/dist/workers/sb.js +114 -0
  801. package/dist/workers/scala.contribution.js +9 -0
  802. package/dist/workers/scala.js +369 -0
  803. package/dist/workers/scanner.js +287 -0
  804. package/dist/workers/scheme.contribution.js +8 -0
  805. package/dist/workers/scheme.js +107 -0
  806. package/dist/workers/screenReaderContentRich.js +337 -0
  807. package/dist/workers/screenReaderContentSimple.js +194 -0
  808. package/dist/workers/screenReaderSupport.js +175 -0
  809. package/dist/workers/screenReaderUtils.js +111 -0
  810. package/dist/workers/scrollDecoration.js +70 -0
  811. package/dist/workers/scrollable.js +323 -0
  812. package/dist/workers/scrollableElement.js +603 -0
  813. package/dist/workers/scrollbarArrow.js +78 -0
  814. package/dist/workers/scrollbarState.js +163 -0
  815. package/dist/workers/scrollbarVisibilityController.js +93 -0
  816. package/dist/workers/scss.contribution.js +9 -0
  817. package/dist/workers/scss.js +259 -0
  818. package/dist/workers/search.js +52 -0
  819. package/dist/workers/searchColors.js +13 -0
  820. package/dist/workers/sectionHeaders.js +179 -0
  821. package/dist/workers/selectBox.js +47 -0
  822. package/dist/workers/selectBoxCustom.js +858 -0
  823. package/dist/workers/selectBoxNative.js +142 -0
  824. package/dist/workers/selection.js +145 -0
  825. package/dist/workers/selections.js +338 -0
  826. package/dist/workers/semanticTokensConfig.js +14 -0
  827. package/dist/workers/semanticTokensDto.js +82 -0
  828. package/dist/workers/semanticTokensProviderStyling.js +263 -0
  829. package/dist/workers/semanticTokensStyling.js +9 -0
  830. package/dist/workers/semanticTokensStylingService.js +47 -0
  831. package/dist/workers/serviceCollection.js +22 -0
  832. package/dist/workers/severity.js +52 -0
  833. package/dist/workers/severityIcon.js +29 -0
  834. package/dist/workers/shell.contribution.js +8 -0
  835. package/dist/workers/shell.js +220 -0
  836. package/dist/workers/shiftCommand.js +241 -0
  837. package/dist/workers/singleTextEditHelpers.js +32 -0
  838. package/dist/workers/smallImmutableSet.js +108 -0
  839. package/dist/workers/smartSelect.js +281 -0
  840. package/dist/workers/snippetController2.js +297 -0
  841. package/dist/workers/snippetParser.js +890 -0
  842. package/dist/workers/snippetSession.js +650 -0
  843. package/dist/workers/snippetVariables.js +323 -0
  844. package/dist/workers/solidity.contribution.js +8 -0
  845. package/dist/workers/solidity.js +1366 -0
  846. package/dist/workers/sophia.contribution.js +8 -0
  847. package/dist/workers/sophia.js +198 -0
  848. package/dist/workers/sortLinesCommand.js +81 -0
  849. package/dist/workers/sparql.contribution.js +8 -0
  850. package/dist/workers/sparql.js +200 -0
  851. package/dist/workers/sparseMultilineTokens.js +548 -0
  852. package/dist/workers/sparseTokensStore.js +210 -0
  853. package/dist/workers/splice.js +14 -0
  854. package/dist/workers/splitview.js +829 -0
  855. package/dist/workers/sql.contribution.js +8 -0
  856. package/dist/workers/sql.js +852 -0
  857. package/dist/workers/st.contribution.js +8 -0
  858. package/dist/workers/st.js +415 -0
  859. package/dist/workers/stableEditorScroll.js +52 -0
  860. package/dist/workers/standaloneCodeEditor.js +335 -0
  861. package/dist/workers/standaloneCodeEditorService.js +96 -0
  862. package/dist/workers/standaloneColorPickerActions.js +81 -0
  863. package/dist/workers/standaloneColorPickerController.js +62 -0
  864. package/dist/workers/standaloneColorPickerParticipant.js +117 -0
  865. package/dist/workers/standaloneColorPickerWidget.js +215 -0
  866. package/dist/workers/standaloneCommandsQuickAccess.js +82 -0
  867. package/dist/workers/standaloneEditor.js +519 -0
  868. package/dist/workers/standaloneEnums.js +1017 -0
  869. package/dist/workers/standaloneGotoLineQuickAccess.js +67 -0
  870. package/dist/workers/standaloneGotoSymbolQuickAccess.js +77 -0
  871. package/dist/workers/standaloneHelpQuickAccess.js +14 -0
  872. package/dist/workers/standaloneLanguages.js +621 -0
  873. package/dist/workers/standaloneLayoutService.js +74 -0
  874. package/dist/workers/standaloneQuickInputService.js +150 -0
  875. package/dist/workers/standaloneReferenceSearch.js +38 -0
  876. package/dist/workers/standaloneServices.js +787 -0
  877. package/dist/workers/standaloneStrings.js +42 -0
  878. package/dist/workers/standaloneTheme.js +9 -0
  879. package/dist/workers/standaloneThemeService.js +367 -0
  880. package/dist/workers/standaloneTreeSitterLibraryService.js +23 -0
  881. package/dist/workers/standaloneWebWorker.js +55 -0
  882. package/dist/workers/stickyScrollActions.js +132 -0
  883. package/dist/workers/stickyScrollContribution.js +16 -0
  884. package/dist/workers/stickyScrollController.js +566 -0
  885. package/dist/workers/stickyScrollElement.js +39 -0
  886. package/dist/workers/stickyScrollModelProvider.js +338 -0
  887. package/dist/workers/stickyScrollProvider.js +197 -0
  888. package/dist/workers/stickyScrollWidget.js +474 -0
  889. package/dist/workers/stopwatch.js +30 -0
  890. package/dist/workers/storage.js +200 -0
  891. package/dist/workers/stringBuilder.js +122 -0
  892. package/dist/workers/stringEdit.js +165 -0
  893. package/dist/workers/strings.js +834 -0
  894. package/dist/workers/structuredLogger.js +56 -0
  895. package/dist/workers/suggest.js +322 -0
  896. package/dist/workers/suggestAlternatives.js +95 -0
  897. package/dist/workers/suggestCommitCharacters.js +59 -0
  898. package/dist/workers/suggestController.js +941 -0
  899. package/dist/workers/suggestInlineCompletions.js +193 -0
  900. package/dist/workers/suggestMemory.js +254 -0
  901. package/dist/workers/suggestModel.js +667 -0
  902. package/dist/workers/suggestOvertypingCapturer.js +62 -0
  903. package/dist/workers/suggestWidget.js +890 -0
  904. package/dist/workers/suggestWidgetAdapter.js +210 -0
  905. package/dist/workers/suggestWidgetDetails.js +393 -0
  906. package/dist/workers/suggestWidgetRenderer.js +208 -0
  907. package/dist/workers/suggestWidgetStatus.js +74 -0
  908. package/dist/workers/supports.js +58 -0
  909. package/dist/workers/surroundSelectionCommand.js +44 -0
  910. package/dist/workers/swift.contribution.js +9 -0
  911. package/dist/workers/swift.js +311 -0
  912. package/dist/workers/symbolIcons.js +101 -0
  913. package/dist/workers/symbolNavigation.js +178 -0
  914. package/dist/workers/symbols.js +10 -0
  915. package/dist/workers/syntaxRangeProvider.js +177 -0
  916. package/dist/workers/systemverilog.contribution.js +14 -0
  917. package/dist/workers/systemverilog.js +575 -0
  918. package/dist/workers/tabFocus.js +29 -0
  919. package/dist/workers/tableWidget.js +181 -0
  920. package/dist/workers/taskQueue.js +116 -0
  921. package/dist/workers/tcl.contribution.js +8 -0
  922. package/dist/workers/tcl.js +231 -0
  923. package/dist/workers/telemetry.js +9 -0
  924. package/dist/workers/ternarySearchTree.js +674 -0
  925. package/dist/workers/textAreaEditContext.js +720 -0
  926. package/dist/workers/textAreaEditContextInput.js +588 -0
  927. package/dist/workers/textAreaEditContextState.js +160 -0
  928. package/dist/workers/textChange.js +248 -0
  929. package/dist/workers/textEdit.js +269 -0
  930. package/dist/workers/textLength.js +87 -0
  931. package/dist/workers/textModel.js +2031 -0
  932. package/dist/workers/textModelBracketPairs.js +45 -0
  933. package/dist/workers/textModelDefaults.js +18 -0
  934. package/dist/workers/textModelEditSource.js +166 -0
  935. package/dist/workers/textModelEvents.js +216 -0
  936. package/dist/workers/textModelGuides.js +40 -0
  937. package/dist/workers/textModelPart.js +23 -0
  938. package/dist/workers/textModelSearch.js +455 -0
  939. package/dist/workers/textModelStringEdit.js +11 -0
  940. package/dist/workers/textModelSync.impl.js +307 -0
  941. package/dist/workers/textModelText.js +26 -0
  942. package/dist/workers/textModelTokens.js +436 -0
  943. package/dist/workers/textResourceConfiguration.js +6 -0
  944. package/dist/workers/textToHtmlTokenizer.js +139 -0
  945. package/dist/workers/textualHighlightProvider.js +78 -0
  946. package/dist/workers/textureAtlas.js +179 -0
  947. package/dist/workers/textureAtlasPage.js +110 -0
  948. package/dist/workers/textureAtlasShelfAllocator.js +129 -0
  949. package/dist/workers/textureAtlasSlabAllocator.js +346 -0
  950. package/dist/workers/tfIdf.js +179 -0
  951. package/dist/workers/themables.js +100 -0
  952. package/dist/workers/theme.js +110 -0
  953. package/dist/workers/themeService.js +67 -0
  954. package/dist/workers/themes.js +242 -0
  955. package/dist/workers/toggle.js +242 -0
  956. package/dist/workers/toggleHighContrast.js +35 -0
  957. package/dist/workers/toggleTabFocusMode.js +42 -0
  958. package/dist/workers/tokenStore.js +407 -0
  959. package/dist/workers/tokenWithTextArray.js +73 -0
  960. package/dist/workers/tokenization.js +29 -0
  961. package/dist/workers/tokenizationRegistry.js +123 -0
  962. package/dist/workers/tokenizationTextModelPart.js +275 -0
  963. package/dist/workers/tokenizer.js +301 -0
  964. package/dist/workers/tokenizerSyntaxTokenBackend.js +261 -0
  965. package/dist/workers/toolbar.js +244 -0
  966. package/dist/workers/touch.js +270 -0
  967. package/dist/workers/transaction.js +109 -0
  968. package/dist/workers/transpose.js +65 -0
  969. package/dist/workers/tree.js +45 -0
  970. package/dist/workers/treeSitterLibraryService.js +9 -0
  971. package/dist/workers/treeSitterSyntaxTokenBackend.js +167 -0
  972. package/dist/workers/treeSitterThemeService.js +9 -0
  973. package/dist/workers/treeSitterTokenizationImpl.js +713 -0
  974. package/dist/workers/treeSitterTree.js +395 -0
  975. package/dist/workers/treeViewsDnd.js +24 -0
  976. package/dist/workers/treeViewsDndService.js +12 -0
  977. package/dist/workers/triggerInlineEditCommandsRegistry.js +18 -0
  978. package/dist/workers/trimTrailingWhitespaceCommand.js +98 -0
  979. package/dist/workers/trustedTypes.js +29 -0
  980. package/dist/workers/tsMode.js +212 -0
  981. package/dist/workers/tsWorker.js +352 -0
  982. package/dist/workers/twig.contribution.js +9 -0
  983. package/dist/workers/twig.js +391 -0
  984. package/dist/workers/types.js +144 -0
  985. package/dist/workers/typescript.contribution.js +11 -0
  986. package/dist/workers/typescript.js +408 -0
  987. package/dist/workers/typescriptServices.js +210154 -0
  988. package/dist/workers/typescriptServicesMetadata.js +3 -0
  989. package/dist/workers/typespec.contribution.js +8 -0
  990. package/dist/workers/typespec.js +126 -0
  991. package/dist/workers/typingSpeed.js +165 -0
  992. package/dist/workers/uint.js +24 -0
  993. package/dist/workers/undoRedo.js +43 -0
  994. package/dist/workers/undoRedoService.js +1076 -0
  995. package/dist/workers/unicodeHighlighter.js +673 -0
  996. package/dist/workers/unicodeTextModelHighlighter.js +188 -0
  997. package/dist/workers/unusualLineTerminators.js +113 -0
  998. package/dist/workers/updatableHoverWidget.js +107 -0
  999. package/dist/workers/uri.js +606 -0
  1000. package/dist/workers/usLayoutResolvedKeybinding.js +175 -0
  1001. package/dist/workers/utils.js +209 -0
  1002. package/dist/workers/utilsCancellation.js +63 -0
  1003. package/dist/workers/uuid.js +53 -0
  1004. package/dist/workers/validation.js +159 -0
  1005. package/dist/workers/vb.contribution.js +8 -0
  1006. package/dist/workers/vb.js +371 -0
  1007. package/dist/workers/verticalScrollbar.js +94 -0
  1008. package/dist/workers/view.js +720 -0
  1009. package/dist/workers/viewContext.js +22 -0
  1010. package/dist/workers/viewController.js +274 -0
  1011. package/dist/workers/viewCursor.js +218 -0
  1012. package/dist/workers/viewCursors.js +339 -0
  1013. package/dist/workers/viewEventHandler.js +186 -0
  1014. package/dist/workers/viewEvents.js +180 -0
  1015. package/dist/workers/viewGpuContext.js +241 -0
  1016. package/dist/workers/viewLayer.js +478 -0
  1017. package/dist/workers/viewLayout.js +368 -0
  1018. package/dist/workers/viewLine.js +544 -0
  1019. package/dist/workers/viewLineOptions.js +43 -0
  1020. package/dist/workers/viewLineRenderer.js +948 -0
  1021. package/dist/workers/viewLines.js +721 -0
  1022. package/dist/workers/viewLinesGpu.js +571 -0
  1023. package/dist/workers/viewLinesViewportData.js +30 -0
  1024. package/dist/workers/viewModel.js +98 -0
  1025. package/dist/workers/viewModelDecoration.js +55 -0
  1026. package/dist/workers/viewModelDecorations.js +132 -0
  1027. package/dist/workers/viewModelEventDispatcher.js +398 -0
  1028. package/dist/workers/viewModelImpl.js +1163 -0
  1029. package/dist/workers/viewModelLines.js +938 -0
  1030. package/dist/workers/viewOverlays.js +204 -0
  1031. package/dist/workers/viewPart.js +49 -0
  1032. package/dist/workers/viewUserInputEvents.js +91 -0
  1033. package/dist/workers/viewZones.js +335 -0
  1034. package/dist/workers/viewportRenderStrategy.js +316 -0
  1035. package/dist/workers/viewportSemanticTokens.js +166 -0
  1036. package/dist/workers/webWorker.js +396 -0
  1037. package/dist/workers/webWorkerBootstrap.js +20 -0
  1038. package/dist/workers/webWorkerFactory.js +171 -0
  1039. package/dist/workers/wgsl.contribution.js +8 -0
  1040. package/dist/workers/wgsl.js +452 -0
  1041. package/dist/workers/whitespace.js +277 -0
  1042. package/dist/workers/widget.js +44 -0
  1043. package/dist/workers/window.js +60 -0
  1044. package/dist/workers/wordCharacterClassifier.js +87 -0
  1045. package/dist/workers/wordContextKey.js +69 -0
  1046. package/dist/workers/wordDistance.js +64 -0
  1047. package/dist/workers/wordHelper.js +127 -0
  1048. package/dist/workers/wordHighlighter.js +796 -0
  1049. package/dist/workers/wordOperations.js +442 -0
  1050. package/dist/workers/wordPartOperations.js +145 -0
  1051. package/dist/workers/wordSelections.js +82 -0
  1052. package/dist/workers/workerManager.js +147 -0
  1053. package/dist/workers/workers.js +141 -0
  1054. package/dist/workers/workspace.js +84 -0
  1055. package/dist/workers/workspaceTrust.js +9 -0
  1056. package/dist/workers/wrapInHotClass.js +41 -0
  1057. package/dist/workers/wrapInReloadableClass.js +35 -0
  1058. package/dist/workers/xml.contribution.js +28 -0
  1059. package/dist/workers/xml.js +160 -0
  1060. package/dist/workers/yaml.contribution.js +9 -0
  1061. package/dist/workers/yaml.js +271 -0
  1062. package/dist/workers/zoneWidget.js +406 -0
  1063. package/package.json +2 -2
  1064. package/dist/assets/css.worker-C7FogG4G.js +0 -93
  1065. package/dist/assets/editor.worker-iXcRX1Tq.js +0 -26
  1066. package/dist/assets/html.worker-C8VxctEJ.js +0 -470
  1067. package/dist/assets/json.worker-CMC9kgPL.js +0 -58
  1068. package/dist/assets/ts.worker-CtTJ3hNN.js +0 -67731
@@ -0,0 +1,1454 @@
1
+ import './browser.js';
2
+ import { BrowserFeatures } from './canIUse.js';
3
+ import { StandardKeyboardEvent } from './keyboardEvent.js';
4
+ import { StandardMouseEvent } from './mouseEvent.js';
5
+ import { IntervalTimer, _runWhenIdle, AbstractIdleValue } from '../common/async.js';
6
+ import { BugIndicatingError, onUnexpectedError } from '../common/errors.js';
7
+ import { Emitter, Event } from '../common/event.js';
8
+ import { DisposableStore, Disposable, toDisposable } from '../common/lifecycle.js';
9
+ import { RemoteAuthorities } from '../common/network.js';
10
+ import { isIOS } from '../common/platform.js';
11
+ import { hash } from '../common/hash.js';
12
+ import { ensureCodeWindow, mainWindow } from './window.js';
13
+ import '../common/observableInternal/index.js';
14
+ import { observableValue } from '../common/observableInternal/observables/observableValue.js';
15
+ import { derived, derivedOpts } from '../common/observableInternal/observables/derived.js';
16
+
17
+ /*---------------------------------------------------------------------------------------------
18
+ * Copyright (c) Microsoft Corporation. All rights reserved.
19
+ * Licensed under the MIT License. See License.txt in the project root for license information.
20
+ *--------------------------------------------------------------------------------------------*/
21
+ //# region Multi-Window Support Utilities
22
+ const { getWindow, getDocument, getWindows, getWindowsCount, getWindowId, getWindowById, onDidRegisterWindow, onWillUnregisterWindow, onDidUnregisterWindow } = (function () {
23
+ const windows = new Map();
24
+ ensureCodeWindow(mainWindow, 1);
25
+ const mainWindowRegistration = { window: mainWindow, disposables: new DisposableStore() };
26
+ windows.set(mainWindow.vscodeWindowId, mainWindowRegistration);
27
+ const onDidRegisterWindow = new Emitter();
28
+ const onDidUnregisterWindow = new Emitter();
29
+ const onWillUnregisterWindow = new Emitter();
30
+ function getWindowById(windowId, fallbackToMain) {
31
+ const window = typeof windowId === 'number' ? windows.get(windowId) : undefined;
32
+ return window ?? (fallbackToMain ? mainWindowRegistration : undefined);
33
+ }
34
+ return {
35
+ onDidRegisterWindow: onDidRegisterWindow.event,
36
+ onWillUnregisterWindow: onWillUnregisterWindow.event,
37
+ onDidUnregisterWindow: onDidUnregisterWindow.event,
38
+ registerWindow(window) {
39
+ if (windows.has(window.vscodeWindowId)) {
40
+ return Disposable.None;
41
+ }
42
+ const disposables = new DisposableStore();
43
+ const registeredWindow = {
44
+ window,
45
+ disposables: disposables.add(new DisposableStore())
46
+ };
47
+ windows.set(window.vscodeWindowId, registeredWindow);
48
+ disposables.add(toDisposable(() => {
49
+ windows.delete(window.vscodeWindowId);
50
+ onDidUnregisterWindow.fire(window);
51
+ }));
52
+ disposables.add(addDisposableListener(window, EventType.BEFORE_UNLOAD, () => {
53
+ onWillUnregisterWindow.fire(window);
54
+ }));
55
+ onDidRegisterWindow.fire(registeredWindow);
56
+ return disposables;
57
+ },
58
+ getWindows() {
59
+ return windows.values();
60
+ },
61
+ getWindowsCount() {
62
+ return windows.size;
63
+ },
64
+ getWindowId(targetWindow) {
65
+ return targetWindow.vscodeWindowId;
66
+ },
67
+ hasWindow(windowId) {
68
+ return windows.has(windowId);
69
+ },
70
+ getWindowById,
71
+ getWindow(e) {
72
+ const candidateNode = e;
73
+ if (candidateNode?.ownerDocument?.defaultView) {
74
+ return candidateNode.ownerDocument.defaultView.window;
75
+ }
76
+ const candidateEvent = e;
77
+ if (candidateEvent?.view) {
78
+ return candidateEvent.view.window;
79
+ }
80
+ return mainWindow;
81
+ },
82
+ getDocument(e) {
83
+ const candidateNode = e;
84
+ return getWindow(candidateNode).document;
85
+ }
86
+ };
87
+ })();
88
+ //#endregion
89
+ function clearNode(node) {
90
+ while (node.firstChild) {
91
+ node.firstChild.remove();
92
+ }
93
+ }
94
+ class DomListener {
95
+ constructor(node, type, handler, options) {
96
+ this._node = node;
97
+ this._type = type;
98
+ this._handler = handler;
99
+ this._options = (options || false);
100
+ this._node.addEventListener(this._type, this._handler, this._options);
101
+ }
102
+ dispose() {
103
+ if (!this._handler) {
104
+ // Already disposed
105
+ return;
106
+ }
107
+ this._node.removeEventListener(this._type, this._handler, this._options);
108
+ // Prevent leakers from holding on to the dom or handler func
109
+ this._node = null;
110
+ this._handler = null;
111
+ }
112
+ }
113
+ function addDisposableListener(node, type, handler, useCaptureOrOptions) {
114
+ return new DomListener(node, type, handler, useCaptureOrOptions);
115
+ }
116
+ function _wrapAsStandardMouseEvent(targetWindow, handler) {
117
+ return function (e) {
118
+ return handler(new StandardMouseEvent(targetWindow, e));
119
+ };
120
+ }
121
+ function _wrapAsStandardKeyboardEvent(handler) {
122
+ return function (e) {
123
+ return handler(new StandardKeyboardEvent(e));
124
+ };
125
+ }
126
+ const addStandardDisposableListener = function addStandardDisposableListener(node, type, handler, useCapture) {
127
+ let wrapHandler = handler;
128
+ if (type === 'click' || type === 'mousedown' || type === 'contextmenu') {
129
+ wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);
130
+ }
131
+ else if (type === 'keydown' || type === 'keypress' || type === 'keyup') {
132
+ wrapHandler = _wrapAsStandardKeyboardEvent(handler);
133
+ }
134
+ return addDisposableListener(node, type, wrapHandler, useCapture);
135
+ };
136
+ const addStandardDisposableGenericMouseDownListener = function addStandardDisposableListener(node, handler, useCapture) {
137
+ const wrapHandler = _wrapAsStandardMouseEvent(getWindow(node), handler);
138
+ return addDisposableGenericMouseDownListener(node, wrapHandler, useCapture);
139
+ };
140
+ function addDisposableGenericMouseDownListener(node, handler, useCapture) {
141
+ return addDisposableListener(node, isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_DOWN : EventType.MOUSE_DOWN, handler, useCapture);
142
+ }
143
+ function addDisposableGenericMouseMoveListener(node, handler, useCapture) {
144
+ return addDisposableListener(node, isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_MOVE : EventType.MOUSE_MOVE, handler, useCapture);
145
+ }
146
+ function addDisposableGenericMouseUpListener(node, handler, useCapture) {
147
+ return addDisposableListener(node, isIOS && BrowserFeatures.pointerEvents ? EventType.POINTER_UP : EventType.MOUSE_UP, handler, useCapture);
148
+ }
149
+ /**
150
+ * Execute the callback the next time the browser is idle, returning an
151
+ * {@link IDisposable} that will cancel the callback when disposed. This wraps
152
+ * [requestIdleCallback] so it will fallback to [setTimeout] if the environment
153
+ * doesn't support it.
154
+ *
155
+ * @param targetWindow The window for which to run the idle callback
156
+ * @param callback The callback to run when idle, this includes an
157
+ * [IdleDeadline] that provides the time alloted for the idle callback by the
158
+ * browser. Not respecting this deadline will result in a degraded user
159
+ * experience.
160
+ * @param timeout A timeout at which point to queue no longer wait for an idle
161
+ * callback but queue it on the regular event loop (like setTimeout). Typically
162
+ * this should not be used.
163
+ *
164
+ * [IdleDeadline]: https://developer.mozilla.org/en-US/docs/Web/API/IdleDeadline
165
+ * [requestIdleCallback]: https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback
166
+ * [setTimeout]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout
167
+ */
168
+ function runWhenWindowIdle(targetWindow, callback, timeout) {
169
+ return _runWhenIdle(targetWindow, callback, timeout);
170
+ }
171
+ /**
172
+ * An implementation of the "idle-until-urgent"-strategy as introduced
173
+ * here: https://philipwalton.com/articles/idle-until-urgent/
174
+ */
175
+ class WindowIdleValue extends AbstractIdleValue {
176
+ constructor(targetWindow, executor) {
177
+ super(targetWindow, executor);
178
+ }
179
+ }
180
+ /**
181
+ * Schedule a callback to be run at the next animation frame.
182
+ * This allows multiple parties to register callbacks that should run at the next animation frame.
183
+ * If currently in an animation frame, `runner` will be executed immediately.
184
+ * @return token that can be used to cancel the scheduled runner (only if `runner` was not executed immediately).
185
+ */
186
+ let runAtThisOrScheduleAtNextAnimationFrame;
187
+ /**
188
+ * Schedule a callback to be run at the next animation frame.
189
+ * This allows multiple parties to register callbacks that should run at the next animation frame.
190
+ * If currently in an animation frame, `runner` will be executed at the next animation frame.
191
+ * @return token that can be used to cancel the scheduled runner.
192
+ */
193
+ let scheduleAtNextAnimationFrame;
194
+ class WindowIntervalTimer extends IntervalTimer {
195
+ /**
196
+ *
197
+ * @param node The optional node from which the target window is determined
198
+ */
199
+ constructor(node) {
200
+ super();
201
+ this.defaultTarget = node && getWindow(node);
202
+ }
203
+ cancelAndSet(runner, interval, targetWindow) {
204
+ return super.cancelAndSet(runner, interval, targetWindow ?? this.defaultTarget);
205
+ }
206
+ }
207
+ class AnimationFrameQueueItem {
208
+ constructor(runner, priority = 0) {
209
+ this._runner = runner;
210
+ this.priority = priority;
211
+ this._canceled = false;
212
+ }
213
+ dispose() {
214
+ this._canceled = true;
215
+ }
216
+ execute() {
217
+ if (this._canceled) {
218
+ return;
219
+ }
220
+ try {
221
+ this._runner();
222
+ }
223
+ catch (e) {
224
+ onUnexpectedError(e);
225
+ }
226
+ }
227
+ // Sort by priority (largest to lowest)
228
+ static sort(a, b) {
229
+ return b.priority - a.priority;
230
+ }
231
+ }
232
+ (function () {
233
+ /**
234
+ * The runners scheduled at the next animation frame
235
+ */
236
+ const NEXT_QUEUE = new Map();
237
+ /**
238
+ * The runners scheduled at the current animation frame
239
+ */
240
+ const CURRENT_QUEUE = new Map();
241
+ /**
242
+ * A flag to keep track if the native requestAnimationFrame was already called
243
+ */
244
+ const animFrameRequested = new Map();
245
+ /**
246
+ * A flag to indicate if currently handling a native requestAnimationFrame callback
247
+ */
248
+ const inAnimationFrameRunner = new Map();
249
+ const animationFrameRunner = (targetWindowId) => {
250
+ animFrameRequested.set(targetWindowId, false);
251
+ const currentQueue = NEXT_QUEUE.get(targetWindowId) ?? [];
252
+ CURRENT_QUEUE.set(targetWindowId, currentQueue);
253
+ NEXT_QUEUE.set(targetWindowId, []);
254
+ inAnimationFrameRunner.set(targetWindowId, true);
255
+ while (currentQueue.length > 0) {
256
+ currentQueue.sort(AnimationFrameQueueItem.sort);
257
+ const top = currentQueue.shift();
258
+ top.execute();
259
+ }
260
+ inAnimationFrameRunner.set(targetWindowId, false);
261
+ };
262
+ scheduleAtNextAnimationFrame = (targetWindow, runner, priority = 0) => {
263
+ const targetWindowId = getWindowId(targetWindow);
264
+ const item = new AnimationFrameQueueItem(runner, priority);
265
+ let nextQueue = NEXT_QUEUE.get(targetWindowId);
266
+ if (!nextQueue) {
267
+ nextQueue = [];
268
+ NEXT_QUEUE.set(targetWindowId, nextQueue);
269
+ }
270
+ nextQueue.push(item);
271
+ if (!animFrameRequested.get(targetWindowId)) {
272
+ animFrameRequested.set(targetWindowId, true);
273
+ targetWindow.requestAnimationFrame(() => animationFrameRunner(targetWindowId));
274
+ }
275
+ return item;
276
+ };
277
+ runAtThisOrScheduleAtNextAnimationFrame = (targetWindow, runner, priority) => {
278
+ const targetWindowId = getWindowId(targetWindow);
279
+ if (inAnimationFrameRunner.get(targetWindowId)) {
280
+ const item = new AnimationFrameQueueItem(runner, priority);
281
+ let currentQueue = CURRENT_QUEUE.get(targetWindowId);
282
+ if (!currentQueue) {
283
+ currentQueue = [];
284
+ CURRENT_QUEUE.set(targetWindowId, currentQueue);
285
+ }
286
+ currentQueue.push(item);
287
+ return item;
288
+ }
289
+ else {
290
+ return scheduleAtNextAnimationFrame(targetWindow, runner, priority);
291
+ }
292
+ };
293
+ })();
294
+ function getComputedStyle(el) {
295
+ return getWindow(el).getComputedStyle(el, null);
296
+ }
297
+ function getClientArea(element, defaultValue, fallbackElement) {
298
+ const elWindow = getWindow(element);
299
+ const elDocument = elWindow.document;
300
+ // Try with DOM clientWidth / clientHeight
301
+ if (element !== elDocument.body) {
302
+ return new Dimension(element.clientWidth, element.clientHeight);
303
+ }
304
+ // If visual view port exits and it's on mobile, it should be used instead of window innerWidth / innerHeight, or document.body.clientWidth / document.body.clientHeight
305
+ if (isIOS && elWindow?.visualViewport) {
306
+ return new Dimension(elWindow.visualViewport.width, elWindow.visualViewport.height);
307
+ }
308
+ // Try innerWidth / innerHeight
309
+ if (elWindow?.innerWidth && elWindow.innerHeight) {
310
+ return new Dimension(elWindow.innerWidth, elWindow.innerHeight);
311
+ }
312
+ // Try with document.body.clientWidth / document.body.clientHeight
313
+ if (elDocument.body && elDocument.body.clientWidth && elDocument.body.clientHeight) {
314
+ return new Dimension(elDocument.body.clientWidth, elDocument.body.clientHeight);
315
+ }
316
+ // Try with document.documentElement.clientWidth / document.documentElement.clientHeight
317
+ if (elDocument.documentElement && elDocument.documentElement.clientWidth && elDocument.documentElement.clientHeight) {
318
+ return new Dimension(elDocument.documentElement.clientWidth, elDocument.documentElement.clientHeight);
319
+ }
320
+ throw new Error('Unable to figure out browser width and height');
321
+ }
322
+ class SizeUtils {
323
+ // Adapted from WinJS
324
+ // Converts a CSS positioning string for the specified element to pixels.
325
+ static convertToPixels(element, value) {
326
+ return parseFloat(value) || 0;
327
+ }
328
+ static getDimension(element, cssPropertyName) {
329
+ const computedStyle = getComputedStyle(element);
330
+ const value = computedStyle ? computedStyle.getPropertyValue(cssPropertyName) : '0';
331
+ return SizeUtils.convertToPixels(element, value);
332
+ }
333
+ static getBorderLeftWidth(element) {
334
+ return SizeUtils.getDimension(element, 'border-left-width');
335
+ }
336
+ static getBorderRightWidth(element) {
337
+ return SizeUtils.getDimension(element, 'border-right-width');
338
+ }
339
+ static getBorderTopWidth(element) {
340
+ return SizeUtils.getDimension(element, 'border-top-width');
341
+ }
342
+ static getBorderBottomWidth(element) {
343
+ return SizeUtils.getDimension(element, 'border-bottom-width');
344
+ }
345
+ static getPaddingLeft(element) {
346
+ return SizeUtils.getDimension(element, 'padding-left');
347
+ }
348
+ static getPaddingRight(element) {
349
+ return SizeUtils.getDimension(element, 'padding-right');
350
+ }
351
+ static getPaddingTop(element) {
352
+ return SizeUtils.getDimension(element, 'padding-top');
353
+ }
354
+ static getPaddingBottom(element) {
355
+ return SizeUtils.getDimension(element, 'padding-bottom');
356
+ }
357
+ static getMarginLeft(element) {
358
+ return SizeUtils.getDimension(element, 'margin-left');
359
+ }
360
+ static getMarginTop(element) {
361
+ return SizeUtils.getDimension(element, 'margin-top');
362
+ }
363
+ static getMarginRight(element) {
364
+ return SizeUtils.getDimension(element, 'margin-right');
365
+ }
366
+ static getMarginBottom(element) {
367
+ return SizeUtils.getDimension(element, 'margin-bottom');
368
+ }
369
+ }
370
+ class Dimension {
371
+ static { this.None = new Dimension(0, 0); }
372
+ constructor(width, height) {
373
+ this.width = width;
374
+ this.height = height;
375
+ }
376
+ with(width = this.width, height = this.height) {
377
+ if (width !== this.width || height !== this.height) {
378
+ return new Dimension(width, height);
379
+ }
380
+ else {
381
+ return this;
382
+ }
383
+ }
384
+ static is(obj) {
385
+ return typeof obj === 'object' && typeof obj.height === 'number' && typeof obj.width === 'number';
386
+ }
387
+ static lift(obj) {
388
+ if (obj instanceof Dimension) {
389
+ return obj;
390
+ }
391
+ else {
392
+ return new Dimension(obj.width, obj.height);
393
+ }
394
+ }
395
+ static equals(a, b) {
396
+ if (a === b) {
397
+ return true;
398
+ }
399
+ if (!a || !b) {
400
+ return false;
401
+ }
402
+ return a.width === b.width && a.height === b.height;
403
+ }
404
+ }
405
+ function getTopLeftOffset(element) {
406
+ // Adapted from WinJS.Utilities.getPosition
407
+ // and added borders to the mix
408
+ let offsetParent = element.offsetParent;
409
+ let top = element.offsetTop;
410
+ let left = element.offsetLeft;
411
+ while ((element = element.parentNode) !== null
412
+ && element !== element.ownerDocument.body
413
+ && element !== element.ownerDocument.documentElement) {
414
+ top -= element.scrollTop;
415
+ const c = isShadowRoot(element) ? null : getComputedStyle(element);
416
+ if (c) {
417
+ left -= c.direction !== 'rtl' ? element.scrollLeft : -element.scrollLeft;
418
+ }
419
+ if (element === offsetParent) {
420
+ left += SizeUtils.getBorderLeftWidth(element);
421
+ top += SizeUtils.getBorderTopWidth(element);
422
+ top += element.offsetTop;
423
+ left += element.offsetLeft;
424
+ offsetParent = element.offsetParent;
425
+ }
426
+ }
427
+ return {
428
+ left: left,
429
+ top: top
430
+ };
431
+ }
432
+ function size(element, width, height) {
433
+ if (typeof width === 'number') {
434
+ element.style.width = `${width}px`;
435
+ }
436
+ if (typeof height === 'number') {
437
+ element.style.height = `${height}px`;
438
+ }
439
+ }
440
+ /**
441
+ * Returns the position of a dom node relative to the entire page.
442
+ */
443
+ function getDomNodePagePosition(domNode) {
444
+ const bb = domNode.getBoundingClientRect();
445
+ const window = getWindow(domNode);
446
+ return {
447
+ left: bb.left + window.scrollX,
448
+ top: bb.top + window.scrollY,
449
+ width: bb.width,
450
+ height: bb.height
451
+ };
452
+ }
453
+ /**
454
+ * Returns the effective zoom on a given element before window zoom level is applied
455
+ */
456
+ function getDomNodeZoomLevel(domNode) {
457
+ let testElement = domNode;
458
+ let zoom = 1.0;
459
+ do {
460
+ // eslint-disable-next-line local/code-no-any-casts
461
+ const elementZoomLevel = getComputedStyle(testElement).zoom;
462
+ if (elementZoomLevel !== null && elementZoomLevel !== undefined && elementZoomLevel !== '1') {
463
+ zoom *= elementZoomLevel;
464
+ }
465
+ testElement = testElement.parentElement;
466
+ } while (testElement !== null && testElement !== testElement.ownerDocument.documentElement);
467
+ return zoom;
468
+ }
469
+ // Adapted from WinJS
470
+ // Gets the width of the element, including margins.
471
+ function getTotalWidth(element) {
472
+ const margin = SizeUtils.getMarginLeft(element) + SizeUtils.getMarginRight(element);
473
+ return element.offsetWidth + margin;
474
+ }
475
+ function getContentWidth(element) {
476
+ const border = SizeUtils.getBorderLeftWidth(element) + SizeUtils.getBorderRightWidth(element);
477
+ const padding = SizeUtils.getPaddingLeft(element) + SizeUtils.getPaddingRight(element);
478
+ return element.offsetWidth - border - padding;
479
+ }
480
+ // Adapted from WinJS
481
+ // Gets the height of the content of the specified element. The content height does not include borders or padding.
482
+ function getContentHeight(element) {
483
+ const border = SizeUtils.getBorderTopWidth(element) + SizeUtils.getBorderBottomWidth(element);
484
+ const padding = SizeUtils.getPaddingTop(element) + SizeUtils.getPaddingBottom(element);
485
+ return element.offsetHeight - border - padding;
486
+ }
487
+ // Adapted from WinJS
488
+ // Gets the height of the element, including its margins.
489
+ function getTotalHeight(element) {
490
+ const margin = SizeUtils.getMarginTop(element) + SizeUtils.getMarginBottom(element);
491
+ return element.offsetHeight + margin;
492
+ }
493
+ // ----------------------------------------------------------------------------------------
494
+ function isAncestor(testChild, testAncestor) {
495
+ return Boolean(testAncestor?.contains(testChild));
496
+ }
497
+ function findParentWithClass(node, clazz, stopAtClazzOrNode) {
498
+ while (node && node.nodeType === node.ELEMENT_NODE) {
499
+ if (node.classList.contains(clazz)) {
500
+ return node;
501
+ }
502
+ if (stopAtClazzOrNode) {
503
+ if (typeof stopAtClazzOrNode === 'string') {
504
+ if (node.classList.contains(stopAtClazzOrNode)) {
505
+ return null;
506
+ }
507
+ }
508
+ else {
509
+ if (node === stopAtClazzOrNode) {
510
+ return null;
511
+ }
512
+ }
513
+ }
514
+ node = node.parentNode;
515
+ }
516
+ return null;
517
+ }
518
+ function hasParentWithClass(node, clazz, stopAtClazzOrNode) {
519
+ return !!findParentWithClass(node, clazz, stopAtClazzOrNode);
520
+ }
521
+ function isShadowRoot(node) {
522
+ return (node && !!node.host && !!node.mode);
523
+ }
524
+ function isInShadowDOM(domNode) {
525
+ return !!getShadowRoot(domNode);
526
+ }
527
+ function getShadowRoot(domNode) {
528
+ while (domNode.parentNode) {
529
+ if (domNode === domNode.ownerDocument?.body) {
530
+ // reached the body
531
+ return null;
532
+ }
533
+ domNode = domNode.parentNode;
534
+ }
535
+ return isShadowRoot(domNode) ? domNode : null;
536
+ }
537
+ /**
538
+ * Returns the active element across all child windows
539
+ * based on document focus. Falls back to the main
540
+ * window if no window has focus.
541
+ */
542
+ function getActiveElement() {
543
+ let result = getActiveDocument().activeElement;
544
+ while (result?.shadowRoot) {
545
+ result = result.shadowRoot.activeElement;
546
+ }
547
+ return result;
548
+ }
549
+ /**
550
+ * Returns true if the focused window active element matches
551
+ * the provided element. Falls back to the main window if no
552
+ * window has focus.
553
+ */
554
+ function isActiveElement(element) {
555
+ return getActiveElement() === element;
556
+ }
557
+ /**
558
+ * Returns true if the focused window active element is contained in
559
+ * `ancestor`. Falls back to the main window if no window has focus.
560
+ */
561
+ function isAncestorOfActiveElement(ancestor) {
562
+ return isAncestor(getActiveElement(), ancestor);
563
+ }
564
+ /**
565
+ * Returns the active document across main and child windows.
566
+ * Prefers the window with focus, otherwise falls back to
567
+ * the main windows document.
568
+ */
569
+ function getActiveDocument() {
570
+ if (getWindowsCount() <= 1) {
571
+ return mainWindow.document;
572
+ }
573
+ const documents = Array.from(getWindows()).map(({ window }) => window.document);
574
+ return documents.find(doc => doc.hasFocus()) ?? mainWindow.document;
575
+ }
576
+ /**
577
+ * Returns the active window across main and child windows.
578
+ * Prefers the window with focus, otherwise falls back to
579
+ * the main window.
580
+ */
581
+ function getActiveWindow() {
582
+ const document = getActiveDocument();
583
+ return (document.defaultView?.window ?? mainWindow);
584
+ }
585
+ const sharedMutationObserver = new class {
586
+ constructor() {
587
+ this.mutationObservers = new Map();
588
+ }
589
+ observe(target, disposables, options) {
590
+ let mutationObserversPerTarget = this.mutationObservers.get(target);
591
+ if (!mutationObserversPerTarget) {
592
+ mutationObserversPerTarget = new Map();
593
+ this.mutationObservers.set(target, mutationObserversPerTarget);
594
+ }
595
+ const optionsHash = hash(options);
596
+ let mutationObserverPerOptions = mutationObserversPerTarget.get(optionsHash);
597
+ if (!mutationObserverPerOptions) {
598
+ const onDidMutate = new Emitter();
599
+ const observer = new MutationObserver(mutations => onDidMutate.fire(mutations));
600
+ observer.observe(target, options);
601
+ const resolvedMutationObserverPerOptions = mutationObserverPerOptions = {
602
+ users: 1,
603
+ observer,
604
+ onDidMutate: onDidMutate.event
605
+ };
606
+ disposables.add(toDisposable(() => {
607
+ resolvedMutationObserverPerOptions.users -= 1;
608
+ if (resolvedMutationObserverPerOptions.users === 0) {
609
+ onDidMutate.dispose();
610
+ observer.disconnect();
611
+ mutationObserversPerTarget?.delete(optionsHash);
612
+ if (mutationObserversPerTarget?.size === 0) {
613
+ this.mutationObservers.delete(target);
614
+ }
615
+ }
616
+ }));
617
+ mutationObserversPerTarget.set(optionsHash, mutationObserverPerOptions);
618
+ }
619
+ else {
620
+ mutationObserverPerOptions.users += 1;
621
+ }
622
+ return mutationObserverPerOptions.onDidMutate;
623
+ }
624
+ };
625
+ function isHTMLElement(e) {
626
+ // eslint-disable-next-line no-restricted-syntax
627
+ return e instanceof HTMLElement || e instanceof getWindow(e).HTMLElement;
628
+ }
629
+ function isHTMLAnchorElement(e) {
630
+ // eslint-disable-next-line no-restricted-syntax
631
+ return e instanceof HTMLAnchorElement || e instanceof getWindow(e).HTMLAnchorElement;
632
+ }
633
+ function isSVGElement(e) {
634
+ // eslint-disable-next-line no-restricted-syntax
635
+ return e instanceof SVGElement || e instanceof getWindow(e).SVGElement;
636
+ }
637
+ function isMouseEvent(e) {
638
+ // eslint-disable-next-line no-restricted-syntax
639
+ return e instanceof MouseEvent || e instanceof getWindow(e).MouseEvent;
640
+ }
641
+ function isKeyboardEvent(e) {
642
+ // eslint-disable-next-line no-restricted-syntax
643
+ return e instanceof KeyboardEvent || e instanceof getWindow(e).KeyboardEvent;
644
+ }
645
+ const EventType = {
646
+ // Mouse
647
+ CLICK: 'click',
648
+ AUXCLICK: 'auxclick',
649
+ DBLCLICK: 'dblclick',
650
+ MOUSE_UP: 'mouseup',
651
+ MOUSE_DOWN: 'mousedown',
652
+ MOUSE_OVER: 'mouseover',
653
+ MOUSE_MOVE: 'mousemove',
654
+ MOUSE_OUT: 'mouseout',
655
+ MOUSE_ENTER: 'mouseenter',
656
+ MOUSE_LEAVE: 'mouseleave',
657
+ MOUSE_WHEEL: 'wheel',
658
+ POINTER_UP: 'pointerup',
659
+ POINTER_DOWN: 'pointerdown',
660
+ POINTER_MOVE: 'pointermove',
661
+ POINTER_LEAVE: 'pointerleave',
662
+ CONTEXT_MENU: 'contextmenu',
663
+ // Keyboard
664
+ KEY_DOWN: 'keydown',
665
+ KEY_UP: 'keyup',
666
+ BEFORE_UNLOAD: 'beforeunload',
667
+ FOCUS: 'focus',
668
+ FOCUS_IN: 'focusin',
669
+ FOCUS_OUT: 'focusout',
670
+ BLUR: 'blur',
671
+ INPUT: 'input',
672
+ // Drag
673
+ DRAG_START: 'dragstart',
674
+ DRAG: 'drag',
675
+ DRAG_ENTER: 'dragenter',
676
+ DRAG_LEAVE: 'dragleave',
677
+ DRAG_OVER: 'dragover',
678
+ DROP: 'drop',
679
+ DRAG_END: 'dragend'};
680
+ function isEventLike(obj) {
681
+ const candidate = obj;
682
+ return !!(candidate && typeof candidate.preventDefault === 'function' && typeof candidate.stopPropagation === 'function');
683
+ }
684
+ const EventHelper = {
685
+ stop: (e, cancelBubble) => {
686
+ e.preventDefault();
687
+ if (cancelBubble) {
688
+ e.stopPropagation();
689
+ }
690
+ return e;
691
+ }
692
+ };
693
+ function saveParentsScrollTop(node) {
694
+ const r = [];
695
+ for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {
696
+ r[i] = node.scrollTop;
697
+ node = node.parentNode;
698
+ }
699
+ return r;
700
+ }
701
+ function restoreParentsScrollTop(node, state) {
702
+ for (let i = 0; node && node.nodeType === node.ELEMENT_NODE; i++) {
703
+ if (node.scrollTop !== state[i]) {
704
+ node.scrollTop = state[i];
705
+ }
706
+ node = node.parentNode;
707
+ }
708
+ }
709
+ class FocusTracker extends Disposable {
710
+ get onDidFocus() { return this._onDidFocus.event; }
711
+ get onDidBlur() { return this._onDidBlur.event; }
712
+ static hasFocusWithin(element) {
713
+ if (isHTMLElement(element)) {
714
+ const shadowRoot = getShadowRoot(element);
715
+ const activeElement = (shadowRoot ? shadowRoot.activeElement : element.ownerDocument.activeElement);
716
+ return isAncestor(activeElement, element);
717
+ }
718
+ else {
719
+ const window = element;
720
+ return isAncestor(window.document.activeElement, window.document);
721
+ }
722
+ }
723
+ constructor(element) {
724
+ super();
725
+ this._onDidFocus = this._register(new Emitter());
726
+ this._onDidBlur = this._register(new Emitter());
727
+ let hasFocus = FocusTracker.hasFocusWithin(element);
728
+ let loosingFocus = false;
729
+ const onFocus = () => {
730
+ loosingFocus = false;
731
+ if (!hasFocus) {
732
+ hasFocus = true;
733
+ this._onDidFocus.fire();
734
+ }
735
+ };
736
+ const onBlur = () => {
737
+ if (hasFocus) {
738
+ loosingFocus = true;
739
+ (isHTMLElement(element) ? getWindow(element) : element).setTimeout(() => {
740
+ if (loosingFocus) {
741
+ loosingFocus = false;
742
+ hasFocus = false;
743
+ this._onDidBlur.fire();
744
+ }
745
+ }, 0);
746
+ }
747
+ };
748
+ this._refreshStateHandler = () => {
749
+ const currentNodeHasFocus = FocusTracker.hasFocusWithin(element);
750
+ if (currentNodeHasFocus !== hasFocus) {
751
+ if (hasFocus) {
752
+ onBlur();
753
+ }
754
+ else {
755
+ onFocus();
756
+ }
757
+ }
758
+ };
759
+ this._register(addDisposableListener(element, EventType.FOCUS, onFocus, true));
760
+ this._register(addDisposableListener(element, EventType.BLUR, onBlur, true));
761
+ if (isHTMLElement(element)) {
762
+ this._register(addDisposableListener(element, EventType.FOCUS_IN, () => this._refreshStateHandler()));
763
+ this._register(addDisposableListener(element, EventType.FOCUS_OUT, () => this._refreshStateHandler()));
764
+ }
765
+ }
766
+ }
767
+ /**
768
+ * Creates a new `IFocusTracker` instance that tracks focus changes on the given `element` and its descendants.
769
+ *
770
+ * @param element The `HTMLElement` or `Window` to track focus changes on.
771
+ * @returns An `IFocusTracker` instance.
772
+ */
773
+ function trackFocus(element) {
774
+ return new FocusTracker(element);
775
+ }
776
+ function after(sibling, child) {
777
+ sibling.after(child);
778
+ return child;
779
+ }
780
+ function append(parent, ...children) {
781
+ parent.append(...children);
782
+ if (children.length === 1 && typeof children[0] !== 'string') {
783
+ return children[0];
784
+ }
785
+ }
786
+ function prepend(parent, child) {
787
+ parent.insertBefore(child, parent.firstChild);
788
+ return child;
789
+ }
790
+ /**
791
+ * Removes all children from `parent` and appends `children`
792
+ */
793
+ function reset(parent, ...children) {
794
+ parent.textContent = '';
795
+ append(parent, ...children);
796
+ }
797
+ const SELECTOR_REGEX = /([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;
798
+ var Namespace;
799
+ (function (Namespace) {
800
+ Namespace["HTML"] = "http://www.w3.org/1999/xhtml";
801
+ Namespace["SVG"] = "http://www.w3.org/2000/svg";
802
+ })(Namespace || (Namespace = {}));
803
+ function _$(namespace, description, attrs, ...children) {
804
+ const match = SELECTOR_REGEX.exec(description);
805
+ if (!match) {
806
+ throw new Error('Bad use of emmet');
807
+ }
808
+ const tagName = match[1] || 'div';
809
+ let result;
810
+ if (namespace !== Namespace.HTML) {
811
+ result = document.createElementNS(namespace, tagName);
812
+ }
813
+ else {
814
+ result = document.createElement(tagName);
815
+ }
816
+ if (match[3]) {
817
+ result.id = match[3];
818
+ }
819
+ if (match[4]) {
820
+ result.className = match[4].replace(/\./g, ' ').trim();
821
+ }
822
+ if (attrs) {
823
+ Object.entries(attrs).forEach(([name, value]) => {
824
+ if (typeof value === 'undefined') {
825
+ return;
826
+ }
827
+ if (/^on\w+$/.test(name)) {
828
+ // eslint-disable-next-line local/code-no-any-casts
829
+ result[name] = value;
830
+ }
831
+ else if (name === 'selected') {
832
+ if (value) {
833
+ result.setAttribute(name, 'true');
834
+ }
835
+ }
836
+ else {
837
+ result.setAttribute(name, value);
838
+ }
839
+ });
840
+ }
841
+ result.append(...children);
842
+ return result;
843
+ }
844
+ function $(description, attrs, ...children) {
845
+ return _$(Namespace.HTML, description, attrs, ...children);
846
+ }
847
+ $.SVG = function (description, attrs, ...children) {
848
+ return _$(Namespace.SVG, description, attrs, ...children);
849
+ };
850
+ function setVisibility(visible, ...elements) {
851
+ if (visible) {
852
+ show(...elements);
853
+ }
854
+ else {
855
+ hide(...elements);
856
+ }
857
+ }
858
+ function show(...elements) {
859
+ for (const element of elements) {
860
+ element.style.display = '';
861
+ element.removeAttribute('aria-hidden');
862
+ }
863
+ }
864
+ function hide(...elements) {
865
+ for (const element of elements) {
866
+ element.style.display = 'none';
867
+ element.setAttribute('aria-hidden', 'true');
868
+ }
869
+ }
870
+ /**
871
+ * Find a value usable for a dom node size such that the likelihood that it would be
872
+ * displayed with constant screen pixels size is as high as possible.
873
+ *
874
+ * e.g. We would desire for the cursors to be 2px (CSS px) wide. Under a devicePixelRatio
875
+ * of 1.25, the cursor will be 2.5 screen pixels wide. Depending on how the dom node aligns/"snaps"
876
+ * with the screen pixels, it will sometimes be rendered with 2 screen pixels, and sometimes with 3 screen pixels.
877
+ */
878
+ function computeScreenAwareSize(window, cssPx) {
879
+ const screenPx = window.devicePixelRatio * cssPx;
880
+ return Math.max(1, Math.floor(screenPx)) / window.devicePixelRatio;
881
+ }
882
+ /**
883
+ * Open safely a new window. This is the best way to do so, but you cannot tell
884
+ * if the window was opened or if it was blocked by the browser's popup blocker.
885
+ * If you want to tell if the browser blocked the new window, use {@link windowOpenWithSuccess}.
886
+ *
887
+ * See https://github.com/microsoft/monaco-editor/issues/601
888
+ * To protect against malicious code in the linked site, particularly phishing attempts,
889
+ * the window.opener should be set to null to prevent the linked site from having access
890
+ * to change the location of the current page.
891
+ * See https://mathiasbynens.github.io/rel-noopener/
892
+ */
893
+ function windowOpenNoOpener(url) {
894
+ // By using 'noopener' in the `windowFeatures` argument, the newly created window will
895
+ // not be able to use `window.opener` to reach back to the current page.
896
+ // See https://stackoverflow.com/a/46958731
897
+ // See https://developer.mozilla.org/en-US/docs/Web/API/Window/open#noopener
898
+ // However, this also doesn't allow us to realize if the browser blocked
899
+ // the creation of the window.
900
+ mainWindow.open(url, '_blank', 'noopener');
901
+ }
902
+ function animate(targetWindow, fn) {
903
+ const step = () => {
904
+ fn();
905
+ stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);
906
+ };
907
+ let stepDisposable = scheduleAtNextAnimationFrame(targetWindow, step);
908
+ return toDisposable(() => stepDisposable.dispose());
909
+ }
910
+ RemoteAuthorities.setPreferredWebSchema(/^https:/.test(mainWindow.location.href) ? 'https' : 'http');
911
+ class ModifierKeyEmitter extends Emitter {
912
+ constructor() {
913
+ super();
914
+ this._subscriptions = new DisposableStore();
915
+ this._keyStatus = {
916
+ altKey: false,
917
+ shiftKey: false,
918
+ ctrlKey: false,
919
+ metaKey: false
920
+ };
921
+ this._subscriptions.add(Event.runAndSubscribe(onDidRegisterWindow, ({ window, disposables }) => this.registerListeners(window, disposables), { window: mainWindow, disposables: this._subscriptions }));
922
+ }
923
+ registerListeners(window, disposables) {
924
+ disposables.add(addDisposableListener(window, 'keydown', e => {
925
+ if (e.defaultPrevented) {
926
+ return;
927
+ }
928
+ const event = new StandardKeyboardEvent(e);
929
+ // If Alt-key keydown event is repeated, ignore it #112347
930
+ // Only known to be necessary for Alt-Key at the moment #115810
931
+ if (event.keyCode === 6 /* KeyCode.Alt */ && e.repeat) {
932
+ return;
933
+ }
934
+ if (e.altKey && !this._keyStatus.altKey) {
935
+ this._keyStatus.lastKeyPressed = 'alt';
936
+ }
937
+ else if (e.ctrlKey && !this._keyStatus.ctrlKey) {
938
+ this._keyStatus.lastKeyPressed = 'ctrl';
939
+ }
940
+ else if (e.metaKey && !this._keyStatus.metaKey) {
941
+ this._keyStatus.lastKeyPressed = 'meta';
942
+ }
943
+ else if (e.shiftKey && !this._keyStatus.shiftKey) {
944
+ this._keyStatus.lastKeyPressed = 'shift';
945
+ }
946
+ else if (event.keyCode !== 6 /* KeyCode.Alt */) {
947
+ this._keyStatus.lastKeyPressed = undefined;
948
+ }
949
+ else {
950
+ return;
951
+ }
952
+ this._keyStatus.altKey = e.altKey;
953
+ this._keyStatus.ctrlKey = e.ctrlKey;
954
+ this._keyStatus.metaKey = e.metaKey;
955
+ this._keyStatus.shiftKey = e.shiftKey;
956
+ if (this._keyStatus.lastKeyPressed) {
957
+ this._keyStatus.event = e;
958
+ this.fire(this._keyStatus);
959
+ }
960
+ }, true));
961
+ disposables.add(addDisposableListener(window, 'keyup', e => {
962
+ if (e.defaultPrevented) {
963
+ return;
964
+ }
965
+ if (!e.altKey && this._keyStatus.altKey) {
966
+ this._keyStatus.lastKeyReleased = 'alt';
967
+ }
968
+ else if (!e.ctrlKey && this._keyStatus.ctrlKey) {
969
+ this._keyStatus.lastKeyReleased = 'ctrl';
970
+ }
971
+ else if (!e.metaKey && this._keyStatus.metaKey) {
972
+ this._keyStatus.lastKeyReleased = 'meta';
973
+ }
974
+ else if (!e.shiftKey && this._keyStatus.shiftKey) {
975
+ this._keyStatus.lastKeyReleased = 'shift';
976
+ }
977
+ else {
978
+ this._keyStatus.lastKeyReleased = undefined;
979
+ }
980
+ if (this._keyStatus.lastKeyPressed !== this._keyStatus.lastKeyReleased) {
981
+ this._keyStatus.lastKeyPressed = undefined;
982
+ }
983
+ this._keyStatus.altKey = e.altKey;
984
+ this._keyStatus.ctrlKey = e.ctrlKey;
985
+ this._keyStatus.metaKey = e.metaKey;
986
+ this._keyStatus.shiftKey = e.shiftKey;
987
+ if (this._keyStatus.lastKeyReleased) {
988
+ this._keyStatus.event = e;
989
+ this.fire(this._keyStatus);
990
+ }
991
+ }, true));
992
+ disposables.add(addDisposableListener(window.document.body, 'mousedown', () => {
993
+ this._keyStatus.lastKeyPressed = undefined;
994
+ }, true));
995
+ disposables.add(addDisposableListener(window.document.body, 'mouseup', () => {
996
+ this._keyStatus.lastKeyPressed = undefined;
997
+ }, true));
998
+ disposables.add(addDisposableListener(window.document.body, 'mousemove', e => {
999
+ if (e.buttons) {
1000
+ this._keyStatus.lastKeyPressed = undefined;
1001
+ }
1002
+ }, true));
1003
+ disposables.add(addDisposableListener(window, 'blur', () => {
1004
+ this.resetKeyStatus();
1005
+ }));
1006
+ }
1007
+ get keyStatus() {
1008
+ return this._keyStatus;
1009
+ }
1010
+ /**
1011
+ * Allows to explicitly reset the key status based on more knowledge (#109062)
1012
+ */
1013
+ resetKeyStatus() {
1014
+ this.doResetKeyStatus();
1015
+ this.fire(this._keyStatus);
1016
+ }
1017
+ doResetKeyStatus() {
1018
+ this._keyStatus = {
1019
+ altKey: false,
1020
+ shiftKey: false,
1021
+ ctrlKey: false,
1022
+ metaKey: false
1023
+ };
1024
+ }
1025
+ static getInstance() {
1026
+ if (!ModifierKeyEmitter.instance) {
1027
+ ModifierKeyEmitter.instance = new ModifierKeyEmitter();
1028
+ }
1029
+ return ModifierKeyEmitter.instance;
1030
+ }
1031
+ dispose() {
1032
+ super.dispose();
1033
+ this._subscriptions.dispose();
1034
+ }
1035
+ }
1036
+ class DragAndDropObserver extends Disposable {
1037
+ constructor(element, callbacks) {
1038
+ super();
1039
+ this.element = element;
1040
+ this.callbacks = callbacks;
1041
+ // A helper to fix issues with repeated DRAG_ENTER / DRAG_LEAVE
1042
+ // calls see https://github.com/microsoft/vscode/issues/14470
1043
+ // when the element has child elements where the events are fired
1044
+ // repeadedly.
1045
+ this.counter = 0;
1046
+ // Allows to measure the duration of the drag operation.
1047
+ this.dragStartTime = 0;
1048
+ this.registerListeners();
1049
+ }
1050
+ registerListeners() {
1051
+ if (this.callbacks.onDragStart) {
1052
+ this._register(addDisposableListener(this.element, EventType.DRAG_START, (e) => {
1053
+ this.callbacks.onDragStart?.(e);
1054
+ }));
1055
+ }
1056
+ if (this.callbacks.onDrag) {
1057
+ this._register(addDisposableListener(this.element, EventType.DRAG, (e) => {
1058
+ this.callbacks.onDrag?.(e);
1059
+ }));
1060
+ }
1061
+ this._register(addDisposableListener(this.element, EventType.DRAG_ENTER, (e) => {
1062
+ this.counter++;
1063
+ this.dragStartTime = e.timeStamp;
1064
+ this.callbacks.onDragEnter?.(e);
1065
+ }));
1066
+ this._register(addDisposableListener(this.element, EventType.DRAG_OVER, (e) => {
1067
+ e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)
1068
+ this.callbacks.onDragOver?.(e, e.timeStamp - this.dragStartTime);
1069
+ }));
1070
+ this._register(addDisposableListener(this.element, EventType.DRAG_LEAVE, (e) => {
1071
+ this.counter--;
1072
+ if (this.counter === 0) {
1073
+ this.dragStartTime = 0;
1074
+ this.callbacks.onDragLeave?.(e);
1075
+ }
1076
+ }));
1077
+ this._register(addDisposableListener(this.element, EventType.DRAG_END, (e) => {
1078
+ this.counter = 0;
1079
+ this.dragStartTime = 0;
1080
+ this.callbacks.onDragEnd?.(e);
1081
+ }));
1082
+ this._register(addDisposableListener(this.element, EventType.DROP, (e) => {
1083
+ this.counter = 0;
1084
+ this.dragStartTime = 0;
1085
+ this.callbacks.onDrop?.(e);
1086
+ }));
1087
+ }
1088
+ }
1089
+ const H_REGEX = /(?<tag>[\w\-]+)?(?:#(?<id>[\w\-]+))?(?<class>(?:\.(?:[\w\-]+))*)(?:@(?<name>(?:[\w\_])+))?/;
1090
+ function h(tag, ...args) {
1091
+ let attributes;
1092
+ let children;
1093
+ if (Array.isArray(args[0])) {
1094
+ attributes = {};
1095
+ children = args[0];
1096
+ }
1097
+ else {
1098
+ // eslint-disable-next-line local/code-no-any-casts
1099
+ attributes = args[0] || {};
1100
+ children = args[1];
1101
+ }
1102
+ const match = H_REGEX.exec(tag);
1103
+ if (!match || !match.groups) {
1104
+ throw new Error('Bad use of h');
1105
+ }
1106
+ const tagName = match.groups['tag'] || 'div';
1107
+ const el = document.createElement(tagName);
1108
+ if (match.groups['id']) {
1109
+ el.id = match.groups['id'];
1110
+ }
1111
+ const classNames = [];
1112
+ if (match.groups['class']) {
1113
+ for (const className of match.groups['class'].split('.')) {
1114
+ if (className !== '') {
1115
+ classNames.push(className);
1116
+ }
1117
+ }
1118
+ }
1119
+ if (attributes.className !== undefined) {
1120
+ for (const className of attributes.className.split('.')) {
1121
+ if (className !== '') {
1122
+ classNames.push(className);
1123
+ }
1124
+ }
1125
+ }
1126
+ if (classNames.length > 0) {
1127
+ el.className = classNames.join(' ');
1128
+ }
1129
+ const result = {};
1130
+ if (match.groups['name']) {
1131
+ result[match.groups['name']] = el;
1132
+ }
1133
+ if (children) {
1134
+ for (const c of children) {
1135
+ if (isHTMLElement(c)) {
1136
+ el.appendChild(c);
1137
+ }
1138
+ else if (typeof c === 'string') {
1139
+ el.append(c);
1140
+ }
1141
+ else if ('root' in c) {
1142
+ Object.assign(result, c);
1143
+ el.appendChild(c.root);
1144
+ }
1145
+ }
1146
+ }
1147
+ for (const [key, value] of Object.entries(attributes)) {
1148
+ if (key === 'className') {
1149
+ continue;
1150
+ }
1151
+ else if (key === 'style') {
1152
+ for (const [cssKey, cssValue] of Object.entries(value)) {
1153
+ el.style.setProperty(camelCaseToHyphenCase(cssKey), typeof cssValue === 'number' ? cssValue + 'px' : '' + cssValue);
1154
+ }
1155
+ }
1156
+ else if (key === 'tabIndex') {
1157
+ el.tabIndex = value;
1158
+ }
1159
+ else {
1160
+ el.setAttribute(camelCaseToHyphenCase(key), value.toString());
1161
+ }
1162
+ }
1163
+ result['root'] = el;
1164
+ return result;
1165
+ }
1166
+ function camelCaseToHyphenCase(str) {
1167
+ return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
1168
+ }
1169
+ function isEditableElement(element) {
1170
+ return element.tagName.toLowerCase() === 'input' || element.tagName.toLowerCase() === 'textarea' || isHTMLElement(element) && !!element.editContext;
1171
+ }
1172
+ var n;
1173
+ (function (n) {
1174
+ function nodeNs(elementNs = undefined) {
1175
+ return (tag, attributes, children) => {
1176
+ const className = attributes.class;
1177
+ delete attributes.class;
1178
+ const ref = attributes.ref;
1179
+ delete attributes.ref;
1180
+ const obsRef = attributes.obsRef;
1181
+ delete attributes.obsRef;
1182
+ // eslint-disable-next-line local/code-no-any-casts
1183
+ return new ObserverNodeWithElement(tag, ref, obsRef, elementNs, className, attributes, children);
1184
+ };
1185
+ }
1186
+ function node(tag, elementNs = undefined) {
1187
+ // eslint-disable-next-line local/code-no-any-casts
1188
+ const f = nodeNs(elementNs);
1189
+ return (attributes, children) => {
1190
+ return f(tag, attributes, children);
1191
+ };
1192
+ }
1193
+ n.div = node('div');
1194
+ n.elem = nodeNs(undefined);
1195
+ n.svg = node('svg', 'http://www.w3.org/2000/svg');
1196
+ n.svgElem = nodeNs('http://www.w3.org/2000/svg');
1197
+ function ref() {
1198
+ let value = undefined;
1199
+ const result = function (val) {
1200
+ value = val;
1201
+ };
1202
+ Object.defineProperty(result, 'element', {
1203
+ get() {
1204
+ if (!value) {
1205
+ throw new BugIndicatingError('Make sure the ref is set before accessing the element. Maybe wrong initialization order?');
1206
+ }
1207
+ return value;
1208
+ }
1209
+ });
1210
+ // eslint-disable-next-line local/code-no-any-casts
1211
+ return result;
1212
+ }
1213
+ n.ref = ref;
1214
+ })(n || (n = {}));
1215
+ class ObserverNode {
1216
+ constructor(tag, ref, obsRef, ns, className, attributes, children) {
1217
+ this._deriveds = [];
1218
+ this._element = (ns ? document.createElementNS(ns, tag) : document.createElement(tag));
1219
+ if (ref) {
1220
+ ref(this._element);
1221
+ }
1222
+ if (obsRef) {
1223
+ this._deriveds.push(derived((_reader) => {
1224
+ obsRef(this);
1225
+ _reader.store.add({
1226
+ dispose: () => {
1227
+ obsRef(null);
1228
+ }
1229
+ });
1230
+ }));
1231
+ }
1232
+ if (className) {
1233
+ if (hasObservable(className)) {
1234
+ this._deriveds.push(derived(this, reader => {
1235
+ /** @description set.class */
1236
+ setClassName(this._element, getClassName(className, reader));
1237
+ }));
1238
+ }
1239
+ else {
1240
+ setClassName(this._element, getClassName(className, undefined));
1241
+ }
1242
+ }
1243
+ for (const [key, value] of Object.entries(attributes)) {
1244
+ if (key === 'style') {
1245
+ for (const [cssKey, cssValue] of Object.entries(value)) {
1246
+ const key = camelCaseToHyphenCase(cssKey);
1247
+ if (isObservable(cssValue)) {
1248
+ this._deriveds.push(derivedOpts({ owner: this, debugName: () => `set.style.${key}` }, reader => {
1249
+ this._element.style.setProperty(key, convertCssValue(cssValue.read(reader)));
1250
+ }));
1251
+ }
1252
+ else {
1253
+ this._element.style.setProperty(key, convertCssValue(cssValue));
1254
+ }
1255
+ }
1256
+ }
1257
+ else if (key === 'tabIndex') {
1258
+ if (isObservable(value)) {
1259
+ this._deriveds.push(derived(this, reader => {
1260
+ /** @description set.tabIndex */
1261
+ // eslint-disable-next-line local/code-no-any-casts
1262
+ this._element.tabIndex = value.read(reader);
1263
+ }));
1264
+ }
1265
+ else {
1266
+ this._element.tabIndex = value;
1267
+ }
1268
+ }
1269
+ else if (key.startsWith('on')) {
1270
+ // eslint-disable-next-line local/code-no-any-casts
1271
+ this._element[key] = value;
1272
+ }
1273
+ else {
1274
+ if (isObservable(value)) {
1275
+ this._deriveds.push(derivedOpts({ owner: this, debugName: () => `set.${key}` }, reader => {
1276
+ setOrRemoveAttribute(this._element, key, value.read(reader));
1277
+ }));
1278
+ }
1279
+ else {
1280
+ setOrRemoveAttribute(this._element, key, value);
1281
+ }
1282
+ }
1283
+ }
1284
+ if (children) {
1285
+ function getChildren(reader, children) {
1286
+ if (isObservable(children)) {
1287
+ return getChildren(reader, children.read(reader));
1288
+ }
1289
+ if (Array.isArray(children)) {
1290
+ return children.flatMap(c => getChildren(reader, c));
1291
+ }
1292
+ if (children instanceof ObserverNode) {
1293
+ if (reader) {
1294
+ children.readEffect(reader);
1295
+ }
1296
+ return [children._element];
1297
+ }
1298
+ if (children) {
1299
+ return [children];
1300
+ }
1301
+ return [];
1302
+ }
1303
+ const d = derived(this, reader => {
1304
+ /** @description set.children */
1305
+ this._element.replaceChildren(...getChildren(reader, children));
1306
+ });
1307
+ this._deriveds.push(d);
1308
+ if (!childrenIsObservable(children)) {
1309
+ d.get();
1310
+ }
1311
+ }
1312
+ }
1313
+ readEffect(reader) {
1314
+ for (const d of this._deriveds) {
1315
+ d.read(reader);
1316
+ }
1317
+ }
1318
+ keepUpdated(store) {
1319
+ derived(reader => {
1320
+ /** update */
1321
+ this.readEffect(reader);
1322
+ }).recomputeInitiallyAndOnChange(store);
1323
+ return this;
1324
+ }
1325
+ /**
1326
+ * Creates a live element that will keep the element updated as long as the returned object is not disposed.
1327
+ */
1328
+ toDisposableLiveElement() {
1329
+ const store = new DisposableStore();
1330
+ this.keepUpdated(store);
1331
+ return new LiveElement(this._element, store);
1332
+ }
1333
+ }
1334
+ function setClassName(domNode, className) {
1335
+ if (isSVGElement(domNode)) {
1336
+ domNode.setAttribute('class', className);
1337
+ }
1338
+ else {
1339
+ domNode.className = className;
1340
+ }
1341
+ }
1342
+ function resolve(value, reader, cb) {
1343
+ if (isObservable(value)) {
1344
+ cb(value.read(reader));
1345
+ return;
1346
+ }
1347
+ if (Array.isArray(value)) {
1348
+ for (const v of value) {
1349
+ resolve(v, reader, cb);
1350
+ }
1351
+ return;
1352
+ }
1353
+ // eslint-disable-next-line local/code-no-any-casts
1354
+ cb(value);
1355
+ }
1356
+ function getClassName(className, reader) {
1357
+ let result = '';
1358
+ resolve(className, reader, val => {
1359
+ if (val) {
1360
+ if (result.length === 0) {
1361
+ result = val;
1362
+ }
1363
+ else {
1364
+ result += ' ' + val;
1365
+ }
1366
+ }
1367
+ });
1368
+ return result;
1369
+ }
1370
+ function hasObservable(value) {
1371
+ if (isObservable(value)) {
1372
+ return true;
1373
+ }
1374
+ if (Array.isArray(value)) {
1375
+ return value.some(v => hasObservable(v));
1376
+ }
1377
+ return false;
1378
+ }
1379
+ function convertCssValue(value) {
1380
+ if (typeof value === 'number') {
1381
+ return value + 'px';
1382
+ }
1383
+ return value;
1384
+ }
1385
+ function childrenIsObservable(children) {
1386
+ if (isObservable(children)) {
1387
+ return true;
1388
+ }
1389
+ if (Array.isArray(children)) {
1390
+ return children.some(c => childrenIsObservable(c));
1391
+ }
1392
+ return false;
1393
+ }
1394
+ class LiveElement {
1395
+ constructor(element, _disposable) {
1396
+ this.element = element;
1397
+ this._disposable = _disposable;
1398
+ }
1399
+ dispose() {
1400
+ this._disposable.dispose();
1401
+ }
1402
+ }
1403
+ class ObserverNodeWithElement extends ObserverNode {
1404
+ constructor() {
1405
+ super(...arguments);
1406
+ this._isHovered = undefined;
1407
+ this._didMouseMoveDuringHover = undefined;
1408
+ }
1409
+ get element() {
1410
+ return this._element;
1411
+ }
1412
+ get isHovered() {
1413
+ if (!this._isHovered) {
1414
+ const hovered = observableValue('hovered', false);
1415
+ this._element.addEventListener('mouseenter', (_e) => hovered.set(true, undefined));
1416
+ this._element.addEventListener('mouseleave', (_e) => hovered.set(false, undefined));
1417
+ this._isHovered = hovered;
1418
+ }
1419
+ return this._isHovered;
1420
+ }
1421
+ get didMouseMoveDuringHover() {
1422
+ if (!this._didMouseMoveDuringHover) {
1423
+ let _hovering = false;
1424
+ const hovered = observableValue('didMouseMoveDuringHover', false);
1425
+ this._element.addEventListener('mouseenter', (_e) => {
1426
+ _hovering = true;
1427
+ });
1428
+ this._element.addEventListener('mousemove', (_e) => {
1429
+ if (_hovering) {
1430
+ hovered.set(true, undefined);
1431
+ }
1432
+ });
1433
+ this._element.addEventListener('mouseleave', (_e) => {
1434
+ _hovering = false;
1435
+ hovered.set(false, undefined);
1436
+ });
1437
+ this._didMouseMoveDuringHover = hovered;
1438
+ }
1439
+ return this._didMouseMoveDuringHover;
1440
+ }
1441
+ }
1442
+ function setOrRemoveAttribute(element, key, value) {
1443
+ if (value === null || value === undefined) {
1444
+ element.removeAttribute(camelCaseToHyphenCase(key));
1445
+ }
1446
+ else {
1447
+ element.setAttribute(camelCaseToHyphenCase(key), String(value));
1448
+ }
1449
+ }
1450
+ function isObservable(obj) {
1451
+ return !!obj && obj.read !== undefined && obj.reportChanges !== undefined;
1452
+ }
1453
+
1454
+ export { $, Dimension, DragAndDropObserver, EventHelper, EventType, LiveElement, ModifierKeyEmitter, Namespace, ObserverNode, ObserverNodeWithElement, WindowIdleValue, WindowIntervalTimer, addDisposableGenericMouseDownListener, addDisposableGenericMouseMoveListener, addDisposableGenericMouseUpListener, addDisposableListener, addStandardDisposableGenericMouseDownListener, addStandardDisposableListener, after, animate, append, clearNode, computeScreenAwareSize, findParentWithClass, getActiveDocument, getActiveElement, getActiveWindow, getClientArea, getComputedStyle, getContentHeight, getContentWidth, getDocument, getDomNodePagePosition, getDomNodeZoomLevel, getShadowRoot, getTopLeftOffset, getTotalHeight, getTotalWidth, getWindow, getWindowById, getWindowId, getWindows, getWindowsCount, h, hasParentWithClass, hide, isActiveElement, isAncestor, isAncestorOfActiveElement, isEditableElement, isEventLike, isHTMLAnchorElement, isHTMLElement, isInShadowDOM, isKeyboardEvent, isMouseEvent, isSVGElement, isShadowRoot, n, onDidRegisterWindow, onDidUnregisterWindow, onWillUnregisterWindow, prepend, reset, restoreParentsScrollTop, runAtThisOrScheduleAtNextAnimationFrame, runWhenWindowIdle, saveParentsScrollTop, scheduleAtNextAnimationFrame, setVisibility, sharedMutationObserver, show, size, trackFocus, windowOpenNoOpener };