@teaui/core 1.1.5 → 1.2.1

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.
@@ -1,11 +1,25 @@
1
1
  /**
2
- * Does not check to make sure 'str' is only one character
2
+ * Returns the number of *cells* that the first character of the string takes up.
3
+ *
4
+ * "Cell" refers to a terminal space: ASCII characters take 1 cell, Emoji and Asian
5
+ * characters take 2 cells. ANSI codes (\x1b[...) return 0.
6
+ *
7
+ * This code came straight from blessed, and includes snippets from
8
+ * https://github.com/vangie/east-asian-width and
9
+ * https://github.com/komagata/eastasianwidth (last updated ~2015)
10
+ *
11
+ * Note: does not check to make sure 'str' is only one character
3
12
  */
4
13
  export function charWidth(str: any): number;
5
14
  export function stringSize(str: any, maxWidth: any): any;
6
15
  export function lineWidth(str: any): number;
16
+ export function getLocale(): string;
17
+ export function setLocale(value: any): void;
18
+ export function words(input: any): (number | any[])[][];
7
19
  export function printableChars(str: any): any[];
20
+ export function ansiLocations(input: any, includeLast: any): {
21
+ start: any;
22
+ stop: any;
23
+ ansi: any;
24
+ }[];
8
25
  export function removeAnsi(input: any): any;
9
- export const locale: string;
10
- export function graphemes(input: any): any[];
11
- export function words(input: any): any;
@@ -1,71 +1,26 @@
1
1
  "use strict";
2
- /**
3
- * unicode.js - east asian width and surrogate pairs
4
- * Copyright (c) 2013-2015, Christopher Jeffrey and contributors (MIT License).
5
- * https://github.com/chjj/blessed
6
- * Borrowed from vangie/east-asian-width, komagata/eastasianwidth,
7
- * and mathiasbynens/String.prototype.codePointAt. Licenses below.
8
- */
9
2
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.words = exports.graphemes = exports.locale = void 0;
11
3
  exports.charWidth = charWidth;
12
4
  exports.stringSize = stringSize;
13
5
  exports.lineWidth = lineWidth;
6
+ exports.getLocale = getLocale;
7
+ exports.setLocale = setLocale;
8
+ exports.words = words;
14
9
  exports.printableChars = printableChars;
10
+ exports.ansiLocations = ansiLocations;
15
11
  exports.removeAnsi = removeAnsi;
16
- // east-asian-width
17
- //
18
- // Copyright (c) 2015 Vangie Du
19
- // https://github.com/vangie/east-asian-width
20
- //
21
- // Permission is hereby granted, free of charge, to any person
22
- // obtaining a copy of this software and associated documentation
23
- // files (the "Software"), to deal in the Software without
24
- // restriction, including without limitation the rights to use,
25
- // copy, modify, merge, publish, distribute, sublicense, and/or sell
26
- // copies of the Software, and to permit persons to whom the
27
- // Software is furnished to do so, subject to the following
28
- // conditions:
29
- //
30
- // The above copyright notice and this permission notice shall be
31
- // included in all copies or substantial portions of the Software.
32
- //
33
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34
- // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35
- // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36
- // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37
- // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38
- // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40
- // OTHER DEALINGS IN THE SOFTWARE.
41
- // eastasianwidth
42
- //
43
- // Copyright (c) 2013, Masaki Komagata
44
- // https://github.com/komagata/eastasianwidth
45
- //
46
- // Permission is hereby granted, free of charge, to any person obtaining a copy
47
- // of this software and associated documentation files (the "Software"), to deal
48
- // in the Software without restriction, including without limitation the rights
49
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
50
- // copies of the Software, and to permit persons to whom the Software is
51
- // furnished to do so, subject to the following conditions:
52
- //
53
- // The above copyright notice and this permission notice shall be included in
54
- // all copies or substantial portions of the Software.
55
- //
56
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
57
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
58
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
59
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
60
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
61
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
62
- // THE SOFTWARE.
63
- /**
64
- * Wide, Surrogates, and Combining
65
- */
66
12
  const BG_DRAW = '\x14';
67
13
  /**
68
- * Does not check to make sure 'str' is only one character
14
+ * Returns the number of *cells* that the first character of the string takes up.
15
+ *
16
+ * "Cell" refers to a terminal space: ASCII characters take 1 cell, Emoji and Asian
17
+ * characters take 2 cells. ANSI codes (\x1b[...) return 0.
18
+ *
19
+ * This code came straight from blessed, and includes snippets from
20
+ * https://github.com/vangie/east-asian-width and
21
+ * https://github.com/komagata/eastasianwidth (last updated ~2015)
22
+ *
23
+ * Note: does not check to make sure 'str' is only one character
69
24
  */
70
25
  function charWidth(str) {
71
26
  // this special character is used by viewport.paint. If you are copying this code
@@ -75,7 +30,7 @@ function charWidth(str) {
75
30
  }
76
31
  // added: ANSI formatter support
77
32
  // eslint-disable-next-line no-control-regex
78
- if (!str.length || str === '\x1b' || str.match(/^\x1b\[[\d;]*m$/)) {
33
+ if (!str.length || ansiRegex().test(str)) {
79
34
  return 0;
80
35
  }
81
36
  // added: Emoji support
@@ -362,7 +317,7 @@ function stringSize(str, maxWidth) {
362
317
  }
363
318
  function lineWidth(str) {
364
319
  var width = 0;
365
- for (const char of Array.isArray(str) ? str : (0, exports.graphemes)(str)) {
320
+ for (const char of Array.isArray(str) ? str : printableChars(str)) {
366
321
  if (str === '\n') {
367
322
  break;
368
323
  }
@@ -370,69 +325,48 @@ function lineWidth(str) {
370
325
  }
371
326
  return width;
372
327
  }
373
- exports.locale = process.env.LANG?.split('.')[0]?.slice(0, 2) ?? 'en';
374
- exports.graphemes = (function () {
375
- if (!global['Intl']) {
376
- const ZERO_WIDTH_JOINER = 0x200d;
377
- return input => {
378
- input = removeAnsi(input);
379
- const printableChars = [...input];
380
- for (let i = printableChars.length - 1; i > 0; i--) {
381
- if (printableChars[i].charCodeAt(0) === ZERO_WIDTH_JOINER) {
382
- // find & handle special combination character
383
- printableChars[i - 1] += printableChars[i] + printableChars[i + 1];
384
- // remove the combined characters
385
- printableChars.splice(i, 2);
386
- }
387
- }
388
- return printableChars;
389
- };
390
- }
391
- const segmenter = new Intl.Segmenter(exports.locale);
392
- return input => {
393
- input = removeAnsi(input);
394
- const parts = segmenter.segment(input);
395
- return [...parts].map(({ segment }) => segment);
396
- };
397
- })();
398
- exports.words = (function () {
399
- if (!global['Intl']) {
400
- return input => {
401
- if (Array.isArray(input)) {
402
- input = input.join('');
403
- }
404
- else {
405
- input = removeAnsi(input);
406
- }
407
- let offset = 0;
408
- return input.split(/\b/).map(segment => {
409
- const currentOffset = offset;
410
- const chars = (0, exports.graphemes)(segment);
411
- offset += chars.length;
412
- return [chars, currentOffset];
413
- });
414
- };
328
+ let locale = process.env.LANG?.split('.')[0]?.slice(0, 2) ?? 'en';
329
+ let graphemesSegmenter = new Intl.Segmenter(locale);
330
+ let wordsSegmenter = new Intl.Segmenter(locale, { granularity: 'word' });
331
+ function getLocale() {
332
+ return locale;
333
+ }
334
+ function setLocale(value) {
335
+ locale = value;
336
+ graphemesSegmenter = new Intl.Segmenter(locale);
337
+ wordsSegmenter = new Intl.Segmenter(locale, { granularity: 'word' });
338
+ }
339
+ function words(input) {
340
+ if (Array.isArray(input)) {
341
+ input = input.join('');
415
342
  }
416
- const segmenter = new Intl.Segmenter(exports.locale, { granularity: 'word' });
417
- return input => {
418
- if (Array.isArray(input)) {
419
- input = input.join('');
420
- }
421
- else {
422
- input = removeAnsi(input);
343
+ const ansiData = ansiLocations(input, false);
344
+ input = removeAnsi(input);
345
+ let strIndex = 0;
346
+ const segments = Array.from(wordsSegmenter.segment(input)).map(({ segment }) => segment);
347
+ const parts = segments.map(segment => {
348
+ let offset = segment.length;
349
+ while (ansiData.length &&
350
+ strIndex + segment.length >= ansiData.at(0).start) {
351
+ const { start, ansi } = ansiData.shift();
352
+ const lhs = segment.slice(0, start - strIndex);
353
+ const rhs = segment.slice(start - strIndex);
354
+ segment = lhs + ansi + rhs;
355
+ offset += ansi.length;
423
356
  }
424
- const parts = segmenter.segment(input);
425
- let offset = 0;
426
- let words = [];
427
- for (let { segment } of parts) {
428
- const currentOffset = offset;
429
- const chars = (0, exports.graphemes)(segment);
430
- offset += chars.length;
431
- words.push([chars, currentOffset]);
432
- }
433
- return words;
434
- };
435
- })();
357
+ strIndex += offset;
358
+ return segment;
359
+ });
360
+ let offset = 0;
361
+ let words = [];
362
+ for (let segment of parts) {
363
+ const currentOffset = offset;
364
+ let chars = printableChars(segment);
365
+ offset += chars.length;
366
+ words.push([chars, currentOffset]);
367
+ }
368
+ return words;
369
+ }
436
370
  function printableChars(str) {
437
371
  if (str.length === 0) {
438
372
  return [];
@@ -443,25 +377,60 @@ function printableChars(str) {
443
377
  if (str.length === 2) {
444
378
  return [...str];
445
379
  }
446
- let isFirst = true;
447
380
  const chars = [];
448
- // eslint-disable-next-line no-control-regex
449
- for (const input of str.split(/\x1b\[/)) {
450
- const match = input.match(/^([\d;]*m)((.|[\n\r])*)$/m);
451
- if (match && !isFirst) {
452
- chars.push(`\x1b[${match[1]}`);
453
- chars.push(...(0, exports.graphemes)(match[2]));
381
+ let locations = ansiLocations(str, true);
382
+ let prevIndex = 0;
383
+ for (const { start, stop, ansi } of locations) {
384
+ // if the string starts with an ansi sequence, we don't prepend any graphemes,
385
+ // and if there are NO ansi sequences we will pick up on the entire string
386
+ // thanks to `includeLast` option.
387
+ if (prevIndex < start) {
388
+ const input = str.slice(prevIndex, start);
389
+ for (const { segment: char } of graphemesSegmenter.segment(input)) {
390
+ chars.push(char);
391
+ }
454
392
  }
455
- else {
456
- chars.push(...(0, exports.graphemes)(input));
393
+ if (ansi) {
394
+ chars.push(ansi);
457
395
  }
458
- isFirst = false;
396
+ prevIndex = stop;
459
397
  }
460
398
  return chars;
461
399
  }
400
+ /**
401
+ * Copied this (on 2025-11-23) from
402
+ * https://github.com/chalk/ansi-regex/blob/main/index.js
403
+ */
404
+ function ansiRegex() {
405
+ // Valid string terminator sequences are BEL, ESC\, and 0x9c
406
+ const ST = '(?:\\u0007|\\u001B\\u005C|\\u009C)';
407
+ const pattern = [
408
+ `[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
409
+ '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))',
410
+ ].join('|');
411
+ return new RegExp(pattern, 'g');
412
+ }
413
+ function ansiLocations(input, includeLast) {
414
+ // eslint-disable-next-line no-control-regex
415
+ const locations = [...input.matchAll(ansiRegex())].map(({ 0: match, index }) => ({
416
+ start: index,
417
+ stop: index + match.length,
418
+ ansi: match,
419
+ }));
420
+ if (includeLast &&
421
+ (!locations.length || locations.at(-1).stop < input.length)) {
422
+ const last = {
423
+ start: input.length,
424
+ stop: input.length,
425
+ ansi: '',
426
+ };
427
+ locations.push(last);
428
+ }
429
+ return locations;
430
+ }
462
431
  function removeAnsi(input) {
463
432
  // eslint-disable-next-line no-control-regex
464
- return input.replaceAll(/\x1b\[[\d;]*m/g, '');
433
+ return input.replaceAll(ansiRegex(), '');
465
434
  }
466
435
  const combiningTable = [
467
436
  [0x0300, 0x036f],
@@ -1 +1 @@
1
- {"version":3,"file":"unicode.js","sourceRoot":"","sources":["../../lib/sys/unicode.js"],"names":[],"mappings":"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KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;QACpC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;QACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC,EACtC,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,gBAAgB;IAChB,uCAAuC;IACvC,iDAAiD;IACjD,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAClC,IACE,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YAC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AC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;CACnB,CAAA;AAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG;IAC/D,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;AACb,SAAS,eAAe,CAAC,IAAI;IAC3B,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"unicode.js","sourceRoot":"","sources":["../../lib/sys/unicode.js"],"names":[],"mappings":"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I,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,MAAM,KAAK,KAAK;YAChB,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,CAAC;YACpC,MAAM,KAAK,KAAK;YAChB,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;YACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;YACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC;YACtC,CAAC,OAAO,IAAI,KAAK,IAAI,KAA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AM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;CACnB,CAAA;AAED,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,GAAG;IAC/D,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAA;AACb,SAAS,eAAe,CAAC,IAAI;IAC3B,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAA;AAC5C,CAAC"}
package/.dist/util.d.ts CHANGED
@@ -20,3 +20,9 @@ export declare function centerPad(str: string, length: number): string;
20
20
  * are picked up by inspect().
21
21
  */
22
22
  export declare function define<T extends object>(object: T, property: keyof T, attributes: PropertyDescriptor): void;
23
+ /**
24
+ * Wraps lines to fit within contentWidth. Lots to solve for here.
25
+ * 1. Word wrapping is accomplished using unicode.words
26
+ * 2. ANSI codes are restored by scanning the segments, inserting the ANSI back where it belongs
27
+ */
28
+ export declare function wrap(input: string | string[] | [string, number][], contentWidth: number): [string, number][];
package/.dist/util.js CHANGED
@@ -5,6 +5,7 @@ exports.leftPad = leftPad;
5
5
  exports.rightPad = rightPad;
6
6
  exports.centerPad = centerPad;
7
7
  exports.define = define;
8
+ exports.wrap = wrap;
8
9
  const sys_1 = require("./sys");
9
10
  let _debug = false;
10
11
  /**
@@ -76,4 +77,130 @@ function define(object, property, attributes) {
76
77
  }
77
78
  } while (kls && kls !== Object.prototype);
78
79
  }
80
+ function isStringArray(input) {
81
+ return input.length > 0 && typeof input[0] === 'string';
82
+ }
83
+ function isStringAndWidthArray(input) {
84
+ return input.length > 0 && Array.isArray(input[0]);
85
+ }
86
+ /**
87
+ * Wraps lines to fit within contentWidth. Lots to solve for here.
88
+ * 1. Word wrapping is accomplished using unicode.words
89
+ * 2. ANSI codes are restored by scanning the segments, inserting the ANSI back where it belongs
90
+ */
91
+ function wrap(input, contentWidth) {
92
+ if (contentWidth === 0) {
93
+ return [];
94
+ }
95
+ let lines;
96
+ if (typeof input === 'string') {
97
+ lines = input
98
+ .split('\n')
99
+ .map(line => [line, sys_1.unicode.lineWidth(line)]);
100
+ }
101
+ else if (isStringArray(input)) {
102
+ lines = input.map(line => [line, sys_1.unicode.lineWidth(line)]);
103
+ }
104
+ else if (isStringAndWidthArray(input)) {
105
+ lines = input;
106
+ }
107
+ else {
108
+ return [];
109
+ }
110
+ return lines.flatMap(([line, width]) => {
111
+ if (width <= contentWidth) {
112
+ return [[line, width]];
113
+ }
114
+ const outputLines = [];
115
+ function pushTrimmed(line, width) {
116
+ const trimmed = line.replace(/\s+$/, '');
117
+ const trimmedWidth = width - (line.length - trimmed.length);
118
+ outputLines.push([trimmed, trimmedWidth]);
119
+ }
120
+ let currentChars = [];
121
+ let currentWidth = 0;
122
+ const STOP = [];
123
+ const words = sys_1.unicode.words(line).concat([[STOP, 0]]);
124
+ for (const [wordChars] of words) {
125
+ let wordWidth = sys_1.unicode.lineWidth(wordChars);
126
+ if ((!currentWidth || currentWidth + wordWidth <= contentWidth) &&
127
+ wordChars !== STOP) {
128
+ // 1) there's enough room on the line (and it's not the sentinel STOP)
129
+ // or the line is empty, in which case it must have at least _one_ word.
130
+ // it's possible that this will add a word _longer_ than contentWidth.
131
+ // that's ok, it will get picked up below (on the next word, or by STOP)
132
+ currentChars.push(...wordChars);
133
+ currentWidth += wordWidth;
134
+ }
135
+ else {
136
+ // 2) there wasn't enough room on the line – or we are at the STOP sentinel.
137
+ if (currentWidth <= contentWidth) {
138
+ // 3) if currentChars fits, push it to the buffer and reset currentChars
139
+ // if wordChars has content it didn't fit on the current line. It will
140
+ // be picked up below
141
+ pushTrimmed(currentChars.join(''), currentWidth);
142
+ currentChars = [];
143
+ currentWidth = 0;
144
+ }
145
+ else {
146
+ // 4) currentChars is longer than contentWidth. Add characters one at a time
147
+ // until >contentWidth. The remaining characters can stay in currentChars.
148
+ // If we are at the end (STOP), add
149
+ do {
150
+ let buffer = '', bufferWidth = 0, index = 0;
151
+ for (let char of currentChars) {
152
+ const charWidth = sys_1.unicode.charWidth(char);
153
+ if (bufferWidth && bufferWidth + charWidth > contentWidth) {
154
+ pushTrimmed(buffer, bufferWidth);
155
+ // Some delicate math here; remove the bufferWidth from currentWidth, and then
156
+ // scan past whitespace, removing that width, too. (Avoids an expensive call to
157
+ // unicode.lineWidth())
158
+ currentWidth -= bufferWidth;
159
+ while (currentChars[index]?.match(/^\s+$/)) {
160
+ currentWidth -= sys_1.unicode.charWidth(currentChars[index]);
161
+ index += 1;
162
+ }
163
+ currentChars = currentChars.slice(index);
164
+ index = 0;
165
+ if (currentWidth > contentWidth) {
166
+ // if remaining width is still longer than contentWidth, reset bufferWidth and
167
+ // continue
168
+ buffer = '';
169
+ bufferWidth = 0;
170
+ }
171
+ else {
172
+ // either we have more words, or we are at STOP but we have enough room for
173
+ // currentChars in contentWidth
174
+ break;
175
+ }
176
+ }
177
+ buffer += char;
178
+ bufferWidth += charWidth;
179
+ index += 1;
180
+ }
181
+ } while (currentWidth > contentWidth);
182
+ }
183
+ if (wordChars === STOP && currentChars.length) {
184
+ pushTrimmed(currentChars.join(''), currentWidth);
185
+ }
186
+ else if (wordChars.length) {
187
+ // until now, we've only processed the _previous_ currentChars buffer, and it
188
+ // needed to be wrapped to contentWidth. If any remains in currentChars, it
189
+ // starts with a printable character (we skipped whitespace when buffer was
190
+ // full).
191
+ // If it's empty, we should skip the preceding whitespace in wordChars.
192
+ if (currentChars.length === 0) {
193
+ while (wordChars.length && wordChars[0].match(/^\s+$/)) {
194
+ const char = wordChars.shift();
195
+ wordWidth -= sys_1.unicode.charWidth(char);
196
+ }
197
+ }
198
+ currentChars.push(...wordChars);
199
+ currentWidth += wordWidth;
200
+ }
201
+ }
202
+ }
203
+ return outputLines;
204
+ });
205
+ }
79
206
  //# sourceMappingURL=util.js.map
package/.dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../lib/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../lib/util.ts"],"names":[],"mappings":"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"}
package/LICENSE CHANGED
@@ -2,8 +2,17 @@ TeaUI
2
2
  Copyright (c) 2023, Colin T.A. Gray
3
3
  https://github.com/colinta/teaui
4
4
 
5
- With code from Blessed
6
- https://npmjs.com/packages/blessed
5
+ With code from Blessed (see LICENSE-blessed)
6
+ https://github.com/chjj/blessed
7
+
8
+ With code from vangie/east-asian-width (see LICENSE-east-asian-width)
9
+ https://github.com/vangie/east-asian-width
10
+
11
+ With code from komagata/eastasianwidth (see LICENSE-eastasianwidth)
12
+ https://github.com/komagata/eastasianwidth
13
+
14
+ With code from ansi-regex (see LICENSE-ansi-regex)
15
+ https://github.com/chalk/ansi-regex
7
16
 
8
17
  Permission is hereby granted, free of charge, to any person obtaining a copy
9
18
  of this software and associated documentation files (the "Software"), to deal