tycho-components 0.19.7 → 0.19.8

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.
@@ -3,11 +3,6 @@ import { CytoscapeTreeCalculation } from './NodeCalculation';
3
3
  export default class CytoscapeTreeConverter {
4
4
  private ID_SPLITTER;
5
5
  private extraInfo;
6
- /**
7
- * HTML-label extensions and similar code build `#${id}` / querySelector from cytoscape node ids.
8
- * Only [a-zA-Z0-9_-] is safe unescaped; e.g. `3+VB-P` or chunk ids with `|` break selector parsing.
9
- */
10
- private sanitizeGraphNodeId;
11
6
  execute(struct: Struct, extraInfo: boolean): CytoscapeTreeCalculation | undefined;
12
7
  getLabelLeaf(token: Token): string;
13
8
  private splitAttributeValue;
@@ -5,22 +5,6 @@ export default class CytoscapeTreeConverter {
5
5
  this.ID_SPLITTER = '|';
6
6
  this.extraInfo = false;
7
7
  }
8
- /**
9
- * HTML-label extensions and similar code build `#${id}` / querySelector from cytoscape node ids.
10
- * Only [a-zA-Z0-9_-] is safe unescaped; e.g. `3+VB-P` or chunk ids with `|` break selector parsing.
11
- */
12
- sanitizeGraphNodeId(raw) {
13
- let out = '';
14
- for (const ch of raw) {
15
- if (/[a-zA-Z0-9_-]/.test(ch)) {
16
- out += ch;
17
- }
18
- else {
19
- out += '_' + ch.codePointAt(0).toString(16) + '_';
20
- }
21
- }
22
- return out;
23
- }
24
8
  execute(struct, extraInfo) {
25
9
  if (!this.validate(struct))
26
10
  return undefined;
@@ -205,13 +189,12 @@ export default class CytoscapeTreeConverter {
205
189
  }
206
190
  }
207
191
  generateChunkId(chunk) {
208
- const raw = `${chunk.i}${this.ID_SPLITTER}${chunk.f}${this.ID_SPLITTER}${chunk.l}${this.ID_SPLITTER}${chunk.t}`;
209
- return this.sanitizeGraphNodeId(raw);
192
+ return `${chunk.i}${this.ID_SPLITTER}${chunk.f}${this.ID_SPLITTER}${chunk.l}${this.ID_SPLITTER}${chunk.t}`;
210
193
  }
211
194
  generateTokenId(token) {
212
195
  const sb = [];
213
196
  if (token.p === null)
214
- return this.sanitizeGraphNodeId('0');
197
+ return '0';
215
198
  sb.push(`${token.p}`);
216
199
  if (token.idx) {
217
200
  sb.push('-');
@@ -221,7 +204,7 @@ export default class CytoscapeTreeConverter {
221
204
  sb.push('+');
222
205
  sb.push(token.t);
223
206
  }
224
- return this.sanitizeGraphNodeId(sb.join(''));
207
+ return sb.join('');
225
208
  }
226
209
  generateLeafId(token) {
227
210
  if (token.p === null)
@@ -3,5 +3,5 @@ export declare const structWithMorphemes: Struct;
3
3
  export declare const structNotParsed: Struct;
4
4
  export declare const structWithEditionTiers: Struct;
5
5
  export declare const structWithMorphemesAndSplitters: Struct;
6
- /** Minimal tree where a token POS contains `+` / `-` (e.g. VB-P); ids must stay valid for `#${id}` (HTML label layer). */
7
- export declare const structWithHyphenatedPosTokenId: Struct;
6
+ /** Portuguese passage mock (splits, empty category, rich POS). */
7
+ export declare const structHelenaPassage: Struct;
@@ -1297,25 +1297,520 @@ export const structWithMorphemesAndSplitters = {
1297
1297
  status: 'AUTO',
1298
1298
  parsed: '2025-09-21T17:27:38.388+00:00',
1299
1299
  };
1300
- /** Minimal tree where a token POS contains `+` / `-` (e.g. VB-P); ids must stay valid for `#${id}` (HTML label layer). */
1301
- export const structWithHyphenatedPosTokenId = {
1302
- uid: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890',
1303
- parsed: '2026-05-11T12:00:00.000+00:00',
1300
+ /** Portuguese passage mock (splits, empty category, rich POS). */
1301
+ export const structHelenaPassage = {
1302
+ uid: 'f47ac10b-58cc-4372-a567-0e02b2c3d479',
1304
1303
  tokens: [
1305
- { p: 1, v: 'they', t: 'N', l: 1 },
1306
- { p: 2, v: 'might', t: 'M', l: 1 },
1307
- { p: 3, v: 'run', t: 'VB-P', l: 1 },
1304
+ {
1305
+ p: 1,
1306
+ v: 'A',
1307
+ t: 'P',
1308
+ l: 1
1309
+ },
1310
+ {
1311
+ p: 2,
1312
+ v: '14',
1313
+ t: 'NUM',
1314
+ l: 2
1315
+ },
1316
+ {
1317
+ p: 3,
1318
+ v: 'casa',
1319
+ t: 'VB-P',
1320
+ l: 0
1321
+ },
1322
+ {
1323
+ p: 4,
1324
+ v: 'a',
1325
+ t: 'D-F',
1326
+ l: 1
1327
+ },
1328
+ {
1329
+ p: 5,
1330
+ v: 'Senhora',
1331
+ t: 'NPR',
1332
+ l: 1
1333
+ },
1334
+ {
1335
+ p: 6,
1336
+ v: 'Dona',
1337
+ t: 'NPR',
1338
+ l: 1
1339
+ },
1340
+ {
1341
+ p: 7,
1342
+ v: 'Helena',
1343
+ t: 'NPR',
1344
+ l: 1
1345
+ },
1346
+ {
1347
+ p: 8,
1348
+ v: 'a',
1349
+ t: 'P',
1350
+ l: 3
1351
+ },
1352
+ {
1353
+ p: 9,
1354
+ v: 'quem',
1355
+ t: 'WPRO',
1356
+ l: 4
1357
+ },
1358
+ {
1359
+ p: 10,
1360
+ v: '*T*',
1361
+ l: 4,
1362
+ ec: true,
1363
+ coidx: [
1364
+ 1
1365
+ ]
1366
+ },
1367
+ {
1368
+ p: 11,
1369
+ v: 'a',
1370
+ t: 'D-F',
1371
+ l: 4
1372
+ },
1373
+ {
1374
+ p: 12,
1375
+ v: 'Senhora',
1376
+ t: 'NPR',
1377
+ l: 4
1378
+ },
1379
+ {
1380
+ p: 13,
1381
+ v: 'Dona',
1382
+ t: 'NPR',
1383
+ l: 5
1384
+ },
1385
+ {
1386
+ p: 14,
1387
+ v: 'Ana',
1388
+ t: 'NPR',
1389
+ l: 5
1390
+ },
1391
+ {
1392
+ p: 15,
1393
+ v: 'de',
1394
+ t: 'P',
1395
+ l: 6
1396
+ },
1397
+ {
1398
+ p: 16,
1399
+ v: 'Lorena',
1400
+ t: 'NPR',
1401
+ l: 7
1402
+ },
1403
+ {
1404
+ p: 17,
1405
+ v: 'deu',
1406
+ t: 'VB-D',
1407
+ l: 3
1408
+ },
1409
+ {
1410
+ p: 18,
1411
+ v: 'uma',
1412
+ t: 'D-UM-F',
1413
+ l: 4
1414
+ },
1415
+ {
1416
+ p: 19,
1417
+ v: 'peça',
1418
+ t: 'N',
1419
+ l: 4
1420
+ },
1421
+ {
1422
+ p: 20,
1423
+ v: 'de',
1424
+ t: 'P',
1425
+ l: 5
1426
+ },
1427
+ {
1428
+ p: 21,
1429
+ v: 'esmeraldas',
1430
+ t: 'N-P',
1431
+ l: 6
1432
+ },
1433
+ {
1434
+ p: 22,
1435
+ v: ',',
1436
+ t: ',',
1437
+ l: 6
1438
+ },
1439
+ {
1440
+ p: 23,
1441
+ v: 'e',
1442
+ t: 'CONJ',
1443
+ l: 6
1444
+ },
1445
+ {
1446
+ p: 24,
1447
+ v: 'diamantes',
1448
+ t: 'N-P',
1449
+ l: 6
1450
+ },
1451
+ {
1452
+ p: 25,
1453
+ v: 'e',
1454
+ t: 'CONJ',
1455
+ l: 1
1456
+ },
1457
+ {
1458
+ p: 26,
1459
+ v: 'ela',
1460
+ t: 'PRO',
1461
+ l: 3
1462
+ },
1463
+ {
1464
+ p: 27,
1465
+ v: 'lhe',
1466
+ t: 'CL',
1467
+ l: 3
1468
+ },
1469
+ {
1470
+ p: 28,
1471
+ v: 'deu',
1472
+ t: 'VB-D',
1473
+ l: 2
1474
+ },
1475
+ {
1476
+ p: 29,
1477
+ v: 'uma',
1478
+ t: 'D-UM-F',
1479
+ l: 4
1480
+ },
1481
+ {
1482
+ p: 30,
1483
+ v: 'caixa',
1484
+ t: 'N',
1485
+ l: 4
1486
+ },
1487
+ {
1488
+ p: 31,
1489
+ v: 'de',
1490
+ t: 'P',
1491
+ l: 5
1492
+ },
1493
+ {
1494
+ p: 32,
1495
+ v: 'ouro',
1496
+ t: 'N',
1497
+ l: 6
1498
+ },
1499
+ {
1500
+ p: 33,
1501
+ v: ',',
1502
+ t: ',',
1503
+ l: 6
1504
+ },
1505
+ {
1506
+ p: 34,
1507
+ v: 'e',
1508
+ t: 'CONJ',
1509
+ l: 6
1510
+ },
1511
+ {
1512
+ p: 35,
1513
+ v: 'presentes',
1514
+ t: 'N-P',
1515
+ l: 6
1516
+ },
1517
+ {
1518
+ split: {
1519
+ v: 'às',
1520
+ t: 'P+D-F-P',
1521
+ idx: 0
1522
+ },
1523
+ p: 36,
1524
+ v: 'a@',
1525
+ t: 'P',
1526
+ l: 5
1527
+ },
1528
+ {
1529
+ split: {
1530
+ idx: 1
1531
+ },
1532
+ p: 37,
1533
+ v: '@as',
1534
+ t: 'D-F-P',
1535
+ l: 6
1536
+ },
1537
+ {
1538
+ p: 38,
1539
+ v: 'senhoras',
1540
+ t: 'N-P',
1541
+ l: 6
1542
+ },
1543
+ {
1544
+ p: 39,
1545
+ v: 'e',
1546
+ t: 'CONJ',
1547
+ l: 4
1548
+ },
1549
+ {
1550
+ p: 40,
1551
+ v: 'açafata',
1552
+ t: 'N',
1553
+ l: 5
1554
+ },
1555
+ {
1556
+ split: {
1557
+ v: 'do',
1558
+ t: 'P+D',
1559
+ idx: 0
1560
+ },
1561
+ p: 41,
1562
+ v: 'd@',
1563
+ t: 'P',
1564
+ l: 6
1565
+ },
1566
+ {
1567
+ split: {
1568
+ idx: 1
1569
+ },
1570
+ p: 42,
1571
+ v: '@o',
1572
+ t: 'D',
1573
+ l: 7
1574
+ },
1575
+ {
1576
+ p: 43,
1577
+ v: 'quarto',
1578
+ t: 'N',
1579
+ l: 7
1580
+ },
1581
+ {
1582
+ split: {
1583
+ v: 'da',
1584
+ t: 'P+D-F',
1585
+ idx: 0
1586
+ },
1587
+ p: 44,
1588
+ v: 'd@',
1589
+ t: 'P',
1590
+ l: 8
1591
+ },
1592
+ {
1593
+ split: {
1594
+ idx: 1
1595
+ },
1596
+ p: 45,
1597
+ v: '@a',
1598
+ t: 'D-F',
1599
+ l: 9
1600
+ },
1601
+ {
1602
+ p: 46,
1603
+ v: 'Princesa',
1604
+ t: 'NPR',
1605
+ l: 9
1606
+ },
1607
+ {
1608
+ bid: 'bid#1',
1609
+ p: 47,
1610
+ v: '.',
1611
+ t: '.',
1612
+ l: 0
1613
+ }
1308
1614
  ],
1309
1615
  chunks: [
1310
1616
  {
1311
1617
  i: 1,
1312
- f: 3,
1618
+ f: 47,
1313
1619
  t: 'IP-MAT',
1314
- l: 0,
1620
+ l: 0
1315
1621
  },
1622
+ {
1623
+ i: 1,
1624
+ f: 2,
1625
+ t: 'PP',
1626
+ l: 1
1627
+ },
1628
+ {
1629
+ i: 4,
1630
+ f: 24,
1631
+ t: 'NP-SBJ',
1632
+ l: 1
1633
+ },
1634
+ {
1635
+ i: 25,
1636
+ f: 46,
1637
+ t: 'CONJP',
1638
+ l: 1
1639
+ },
1640
+ {
1641
+ i: 2,
1642
+ f: 2,
1643
+ t: 'NP',
1644
+ l: 2
1645
+ },
1646
+ {
1647
+ i: 8,
1648
+ f: 24,
1649
+ t: 'CP-REL',
1650
+ l: 2
1651
+ },
1652
+ {
1653
+ i: 26,
1654
+ f: 46,
1655
+ t: 'IP-MAT',
1656
+ l: 2
1657
+ },
1658
+ {
1659
+ i: 8,
1660
+ f: 9,
1661
+ t: 'WPP',
1662
+ l: 3,
1663
+ coidx: [
1664
+ 1
1665
+ ]
1666
+ },
1667
+ {
1668
+ i: 10,
1669
+ f: 24,
1670
+ t: 'IP-SUB',
1671
+ l: 3
1672
+ },
1673
+ {
1674
+ i: 26,
1675
+ f: 26,
1676
+ t: 'NP-SBJ',
1677
+ l: 3
1678
+ },
1679
+ {
1680
+ i: 27,
1681
+ f: 27,
1682
+ t: 'NP-DAT',
1683
+ l: 3
1684
+ },
1685
+ {
1686
+ i: 29,
1687
+ f: 46,
1688
+ t: 'NP-ACC',
1689
+ l: 3
1690
+ },
1691
+ {
1692
+ i: 9,
1693
+ f: 9,
1694
+ t: 'NP',
1695
+ l: 4
1696
+ },
1697
+ {
1698
+ i: 10,
1699
+ f: 10,
1700
+ t: 'PP',
1701
+ l: 4
1702
+ },
1703
+ {
1704
+ i: 11,
1705
+ f: 16,
1706
+ t: 'NP-SBJ',
1707
+ l: 4
1708
+ },
1709
+ {
1710
+ i: 18,
1711
+ f: 24,
1712
+ t: 'NP-ACC',
1713
+ l: 4
1714
+ },
1715
+ {
1716
+ i: 29,
1717
+ f: 38,
1718
+ t: 'NP',
1719
+ l: 4
1720
+ },
1721
+ {
1722
+ i: 39,
1723
+ f: 46,
1724
+ t: 'CONJP',
1725
+ l: 4
1726
+ },
1727
+ {
1728
+ i: 13,
1729
+ f: 16,
1730
+ t: 'NP-PRN',
1731
+ l: 5
1732
+ },
1733
+ {
1734
+ i: 20,
1735
+ f: 24,
1736
+ t: 'PP',
1737
+ l: 5
1738
+ },
1739
+ {
1740
+ i: 31,
1741
+ f: 35,
1742
+ t: 'PP',
1743
+ l: 5
1744
+ },
1745
+ {
1746
+ i: 36,
1747
+ f: 38,
1748
+ t: 'PP',
1749
+ l: 5
1750
+ },
1751
+ {
1752
+ i: 40,
1753
+ f: 46,
1754
+ t: 'NP',
1755
+ l: 5
1756
+ },
1757
+ {
1758
+ i: 15,
1759
+ f: 16,
1760
+ t: 'PP',
1761
+ l: 6
1762
+ },
1763
+ {
1764
+ i: 21,
1765
+ f: 24,
1766
+ t: 'NP',
1767
+ l: 6
1768
+ },
1769
+ {
1770
+ i: 32,
1771
+ f: 35,
1772
+ t: 'NP',
1773
+ l: 6
1774
+ },
1775
+ {
1776
+ i: 37,
1777
+ f: 38,
1778
+ t: 'NP',
1779
+ l: 6
1780
+ },
1781
+ {
1782
+ i: 41,
1783
+ f: 46,
1784
+ t: 'PP',
1785
+ l: 6
1786
+ },
1787
+ {
1788
+ i: 16,
1789
+ f: 16,
1790
+ t: 'NP',
1791
+ l: 7
1792
+ },
1793
+ {
1794
+ i: 42,
1795
+ f: 46,
1796
+ t: 'NP',
1797
+ l: 7
1798
+ },
1799
+ {
1800
+ i: 44,
1801
+ f: 46,
1802
+ t: 'PP',
1803
+ l: 8
1804
+ },
1805
+ {
1806
+ i: 45,
1807
+ f: 46,
1808
+ t: 'NP',
1809
+ l: 9
1810
+ }
1316
1811
  ],
1317
- corpus: 'C-test',
1318
- document: 'D-selector',
1812
+ corpus: 'mock',
1813
+ document: 'helena-passage',
1319
1814
  page: 'P1',
1320
- psd: '(IP-MAT (N they) (M might) (VB-P run))',
1815
+ parsed: '2026-05-11T12:00:00.000+00:00'
1321
1816
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tycho-components",
3
3
  "private": false,
4
- "version": "0.19.7",
4
+ "version": "0.19.8",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {