@xterm/xterm 5.6.0-beta.14 → 5.6.0-beta.141

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 (131) hide show
  1. package/README.md +10 -3
  2. package/css/xterm.css +71 -4
  3. package/lib/xterm.js +1 -1
  4. package/lib/xterm.js.map +1 -1
  5. package/lib/xterm.mjs +53 -0
  6. package/lib/xterm.mjs.map +7 -0
  7. package/package.json +46 -35
  8. package/src/browser/AccessibilityManager.ts +54 -26
  9. package/src/browser/{Terminal.ts → CoreBrowserTerminal.ts} +159 -145
  10. package/src/browser/Linkifier.ts +26 -14
  11. package/src/browser/LocalizableStrings.ts +15 -4
  12. package/src/browser/TimeBasedDebouncer.ts +2 -2
  13. package/src/browser/{Types.d.ts → Types.ts} +67 -15
  14. package/src/browser/Viewport.ts +148 -370
  15. package/src/browser/decorations/BufferDecorationRenderer.ts +14 -9
  16. package/src/browser/decorations/OverviewRulerRenderer.ts +40 -44
  17. package/src/browser/input/CompositionHelper.ts +2 -1
  18. package/src/browser/input/MoveToCell.ts +3 -1
  19. package/src/browser/public/Terminal.ts +26 -19
  20. package/src/browser/renderer/dom/DomRenderer.ts +19 -14
  21. package/src/browser/renderer/dom/DomRendererRowFactory.ts +35 -15
  22. package/src/browser/renderer/shared/Constants.ts +0 -8
  23. package/src/browser/renderer/shared/Types.ts +84 -0
  24. package/src/browser/services/CharSizeService.ts +6 -6
  25. package/src/browser/services/CoreBrowserService.ts +16 -20
  26. package/src/browser/services/LinkProviderService.ts +2 -2
  27. package/src/browser/services/RenderService.ts +116 -25
  28. package/src/browser/services/SelectionService.ts +16 -8
  29. package/src/browser/services/Services.ts +13 -13
  30. package/src/browser/services/ThemeService.ts +19 -58
  31. package/src/browser/shared/Constants.ts +8 -0
  32. package/src/common/CircularList.ts +5 -5
  33. package/src/common/CoreTerminal.ts +35 -41
  34. package/src/common/InputHandler.ts +97 -59
  35. package/src/common/TaskQueue.ts +7 -7
  36. package/src/common/{Types.d.ts → Types.ts} +14 -17
  37. package/src/common/buffer/Buffer.ts +15 -7
  38. package/src/common/buffer/BufferReflow.ts +9 -6
  39. package/src/common/buffer/BufferSet.ts +5 -5
  40. package/src/common/buffer/Marker.ts +4 -4
  41. package/src/common/buffer/{Types.d.ts → Types.ts} +2 -2
  42. package/src/common/input/Keyboard.ts +0 -24
  43. package/src/common/input/WriteBuffer.ts +9 -8
  44. package/src/common/parser/EscapeSequenceParser.ts +4 -4
  45. package/src/common/public/BufferNamespaceApi.ts +3 -3
  46. package/src/common/services/BufferService.ts +14 -11
  47. package/src/common/services/CoreMouseService.ts +53 -6
  48. package/src/common/services/CoreService.ts +13 -8
  49. package/src/common/services/DecorationService.ts +8 -9
  50. package/src/common/services/InstantiationService.ts +1 -1
  51. package/src/common/services/LogService.ts +2 -2
  52. package/src/common/services/OptionsService.ts +8 -6
  53. package/src/common/services/ServiceRegistry.ts +1 -1
  54. package/src/common/services/Services.ts +39 -17
  55. package/src/common/services/UnicodeService.ts +2 -2
  56. package/src/vs/base/browser/browser.ts +141 -0
  57. package/src/vs/base/browser/canIUse.ts +49 -0
  58. package/src/vs/base/browser/dom.ts +2369 -0
  59. package/src/vs/base/browser/fastDomNode.ts +316 -0
  60. package/src/vs/base/browser/globalPointerMoveMonitor.ts +112 -0
  61. package/src/vs/base/browser/iframe.ts +135 -0
  62. package/src/vs/base/browser/keyboardEvent.ts +213 -0
  63. package/src/vs/base/browser/mouseEvent.ts +229 -0
  64. package/src/vs/base/browser/touch.ts +372 -0
  65. package/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts +303 -0
  66. package/src/vs/base/browser/ui/scrollbar/horizontalScrollbar.ts +114 -0
  67. package/src/vs/base/browser/ui/scrollbar/scrollableElement.ts +720 -0
  68. package/src/vs/base/browser/ui/scrollbar/scrollableElementOptions.ts +165 -0
  69. package/src/vs/base/browser/ui/scrollbar/scrollbarArrow.ts +114 -0
  70. package/src/vs/base/browser/ui/scrollbar/scrollbarState.ts +243 -0
  71. package/src/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.ts +118 -0
  72. package/src/vs/base/browser/ui/scrollbar/verticalScrollbar.ts +116 -0
  73. package/src/vs/base/browser/ui/widget.ts +57 -0
  74. package/src/vs/base/browser/window.ts +14 -0
  75. package/src/vs/base/common/arrays.ts +887 -0
  76. package/src/vs/base/common/arraysFind.ts +202 -0
  77. package/src/vs/base/common/assert.ts +71 -0
  78. package/src/vs/base/common/async.ts +1992 -0
  79. package/src/vs/base/common/cancellation.ts +148 -0
  80. package/src/vs/base/common/charCode.ts +450 -0
  81. package/src/vs/base/common/collections.ts +140 -0
  82. package/src/vs/base/common/decorators.ts +130 -0
  83. package/src/vs/base/common/equals.ts +146 -0
  84. package/src/vs/base/common/errors.ts +303 -0
  85. package/src/vs/base/common/event.ts +1778 -0
  86. package/src/vs/base/common/functional.ts +32 -0
  87. package/src/vs/base/common/hash.ts +316 -0
  88. package/src/vs/base/common/iterator.ts +159 -0
  89. package/src/vs/base/common/keyCodes.ts +526 -0
  90. package/src/vs/base/common/keybindings.ts +284 -0
  91. package/src/vs/base/common/lazy.ts +47 -0
  92. package/src/vs/base/common/lifecycle.ts +801 -0
  93. package/src/vs/base/common/linkedList.ts +142 -0
  94. package/src/vs/base/common/map.ts +202 -0
  95. package/src/vs/base/common/numbers.ts +98 -0
  96. package/src/vs/base/common/observable.ts +76 -0
  97. package/src/vs/base/common/observableInternal/api.ts +31 -0
  98. package/src/vs/base/common/observableInternal/autorun.ts +281 -0
  99. package/src/vs/base/common/observableInternal/base.ts +489 -0
  100. package/src/vs/base/common/observableInternal/debugName.ts +145 -0
  101. package/src/vs/base/common/observableInternal/derived.ts +428 -0
  102. package/src/vs/base/common/observableInternal/lazyObservableValue.ts +146 -0
  103. package/src/vs/base/common/observableInternal/logging.ts +328 -0
  104. package/src/vs/base/common/observableInternal/promise.ts +209 -0
  105. package/src/vs/base/common/observableInternal/utils.ts +610 -0
  106. package/src/vs/base/common/platform.ts +281 -0
  107. package/src/vs/base/common/scrollable.ts +522 -0
  108. package/src/vs/base/common/sequence.ts +34 -0
  109. package/src/vs/base/common/stopwatch.ts +43 -0
  110. package/src/vs/base/common/strings.ts +557 -0
  111. package/src/vs/base/common/symbols.ts +9 -0
  112. package/src/vs/base/common/uint.ts +59 -0
  113. package/src/vs/patches/nls.ts +90 -0
  114. package/src/vs/typings/base-common.d.ts +20 -0
  115. package/src/vs/typings/require.d.ts +42 -0
  116. package/src/vs/typings/vscode-globals-nls.d.ts +36 -0
  117. package/src/vs/typings/vscode-globals-product.d.ts +33 -0
  118. package/typings/xterm.d.ts +87 -14
  119. package/src/browser/Lifecycle.ts +0 -33
  120. package/src/browser/renderer/shared/CellColorResolver.ts +0 -236
  121. package/src/browser/renderer/shared/CharAtlasCache.ts +0 -96
  122. package/src/browser/renderer/shared/CharAtlasUtils.ts +0 -75
  123. package/src/browser/renderer/shared/CursorBlinkStateManager.ts +0 -146
  124. package/src/browser/renderer/shared/CustomGlyphs.ts +0 -687
  125. package/src/browser/renderer/shared/DevicePixelObserver.ts +0 -41
  126. package/src/browser/renderer/shared/TextureAtlas.ts +0 -1100
  127. package/src/browser/renderer/shared/Types.d.ts +0 -173
  128. package/src/common/EventEmitter.ts +0 -78
  129. package/src/common/Lifecycle.ts +0 -108
  130. /package/src/browser/selection/{Types.d.ts → Types.ts} +0 -0
  131. /package/src/common/parser/{Types.d.ts → Types.ts} +0 -0
