@jrichman/ink 6.3.1 → 6.4.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 (44) hide show
  1. package/build/components/Box.d.ts +26 -2
  2. package/build/components/Box.js +8 -3
  3. package/build/components/Box.js.map +1 -1
  4. package/build/devtools.d.ts +1 -1
  5. package/build/devtools.js +10 -1
  6. package/build/devtools.js.map +1 -1
  7. package/build/dom.d.ts +12 -6
  8. package/build/dom.js +25 -6
  9. package/build/dom.js.map +1 -1
  10. package/build/index.d.ts +3 -1
  11. package/build/index.js +3 -1
  12. package/build/index.js.map +1 -1
  13. package/build/ink.d.ts +14 -1
  14. package/build/ink.js +39 -12
  15. package/build/ink.js.map +1 -1
  16. package/build/measure-element.d.ts +0 -8
  17. package/build/measure-element.js +0 -50
  18. package/build/measure-element.js.map +1 -1
  19. package/build/measure-text.d.ts +11 -3
  20. package/build/measure-text.js +161 -13
  21. package/build/measure-text.js.map +1 -1
  22. package/build/output.d.ts +8 -2
  23. package/build/output.js +111 -61
  24. package/build/output.js.map +1 -1
  25. package/build/reconciler.js +24 -0
  26. package/build/reconciler.js.map +1 -1
  27. package/build/render-background.js +1 -1
  28. package/build/render-background.js.map +1 -1
  29. package/build/render-border.js +13 -5
  30. package/build/render-border.js.map +1 -1
  31. package/build/render-node-to-output.d.ts +2 -0
  32. package/build/render-node-to-output.js +233 -54
  33. package/build/render-node-to-output.js.map +1 -1
  34. package/build/render.d.ts +7 -3
  35. package/build/render.js +1 -0
  36. package/build/render.js.map +1 -1
  37. package/build/scroll.d.ts +3 -0
  38. package/build/scroll.js +58 -1
  39. package/build/scroll.js.map +1 -1
  40. package/build/wrap-text.d.ts +6 -3
  41. package/build/wrap-text.js +118 -29
  42. package/build/wrap-text.js.map +1 -1
  43. package/package.json +5 -6
  44. package/readme.md +15 -1
