@ohos-ports/xterm 5.3.0-beta.0

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 (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +230 -0
  3. package/css/xterm.css +209 -0
  4. package/lib/xterm.js +2 -0
  5. package/lib/xterm.js.map +1 -0
  6. package/package.json +107 -0
  7. package/src/browser/AccessibilityManager.ts +300 -0
  8. package/src/browser/Clipboard.ts +93 -0
  9. package/src/browser/ColorContrastCache.ts +34 -0
  10. package/src/browser/Lifecycle.ts +33 -0
  11. package/src/browser/Linkifier2.ts +416 -0
  12. package/src/browser/LocalizableStrings.ts +12 -0
  13. package/src/browser/OscLinkProvider.ts +128 -0
  14. package/src/browser/RenderDebouncer.ts +83 -0
  15. package/src/browser/ScreenDprMonitor.ts +72 -0
  16. package/src/browser/Terminal.ts +1305 -0
  17. package/src/browser/TimeBasedDebouncer.ts +86 -0
  18. package/src/browser/Types.d.ts +181 -0
  19. package/src/browser/Viewport.ts +401 -0
  20. package/src/browser/decorations/BufferDecorationRenderer.ts +134 -0
  21. package/src/browser/decorations/ColorZoneStore.ts +117 -0
  22. package/src/browser/decorations/OverviewRulerRenderer.ts +219 -0
  23. package/src/browser/input/CompositionHelper.ts +246 -0
  24. package/src/browser/input/Mouse.ts +54 -0
  25. package/src/browser/input/MoveToCell.ts +249 -0
  26. package/src/browser/public/Terminal.ts +260 -0
  27. package/src/browser/renderer/dom/DomRenderer.ts +506 -0
  28. package/src/browser/renderer/dom/DomRendererRowFactory.ts +522 -0
  29. package/src/browser/renderer/dom/WidthCache.ts +157 -0
  30. package/src/browser/renderer/shared/CellColorResolver.ts +137 -0
  31. package/src/browser/renderer/shared/CharAtlasCache.ts +96 -0
  32. package/src/browser/renderer/shared/CharAtlasUtils.ts +75 -0
  33. package/src/browser/renderer/shared/Constants.ts +14 -0
  34. package/src/browser/renderer/shared/CursorBlinkStateManager.ts +146 -0
  35. package/src/browser/renderer/shared/CustomGlyphs.ts +687 -0
  36. package/src/browser/renderer/shared/DevicePixelObserver.ts +41 -0
  37. package/src/browser/renderer/shared/README.md +1 -0
  38. package/src/browser/renderer/shared/RendererUtils.ts +58 -0
  39. package/src/browser/renderer/shared/SelectionRenderModel.ts +91 -0
  40. package/src/browser/renderer/shared/TextureAtlas.ts +1082 -0
  41. package/src/browser/renderer/shared/Types.d.ts +173 -0
  42. package/src/browser/selection/SelectionModel.ts +144 -0
  43. package/src/browser/selection/Types.d.ts +15 -0
  44. package/src/browser/services/CharSizeService.ts +102 -0
  45. package/src/browser/services/CharacterJoinerService.ts +339 -0
  46. package/src/browser/services/CoreBrowserService.ts +33 -0
  47. package/src/browser/services/MouseService.ts +46 -0
  48. package/src/browser/services/RenderService.ts +284 -0
  49. package/src/browser/services/SelectionService.ts +1029 -0
  50. package/src/browser/services/Services.ts +138 -0
  51. package/src/browser/services/ThemeService.ts +237 -0
  52. package/src/common/CircularList.ts +241 -0
  53. package/src/common/Clone.ts +23 -0
  54. package/src/common/Color.ts +356 -0
  55. package/src/common/CoreTerminal.ts +284 -0
  56. package/src/common/EventEmitter.ts +73 -0
  57. package/src/common/InputHandler.ts +3443 -0
  58. package/src/common/Lifecycle.ts +108 -0
  59. package/src/common/MultiKeyMap.ts +42 -0
  60. package/src/common/Platform.ts +43 -0
  61. package/src/common/SortedList.ts +118 -0
  62. package/src/common/TaskQueue.ts +166 -0
  63. package/src/common/TypedArrayUtils.ts +17 -0
  64. package/src/common/Types.d.ts +553 -0
  65. package/src/common/WindowsMode.ts +27 -0
  66. package/src/common/buffer/AttributeData.ts +196 -0
  67. package/src/common/buffer/Buffer.ts +654 -0
  68. package/src/common/buffer/BufferLine.ts +520 -0
  69. package/src/common/buffer/BufferRange.ts +13 -0
  70. package/src/common/buffer/BufferReflow.ts +223 -0
  71. package/src/common/buffer/BufferSet.ts +134 -0
  72. package/src/common/buffer/CellData.ts +94 -0
  73. package/src/common/buffer/Constants.ts +149 -0
  74. package/src/common/buffer/Marker.ts +43 -0
  75. package/src/common/buffer/Types.d.ts +52 -0
  76. package/src/common/data/Charsets.ts +256 -0
  77. package/src/common/data/EscapeSequences.ts +153 -0
  78. package/src/common/input/Keyboard.ts +398 -0
  79. package/src/common/input/TextDecoder.ts +346 -0
  80. package/src/common/input/UnicodeV6.ts +132 -0
  81. package/src/common/input/WriteBuffer.ts +246 -0
  82. package/src/common/input/XParseColor.ts +80 -0
  83. package/src/common/parser/Constants.ts +58 -0
  84. package/src/common/parser/DcsParser.ts +192 -0
  85. package/src/common/parser/EscapeSequenceParser.ts +792 -0
  86. package/src/common/parser/OscParser.ts +238 -0
  87. package/src/common/parser/Params.ts +229 -0
  88. package/src/common/parser/Types.d.ts +274 -0
  89. package/src/common/public/AddonManager.ts +53 -0
  90. package/src/common/public/BufferApiView.ts +35 -0
  91. package/src/common/public/BufferLineApiView.ts +29 -0
  92. package/src/common/public/BufferNamespaceApi.ts +36 -0
  93. package/src/common/public/ParserApi.ts +37 -0
  94. package/src/common/public/UnicodeApi.ts +27 -0
  95. package/src/common/services/BufferService.ts +151 -0
  96. package/src/common/services/CharsetService.ts +34 -0
  97. package/src/common/services/CoreMouseService.ts +318 -0
  98. package/src/common/services/CoreService.ts +87 -0
  99. package/src/common/services/DecorationService.ts +140 -0
  100. package/src/common/services/InstantiationService.ts +85 -0
  101. package/src/common/services/LogService.ts +124 -0
  102. package/src/common/services/OptionsService.ts +201 -0
  103. package/src/common/services/OscLinkService.ts +115 -0
  104. package/src/common/services/ServiceRegistry.ts +49 -0
  105. package/src/common/services/Services.ts +342 -0
  106. package/src/common/services/UnicodeService.ts +86 -0
  107. package/src/headless/Terminal.ts +136 -0
  108. package/src/headless/public/Terminal.ts +195 -0
  109. package/typings/xterm.d.ts +1844 -0
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Copyright (c) 2017 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ */
5
+
6
+ import { Disposable, toDisposable } from 'common/Lifecycle';
7
+
8
+ export type ScreenDprListener = (newDevicePixelRatio?: number, oldDevicePixelRatio?: number) => void;
9
+
10
+ /**
11
+ * The screen device pixel ratio monitor allows listening for when the
12
+ * window.devicePixelRatio value changes. This is done not with polling but with
13
+ * the use of window.matchMedia to watch media queries. When the event fires,
14
+ * the listener will be reattached using a different media query to ensure that
15
+ * any further changes will register.
16
+ *
17
+ * The listener should fire on both window zoom changes and switching to a
18
+ * monitor with a different DPI.
19
+ */
20
+ export class ScreenDprMonitor extends Disposable {
21
+ private _currentDevicePixelRatio: number;
22
+ private _outerListener: ((this: MediaQueryList, ev: MediaQueryListEvent) => any) | undefined;
23
+ private _listener: ScreenDprListener | undefined;
24
+ private _resolutionMediaMatchList: MediaQueryList | undefined;
25
+
26
+ constructor(private _parentWindow: Window) {
27
+ super();
28
+ this._currentDevicePixelRatio = this._parentWindow.devicePixelRatio;
29
+ this.register(toDisposable(() => {
30
+ this.clearListener();
31
+ }));
32
+ }
33
+
34
+ public setListener(listener: ScreenDprListener): void {
35
+ if (this._listener) {
36
+ this.clearListener();
37
+ }
38
+ this._listener = listener;
39
+ this._outerListener = () => {
40
+ if (!this._listener) {
41
+ return;
42
+ }
43
+ this._listener(this._parentWindow.devicePixelRatio, this._currentDevicePixelRatio);
44
+ this._updateDpr();
45
+ };
46
+ this._updateDpr();
47
+ }
48
+
49
+ private _updateDpr(): void {
50
+ if (!this._outerListener) {
51
+ return;
52
+ }
53
+
54
+ // Clear listeners for old DPR
55
+ this._resolutionMediaMatchList?.removeListener(this._outerListener);
56
+
57
+ // Add listeners for new DPR
58
+ this._currentDevicePixelRatio = this._parentWindow.devicePixelRatio;
59
+ this._resolutionMediaMatchList = this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`);
60
+ this._resolutionMediaMatchList.addListener(this._outerListener);
61
+ }
62
+
63
+ public clearListener(): void {
64
+ if (!this._resolutionMediaMatchList || !this._listener || !this._outerListener) {
65
+ return;
66
+ }
67
+ this._resolutionMediaMatchList.removeListener(this._outerListener);
68
+ this._resolutionMediaMatchList = undefined;
69
+ this._listener = undefined;
70
+ this._outerListener = undefined;
71
+ }
72
+ }