@@ -1,173 +0,0 @@
1
- /**
2
- * Copyright (c) 2017 The xterm.js authors. All rights reserved.
3
- * @license MIT
4
- */
5
-
6
- import { FontWeight, Terminal } from '@xterm/xterm';
7
- import { IColorSet, ITerminal } from 'browser/Types';
8
- import { IDisposable } from 'common/Types';
9
- import { IEvent } from 'common/EventEmitter';
10
-
11
- export interface ICharAtlasConfig {
12
- customGlyphs: boolean;
13
- devicePixelRatio: number;
14
- letterSpacing: number;
15
- lineHeight: number;
16
- fontSize: number;
17
- fontFamily: string;
18
- fontWeight: FontWeight;
19
- fontWeightBold: FontWeight;
20
- deviceCellWidth: number;
21
- deviceCellHeight: number;
22
- deviceCharWidth: number;
23
- deviceCharHeight: number;
24
- allowTransparency: boolean;
25
- drawBoldTextInBrightColors: boolean;
26
- minimumContrastRatio: number;
27
- colors: IColorSet;
28
- }
29
-
30
- export interface IDimensions {
31
- width: number;
32
- height: number;
33
- }
34
-
35
- export interface IOffset {
36
- top: number;
37
- left: number;
38
- }
39
-
40
- export interface IRenderDimensions {
41
- /**
42
- * Dimensions measured in CSS pixels (ie. device pixels / device pixel ratio).
43
- */
44
- css: {
45
- canvas: IDimensions;
46
- cell: IDimensions;
47
- };
48
- /**
49
- * Dimensions measured in actual pixels as rendered to the device.
50
- */
51
- device: {
52
- canvas: IDimensions;
53
- cell: IDimensions;
54
- char: IDimensions & IOffset;
55
- };
56
- }
57
-
58
- export interface IRequestRedrawEvent {
59
- start: number;
60
- end: number;
61
- }
62
-
63
- /**
64
- * Note that IRenderer implementations should emit the refresh event after
65
- * rendering rows to the screen.
66
- */
67
- export interface IRenderer extends IDisposable {
68
- readonly dimensions: IRenderDimensions;
69
-
70
- /**
71
- * Fires when the renderer is requesting to be redrawn on the next animation
72
- * frame but is _not_ a result of content changing (eg. selection changes).
73
- */
74
- readonly onRequestRedraw: IEvent<IRequestRedrawEvent>;
75
-
76
- dispose(): void;
77
- handleDevicePixelRatioChange(): void;
78
- handleResize(cols: number, rows: number): void;
79
- handleCharSizeChanged(): void;
80
- handleBlur(): void;
81
- handleFocus(): void;
82
- handleSelectionChanged(start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode: boolean): void;
83
- handleCursorMove(): void;
84
- clear(): void;
85
- renderRows(start: number, end: number): void;
86
- clearTextureAtlas?(): void;
87
- }
88
-
89
- export interface ITextureAtlas extends IDisposable {
90
- readonly pages: { canvas: HTMLCanvasElement, version: number }[];
91
-
92
- onAddTextureAtlasCanvas: IEvent<HTMLCanvasElement>;
93
- onRemoveTextureAtlasCanvas: IEvent<HTMLCanvasElement>;
94
-
95
- /**
96
- * Warm up the texture atlas, adding common glyphs to avoid slowing early frame.
97
- */
98
- warmUp(): void;
99
-
100
- /**
101
- * Call when a frame is being drawn, this will return true if the atlas was cleared to make room
102
- * for a new set of glyphs.
103
- */
104
- beginFrame(): boolean;
105
-
106
- /**
107
- * Clear all glyphs from the texture atlas.
108
- */
109
- clearTexture(): void;
110
- getRasterizedGlyph(code: number, bg: number, fg: number, ext: number, restrictToCellHeight: boolean): IRasterizedGlyph;
111
- getRasterizedGlyphCombinedChar(chars: string, bg: number, fg: number, ext: number, restrictToCellHeight: boolean): IRasterizedGlyph;
112
- }
113
-
114
- /**
115
- * Represents a rasterized glyph within a texture atlas. Some numbers are
116
- * tracked in CSS pixels as well in order to reduce calculations during the
117
- * render loop.
118
- */
119
- export interface IRasterizedGlyph {
120
- /**
121
- * The x and y offset between the glyph's top/left and the top/left of a cell
122
- * in pixels.
123
- */
124
- offset: IVector;
125
- /**
126
- * The index of the texture page that the glyph is on.
127
- */
128
- texturePage: number;
129
- /**
130
- * the x and y position of the glyph in the texture in pixels.
131
- */
132
- texturePosition: IVector;
133
- /**
134
- * the x and y position of the glyph in the texture in clip space coordinates.
135
- */
136
- texturePositionClipSpace: IVector;
137
- /**
138
- * The width and height of the glyph in the texture in pixels.
139
- */
140
- size: IVector;
141
- /**
142
- * The width and height of the glyph in the texture in clip space coordinates.
143
- */
144
- sizeClipSpace: IVector;
145
- }
146
-
147
- export interface IVector {
148
- x: number;
149
- y: number;
150
- }
151
-
152
- export interface IBoundingBox {
153
- top: number;
154
- left: number;
155
- right: number;
156
- bottom: number;
157
- }
158
-
159
- export interface ISelectionRenderModel {
160
- readonly hasSelection: boolean;
161
- readonly columnSelectMode: boolean;
162
- readonly viewportStartRow: number;
163
- readonly viewportEndRow: number;
164
- readonly viewportCappedStartRow: number;
165
- readonly viewportCappedEndRow: number;
166
- readonly startCol: number;
167
- readonly endCol: number;
168
- readonly selectionStart: [number, number] | undefined;
169
- readonly selectionEnd: [number, number] | undefined;
170
- clear(): void;
171
- update(terminal: ITerminal, start: [number, number] | undefined, end: [number, number] | undefined, columnSelectMode?: boolean): void;
172
- isCellSelected(terminal: Terminal, x: number, y: number): boolean;
173
- }
@@ -1,78 +0,0 @@
1
- /**
2
- * Copyright (c) 2019 The xterm.js authors. All rights reserved.
3
- * @license MIT
4
- */
5
-
6
- import { IDisposable } from 'common/Types';
7
-
8
- interface IListener<T, U = void> {
9
- (arg1: T, arg2: U): void;
10
- }
11
-
12
- export interface IEvent<T, U = void> {
13
- (listener: (arg1: T, arg2: U) => any): IDisposable;
14
- }
15
-
16
- export interface IEventEmitter<T, U = void> {
17
- event: IEvent<T, U>;
18
- fire(arg1: T, arg2: U): void;
19
- dispose(): void;
20
- }
21
-
22
- export class EventEmitter<T, U = void> implements IEventEmitter<T, U> {
23
- private _listeners: IListener<T, U>[] = [];
24
- private _event?: IEvent<T, U>;
25
- private _disposed: boolean = false;
26
-
27
- public get event(): IEvent<T, U> {
28
- if (!this._event) {
29
- this._event = (listener: (arg1: T, arg2: U) => any) => {
30
- this._listeners.push(listener);
31
- const disposable = {
32
- dispose: () => {
33
- if (!this._disposed) {
34
- for (let i = 0; i < this._listeners.length; i++) {
35
- if (this._listeners[i] === listener) {
36
- this._listeners.splice(i, 1);
37
- return;
38
- }
39
- }
40
- }
41
- }
42
- };
43
- return disposable;
44
- };
45
- }
46
- return this._event;
47
- }
48
-
49
- public fire(arg1: T, arg2: U): void {
50
- const queue: IListener<T, U>[] = [];
51
- for (let i = 0; i < this._listeners.length; i++) {
52
- queue.push(this._listeners[i]);
53
- }
54
- for (let i = 0; i < queue.length; i++) {
55
- queue[i].call(undefined, arg1, arg2);
56
- }
57
- }
58
-
59
- public dispose(): void {
60
- this.clearListeners();
61
- this._disposed = true;
62
- }
63
-
64
- public clearListeners(): void {
65
- if (this._listeners) {
66
- this._listeners.length = 0;
67
- }
68
- }
69
- }
70
-
71
- export function forwardEvent<T>(from: IEvent<T>, to: IEventEmitter<T>): IDisposable {
72
- return from(e => to.fire(e));
73
- }
74
-
75
- export function runAndSubscribe<T>(event: IEvent<T>, handler: (e: T | undefined) => any): IDisposable {
76
- handler(undefined);
77
- return event(e => handler(e));
78
- }
@@ -1,108 +0,0 @@
1
- /**
2
- * Copyright (c) 2018 The xterm.js authors. All rights reserved.
3
- * @license MIT
4
- */
5
-
6
- import { IDisposable } from 'common/Types';
7
-
8
- /**
9
- * A base class that can be extended to provide convenience methods for managing the lifecycle of an
10
- * object and its components.
11
- */
12
- export abstract class Disposable implements IDisposable {
13
- protected _disposables: IDisposable[] = [];
14
- protected _isDisposed: boolean = false;
15
-
16
- /**
17
- * Disposes the object, triggering the `dispose` method on all registered IDisposables.
18
- */
19
- public dispose(): void {
20
- this._isDisposed = true;
21
- for (const d of this._disposables) {
22
- d.dispose();
23
- }
24
- this._disposables.length = 0;
25
- }
26
-
27
- /**
28
- * Registers a disposable object.
29
- * @param d The disposable to register.
30
- * @returns The disposable.
31
- */
32
- public register<T extends IDisposable>(d: T): T {
33
- this._disposables.push(d);
34
- return d;
35
- }
36
-
37
- /**
38
- * Unregisters a disposable object if it has been registered, if not do
39
- * nothing.
40
- * @param d The disposable to unregister.
41
- */
42
- public unregister<T extends IDisposable>(d: T): void {
43
- const index = this._disposables.indexOf(d);
44
- if (index !== -1) {
45
- this._disposables.splice(index, 1);
46
- }
47
- }
48
- }
49
-
50
- export class MutableDisposable<T extends IDisposable> implements IDisposable {
51
- private _value?: T;
52
- private _isDisposed = false;
53
-
54
- /**
55
- * Gets the value if it exists.
56
- */
57
- public get value(): T | undefined {
58
- return this._isDisposed ? undefined : this._value;
59
- }
60
-
61
- /**
62
- * Sets the value, disposing of the old value if it exists.
63
- */
64
- public set value(value: T | undefined) {
65
- if (this._isDisposed || value === this._value) {
66
- return;
67
- }
68
- this._value?.dispose();
69
- this._value = value;
70
- }
71
-
72
- /**
73
- * Resets the stored value and disposes of the previously stored value.
74
- */
75
- public clear(): void {
76
- this.value = undefined;
77
- }
78
-
79
- public dispose(): void {
80
- this._isDisposed = true;
81
- this._value?.dispose();
82
- this._value = undefined;
83
- }
84
- }
85
-
86
- /**
87
- * Wrap a function in a disposable.
88
- */
89
- export function toDisposable(f: () => void): IDisposable {
90
- return { dispose: f };
91
- }
92
-
93
- /**
94
- * Dispose of all disposables in an array and set its length to 0.
95
- */
96
- export function disposeArray(disposables: IDisposable[]): void {
97
- for (const d of disposables) {
98
- d.dispose();
99
- }
100
- disposables.length = 0;
101
- }
102
-
103
- /**
104
- * Creates a disposable that will dispose of an array of disposables when disposed.
105
- */
106
- export function getDisposeArrayDisposable(array: IDisposable[]): IDisposable {
107
- return { dispose: () => disposeArray(array) };
108
- }
File without changes
File without changes