@@ -1,21 +1,169 @@
1
- import widestLine from 'widest-line';
2
- const cache = new Map();
3
- const measureText = (text) => {
4
- if (text.length === 0) {
1
+ import stringWidth from 'string-width';
2
+ import { tokenize, styledCharsFromTokens, } from '@alcalzone/ansi-tokenize';
3
+ const defaultStringWidth = stringWidth;
4
+ let currentStringWidth = defaultStringWidth;
5
+ // This cache must be cleared each time the output is changed.
6
+ const widthCache = new Map();
7
+ // This cache can persist for the lifetime of the application.
8
+ const toStyledCharactersCache = new Map();
9
+ export function setStringWidthFunction(fn) {
10
+ currentStringWidth = fn;
11
+ // Clear the width cache to avoid stale values.
12
+ clearStringWidthCache();
13
+ }
14
+ export function clearStringWidthCache() {
15
+ widthCache.clear();
16
+ }
17
+ export function toStyledCharacters(text) {
18
+ if (toStyledCharactersCache.has(text)) {
19
+ return toStyledCharactersCache.get(text);
20
+ }
21
+ const tokens = tokenize(text);
22
+ const characters = styledCharsFromTokens(tokens);
23
+ const combinedCharacters = [];
24
+ for (let i = 0; i < characters.length; i++) {
25
+ const character = characters[i];
26
+ if (!character) {
27
+ continue;
28
+ }
29
+ if (character.value === '\t') {
30
+ const spaceCharacter = { ...character, value: ' ' };
31
+ combinedCharacters.push(spaceCharacter, spaceCharacter, spaceCharacter, spaceCharacter);
32
+ continue;
33
+ }
34
+ if (character.value === '\b') {
35
+ continue;
36
+ }
37
+ let { value } = character;
38
+ let isCombined = false;
39
+ const firstCodePoint = value.codePointAt(0);
40
+ // 1. Regional Indicators (Flags)
41
+ // These combine in pairs.
42
+ // See: https://en.wikipedia.org/wiki/Regional_indicator_symbol
43
+ if (firstCodePoint &&
44
+ firstCodePoint >= 0x1_f1_e6 &&
45
+ firstCodePoint <= 0x1_f1_ff &&
46
+ i + 1 < characters.length) {
47
+ const nextCharacter = characters[i + 1];
48
+ if (nextCharacter) {
49
+ const nextFirstCodePoint = nextCharacter.value.codePointAt(0);
50
+ if (nextFirstCodePoint &&
51
+ nextFirstCodePoint >= 0x1_f1_e6 &&
52
+ nextFirstCodePoint <= 0x1_f1_ff) {
53
+ value += nextCharacter.value;
54
+ i++;
55
+ combinedCharacters.push({ ...character, value });
56
+ continue;
57
+ }
58
+ }
59
+ }
60
+ // 2. Other combining characters
61
+ // See: https://en.wikipedia.org/wiki/Combining_character
62
+ while (i + 1 < characters.length) {
63
+ const nextCharacter = characters[i + 1];
64
+ if (!nextCharacter) {
65
+ break;
66
+ }
67
+ const codePoints = [...nextCharacter.value].map(char => char.codePointAt(0));
68
+ const nextFirstCodePoint = codePoints[0];
69
+ if (!nextFirstCodePoint) {
70
+ break;
71
+ }
72
+ // Variation selectors
73
+ const isVariationSelector = nextFirstCodePoint >= 0xfe_00 && nextFirstCodePoint <= 0xfe_0f;
74
+ // Skin tone modifiers
75
+ const isSkinToneModifier = nextFirstCodePoint >= 0x1_f3_fb && nextFirstCodePoint <= 0x1_f3_ff;
76
+ const isZeroWidthJoiner = nextFirstCodePoint === 0x20_0d;
77
+ const isKeycap = nextFirstCodePoint === 0x20_e3;
78
+ // Tags block (U+E0000 - U+E007F)
79
+ const isTagsBlock = nextFirstCodePoint >= 0xe_00_00 && nextFirstCodePoint <= 0xe_00_7f;
80
+ // Combining Diacritical Marks
81
+ const isCombiningMark = nextFirstCodePoint >= 0x03_00 && nextFirstCodePoint <= 0x03_6f;
82
+ const isCombining = isVariationSelector ||
83
+ isSkinToneModifier ||
84
+ isZeroWidthJoiner ||
85
+ isKeycap ||
86
+ isTagsBlock ||
87
+ isCombiningMark;
88
+ if (!isCombining) {
89
+ break;
90
+ }
91
+ // Merge with previous character
92
+ value += nextCharacter.value;
93
+ i++; // Consume next character.
94
+ isCombined = true;
95
+ // If it was a ZWJ, also consume the character after it.
96
+ if (isZeroWidthJoiner && i + 1 < characters.length) {
97
+ const characterAfterZwj = characters[i + 1];
98
+ if (characterAfterZwj) {
99
+ value += characterAfterZwj.value;
100
+ i++; // Consume character after ZWJ.
101
+ }
102
+ }
103
+ }
104
+ if (isCombined) {
105
+ combinedCharacters.push({ ...character, value });
106
+ }
107
+ else {
108
+ combinedCharacters.push(character);
109
+ }
110
+ }
111
+ toStyledCharactersCache.set(text, combinedCharacters);
112
+ return combinedCharacters;
113
+ }
114
+ export function styledCharsWidth(styledChars) {
115
+ let length = 0;
116
+ for (const char of styledChars) {
117
+ length += inkCharacterWidth(char.value);
118
+ }
119
+ return length;
120
+ }
121
+ export function inkCharacterWidth(text) {
122
+ const width = widthCache.get(text);
123
+ if (width !== undefined) {
124
+ return width;
125
+ }
126
+ const calculatedWidth = currentStringWidth(text);
127
+ widthCache.set(text, calculatedWidth);
128
+ return calculatedWidth;
129
+ }
130
+ export function splitStyledCharsByNewline(styledChars) {
131
+ const lines = [[]];
132
+ for (const char of styledChars) {
133
+ if (char.value === '\n') {
134
+ lines.push([]);
135
+ }
136
+ else {
137
+ lines.at(-1).push(char);
138
+ }
139
+ }
140
+ return lines;
141
+ }
142
+ export function widestLineFromStyledChars(lines) {
143
+ let maxWidth = 0;
144
+ for (const line of lines) {
145
+ maxWidth = Math.max(maxWidth, styledCharsWidth(line));
146
+ }
147
+ return maxWidth;
148
+ }
149
+ export function styledCharsToString(styledChars) {
150
+ let result = '';
151
+ for (const char of styledChars) {
152
+ result += char.value;
153
+ }
154
+ return result;
155
+ }
156
+ export function measureStyledChars(styledChars) {
157
+ if (styledChars.length === 0) {
5
158
  return {
6
159
  width: 0,
7
160
  height: 0,
8
161
  };
9
162
  }
10
- const cachedDimensions = cache.get(text);
11
- if (cachedDimensions) {
12
- return cachedDimensions;
13
- }
14
- const width = widestLine(text);
15
- const height = text.split('\n').length;
163
+ const lines = splitStyledCharsByNewline(styledChars);
164
+ const width = widestLineFromStyledChars(lines);
165
+ const height = lines.length;
16
166
  const dimensions = { width, height };
17
- cache.set(text, dimensions);
18
167
  return dimensions;
19
- };
20
- export default measureText;
168
+ }
21
169
  //# sourceMappingURL=measure-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"measure-text.js","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AAErC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAOxC,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE;IAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACN,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACT,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEzC,IAAI,gBAAgB,EAAE,CAAC;QACtB,OAAO,gBAAgB,CAAC;IACzB,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACvC,MAAM,UAAU,GAAG,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;IACnC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE5B,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"measure-text.js","sourceRoot":"","sources":["../src/measure-text.ts"],"names":[],"mappings":"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"}
package/build/output.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { type StyledChar } from '@alcalzone/ansi-tokenize';
1
2
  import { type OutputTransformer } from './render-node-to-output.js';
2
3
  /**
3
4
  "Virtual" output class
@@ -20,9 +21,13 @@ export default class Output {
20
21
  width: number;
21
22
  height: number;
22
23
  private readonly operations;
24
+ private readonly clips;
23
25
  constructor(options: Options);
24
- write(x: number, y: number, text: string, options: {
26
+ getCurrentClip(): Clip | undefined;
27
+ write(x: number, y: number, items: string | StyledChar[], options: {
25
28
  transformers: OutputTransformer[];
29
+ lineIndex?: number;
30
+ preserveBackgroundColor?: boolean;
26
31
  }): void;
27
32
  clip(clip: Clip): void;
28
33
  unclip(): void;
@@ -30,7 +35,8 @@ export default class Output {
30
35
  output: string;
31
36
  height: number;
32
37
  };
38
+ private clearRange;
33
39
  private applyWriteOperation;
34
- private clipText;
40
+ private clipChars;
35
41
  }
36
42
  export {};
package/build/output.js CHANGED
@@ -1,27 +1,31 @@
1
- import sliceAnsi from 'slice-ansi';
2
- import stringWidth from 'string-width';
3
- import widestLine from 'widest-line';
4
- import { styledCharsFromTokens, styledCharsToString, tokenize, } from '@alcalzone/ansi-tokenize';
1
+ import { styledCharsToString } from '@alcalzone/ansi-tokenize';
2
+ import { toStyledCharacters, inkCharacterWidth, styledCharsWidth, } from './measure-text.js';
5
3
  export default class Output {
6
4
  width;
7
5
  height;
8
6
  operations = [];
7
+ clips = [];
9
8
  constructor(options) {
10
9
  const { width, height } = options;
11
10
  this.width = width;
12
11
  this.height = height;
13
12
  }
14
- write(x, y, text, options) {
15
- const { transformers } = options;
16
- if (!text) {
13
+ getCurrentClip() {
14
+ return this.clips.at(-1);
15
+ }
16
+ write(x, y, items, options) {
17
+ const { transformers, lineIndex, preserveBackgroundColor } = options;
18
+ if (items.length === 0) {
17
19
  return;
18
20
  }
19
21
  this.operations.push({
20
22
  type: 'write',
21
23
  x,
22
24
  y,
23
- text,
25
+ items,
24
26
  transformers,
27
+ lineIndex,
28
+ preserveBackgroundColor,
25
29
  });
26
30
  }
27
31
  clip(clip) {
@@ -29,11 +33,41 @@ export default class Output {
29
33
  type: 'clip',
30
34
  clip,
31
35
  });
36
+ const previousClip = this.clips.at(-1);
37
+ const nextClip = { ...clip };
38
+ if (previousClip) {
39
+ nextClip.x1 =
40
+ previousClip.x1 === undefined
41
+ ? nextClip.x1
42
+ : nextClip.x1 === undefined
43
+ ? previousClip.x1
44
+ : Math.max(previousClip.x1, nextClip.x1);
45
+ nextClip.x2 =
46
+ previousClip.x2 === undefined
47
+ ? nextClip.x2
48
+ : nextClip.x2 === undefined
49
+ ? previousClip.x2
50
+ : Math.min(previousClip.x2, nextClip.x2);
51
+ nextClip.y1 =
52
+ previousClip.y1 === undefined
53
+ ? nextClip.y1
54
+ : nextClip.y1 === undefined
55
+ ? previousClip.y1
56
+ : Math.max(previousClip.y1, nextClip.y1);
57
+ nextClip.y2 =
58
+ previousClip.y2 === undefined
59
+ ? nextClip.y2
60
+ : nextClip.y2 === undefined
61
+ ? previousClip.y2
62
+ : Math.min(previousClip.y2, nextClip.y2);
63
+ }
64
+ this.clips.push(nextClip);
32
65
  }
33
66
  unclip() {
34
67
  this.operations.push({
35
68
  type: 'unclip',
36
69
  });
70
+ this.clips.pop();
37
71
  }
38
72
  get() {
39
73
  // Initialize output array with a specific set of rows, so that margin/padding at the bottom is preserved
@@ -104,88 +138,104 @@ export default class Output {
104
138
  height: output.length,
105
139
  };
106
140
  }
141
+ clearRange(currentLine, range, styles, value = ' ') {
142
+ for (let offset = range.start; offset < range.end; offset++) {
143
+ if (offset >= 0 && offset < this.width) {
144
+ currentLine[offset] = {
145
+ type: 'char',
146
+ value,
147
+ fullWidth: false,
148
+ styles,
149
+ };
150
+ }
151
+ }
152
+ }
107
153
  applyWriteOperation(output, clips, operation) {
108
- const { text, transformers } = operation;
109
- let { x, y } = operation;
110
- let lines = text.split('\n');
154
+ const { transformers, lineIndex = 0 } = operation;
155
+ let { x, y, items } = operation;
156
+ let chars = typeof items === 'string' ? toStyledCharacters(items) : items;
111
157
  const clip = clips.at(-1);
158
+ let fromX;
159
+ let toX;
112
160
  if (clip) {
113
- const clipResult = this.clipText(lines, x, y, clip);
161
+ const clipResult = this.clipChars(chars, x, y, clip);
114
162
  if (!clipResult) {
115
163
  return;
116
164
  }
117
- lines = clipResult.lines;
165
+ chars = clipResult.chars;
118
166
  x = clipResult.x;
119
167
  y = clipResult.y;
168
+ fromX = clipResult.fromX;
169
+ toX = clipResult.toX;
120
170
  }
121
- let offsetY = 0;
122
- for (let [index, line] of lines.entries()) {
123
- const currentLine = output[y + offsetY];
124
- // Line can be missing if `text` is taller than height of pre-initialized `this.output`
125
- if (!currentLine) {
126
- continue;
127
- }
171
+ const currentLine = output[y];
172
+ // Line can be missing if `text` is taller than height of pre-initialized `this.output`
173
+ if (!currentLine) {
174
+ return;
175
+ }
176
+ if (transformers.length > 0) {
177
+ let line = styledCharsToString(chars);
128
178
  for (const transformer of transformers) {
129
- line = transformer(line, index);
179
+ line = transformer(line, lineIndex);
180
+ }
181
+ chars = toStyledCharacters(line);
182
+ }
183
+ let offsetX = x;
184
+ let relativeX = 0;
185
+ for (const character of chars) {
186
+ const characterWidth = inkCharacterWidth(character.value);
187
+ if (toX !== undefined && relativeX >= toX) {
188
+ break;
130
189
  }
131
- const characters = styledCharsFromTokens(tokenize(line));
132
- let offsetX = x;
133
- for (const character of characters) {
190
+ if (fromX === undefined || relativeX >= fromX) {
191
+ if (offsetX >= this.width) {
192
+ break;
193
+ }
134
194
  currentLine[offsetX] = character;
135
- // Determine printed width using string-width to align with measurement
136
- const characterWidth = Math.max(1, stringWidth(character.value));
137
- // For multi-column characters, clear following cells to avoid stray spaces/artifacts
138
195
  if (characterWidth > 1) {
139
- for (let index = 1; index < characterWidth; index++) {
140
- currentLine[offsetX + index] = {
141
- type: 'char',
142
- value: '',
143
- fullWidth: false,
144
- styles: character.styles,
145
- };
146
- }
196
+ this.clearRange(currentLine, { start: offsetX + 1, end: offsetX + characterWidth }, character.styles, '');
147
197
  }
148
198
  offsetX += characterWidth;
149
199
  }
150
- offsetY++;
200
+ else if (characterWidth > 1 &&
201
+ fromX !== undefined &&
202
+ relativeX < fromX &&
203
+ relativeX + characterWidth > fromX) {
204
+ const clearLength = relativeX + characterWidth - fromX;
205
+ this.clearRange(currentLine, { start: offsetX, end: offsetX + clearLength }, character.styles, ' ');
206
+ offsetX += clearLength;
207
+ }
208
+ relativeX += characterWidth;
209
+ }
210
+ if (toX !== undefined) {
211
+ const absoluteToX = x - (fromX ?? 0) + toX;
212
+ this.clearRange(currentLine, { start: offsetX, end: absoluteToX }, [], ' ');
151
213
  }
152
214
  }
153
- clipText(lines, x, y, clip) {
154
- const clipHorizontally = typeof clip?.x1 === 'number' && typeof clip?.x2 === 'number';
155
- const clipVertically = typeof clip?.y1 === 'number' && typeof clip?.y2 === 'number';
215
+ clipChars(chars, x, y, clip) {
216
+ const { x1, x2, y1, y2 } = clip;
217
+ const clipHorizontally = typeof x1 === 'number' && typeof x2 === 'number';
218
+ const clipVertically = typeof y1 === 'number' && typeof y2 === 'number';
156
219
  if (clipHorizontally) {
157
- const width = widestLine(lines.join('\n'));
220
+ const width = styledCharsWidth(chars);
158
221
  if (x + width < clip.x1 || x > clip.x2) {
159
222
  return undefined;
160
223
  }
161
224
  }
162
- if (clipVertically) {
163
- const height = lines.length;
164
- if (y + height < clip.y1 || y > clip.y2) {
165
- return undefined;
166
- }
225
+ if (clipVertically && (y < clip.y1 || y >= clip.y2)) {
226
+ return undefined;
167
227
  }
228
+ let fromX;
229
+ let toX;
168
230
  if (clipHorizontally) {
169
- lines = lines.map(line => {
170
- const from = x < clip.x1 ? clip.x1 - x : 0;
171
- const width = stringWidth(line);
172
- const to = x + width > clip.x2 ? clip.x2 - x : width;
173
- return sliceAnsi(line, from, to);
174
- });
231
+ fromX = x < clip.x1 ? clip.x1 - x : 0;
232
+ const width = styledCharsWidth(chars);
233
+ toX = x + width > clip.x2 ? clip.x2 - x : width;
175
234
  if (x < clip.x1) {
176
235
  x = clip.x1;
177
236
  }
178
237
  }
179
- if (clipVertically) {
180
- const from = y < clip.y1 ? clip.y1 - y : 0;
181
- const height = lines.length;
182
- const to = y + height > clip.y2 ? clip.y2 - y : height;
183
- lines = lines.slice(from, to);
184
- if (y < clip.y1) {
185
- y = clip.y1;
186
- }
187
- }
188
- return { lines, x, y };
238
+ return { chars, x, y, fromX, toX };
189
239
  }
190
240
  }
191
241
  //# sourceMappingURL=output.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAEN,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,GACR,MAAM,0BAA0B,CAAC;AA0ClC,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B,KAAK,CAAS;IACd,MAAM,CAAS;IAEE,UAAU,GAAgB,EAAE,CAAC;IAE9C,YAAY,OAAgB;QAC3B,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;QAEhC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CACJ,CAAS,EACT,CAAS,EACT,IAAY,EACZ,OAA4C;QAE5C,MAAM,EAAC,YAAY,EAAC,GAAG,OAAO,CAAC;QAE/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;QACR,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,OAAO;YACb,CAAC;YACD,CAAC;YACD,IAAI;YACJ,YAAY;SACZ,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAU;QACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM;YACZ,IAAI;SACJ,CAAC,CAAC;IACJ,CAAC;IAED,MAAM;QACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,QAAQ;SACd,CAAC,CAAC;IACJ,CAAC;IAED,GAAG;QACF,yGAAyG;QACzG,MAAM,MAAM,GAAmB,EAAE,CAAC;QAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,GAAG,GAAiB,EAAE,CAAC;YAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,GAAG,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,GAAG;oBACV,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,EAAC,GAAG,SAAS,CAAC,IAAI,EAAC,CAAC;gBAErC,IAAI,YAAY,EAAE,CAAC;oBAClB,QAAQ,CAAC,EAAE;wBACV,YAAY,CAAC,EAAE,KAAK,SAAS;4BAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;4BACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;gCAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAE5C,QAAQ,CAAC,EAAE;wBACV,YAAY,CAAC,EAAE,KAAK,SAAS;4BAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;4BACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;gCAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAE5C,QAAQ,CAAC,EAAE;wBACV,YAAY,CAAC,EAAE,KAAK,SAAS;4BAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;4BACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;gCAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAE5C,QAAQ,CAAC,EAAE;wBACV,YAAY,CAAC,EAAE,KAAK,SAAS;4BAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;4BACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;gCAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,SAAS;YACV,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,SAAS;YACV,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;QAED,MAAM,eAAe,GAAG,MAAM;aAC5B,GAAG,CAAC,IAAI,CAAC,EAAE;YACX,2EAA2E;YAC3E,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAEtE,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7D,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACN,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACH,CAAC;IAEO,mBAAmB,CAC1B,MAAsB,EACtB,KAAa,EACb,SAAyB;QAEzB,MAAM,EAAC,IAAI,EAAE,YAAY,EAAC,GAAG,SAAS,CAAC;QACvC,IAAI,EAAC,CAAC,EAAE,CAAC,EAAC,GAAG,SAAS,CAAC;QACvB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1B,IAAI,IAAI,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAEpD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO;YACR,CAAC;YAED,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YACzB,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;YACjB,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;YAExC,uFAAuF;YACvF,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,SAAS;YACV,CAAC;YAED,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACxC,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;YAED,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACpC,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;gBAEjC,uEAAuE;gBACvE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBAEjE,qFAAqF;gBACrF,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;oBACxB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,EAAE,KAAK,EAAE,EAAE,CAAC;wBACrD,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG;4BAC9B,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,EAAE;4BACT,SAAS,EAAE,KAAK;4BAChB,MAAM,EAAE,SAAS,CAAC,MAAM;yBACxB,CAAC;oBACH,CAAC;gBACF,CAAC;gBAED,OAAO,IAAI,cAAc,CAAC;YAC3B,CAAC;YAED,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAEO,QAAQ,CACf,KAAe,EACf,CAAS,EACT,CAAS,EACT,IAAU;QAEV,MAAM,gBAAgB,GACrB,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,CAAC;QAE9D,MAAM,cAAc,GACnB,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,IAAI,OAAO,IAAI,EAAE,EAAE,KAAK,QAAQ,CAAC;QAE9D,IAAI,gBAAgB,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAE3C,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE,CAAC;gBAC1C,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAE5B,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE,CAAC;gBAC3C,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACxB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAEvD,OAAO,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE,CAAC;gBAClB,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC;YACd,CAAC;QACF,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAEzD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAE9B,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE,CAAC;gBAClB,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC;YACd,CAAC;QACF,CAAC;QAED,OAAO,EAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC;IACtB,CAAC;CACD"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE9E,OAAO,EACN,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,mBAAmB,CAAC;AA2C3B,MAAM,CAAC,OAAO,OAAO,MAAM;IAC1B,KAAK,CAAS;IACd,MAAM,CAAS;IAEE,UAAU,GAAgB,EAAE,CAAC;IAE7B,KAAK,GAAW,EAAE,CAAC;IAEpC,YAAY,OAAgB;QAC3B,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;QAEhC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CACJ,CAAS,EACT,CAAS,EACT,KAA4B,EAC5B,OAIC;QAED,MAAM,EAAC,YAAY,EAAE,SAAS,EAAE,uBAAuB,EAAC,GAAG,OAAO,CAAC;QAEnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,OAAO;YACb,CAAC;YACD,CAAC;YACD,KAAK;YACL,YAAY;YACZ,SAAS;YACT,uBAAuB;SACvB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,IAAU;QACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM;YACZ,IAAI;SACJ,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,EAAC,GAAG,IAAI,EAAC,CAAC;QAE3B,IAAI,YAAY,EAAE,CAAC;YAClB,QAAQ,CAAC,EAAE;gBACV,YAAY,CAAC,EAAE,KAAK,SAAS;oBAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;oBACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;wBAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;wBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE5C,QAAQ,CAAC,EAAE;gBACV,YAAY,CAAC,EAAE,KAAK,SAAS;oBAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;oBACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;wBAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;wBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE5C,QAAQ,CAAC,EAAE;gBACV,YAAY,CAAC,EAAE,KAAK,SAAS;oBAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;oBACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;wBAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;wBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE5C,QAAQ,CAAC,EAAE;gBACV,YAAY,CAAC,EAAE,KAAK,SAAS;oBAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;oBACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;wBAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;wBACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM;QACL,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACpB,IAAI,EAAE,QAAQ;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED,GAAG;QACF,yGAAyG;QACzG,MAAM,MAAM,GAAmB,EAAE,CAAC;QAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,GAAG,GAAiB,EAAE,CAAC;YAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,GAAG,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,GAAG;oBACV,SAAS,EAAE,KAAK;oBAChB,MAAM,EAAE,EAAE;iBACV,CAAC,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,KAAK,GAAW,EAAE,CAAC;QAEzB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,EAAC,GAAG,SAAS,CAAC,IAAI,EAAC,CAAC;gBAErC,IAAI,YAAY,EAAE,CAAC;oBAClB,QAAQ,CAAC,EAAE;wBACV,YAAY,CAAC,EAAE,KAAK,SAAS;4BAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;4BACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;gCAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAE5C,QAAQ,CAAC,EAAE;wBACV,YAAY,CAAC,EAAE,KAAK,SAAS;4BAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;4BACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;gCAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAE5C,QAAQ,CAAC,EAAE;wBACV,YAAY,CAAC,EAAE,KAAK,SAAS;4BAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;4BACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;gCAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAE5C,QAAQ,CAAC,EAAE;wBACV,YAAY,CAAC,EAAE,KAAK,SAAS;4BAC5B,CAAC,CAAC,QAAQ,CAAC,EAAE;4BACb,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS;gCAC1B,CAAC,CAAC,YAAY,CAAC,EAAE;gCACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7C,CAAC;gBAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,SAAS;YACV,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,SAAS;YACV,CAAC;YAED,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACpD,CAAC;QACF,CAAC;QAED,MAAM,eAAe,GAAG,MAAM;aAC5B,GAAG,CAAC,IAAI,CAAC,EAAE;YACX,2EAA2E;YAC3E,MAAM,qBAAqB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAEtE,OAAO,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7D,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,OAAO;YACN,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC;IACH,CAAC;IAEO,UAAU,CACjB,WAAyB,EACzB,KAAmC,EACnC,MAA4B,EAC5B,KAAK,GAAG,GAAG;QAEX,KAAK,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC;YAC7D,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBACxC,WAAW,CAAC,MAAM,CAAC,GAAG;oBACrB,IAAI,EAAE,MAAM;oBACZ,KAAK;oBACL,SAAS,EAAE,KAAK;oBAChB,MAAM;iBACN,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IAEO,mBAAmB,CAC1B,MAAsB,EACtB,KAAa,EACb,SAAyB;QAEzB,MAAM,EAAC,YAAY,EAAE,SAAS,GAAG,CAAC,EAAC,GAAG,SAAS,CAAC;QAChD,IAAI,EAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC;QAE9B,IAAI,KAAK,GACR,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE/D,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,KAAyB,CAAC;QAC9B,IAAI,GAAuB,CAAC;QAE5B,IAAI,IAAI,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAErD,IAAI,CAAC,UAAU,EAAE,CAAC;gBACjB,OAAO;YACR,CAAC;YAED,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YACzB,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;YACjB,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;YACjB,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YACzB,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;QACtB,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAE9B,uFAAuF;QACvF,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,IAAI,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;gBACxC,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACrC,CAAC;YAED,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;YAC/B,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAE1D,IAAI,GAAG,KAAK,SAAS,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;gBAC3C,MAAM;YACP,CAAC;YAED,IAAI,KAAK,KAAK,SAAS,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBAC/C,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC3B,MAAM;gBACP,CAAC;gBAED,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;gBAEjC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,UAAU,CACd,WAAW,EACX,EAAC,KAAK,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,cAAc,EAAC,EACnD,SAAS,CAAC,MAAM,EAChB,EAAE,CACF,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,cAAc,CAAC;YAC3B,CAAC;iBAAM,IACN,cAAc,GAAG,CAAC;gBAClB,KAAK,KAAK,SAAS;gBACnB,SAAS,GAAG,KAAK;gBACjB,SAAS,GAAG,cAAc,GAAG,KAAK,EACjC,CAAC;gBACF,MAAM,WAAW,GAAG,SAAS,GAAG,cAAc,GAAG,KAAK,CAAC;gBACvD,IAAI,CAAC,UAAU,CACd,WAAW,EACX,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,WAAW,EAAC,EAC5C,SAAS,CAAC,MAAM,EAChB,GAAG,CACH,CAAC;gBAEF,OAAO,IAAI,WAAW,CAAC;YACxB,CAAC;YAED,SAAS,IAAI,cAAc,CAAC;QAC7B,CAAC;QAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;YAE3C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,EAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;IACF,CAAC;IAEO,SAAS,CAChB,KAAmB,EACnB,CAAS,EACT,CAAS,EACT,IAAU;QAUV,MAAM,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,GAAG,IAAI,CAAC;QAC9B,MAAM,gBAAgB,GAAG,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,CAAC;QAC1E,MAAM,cAAc,GAAG,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,CAAC;QAExE,IAAI,gBAAgB,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAEtC,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE,CAAC;gBAC1C,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;QAED,IAAI,cAAc,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAG,CAAC,EAAE,CAAC;YACvD,OAAO,SAAS,CAAC;QAClB,CAAC;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,GAAuB,CAAC;QAE5B,IAAI,gBAAgB,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACtC,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,EAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAElD,IAAI,CAAC,GAAG,IAAI,CAAC,EAAG,EAAE,CAAC;gBAClB,CAAC,GAAG,IAAI,CAAC,EAAG,CAAC;YACd,CAAC;QACF,CAAC;QAED,OAAO,EAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC;IAClC,CAAC;CACD"}
@@ -118,6 +118,14 @@ export default createReconciler({
118
118
  node.internal_transform = value;
119
119
  continue;
120
120
  }
121
+ if (key === 'sticky') {
122
+ node.internalSticky = value;
123
+ continue;
124
+ }
125
+ if (key === 'internalStickyAlternate') {
126
+ node.internalStickyAlternate = value;
127
+ continue;
128
+ }
121
129
  if (key === 'internal_static') {
122
130
  currentRootNode = rootNode;
123
131
  node.internal_static = true;
@@ -127,6 +135,10 @@ export default createReconciler({
127
135
  rootNode.staticNode = node;
128
136
  continue;
129
137
  }
138
+ if (key === 'opaque') {
139
+ node.internal_opaque = value;
140
+ continue;
141
+ }
130
142
  setAttribute(node, key, value);
131
143
  }
132
144
  return node;
@@ -195,10 +207,22 @@ export default createReconciler({
195
207
  node.internal_transform = value;
196
208
  continue;
197
209
  }
210
+ if (key === 'sticky') {
211
+ node.internalSticky = Boolean(value);
212
+ continue;
213
+ }
214
+ if (key === 'internalStickyAlternate') {
215
+ node.internalStickyAlternate = Boolean(value);
216
+ continue;
217
+ }
198
218
  if (key === 'internal_static') {
199
219
  node.internal_static = true;
200
220
  continue;
201
221
  }
222
+ if (key === 'opaque') {
223
+ node.internal_opaque = Boolean(value);
224
+ continue;
225
+ }
202
226
  setAttribute(node, key, value);
203
227
  }
204
228
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../src/reconciler.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import colorize from './colorize.js';
2
2
  const renderBackground = (x, y, node, output) => {
3
- if (!node.style.backgroundColor) {
3
+ if (!node.internal_opaque && !node.style.backgroundColor) {
4
4
  return;
5
5
  }
6
6
  const width = node.yogaNode.getComputedWidth();
@@ -1 +1 @@
1
- {"version":3,"file":"render-background.js","sourceRoot":"","sources":["../src/render-background.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,gBAAgB,GAAG,CACxB,CAAS,EACT,CAAS,EACT,IAAa,EACb,MAAc,EACP,EAAE;IACT,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACjC,OAAO;IACR,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,gBAAgB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,iBAAiB,EAAE,CAAC;IAElD,wDAAwD;IACxD,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,gBAAgB,GACrB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,kBAAkB,GACvB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAChE,MAAM,aAAa,GAAG,MAAM,GAAG,eAAe,GAAG,kBAAkB,CAAC;IAEpE,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO;IACR,CAAC;IAED,sCAAsC;IACtC,MAAM,cAAc,GAAG,QAAQ,CAC9B,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EACxB,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,YAAY,CACZ,CAAC;IAEF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CACX,CAAC,GAAG,eAAe,EACnB,CAAC,GAAG,eAAe,GAAG,GAAG,EACzB,cAAc,EACd,EAAC,YAAY,EAAE,EAAE,EAAC,CAClB,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"render-background.js","sourceRoot":"","sources":["../src/render-background.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,eAAe,CAAC;AAIrC,MAAM,gBAAgB,GAAG,CACxB,CAAS,EACT,CAAS,EACT,IAAa,EACb,MAAc,EACP,EAAE;IACT,IAAI,CAAE,IAAmB,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1E,OAAO;IACR,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,QAAS,CAAC,gBAAgB,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAS,CAAC,iBAAiB,EAAE,CAAC;IAElD,wDAAwD;IACxD,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,MAAM,gBAAgB,GACrB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,eAAe,GACpB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,kBAAkB,GACvB,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,MAAM,YAAY,GAAG,KAAK,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAChE,MAAM,aAAa,GAAG,MAAM,GAAG,eAAe,GAAG,kBAAkB,CAAC;IAEpE,IAAI,CAAC,CAAC,YAAY,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO;IACR,CAAC;IAED,sCAAsC;IACtC,MAAM,cAAc,GAAG,QAAQ,CAC9B,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,EACxB,IAAI,CAAC,KAAK,CAAC,eAAe,EAC1B,YAAY,CACZ,CAAC;IAEF,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC;QAC9C,MAAM,CAAC,KAAK,CACX,CAAC,GAAG,eAAe,EACnB,CAAC,GAAG,eAAe,GAAG,GAAG,EACzB,cAAc,EACd,EAAC,YAAY,EAAE,EAAE,EAAC,CAClB,CAAC;IACH,CAAC;AACF,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -57,15 +57,23 @@ const renderBorder = (x, y, node, output) => {
57
57
  output.write(x, y, topBorder, { transformers: [] });
58
58
  }
59
59
  if (showLeftBorder) {
60
- output.write(x, y + offsetY, leftBorder, { transformers: [] });
60
+ for (const [index, line] of leftBorder.split('\n').entries()) {
61
+ output.write(x, y + offsetY + index, line, {
62
+ transformers: [],
63
+ });
64
+ }
61
65
  }
62
66
  if (showRightBorder) {
63
- output.write(x + width - 1, y + offsetY, rightBorder, {
64
- transformers: [],
65
- });
67
+ for (const [index, line] of rightBorder.split('\n').entries()) {
68
+ output.write(x + width - 1, y + offsetY + index, line, {
69
+ transformers: [],
70
+ });
71
+ }
66
72
  }
67
73
  if (bottomBorder) {
68
- output.write(x, y + height - 1, bottomBorder, { transformers: [] });
74
+ output.write(x, y + height - 1, bottomBorder, {
75
+ transformers: [],
76
+ });
69
77
  }
70
78
  }
71
79
  };