@wendongfly/myhi 1.0.2 → 1.0.3

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 (135) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/lib/xterm/LICENSE +21 -0
  3. package/dist/lib/xterm/README.md +225 -0
  4. package/dist/lib/xterm/css/xterm.css +190 -0
  5. package/dist/lib/xterm/lib/xterm.js +2 -0
  6. package/dist/lib/xterm/lib/xterm.js.map +1 -0
  7. package/dist/lib/xterm/package.json +90 -0
  8. package/dist/lib/xterm/src/browser/AccessibilityManager.ts +301 -0
  9. package/dist/lib/xterm/src/browser/Clipboard.ts +99 -0
  10. package/dist/lib/xterm/src/browser/ColorContrastCache.ts +39 -0
  11. package/dist/lib/xterm/src/browser/ColorManager.ts +268 -0
  12. package/dist/lib/xterm/src/browser/Dom.ts +10 -0
  13. package/dist/lib/xterm/src/browser/Lifecycle.ts +30 -0
  14. package/dist/lib/xterm/src/browser/Linkifier.ts +356 -0
  15. package/dist/lib/xterm/src/browser/Linkifier2.ts +397 -0
  16. package/dist/lib/xterm/src/browser/LocalizableStrings.ts +10 -0
  17. package/dist/lib/xterm/src/browser/MouseZoneManager.ts +236 -0
  18. package/dist/lib/xterm/src/browser/RenderDebouncer.ts +82 -0
  19. package/dist/lib/xterm/src/browser/ScreenDprMonitor.ts +69 -0
  20. package/dist/lib/xterm/src/browser/Terminal.ts +1447 -0
  21. package/dist/lib/xterm/src/browser/TimeBasedDebouncer.ts +86 -0
  22. package/dist/lib/xterm/src/browser/Types.d.ts +317 -0
  23. package/dist/lib/xterm/src/browser/Viewport.ts +276 -0
  24. package/dist/lib/xterm/src/browser/decorations/BufferDecorationRenderer.ts +131 -0
  25. package/dist/lib/xterm/src/browser/decorations/ColorZoneStore.ts +117 -0
  26. package/dist/lib/xterm/src/browser/decorations/OverviewRulerRenderer.ts +228 -0
  27. package/dist/lib/xterm/src/browser/input/CompositionHelper.ts +237 -0
  28. package/dist/lib/xterm/src/browser/input/Mouse.ts +64 -0
  29. package/dist/lib/xterm/src/browser/input/MoveToCell.ts +249 -0
  30. package/dist/lib/xterm/src/browser/public/Terminal.ts +298 -0
  31. package/dist/lib/xterm/src/browser/renderer/BaseRenderLayer.ts +582 -0
  32. package/dist/lib/xterm/src/browser/renderer/CursorRenderLayer.ts +378 -0
  33. package/dist/lib/xterm/src/browser/renderer/CustomGlyphs.ts +632 -0
  34. package/dist/lib/xterm/src/browser/renderer/GridCache.ts +33 -0
  35. package/dist/lib/xterm/src/browser/renderer/LinkRenderLayer.ts +84 -0
  36. package/dist/lib/xterm/src/browser/renderer/Renderer.ts +219 -0
  37. package/dist/lib/xterm/src/browser/renderer/RendererUtils.ts +26 -0
  38. package/dist/lib/xterm/src/browser/renderer/SelectionRenderLayer.ts +131 -0
  39. package/dist/lib/xterm/src/browser/renderer/TextRenderLayer.ts +344 -0
  40. package/dist/lib/xterm/src/browser/renderer/Types.d.ts +109 -0
  41. package/dist/lib/xterm/src/browser/renderer/atlas/BaseCharAtlas.ts +58 -0
  42. package/dist/lib/xterm/src/browser/renderer/atlas/CharAtlasCache.ts +95 -0
  43. package/dist/lib/xterm/src/browser/renderer/atlas/CharAtlasUtils.ts +54 -0
  44. package/dist/lib/xterm/src/browser/renderer/atlas/Constants.ts +15 -0
  45. package/dist/lib/xterm/src/browser/renderer/atlas/DynamicCharAtlas.ts +404 -0
  46. package/dist/lib/xterm/src/browser/renderer/atlas/LRUMap.ts +136 -0
  47. package/dist/lib/xterm/src/browser/renderer/atlas/Types.d.ts +29 -0
  48. package/dist/lib/xterm/src/browser/renderer/dom/DomRenderer.ts +403 -0
  49. package/dist/lib/xterm/src/browser/renderer/dom/DomRendererRowFactory.ts +344 -0
  50. package/dist/lib/xterm/src/browser/selection/SelectionModel.ts +144 -0
  51. package/dist/lib/xterm/src/browser/selection/Types.d.ts +15 -0
  52. package/dist/lib/xterm/src/browser/services/CharSizeService.ts +87 -0
  53. package/dist/lib/xterm/src/browser/services/CharacterJoinerService.ts +339 -0
  54. package/dist/lib/xterm/src/browser/services/CoreBrowserService.ts +20 -0
  55. package/dist/lib/xterm/src/browser/services/MouseService.ts +36 -0
  56. package/dist/lib/xterm/src/browser/services/RenderService.ts +237 -0
  57. package/dist/lib/xterm/src/browser/services/SelectionService.ts +1027 -0
  58. package/dist/lib/xterm/src/browser/services/Services.ts +123 -0
  59. package/dist/lib/xterm/src/browser/services/SoundService.ts +63 -0
  60. package/dist/lib/xterm/src/common/CircularList.ts +239 -0
  61. package/dist/lib/xterm/src/common/Clone.ts +23 -0
  62. package/dist/lib/xterm/src/common/Color.ts +285 -0
  63. package/dist/lib/xterm/src/common/CoreTerminal.ts +300 -0
  64. package/dist/lib/xterm/src/common/EventEmitter.ts +69 -0
  65. package/dist/lib/xterm/src/common/InputHandler.ts +3230 -0
  66. package/dist/lib/xterm/src/common/Lifecycle.ts +68 -0
  67. package/dist/lib/xterm/src/common/Platform.ts +31 -0
  68. package/dist/lib/xterm/src/common/SortedList.ts +88 -0
  69. package/dist/lib/xterm/src/common/TypedArrayUtils.ts +50 -0
  70. package/dist/lib/xterm/src/common/Types.d.ts +489 -0
  71. package/dist/lib/xterm/src/common/WindowsMode.ts +27 -0
  72. package/dist/lib/xterm/src/common/buffer/AttributeData.ts +148 -0
  73. package/dist/lib/xterm/src/common/buffer/Buffer.ts +711 -0
  74. package/dist/lib/xterm/src/common/buffer/BufferLine.ts +441 -0
  75. package/dist/lib/xterm/src/common/buffer/BufferRange.ts +13 -0
  76. package/dist/lib/xterm/src/common/buffer/BufferReflow.ts +220 -0
  77. package/dist/lib/xterm/src/common/buffer/BufferSet.ts +131 -0
  78. package/dist/lib/xterm/src/common/buffer/CellData.ts +94 -0
  79. package/dist/lib/xterm/src/common/buffer/Constants.ts +139 -0
  80. package/dist/lib/xterm/src/common/buffer/Marker.ts +37 -0
  81. package/dist/lib/xterm/src/common/buffer/Types.d.ts +64 -0
  82. package/dist/lib/xterm/src/common/data/Charsets.ts +256 -0
  83. package/dist/lib/xterm/src/common/data/EscapeSequences.ts +153 -0
  84. package/dist/lib/xterm/src/common/input/Keyboard.ts +398 -0
  85. package/dist/lib/xterm/src/common/input/TextDecoder.ts +346 -0
  86. package/dist/lib/xterm/src/common/input/UnicodeV6.ts +133 -0
  87. package/dist/lib/xterm/src/common/input/WriteBuffer.ts +229 -0
  88. package/dist/lib/xterm/src/common/input/XParseColor.ts +80 -0
  89. package/dist/lib/xterm/src/common/parser/Constants.ts +58 -0
  90. package/dist/lib/xterm/src/common/parser/DcsParser.ts +192 -0
  91. package/dist/lib/xterm/src/common/parser/EscapeSequenceParser.ts +796 -0
  92. package/dist/lib/xterm/src/common/parser/OscParser.ts +238 -0
  93. package/dist/lib/xterm/src/common/parser/Params.ts +229 -0
  94. package/dist/lib/xterm/src/common/parser/Types.d.ts +274 -0
  95. package/dist/lib/xterm/src/common/public/AddonManager.ts +56 -0
  96. package/dist/lib/xterm/src/common/public/BufferApiView.ts +35 -0
  97. package/dist/lib/xterm/src/common/public/BufferLineApiView.ts +29 -0
  98. package/dist/lib/xterm/src/common/public/BufferNamespaceApi.ts +33 -0
  99. package/dist/lib/xterm/src/common/public/ParserApi.ts +37 -0
  100. package/dist/lib/xterm/src/common/public/UnicodeApi.ts +27 -0
  101. package/dist/lib/xterm/src/common/services/BufferService.ts +185 -0
  102. package/dist/lib/xterm/src/common/services/CharsetService.ts +34 -0
  103. package/dist/lib/xterm/src/common/services/CoreMouseService.ts +309 -0
  104. package/dist/lib/xterm/src/common/services/CoreService.ts +92 -0
  105. package/dist/lib/xterm/src/common/services/DecorationService.ts +139 -0
  106. package/dist/lib/xterm/src/common/services/DirtyRowService.ts +53 -0
  107. package/dist/lib/xterm/src/common/services/InstantiationService.ts +83 -0
  108. package/dist/lib/xterm/src/common/services/LogService.ts +88 -0
  109. package/dist/lib/xterm/src/common/services/OptionsService.ts +178 -0
  110. package/dist/lib/xterm/src/common/services/ServiceRegistry.ts +49 -0
  111. package/dist/lib/xterm/src/common/services/Services.ts +323 -0
  112. package/dist/lib/xterm/src/common/services/UnicodeService.ts +82 -0
  113. package/dist/lib/xterm/src/headless/Terminal.ts +170 -0
  114. package/dist/lib/xterm/src/headless/Types.d.ts +31 -0
  115. package/dist/lib/xterm/src/headless/public/Terminal.ts +216 -0
  116. package/dist/lib/xterm/typings/xterm.d.ts +1872 -0
  117. package/dist/lib/xterm-fit/LICENSE +19 -0
  118. package/dist/lib/xterm-fit/README.md +24 -0
  119. package/dist/lib/xterm-fit/lib/xterm-addon-fit.js +2 -0
  120. package/dist/lib/xterm-fit/lib/xterm-addon-fit.js.map +1 -0
  121. package/dist/lib/xterm-fit/out/FitAddon.js +58 -0
  122. package/dist/lib/xterm-fit/out/FitAddon.js.map +1 -0
  123. package/dist/lib/xterm-fit/out-test/FitAddon.api.js.map +1 -0
  124. package/dist/lib/xterm-fit/package.json +21 -0
  125. package/dist/lib/xterm-fit/src/FitAddon.ts +86 -0
  126. package/dist/lib/xterm-fit/typings/xterm-addon-fit.d.ts +55 -0
  127. package/dist/lib/xterm-links/LICENSE +19 -0
  128. package/dist/lib/xterm-links/README.md +21 -0
  129. package/dist/lib/xterm-links/lib/xterm-addon-web-links.js +2 -0
  130. package/dist/lib/xterm-links/lib/xterm-addon-web-links.js.map +1 -0
  131. package/dist/lib/xterm-links/package.json +26 -0
  132. package/dist/lib/xterm-links/src/WebLinkProvider.ts +145 -0
  133. package/dist/lib/xterm-links/src/WebLinksAddon.ts +77 -0
  134. package/dist/lib/xterm-links/typings/xterm-addon-web-links.d.ts +58 -0
  135. package/package.json +1 -1
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Copyright (c) 2017 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ */
5
+
6
+ import { IBuffer, IBufferSet } from 'common/buffer/Types';
7
+ import { IAttributeData } from 'common/Types';
8
+ import { Buffer } from 'common/buffer/Buffer';
9
+ import { EventEmitter, IEvent } from 'common/EventEmitter';
10
+ import { IOptionsService, IBufferService } from 'common/services/Services';
11
+ import { Disposable } from 'common/Lifecycle';
12
+
13
+ /**
14
+ * The BufferSet represents the set of two buffers used by xterm terminals (normal and alt) and
15
+ * provides also utilities for working with them.
16
+ */
17
+ export class BufferSet extends Disposable implements IBufferSet {
18
+ private _normal!: Buffer;
19
+ private _alt!: Buffer;
20
+ private _activeBuffer!: Buffer;
21
+
22
+ private _onBufferActivate = this.register(new EventEmitter<{activeBuffer: IBuffer, inactiveBuffer: IBuffer}>());
23
+ public get onBufferActivate(): IEvent<{activeBuffer: IBuffer, inactiveBuffer: IBuffer}> { return this._onBufferActivate.event; }
24
+
25
+ /**
26
+ * Create a new BufferSet for the given terminal.
27
+ * @param _terminal - The terminal the BufferSet will belong to
28
+ */
29
+ constructor(
30
+ private readonly _optionsService: IOptionsService,
31
+ private readonly _bufferService: IBufferService
32
+ ) {
33
+ super();
34
+ this.reset();
35
+ }
36
+
37
+ public reset(): void {
38
+ this._normal = new Buffer(true, this._optionsService, this._bufferService);
39
+ this._normal.fillViewportRows();
40
+
41
+ // The alt buffer should never have scrollback.
42
+ // See http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-The-Alternate-Screen-Buffer
43
+ this._alt = new Buffer(false, this._optionsService, this._bufferService);
44
+ this._activeBuffer = this._normal;
45
+ this._onBufferActivate.fire({
46
+ activeBuffer: this._normal,
47
+ inactiveBuffer: this._alt
48
+ });
49
+
50
+ this.setupTabStops();
51
+ }
52
+
53
+ /**
54
+ * Returns the alt Buffer of the BufferSet
55
+ */
56
+ public get alt(): Buffer {
57
+ return this._alt;
58
+ }
59
+
60
+ /**
61
+ * Returns the normal Buffer of the BufferSet
62
+ */
63
+ public get active(): Buffer {
64
+ return this._activeBuffer;
65
+ }
66
+
67
+ /**
68
+ * Returns the currently active Buffer of the BufferSet
69
+ */
70
+ public get normal(): Buffer {
71
+ return this._normal;
72
+ }
73
+
74
+ /**
75
+ * Sets the normal Buffer of the BufferSet as its currently active Buffer
76
+ */
77
+ public activateNormalBuffer(): void {
78
+ if (this._activeBuffer === this._normal) {
79
+ return;
80
+ }
81
+ this._normal.x = this._alt.x;
82
+ this._normal.y = this._alt.y;
83
+ // The alt buffer should always be cleared when we switch to the normal
84
+ // buffer. This frees up memory since the alt buffer should always be new
85
+ // when activated.
86
+ this._alt.clear();
87
+ this._activeBuffer = this._normal;
88
+ this._onBufferActivate.fire({
89
+ activeBuffer: this._normal,
90
+ inactiveBuffer: this._alt
91
+ });
92
+ }
93
+
94
+ /**
95
+ * Sets the alt Buffer of the BufferSet as its currently active Buffer
96
+ */
97
+ public activateAltBuffer(fillAttr?: IAttributeData): void {
98
+ if (this._activeBuffer === this._alt) {
99
+ return;
100
+ }
101
+ // Since the alt buffer is always cleared when the normal buffer is
102
+ // activated, we want to fill it when switching to it.
103
+ this._alt.fillViewportRows(fillAttr);
104
+ this._alt.x = this._normal.x;
105
+ this._alt.y = this._normal.y;
106
+ this._activeBuffer = this._alt;
107
+ this._onBufferActivate.fire({
108
+ activeBuffer: this._alt,
109
+ inactiveBuffer: this._normal
110
+ });
111
+ }
112
+
113
+ /**
114
+ * Resizes both normal and alt buffers, adjusting their data accordingly.
115
+ * @param newCols The new number of columns.
116
+ * @param newRows The new number of rows.
117
+ */
118
+ public resize(newCols: number, newRows: number): void {
119
+ this._normal.resize(newCols, newRows);
120
+ this._alt.resize(newCols, newRows);
121
+ }
122
+
123
+ /**
124
+ * Setup the tab stops.
125
+ * @param i The index to start setting up tab stops from.
126
+ */
127
+ public setupTabStops(i?: number): void {
128
+ this._normal.setupTabStops(i);
129
+ this._alt.setupTabStops(i);
130
+ }
131
+ }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Copyright (c) 2018 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ */
5
+
6
+ import { CharData, ICellData, IExtendedAttrs } from 'common/Types';
7
+ import { stringFromCodePoint } from 'common/input/TextDecoder';
8
+ import { CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, CHAR_DATA_ATTR_INDEX, Content } from 'common/buffer/Constants';
9
+ import { AttributeData, ExtendedAttrs } from 'common/buffer/AttributeData';
10
+
11
+ /**
12
+ * CellData - represents a single Cell in the terminal buffer.
13
+ */
14
+ export class CellData extends AttributeData implements ICellData {
15
+ /** Helper to create CellData from CharData. */
16
+ public static fromCharData(value: CharData): CellData {
17
+ const obj = new CellData();
18
+ obj.setFromCharData(value);
19
+ return obj;
20
+ }
21
+ /** Primitives from terminal buffer. */
22
+ public content = 0;
23
+ public fg = 0;
24
+ public bg = 0;
25
+ public extended: IExtendedAttrs = new ExtendedAttrs();
26
+ public combinedData = '';
27
+ /** Whether cell contains a combined string. */
28
+ public isCombined(): number {
29
+ return this.content & Content.IS_COMBINED_MASK;
30
+ }
31
+ /** Width of the cell. */
32
+ public getWidth(): number {
33
+ return this.content >> Content.WIDTH_SHIFT;
34
+ }
35
+ /** JS string of the content. */
36
+ public getChars(): string {
37
+ if (this.content & Content.IS_COMBINED_MASK) {
38
+ return this.combinedData;
39
+ }
40
+ if (this.content & Content.CODEPOINT_MASK) {
41
+ return stringFromCodePoint(this.content & Content.CODEPOINT_MASK);
42
+ }
43
+ return '';
44
+ }
45
+ /**
46
+ * Codepoint of cell
47
+ * Note this returns the UTF32 codepoint of single chars,
48
+ * if content is a combined string it returns the codepoint
49
+ * of the last char in string to be in line with code in CharData.
50
+ * */
51
+ public getCode(): number {
52
+ return (this.isCombined())
53
+ ? this.combinedData.charCodeAt(this.combinedData.length - 1)
54
+ : this.content & Content.CODEPOINT_MASK;
55
+ }
56
+ /** Set data from CharData */
57
+ public setFromCharData(value: CharData): void {
58
+ this.fg = value[CHAR_DATA_ATTR_INDEX];
59
+ this.bg = 0;
60
+ let combined = false;
61
+ // surrogates and combined strings need special treatment
62
+ if (value[CHAR_DATA_CHAR_INDEX].length > 2) {
63
+ combined = true;
64
+ }
65
+ else if (value[CHAR_DATA_CHAR_INDEX].length === 2) {
66
+ const code = value[CHAR_DATA_CHAR_INDEX].charCodeAt(0);
67
+ // if the 2-char string is a surrogate create single codepoint
68
+ // everything else is combined
69
+ if (0xD800 <= code && code <= 0xDBFF) {
70
+ const second = value[CHAR_DATA_CHAR_INDEX].charCodeAt(1);
71
+ if (0xDC00 <= second && second <= 0xDFFF) {
72
+ this.content = ((code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000) | (value[CHAR_DATA_WIDTH_INDEX] << Content.WIDTH_SHIFT);
73
+ }
74
+ else {
75
+ combined = true;
76
+ }
77
+ }
78
+ else {
79
+ combined = true;
80
+ }
81
+ }
82
+ else {
83
+ this.content = value[CHAR_DATA_CHAR_INDEX].charCodeAt(0) | (value[CHAR_DATA_WIDTH_INDEX] << Content.WIDTH_SHIFT);
84
+ }
85
+ if (combined) {
86
+ this.combinedData = value[CHAR_DATA_CHAR_INDEX];
87
+ this.content = Content.IS_COMBINED_MASK | (value[CHAR_DATA_WIDTH_INDEX] << Content.WIDTH_SHIFT);
88
+ }
89
+ }
90
+ /** Get data as CharData. */
91
+ public getAsCharData(): CharData {
92
+ return [this.fg, this.getChars(), this.getWidth(), this.getCode()];
93
+ }
94
+ }
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Copyright (c) 2019 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ */
5
+
6
+ export const DEFAULT_COLOR = 256;
7
+ export const DEFAULT_ATTR = (0 << 18) | (DEFAULT_COLOR << 9) | (256 << 0);
8
+
9
+ export const CHAR_DATA_ATTR_INDEX = 0;
10
+ export const CHAR_DATA_CHAR_INDEX = 1;
11
+ export const CHAR_DATA_WIDTH_INDEX = 2;
12
+ export const CHAR_DATA_CODE_INDEX = 3;
13
+
14
+ /**
15
+ * Null cell - a real empty cell (containing nothing).
16
+ * Note that code should always be 0 for a null cell as
17
+ * several test condition of the buffer line rely on this.
18
+ */
19
+ export const NULL_CELL_CHAR = '';
20
+ export const NULL_CELL_WIDTH = 1;
21
+ export const NULL_CELL_CODE = 0;
22
+
23
+ /**
24
+ * Whitespace cell.
25
+ * This is meant as a replacement for empty cells when needed
26
+ * during rendering lines to preserve correct aligment.
27
+ */
28
+ export const WHITESPACE_CELL_CHAR = ' ';
29
+ export const WHITESPACE_CELL_WIDTH = 1;
30
+ export const WHITESPACE_CELL_CODE = 32;
31
+
32
+ /**
33
+ * Bitmasks for accessing data in `content`.
34
+ */
35
+ export const enum Content {
36
+ /**
37
+ * bit 1..21 codepoint, max allowed in UTF32 is 0x10FFFF (21 bits taken)
38
+ * read: `codepoint = content & Content.codepointMask;`
39
+ * write: `content |= codepoint & Content.codepointMask;`
40
+ * shortcut if precondition `codepoint <= 0x10FFFF` is met:
41
+ * `content |= codepoint;`
42
+ */
43
+ CODEPOINT_MASK = 0x1FFFFF,
44
+
45
+ /**
46
+ * bit 22 flag indication whether a cell contains combined content
47
+ * read: `isCombined = content & Content.isCombined;`
48
+ * set: `content |= Content.isCombined;`
49
+ * clear: `content &= ~Content.isCombined;`
50
+ */
51
+ IS_COMBINED_MASK = 0x200000, // 1 << 21
52
+
53
+ /**
54
+ * bit 1..22 mask to check whether a cell contains any string data
55
+ * we need to check for codepoint and isCombined bits to see
56
+ * whether a cell contains anything
57
+ * read: `isEmpty = !(content & Content.hasContent)`
58
+ */
59
+ HAS_CONTENT_MASK = 0x3FFFFF,
60
+
61
+ /**
62
+ * bit 23..24 wcwidth value of cell, takes 2 bits (ranges from 0..2)
63
+ * read: `width = (content & Content.widthMask) >> Content.widthShift;`
64
+ * `hasWidth = content & Content.widthMask;`
65
+ * as long as wcwidth is highest value in `content`:
66
+ * `width = content >> Content.widthShift;`
67
+ * write: `content |= (width << Content.widthShift) & Content.widthMask;`
68
+ * shortcut if precondition `0 <= width <= 3` is met:
69
+ * `content |= width << Content.widthShift;`
70
+ */
71
+ WIDTH_MASK = 0xC00000, // 3 << 22
72
+ WIDTH_SHIFT = 22
73
+ }
74
+
75
+ export const enum Attributes {
76
+ /**
77
+ * bit 1..8 blue in RGB, color in P256 and P16
78
+ */
79
+ BLUE_MASK = 0xFF,
80
+ BLUE_SHIFT = 0,
81
+ PCOLOR_MASK = 0xFF,
82
+ PCOLOR_SHIFT = 0,
83
+
84
+ /**
85
+ * bit 9..16 green in RGB
86
+ */
87
+ GREEN_MASK = 0xFF00,
88
+ GREEN_SHIFT = 8,
89
+
90
+ /**
91
+ * bit 17..24 red in RGB
92
+ */
93
+ RED_MASK = 0xFF0000,
94
+ RED_SHIFT = 16,
95
+
96
+ /**
97
+ * bit 25..26 color mode: DEFAULT (0) | P16 (1) | P256 (2) | RGB (3)
98
+ */
99
+ CM_MASK = 0x3000000,
100
+ CM_DEFAULT = 0,
101
+ CM_P16 = 0x1000000,
102
+ CM_P256 = 0x2000000,
103
+ CM_RGB = 0x3000000,
104
+
105
+ /**
106
+ * bit 1..24 RGB room
107
+ */
108
+ RGB_MASK = 0xFFFFFF
109
+ }
110
+
111
+ export const enum FgFlags {
112
+ /**
113
+ * bit 27..32
114
+ */
115
+ INVERSE = 0x4000000,
116
+ BOLD = 0x8000000,
117
+ UNDERLINE = 0x10000000,
118
+ BLINK = 0x20000000,
119
+ INVISIBLE = 0x40000000,
120
+ STRIKETHROUGH = 0x80000000,
121
+ }
122
+
123
+ export const enum BgFlags {
124
+ /**
125
+ * bit 27..32 (upper 3 unused)
126
+ */
127
+ ITALIC = 0x4000000,
128
+ DIM = 0x8000000,
129
+ HAS_EXTENDED = 0x10000000
130
+ }
131
+
132
+ export const enum UnderlineStyle {
133
+ NONE = 0,
134
+ SINGLE = 1,
135
+ DOUBLE = 2,
136
+ CURLY = 3,
137
+ DOTTED = 4,
138
+ DASHED = 5
139
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Copyright (c) 2018 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ */
5
+
6
+ import { EventEmitter, IEvent } from 'common/EventEmitter';
7
+ import { Disposable } from 'common/Lifecycle';
8
+ import { IMarker } from 'common/Types';
9
+
10
+ export class Marker extends Disposable implements IMarker {
11
+ private static _nextId = 1;
12
+
13
+ private _id: number = Marker._nextId++;
14
+ public isDisposed: boolean = false;
15
+
16
+ public get id(): number { return this._id; }
17
+
18
+ private _onDispose = new EventEmitter<void>();
19
+ public get onDispose(): IEvent<void> { return this._onDispose.event; }
20
+
21
+ constructor(
22
+ public line: number
23
+ ) {
24
+ super();
25
+ }
26
+
27
+ public dispose(): void {
28
+ if (this.isDisposed) {
29
+ return;
30
+ }
31
+ this.isDisposed = true;
32
+ this.line = -1;
33
+ // Emit before super.dispose such that dispose listeners get a change to react
34
+ this._onDispose.fire();
35
+ super.dispose();
36
+ }
37
+ }
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Copyright (c) 2019 The xterm.js authors. All rights reserved.
3
+ * @license MIT
4
+ */
5
+
6
+ import { IAttributeData, ICircularList, IBufferLine, ICellData, IMarker, ICharset, IDisposable } from 'common/Types';
7
+ import { IEvent } from 'common/EventEmitter';
8
+
9
+ // BufferIndex denotes a position in the buffer: [rowIndex, colIndex]
10
+ export type BufferIndex = [number, number];
11
+
12
+ export interface IBufferStringIteratorResult {
13
+ range: { first: number, last: number };
14
+ content: string;
15
+ }
16
+
17
+ export interface IBufferStringIterator {
18
+ hasNext(): boolean;
19
+ next(): IBufferStringIteratorResult;
20
+ }
21
+
22
+ export interface IBuffer {
23
+ readonly lines: ICircularList<IBufferLine>;
24
+ ydisp: number;
25
+ ybase: number;
26
+ y: number;
27
+ x: number;
28
+ tabs: any;
29
+ scrollBottom: number;
30
+ scrollTop: number;
31
+ hasScrollback: boolean;
32
+ savedY: number;
33
+ savedX: number;
34
+ savedCharset: ICharset | undefined;
35
+ savedCurAttrData: IAttributeData;
36
+ isCursorInViewport: boolean;
37
+ markers: IMarker[];
38
+ translateBufferLineToString(lineIndex: number, trimRight: boolean, startCol?: number, endCol?: number): string;
39
+ getWrappedRangeForLine(y: number): { first: number, last: number };
40
+ nextStop(x?: number): number;
41
+ prevStop(x?: number): number;
42
+ getBlankLine(attr: IAttributeData, isWrapped?: boolean): IBufferLine;
43
+ stringIndexToBufferIndex(lineIndex: number, stringIndex: number, trimRight?: boolean): number[];
44
+ iterator(trimRight: boolean, startIndex?: number, endIndex?: number, startOverscan?: number, endOverscan?: number): IBufferStringIterator;
45
+ getNullCell(attr?: IAttributeData): ICellData;
46
+ getWhitespaceCell(attr?: IAttributeData): ICellData;
47
+ addMarker(y: number): IMarker;
48
+ clearMarkers(y: number): void;
49
+ clearAllMarkers(): void;
50
+ }
51
+
52
+ export interface IBufferSet extends IDisposable {
53
+ alt: IBuffer;
54
+ normal: IBuffer;
55
+ active: IBuffer;
56
+
57
+ onBufferActivate: IEvent<{ activeBuffer: IBuffer, inactiveBuffer: IBuffer }>;
58
+
59
+ activateNormalBuffer(): void;
60
+ activateAltBuffer(fillAttr?: IAttributeData): void;
61
+ reset(): void;
62
+ resize(newCols: number, newRows: number): void;
63
+ setupTabStops(i?: number): void;
64
+ }