@angular/language-service 12.1.0-next.6 → 12.1.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.
- package/bundles/ivy.js +2743 -605
- package/bundles/language-service.js +2237 -327
- package/package.json +1 -1
- package/api.externs.js +0 -0
- package/api.mjs +0 -15
- package/index.mjs +0 -29
package/bundles/ivy.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v12.1.
|
|
2
|
+
* @license Angular v12.1.3
|
|
3
3
|
* Copyright Google LLC All Rights Reserved.
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -478,269 +478,6 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
478
478
|
function mergeNsAndName(prefix, localName) {
|
|
479
479
|
return prefix ? `:${prefix}:${localName}` : localName;
|
|
480
480
|
}
|
|
481
|
-
// see https://www.w3.org/TR/html51/syntax.html#named-character-references
|
|
482
|
-
// see https://html.spec.whatwg.org/multipage/entities.json
|
|
483
|
-
// This list is not exhaustive to keep the compiler footprint low.
|
|
484
|
-
// The `{` / `ƫ` syntax should be used when the named character reference does not
|
|
485
|
-
// exist.
|
|
486
|
-
const NAMED_ENTITIES = {
|
|
487
|
-
'Aacute': '\u00C1',
|
|
488
|
-
'aacute': '\u00E1',
|
|
489
|
-
'Acirc': '\u00C2',
|
|
490
|
-
'acirc': '\u00E2',
|
|
491
|
-
'acute': '\u00B4',
|
|
492
|
-
'AElig': '\u00C6',
|
|
493
|
-
'aelig': '\u00E6',
|
|
494
|
-
'Agrave': '\u00C0',
|
|
495
|
-
'agrave': '\u00E0',
|
|
496
|
-
'alefsym': '\u2135',
|
|
497
|
-
'Alpha': '\u0391',
|
|
498
|
-
'alpha': '\u03B1',
|
|
499
|
-
'amp': '&',
|
|
500
|
-
'and': '\u2227',
|
|
501
|
-
'ang': '\u2220',
|
|
502
|
-
'apos': '\u0027',
|
|
503
|
-
'Aring': '\u00C5',
|
|
504
|
-
'aring': '\u00E5',
|
|
505
|
-
'asymp': '\u2248',
|
|
506
|
-
'Atilde': '\u00C3',
|
|
507
|
-
'atilde': '\u00E3',
|
|
508
|
-
'Auml': '\u00C4',
|
|
509
|
-
'auml': '\u00E4',
|
|
510
|
-
'bdquo': '\u201E',
|
|
511
|
-
'Beta': '\u0392',
|
|
512
|
-
'beta': '\u03B2',
|
|
513
|
-
'brvbar': '\u00A6',
|
|
514
|
-
'bull': '\u2022',
|
|
515
|
-
'cap': '\u2229',
|
|
516
|
-
'Ccedil': '\u00C7',
|
|
517
|
-
'ccedil': '\u00E7',
|
|
518
|
-
'cedil': '\u00B8',
|
|
519
|
-
'cent': '\u00A2',
|
|
520
|
-
'Chi': '\u03A7',
|
|
521
|
-
'chi': '\u03C7',
|
|
522
|
-
'circ': '\u02C6',
|
|
523
|
-
'clubs': '\u2663',
|
|
524
|
-
'cong': '\u2245',
|
|
525
|
-
'copy': '\u00A9',
|
|
526
|
-
'crarr': '\u21B5',
|
|
527
|
-
'cup': '\u222A',
|
|
528
|
-
'curren': '\u00A4',
|
|
529
|
-
'dagger': '\u2020',
|
|
530
|
-
'Dagger': '\u2021',
|
|
531
|
-
'darr': '\u2193',
|
|
532
|
-
'dArr': '\u21D3',
|
|
533
|
-
'deg': '\u00B0',
|
|
534
|
-
'Delta': '\u0394',
|
|
535
|
-
'delta': '\u03B4',
|
|
536
|
-
'diams': '\u2666',
|
|
537
|
-
'divide': '\u00F7',
|
|
538
|
-
'Eacute': '\u00C9',
|
|
539
|
-
'eacute': '\u00E9',
|
|
540
|
-
'Ecirc': '\u00CA',
|
|
541
|
-
'ecirc': '\u00EA',
|
|
542
|
-
'Egrave': '\u00C8',
|
|
543
|
-
'egrave': '\u00E8',
|
|
544
|
-
'empty': '\u2205',
|
|
545
|
-
'emsp': '\u2003',
|
|
546
|
-
'ensp': '\u2002',
|
|
547
|
-
'Epsilon': '\u0395',
|
|
548
|
-
'epsilon': '\u03B5',
|
|
549
|
-
'equiv': '\u2261',
|
|
550
|
-
'Eta': '\u0397',
|
|
551
|
-
'eta': '\u03B7',
|
|
552
|
-
'ETH': '\u00D0',
|
|
553
|
-
'eth': '\u00F0',
|
|
554
|
-
'Euml': '\u00CB',
|
|
555
|
-
'euml': '\u00EB',
|
|
556
|
-
'euro': '\u20AC',
|
|
557
|
-
'exist': '\u2203',
|
|
558
|
-
'fnof': '\u0192',
|
|
559
|
-
'forall': '\u2200',
|
|
560
|
-
'frac12': '\u00BD',
|
|
561
|
-
'frac14': '\u00BC',
|
|
562
|
-
'frac34': '\u00BE',
|
|
563
|
-
'frasl': '\u2044',
|
|
564
|
-
'Gamma': '\u0393',
|
|
565
|
-
'gamma': '\u03B3',
|
|
566
|
-
'ge': '\u2265',
|
|
567
|
-
'gt': '>',
|
|
568
|
-
'harr': '\u2194',
|
|
569
|
-
'hArr': '\u21D4',
|
|
570
|
-
'hearts': '\u2665',
|
|
571
|
-
'hellip': '\u2026',
|
|
572
|
-
'Iacute': '\u00CD',
|
|
573
|
-
'iacute': '\u00ED',
|
|
574
|
-
'Icirc': '\u00CE',
|
|
575
|
-
'icirc': '\u00EE',
|
|
576
|
-
'iexcl': '\u00A1',
|
|
577
|
-
'Igrave': '\u00CC',
|
|
578
|
-
'igrave': '\u00EC',
|
|
579
|
-
'image': '\u2111',
|
|
580
|
-
'infin': '\u221E',
|
|
581
|
-
'int': '\u222B',
|
|
582
|
-
'Iota': '\u0399',
|
|
583
|
-
'iota': '\u03B9',
|
|
584
|
-
'iquest': '\u00BF',
|
|
585
|
-
'isin': '\u2208',
|
|
586
|
-
'Iuml': '\u00CF',
|
|
587
|
-
'iuml': '\u00EF',
|
|
588
|
-
'Kappa': '\u039A',
|
|
589
|
-
'kappa': '\u03BA',
|
|
590
|
-
'Lambda': '\u039B',
|
|
591
|
-
'lambda': '\u03BB',
|
|
592
|
-
'lang': '\u27E8',
|
|
593
|
-
'laquo': '\u00AB',
|
|
594
|
-
'larr': '\u2190',
|
|
595
|
-
'lArr': '\u21D0',
|
|
596
|
-
'lceil': '\u2308',
|
|
597
|
-
'ldquo': '\u201C',
|
|
598
|
-
'le': '\u2264',
|
|
599
|
-
'lfloor': '\u230A',
|
|
600
|
-
'lowast': '\u2217',
|
|
601
|
-
'loz': '\u25CA',
|
|
602
|
-
'lrm': '\u200E',
|
|
603
|
-
'lsaquo': '\u2039',
|
|
604
|
-
'lsquo': '\u2018',
|
|
605
|
-
'lt': '<',
|
|
606
|
-
'macr': '\u00AF',
|
|
607
|
-
'mdash': '\u2014',
|
|
608
|
-
'micro': '\u00B5',
|
|
609
|
-
'middot': '\u00B7',
|
|
610
|
-
'minus': '\u2212',
|
|
611
|
-
'Mu': '\u039C',
|
|
612
|
-
'mu': '\u03BC',
|
|
613
|
-
'nabla': '\u2207',
|
|
614
|
-
'nbsp': '\u00A0',
|
|
615
|
-
'ndash': '\u2013',
|
|
616
|
-
'ne': '\u2260',
|
|
617
|
-
'ni': '\u220B',
|
|
618
|
-
'not': '\u00AC',
|
|
619
|
-
'notin': '\u2209',
|
|
620
|
-
'nsub': '\u2284',
|
|
621
|
-
'Ntilde': '\u00D1',
|
|
622
|
-
'ntilde': '\u00F1',
|
|
623
|
-
'Nu': '\u039D',
|
|
624
|
-
'nu': '\u03BD',
|
|
625
|
-
'Oacute': '\u00D3',
|
|
626
|
-
'oacute': '\u00F3',
|
|
627
|
-
'Ocirc': '\u00D4',
|
|
628
|
-
'ocirc': '\u00F4',
|
|
629
|
-
'OElig': '\u0152',
|
|
630
|
-
'oelig': '\u0153',
|
|
631
|
-
'Ograve': '\u00D2',
|
|
632
|
-
'ograve': '\u00F2',
|
|
633
|
-
'oline': '\u203E',
|
|
634
|
-
'Omega': '\u03A9',
|
|
635
|
-
'omega': '\u03C9',
|
|
636
|
-
'Omicron': '\u039F',
|
|
637
|
-
'omicron': '\u03BF',
|
|
638
|
-
'oplus': '\u2295',
|
|
639
|
-
'or': '\u2228',
|
|
640
|
-
'ordf': '\u00AA',
|
|
641
|
-
'ordm': '\u00BA',
|
|
642
|
-
'Oslash': '\u00D8',
|
|
643
|
-
'oslash': '\u00F8',
|
|
644
|
-
'Otilde': '\u00D5',
|
|
645
|
-
'otilde': '\u00F5',
|
|
646
|
-
'otimes': '\u2297',
|
|
647
|
-
'Ouml': '\u00D6',
|
|
648
|
-
'ouml': '\u00F6',
|
|
649
|
-
'para': '\u00B6',
|
|
650
|
-
'permil': '\u2030',
|
|
651
|
-
'perp': '\u22A5',
|
|
652
|
-
'Phi': '\u03A6',
|
|
653
|
-
'phi': '\u03C6',
|
|
654
|
-
'Pi': '\u03A0',
|
|
655
|
-
'pi': '\u03C0',
|
|
656
|
-
'piv': '\u03D6',
|
|
657
|
-
'plusmn': '\u00B1',
|
|
658
|
-
'pound': '\u00A3',
|
|
659
|
-
'prime': '\u2032',
|
|
660
|
-
'Prime': '\u2033',
|
|
661
|
-
'prod': '\u220F',
|
|
662
|
-
'prop': '\u221D',
|
|
663
|
-
'Psi': '\u03A8',
|
|
664
|
-
'psi': '\u03C8',
|
|
665
|
-
'quot': '\u0022',
|
|
666
|
-
'radic': '\u221A',
|
|
667
|
-
'rang': '\u27E9',
|
|
668
|
-
'raquo': '\u00BB',
|
|
669
|
-
'rarr': '\u2192',
|
|
670
|
-
'rArr': '\u21D2',
|
|
671
|
-
'rceil': '\u2309',
|
|
672
|
-
'rdquo': '\u201D',
|
|
673
|
-
'real': '\u211C',
|
|
674
|
-
'reg': '\u00AE',
|
|
675
|
-
'rfloor': '\u230B',
|
|
676
|
-
'Rho': '\u03A1',
|
|
677
|
-
'rho': '\u03C1',
|
|
678
|
-
'rlm': '\u200F',
|
|
679
|
-
'rsaquo': '\u203A',
|
|
680
|
-
'rsquo': '\u2019',
|
|
681
|
-
'sbquo': '\u201A',
|
|
682
|
-
'Scaron': '\u0160',
|
|
683
|
-
'scaron': '\u0161',
|
|
684
|
-
'sdot': '\u22C5',
|
|
685
|
-
'sect': '\u00A7',
|
|
686
|
-
'shy': '\u00AD',
|
|
687
|
-
'Sigma': '\u03A3',
|
|
688
|
-
'sigma': '\u03C3',
|
|
689
|
-
'sigmaf': '\u03C2',
|
|
690
|
-
'sim': '\u223C',
|
|
691
|
-
'spades': '\u2660',
|
|
692
|
-
'sub': '\u2282',
|
|
693
|
-
'sube': '\u2286',
|
|
694
|
-
'sum': '\u2211',
|
|
695
|
-
'sup': '\u2283',
|
|
696
|
-
'sup1': '\u00B9',
|
|
697
|
-
'sup2': '\u00B2',
|
|
698
|
-
'sup3': '\u00B3',
|
|
699
|
-
'supe': '\u2287',
|
|
700
|
-
'szlig': '\u00DF',
|
|
701
|
-
'Tau': '\u03A4',
|
|
702
|
-
'tau': '\u03C4',
|
|
703
|
-
'there4': '\u2234',
|
|
704
|
-
'Theta': '\u0398',
|
|
705
|
-
'theta': '\u03B8',
|
|
706
|
-
'thetasym': '\u03D1',
|
|
707
|
-
'thinsp': '\u2009',
|
|
708
|
-
'THORN': '\u00DE',
|
|
709
|
-
'thorn': '\u00FE',
|
|
710
|
-
'tilde': '\u02DC',
|
|
711
|
-
'times': '\u00D7',
|
|
712
|
-
'trade': '\u2122',
|
|
713
|
-
'Uacute': '\u00DA',
|
|
714
|
-
'uacute': '\u00FA',
|
|
715
|
-
'uarr': '\u2191',
|
|
716
|
-
'uArr': '\u21D1',
|
|
717
|
-
'Ucirc': '\u00DB',
|
|
718
|
-
'ucirc': '\u00FB',
|
|
719
|
-
'Ugrave': '\u00D9',
|
|
720
|
-
'ugrave': '\u00F9',
|
|
721
|
-
'uml': '\u00A8',
|
|
722
|
-
'upsih': '\u03D2',
|
|
723
|
-
'Upsilon': '\u03A5',
|
|
724
|
-
'upsilon': '\u03C5',
|
|
725
|
-
'Uuml': '\u00DC',
|
|
726
|
-
'uuml': '\u00FC',
|
|
727
|
-
'weierp': '\u2118',
|
|
728
|
-
'Xi': '\u039E',
|
|
729
|
-
'xi': '\u03BE',
|
|
730
|
-
'Yacute': '\u00DD',
|
|
731
|
-
'yacute': '\u00FD',
|
|
732
|
-
'yen': '\u00A5',
|
|
733
|
-
'yuml': '\u00FF',
|
|
734
|
-
'Yuml': '\u0178',
|
|
735
|
-
'Zeta': '\u0396',
|
|
736
|
-
'zeta': '\u03B6',
|
|
737
|
-
'zwj': '\u200D',
|
|
738
|
-
'zwnj': '\u200C',
|
|
739
|
-
};
|
|
740
|
-
// The &ngsp; pseudo-entity is denoting a space. see:
|
|
741
|
-
// https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart
|
|
742
|
-
const NGSP_UNICODE = '\uE500';
|
|
743
|
-
NAMED_ENTITIES['ngsp'] = NGSP_UNICODE;
|
|
744
481
|
|
|
745
482
|
/**
|
|
746
483
|
* @license
|
|
@@ -6410,9 +6147,6 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
6410
6147
|
this.span = span;
|
|
6411
6148
|
this.sourceSpan = sourceSpan;
|
|
6412
6149
|
}
|
|
6413
|
-
visit(visitor, context = null) {
|
|
6414
|
-
return null;
|
|
6415
|
-
}
|
|
6416
6150
|
toString() {
|
|
6417
6151
|
return 'AST';
|
|
6418
6152
|
}
|
|
@@ -7678,6 +7412,9 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
7678
7412
|
const obj = this._visit(ast.receiver, _Mode.Expression);
|
|
7679
7413
|
const key = this._visit(ast.key, _Mode.Expression);
|
|
7680
7414
|
const value = this._visit(ast.value, _Mode.Expression);
|
|
7415
|
+
if (obj === this._implicitReceiver) {
|
|
7416
|
+
this._localResolver.maybeRestoreView();
|
|
7417
|
+
}
|
|
7681
7418
|
return convertToStatementIfNeeded(mode, obj.key(key).set(value));
|
|
7682
7419
|
}
|
|
7683
7420
|
visitLiteralArray(ast, mode) {
|
|
@@ -8122,6 +7859,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
8122
7859
|
this.globals = globals;
|
|
8123
7860
|
}
|
|
8124
7861
|
notifyImplicitReceiverUse() { }
|
|
7862
|
+
maybeRestoreView() { }
|
|
8125
7863
|
getLocal(name) {
|
|
8126
7864
|
if (name === EventHandlerVars.event.name) {
|
|
8127
7865
|
return EventHandlerVars.event;
|
|
@@ -8147,7 +7885,6 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
8147
7885
|
class BuiltinFunctionCall extends FunctionCall {
|
|
8148
7886
|
constructor(span, sourceSpan, args, converter) {
|
|
8149
7887
|
super(span, sourceSpan, null, args);
|
|
8150
|
-
this.args = args;
|
|
8151
7888
|
this.converter = converter;
|
|
8152
7889
|
}
|
|
8153
7890
|
}
|
|
@@ -8997,6 +8734,2149 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
8997
8734
|
return result;
|
|
8998
8735
|
}
|
|
8999
8736
|
|
|
8737
|
+
/**
|
|
8738
|
+
* @license
|
|
8739
|
+
* Copyright Google LLC All Rights Reserved.
|
|
8740
|
+
*
|
|
8741
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
8742
|
+
* found in the LICENSE file at https://angular.io/license
|
|
8743
|
+
*/
|
|
8744
|
+
// Mapping between all HTML entity names and their unicode representation.
|
|
8745
|
+
// Generated from https://html.spec.whatwg.org/multipage/entities.json by stripping
|
|
8746
|
+
// the `&` and `;` from the keys and removing the duplicates.
|
|
8747
|
+
// see https://www.w3.org/TR/html51/syntax.html#named-character-references
|
|
8748
|
+
const NAMED_ENTITIES = {
|
|
8749
|
+
'AElig': '\u00C6',
|
|
8750
|
+
'AMP': '\u0026',
|
|
8751
|
+
'amp': '\u0026',
|
|
8752
|
+
'Aacute': '\u00C1',
|
|
8753
|
+
'Abreve': '\u0102',
|
|
8754
|
+
'Acirc': '\u00C2',
|
|
8755
|
+
'Acy': '\u0410',
|
|
8756
|
+
'Afr': '\uD835\uDD04',
|
|
8757
|
+
'Agrave': '\u00C0',
|
|
8758
|
+
'Alpha': '\u0391',
|
|
8759
|
+
'Amacr': '\u0100',
|
|
8760
|
+
'And': '\u2A53',
|
|
8761
|
+
'Aogon': '\u0104',
|
|
8762
|
+
'Aopf': '\uD835\uDD38',
|
|
8763
|
+
'ApplyFunction': '\u2061',
|
|
8764
|
+
'af': '\u2061',
|
|
8765
|
+
'Aring': '\u00C5',
|
|
8766
|
+
'angst': '\u00C5',
|
|
8767
|
+
'Ascr': '\uD835\uDC9C',
|
|
8768
|
+
'Assign': '\u2254',
|
|
8769
|
+
'colone': '\u2254',
|
|
8770
|
+
'coloneq': '\u2254',
|
|
8771
|
+
'Atilde': '\u00C3',
|
|
8772
|
+
'Auml': '\u00C4',
|
|
8773
|
+
'Backslash': '\u2216',
|
|
8774
|
+
'setminus': '\u2216',
|
|
8775
|
+
'setmn': '\u2216',
|
|
8776
|
+
'smallsetminus': '\u2216',
|
|
8777
|
+
'ssetmn': '\u2216',
|
|
8778
|
+
'Barv': '\u2AE7',
|
|
8779
|
+
'Barwed': '\u2306',
|
|
8780
|
+
'doublebarwedge': '\u2306',
|
|
8781
|
+
'Bcy': '\u0411',
|
|
8782
|
+
'Because': '\u2235',
|
|
8783
|
+
'becaus': '\u2235',
|
|
8784
|
+
'because': '\u2235',
|
|
8785
|
+
'Bernoullis': '\u212C',
|
|
8786
|
+
'Bscr': '\u212C',
|
|
8787
|
+
'bernou': '\u212C',
|
|
8788
|
+
'Beta': '\u0392',
|
|
8789
|
+
'Bfr': '\uD835\uDD05',
|
|
8790
|
+
'Bopf': '\uD835\uDD39',
|
|
8791
|
+
'Breve': '\u02D8',
|
|
8792
|
+
'breve': '\u02D8',
|
|
8793
|
+
'Bumpeq': '\u224E',
|
|
8794
|
+
'HumpDownHump': '\u224E',
|
|
8795
|
+
'bump': '\u224E',
|
|
8796
|
+
'CHcy': '\u0427',
|
|
8797
|
+
'COPY': '\u00A9',
|
|
8798
|
+
'copy': '\u00A9',
|
|
8799
|
+
'Cacute': '\u0106',
|
|
8800
|
+
'Cap': '\u22D2',
|
|
8801
|
+
'CapitalDifferentialD': '\u2145',
|
|
8802
|
+
'DD': '\u2145',
|
|
8803
|
+
'Cayleys': '\u212D',
|
|
8804
|
+
'Cfr': '\u212D',
|
|
8805
|
+
'Ccaron': '\u010C',
|
|
8806
|
+
'Ccedil': '\u00C7',
|
|
8807
|
+
'Ccirc': '\u0108',
|
|
8808
|
+
'Cconint': '\u2230',
|
|
8809
|
+
'Cdot': '\u010A',
|
|
8810
|
+
'Cedilla': '\u00B8',
|
|
8811
|
+
'cedil': '\u00B8',
|
|
8812
|
+
'CenterDot': '\u00B7',
|
|
8813
|
+
'centerdot': '\u00B7',
|
|
8814
|
+
'middot': '\u00B7',
|
|
8815
|
+
'Chi': '\u03A7',
|
|
8816
|
+
'CircleDot': '\u2299',
|
|
8817
|
+
'odot': '\u2299',
|
|
8818
|
+
'CircleMinus': '\u2296',
|
|
8819
|
+
'ominus': '\u2296',
|
|
8820
|
+
'CirclePlus': '\u2295',
|
|
8821
|
+
'oplus': '\u2295',
|
|
8822
|
+
'CircleTimes': '\u2297',
|
|
8823
|
+
'otimes': '\u2297',
|
|
8824
|
+
'ClockwiseContourIntegral': '\u2232',
|
|
8825
|
+
'cwconint': '\u2232',
|
|
8826
|
+
'CloseCurlyDoubleQuote': '\u201D',
|
|
8827
|
+
'rdquo': '\u201D',
|
|
8828
|
+
'rdquor': '\u201D',
|
|
8829
|
+
'CloseCurlyQuote': '\u2019',
|
|
8830
|
+
'rsquo': '\u2019',
|
|
8831
|
+
'rsquor': '\u2019',
|
|
8832
|
+
'Colon': '\u2237',
|
|
8833
|
+
'Proportion': '\u2237',
|
|
8834
|
+
'Colone': '\u2A74',
|
|
8835
|
+
'Congruent': '\u2261',
|
|
8836
|
+
'equiv': '\u2261',
|
|
8837
|
+
'Conint': '\u222F',
|
|
8838
|
+
'DoubleContourIntegral': '\u222F',
|
|
8839
|
+
'ContourIntegral': '\u222E',
|
|
8840
|
+
'conint': '\u222E',
|
|
8841
|
+
'oint': '\u222E',
|
|
8842
|
+
'Copf': '\u2102',
|
|
8843
|
+
'complexes': '\u2102',
|
|
8844
|
+
'Coproduct': '\u2210',
|
|
8845
|
+
'coprod': '\u2210',
|
|
8846
|
+
'CounterClockwiseContourIntegral': '\u2233',
|
|
8847
|
+
'awconint': '\u2233',
|
|
8848
|
+
'Cross': '\u2A2F',
|
|
8849
|
+
'Cscr': '\uD835\uDC9E',
|
|
8850
|
+
'Cup': '\u22D3',
|
|
8851
|
+
'CupCap': '\u224D',
|
|
8852
|
+
'asympeq': '\u224D',
|
|
8853
|
+
'DDotrahd': '\u2911',
|
|
8854
|
+
'DJcy': '\u0402',
|
|
8855
|
+
'DScy': '\u0405',
|
|
8856
|
+
'DZcy': '\u040F',
|
|
8857
|
+
'Dagger': '\u2021',
|
|
8858
|
+
'ddagger': '\u2021',
|
|
8859
|
+
'Darr': '\u21A1',
|
|
8860
|
+
'Dashv': '\u2AE4',
|
|
8861
|
+
'DoubleLeftTee': '\u2AE4',
|
|
8862
|
+
'Dcaron': '\u010E',
|
|
8863
|
+
'Dcy': '\u0414',
|
|
8864
|
+
'Del': '\u2207',
|
|
8865
|
+
'nabla': '\u2207',
|
|
8866
|
+
'Delta': '\u0394',
|
|
8867
|
+
'Dfr': '\uD835\uDD07',
|
|
8868
|
+
'DiacriticalAcute': '\u00B4',
|
|
8869
|
+
'acute': '\u00B4',
|
|
8870
|
+
'DiacriticalDot': '\u02D9',
|
|
8871
|
+
'dot': '\u02D9',
|
|
8872
|
+
'DiacriticalDoubleAcute': '\u02DD',
|
|
8873
|
+
'dblac': '\u02DD',
|
|
8874
|
+
'DiacriticalGrave': '\u0060',
|
|
8875
|
+
'grave': '\u0060',
|
|
8876
|
+
'DiacriticalTilde': '\u02DC',
|
|
8877
|
+
'tilde': '\u02DC',
|
|
8878
|
+
'Diamond': '\u22C4',
|
|
8879
|
+
'diam': '\u22C4',
|
|
8880
|
+
'diamond': '\u22C4',
|
|
8881
|
+
'DifferentialD': '\u2146',
|
|
8882
|
+
'dd': '\u2146',
|
|
8883
|
+
'Dopf': '\uD835\uDD3B',
|
|
8884
|
+
'Dot': '\u00A8',
|
|
8885
|
+
'DoubleDot': '\u00A8',
|
|
8886
|
+
'die': '\u00A8',
|
|
8887
|
+
'uml': '\u00A8',
|
|
8888
|
+
'DotDot': '\u20DC',
|
|
8889
|
+
'DotEqual': '\u2250',
|
|
8890
|
+
'doteq': '\u2250',
|
|
8891
|
+
'esdot': '\u2250',
|
|
8892
|
+
'DoubleDownArrow': '\u21D3',
|
|
8893
|
+
'Downarrow': '\u21D3',
|
|
8894
|
+
'dArr': '\u21D3',
|
|
8895
|
+
'DoubleLeftArrow': '\u21D0',
|
|
8896
|
+
'Leftarrow': '\u21D0',
|
|
8897
|
+
'lArr': '\u21D0',
|
|
8898
|
+
'DoubleLeftRightArrow': '\u21D4',
|
|
8899
|
+
'Leftrightarrow': '\u21D4',
|
|
8900
|
+
'hArr': '\u21D4',
|
|
8901
|
+
'iff': '\u21D4',
|
|
8902
|
+
'DoubleLongLeftArrow': '\u27F8',
|
|
8903
|
+
'Longleftarrow': '\u27F8',
|
|
8904
|
+
'xlArr': '\u27F8',
|
|
8905
|
+
'DoubleLongLeftRightArrow': '\u27FA',
|
|
8906
|
+
'Longleftrightarrow': '\u27FA',
|
|
8907
|
+
'xhArr': '\u27FA',
|
|
8908
|
+
'DoubleLongRightArrow': '\u27F9',
|
|
8909
|
+
'Longrightarrow': '\u27F9',
|
|
8910
|
+
'xrArr': '\u27F9',
|
|
8911
|
+
'DoubleRightArrow': '\u21D2',
|
|
8912
|
+
'Implies': '\u21D2',
|
|
8913
|
+
'Rightarrow': '\u21D2',
|
|
8914
|
+
'rArr': '\u21D2',
|
|
8915
|
+
'DoubleRightTee': '\u22A8',
|
|
8916
|
+
'vDash': '\u22A8',
|
|
8917
|
+
'DoubleUpArrow': '\u21D1',
|
|
8918
|
+
'Uparrow': '\u21D1',
|
|
8919
|
+
'uArr': '\u21D1',
|
|
8920
|
+
'DoubleUpDownArrow': '\u21D5',
|
|
8921
|
+
'Updownarrow': '\u21D5',
|
|
8922
|
+
'vArr': '\u21D5',
|
|
8923
|
+
'DoubleVerticalBar': '\u2225',
|
|
8924
|
+
'par': '\u2225',
|
|
8925
|
+
'parallel': '\u2225',
|
|
8926
|
+
'shortparallel': '\u2225',
|
|
8927
|
+
'spar': '\u2225',
|
|
8928
|
+
'DownArrow': '\u2193',
|
|
8929
|
+
'ShortDownArrow': '\u2193',
|
|
8930
|
+
'darr': '\u2193',
|
|
8931
|
+
'downarrow': '\u2193',
|
|
8932
|
+
'DownArrowBar': '\u2913',
|
|
8933
|
+
'DownArrowUpArrow': '\u21F5',
|
|
8934
|
+
'duarr': '\u21F5',
|
|
8935
|
+
'DownBreve': '\u0311',
|
|
8936
|
+
'DownLeftRightVector': '\u2950',
|
|
8937
|
+
'DownLeftTeeVector': '\u295E',
|
|
8938
|
+
'DownLeftVector': '\u21BD',
|
|
8939
|
+
'leftharpoondown': '\u21BD',
|
|
8940
|
+
'lhard': '\u21BD',
|
|
8941
|
+
'DownLeftVectorBar': '\u2956',
|
|
8942
|
+
'DownRightTeeVector': '\u295F',
|
|
8943
|
+
'DownRightVector': '\u21C1',
|
|
8944
|
+
'rhard': '\u21C1',
|
|
8945
|
+
'rightharpoondown': '\u21C1',
|
|
8946
|
+
'DownRightVectorBar': '\u2957',
|
|
8947
|
+
'DownTee': '\u22A4',
|
|
8948
|
+
'top': '\u22A4',
|
|
8949
|
+
'DownTeeArrow': '\u21A7',
|
|
8950
|
+
'mapstodown': '\u21A7',
|
|
8951
|
+
'Dscr': '\uD835\uDC9F',
|
|
8952
|
+
'Dstrok': '\u0110',
|
|
8953
|
+
'ENG': '\u014A',
|
|
8954
|
+
'ETH': '\u00D0',
|
|
8955
|
+
'Eacute': '\u00C9',
|
|
8956
|
+
'Ecaron': '\u011A',
|
|
8957
|
+
'Ecirc': '\u00CA',
|
|
8958
|
+
'Ecy': '\u042D',
|
|
8959
|
+
'Edot': '\u0116',
|
|
8960
|
+
'Efr': '\uD835\uDD08',
|
|
8961
|
+
'Egrave': '\u00C8',
|
|
8962
|
+
'Element': '\u2208',
|
|
8963
|
+
'in': '\u2208',
|
|
8964
|
+
'isin': '\u2208',
|
|
8965
|
+
'isinv': '\u2208',
|
|
8966
|
+
'Emacr': '\u0112',
|
|
8967
|
+
'EmptySmallSquare': '\u25FB',
|
|
8968
|
+
'EmptyVerySmallSquare': '\u25AB',
|
|
8969
|
+
'Eogon': '\u0118',
|
|
8970
|
+
'Eopf': '\uD835\uDD3C',
|
|
8971
|
+
'Epsilon': '\u0395',
|
|
8972
|
+
'Equal': '\u2A75',
|
|
8973
|
+
'EqualTilde': '\u2242',
|
|
8974
|
+
'eqsim': '\u2242',
|
|
8975
|
+
'esim': '\u2242',
|
|
8976
|
+
'Equilibrium': '\u21CC',
|
|
8977
|
+
'rightleftharpoons': '\u21CC',
|
|
8978
|
+
'rlhar': '\u21CC',
|
|
8979
|
+
'Escr': '\u2130',
|
|
8980
|
+
'expectation': '\u2130',
|
|
8981
|
+
'Esim': '\u2A73',
|
|
8982
|
+
'Eta': '\u0397',
|
|
8983
|
+
'Euml': '\u00CB',
|
|
8984
|
+
'Exists': '\u2203',
|
|
8985
|
+
'exist': '\u2203',
|
|
8986
|
+
'ExponentialE': '\u2147',
|
|
8987
|
+
'ee': '\u2147',
|
|
8988
|
+
'exponentiale': '\u2147',
|
|
8989
|
+
'Fcy': '\u0424',
|
|
8990
|
+
'Ffr': '\uD835\uDD09',
|
|
8991
|
+
'FilledSmallSquare': '\u25FC',
|
|
8992
|
+
'FilledVerySmallSquare': '\u25AA',
|
|
8993
|
+
'blacksquare': '\u25AA',
|
|
8994
|
+
'squarf': '\u25AA',
|
|
8995
|
+
'squf': '\u25AA',
|
|
8996
|
+
'Fopf': '\uD835\uDD3D',
|
|
8997
|
+
'ForAll': '\u2200',
|
|
8998
|
+
'forall': '\u2200',
|
|
8999
|
+
'Fouriertrf': '\u2131',
|
|
9000
|
+
'Fscr': '\u2131',
|
|
9001
|
+
'GJcy': '\u0403',
|
|
9002
|
+
'GT': '\u003E',
|
|
9003
|
+
'gt': '\u003E',
|
|
9004
|
+
'Gamma': '\u0393',
|
|
9005
|
+
'Gammad': '\u03DC',
|
|
9006
|
+
'Gbreve': '\u011E',
|
|
9007
|
+
'Gcedil': '\u0122',
|
|
9008
|
+
'Gcirc': '\u011C',
|
|
9009
|
+
'Gcy': '\u0413',
|
|
9010
|
+
'Gdot': '\u0120',
|
|
9011
|
+
'Gfr': '\uD835\uDD0A',
|
|
9012
|
+
'Gg': '\u22D9',
|
|
9013
|
+
'ggg': '\u22D9',
|
|
9014
|
+
'Gopf': '\uD835\uDD3E',
|
|
9015
|
+
'GreaterEqual': '\u2265',
|
|
9016
|
+
'ge': '\u2265',
|
|
9017
|
+
'geq': '\u2265',
|
|
9018
|
+
'GreaterEqualLess': '\u22DB',
|
|
9019
|
+
'gel': '\u22DB',
|
|
9020
|
+
'gtreqless': '\u22DB',
|
|
9021
|
+
'GreaterFullEqual': '\u2267',
|
|
9022
|
+
'gE': '\u2267',
|
|
9023
|
+
'geqq': '\u2267',
|
|
9024
|
+
'GreaterGreater': '\u2AA2',
|
|
9025
|
+
'GreaterLess': '\u2277',
|
|
9026
|
+
'gl': '\u2277',
|
|
9027
|
+
'gtrless': '\u2277',
|
|
9028
|
+
'GreaterSlantEqual': '\u2A7E',
|
|
9029
|
+
'geqslant': '\u2A7E',
|
|
9030
|
+
'ges': '\u2A7E',
|
|
9031
|
+
'GreaterTilde': '\u2273',
|
|
9032
|
+
'gsim': '\u2273',
|
|
9033
|
+
'gtrsim': '\u2273',
|
|
9034
|
+
'Gscr': '\uD835\uDCA2',
|
|
9035
|
+
'Gt': '\u226B',
|
|
9036
|
+
'NestedGreaterGreater': '\u226B',
|
|
9037
|
+
'gg': '\u226B',
|
|
9038
|
+
'HARDcy': '\u042A',
|
|
9039
|
+
'Hacek': '\u02C7',
|
|
9040
|
+
'caron': '\u02C7',
|
|
9041
|
+
'Hat': '\u005E',
|
|
9042
|
+
'Hcirc': '\u0124',
|
|
9043
|
+
'Hfr': '\u210C',
|
|
9044
|
+
'Poincareplane': '\u210C',
|
|
9045
|
+
'HilbertSpace': '\u210B',
|
|
9046
|
+
'Hscr': '\u210B',
|
|
9047
|
+
'hamilt': '\u210B',
|
|
9048
|
+
'Hopf': '\u210D',
|
|
9049
|
+
'quaternions': '\u210D',
|
|
9050
|
+
'HorizontalLine': '\u2500',
|
|
9051
|
+
'boxh': '\u2500',
|
|
9052
|
+
'Hstrok': '\u0126',
|
|
9053
|
+
'HumpEqual': '\u224F',
|
|
9054
|
+
'bumpe': '\u224F',
|
|
9055
|
+
'bumpeq': '\u224F',
|
|
9056
|
+
'IEcy': '\u0415',
|
|
9057
|
+
'IJlig': '\u0132',
|
|
9058
|
+
'IOcy': '\u0401',
|
|
9059
|
+
'Iacute': '\u00CD',
|
|
9060
|
+
'Icirc': '\u00CE',
|
|
9061
|
+
'Icy': '\u0418',
|
|
9062
|
+
'Idot': '\u0130',
|
|
9063
|
+
'Ifr': '\u2111',
|
|
9064
|
+
'Im': '\u2111',
|
|
9065
|
+
'image': '\u2111',
|
|
9066
|
+
'imagpart': '\u2111',
|
|
9067
|
+
'Igrave': '\u00CC',
|
|
9068
|
+
'Imacr': '\u012A',
|
|
9069
|
+
'ImaginaryI': '\u2148',
|
|
9070
|
+
'ii': '\u2148',
|
|
9071
|
+
'Int': '\u222C',
|
|
9072
|
+
'Integral': '\u222B',
|
|
9073
|
+
'int': '\u222B',
|
|
9074
|
+
'Intersection': '\u22C2',
|
|
9075
|
+
'bigcap': '\u22C2',
|
|
9076
|
+
'xcap': '\u22C2',
|
|
9077
|
+
'InvisibleComma': '\u2063',
|
|
9078
|
+
'ic': '\u2063',
|
|
9079
|
+
'InvisibleTimes': '\u2062',
|
|
9080
|
+
'it': '\u2062',
|
|
9081
|
+
'Iogon': '\u012E',
|
|
9082
|
+
'Iopf': '\uD835\uDD40',
|
|
9083
|
+
'Iota': '\u0399',
|
|
9084
|
+
'Iscr': '\u2110',
|
|
9085
|
+
'imagline': '\u2110',
|
|
9086
|
+
'Itilde': '\u0128',
|
|
9087
|
+
'Iukcy': '\u0406',
|
|
9088
|
+
'Iuml': '\u00CF',
|
|
9089
|
+
'Jcirc': '\u0134',
|
|
9090
|
+
'Jcy': '\u0419',
|
|
9091
|
+
'Jfr': '\uD835\uDD0D',
|
|
9092
|
+
'Jopf': '\uD835\uDD41',
|
|
9093
|
+
'Jscr': '\uD835\uDCA5',
|
|
9094
|
+
'Jsercy': '\u0408',
|
|
9095
|
+
'Jukcy': '\u0404',
|
|
9096
|
+
'KHcy': '\u0425',
|
|
9097
|
+
'KJcy': '\u040C',
|
|
9098
|
+
'Kappa': '\u039A',
|
|
9099
|
+
'Kcedil': '\u0136',
|
|
9100
|
+
'Kcy': '\u041A',
|
|
9101
|
+
'Kfr': '\uD835\uDD0E',
|
|
9102
|
+
'Kopf': '\uD835\uDD42',
|
|
9103
|
+
'Kscr': '\uD835\uDCA6',
|
|
9104
|
+
'LJcy': '\u0409',
|
|
9105
|
+
'LT': '\u003C',
|
|
9106
|
+
'lt': '\u003C',
|
|
9107
|
+
'Lacute': '\u0139',
|
|
9108
|
+
'Lambda': '\u039B',
|
|
9109
|
+
'Lang': '\u27EA',
|
|
9110
|
+
'Laplacetrf': '\u2112',
|
|
9111
|
+
'Lscr': '\u2112',
|
|
9112
|
+
'lagran': '\u2112',
|
|
9113
|
+
'Larr': '\u219E',
|
|
9114
|
+
'twoheadleftarrow': '\u219E',
|
|
9115
|
+
'Lcaron': '\u013D',
|
|
9116
|
+
'Lcedil': '\u013B',
|
|
9117
|
+
'Lcy': '\u041B',
|
|
9118
|
+
'LeftAngleBracket': '\u27E8',
|
|
9119
|
+
'lang': '\u27E8',
|
|
9120
|
+
'langle': '\u27E8',
|
|
9121
|
+
'LeftArrow': '\u2190',
|
|
9122
|
+
'ShortLeftArrow': '\u2190',
|
|
9123
|
+
'larr': '\u2190',
|
|
9124
|
+
'leftarrow': '\u2190',
|
|
9125
|
+
'slarr': '\u2190',
|
|
9126
|
+
'LeftArrowBar': '\u21E4',
|
|
9127
|
+
'larrb': '\u21E4',
|
|
9128
|
+
'LeftArrowRightArrow': '\u21C6',
|
|
9129
|
+
'leftrightarrows': '\u21C6',
|
|
9130
|
+
'lrarr': '\u21C6',
|
|
9131
|
+
'LeftCeiling': '\u2308',
|
|
9132
|
+
'lceil': '\u2308',
|
|
9133
|
+
'LeftDoubleBracket': '\u27E6',
|
|
9134
|
+
'lobrk': '\u27E6',
|
|
9135
|
+
'LeftDownTeeVector': '\u2961',
|
|
9136
|
+
'LeftDownVector': '\u21C3',
|
|
9137
|
+
'dharl': '\u21C3',
|
|
9138
|
+
'downharpoonleft': '\u21C3',
|
|
9139
|
+
'LeftDownVectorBar': '\u2959',
|
|
9140
|
+
'LeftFloor': '\u230A',
|
|
9141
|
+
'lfloor': '\u230A',
|
|
9142
|
+
'LeftRightArrow': '\u2194',
|
|
9143
|
+
'harr': '\u2194',
|
|
9144
|
+
'leftrightarrow': '\u2194',
|
|
9145
|
+
'LeftRightVector': '\u294E',
|
|
9146
|
+
'LeftTee': '\u22A3',
|
|
9147
|
+
'dashv': '\u22A3',
|
|
9148
|
+
'LeftTeeArrow': '\u21A4',
|
|
9149
|
+
'mapstoleft': '\u21A4',
|
|
9150
|
+
'LeftTeeVector': '\u295A',
|
|
9151
|
+
'LeftTriangle': '\u22B2',
|
|
9152
|
+
'vartriangleleft': '\u22B2',
|
|
9153
|
+
'vltri': '\u22B2',
|
|
9154
|
+
'LeftTriangleBar': '\u29CF',
|
|
9155
|
+
'LeftTriangleEqual': '\u22B4',
|
|
9156
|
+
'ltrie': '\u22B4',
|
|
9157
|
+
'trianglelefteq': '\u22B4',
|
|
9158
|
+
'LeftUpDownVector': '\u2951',
|
|
9159
|
+
'LeftUpTeeVector': '\u2960',
|
|
9160
|
+
'LeftUpVector': '\u21BF',
|
|
9161
|
+
'uharl': '\u21BF',
|
|
9162
|
+
'upharpoonleft': '\u21BF',
|
|
9163
|
+
'LeftUpVectorBar': '\u2958',
|
|
9164
|
+
'LeftVector': '\u21BC',
|
|
9165
|
+
'leftharpoonup': '\u21BC',
|
|
9166
|
+
'lharu': '\u21BC',
|
|
9167
|
+
'LeftVectorBar': '\u2952',
|
|
9168
|
+
'LessEqualGreater': '\u22DA',
|
|
9169
|
+
'leg': '\u22DA',
|
|
9170
|
+
'lesseqgtr': '\u22DA',
|
|
9171
|
+
'LessFullEqual': '\u2266',
|
|
9172
|
+
'lE': '\u2266',
|
|
9173
|
+
'leqq': '\u2266',
|
|
9174
|
+
'LessGreater': '\u2276',
|
|
9175
|
+
'lessgtr': '\u2276',
|
|
9176
|
+
'lg': '\u2276',
|
|
9177
|
+
'LessLess': '\u2AA1',
|
|
9178
|
+
'LessSlantEqual': '\u2A7D',
|
|
9179
|
+
'leqslant': '\u2A7D',
|
|
9180
|
+
'les': '\u2A7D',
|
|
9181
|
+
'LessTilde': '\u2272',
|
|
9182
|
+
'lesssim': '\u2272',
|
|
9183
|
+
'lsim': '\u2272',
|
|
9184
|
+
'Lfr': '\uD835\uDD0F',
|
|
9185
|
+
'Ll': '\u22D8',
|
|
9186
|
+
'Lleftarrow': '\u21DA',
|
|
9187
|
+
'lAarr': '\u21DA',
|
|
9188
|
+
'Lmidot': '\u013F',
|
|
9189
|
+
'LongLeftArrow': '\u27F5',
|
|
9190
|
+
'longleftarrow': '\u27F5',
|
|
9191
|
+
'xlarr': '\u27F5',
|
|
9192
|
+
'LongLeftRightArrow': '\u27F7',
|
|
9193
|
+
'longleftrightarrow': '\u27F7',
|
|
9194
|
+
'xharr': '\u27F7',
|
|
9195
|
+
'LongRightArrow': '\u27F6',
|
|
9196
|
+
'longrightarrow': '\u27F6',
|
|
9197
|
+
'xrarr': '\u27F6',
|
|
9198
|
+
'Lopf': '\uD835\uDD43',
|
|
9199
|
+
'LowerLeftArrow': '\u2199',
|
|
9200
|
+
'swarr': '\u2199',
|
|
9201
|
+
'swarrow': '\u2199',
|
|
9202
|
+
'LowerRightArrow': '\u2198',
|
|
9203
|
+
'searr': '\u2198',
|
|
9204
|
+
'searrow': '\u2198',
|
|
9205
|
+
'Lsh': '\u21B0',
|
|
9206
|
+
'lsh': '\u21B0',
|
|
9207
|
+
'Lstrok': '\u0141',
|
|
9208
|
+
'Lt': '\u226A',
|
|
9209
|
+
'NestedLessLess': '\u226A',
|
|
9210
|
+
'll': '\u226A',
|
|
9211
|
+
'Map': '\u2905',
|
|
9212
|
+
'Mcy': '\u041C',
|
|
9213
|
+
'MediumSpace': '\u205F',
|
|
9214
|
+
'Mellintrf': '\u2133',
|
|
9215
|
+
'Mscr': '\u2133',
|
|
9216
|
+
'phmmat': '\u2133',
|
|
9217
|
+
'Mfr': '\uD835\uDD10',
|
|
9218
|
+
'MinusPlus': '\u2213',
|
|
9219
|
+
'mnplus': '\u2213',
|
|
9220
|
+
'mp': '\u2213',
|
|
9221
|
+
'Mopf': '\uD835\uDD44',
|
|
9222
|
+
'Mu': '\u039C',
|
|
9223
|
+
'NJcy': '\u040A',
|
|
9224
|
+
'Nacute': '\u0143',
|
|
9225
|
+
'Ncaron': '\u0147',
|
|
9226
|
+
'Ncedil': '\u0145',
|
|
9227
|
+
'Ncy': '\u041D',
|
|
9228
|
+
'NegativeMediumSpace': '\u200B',
|
|
9229
|
+
'NegativeThickSpace': '\u200B',
|
|
9230
|
+
'NegativeThinSpace': '\u200B',
|
|
9231
|
+
'NegativeVeryThinSpace': '\u200B',
|
|
9232
|
+
'ZeroWidthSpace': '\u200B',
|
|
9233
|
+
'NewLine': '\u000A',
|
|
9234
|
+
'Nfr': '\uD835\uDD11',
|
|
9235
|
+
'NoBreak': '\u2060',
|
|
9236
|
+
'NonBreakingSpace': '\u00A0',
|
|
9237
|
+
'nbsp': '\u00A0',
|
|
9238
|
+
'Nopf': '\u2115',
|
|
9239
|
+
'naturals': '\u2115',
|
|
9240
|
+
'Not': '\u2AEC',
|
|
9241
|
+
'NotCongruent': '\u2262',
|
|
9242
|
+
'nequiv': '\u2262',
|
|
9243
|
+
'NotCupCap': '\u226D',
|
|
9244
|
+
'NotDoubleVerticalBar': '\u2226',
|
|
9245
|
+
'npar': '\u2226',
|
|
9246
|
+
'nparallel': '\u2226',
|
|
9247
|
+
'nshortparallel': '\u2226',
|
|
9248
|
+
'nspar': '\u2226',
|
|
9249
|
+
'NotElement': '\u2209',
|
|
9250
|
+
'notin': '\u2209',
|
|
9251
|
+
'notinva': '\u2209',
|
|
9252
|
+
'NotEqual': '\u2260',
|
|
9253
|
+
'ne': '\u2260',
|
|
9254
|
+
'NotEqualTilde': '\u2242\u0338',
|
|
9255
|
+
'nesim': '\u2242\u0338',
|
|
9256
|
+
'NotExists': '\u2204',
|
|
9257
|
+
'nexist': '\u2204',
|
|
9258
|
+
'nexists': '\u2204',
|
|
9259
|
+
'NotGreater': '\u226F',
|
|
9260
|
+
'ngt': '\u226F',
|
|
9261
|
+
'ngtr': '\u226F',
|
|
9262
|
+
'NotGreaterEqual': '\u2271',
|
|
9263
|
+
'nge': '\u2271',
|
|
9264
|
+
'ngeq': '\u2271',
|
|
9265
|
+
'NotGreaterFullEqual': '\u2267\u0338',
|
|
9266
|
+
'ngE': '\u2267\u0338',
|
|
9267
|
+
'ngeqq': '\u2267\u0338',
|
|
9268
|
+
'NotGreaterGreater': '\u226B\u0338',
|
|
9269
|
+
'nGtv': '\u226B\u0338',
|
|
9270
|
+
'NotGreaterLess': '\u2279',
|
|
9271
|
+
'ntgl': '\u2279',
|
|
9272
|
+
'NotGreaterSlantEqual': '\u2A7E\u0338',
|
|
9273
|
+
'ngeqslant': '\u2A7E\u0338',
|
|
9274
|
+
'nges': '\u2A7E\u0338',
|
|
9275
|
+
'NotGreaterTilde': '\u2275',
|
|
9276
|
+
'ngsim': '\u2275',
|
|
9277
|
+
'NotHumpDownHump': '\u224E\u0338',
|
|
9278
|
+
'nbump': '\u224E\u0338',
|
|
9279
|
+
'NotHumpEqual': '\u224F\u0338',
|
|
9280
|
+
'nbumpe': '\u224F\u0338',
|
|
9281
|
+
'NotLeftTriangle': '\u22EA',
|
|
9282
|
+
'nltri': '\u22EA',
|
|
9283
|
+
'ntriangleleft': '\u22EA',
|
|
9284
|
+
'NotLeftTriangleBar': '\u29CF\u0338',
|
|
9285
|
+
'NotLeftTriangleEqual': '\u22EC',
|
|
9286
|
+
'nltrie': '\u22EC',
|
|
9287
|
+
'ntrianglelefteq': '\u22EC',
|
|
9288
|
+
'NotLess': '\u226E',
|
|
9289
|
+
'nless': '\u226E',
|
|
9290
|
+
'nlt': '\u226E',
|
|
9291
|
+
'NotLessEqual': '\u2270',
|
|
9292
|
+
'nle': '\u2270',
|
|
9293
|
+
'nleq': '\u2270',
|
|
9294
|
+
'NotLessGreater': '\u2278',
|
|
9295
|
+
'ntlg': '\u2278',
|
|
9296
|
+
'NotLessLess': '\u226A\u0338',
|
|
9297
|
+
'nLtv': '\u226A\u0338',
|
|
9298
|
+
'NotLessSlantEqual': '\u2A7D\u0338',
|
|
9299
|
+
'nleqslant': '\u2A7D\u0338',
|
|
9300
|
+
'nles': '\u2A7D\u0338',
|
|
9301
|
+
'NotLessTilde': '\u2274',
|
|
9302
|
+
'nlsim': '\u2274',
|
|
9303
|
+
'NotNestedGreaterGreater': '\u2AA2\u0338',
|
|
9304
|
+
'NotNestedLessLess': '\u2AA1\u0338',
|
|
9305
|
+
'NotPrecedes': '\u2280',
|
|
9306
|
+
'npr': '\u2280',
|
|
9307
|
+
'nprec': '\u2280',
|
|
9308
|
+
'NotPrecedesEqual': '\u2AAF\u0338',
|
|
9309
|
+
'npre': '\u2AAF\u0338',
|
|
9310
|
+
'npreceq': '\u2AAF\u0338',
|
|
9311
|
+
'NotPrecedesSlantEqual': '\u22E0',
|
|
9312
|
+
'nprcue': '\u22E0',
|
|
9313
|
+
'NotReverseElement': '\u220C',
|
|
9314
|
+
'notni': '\u220C',
|
|
9315
|
+
'notniva': '\u220C',
|
|
9316
|
+
'NotRightTriangle': '\u22EB',
|
|
9317
|
+
'nrtri': '\u22EB',
|
|
9318
|
+
'ntriangleright': '\u22EB',
|
|
9319
|
+
'NotRightTriangleBar': '\u29D0\u0338',
|
|
9320
|
+
'NotRightTriangleEqual': '\u22ED',
|
|
9321
|
+
'nrtrie': '\u22ED',
|
|
9322
|
+
'ntrianglerighteq': '\u22ED',
|
|
9323
|
+
'NotSquareSubset': '\u228F\u0338',
|
|
9324
|
+
'NotSquareSubsetEqual': '\u22E2',
|
|
9325
|
+
'nsqsube': '\u22E2',
|
|
9326
|
+
'NotSquareSuperset': '\u2290\u0338',
|
|
9327
|
+
'NotSquareSupersetEqual': '\u22E3',
|
|
9328
|
+
'nsqsupe': '\u22E3',
|
|
9329
|
+
'NotSubset': '\u2282\u20D2',
|
|
9330
|
+
'nsubset': '\u2282\u20D2',
|
|
9331
|
+
'vnsub': '\u2282\u20D2',
|
|
9332
|
+
'NotSubsetEqual': '\u2288',
|
|
9333
|
+
'nsube': '\u2288',
|
|
9334
|
+
'nsubseteq': '\u2288',
|
|
9335
|
+
'NotSucceeds': '\u2281',
|
|
9336
|
+
'nsc': '\u2281',
|
|
9337
|
+
'nsucc': '\u2281',
|
|
9338
|
+
'NotSucceedsEqual': '\u2AB0\u0338',
|
|
9339
|
+
'nsce': '\u2AB0\u0338',
|
|
9340
|
+
'nsucceq': '\u2AB0\u0338',
|
|
9341
|
+
'NotSucceedsSlantEqual': '\u22E1',
|
|
9342
|
+
'nsccue': '\u22E1',
|
|
9343
|
+
'NotSucceedsTilde': '\u227F\u0338',
|
|
9344
|
+
'NotSuperset': '\u2283\u20D2',
|
|
9345
|
+
'nsupset': '\u2283\u20D2',
|
|
9346
|
+
'vnsup': '\u2283\u20D2',
|
|
9347
|
+
'NotSupersetEqual': '\u2289',
|
|
9348
|
+
'nsupe': '\u2289',
|
|
9349
|
+
'nsupseteq': '\u2289',
|
|
9350
|
+
'NotTilde': '\u2241',
|
|
9351
|
+
'nsim': '\u2241',
|
|
9352
|
+
'NotTildeEqual': '\u2244',
|
|
9353
|
+
'nsime': '\u2244',
|
|
9354
|
+
'nsimeq': '\u2244',
|
|
9355
|
+
'NotTildeFullEqual': '\u2247',
|
|
9356
|
+
'ncong': '\u2247',
|
|
9357
|
+
'NotTildeTilde': '\u2249',
|
|
9358
|
+
'nap': '\u2249',
|
|
9359
|
+
'napprox': '\u2249',
|
|
9360
|
+
'NotVerticalBar': '\u2224',
|
|
9361
|
+
'nmid': '\u2224',
|
|
9362
|
+
'nshortmid': '\u2224',
|
|
9363
|
+
'nsmid': '\u2224',
|
|
9364
|
+
'Nscr': '\uD835\uDCA9',
|
|
9365
|
+
'Ntilde': '\u00D1',
|
|
9366
|
+
'Nu': '\u039D',
|
|
9367
|
+
'OElig': '\u0152',
|
|
9368
|
+
'Oacute': '\u00D3',
|
|
9369
|
+
'Ocirc': '\u00D4',
|
|
9370
|
+
'Ocy': '\u041E',
|
|
9371
|
+
'Odblac': '\u0150',
|
|
9372
|
+
'Ofr': '\uD835\uDD12',
|
|
9373
|
+
'Ograve': '\u00D2',
|
|
9374
|
+
'Omacr': '\u014C',
|
|
9375
|
+
'Omega': '\u03A9',
|
|
9376
|
+
'ohm': '\u03A9',
|
|
9377
|
+
'Omicron': '\u039F',
|
|
9378
|
+
'Oopf': '\uD835\uDD46',
|
|
9379
|
+
'OpenCurlyDoubleQuote': '\u201C',
|
|
9380
|
+
'ldquo': '\u201C',
|
|
9381
|
+
'OpenCurlyQuote': '\u2018',
|
|
9382
|
+
'lsquo': '\u2018',
|
|
9383
|
+
'Or': '\u2A54',
|
|
9384
|
+
'Oscr': '\uD835\uDCAA',
|
|
9385
|
+
'Oslash': '\u00D8',
|
|
9386
|
+
'Otilde': '\u00D5',
|
|
9387
|
+
'Otimes': '\u2A37',
|
|
9388
|
+
'Ouml': '\u00D6',
|
|
9389
|
+
'OverBar': '\u203E',
|
|
9390
|
+
'oline': '\u203E',
|
|
9391
|
+
'OverBrace': '\u23DE',
|
|
9392
|
+
'OverBracket': '\u23B4',
|
|
9393
|
+
'tbrk': '\u23B4',
|
|
9394
|
+
'OverParenthesis': '\u23DC',
|
|
9395
|
+
'PartialD': '\u2202',
|
|
9396
|
+
'part': '\u2202',
|
|
9397
|
+
'Pcy': '\u041F',
|
|
9398
|
+
'Pfr': '\uD835\uDD13',
|
|
9399
|
+
'Phi': '\u03A6',
|
|
9400
|
+
'Pi': '\u03A0',
|
|
9401
|
+
'PlusMinus': '\u00B1',
|
|
9402
|
+
'plusmn': '\u00B1',
|
|
9403
|
+
'pm': '\u00B1',
|
|
9404
|
+
'Popf': '\u2119',
|
|
9405
|
+
'primes': '\u2119',
|
|
9406
|
+
'Pr': '\u2ABB',
|
|
9407
|
+
'Precedes': '\u227A',
|
|
9408
|
+
'pr': '\u227A',
|
|
9409
|
+
'prec': '\u227A',
|
|
9410
|
+
'PrecedesEqual': '\u2AAF',
|
|
9411
|
+
'pre': '\u2AAF',
|
|
9412
|
+
'preceq': '\u2AAF',
|
|
9413
|
+
'PrecedesSlantEqual': '\u227C',
|
|
9414
|
+
'prcue': '\u227C',
|
|
9415
|
+
'preccurlyeq': '\u227C',
|
|
9416
|
+
'PrecedesTilde': '\u227E',
|
|
9417
|
+
'precsim': '\u227E',
|
|
9418
|
+
'prsim': '\u227E',
|
|
9419
|
+
'Prime': '\u2033',
|
|
9420
|
+
'Product': '\u220F',
|
|
9421
|
+
'prod': '\u220F',
|
|
9422
|
+
'Proportional': '\u221D',
|
|
9423
|
+
'prop': '\u221D',
|
|
9424
|
+
'propto': '\u221D',
|
|
9425
|
+
'varpropto': '\u221D',
|
|
9426
|
+
'vprop': '\u221D',
|
|
9427
|
+
'Pscr': '\uD835\uDCAB',
|
|
9428
|
+
'Psi': '\u03A8',
|
|
9429
|
+
'QUOT': '\u0022',
|
|
9430
|
+
'quot': '\u0022',
|
|
9431
|
+
'Qfr': '\uD835\uDD14',
|
|
9432
|
+
'Qopf': '\u211A',
|
|
9433
|
+
'rationals': '\u211A',
|
|
9434
|
+
'Qscr': '\uD835\uDCAC',
|
|
9435
|
+
'RBarr': '\u2910',
|
|
9436
|
+
'drbkarow': '\u2910',
|
|
9437
|
+
'REG': '\u00AE',
|
|
9438
|
+
'circledR': '\u00AE',
|
|
9439
|
+
'reg': '\u00AE',
|
|
9440
|
+
'Racute': '\u0154',
|
|
9441
|
+
'Rang': '\u27EB',
|
|
9442
|
+
'Rarr': '\u21A0',
|
|
9443
|
+
'twoheadrightarrow': '\u21A0',
|
|
9444
|
+
'Rarrtl': '\u2916',
|
|
9445
|
+
'Rcaron': '\u0158',
|
|
9446
|
+
'Rcedil': '\u0156',
|
|
9447
|
+
'Rcy': '\u0420',
|
|
9448
|
+
'Re': '\u211C',
|
|
9449
|
+
'Rfr': '\u211C',
|
|
9450
|
+
'real': '\u211C',
|
|
9451
|
+
'realpart': '\u211C',
|
|
9452
|
+
'ReverseElement': '\u220B',
|
|
9453
|
+
'SuchThat': '\u220B',
|
|
9454
|
+
'ni': '\u220B',
|
|
9455
|
+
'niv': '\u220B',
|
|
9456
|
+
'ReverseEquilibrium': '\u21CB',
|
|
9457
|
+
'leftrightharpoons': '\u21CB',
|
|
9458
|
+
'lrhar': '\u21CB',
|
|
9459
|
+
'ReverseUpEquilibrium': '\u296F',
|
|
9460
|
+
'duhar': '\u296F',
|
|
9461
|
+
'Rho': '\u03A1',
|
|
9462
|
+
'RightAngleBracket': '\u27E9',
|
|
9463
|
+
'rang': '\u27E9',
|
|
9464
|
+
'rangle': '\u27E9',
|
|
9465
|
+
'RightArrow': '\u2192',
|
|
9466
|
+
'ShortRightArrow': '\u2192',
|
|
9467
|
+
'rarr': '\u2192',
|
|
9468
|
+
'rightarrow': '\u2192',
|
|
9469
|
+
'srarr': '\u2192',
|
|
9470
|
+
'RightArrowBar': '\u21E5',
|
|
9471
|
+
'rarrb': '\u21E5',
|
|
9472
|
+
'RightArrowLeftArrow': '\u21C4',
|
|
9473
|
+
'rightleftarrows': '\u21C4',
|
|
9474
|
+
'rlarr': '\u21C4',
|
|
9475
|
+
'RightCeiling': '\u2309',
|
|
9476
|
+
'rceil': '\u2309',
|
|
9477
|
+
'RightDoubleBracket': '\u27E7',
|
|
9478
|
+
'robrk': '\u27E7',
|
|
9479
|
+
'RightDownTeeVector': '\u295D',
|
|
9480
|
+
'RightDownVector': '\u21C2',
|
|
9481
|
+
'dharr': '\u21C2',
|
|
9482
|
+
'downharpoonright': '\u21C2',
|
|
9483
|
+
'RightDownVectorBar': '\u2955',
|
|
9484
|
+
'RightFloor': '\u230B',
|
|
9485
|
+
'rfloor': '\u230B',
|
|
9486
|
+
'RightTee': '\u22A2',
|
|
9487
|
+
'vdash': '\u22A2',
|
|
9488
|
+
'RightTeeArrow': '\u21A6',
|
|
9489
|
+
'map': '\u21A6',
|
|
9490
|
+
'mapsto': '\u21A6',
|
|
9491
|
+
'RightTeeVector': '\u295B',
|
|
9492
|
+
'RightTriangle': '\u22B3',
|
|
9493
|
+
'vartriangleright': '\u22B3',
|
|
9494
|
+
'vrtri': '\u22B3',
|
|
9495
|
+
'RightTriangleBar': '\u29D0',
|
|
9496
|
+
'RightTriangleEqual': '\u22B5',
|
|
9497
|
+
'rtrie': '\u22B5',
|
|
9498
|
+
'trianglerighteq': '\u22B5',
|
|
9499
|
+
'RightUpDownVector': '\u294F',
|
|
9500
|
+
'RightUpTeeVector': '\u295C',
|
|
9501
|
+
'RightUpVector': '\u21BE',
|
|
9502
|
+
'uharr': '\u21BE',
|
|
9503
|
+
'upharpoonright': '\u21BE',
|
|
9504
|
+
'RightUpVectorBar': '\u2954',
|
|
9505
|
+
'RightVector': '\u21C0',
|
|
9506
|
+
'rharu': '\u21C0',
|
|
9507
|
+
'rightharpoonup': '\u21C0',
|
|
9508
|
+
'RightVectorBar': '\u2953',
|
|
9509
|
+
'Ropf': '\u211D',
|
|
9510
|
+
'reals': '\u211D',
|
|
9511
|
+
'RoundImplies': '\u2970',
|
|
9512
|
+
'Rrightarrow': '\u21DB',
|
|
9513
|
+
'rAarr': '\u21DB',
|
|
9514
|
+
'Rscr': '\u211B',
|
|
9515
|
+
'realine': '\u211B',
|
|
9516
|
+
'Rsh': '\u21B1',
|
|
9517
|
+
'rsh': '\u21B1',
|
|
9518
|
+
'RuleDelayed': '\u29F4',
|
|
9519
|
+
'SHCHcy': '\u0429',
|
|
9520
|
+
'SHcy': '\u0428',
|
|
9521
|
+
'SOFTcy': '\u042C',
|
|
9522
|
+
'Sacute': '\u015A',
|
|
9523
|
+
'Sc': '\u2ABC',
|
|
9524
|
+
'Scaron': '\u0160',
|
|
9525
|
+
'Scedil': '\u015E',
|
|
9526
|
+
'Scirc': '\u015C',
|
|
9527
|
+
'Scy': '\u0421',
|
|
9528
|
+
'Sfr': '\uD835\uDD16',
|
|
9529
|
+
'ShortUpArrow': '\u2191',
|
|
9530
|
+
'UpArrow': '\u2191',
|
|
9531
|
+
'uarr': '\u2191',
|
|
9532
|
+
'uparrow': '\u2191',
|
|
9533
|
+
'Sigma': '\u03A3',
|
|
9534
|
+
'SmallCircle': '\u2218',
|
|
9535
|
+
'compfn': '\u2218',
|
|
9536
|
+
'Sopf': '\uD835\uDD4A',
|
|
9537
|
+
'Sqrt': '\u221A',
|
|
9538
|
+
'radic': '\u221A',
|
|
9539
|
+
'Square': '\u25A1',
|
|
9540
|
+
'squ': '\u25A1',
|
|
9541
|
+
'square': '\u25A1',
|
|
9542
|
+
'SquareIntersection': '\u2293',
|
|
9543
|
+
'sqcap': '\u2293',
|
|
9544
|
+
'SquareSubset': '\u228F',
|
|
9545
|
+
'sqsub': '\u228F',
|
|
9546
|
+
'sqsubset': '\u228F',
|
|
9547
|
+
'SquareSubsetEqual': '\u2291',
|
|
9548
|
+
'sqsube': '\u2291',
|
|
9549
|
+
'sqsubseteq': '\u2291',
|
|
9550
|
+
'SquareSuperset': '\u2290',
|
|
9551
|
+
'sqsup': '\u2290',
|
|
9552
|
+
'sqsupset': '\u2290',
|
|
9553
|
+
'SquareSupersetEqual': '\u2292',
|
|
9554
|
+
'sqsupe': '\u2292',
|
|
9555
|
+
'sqsupseteq': '\u2292',
|
|
9556
|
+
'SquareUnion': '\u2294',
|
|
9557
|
+
'sqcup': '\u2294',
|
|
9558
|
+
'Sscr': '\uD835\uDCAE',
|
|
9559
|
+
'Star': '\u22C6',
|
|
9560
|
+
'sstarf': '\u22C6',
|
|
9561
|
+
'Sub': '\u22D0',
|
|
9562
|
+
'Subset': '\u22D0',
|
|
9563
|
+
'SubsetEqual': '\u2286',
|
|
9564
|
+
'sube': '\u2286',
|
|
9565
|
+
'subseteq': '\u2286',
|
|
9566
|
+
'Succeeds': '\u227B',
|
|
9567
|
+
'sc': '\u227B',
|
|
9568
|
+
'succ': '\u227B',
|
|
9569
|
+
'SucceedsEqual': '\u2AB0',
|
|
9570
|
+
'sce': '\u2AB0',
|
|
9571
|
+
'succeq': '\u2AB0',
|
|
9572
|
+
'SucceedsSlantEqual': '\u227D',
|
|
9573
|
+
'sccue': '\u227D',
|
|
9574
|
+
'succcurlyeq': '\u227D',
|
|
9575
|
+
'SucceedsTilde': '\u227F',
|
|
9576
|
+
'scsim': '\u227F',
|
|
9577
|
+
'succsim': '\u227F',
|
|
9578
|
+
'Sum': '\u2211',
|
|
9579
|
+
'sum': '\u2211',
|
|
9580
|
+
'Sup': '\u22D1',
|
|
9581
|
+
'Supset': '\u22D1',
|
|
9582
|
+
'Superset': '\u2283',
|
|
9583
|
+
'sup': '\u2283',
|
|
9584
|
+
'supset': '\u2283',
|
|
9585
|
+
'SupersetEqual': '\u2287',
|
|
9586
|
+
'supe': '\u2287',
|
|
9587
|
+
'supseteq': '\u2287',
|
|
9588
|
+
'THORN': '\u00DE',
|
|
9589
|
+
'TRADE': '\u2122',
|
|
9590
|
+
'trade': '\u2122',
|
|
9591
|
+
'TSHcy': '\u040B',
|
|
9592
|
+
'TScy': '\u0426',
|
|
9593
|
+
'Tab': '\u0009',
|
|
9594
|
+
'Tau': '\u03A4',
|
|
9595
|
+
'Tcaron': '\u0164',
|
|
9596
|
+
'Tcedil': '\u0162',
|
|
9597
|
+
'Tcy': '\u0422',
|
|
9598
|
+
'Tfr': '\uD835\uDD17',
|
|
9599
|
+
'Therefore': '\u2234',
|
|
9600
|
+
'there4': '\u2234',
|
|
9601
|
+
'therefore': '\u2234',
|
|
9602
|
+
'Theta': '\u0398',
|
|
9603
|
+
'ThickSpace': '\u205F\u200A',
|
|
9604
|
+
'ThinSpace': '\u2009',
|
|
9605
|
+
'thinsp': '\u2009',
|
|
9606
|
+
'Tilde': '\u223C',
|
|
9607
|
+
'sim': '\u223C',
|
|
9608
|
+
'thicksim': '\u223C',
|
|
9609
|
+
'thksim': '\u223C',
|
|
9610
|
+
'TildeEqual': '\u2243',
|
|
9611
|
+
'sime': '\u2243',
|
|
9612
|
+
'simeq': '\u2243',
|
|
9613
|
+
'TildeFullEqual': '\u2245',
|
|
9614
|
+
'cong': '\u2245',
|
|
9615
|
+
'TildeTilde': '\u2248',
|
|
9616
|
+
'ap': '\u2248',
|
|
9617
|
+
'approx': '\u2248',
|
|
9618
|
+
'asymp': '\u2248',
|
|
9619
|
+
'thickapprox': '\u2248',
|
|
9620
|
+
'thkap': '\u2248',
|
|
9621
|
+
'Topf': '\uD835\uDD4B',
|
|
9622
|
+
'TripleDot': '\u20DB',
|
|
9623
|
+
'tdot': '\u20DB',
|
|
9624
|
+
'Tscr': '\uD835\uDCAF',
|
|
9625
|
+
'Tstrok': '\u0166',
|
|
9626
|
+
'Uacute': '\u00DA',
|
|
9627
|
+
'Uarr': '\u219F',
|
|
9628
|
+
'Uarrocir': '\u2949',
|
|
9629
|
+
'Ubrcy': '\u040E',
|
|
9630
|
+
'Ubreve': '\u016C',
|
|
9631
|
+
'Ucirc': '\u00DB',
|
|
9632
|
+
'Ucy': '\u0423',
|
|
9633
|
+
'Udblac': '\u0170',
|
|
9634
|
+
'Ufr': '\uD835\uDD18',
|
|
9635
|
+
'Ugrave': '\u00D9',
|
|
9636
|
+
'Umacr': '\u016A',
|
|
9637
|
+
'UnderBar': '\u005F',
|
|
9638
|
+
'lowbar': '\u005F',
|
|
9639
|
+
'UnderBrace': '\u23DF',
|
|
9640
|
+
'UnderBracket': '\u23B5',
|
|
9641
|
+
'bbrk': '\u23B5',
|
|
9642
|
+
'UnderParenthesis': '\u23DD',
|
|
9643
|
+
'Union': '\u22C3',
|
|
9644
|
+
'bigcup': '\u22C3',
|
|
9645
|
+
'xcup': '\u22C3',
|
|
9646
|
+
'UnionPlus': '\u228E',
|
|
9647
|
+
'uplus': '\u228E',
|
|
9648
|
+
'Uogon': '\u0172',
|
|
9649
|
+
'Uopf': '\uD835\uDD4C',
|
|
9650
|
+
'UpArrowBar': '\u2912',
|
|
9651
|
+
'UpArrowDownArrow': '\u21C5',
|
|
9652
|
+
'udarr': '\u21C5',
|
|
9653
|
+
'UpDownArrow': '\u2195',
|
|
9654
|
+
'updownarrow': '\u2195',
|
|
9655
|
+
'varr': '\u2195',
|
|
9656
|
+
'UpEquilibrium': '\u296E',
|
|
9657
|
+
'udhar': '\u296E',
|
|
9658
|
+
'UpTee': '\u22A5',
|
|
9659
|
+
'bot': '\u22A5',
|
|
9660
|
+
'bottom': '\u22A5',
|
|
9661
|
+
'perp': '\u22A5',
|
|
9662
|
+
'UpTeeArrow': '\u21A5',
|
|
9663
|
+
'mapstoup': '\u21A5',
|
|
9664
|
+
'UpperLeftArrow': '\u2196',
|
|
9665
|
+
'nwarr': '\u2196',
|
|
9666
|
+
'nwarrow': '\u2196',
|
|
9667
|
+
'UpperRightArrow': '\u2197',
|
|
9668
|
+
'nearr': '\u2197',
|
|
9669
|
+
'nearrow': '\u2197',
|
|
9670
|
+
'Upsi': '\u03D2',
|
|
9671
|
+
'upsih': '\u03D2',
|
|
9672
|
+
'Upsilon': '\u03A5',
|
|
9673
|
+
'Uring': '\u016E',
|
|
9674
|
+
'Uscr': '\uD835\uDCB0',
|
|
9675
|
+
'Utilde': '\u0168',
|
|
9676
|
+
'Uuml': '\u00DC',
|
|
9677
|
+
'VDash': '\u22AB',
|
|
9678
|
+
'Vbar': '\u2AEB',
|
|
9679
|
+
'Vcy': '\u0412',
|
|
9680
|
+
'Vdash': '\u22A9',
|
|
9681
|
+
'Vdashl': '\u2AE6',
|
|
9682
|
+
'Vee': '\u22C1',
|
|
9683
|
+
'bigvee': '\u22C1',
|
|
9684
|
+
'xvee': '\u22C1',
|
|
9685
|
+
'Verbar': '\u2016',
|
|
9686
|
+
'Vert': '\u2016',
|
|
9687
|
+
'VerticalBar': '\u2223',
|
|
9688
|
+
'mid': '\u2223',
|
|
9689
|
+
'shortmid': '\u2223',
|
|
9690
|
+
'smid': '\u2223',
|
|
9691
|
+
'VerticalLine': '\u007C',
|
|
9692
|
+
'verbar': '\u007C',
|
|
9693
|
+
'vert': '\u007C',
|
|
9694
|
+
'VerticalSeparator': '\u2758',
|
|
9695
|
+
'VerticalTilde': '\u2240',
|
|
9696
|
+
'wr': '\u2240',
|
|
9697
|
+
'wreath': '\u2240',
|
|
9698
|
+
'VeryThinSpace': '\u200A',
|
|
9699
|
+
'hairsp': '\u200A',
|
|
9700
|
+
'Vfr': '\uD835\uDD19',
|
|
9701
|
+
'Vopf': '\uD835\uDD4D',
|
|
9702
|
+
'Vscr': '\uD835\uDCB1',
|
|
9703
|
+
'Vvdash': '\u22AA',
|
|
9704
|
+
'Wcirc': '\u0174',
|
|
9705
|
+
'Wedge': '\u22C0',
|
|
9706
|
+
'bigwedge': '\u22C0',
|
|
9707
|
+
'xwedge': '\u22C0',
|
|
9708
|
+
'Wfr': '\uD835\uDD1A',
|
|
9709
|
+
'Wopf': '\uD835\uDD4E',
|
|
9710
|
+
'Wscr': '\uD835\uDCB2',
|
|
9711
|
+
'Xfr': '\uD835\uDD1B',
|
|
9712
|
+
'Xi': '\u039E',
|
|
9713
|
+
'Xopf': '\uD835\uDD4F',
|
|
9714
|
+
'Xscr': '\uD835\uDCB3',
|
|
9715
|
+
'YAcy': '\u042F',
|
|
9716
|
+
'YIcy': '\u0407',
|
|
9717
|
+
'YUcy': '\u042E',
|
|
9718
|
+
'Yacute': '\u00DD',
|
|
9719
|
+
'Ycirc': '\u0176',
|
|
9720
|
+
'Ycy': '\u042B',
|
|
9721
|
+
'Yfr': '\uD835\uDD1C',
|
|
9722
|
+
'Yopf': '\uD835\uDD50',
|
|
9723
|
+
'Yscr': '\uD835\uDCB4',
|
|
9724
|
+
'Yuml': '\u0178',
|
|
9725
|
+
'ZHcy': '\u0416',
|
|
9726
|
+
'Zacute': '\u0179',
|
|
9727
|
+
'Zcaron': '\u017D',
|
|
9728
|
+
'Zcy': '\u0417',
|
|
9729
|
+
'Zdot': '\u017B',
|
|
9730
|
+
'Zeta': '\u0396',
|
|
9731
|
+
'Zfr': '\u2128',
|
|
9732
|
+
'zeetrf': '\u2128',
|
|
9733
|
+
'Zopf': '\u2124',
|
|
9734
|
+
'integers': '\u2124',
|
|
9735
|
+
'Zscr': '\uD835\uDCB5',
|
|
9736
|
+
'aacute': '\u00E1',
|
|
9737
|
+
'abreve': '\u0103',
|
|
9738
|
+
'ac': '\u223E',
|
|
9739
|
+
'mstpos': '\u223E',
|
|
9740
|
+
'acE': '\u223E\u0333',
|
|
9741
|
+
'acd': '\u223F',
|
|
9742
|
+
'acirc': '\u00E2',
|
|
9743
|
+
'acy': '\u0430',
|
|
9744
|
+
'aelig': '\u00E6',
|
|
9745
|
+
'afr': '\uD835\uDD1E',
|
|
9746
|
+
'agrave': '\u00E0',
|
|
9747
|
+
'alefsym': '\u2135',
|
|
9748
|
+
'aleph': '\u2135',
|
|
9749
|
+
'alpha': '\u03B1',
|
|
9750
|
+
'amacr': '\u0101',
|
|
9751
|
+
'amalg': '\u2A3F',
|
|
9752
|
+
'and': '\u2227',
|
|
9753
|
+
'wedge': '\u2227',
|
|
9754
|
+
'andand': '\u2A55',
|
|
9755
|
+
'andd': '\u2A5C',
|
|
9756
|
+
'andslope': '\u2A58',
|
|
9757
|
+
'andv': '\u2A5A',
|
|
9758
|
+
'ang': '\u2220',
|
|
9759
|
+
'angle': '\u2220',
|
|
9760
|
+
'ange': '\u29A4',
|
|
9761
|
+
'angmsd': '\u2221',
|
|
9762
|
+
'measuredangle': '\u2221',
|
|
9763
|
+
'angmsdaa': '\u29A8',
|
|
9764
|
+
'angmsdab': '\u29A9',
|
|
9765
|
+
'angmsdac': '\u29AA',
|
|
9766
|
+
'angmsdad': '\u29AB',
|
|
9767
|
+
'angmsdae': '\u29AC',
|
|
9768
|
+
'angmsdaf': '\u29AD',
|
|
9769
|
+
'angmsdag': '\u29AE',
|
|
9770
|
+
'angmsdah': '\u29AF',
|
|
9771
|
+
'angrt': '\u221F',
|
|
9772
|
+
'angrtvb': '\u22BE',
|
|
9773
|
+
'angrtvbd': '\u299D',
|
|
9774
|
+
'angsph': '\u2222',
|
|
9775
|
+
'angzarr': '\u237C',
|
|
9776
|
+
'aogon': '\u0105',
|
|
9777
|
+
'aopf': '\uD835\uDD52',
|
|
9778
|
+
'apE': '\u2A70',
|
|
9779
|
+
'apacir': '\u2A6F',
|
|
9780
|
+
'ape': '\u224A',
|
|
9781
|
+
'approxeq': '\u224A',
|
|
9782
|
+
'apid': '\u224B',
|
|
9783
|
+
'apos': '\u0027',
|
|
9784
|
+
'aring': '\u00E5',
|
|
9785
|
+
'ascr': '\uD835\uDCB6',
|
|
9786
|
+
'ast': '\u002A',
|
|
9787
|
+
'midast': '\u002A',
|
|
9788
|
+
'atilde': '\u00E3',
|
|
9789
|
+
'auml': '\u00E4',
|
|
9790
|
+
'awint': '\u2A11',
|
|
9791
|
+
'bNot': '\u2AED',
|
|
9792
|
+
'backcong': '\u224C',
|
|
9793
|
+
'bcong': '\u224C',
|
|
9794
|
+
'backepsilon': '\u03F6',
|
|
9795
|
+
'bepsi': '\u03F6',
|
|
9796
|
+
'backprime': '\u2035',
|
|
9797
|
+
'bprime': '\u2035',
|
|
9798
|
+
'backsim': '\u223D',
|
|
9799
|
+
'bsim': '\u223D',
|
|
9800
|
+
'backsimeq': '\u22CD',
|
|
9801
|
+
'bsime': '\u22CD',
|
|
9802
|
+
'barvee': '\u22BD',
|
|
9803
|
+
'barwed': '\u2305',
|
|
9804
|
+
'barwedge': '\u2305',
|
|
9805
|
+
'bbrktbrk': '\u23B6',
|
|
9806
|
+
'bcy': '\u0431',
|
|
9807
|
+
'bdquo': '\u201E',
|
|
9808
|
+
'ldquor': '\u201E',
|
|
9809
|
+
'bemptyv': '\u29B0',
|
|
9810
|
+
'beta': '\u03B2',
|
|
9811
|
+
'beth': '\u2136',
|
|
9812
|
+
'between': '\u226C',
|
|
9813
|
+
'twixt': '\u226C',
|
|
9814
|
+
'bfr': '\uD835\uDD1F',
|
|
9815
|
+
'bigcirc': '\u25EF',
|
|
9816
|
+
'xcirc': '\u25EF',
|
|
9817
|
+
'bigodot': '\u2A00',
|
|
9818
|
+
'xodot': '\u2A00',
|
|
9819
|
+
'bigoplus': '\u2A01',
|
|
9820
|
+
'xoplus': '\u2A01',
|
|
9821
|
+
'bigotimes': '\u2A02',
|
|
9822
|
+
'xotime': '\u2A02',
|
|
9823
|
+
'bigsqcup': '\u2A06',
|
|
9824
|
+
'xsqcup': '\u2A06',
|
|
9825
|
+
'bigstar': '\u2605',
|
|
9826
|
+
'starf': '\u2605',
|
|
9827
|
+
'bigtriangledown': '\u25BD',
|
|
9828
|
+
'xdtri': '\u25BD',
|
|
9829
|
+
'bigtriangleup': '\u25B3',
|
|
9830
|
+
'xutri': '\u25B3',
|
|
9831
|
+
'biguplus': '\u2A04',
|
|
9832
|
+
'xuplus': '\u2A04',
|
|
9833
|
+
'bkarow': '\u290D',
|
|
9834
|
+
'rbarr': '\u290D',
|
|
9835
|
+
'blacklozenge': '\u29EB',
|
|
9836
|
+
'lozf': '\u29EB',
|
|
9837
|
+
'blacktriangle': '\u25B4',
|
|
9838
|
+
'utrif': '\u25B4',
|
|
9839
|
+
'blacktriangledown': '\u25BE',
|
|
9840
|
+
'dtrif': '\u25BE',
|
|
9841
|
+
'blacktriangleleft': '\u25C2',
|
|
9842
|
+
'ltrif': '\u25C2',
|
|
9843
|
+
'blacktriangleright': '\u25B8',
|
|
9844
|
+
'rtrif': '\u25B8',
|
|
9845
|
+
'blank': '\u2423',
|
|
9846
|
+
'blk12': '\u2592',
|
|
9847
|
+
'blk14': '\u2591',
|
|
9848
|
+
'blk34': '\u2593',
|
|
9849
|
+
'block': '\u2588',
|
|
9850
|
+
'bne': '\u003D\u20E5',
|
|
9851
|
+
'bnequiv': '\u2261\u20E5',
|
|
9852
|
+
'bnot': '\u2310',
|
|
9853
|
+
'bopf': '\uD835\uDD53',
|
|
9854
|
+
'bowtie': '\u22C8',
|
|
9855
|
+
'boxDL': '\u2557',
|
|
9856
|
+
'boxDR': '\u2554',
|
|
9857
|
+
'boxDl': '\u2556',
|
|
9858
|
+
'boxDr': '\u2553',
|
|
9859
|
+
'boxH': '\u2550',
|
|
9860
|
+
'boxHD': '\u2566',
|
|
9861
|
+
'boxHU': '\u2569',
|
|
9862
|
+
'boxHd': '\u2564',
|
|
9863
|
+
'boxHu': '\u2567',
|
|
9864
|
+
'boxUL': '\u255D',
|
|
9865
|
+
'boxUR': '\u255A',
|
|
9866
|
+
'boxUl': '\u255C',
|
|
9867
|
+
'boxUr': '\u2559',
|
|
9868
|
+
'boxV': '\u2551',
|
|
9869
|
+
'boxVH': '\u256C',
|
|
9870
|
+
'boxVL': '\u2563',
|
|
9871
|
+
'boxVR': '\u2560',
|
|
9872
|
+
'boxVh': '\u256B',
|
|
9873
|
+
'boxVl': '\u2562',
|
|
9874
|
+
'boxVr': '\u255F',
|
|
9875
|
+
'boxbox': '\u29C9',
|
|
9876
|
+
'boxdL': '\u2555',
|
|
9877
|
+
'boxdR': '\u2552',
|
|
9878
|
+
'boxdl': '\u2510',
|
|
9879
|
+
'boxdr': '\u250C',
|
|
9880
|
+
'boxhD': '\u2565',
|
|
9881
|
+
'boxhU': '\u2568',
|
|
9882
|
+
'boxhd': '\u252C',
|
|
9883
|
+
'boxhu': '\u2534',
|
|
9884
|
+
'boxminus': '\u229F',
|
|
9885
|
+
'minusb': '\u229F',
|
|
9886
|
+
'boxplus': '\u229E',
|
|
9887
|
+
'plusb': '\u229E',
|
|
9888
|
+
'boxtimes': '\u22A0',
|
|
9889
|
+
'timesb': '\u22A0',
|
|
9890
|
+
'boxuL': '\u255B',
|
|
9891
|
+
'boxuR': '\u2558',
|
|
9892
|
+
'boxul': '\u2518',
|
|
9893
|
+
'boxur': '\u2514',
|
|
9894
|
+
'boxv': '\u2502',
|
|
9895
|
+
'boxvH': '\u256A',
|
|
9896
|
+
'boxvL': '\u2561',
|
|
9897
|
+
'boxvR': '\u255E',
|
|
9898
|
+
'boxvh': '\u253C',
|
|
9899
|
+
'boxvl': '\u2524',
|
|
9900
|
+
'boxvr': '\u251C',
|
|
9901
|
+
'brvbar': '\u00A6',
|
|
9902
|
+
'bscr': '\uD835\uDCB7',
|
|
9903
|
+
'bsemi': '\u204F',
|
|
9904
|
+
'bsol': '\u005C',
|
|
9905
|
+
'bsolb': '\u29C5',
|
|
9906
|
+
'bsolhsub': '\u27C8',
|
|
9907
|
+
'bull': '\u2022',
|
|
9908
|
+
'bullet': '\u2022',
|
|
9909
|
+
'bumpE': '\u2AAE',
|
|
9910
|
+
'cacute': '\u0107',
|
|
9911
|
+
'cap': '\u2229',
|
|
9912
|
+
'capand': '\u2A44',
|
|
9913
|
+
'capbrcup': '\u2A49',
|
|
9914
|
+
'capcap': '\u2A4B',
|
|
9915
|
+
'capcup': '\u2A47',
|
|
9916
|
+
'capdot': '\u2A40',
|
|
9917
|
+
'caps': '\u2229\uFE00',
|
|
9918
|
+
'caret': '\u2041',
|
|
9919
|
+
'ccaps': '\u2A4D',
|
|
9920
|
+
'ccaron': '\u010D',
|
|
9921
|
+
'ccedil': '\u00E7',
|
|
9922
|
+
'ccirc': '\u0109',
|
|
9923
|
+
'ccups': '\u2A4C',
|
|
9924
|
+
'ccupssm': '\u2A50',
|
|
9925
|
+
'cdot': '\u010B',
|
|
9926
|
+
'cemptyv': '\u29B2',
|
|
9927
|
+
'cent': '\u00A2',
|
|
9928
|
+
'cfr': '\uD835\uDD20',
|
|
9929
|
+
'chcy': '\u0447',
|
|
9930
|
+
'check': '\u2713',
|
|
9931
|
+
'checkmark': '\u2713',
|
|
9932
|
+
'chi': '\u03C7',
|
|
9933
|
+
'cir': '\u25CB',
|
|
9934
|
+
'cirE': '\u29C3',
|
|
9935
|
+
'circ': '\u02C6',
|
|
9936
|
+
'circeq': '\u2257',
|
|
9937
|
+
'cire': '\u2257',
|
|
9938
|
+
'circlearrowleft': '\u21BA',
|
|
9939
|
+
'olarr': '\u21BA',
|
|
9940
|
+
'circlearrowright': '\u21BB',
|
|
9941
|
+
'orarr': '\u21BB',
|
|
9942
|
+
'circledS': '\u24C8',
|
|
9943
|
+
'oS': '\u24C8',
|
|
9944
|
+
'circledast': '\u229B',
|
|
9945
|
+
'oast': '\u229B',
|
|
9946
|
+
'circledcirc': '\u229A',
|
|
9947
|
+
'ocir': '\u229A',
|
|
9948
|
+
'circleddash': '\u229D',
|
|
9949
|
+
'odash': '\u229D',
|
|
9950
|
+
'cirfnint': '\u2A10',
|
|
9951
|
+
'cirmid': '\u2AEF',
|
|
9952
|
+
'cirscir': '\u29C2',
|
|
9953
|
+
'clubs': '\u2663',
|
|
9954
|
+
'clubsuit': '\u2663',
|
|
9955
|
+
'colon': '\u003A',
|
|
9956
|
+
'comma': '\u002C',
|
|
9957
|
+
'commat': '\u0040',
|
|
9958
|
+
'comp': '\u2201',
|
|
9959
|
+
'complement': '\u2201',
|
|
9960
|
+
'congdot': '\u2A6D',
|
|
9961
|
+
'copf': '\uD835\uDD54',
|
|
9962
|
+
'copysr': '\u2117',
|
|
9963
|
+
'crarr': '\u21B5',
|
|
9964
|
+
'cross': '\u2717',
|
|
9965
|
+
'cscr': '\uD835\uDCB8',
|
|
9966
|
+
'csub': '\u2ACF',
|
|
9967
|
+
'csube': '\u2AD1',
|
|
9968
|
+
'csup': '\u2AD0',
|
|
9969
|
+
'csupe': '\u2AD2',
|
|
9970
|
+
'ctdot': '\u22EF',
|
|
9971
|
+
'cudarrl': '\u2938',
|
|
9972
|
+
'cudarrr': '\u2935',
|
|
9973
|
+
'cuepr': '\u22DE',
|
|
9974
|
+
'curlyeqprec': '\u22DE',
|
|
9975
|
+
'cuesc': '\u22DF',
|
|
9976
|
+
'curlyeqsucc': '\u22DF',
|
|
9977
|
+
'cularr': '\u21B6',
|
|
9978
|
+
'curvearrowleft': '\u21B6',
|
|
9979
|
+
'cularrp': '\u293D',
|
|
9980
|
+
'cup': '\u222A',
|
|
9981
|
+
'cupbrcap': '\u2A48',
|
|
9982
|
+
'cupcap': '\u2A46',
|
|
9983
|
+
'cupcup': '\u2A4A',
|
|
9984
|
+
'cupdot': '\u228D',
|
|
9985
|
+
'cupor': '\u2A45',
|
|
9986
|
+
'cups': '\u222A\uFE00',
|
|
9987
|
+
'curarr': '\u21B7',
|
|
9988
|
+
'curvearrowright': '\u21B7',
|
|
9989
|
+
'curarrm': '\u293C',
|
|
9990
|
+
'curlyvee': '\u22CE',
|
|
9991
|
+
'cuvee': '\u22CE',
|
|
9992
|
+
'curlywedge': '\u22CF',
|
|
9993
|
+
'cuwed': '\u22CF',
|
|
9994
|
+
'curren': '\u00A4',
|
|
9995
|
+
'cwint': '\u2231',
|
|
9996
|
+
'cylcty': '\u232D',
|
|
9997
|
+
'dHar': '\u2965',
|
|
9998
|
+
'dagger': '\u2020',
|
|
9999
|
+
'daleth': '\u2138',
|
|
10000
|
+
'dash': '\u2010',
|
|
10001
|
+
'hyphen': '\u2010',
|
|
10002
|
+
'dbkarow': '\u290F',
|
|
10003
|
+
'rBarr': '\u290F',
|
|
10004
|
+
'dcaron': '\u010F',
|
|
10005
|
+
'dcy': '\u0434',
|
|
10006
|
+
'ddarr': '\u21CA',
|
|
10007
|
+
'downdownarrows': '\u21CA',
|
|
10008
|
+
'ddotseq': '\u2A77',
|
|
10009
|
+
'eDDot': '\u2A77',
|
|
10010
|
+
'deg': '\u00B0',
|
|
10011
|
+
'delta': '\u03B4',
|
|
10012
|
+
'demptyv': '\u29B1',
|
|
10013
|
+
'dfisht': '\u297F',
|
|
10014
|
+
'dfr': '\uD835\uDD21',
|
|
10015
|
+
'diamondsuit': '\u2666',
|
|
10016
|
+
'diams': '\u2666',
|
|
10017
|
+
'digamma': '\u03DD',
|
|
10018
|
+
'gammad': '\u03DD',
|
|
10019
|
+
'disin': '\u22F2',
|
|
10020
|
+
'div': '\u00F7',
|
|
10021
|
+
'divide': '\u00F7',
|
|
10022
|
+
'divideontimes': '\u22C7',
|
|
10023
|
+
'divonx': '\u22C7',
|
|
10024
|
+
'djcy': '\u0452',
|
|
10025
|
+
'dlcorn': '\u231E',
|
|
10026
|
+
'llcorner': '\u231E',
|
|
10027
|
+
'dlcrop': '\u230D',
|
|
10028
|
+
'dollar': '\u0024',
|
|
10029
|
+
'dopf': '\uD835\uDD55',
|
|
10030
|
+
'doteqdot': '\u2251',
|
|
10031
|
+
'eDot': '\u2251',
|
|
10032
|
+
'dotminus': '\u2238',
|
|
10033
|
+
'minusd': '\u2238',
|
|
10034
|
+
'dotplus': '\u2214',
|
|
10035
|
+
'plusdo': '\u2214',
|
|
10036
|
+
'dotsquare': '\u22A1',
|
|
10037
|
+
'sdotb': '\u22A1',
|
|
10038
|
+
'drcorn': '\u231F',
|
|
10039
|
+
'lrcorner': '\u231F',
|
|
10040
|
+
'drcrop': '\u230C',
|
|
10041
|
+
'dscr': '\uD835\uDCB9',
|
|
10042
|
+
'dscy': '\u0455',
|
|
10043
|
+
'dsol': '\u29F6',
|
|
10044
|
+
'dstrok': '\u0111',
|
|
10045
|
+
'dtdot': '\u22F1',
|
|
10046
|
+
'dtri': '\u25BF',
|
|
10047
|
+
'triangledown': '\u25BF',
|
|
10048
|
+
'dwangle': '\u29A6',
|
|
10049
|
+
'dzcy': '\u045F',
|
|
10050
|
+
'dzigrarr': '\u27FF',
|
|
10051
|
+
'eacute': '\u00E9',
|
|
10052
|
+
'easter': '\u2A6E',
|
|
10053
|
+
'ecaron': '\u011B',
|
|
10054
|
+
'ecir': '\u2256',
|
|
10055
|
+
'eqcirc': '\u2256',
|
|
10056
|
+
'ecirc': '\u00EA',
|
|
10057
|
+
'ecolon': '\u2255',
|
|
10058
|
+
'eqcolon': '\u2255',
|
|
10059
|
+
'ecy': '\u044D',
|
|
10060
|
+
'edot': '\u0117',
|
|
10061
|
+
'efDot': '\u2252',
|
|
10062
|
+
'fallingdotseq': '\u2252',
|
|
10063
|
+
'efr': '\uD835\uDD22',
|
|
10064
|
+
'eg': '\u2A9A',
|
|
10065
|
+
'egrave': '\u00E8',
|
|
10066
|
+
'egs': '\u2A96',
|
|
10067
|
+
'eqslantgtr': '\u2A96',
|
|
10068
|
+
'egsdot': '\u2A98',
|
|
10069
|
+
'el': '\u2A99',
|
|
10070
|
+
'elinters': '\u23E7',
|
|
10071
|
+
'ell': '\u2113',
|
|
10072
|
+
'els': '\u2A95',
|
|
10073
|
+
'eqslantless': '\u2A95',
|
|
10074
|
+
'elsdot': '\u2A97',
|
|
10075
|
+
'emacr': '\u0113',
|
|
10076
|
+
'empty': '\u2205',
|
|
10077
|
+
'emptyset': '\u2205',
|
|
10078
|
+
'emptyv': '\u2205',
|
|
10079
|
+
'varnothing': '\u2205',
|
|
10080
|
+
'emsp13': '\u2004',
|
|
10081
|
+
'emsp14': '\u2005',
|
|
10082
|
+
'emsp': '\u2003',
|
|
10083
|
+
'eng': '\u014B',
|
|
10084
|
+
'ensp': '\u2002',
|
|
10085
|
+
'eogon': '\u0119',
|
|
10086
|
+
'eopf': '\uD835\uDD56',
|
|
10087
|
+
'epar': '\u22D5',
|
|
10088
|
+
'eparsl': '\u29E3',
|
|
10089
|
+
'eplus': '\u2A71',
|
|
10090
|
+
'epsi': '\u03B5',
|
|
10091
|
+
'epsilon': '\u03B5',
|
|
10092
|
+
'epsiv': '\u03F5',
|
|
10093
|
+
'straightepsilon': '\u03F5',
|
|
10094
|
+
'varepsilon': '\u03F5',
|
|
10095
|
+
'equals': '\u003D',
|
|
10096
|
+
'equest': '\u225F',
|
|
10097
|
+
'questeq': '\u225F',
|
|
10098
|
+
'equivDD': '\u2A78',
|
|
10099
|
+
'eqvparsl': '\u29E5',
|
|
10100
|
+
'erDot': '\u2253',
|
|
10101
|
+
'risingdotseq': '\u2253',
|
|
10102
|
+
'erarr': '\u2971',
|
|
10103
|
+
'escr': '\u212F',
|
|
10104
|
+
'eta': '\u03B7',
|
|
10105
|
+
'eth': '\u00F0',
|
|
10106
|
+
'euml': '\u00EB',
|
|
10107
|
+
'euro': '\u20AC',
|
|
10108
|
+
'excl': '\u0021',
|
|
10109
|
+
'fcy': '\u0444',
|
|
10110
|
+
'female': '\u2640',
|
|
10111
|
+
'ffilig': '\uFB03',
|
|
10112
|
+
'fflig': '\uFB00',
|
|
10113
|
+
'ffllig': '\uFB04',
|
|
10114
|
+
'ffr': '\uD835\uDD23',
|
|
10115
|
+
'filig': '\uFB01',
|
|
10116
|
+
'fjlig': '\u0066\u006A',
|
|
10117
|
+
'flat': '\u266D',
|
|
10118
|
+
'fllig': '\uFB02',
|
|
10119
|
+
'fltns': '\u25B1',
|
|
10120
|
+
'fnof': '\u0192',
|
|
10121
|
+
'fopf': '\uD835\uDD57',
|
|
10122
|
+
'fork': '\u22D4',
|
|
10123
|
+
'pitchfork': '\u22D4',
|
|
10124
|
+
'forkv': '\u2AD9',
|
|
10125
|
+
'fpartint': '\u2A0D',
|
|
10126
|
+
'frac12': '\u00BD',
|
|
10127
|
+
'half': '\u00BD',
|
|
10128
|
+
'frac13': '\u2153',
|
|
10129
|
+
'frac14': '\u00BC',
|
|
10130
|
+
'frac15': '\u2155',
|
|
10131
|
+
'frac16': '\u2159',
|
|
10132
|
+
'frac18': '\u215B',
|
|
10133
|
+
'frac23': '\u2154',
|
|
10134
|
+
'frac25': '\u2156',
|
|
10135
|
+
'frac34': '\u00BE',
|
|
10136
|
+
'frac35': '\u2157',
|
|
10137
|
+
'frac38': '\u215C',
|
|
10138
|
+
'frac45': '\u2158',
|
|
10139
|
+
'frac56': '\u215A',
|
|
10140
|
+
'frac58': '\u215D',
|
|
10141
|
+
'frac78': '\u215E',
|
|
10142
|
+
'frasl': '\u2044',
|
|
10143
|
+
'frown': '\u2322',
|
|
10144
|
+
'sfrown': '\u2322',
|
|
10145
|
+
'fscr': '\uD835\uDCBB',
|
|
10146
|
+
'gEl': '\u2A8C',
|
|
10147
|
+
'gtreqqless': '\u2A8C',
|
|
10148
|
+
'gacute': '\u01F5',
|
|
10149
|
+
'gamma': '\u03B3',
|
|
10150
|
+
'gap': '\u2A86',
|
|
10151
|
+
'gtrapprox': '\u2A86',
|
|
10152
|
+
'gbreve': '\u011F',
|
|
10153
|
+
'gcirc': '\u011D',
|
|
10154
|
+
'gcy': '\u0433',
|
|
10155
|
+
'gdot': '\u0121',
|
|
10156
|
+
'gescc': '\u2AA9',
|
|
10157
|
+
'gesdot': '\u2A80',
|
|
10158
|
+
'gesdoto': '\u2A82',
|
|
10159
|
+
'gesdotol': '\u2A84',
|
|
10160
|
+
'gesl': '\u22DB\uFE00',
|
|
10161
|
+
'gesles': '\u2A94',
|
|
10162
|
+
'gfr': '\uD835\uDD24',
|
|
10163
|
+
'gimel': '\u2137',
|
|
10164
|
+
'gjcy': '\u0453',
|
|
10165
|
+
'glE': '\u2A92',
|
|
10166
|
+
'gla': '\u2AA5',
|
|
10167
|
+
'glj': '\u2AA4',
|
|
10168
|
+
'gnE': '\u2269',
|
|
10169
|
+
'gneqq': '\u2269',
|
|
10170
|
+
'gnap': '\u2A8A',
|
|
10171
|
+
'gnapprox': '\u2A8A',
|
|
10172
|
+
'gne': '\u2A88',
|
|
10173
|
+
'gneq': '\u2A88',
|
|
10174
|
+
'gnsim': '\u22E7',
|
|
10175
|
+
'gopf': '\uD835\uDD58',
|
|
10176
|
+
'gscr': '\u210A',
|
|
10177
|
+
'gsime': '\u2A8E',
|
|
10178
|
+
'gsiml': '\u2A90',
|
|
10179
|
+
'gtcc': '\u2AA7',
|
|
10180
|
+
'gtcir': '\u2A7A',
|
|
10181
|
+
'gtdot': '\u22D7',
|
|
10182
|
+
'gtrdot': '\u22D7',
|
|
10183
|
+
'gtlPar': '\u2995',
|
|
10184
|
+
'gtquest': '\u2A7C',
|
|
10185
|
+
'gtrarr': '\u2978',
|
|
10186
|
+
'gvertneqq': '\u2269\uFE00',
|
|
10187
|
+
'gvnE': '\u2269\uFE00',
|
|
10188
|
+
'hardcy': '\u044A',
|
|
10189
|
+
'harrcir': '\u2948',
|
|
10190
|
+
'harrw': '\u21AD',
|
|
10191
|
+
'leftrightsquigarrow': '\u21AD',
|
|
10192
|
+
'hbar': '\u210F',
|
|
10193
|
+
'hslash': '\u210F',
|
|
10194
|
+
'planck': '\u210F',
|
|
10195
|
+
'plankv': '\u210F',
|
|
10196
|
+
'hcirc': '\u0125',
|
|
10197
|
+
'hearts': '\u2665',
|
|
10198
|
+
'heartsuit': '\u2665',
|
|
10199
|
+
'hellip': '\u2026',
|
|
10200
|
+
'mldr': '\u2026',
|
|
10201
|
+
'hercon': '\u22B9',
|
|
10202
|
+
'hfr': '\uD835\uDD25',
|
|
10203
|
+
'hksearow': '\u2925',
|
|
10204
|
+
'searhk': '\u2925',
|
|
10205
|
+
'hkswarow': '\u2926',
|
|
10206
|
+
'swarhk': '\u2926',
|
|
10207
|
+
'hoarr': '\u21FF',
|
|
10208
|
+
'homtht': '\u223B',
|
|
10209
|
+
'hookleftarrow': '\u21A9',
|
|
10210
|
+
'larrhk': '\u21A9',
|
|
10211
|
+
'hookrightarrow': '\u21AA',
|
|
10212
|
+
'rarrhk': '\u21AA',
|
|
10213
|
+
'hopf': '\uD835\uDD59',
|
|
10214
|
+
'horbar': '\u2015',
|
|
10215
|
+
'hscr': '\uD835\uDCBD',
|
|
10216
|
+
'hstrok': '\u0127',
|
|
10217
|
+
'hybull': '\u2043',
|
|
10218
|
+
'iacute': '\u00ED',
|
|
10219
|
+
'icirc': '\u00EE',
|
|
10220
|
+
'icy': '\u0438',
|
|
10221
|
+
'iecy': '\u0435',
|
|
10222
|
+
'iexcl': '\u00A1',
|
|
10223
|
+
'ifr': '\uD835\uDD26',
|
|
10224
|
+
'igrave': '\u00EC',
|
|
10225
|
+
'iiiint': '\u2A0C',
|
|
10226
|
+
'qint': '\u2A0C',
|
|
10227
|
+
'iiint': '\u222D',
|
|
10228
|
+
'tint': '\u222D',
|
|
10229
|
+
'iinfin': '\u29DC',
|
|
10230
|
+
'iiota': '\u2129',
|
|
10231
|
+
'ijlig': '\u0133',
|
|
10232
|
+
'imacr': '\u012B',
|
|
10233
|
+
'imath': '\u0131',
|
|
10234
|
+
'inodot': '\u0131',
|
|
10235
|
+
'imof': '\u22B7',
|
|
10236
|
+
'imped': '\u01B5',
|
|
10237
|
+
'incare': '\u2105',
|
|
10238
|
+
'infin': '\u221E',
|
|
10239
|
+
'infintie': '\u29DD',
|
|
10240
|
+
'intcal': '\u22BA',
|
|
10241
|
+
'intercal': '\u22BA',
|
|
10242
|
+
'intlarhk': '\u2A17',
|
|
10243
|
+
'intprod': '\u2A3C',
|
|
10244
|
+
'iprod': '\u2A3C',
|
|
10245
|
+
'iocy': '\u0451',
|
|
10246
|
+
'iogon': '\u012F',
|
|
10247
|
+
'iopf': '\uD835\uDD5A',
|
|
10248
|
+
'iota': '\u03B9',
|
|
10249
|
+
'iquest': '\u00BF',
|
|
10250
|
+
'iscr': '\uD835\uDCBE',
|
|
10251
|
+
'isinE': '\u22F9',
|
|
10252
|
+
'isindot': '\u22F5',
|
|
10253
|
+
'isins': '\u22F4',
|
|
10254
|
+
'isinsv': '\u22F3',
|
|
10255
|
+
'itilde': '\u0129',
|
|
10256
|
+
'iukcy': '\u0456',
|
|
10257
|
+
'iuml': '\u00EF',
|
|
10258
|
+
'jcirc': '\u0135',
|
|
10259
|
+
'jcy': '\u0439',
|
|
10260
|
+
'jfr': '\uD835\uDD27',
|
|
10261
|
+
'jmath': '\u0237',
|
|
10262
|
+
'jopf': '\uD835\uDD5B',
|
|
10263
|
+
'jscr': '\uD835\uDCBF',
|
|
10264
|
+
'jsercy': '\u0458',
|
|
10265
|
+
'jukcy': '\u0454',
|
|
10266
|
+
'kappa': '\u03BA',
|
|
10267
|
+
'kappav': '\u03F0',
|
|
10268
|
+
'varkappa': '\u03F0',
|
|
10269
|
+
'kcedil': '\u0137',
|
|
10270
|
+
'kcy': '\u043A',
|
|
10271
|
+
'kfr': '\uD835\uDD28',
|
|
10272
|
+
'kgreen': '\u0138',
|
|
10273
|
+
'khcy': '\u0445',
|
|
10274
|
+
'kjcy': '\u045C',
|
|
10275
|
+
'kopf': '\uD835\uDD5C',
|
|
10276
|
+
'kscr': '\uD835\uDCC0',
|
|
10277
|
+
'lAtail': '\u291B',
|
|
10278
|
+
'lBarr': '\u290E',
|
|
10279
|
+
'lEg': '\u2A8B',
|
|
10280
|
+
'lesseqqgtr': '\u2A8B',
|
|
10281
|
+
'lHar': '\u2962',
|
|
10282
|
+
'lacute': '\u013A',
|
|
10283
|
+
'laemptyv': '\u29B4',
|
|
10284
|
+
'lambda': '\u03BB',
|
|
10285
|
+
'langd': '\u2991',
|
|
10286
|
+
'lap': '\u2A85',
|
|
10287
|
+
'lessapprox': '\u2A85',
|
|
10288
|
+
'laquo': '\u00AB',
|
|
10289
|
+
'larrbfs': '\u291F',
|
|
10290
|
+
'larrfs': '\u291D',
|
|
10291
|
+
'larrlp': '\u21AB',
|
|
10292
|
+
'looparrowleft': '\u21AB',
|
|
10293
|
+
'larrpl': '\u2939',
|
|
10294
|
+
'larrsim': '\u2973',
|
|
10295
|
+
'larrtl': '\u21A2',
|
|
10296
|
+
'leftarrowtail': '\u21A2',
|
|
10297
|
+
'lat': '\u2AAB',
|
|
10298
|
+
'latail': '\u2919',
|
|
10299
|
+
'late': '\u2AAD',
|
|
10300
|
+
'lates': '\u2AAD\uFE00',
|
|
10301
|
+
'lbarr': '\u290C',
|
|
10302
|
+
'lbbrk': '\u2772',
|
|
10303
|
+
'lbrace': '\u007B',
|
|
10304
|
+
'lcub': '\u007B',
|
|
10305
|
+
'lbrack': '\u005B',
|
|
10306
|
+
'lsqb': '\u005B',
|
|
10307
|
+
'lbrke': '\u298B',
|
|
10308
|
+
'lbrksld': '\u298F',
|
|
10309
|
+
'lbrkslu': '\u298D',
|
|
10310
|
+
'lcaron': '\u013E',
|
|
10311
|
+
'lcedil': '\u013C',
|
|
10312
|
+
'lcy': '\u043B',
|
|
10313
|
+
'ldca': '\u2936',
|
|
10314
|
+
'ldrdhar': '\u2967',
|
|
10315
|
+
'ldrushar': '\u294B',
|
|
10316
|
+
'ldsh': '\u21B2',
|
|
10317
|
+
'le': '\u2264',
|
|
10318
|
+
'leq': '\u2264',
|
|
10319
|
+
'leftleftarrows': '\u21C7',
|
|
10320
|
+
'llarr': '\u21C7',
|
|
10321
|
+
'leftthreetimes': '\u22CB',
|
|
10322
|
+
'lthree': '\u22CB',
|
|
10323
|
+
'lescc': '\u2AA8',
|
|
10324
|
+
'lesdot': '\u2A7F',
|
|
10325
|
+
'lesdoto': '\u2A81',
|
|
10326
|
+
'lesdotor': '\u2A83',
|
|
10327
|
+
'lesg': '\u22DA\uFE00',
|
|
10328
|
+
'lesges': '\u2A93',
|
|
10329
|
+
'lessdot': '\u22D6',
|
|
10330
|
+
'ltdot': '\u22D6',
|
|
10331
|
+
'lfisht': '\u297C',
|
|
10332
|
+
'lfr': '\uD835\uDD29',
|
|
10333
|
+
'lgE': '\u2A91',
|
|
10334
|
+
'lharul': '\u296A',
|
|
10335
|
+
'lhblk': '\u2584',
|
|
10336
|
+
'ljcy': '\u0459',
|
|
10337
|
+
'llhard': '\u296B',
|
|
10338
|
+
'lltri': '\u25FA',
|
|
10339
|
+
'lmidot': '\u0140',
|
|
10340
|
+
'lmoust': '\u23B0',
|
|
10341
|
+
'lmoustache': '\u23B0',
|
|
10342
|
+
'lnE': '\u2268',
|
|
10343
|
+
'lneqq': '\u2268',
|
|
10344
|
+
'lnap': '\u2A89',
|
|
10345
|
+
'lnapprox': '\u2A89',
|
|
10346
|
+
'lne': '\u2A87',
|
|
10347
|
+
'lneq': '\u2A87',
|
|
10348
|
+
'lnsim': '\u22E6',
|
|
10349
|
+
'loang': '\u27EC',
|
|
10350
|
+
'loarr': '\u21FD',
|
|
10351
|
+
'longmapsto': '\u27FC',
|
|
10352
|
+
'xmap': '\u27FC',
|
|
10353
|
+
'looparrowright': '\u21AC',
|
|
10354
|
+
'rarrlp': '\u21AC',
|
|
10355
|
+
'lopar': '\u2985',
|
|
10356
|
+
'lopf': '\uD835\uDD5D',
|
|
10357
|
+
'loplus': '\u2A2D',
|
|
10358
|
+
'lotimes': '\u2A34',
|
|
10359
|
+
'lowast': '\u2217',
|
|
10360
|
+
'loz': '\u25CA',
|
|
10361
|
+
'lozenge': '\u25CA',
|
|
10362
|
+
'lpar': '\u0028',
|
|
10363
|
+
'lparlt': '\u2993',
|
|
10364
|
+
'lrhard': '\u296D',
|
|
10365
|
+
'lrm': '\u200E',
|
|
10366
|
+
'lrtri': '\u22BF',
|
|
10367
|
+
'lsaquo': '\u2039',
|
|
10368
|
+
'lscr': '\uD835\uDCC1',
|
|
10369
|
+
'lsime': '\u2A8D',
|
|
10370
|
+
'lsimg': '\u2A8F',
|
|
10371
|
+
'lsquor': '\u201A',
|
|
10372
|
+
'sbquo': '\u201A',
|
|
10373
|
+
'lstrok': '\u0142',
|
|
10374
|
+
'ltcc': '\u2AA6',
|
|
10375
|
+
'ltcir': '\u2A79',
|
|
10376
|
+
'ltimes': '\u22C9',
|
|
10377
|
+
'ltlarr': '\u2976',
|
|
10378
|
+
'ltquest': '\u2A7B',
|
|
10379
|
+
'ltrPar': '\u2996',
|
|
10380
|
+
'ltri': '\u25C3',
|
|
10381
|
+
'triangleleft': '\u25C3',
|
|
10382
|
+
'lurdshar': '\u294A',
|
|
10383
|
+
'luruhar': '\u2966',
|
|
10384
|
+
'lvertneqq': '\u2268\uFE00',
|
|
10385
|
+
'lvnE': '\u2268\uFE00',
|
|
10386
|
+
'mDDot': '\u223A',
|
|
10387
|
+
'macr': '\u00AF',
|
|
10388
|
+
'strns': '\u00AF',
|
|
10389
|
+
'male': '\u2642',
|
|
10390
|
+
'malt': '\u2720',
|
|
10391
|
+
'maltese': '\u2720',
|
|
10392
|
+
'marker': '\u25AE',
|
|
10393
|
+
'mcomma': '\u2A29',
|
|
10394
|
+
'mcy': '\u043C',
|
|
10395
|
+
'mdash': '\u2014',
|
|
10396
|
+
'mfr': '\uD835\uDD2A',
|
|
10397
|
+
'mho': '\u2127',
|
|
10398
|
+
'micro': '\u00B5',
|
|
10399
|
+
'midcir': '\u2AF0',
|
|
10400
|
+
'minus': '\u2212',
|
|
10401
|
+
'minusdu': '\u2A2A',
|
|
10402
|
+
'mlcp': '\u2ADB',
|
|
10403
|
+
'models': '\u22A7',
|
|
10404
|
+
'mopf': '\uD835\uDD5E',
|
|
10405
|
+
'mscr': '\uD835\uDCC2',
|
|
10406
|
+
'mu': '\u03BC',
|
|
10407
|
+
'multimap': '\u22B8',
|
|
10408
|
+
'mumap': '\u22B8',
|
|
10409
|
+
'nGg': '\u22D9\u0338',
|
|
10410
|
+
'nGt': '\u226B\u20D2',
|
|
10411
|
+
'nLeftarrow': '\u21CD',
|
|
10412
|
+
'nlArr': '\u21CD',
|
|
10413
|
+
'nLeftrightarrow': '\u21CE',
|
|
10414
|
+
'nhArr': '\u21CE',
|
|
10415
|
+
'nLl': '\u22D8\u0338',
|
|
10416
|
+
'nLt': '\u226A\u20D2',
|
|
10417
|
+
'nRightarrow': '\u21CF',
|
|
10418
|
+
'nrArr': '\u21CF',
|
|
10419
|
+
'nVDash': '\u22AF',
|
|
10420
|
+
'nVdash': '\u22AE',
|
|
10421
|
+
'nacute': '\u0144',
|
|
10422
|
+
'nang': '\u2220\u20D2',
|
|
10423
|
+
'napE': '\u2A70\u0338',
|
|
10424
|
+
'napid': '\u224B\u0338',
|
|
10425
|
+
'napos': '\u0149',
|
|
10426
|
+
'natur': '\u266E',
|
|
10427
|
+
'natural': '\u266E',
|
|
10428
|
+
'ncap': '\u2A43',
|
|
10429
|
+
'ncaron': '\u0148',
|
|
10430
|
+
'ncedil': '\u0146',
|
|
10431
|
+
'ncongdot': '\u2A6D\u0338',
|
|
10432
|
+
'ncup': '\u2A42',
|
|
10433
|
+
'ncy': '\u043D',
|
|
10434
|
+
'ndash': '\u2013',
|
|
10435
|
+
'neArr': '\u21D7',
|
|
10436
|
+
'nearhk': '\u2924',
|
|
10437
|
+
'nedot': '\u2250\u0338',
|
|
10438
|
+
'nesear': '\u2928',
|
|
10439
|
+
'toea': '\u2928',
|
|
10440
|
+
'nfr': '\uD835\uDD2B',
|
|
10441
|
+
'nharr': '\u21AE',
|
|
10442
|
+
'nleftrightarrow': '\u21AE',
|
|
10443
|
+
'nhpar': '\u2AF2',
|
|
10444
|
+
'nis': '\u22FC',
|
|
10445
|
+
'nisd': '\u22FA',
|
|
10446
|
+
'njcy': '\u045A',
|
|
10447
|
+
'nlE': '\u2266\u0338',
|
|
10448
|
+
'nleqq': '\u2266\u0338',
|
|
10449
|
+
'nlarr': '\u219A',
|
|
10450
|
+
'nleftarrow': '\u219A',
|
|
10451
|
+
'nldr': '\u2025',
|
|
10452
|
+
'nopf': '\uD835\uDD5F',
|
|
10453
|
+
'not': '\u00AC',
|
|
10454
|
+
'notinE': '\u22F9\u0338',
|
|
10455
|
+
'notindot': '\u22F5\u0338',
|
|
10456
|
+
'notinvb': '\u22F7',
|
|
10457
|
+
'notinvc': '\u22F6',
|
|
10458
|
+
'notnivb': '\u22FE',
|
|
10459
|
+
'notnivc': '\u22FD',
|
|
10460
|
+
'nparsl': '\u2AFD\u20E5',
|
|
10461
|
+
'npart': '\u2202\u0338',
|
|
10462
|
+
'npolint': '\u2A14',
|
|
10463
|
+
'nrarr': '\u219B',
|
|
10464
|
+
'nrightarrow': '\u219B',
|
|
10465
|
+
'nrarrc': '\u2933\u0338',
|
|
10466
|
+
'nrarrw': '\u219D\u0338',
|
|
10467
|
+
'nscr': '\uD835\uDCC3',
|
|
10468
|
+
'nsub': '\u2284',
|
|
10469
|
+
'nsubE': '\u2AC5\u0338',
|
|
10470
|
+
'nsubseteqq': '\u2AC5\u0338',
|
|
10471
|
+
'nsup': '\u2285',
|
|
10472
|
+
'nsupE': '\u2AC6\u0338',
|
|
10473
|
+
'nsupseteqq': '\u2AC6\u0338',
|
|
10474
|
+
'ntilde': '\u00F1',
|
|
10475
|
+
'nu': '\u03BD',
|
|
10476
|
+
'num': '\u0023',
|
|
10477
|
+
'numero': '\u2116',
|
|
10478
|
+
'numsp': '\u2007',
|
|
10479
|
+
'nvDash': '\u22AD',
|
|
10480
|
+
'nvHarr': '\u2904',
|
|
10481
|
+
'nvap': '\u224D\u20D2',
|
|
10482
|
+
'nvdash': '\u22AC',
|
|
10483
|
+
'nvge': '\u2265\u20D2',
|
|
10484
|
+
'nvgt': '\u003E\u20D2',
|
|
10485
|
+
'nvinfin': '\u29DE',
|
|
10486
|
+
'nvlArr': '\u2902',
|
|
10487
|
+
'nvle': '\u2264\u20D2',
|
|
10488
|
+
'nvlt': '\u003C\u20D2',
|
|
10489
|
+
'nvltrie': '\u22B4\u20D2',
|
|
10490
|
+
'nvrArr': '\u2903',
|
|
10491
|
+
'nvrtrie': '\u22B5\u20D2',
|
|
10492
|
+
'nvsim': '\u223C\u20D2',
|
|
10493
|
+
'nwArr': '\u21D6',
|
|
10494
|
+
'nwarhk': '\u2923',
|
|
10495
|
+
'nwnear': '\u2927',
|
|
10496
|
+
'oacute': '\u00F3',
|
|
10497
|
+
'ocirc': '\u00F4',
|
|
10498
|
+
'ocy': '\u043E',
|
|
10499
|
+
'odblac': '\u0151',
|
|
10500
|
+
'odiv': '\u2A38',
|
|
10501
|
+
'odsold': '\u29BC',
|
|
10502
|
+
'oelig': '\u0153',
|
|
10503
|
+
'ofcir': '\u29BF',
|
|
10504
|
+
'ofr': '\uD835\uDD2C',
|
|
10505
|
+
'ogon': '\u02DB',
|
|
10506
|
+
'ograve': '\u00F2',
|
|
10507
|
+
'ogt': '\u29C1',
|
|
10508
|
+
'ohbar': '\u29B5',
|
|
10509
|
+
'olcir': '\u29BE',
|
|
10510
|
+
'olcross': '\u29BB',
|
|
10511
|
+
'olt': '\u29C0',
|
|
10512
|
+
'omacr': '\u014D',
|
|
10513
|
+
'omega': '\u03C9',
|
|
10514
|
+
'omicron': '\u03BF',
|
|
10515
|
+
'omid': '\u29B6',
|
|
10516
|
+
'oopf': '\uD835\uDD60',
|
|
10517
|
+
'opar': '\u29B7',
|
|
10518
|
+
'operp': '\u29B9',
|
|
10519
|
+
'or': '\u2228',
|
|
10520
|
+
'vee': '\u2228',
|
|
10521
|
+
'ord': '\u2A5D',
|
|
10522
|
+
'order': '\u2134',
|
|
10523
|
+
'orderof': '\u2134',
|
|
10524
|
+
'oscr': '\u2134',
|
|
10525
|
+
'ordf': '\u00AA',
|
|
10526
|
+
'ordm': '\u00BA',
|
|
10527
|
+
'origof': '\u22B6',
|
|
10528
|
+
'oror': '\u2A56',
|
|
10529
|
+
'orslope': '\u2A57',
|
|
10530
|
+
'orv': '\u2A5B',
|
|
10531
|
+
'oslash': '\u00F8',
|
|
10532
|
+
'osol': '\u2298',
|
|
10533
|
+
'otilde': '\u00F5',
|
|
10534
|
+
'otimesas': '\u2A36',
|
|
10535
|
+
'ouml': '\u00F6',
|
|
10536
|
+
'ovbar': '\u233D',
|
|
10537
|
+
'para': '\u00B6',
|
|
10538
|
+
'parsim': '\u2AF3',
|
|
10539
|
+
'parsl': '\u2AFD',
|
|
10540
|
+
'pcy': '\u043F',
|
|
10541
|
+
'percnt': '\u0025',
|
|
10542
|
+
'period': '\u002E',
|
|
10543
|
+
'permil': '\u2030',
|
|
10544
|
+
'pertenk': '\u2031',
|
|
10545
|
+
'pfr': '\uD835\uDD2D',
|
|
10546
|
+
'phi': '\u03C6',
|
|
10547
|
+
'phiv': '\u03D5',
|
|
10548
|
+
'straightphi': '\u03D5',
|
|
10549
|
+
'varphi': '\u03D5',
|
|
10550
|
+
'phone': '\u260E',
|
|
10551
|
+
'pi': '\u03C0',
|
|
10552
|
+
'piv': '\u03D6',
|
|
10553
|
+
'varpi': '\u03D6',
|
|
10554
|
+
'planckh': '\u210E',
|
|
10555
|
+
'plus': '\u002B',
|
|
10556
|
+
'plusacir': '\u2A23',
|
|
10557
|
+
'pluscir': '\u2A22',
|
|
10558
|
+
'plusdu': '\u2A25',
|
|
10559
|
+
'pluse': '\u2A72',
|
|
10560
|
+
'plussim': '\u2A26',
|
|
10561
|
+
'plustwo': '\u2A27',
|
|
10562
|
+
'pointint': '\u2A15',
|
|
10563
|
+
'popf': '\uD835\uDD61',
|
|
10564
|
+
'pound': '\u00A3',
|
|
10565
|
+
'prE': '\u2AB3',
|
|
10566
|
+
'prap': '\u2AB7',
|
|
10567
|
+
'precapprox': '\u2AB7',
|
|
10568
|
+
'precnapprox': '\u2AB9',
|
|
10569
|
+
'prnap': '\u2AB9',
|
|
10570
|
+
'precneqq': '\u2AB5',
|
|
10571
|
+
'prnE': '\u2AB5',
|
|
10572
|
+
'precnsim': '\u22E8',
|
|
10573
|
+
'prnsim': '\u22E8',
|
|
10574
|
+
'prime': '\u2032',
|
|
10575
|
+
'profalar': '\u232E',
|
|
10576
|
+
'profline': '\u2312',
|
|
10577
|
+
'profsurf': '\u2313',
|
|
10578
|
+
'prurel': '\u22B0',
|
|
10579
|
+
'pscr': '\uD835\uDCC5',
|
|
10580
|
+
'psi': '\u03C8',
|
|
10581
|
+
'puncsp': '\u2008',
|
|
10582
|
+
'qfr': '\uD835\uDD2E',
|
|
10583
|
+
'qopf': '\uD835\uDD62',
|
|
10584
|
+
'qprime': '\u2057',
|
|
10585
|
+
'qscr': '\uD835\uDCC6',
|
|
10586
|
+
'quatint': '\u2A16',
|
|
10587
|
+
'quest': '\u003F',
|
|
10588
|
+
'rAtail': '\u291C',
|
|
10589
|
+
'rHar': '\u2964',
|
|
10590
|
+
'race': '\u223D\u0331',
|
|
10591
|
+
'racute': '\u0155',
|
|
10592
|
+
'raemptyv': '\u29B3',
|
|
10593
|
+
'rangd': '\u2992',
|
|
10594
|
+
'range': '\u29A5',
|
|
10595
|
+
'raquo': '\u00BB',
|
|
10596
|
+
'rarrap': '\u2975',
|
|
10597
|
+
'rarrbfs': '\u2920',
|
|
10598
|
+
'rarrc': '\u2933',
|
|
10599
|
+
'rarrfs': '\u291E',
|
|
10600
|
+
'rarrpl': '\u2945',
|
|
10601
|
+
'rarrsim': '\u2974',
|
|
10602
|
+
'rarrtl': '\u21A3',
|
|
10603
|
+
'rightarrowtail': '\u21A3',
|
|
10604
|
+
'rarrw': '\u219D',
|
|
10605
|
+
'rightsquigarrow': '\u219D',
|
|
10606
|
+
'ratail': '\u291A',
|
|
10607
|
+
'ratio': '\u2236',
|
|
10608
|
+
'rbbrk': '\u2773',
|
|
10609
|
+
'rbrace': '\u007D',
|
|
10610
|
+
'rcub': '\u007D',
|
|
10611
|
+
'rbrack': '\u005D',
|
|
10612
|
+
'rsqb': '\u005D',
|
|
10613
|
+
'rbrke': '\u298C',
|
|
10614
|
+
'rbrksld': '\u298E',
|
|
10615
|
+
'rbrkslu': '\u2990',
|
|
10616
|
+
'rcaron': '\u0159',
|
|
10617
|
+
'rcedil': '\u0157',
|
|
10618
|
+
'rcy': '\u0440',
|
|
10619
|
+
'rdca': '\u2937',
|
|
10620
|
+
'rdldhar': '\u2969',
|
|
10621
|
+
'rdsh': '\u21B3',
|
|
10622
|
+
'rect': '\u25AD',
|
|
10623
|
+
'rfisht': '\u297D',
|
|
10624
|
+
'rfr': '\uD835\uDD2F',
|
|
10625
|
+
'rharul': '\u296C',
|
|
10626
|
+
'rho': '\u03C1',
|
|
10627
|
+
'rhov': '\u03F1',
|
|
10628
|
+
'varrho': '\u03F1',
|
|
10629
|
+
'rightrightarrows': '\u21C9',
|
|
10630
|
+
'rrarr': '\u21C9',
|
|
10631
|
+
'rightthreetimes': '\u22CC',
|
|
10632
|
+
'rthree': '\u22CC',
|
|
10633
|
+
'ring': '\u02DA',
|
|
10634
|
+
'rlm': '\u200F',
|
|
10635
|
+
'rmoust': '\u23B1',
|
|
10636
|
+
'rmoustache': '\u23B1',
|
|
10637
|
+
'rnmid': '\u2AEE',
|
|
10638
|
+
'roang': '\u27ED',
|
|
10639
|
+
'roarr': '\u21FE',
|
|
10640
|
+
'ropar': '\u2986',
|
|
10641
|
+
'ropf': '\uD835\uDD63',
|
|
10642
|
+
'roplus': '\u2A2E',
|
|
10643
|
+
'rotimes': '\u2A35',
|
|
10644
|
+
'rpar': '\u0029',
|
|
10645
|
+
'rpargt': '\u2994',
|
|
10646
|
+
'rppolint': '\u2A12',
|
|
10647
|
+
'rsaquo': '\u203A',
|
|
10648
|
+
'rscr': '\uD835\uDCC7',
|
|
10649
|
+
'rtimes': '\u22CA',
|
|
10650
|
+
'rtri': '\u25B9',
|
|
10651
|
+
'triangleright': '\u25B9',
|
|
10652
|
+
'rtriltri': '\u29CE',
|
|
10653
|
+
'ruluhar': '\u2968',
|
|
10654
|
+
'rx': '\u211E',
|
|
10655
|
+
'sacute': '\u015B',
|
|
10656
|
+
'scE': '\u2AB4',
|
|
10657
|
+
'scap': '\u2AB8',
|
|
10658
|
+
'succapprox': '\u2AB8',
|
|
10659
|
+
'scaron': '\u0161',
|
|
10660
|
+
'scedil': '\u015F',
|
|
10661
|
+
'scirc': '\u015D',
|
|
10662
|
+
'scnE': '\u2AB6',
|
|
10663
|
+
'succneqq': '\u2AB6',
|
|
10664
|
+
'scnap': '\u2ABA',
|
|
10665
|
+
'succnapprox': '\u2ABA',
|
|
10666
|
+
'scnsim': '\u22E9',
|
|
10667
|
+
'succnsim': '\u22E9',
|
|
10668
|
+
'scpolint': '\u2A13',
|
|
10669
|
+
'scy': '\u0441',
|
|
10670
|
+
'sdot': '\u22C5',
|
|
10671
|
+
'sdote': '\u2A66',
|
|
10672
|
+
'seArr': '\u21D8',
|
|
10673
|
+
'sect': '\u00A7',
|
|
10674
|
+
'semi': '\u003B',
|
|
10675
|
+
'seswar': '\u2929',
|
|
10676
|
+
'tosa': '\u2929',
|
|
10677
|
+
'sext': '\u2736',
|
|
10678
|
+
'sfr': '\uD835\uDD30',
|
|
10679
|
+
'sharp': '\u266F',
|
|
10680
|
+
'shchcy': '\u0449',
|
|
10681
|
+
'shcy': '\u0448',
|
|
10682
|
+
'shy': '\u00AD',
|
|
10683
|
+
'sigma': '\u03C3',
|
|
10684
|
+
'sigmaf': '\u03C2',
|
|
10685
|
+
'sigmav': '\u03C2',
|
|
10686
|
+
'varsigma': '\u03C2',
|
|
10687
|
+
'simdot': '\u2A6A',
|
|
10688
|
+
'simg': '\u2A9E',
|
|
10689
|
+
'simgE': '\u2AA0',
|
|
10690
|
+
'siml': '\u2A9D',
|
|
10691
|
+
'simlE': '\u2A9F',
|
|
10692
|
+
'simne': '\u2246',
|
|
10693
|
+
'simplus': '\u2A24',
|
|
10694
|
+
'simrarr': '\u2972',
|
|
10695
|
+
'smashp': '\u2A33',
|
|
10696
|
+
'smeparsl': '\u29E4',
|
|
10697
|
+
'smile': '\u2323',
|
|
10698
|
+
'ssmile': '\u2323',
|
|
10699
|
+
'smt': '\u2AAA',
|
|
10700
|
+
'smte': '\u2AAC',
|
|
10701
|
+
'smtes': '\u2AAC\uFE00',
|
|
10702
|
+
'softcy': '\u044C',
|
|
10703
|
+
'sol': '\u002F',
|
|
10704
|
+
'solb': '\u29C4',
|
|
10705
|
+
'solbar': '\u233F',
|
|
10706
|
+
'sopf': '\uD835\uDD64',
|
|
10707
|
+
'spades': '\u2660',
|
|
10708
|
+
'spadesuit': '\u2660',
|
|
10709
|
+
'sqcaps': '\u2293\uFE00',
|
|
10710
|
+
'sqcups': '\u2294\uFE00',
|
|
10711
|
+
'sscr': '\uD835\uDCC8',
|
|
10712
|
+
'star': '\u2606',
|
|
10713
|
+
'sub': '\u2282',
|
|
10714
|
+
'subset': '\u2282',
|
|
10715
|
+
'subE': '\u2AC5',
|
|
10716
|
+
'subseteqq': '\u2AC5',
|
|
10717
|
+
'subdot': '\u2ABD',
|
|
10718
|
+
'subedot': '\u2AC3',
|
|
10719
|
+
'submult': '\u2AC1',
|
|
10720
|
+
'subnE': '\u2ACB',
|
|
10721
|
+
'subsetneqq': '\u2ACB',
|
|
10722
|
+
'subne': '\u228A',
|
|
10723
|
+
'subsetneq': '\u228A',
|
|
10724
|
+
'subplus': '\u2ABF',
|
|
10725
|
+
'subrarr': '\u2979',
|
|
10726
|
+
'subsim': '\u2AC7',
|
|
10727
|
+
'subsub': '\u2AD5',
|
|
10728
|
+
'subsup': '\u2AD3',
|
|
10729
|
+
'sung': '\u266A',
|
|
10730
|
+
'sup1': '\u00B9',
|
|
10731
|
+
'sup2': '\u00B2',
|
|
10732
|
+
'sup3': '\u00B3',
|
|
10733
|
+
'supE': '\u2AC6',
|
|
10734
|
+
'supseteqq': '\u2AC6',
|
|
10735
|
+
'supdot': '\u2ABE',
|
|
10736
|
+
'supdsub': '\u2AD8',
|
|
10737
|
+
'supedot': '\u2AC4',
|
|
10738
|
+
'suphsol': '\u27C9',
|
|
10739
|
+
'suphsub': '\u2AD7',
|
|
10740
|
+
'suplarr': '\u297B',
|
|
10741
|
+
'supmult': '\u2AC2',
|
|
10742
|
+
'supnE': '\u2ACC',
|
|
10743
|
+
'supsetneqq': '\u2ACC',
|
|
10744
|
+
'supne': '\u228B',
|
|
10745
|
+
'supsetneq': '\u228B',
|
|
10746
|
+
'supplus': '\u2AC0',
|
|
10747
|
+
'supsim': '\u2AC8',
|
|
10748
|
+
'supsub': '\u2AD4',
|
|
10749
|
+
'supsup': '\u2AD6',
|
|
10750
|
+
'swArr': '\u21D9',
|
|
10751
|
+
'swnwar': '\u292A',
|
|
10752
|
+
'szlig': '\u00DF',
|
|
10753
|
+
'target': '\u2316',
|
|
10754
|
+
'tau': '\u03C4',
|
|
10755
|
+
'tcaron': '\u0165',
|
|
10756
|
+
'tcedil': '\u0163',
|
|
10757
|
+
'tcy': '\u0442',
|
|
10758
|
+
'telrec': '\u2315',
|
|
10759
|
+
'tfr': '\uD835\uDD31',
|
|
10760
|
+
'theta': '\u03B8',
|
|
10761
|
+
'thetasym': '\u03D1',
|
|
10762
|
+
'thetav': '\u03D1',
|
|
10763
|
+
'vartheta': '\u03D1',
|
|
10764
|
+
'thorn': '\u00FE',
|
|
10765
|
+
'times': '\u00D7',
|
|
10766
|
+
'timesbar': '\u2A31',
|
|
10767
|
+
'timesd': '\u2A30',
|
|
10768
|
+
'topbot': '\u2336',
|
|
10769
|
+
'topcir': '\u2AF1',
|
|
10770
|
+
'topf': '\uD835\uDD65',
|
|
10771
|
+
'topfork': '\u2ADA',
|
|
10772
|
+
'tprime': '\u2034',
|
|
10773
|
+
'triangle': '\u25B5',
|
|
10774
|
+
'utri': '\u25B5',
|
|
10775
|
+
'triangleq': '\u225C',
|
|
10776
|
+
'trie': '\u225C',
|
|
10777
|
+
'tridot': '\u25EC',
|
|
10778
|
+
'triminus': '\u2A3A',
|
|
10779
|
+
'triplus': '\u2A39',
|
|
10780
|
+
'trisb': '\u29CD',
|
|
10781
|
+
'tritime': '\u2A3B',
|
|
10782
|
+
'trpezium': '\u23E2',
|
|
10783
|
+
'tscr': '\uD835\uDCC9',
|
|
10784
|
+
'tscy': '\u0446',
|
|
10785
|
+
'tshcy': '\u045B',
|
|
10786
|
+
'tstrok': '\u0167',
|
|
10787
|
+
'uHar': '\u2963',
|
|
10788
|
+
'uacute': '\u00FA',
|
|
10789
|
+
'ubrcy': '\u045E',
|
|
10790
|
+
'ubreve': '\u016D',
|
|
10791
|
+
'ucirc': '\u00FB',
|
|
10792
|
+
'ucy': '\u0443',
|
|
10793
|
+
'udblac': '\u0171',
|
|
10794
|
+
'ufisht': '\u297E',
|
|
10795
|
+
'ufr': '\uD835\uDD32',
|
|
10796
|
+
'ugrave': '\u00F9',
|
|
10797
|
+
'uhblk': '\u2580',
|
|
10798
|
+
'ulcorn': '\u231C',
|
|
10799
|
+
'ulcorner': '\u231C',
|
|
10800
|
+
'ulcrop': '\u230F',
|
|
10801
|
+
'ultri': '\u25F8',
|
|
10802
|
+
'umacr': '\u016B',
|
|
10803
|
+
'uogon': '\u0173',
|
|
10804
|
+
'uopf': '\uD835\uDD66',
|
|
10805
|
+
'upsi': '\u03C5',
|
|
10806
|
+
'upsilon': '\u03C5',
|
|
10807
|
+
'upuparrows': '\u21C8',
|
|
10808
|
+
'uuarr': '\u21C8',
|
|
10809
|
+
'urcorn': '\u231D',
|
|
10810
|
+
'urcorner': '\u231D',
|
|
10811
|
+
'urcrop': '\u230E',
|
|
10812
|
+
'uring': '\u016F',
|
|
10813
|
+
'urtri': '\u25F9',
|
|
10814
|
+
'uscr': '\uD835\uDCCA',
|
|
10815
|
+
'utdot': '\u22F0',
|
|
10816
|
+
'utilde': '\u0169',
|
|
10817
|
+
'uuml': '\u00FC',
|
|
10818
|
+
'uwangle': '\u29A7',
|
|
10819
|
+
'vBar': '\u2AE8',
|
|
10820
|
+
'vBarv': '\u2AE9',
|
|
10821
|
+
'vangrt': '\u299C',
|
|
10822
|
+
'varsubsetneq': '\u228A\uFE00',
|
|
10823
|
+
'vsubne': '\u228A\uFE00',
|
|
10824
|
+
'varsubsetneqq': '\u2ACB\uFE00',
|
|
10825
|
+
'vsubnE': '\u2ACB\uFE00',
|
|
10826
|
+
'varsupsetneq': '\u228B\uFE00',
|
|
10827
|
+
'vsupne': '\u228B\uFE00',
|
|
10828
|
+
'varsupsetneqq': '\u2ACC\uFE00',
|
|
10829
|
+
'vsupnE': '\u2ACC\uFE00',
|
|
10830
|
+
'vcy': '\u0432',
|
|
10831
|
+
'veebar': '\u22BB',
|
|
10832
|
+
'veeeq': '\u225A',
|
|
10833
|
+
'vellip': '\u22EE',
|
|
10834
|
+
'vfr': '\uD835\uDD33',
|
|
10835
|
+
'vopf': '\uD835\uDD67',
|
|
10836
|
+
'vscr': '\uD835\uDCCB',
|
|
10837
|
+
'vzigzag': '\u299A',
|
|
10838
|
+
'wcirc': '\u0175',
|
|
10839
|
+
'wedbar': '\u2A5F',
|
|
10840
|
+
'wedgeq': '\u2259',
|
|
10841
|
+
'weierp': '\u2118',
|
|
10842
|
+
'wp': '\u2118',
|
|
10843
|
+
'wfr': '\uD835\uDD34',
|
|
10844
|
+
'wopf': '\uD835\uDD68',
|
|
10845
|
+
'wscr': '\uD835\uDCCC',
|
|
10846
|
+
'xfr': '\uD835\uDD35',
|
|
10847
|
+
'xi': '\u03BE',
|
|
10848
|
+
'xnis': '\u22FB',
|
|
10849
|
+
'xopf': '\uD835\uDD69',
|
|
10850
|
+
'xscr': '\uD835\uDCCD',
|
|
10851
|
+
'yacute': '\u00FD',
|
|
10852
|
+
'yacy': '\u044F',
|
|
10853
|
+
'ycirc': '\u0177',
|
|
10854
|
+
'ycy': '\u044B',
|
|
10855
|
+
'yen': '\u00A5',
|
|
10856
|
+
'yfr': '\uD835\uDD36',
|
|
10857
|
+
'yicy': '\u0457',
|
|
10858
|
+
'yopf': '\uD835\uDD6A',
|
|
10859
|
+
'yscr': '\uD835\uDCCE',
|
|
10860
|
+
'yucy': '\u044E',
|
|
10861
|
+
'yuml': '\u00FF',
|
|
10862
|
+
'zacute': '\u017A',
|
|
10863
|
+
'zcaron': '\u017E',
|
|
10864
|
+
'zcy': '\u0437',
|
|
10865
|
+
'zdot': '\u017C',
|
|
10866
|
+
'zeta': '\u03B6',
|
|
10867
|
+
'zfr': '\uD835\uDD37',
|
|
10868
|
+
'zhcy': '\u0436',
|
|
10869
|
+
'zigrarr': '\u21DD',
|
|
10870
|
+
'zopf': '\uD835\uDD6B',
|
|
10871
|
+
'zscr': '\uD835\uDCCF',
|
|
10872
|
+
'zwj': '\u200D',
|
|
10873
|
+
'zwnj': '\u200C'
|
|
10874
|
+
};
|
|
10875
|
+
// The &ngsp; pseudo-entity is denoting a space. see:
|
|
10876
|
+
// https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart
|
|
10877
|
+
const NGSP_UNICODE = '\uE500';
|
|
10878
|
+
NAMED_ENTITIES['ngsp'] = NGSP_UNICODE;
|
|
10879
|
+
|
|
9000
10880
|
/**
|
|
9001
10881
|
* @license
|
|
9002
10882
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -9580,10 +11460,13 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
9580
11460
|
parts.push(this._readChar(true));
|
|
9581
11461
|
}
|
|
9582
11462
|
} while (!this._isTextEnd());
|
|
11463
|
+
// It is possible that an interpolation was started but not ended inside this text token.
|
|
11464
|
+
// Make sure that we reset the state of the lexer correctly.
|
|
11465
|
+
this._inInterpolation = false;
|
|
9583
11466
|
this._endToken([this._processCarriageReturns(parts.join(''))]);
|
|
9584
11467
|
}
|
|
9585
11468
|
_isTextEnd() {
|
|
9586
|
-
if (this.
|
|
11469
|
+
if (this._isTagStart() || this._cursor.peek() === $EOF) {
|
|
9587
11470
|
return true;
|
|
9588
11471
|
}
|
|
9589
11472
|
if (this._tokenizeIcu && !this._inInterpolation) {
|
|
@@ -9598,6 +11481,24 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
9598
11481
|
}
|
|
9599
11482
|
return false;
|
|
9600
11483
|
}
|
|
11484
|
+
/**
|
|
11485
|
+
* Returns true if the current cursor is pointing to the start of a tag
|
|
11486
|
+
* (opening/closing/comments/cdata/etc).
|
|
11487
|
+
*/
|
|
11488
|
+
_isTagStart() {
|
|
11489
|
+
if (this._cursor.peek() === $LT) {
|
|
11490
|
+
// We assume that `<` followed by whitespace is not the start of an HTML element.
|
|
11491
|
+
const tmp = this._cursor.clone();
|
|
11492
|
+
tmp.advance();
|
|
11493
|
+
// If the next character is alphabetic, ! nor / then it is a tag start
|
|
11494
|
+
const code = tmp.peek();
|
|
11495
|
+
if (($a <= code && code <= $z) || ($A <= code && code <= $Z) ||
|
|
11496
|
+
code === $SLASH || code === $BANG) {
|
|
11497
|
+
return true;
|
|
11498
|
+
}
|
|
11499
|
+
}
|
|
11500
|
+
return false;
|
|
11501
|
+
}
|
|
9601
11502
|
_readUntil(char) {
|
|
9602
11503
|
const start = this._cursor.clone();
|
|
9603
11504
|
this._attemptUntilChar(char);
|
|
@@ -12805,11 +14706,23 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
12805
14706
|
if (!this.consumeOptionalCharacter($RBRACE)) {
|
|
12806
14707
|
this.rbracesExpected++;
|
|
12807
14708
|
do {
|
|
14709
|
+
const keyStart = this.inputIndex;
|
|
12808
14710
|
const quoted = this.next.isString();
|
|
12809
14711
|
const key = this.expectIdentifierOrKeywordOrString();
|
|
12810
14712
|
keys.push({ key, quoted });
|
|
12811
|
-
|
|
12812
|
-
|
|
14713
|
+
// Properties with quoted keys can't use the shorthand syntax.
|
|
14714
|
+
if (quoted) {
|
|
14715
|
+
this.expectCharacter($COLON);
|
|
14716
|
+
values.push(this.parsePipe());
|
|
14717
|
+
}
|
|
14718
|
+
else if (this.consumeOptionalCharacter($COLON)) {
|
|
14719
|
+
values.push(this.parsePipe());
|
|
14720
|
+
}
|
|
14721
|
+
else {
|
|
14722
|
+
const span = this.span(keyStart);
|
|
14723
|
+
const sourceSpan = this.sourceSpan(keyStart);
|
|
14724
|
+
values.push(new PropertyRead(span, sourceSpan, sourceSpan, new ImplicitReceiver(span, sourceSpan), key));
|
|
14725
|
+
}
|
|
12813
14726
|
} while (this.consumeOptionalCharacter($COMMA));
|
|
12814
14727
|
this.rbracesExpected--;
|
|
12815
14728
|
this.expectCharacter($RBRACE);
|
|
@@ -15372,6 +17285,10 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
15372
17285
|
notifyImplicitReceiverUse() {
|
|
15373
17286
|
this._bindingScope.notifyImplicitReceiverUse();
|
|
15374
17287
|
}
|
|
17288
|
+
// LocalResolver
|
|
17289
|
+
maybeRestoreView() {
|
|
17290
|
+
this._bindingScope.maybeRestoreView();
|
|
17291
|
+
}
|
|
15375
17292
|
i18nTranslate(message, params = {}, ref, transformFn) {
|
|
15376
17293
|
const _ref = ref || this.i18nGenerateMainBlockVar();
|
|
15377
17294
|
// Closure Compiler requires const names to start with `MSG_` but disallows any other const to
|
|
@@ -16464,14 +18381,13 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
16464
18381
|
lhs: value.lhs,
|
|
16465
18382
|
declareLocalCallback: value.declareLocalCallback,
|
|
16466
18383
|
declare: false,
|
|
16467
|
-
priority: value.priority
|
|
16468
|
-
localRef: value.localRef
|
|
18384
|
+
priority: value.priority
|
|
16469
18385
|
};
|
|
16470
18386
|
// Cache the value locally.
|
|
16471
18387
|
this.map.set(name, value);
|
|
16472
18388
|
// Possibly generate a shared context var
|
|
16473
18389
|
this.maybeGenerateSharedContextVar(value);
|
|
16474
|
-
this.maybeRestoreView(
|
|
18390
|
+
this.maybeRestoreView();
|
|
16475
18391
|
}
|
|
16476
18392
|
if (value.declareLocalCallback && !value.declare) {
|
|
16477
18393
|
value.declare = true;
|
|
@@ -16511,7 +18427,6 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
16511
18427
|
declare: false,
|
|
16512
18428
|
declareLocalCallback: declareLocalCallback,
|
|
16513
18429
|
priority: priority,
|
|
16514
|
-
localRef: localRef || false
|
|
16515
18430
|
});
|
|
16516
18431
|
return this;
|
|
16517
18432
|
}
|
|
@@ -16575,22 +18490,20 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
16575
18490
|
},
|
|
16576
18491
|
declare: false,
|
|
16577
18492
|
priority: 2 /* SHARED_CONTEXT */,
|
|
16578
|
-
localRef: false
|
|
16579
18493
|
});
|
|
16580
18494
|
}
|
|
16581
18495
|
getComponentProperty(name) {
|
|
16582
18496
|
const componentValue = this.map.get(SHARED_CONTEXT_KEY + 0);
|
|
16583
18497
|
componentValue.declare = true;
|
|
16584
|
-
this.maybeRestoreView(
|
|
18498
|
+
this.maybeRestoreView();
|
|
16585
18499
|
return componentValue.lhs.prop(name);
|
|
16586
18500
|
}
|
|
16587
|
-
maybeRestoreView(
|
|
16588
|
-
//
|
|
16589
|
-
//
|
|
16590
|
-
//
|
|
16591
|
-
//
|
|
16592
|
-
|
|
16593
|
-
if (this.isListenerScope() && (retrievalLevel < this.bindingLevel || localRefLookup)) {
|
|
18501
|
+
maybeRestoreView() {
|
|
18502
|
+
// View restoration is required for listener instructions inside embedded views, because
|
|
18503
|
+
// they only run in creation mode and they can have references to the context object.
|
|
18504
|
+
// If the context object changes in update mode, the reference will be incorrect, because
|
|
18505
|
+
// it was established during creation.
|
|
18506
|
+
if (this.isListenerScope()) {
|
|
16594
18507
|
if (!this.parent.restoreViewVariable) {
|
|
16595
18508
|
// parent saves variable to generate a shared `const $s$ = getCurrentView();` instruction
|
|
16596
18509
|
this.parent.restoreViewVariable = variable(this.parent.freshReferenceName());
|
|
@@ -17557,13 +19470,13 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
17557
19470
|
* found in the LICENSE file at https://angular.io/license
|
|
17558
19471
|
*/
|
|
17559
19472
|
/**
|
|
17560
|
-
* An interface for retrieving documents by URL that the compiler uses
|
|
17561
|
-
*
|
|
19473
|
+
* An interface for retrieving documents by URL that the compiler uses to
|
|
19474
|
+
* load templates.
|
|
19475
|
+
*
|
|
19476
|
+
* This is an abstract class, rather than an interface, so that it can be used
|
|
19477
|
+
* as injection token.
|
|
17562
19478
|
*/
|
|
17563
19479
|
class ResourceLoader {
|
|
17564
|
-
get(url) {
|
|
17565
|
-
return '';
|
|
17566
|
-
}
|
|
17567
19480
|
}
|
|
17568
19481
|
|
|
17569
19482
|
/**
|
|
@@ -18012,7 +19925,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
18012
19925
|
* Use of this source code is governed by an MIT-style license that can be
|
|
18013
19926
|
* found in the LICENSE file at https://angular.io/license
|
|
18014
19927
|
*/
|
|
18015
|
-
const VERSION$1 = new Version('12.1.
|
|
19928
|
+
const VERSION$1 = new Version('12.1.3');
|
|
18016
19929
|
|
|
18017
19930
|
/**
|
|
18018
19931
|
* @license
|
|
@@ -18143,7 +20056,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
18143
20056
|
const { directives, bindings, references } = DirectiveBinder.apply(target.template, this.directiveMatcher);
|
|
18144
20057
|
// Finally, run the TemplateBinder to bind references, variables, and other entities within the
|
|
18145
20058
|
// template. This extracts all the metadata that doesn't depend on directive matching.
|
|
18146
|
-
const { expressions, symbols, nestingLevel, usedPipes } = TemplateBinder.
|
|
20059
|
+
const { expressions, symbols, nestingLevel, usedPipes } = TemplateBinder.applyWithScope(target.template, scope);
|
|
18147
20060
|
return new R3BoundTarget(target, directives, bindings, references, expressions, symbols, nestingLevel, templateEntities, usedPipes);
|
|
18148
20061
|
}
|
|
18149
20062
|
}
|
|
@@ -18420,7 +20333,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
18420
20333
|
* nesting level (how many levels deep within the template structure the `Template` is), starting
|
|
18421
20334
|
* at 1.
|
|
18422
20335
|
*/
|
|
18423
|
-
static
|
|
20336
|
+
static applyWithScope(template, scope) {
|
|
18424
20337
|
const expressions = new Map();
|
|
18425
20338
|
const symbols = new Map();
|
|
18426
20339
|
const nestingLevel = new Map();
|
|
@@ -18651,7 +20564,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
18651
20564
|
function compileDeclareClassMetadata(metadata) {
|
|
18652
20565
|
const definitionMap = new DefinitionMap();
|
|
18653
20566
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
18654
|
-
definitionMap.set('version', literal('12.1.
|
|
20567
|
+
definitionMap.set('version', literal('12.1.3'));
|
|
18655
20568
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
18656
20569
|
definitionMap.set('type', metadata.type);
|
|
18657
20570
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -18691,7 +20604,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
18691
20604
|
function createDirectiveDefinitionMap(meta) {
|
|
18692
20605
|
const definitionMap = new DefinitionMap();
|
|
18693
20606
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
18694
|
-
definitionMap.set('version', literal('12.1.
|
|
20607
|
+
definitionMap.set('version', literal('12.1.3'));
|
|
18695
20608
|
// e.g. `type: MyDirective`
|
|
18696
20609
|
definitionMap.set('type', meta.internalType);
|
|
18697
20610
|
// e.g. `selector: 'some-dir'`
|
|
@@ -18908,7 +20821,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
18908
20821
|
function compileDeclareFactoryFunction(meta) {
|
|
18909
20822
|
const definitionMap = new DefinitionMap();
|
|
18910
20823
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
18911
|
-
definitionMap.set('version', literal('12.1.
|
|
20824
|
+
definitionMap.set('version', literal('12.1.3'));
|
|
18912
20825
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
18913
20826
|
definitionMap.set('type', meta.internalType);
|
|
18914
20827
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -18950,7 +20863,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
18950
20863
|
function createInjectableDefinitionMap(meta) {
|
|
18951
20864
|
const definitionMap = new DefinitionMap();
|
|
18952
20865
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
18953
|
-
definitionMap.set('version', literal('12.1.
|
|
20866
|
+
definitionMap.set('version', literal('12.1.3'));
|
|
18954
20867
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
18955
20868
|
definitionMap.set('type', meta.internalType);
|
|
18956
20869
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -19029,7 +20942,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
19029
20942
|
function createInjectorDefinitionMap(meta) {
|
|
19030
20943
|
const definitionMap = new DefinitionMap();
|
|
19031
20944
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
19032
|
-
definitionMap.set('version', literal('12.1.
|
|
20945
|
+
definitionMap.set('version', literal('12.1.3'));
|
|
19033
20946
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
19034
20947
|
definitionMap.set('type', meta.internalType);
|
|
19035
20948
|
definitionMap.set('providers', meta.providers);
|
|
@@ -19066,7 +20979,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
19066
20979
|
function createNgModuleDefinitionMap(meta) {
|
|
19067
20980
|
const definitionMap = new DefinitionMap();
|
|
19068
20981
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
19069
|
-
definitionMap.set('version', literal('12.1.
|
|
20982
|
+
definitionMap.set('version', literal('12.1.3'));
|
|
19070
20983
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
19071
20984
|
definitionMap.set('type', meta.internalType);
|
|
19072
20985
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -19124,7 +21037,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
19124
21037
|
function createPipeDefinitionMap(meta) {
|
|
19125
21038
|
const definitionMap = new DefinitionMap();
|
|
19126
21039
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$6));
|
|
19127
|
-
definitionMap.set('version', literal('12.1.
|
|
21040
|
+
definitionMap.set('version', literal('12.1.3'));
|
|
19128
21041
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
19129
21042
|
// e.g. `type: MyPipe`
|
|
19130
21043
|
definitionMap.set('type', meta.internalType);
|
|
@@ -19156,7 +21069,7 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
19156
21069
|
* Use of this source code is governed by an MIT-style license that can be
|
|
19157
21070
|
* found in the LICENSE file at https://angular.io/license
|
|
19158
21071
|
*/
|
|
19159
|
-
const VERSION$2 = new Version('12.1.
|
|
21072
|
+
const VERSION$2 = new Version('12.1.3');
|
|
19160
21073
|
|
|
19161
21074
|
/**
|
|
19162
21075
|
* @license
|
|
@@ -21576,6 +23489,9 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
21576
23489
|
}
|
|
21577
23490
|
return { node, from: importDecl.moduleSpecifier.text };
|
|
21578
23491
|
}
|
|
23492
|
+
else if (ts$1.isModuleDeclaration(decl)) {
|
|
23493
|
+
return { node, from: null };
|
|
23494
|
+
}
|
|
21579
23495
|
else {
|
|
21580
23496
|
throw new Error(`Unknown import type?`);
|
|
21581
23497
|
}
|
|
@@ -22426,8 +24342,11 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
22426
24342
|
static fromComplexFunctionCall(node, fn) {
|
|
22427
24343
|
return new DynamicValue(node, fn, 6 /* COMPLEX_FUNCTION_CALL */);
|
|
22428
24344
|
}
|
|
24345
|
+
static fromDynamicType(node) {
|
|
24346
|
+
return new DynamicValue(node, undefined, 7 /* DYNAMIC_TYPE */);
|
|
24347
|
+
}
|
|
22429
24348
|
static fromUnknown(node) {
|
|
22430
|
-
return new DynamicValue(node, undefined,
|
|
24349
|
+
return new DynamicValue(node, undefined, 8 /* UNKNOWN */);
|
|
22431
24350
|
}
|
|
22432
24351
|
isFromDynamicInput() {
|
|
22433
24352
|
return this.code === 0 /* DYNAMIC_INPUT */;
|
|
@@ -22450,8 +24369,11 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
22450
24369
|
isFromComplexFunctionCall() {
|
|
22451
24370
|
return this.code === 6 /* COMPLEX_FUNCTION_CALL */;
|
|
22452
24371
|
}
|
|
24372
|
+
isFromDynamicType() {
|
|
24373
|
+
return this.code === 7 /* DYNAMIC_TYPE */;
|
|
24374
|
+
}
|
|
22453
24375
|
isFromUnknown() {
|
|
22454
|
-
return this.code ===
|
|
24376
|
+
return this.code === 8 /* UNKNOWN */;
|
|
22455
24377
|
}
|
|
22456
24378
|
accept(visitor) {
|
|
22457
24379
|
switch (this.code) {
|
|
@@ -22469,7 +24391,9 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
22469
24391
|
return visitor.visitInvalidExpressionType(this);
|
|
22470
24392
|
case 6 /* COMPLEX_FUNCTION_CALL */:
|
|
22471
24393
|
return visitor.visitComplexFunctionCall(this);
|
|
22472
|
-
case 7 /*
|
|
24394
|
+
case 7 /* DYNAMIC_TYPE */:
|
|
24395
|
+
return visitor.visitDynamicType(this);
|
|
24396
|
+
case 8 /* UNKNOWN */:
|
|
22473
24397
|
return visitor.visitUnknown(this);
|
|
22474
24398
|
}
|
|
22475
24399
|
}
|
|
@@ -22637,6 +24561,9 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
22637
24561
|
visitUnknownIdentifier(value) {
|
|
22638
24562
|
return [makeRelatedInformation(value.node, 'Unknown reference.')];
|
|
22639
24563
|
}
|
|
24564
|
+
visitDynamicType(value) {
|
|
24565
|
+
return [makeRelatedInformation(value.node, 'Dynamic type.')];
|
|
24566
|
+
}
|
|
22640
24567
|
visitUnsupportedSyntax(value) {
|
|
22641
24568
|
return [makeRelatedInformation(value.node, 'This syntax is not supported.')];
|
|
22642
24569
|
}
|
|
@@ -23126,6 +25053,23 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
23126
25053
|
return this.visitExpression(value, context);
|
|
23127
25054
|
}
|
|
23128
25055
|
else if (isVariableDeclarationDeclared(node)) {
|
|
25056
|
+
// If the declaration has a literal type that can be statically reduced to a value, resolve to
|
|
25057
|
+
// that value. If not, the historical behavior for variable declarations is to return a
|
|
25058
|
+
// `Reference` to the variable, as the consumer could use it in a context where knowing its
|
|
25059
|
+
// static value is not necessary.
|
|
25060
|
+
//
|
|
25061
|
+
// Arguably, since the value cannot be statically determined, we should return a
|
|
25062
|
+
// `DynamicValue`. This returns a `Reference` because it's the same behavior as before
|
|
25063
|
+
// `visitType` was introduced.
|
|
25064
|
+
//
|
|
25065
|
+
// TODO(zarend): investigate switching to a `DynamicValue` and verify this won't break any
|
|
25066
|
+
// use cases, especially in ngcc
|
|
25067
|
+
if (node.type !== undefined) {
|
|
25068
|
+
const evaluatedType = this.visitType(node.type, context);
|
|
25069
|
+
if (!(evaluatedType instanceof DynamicValue)) {
|
|
25070
|
+
return evaluatedType;
|
|
25071
|
+
}
|
|
25072
|
+
}
|
|
23129
25073
|
return this.getReference(node, context);
|
|
23130
25074
|
}
|
|
23131
25075
|
else {
|
|
@@ -23275,10 +25219,11 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
23275
25219
|
if (expr === null) {
|
|
23276
25220
|
return DynamicValue.fromDynamicInput(node, DynamicValue.fromExternalReference(node.expression, lhs));
|
|
23277
25221
|
}
|
|
23278
|
-
// If the
|
|
23279
|
-
//
|
|
23280
|
-
if (
|
|
23281
|
-
|
|
25222
|
+
// If the foreign expression occurs in a different file, then assume that the owning module
|
|
25223
|
+
// of the call expression should also be used for the resolved foreign expression.
|
|
25224
|
+
if (expr.getSourceFile() !== node.expression.getSourceFile() &&
|
|
25225
|
+
lhs.bestGuessOwningModule !== null) {
|
|
25226
|
+
context = Object.assign(Object.assign({}, context), { absoluteModuleName: lhs.bestGuessOwningModule.specifier, resolutionContext: lhs.bestGuessOwningModule.resolutionContext });
|
|
23282
25227
|
}
|
|
23283
25228
|
return this.visitFfrExpression(expr, context);
|
|
23284
25229
|
}
|
|
@@ -23483,6 +25428,25 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
23483
25428
|
getReference(node, context) {
|
|
23484
25429
|
return new Reference$1(node, owningModule(context));
|
|
23485
25430
|
}
|
|
25431
|
+
visitType(node, context) {
|
|
25432
|
+
if (ts$1.isLiteralTypeNode(node)) {
|
|
25433
|
+
return this.visitExpression(node.literal, context);
|
|
25434
|
+
}
|
|
25435
|
+
else if (ts$1.isTupleTypeNode(node)) {
|
|
25436
|
+
return this.visitTupleType(node, context);
|
|
25437
|
+
}
|
|
25438
|
+
else if (ts$1.isNamedTupleMember(node)) {
|
|
25439
|
+
return this.visitType(node.type, context);
|
|
25440
|
+
}
|
|
25441
|
+
return DynamicValue.fromDynamicType(node);
|
|
25442
|
+
}
|
|
25443
|
+
visitTupleType(node, context) {
|
|
25444
|
+
const res = [];
|
|
25445
|
+
for (const elem of node.elements) {
|
|
25446
|
+
res.push(this.visitType(elem, context));
|
|
25447
|
+
}
|
|
25448
|
+
return res;
|
|
25449
|
+
}
|
|
23486
25450
|
}
|
|
23487
25451
|
function isFunctionOrMethodReference(ref) {
|
|
23488
25452
|
return ts$1.isFunctionDeclaration(ref.node) || ts$1.isMethodDeclaration(ref.node) ||
|
|
@@ -24558,6 +26522,24 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
24558
26522
|
}
|
|
24559
26523
|
}
|
|
24560
26524
|
}
|
|
26525
|
+
xi18n(bundle) {
|
|
26526
|
+
for (const clazz of this.classes.keys()) {
|
|
26527
|
+
const record = this.classes.get(clazz);
|
|
26528
|
+
for (const trait of record.traits) {
|
|
26529
|
+
if (trait.state !== TraitState.Analyzed && trait.state !== TraitState.Resolved) {
|
|
26530
|
+
// Skip traits that haven't been analyzed successfully.
|
|
26531
|
+
continue;
|
|
26532
|
+
}
|
|
26533
|
+
else if (trait.handler.xi18n === undefined) {
|
|
26534
|
+
// Skip traits that don't support xi18n.
|
|
26535
|
+
continue;
|
|
26536
|
+
}
|
|
26537
|
+
if (trait.analysis !== null) {
|
|
26538
|
+
trait.handler.xi18n(bundle, clazz, trait.analysis);
|
|
26539
|
+
}
|
|
26540
|
+
}
|
|
26541
|
+
}
|
|
26542
|
+
}
|
|
24561
26543
|
updateResources(clazz) {
|
|
24562
26544
|
if (!this.reflector.isClass(clazz) || !this.classes.has(clazz)) {
|
|
24563
26545
|
return;
|
|
@@ -25730,13 +27712,6 @@ define(['exports', 'typescript/lib/tsserverlibrary', 'os', 'typescript', 'fs', '
|
|
|
25730
27712
|
*/
|
|
25731
27713
|
this._after = new Map();
|
|
25732
27714
|
}
|
|
25733
|
-
/**
|
|
25734
|
-
* Visit a class declaration, returning at least the transformed declaration and optionally other
|
|
25735
|
-
* nodes to insert before the declaration.
|
|
25736
|
-
*/
|
|
25737
|
-
visitClassDeclaration(node) {
|
|
25738
|
-
return { node };
|
|
25739
|
-
}
|
|
25740
27715
|
_visitListEntryNode(node, visitor) {
|
|
25741
27716
|
const result = visitor(node);
|
|
25742
27717
|
if (result.before !== undefined) {
|
|
@@ -28688,6 +30663,10 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
28688
30663
|
}
|
|
28689
30664
|
return { data };
|
|
28690
30665
|
}
|
|
30666
|
+
xi18n(ctx, node, analysis) {
|
|
30667
|
+
var _a;
|
|
30668
|
+
ctx.updateFromTemplate(analysis.template.content, analysis.template.declaration.resolvedTemplateUrl, (_a = analysis.template.interpolationConfig) !== null && _a !== void 0 ? _a : DEFAULT_INTERPOLATION_CONFIG);
|
|
30669
|
+
}
|
|
28691
30670
|
updateResources(node, analysis) {
|
|
28692
30671
|
const containingFile = node.getSourceFile().fileName;
|
|
28693
30672
|
// If the template is external, re-parse it.
|
|
@@ -29579,6 +31558,13 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
29579
31558
|
class CycleAnalyzer {
|
|
29580
31559
|
constructor(importGraph) {
|
|
29581
31560
|
this.importGraph = importGraph;
|
|
31561
|
+
/**
|
|
31562
|
+
* Cycle detection is requested with the same `from` source file for all used directives and pipes
|
|
31563
|
+
* within a component, which makes it beneficial to cache the results as long as the `from` source
|
|
31564
|
+
* file has not changed. This avoids visiting the import graph that is reachable from multiple
|
|
31565
|
+
* directives/pipes more than once.
|
|
31566
|
+
*/
|
|
31567
|
+
this.cachedResults = null;
|
|
29582
31568
|
}
|
|
29583
31569
|
/**
|
|
29584
31570
|
* Check for a cycle to be created in the `ts.Program` by adding an import between `from` and
|
|
@@ -29588,10 +31574,12 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
29588
31574
|
* otherwise.
|
|
29589
31575
|
*/
|
|
29590
31576
|
wouldCreateCycle(from, to) {
|
|
31577
|
+
// Try to reuse the cached results as long as the `from` source file is the same.
|
|
31578
|
+
if (this.cachedResults === null || this.cachedResults.from !== from) {
|
|
31579
|
+
this.cachedResults = new CycleResults(from, this.importGraph);
|
|
31580
|
+
}
|
|
29591
31581
|
// Import of 'from' -> 'to' is illegal if an edge 'to' -> 'from' already exists.
|
|
29592
|
-
return this.
|
|
29593
|
-
new Cycle(this.importGraph, from, to) :
|
|
29594
|
-
null;
|
|
31582
|
+
return this.cachedResults.wouldBeCyclic(to) ? new Cycle(this.importGraph, from, to) : null;
|
|
29595
31583
|
}
|
|
29596
31584
|
/**
|
|
29597
31585
|
* Record a synthetic import from `from` to `to`.
|
|
@@ -29600,9 +31588,73 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
29600
31588
|
* import graph for cycle creation.
|
|
29601
31589
|
*/
|
|
29602
31590
|
recordSyntheticImport(from, to) {
|
|
31591
|
+
this.cachedResults = null;
|
|
29603
31592
|
this.importGraph.addSyntheticImport(from, to);
|
|
29604
31593
|
}
|
|
29605
31594
|
}
|
|
31595
|
+
const NgCyclicResult = Symbol('NgCyclicResult');
|
|
31596
|
+
/**
|
|
31597
|
+
* Stores the results of cycle detection in a memory efficient manner. A symbol is attached to
|
|
31598
|
+
* source files that indicate what the cyclic analysis result is, as indicated by two markers that
|
|
31599
|
+
* are unique to this instance. This alleviates memory pressure in large import graphs, as each
|
|
31600
|
+
* execution is able to store its results in the same memory location (i.e. in the symbol
|
|
31601
|
+
* on the source file) as earlier executions.
|
|
31602
|
+
*/
|
|
31603
|
+
class CycleResults {
|
|
31604
|
+
constructor(from, importGraph) {
|
|
31605
|
+
this.from = from;
|
|
31606
|
+
this.importGraph = importGraph;
|
|
31607
|
+
this.cyclic = {};
|
|
31608
|
+
this.acyclic = {};
|
|
31609
|
+
}
|
|
31610
|
+
wouldBeCyclic(sf) {
|
|
31611
|
+
const cached = this.getCachedResult(sf);
|
|
31612
|
+
if (cached !== null) {
|
|
31613
|
+
// The result for this source file has already been computed, so return its result.
|
|
31614
|
+
return cached;
|
|
31615
|
+
}
|
|
31616
|
+
if (sf === this.from) {
|
|
31617
|
+
// We have reached the source file that we want to create an import from, which means that
|
|
31618
|
+
// doing so would create a cycle.
|
|
31619
|
+
return true;
|
|
31620
|
+
}
|
|
31621
|
+
// Assume for now that the file will be acyclic; this prevents infinite recursion in the case
|
|
31622
|
+
// that `sf` is visited again as part of an existing cycle in the graph.
|
|
31623
|
+
this.markAcyclic(sf);
|
|
31624
|
+
const imports = this.importGraph.importsOf(sf);
|
|
31625
|
+
for (const imported of imports) {
|
|
31626
|
+
if (this.wouldBeCyclic(imported)) {
|
|
31627
|
+
this.markCyclic(sf);
|
|
31628
|
+
return true;
|
|
31629
|
+
}
|
|
31630
|
+
}
|
|
31631
|
+
return false;
|
|
31632
|
+
}
|
|
31633
|
+
/**
|
|
31634
|
+
* Returns whether the source file is already known to be cyclic, or `null` if the result is not
|
|
31635
|
+
* yet known.
|
|
31636
|
+
*/
|
|
31637
|
+
getCachedResult(sf) {
|
|
31638
|
+
const result = sf[NgCyclicResult];
|
|
31639
|
+
if (result === this.cyclic) {
|
|
31640
|
+
return true;
|
|
31641
|
+
}
|
|
31642
|
+
else if (result === this.acyclic) {
|
|
31643
|
+
return false;
|
|
31644
|
+
}
|
|
31645
|
+
else {
|
|
31646
|
+
// Either the symbol is missing or its value does not correspond with one of the current
|
|
31647
|
+
// result markers. As such, the result is unknown.
|
|
31648
|
+
return null;
|
|
31649
|
+
}
|
|
31650
|
+
}
|
|
31651
|
+
markCyclic(sf) {
|
|
31652
|
+
sf[NgCyclicResult] = this.cyclic;
|
|
31653
|
+
}
|
|
31654
|
+
markAcyclic(sf) {
|
|
31655
|
+
sf[NgCyclicResult] = this.acyclic;
|
|
31656
|
+
}
|
|
31657
|
+
}
|
|
29606
31658
|
/**
|
|
29607
31659
|
* Represents an import cycle between `from` and `to` in the program.
|
|
29608
31660
|
*
|
|
@@ -29643,7 +31695,7 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
29643
31695
|
constructor(checker, perf) {
|
|
29644
31696
|
this.checker = checker;
|
|
29645
31697
|
this.perf = perf;
|
|
29646
|
-
this.
|
|
31698
|
+
this.imports = new Map();
|
|
29647
31699
|
}
|
|
29648
31700
|
/**
|
|
29649
31701
|
* List the direct (not transitive) imports of a given `ts.SourceFile`.
|
|
@@ -29651,27 +31703,10 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
29651
31703
|
* This operation is cached.
|
|
29652
31704
|
*/
|
|
29653
31705
|
importsOf(sf) {
|
|
29654
|
-
if (!this.
|
|
29655
|
-
this.
|
|
29656
|
-
}
|
|
29657
|
-
return this.map.get(sf);
|
|
29658
|
-
}
|
|
29659
|
-
/**
|
|
29660
|
-
* Lists the transitive imports of a given `ts.SourceFile`.
|
|
29661
|
-
*/
|
|
29662
|
-
transitiveImportsOf(sf) {
|
|
29663
|
-
const imports = new Set();
|
|
29664
|
-
this.transitiveImportsOfHelper(sf, imports);
|
|
29665
|
-
return imports;
|
|
29666
|
-
}
|
|
29667
|
-
transitiveImportsOfHelper(sf, results) {
|
|
29668
|
-
if (results.has(sf)) {
|
|
29669
|
-
return;
|
|
31706
|
+
if (!this.imports.has(sf)) {
|
|
31707
|
+
this.imports.set(sf, this.scanImports(sf));
|
|
29670
31708
|
}
|
|
29671
|
-
|
|
29672
|
-
this.importsOf(sf).forEach(imported => {
|
|
29673
|
-
this.transitiveImportsOfHelper(imported, results);
|
|
29674
|
-
});
|
|
31709
|
+
return this.imports.get(sf);
|
|
29675
31710
|
}
|
|
29676
31711
|
/**
|
|
29677
31712
|
* Find an import path from the `start` SourceFile to the `end` SourceFile.
|
|
@@ -29969,6 +32004,213 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
29969
32004
|
}
|
|
29970
32005
|
}
|
|
29971
32006
|
|
|
32007
|
+
/**
|
|
32008
|
+
* @license
|
|
32009
|
+
* Copyright Google LLC All Rights Reserved.
|
|
32010
|
+
*
|
|
32011
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
32012
|
+
* found in the LICENSE file at https://angular.io/license
|
|
32013
|
+
*/
|
|
32014
|
+
const NgOriginalFile = Symbol('NgOriginalFile');
|
|
32015
|
+
var UpdateMode;
|
|
32016
|
+
(function (UpdateMode) {
|
|
32017
|
+
/**
|
|
32018
|
+
* A complete update creates a completely new overlay of type-checking code on top of the user's
|
|
32019
|
+
* original program, which doesn't include type-checking code from previous calls to
|
|
32020
|
+
* `updateFiles`.
|
|
32021
|
+
*/
|
|
32022
|
+
UpdateMode[UpdateMode["Complete"] = 0] = "Complete";
|
|
32023
|
+
/**
|
|
32024
|
+
* An incremental update changes the contents of some files in the type-checking program without
|
|
32025
|
+
* reverting any prior changes.
|
|
32026
|
+
*/
|
|
32027
|
+
UpdateMode[UpdateMode["Incremental"] = 1] = "Incremental";
|
|
32028
|
+
})(UpdateMode || (UpdateMode = {}));
|
|
32029
|
+
|
|
32030
|
+
/**
|
|
32031
|
+
* @license
|
|
32032
|
+
* Copyright Google LLC All Rights Reserved.
|
|
32033
|
+
*
|
|
32034
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
32035
|
+
* found in the LICENSE file at https://angular.io/license
|
|
32036
|
+
*/
|
|
32037
|
+
/**
|
|
32038
|
+
* A `Symbol` which is used to patch extension data onto `ts.SourceFile`s.
|
|
32039
|
+
*/
|
|
32040
|
+
const NgExtension = Symbol('NgExtension');
|
|
32041
|
+
/**
|
|
32042
|
+
* Narrows a `ts.SourceFile` if it has an `NgExtension` property.
|
|
32043
|
+
*/
|
|
32044
|
+
function isExtended(sf) {
|
|
32045
|
+
return sf[NgExtension] !== undefined;
|
|
32046
|
+
}
|
|
32047
|
+
/**
|
|
32048
|
+
* Check whether `sf` is a shim `ts.SourceFile` (either a per-file shim or a top-level shim).
|
|
32049
|
+
*/
|
|
32050
|
+
function isShim(sf) {
|
|
32051
|
+
return isExtended(sf) && (sf[NgExtension].fileShim !== null || sf[NgExtension].isTopLevelShim);
|
|
32052
|
+
}
|
|
32053
|
+
|
|
32054
|
+
/**
|
|
32055
|
+
* @license
|
|
32056
|
+
* Copyright Google LLC All Rights Reserved.
|
|
32057
|
+
*
|
|
32058
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
32059
|
+
* found in the LICENSE file at https://angular.io/license
|
|
32060
|
+
*/
|
|
32061
|
+
const STRIP_NG_FACTORY = /(.*)NgFactory$/;
|
|
32062
|
+
function generatedFactoryTransform(factoryMap, importRewriter) {
|
|
32063
|
+
return (context) => {
|
|
32064
|
+
return (file) => {
|
|
32065
|
+
return transformFactorySourceFile(factoryMap, context, importRewriter, file);
|
|
32066
|
+
};
|
|
32067
|
+
};
|
|
32068
|
+
}
|
|
32069
|
+
function transformFactorySourceFile(factoryMap, context, importRewriter, file) {
|
|
32070
|
+
// If this is not a generated file, it won't have factory info associated with it.
|
|
32071
|
+
if (!factoryMap.has(file.fileName)) {
|
|
32072
|
+
// Don't transform non-generated code.
|
|
32073
|
+
return file;
|
|
32074
|
+
}
|
|
32075
|
+
const { moduleSymbols, sourceFilePath } = factoryMap.get(file.fileName);
|
|
32076
|
+
// Not every exported factory statement is valid. They were generated before the program was
|
|
32077
|
+
// analyzed, and before ngtsc knew which symbols were actually NgModules. factoryMap contains
|
|
32078
|
+
// that knowledge now, so this transform filters the statement list and removes exported factories
|
|
32079
|
+
// that aren't actually factories.
|
|
32080
|
+
//
|
|
32081
|
+
// This could leave the generated factory file empty. To prevent this (it causes issues with
|
|
32082
|
+
// closure compiler) a 'ɵNonEmptyModule' export was added when the factory shim was created.
|
|
32083
|
+
// Preserve that export if needed, and remove it otherwise.
|
|
32084
|
+
//
|
|
32085
|
+
// Additionally, an import to @angular/core is generated, but the current compilation unit could
|
|
32086
|
+
// actually be @angular/core, in which case such an import is invalid and should be replaced with
|
|
32087
|
+
// the proper path to access Ivy symbols in core.
|
|
32088
|
+
// The filtered set of statements.
|
|
32089
|
+
const transformedStatements = [];
|
|
32090
|
+
// The statement identified as the ɵNonEmptyModule export.
|
|
32091
|
+
let nonEmptyExport = null;
|
|
32092
|
+
// Extracted identifiers which refer to import statements from @angular/core.
|
|
32093
|
+
const coreImportIdentifiers = new Set();
|
|
32094
|
+
// Consider all the statements.
|
|
32095
|
+
for (const stmt of file.statements) {
|
|
32096
|
+
// Look for imports to @angular/core.
|
|
32097
|
+
if (ts$1.isImportDeclaration(stmt) && ts$1.isStringLiteral(stmt.moduleSpecifier) &&
|
|
32098
|
+
stmt.moduleSpecifier.text === '@angular/core') {
|
|
32099
|
+
// Update the import path to point to the correct file using the ImportRewriter.
|
|
32100
|
+
const rewrittenModuleSpecifier = importRewriter.rewriteSpecifier('@angular/core', sourceFilePath);
|
|
32101
|
+
if (rewrittenModuleSpecifier !== stmt.moduleSpecifier.text) {
|
|
32102
|
+
transformedStatements.push(ts$1.updateImportDeclaration(stmt, stmt.decorators, stmt.modifiers, stmt.importClause, ts$1.createStringLiteral(rewrittenModuleSpecifier)));
|
|
32103
|
+
// Record the identifier by which this imported module goes, so references to its symbols
|
|
32104
|
+
// can be discovered later.
|
|
32105
|
+
if (stmt.importClause !== undefined && stmt.importClause.namedBindings !== undefined &&
|
|
32106
|
+
ts$1.isNamespaceImport(stmt.importClause.namedBindings)) {
|
|
32107
|
+
coreImportIdentifiers.add(stmt.importClause.namedBindings.name.text);
|
|
32108
|
+
}
|
|
32109
|
+
}
|
|
32110
|
+
else {
|
|
32111
|
+
transformedStatements.push(stmt);
|
|
32112
|
+
}
|
|
32113
|
+
}
|
|
32114
|
+
else if (ts$1.isVariableStatement(stmt) && stmt.declarationList.declarations.length === 1) {
|
|
32115
|
+
const decl = stmt.declarationList.declarations[0];
|
|
32116
|
+
// If this is the ɵNonEmptyModule export, then save it for later.
|
|
32117
|
+
if (ts$1.isIdentifier(decl.name)) {
|
|
32118
|
+
if (decl.name.text === 'ɵNonEmptyModule') {
|
|
32119
|
+
nonEmptyExport = stmt;
|
|
32120
|
+
continue;
|
|
32121
|
+
}
|
|
32122
|
+
// Otherwise, check if this export is a factory for a known NgModule, and retain it if so.
|
|
32123
|
+
const match = STRIP_NG_FACTORY.exec(decl.name.text);
|
|
32124
|
+
const module = match ? moduleSymbols.get(match[1]) : null;
|
|
32125
|
+
if (module) {
|
|
32126
|
+
// If the module can be tree shaken, then the factory should be wrapped in a
|
|
32127
|
+
// `noSideEffects()` call which tells Closure to treat the expression as pure, allowing
|
|
32128
|
+
// it to be removed if the result is not used.
|
|
32129
|
+
//
|
|
32130
|
+
// `NgModule`s with an `id` property will be lazy loaded. Google-internal lazy loading
|
|
32131
|
+
// infra relies on a side effect from the `new NgModuleFactory()` call, which registers
|
|
32132
|
+
// the module globally. Because of this, we **cannot** tree shake any module which has
|
|
32133
|
+
// an `id` property. Doing so would cause lazy loaded modules to never be registered.
|
|
32134
|
+
const moduleIsTreeShakable = !module.hasId;
|
|
32135
|
+
const newStmt = !moduleIsTreeShakable ?
|
|
32136
|
+
stmt :
|
|
32137
|
+
updateInitializers(stmt, (init) => init ? wrapInNoSideEffects(init) : undefined);
|
|
32138
|
+
transformedStatements.push(newStmt);
|
|
32139
|
+
}
|
|
32140
|
+
}
|
|
32141
|
+
else {
|
|
32142
|
+
// Leave the statement alone, as it can't be understood.
|
|
32143
|
+
transformedStatements.push(stmt);
|
|
32144
|
+
}
|
|
32145
|
+
}
|
|
32146
|
+
else {
|
|
32147
|
+
// Include non-variable statements (imports, etc).
|
|
32148
|
+
transformedStatements.push(stmt);
|
|
32149
|
+
}
|
|
32150
|
+
}
|
|
32151
|
+
// Check whether the empty module export is still needed.
|
|
32152
|
+
if (!transformedStatements.some(ts$1.isVariableStatement) && nonEmptyExport !== null) {
|
|
32153
|
+
// If the resulting file has no factories, include an empty export to
|
|
32154
|
+
// satisfy closure compiler.
|
|
32155
|
+
transformedStatements.push(nonEmptyExport);
|
|
32156
|
+
}
|
|
32157
|
+
file = ts$1.updateSourceFileNode(file, transformedStatements);
|
|
32158
|
+
// If any imports to @angular/core were detected and rewritten (which happens when compiling
|
|
32159
|
+
// @angular/core), go through the SourceFile and rewrite references to symbols imported from core.
|
|
32160
|
+
if (coreImportIdentifiers.size > 0) {
|
|
32161
|
+
const visit = (node) => {
|
|
32162
|
+
node = ts$1.visitEachChild(node, child => visit(child), context);
|
|
32163
|
+
// Look for expressions of the form "i.s" where 'i' is a detected name for an @angular/core
|
|
32164
|
+
// import that was changed above. Rewrite 's' using the ImportResolver.
|
|
32165
|
+
if (ts$1.isPropertyAccessExpression(node) && ts$1.isIdentifier(node.expression) &&
|
|
32166
|
+
coreImportIdentifiers.has(node.expression.text)) {
|
|
32167
|
+
// This is an import of a symbol from @angular/core. Transform it with the importRewriter.
|
|
32168
|
+
const rewrittenSymbol = importRewriter.rewriteSymbol(node.name.text, '@angular/core');
|
|
32169
|
+
if (rewrittenSymbol !== node.name.text) {
|
|
32170
|
+
const updated = ts$1.updatePropertyAccess(node, node.expression, ts$1.createIdentifier(rewrittenSymbol));
|
|
32171
|
+
node = updated;
|
|
32172
|
+
}
|
|
32173
|
+
}
|
|
32174
|
+
return node;
|
|
32175
|
+
};
|
|
32176
|
+
file = visit(file);
|
|
32177
|
+
}
|
|
32178
|
+
return file;
|
|
32179
|
+
}
|
|
32180
|
+
/**
|
|
32181
|
+
* Wraps the given expression in a call to `ɵnoSideEffects()`, which tells
|
|
32182
|
+
* Closure we don't care about the side effects of this expression and it should
|
|
32183
|
+
* be treated as "pure". Closure is free to tree shake this expression if its
|
|
32184
|
+
* result is not used.
|
|
32185
|
+
*
|
|
32186
|
+
* Example: Takes `1 + 2` and returns `i0.ɵnoSideEffects(() => 1 + 2)`.
|
|
32187
|
+
*/
|
|
32188
|
+
function wrapInNoSideEffects(expr) {
|
|
32189
|
+
const noSideEffects = ts$1.createPropertyAccess(ts$1.createIdentifier('i0'), 'ɵnoSideEffects');
|
|
32190
|
+
return ts$1.createCall(noSideEffects,
|
|
32191
|
+
/* typeArguments */ [],
|
|
32192
|
+
/* arguments */
|
|
32193
|
+
[
|
|
32194
|
+
ts$1.createFunctionExpression(
|
|
32195
|
+
/* modifiers */ [],
|
|
32196
|
+
/* asteriskToken */ undefined,
|
|
32197
|
+
/* name */ undefined,
|
|
32198
|
+
/* typeParameters */ [],
|
|
32199
|
+
/* parameters */ [],
|
|
32200
|
+
/* type */ undefined,
|
|
32201
|
+
/* body */ ts$1.createBlock([
|
|
32202
|
+
ts$1.createReturn(expr),
|
|
32203
|
+
])),
|
|
32204
|
+
]);
|
|
32205
|
+
}
|
|
32206
|
+
/**
|
|
32207
|
+
* Clones and updates the initializers for a given statement to use the new
|
|
32208
|
+
* expression provided. Does not mutate the input statement.
|
|
32209
|
+
*/
|
|
32210
|
+
function updateInitializers(stmt, update) {
|
|
32211
|
+
return ts$1.updateVariableStatement(stmt, stmt.modifiers, ts$1.updateVariableDeclarationList(stmt.declarationList, stmt.declarationList.declarations.map((decl) => ts$1.updateVariableDeclaration(decl, decl.name, decl.type, update(decl.initializer)))));
|
|
32212
|
+
}
|
|
32213
|
+
|
|
29972
32214
|
/**
|
|
29973
32215
|
* @license
|
|
29974
32216
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -30172,11 +32414,11 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
30172
32414
|
break;
|
|
30173
32415
|
}
|
|
30174
32416
|
const oldVersions = priorAnalysis.versions;
|
|
30175
|
-
const oldFilesArray = oldProgram.getSourceFiles().map(
|
|
32417
|
+
const oldFilesArray = oldProgram.getSourceFiles().map(toOriginalSourceFile);
|
|
30176
32418
|
const oldFiles = new Set(oldFilesArray);
|
|
30177
32419
|
const deletedTsFiles = new Set(oldFilesArray.map(sf => absoluteFromSourceFile(sf)));
|
|
30178
32420
|
for (const possiblyRedirectedNewFile of program.getSourceFiles()) {
|
|
30179
|
-
const sf =
|
|
32421
|
+
const sf = toOriginalSourceFile(possiblyRedirectedNewFile);
|
|
30180
32422
|
const sfPath = absoluteFromSourceFile(sf);
|
|
30181
32423
|
// Since we're seeing a file in the incoming program with this name, it can't have been
|
|
30182
32424
|
// deleted.
|
|
@@ -30366,6 +32608,31 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
30366
32608
|
return this.step.priorState.emitted.has(sfPath);
|
|
30367
32609
|
}
|
|
30368
32610
|
}
|
|
32611
|
+
/**
|
|
32612
|
+
* To accurately detect whether a source file was affected during an incremental rebuild, the
|
|
32613
|
+
* "original" source file needs to be consistently used.
|
|
32614
|
+
*
|
|
32615
|
+
* First, TypeScript may have created source file redirects when declaration files of the same
|
|
32616
|
+
* version of a library are included multiple times. The non-redirected source file should be used
|
|
32617
|
+
* to detect changes, as otherwise the redirected source files cause a mismatch when compared to
|
|
32618
|
+
* a prior program.
|
|
32619
|
+
*
|
|
32620
|
+
* Second, the program that is used for template type checking may contain mutated source files, if
|
|
32621
|
+
* inline type constructors or inline template type-check blocks had to be used. Such source files
|
|
32622
|
+
* store their original, non-mutated source file from the original program in a symbol. For
|
|
32623
|
+
* computing the affected files in an incremental build this original source file should be used, as
|
|
32624
|
+
* the mutated source file would always be considered affected.
|
|
32625
|
+
*/
|
|
32626
|
+
function toOriginalSourceFile(sf) {
|
|
32627
|
+
const unredirectedSf = toUnredirectedSourceFile(sf);
|
|
32628
|
+
const originalFile = unredirectedSf[NgOriginalFile];
|
|
32629
|
+
if (originalFile !== undefined) {
|
|
32630
|
+
return originalFile;
|
|
32631
|
+
}
|
|
32632
|
+
else {
|
|
32633
|
+
return unredirectedSf;
|
|
32634
|
+
}
|
|
32635
|
+
}
|
|
30369
32636
|
|
|
30370
32637
|
/**
|
|
30371
32638
|
* @license
|
|
@@ -32063,190 +34330,6 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
32063
34330
|
}
|
|
32064
34331
|
}
|
|
32065
34332
|
|
|
32066
|
-
/**
|
|
32067
|
-
* @license
|
|
32068
|
-
* Copyright Google LLC All Rights Reserved.
|
|
32069
|
-
*
|
|
32070
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
32071
|
-
* found in the LICENSE file at https://angular.io/license
|
|
32072
|
-
*/
|
|
32073
|
-
/**
|
|
32074
|
-
* A `Symbol` which is used to patch extension data onto `ts.SourceFile`s.
|
|
32075
|
-
*/
|
|
32076
|
-
const NgExtension = Symbol('NgExtension');
|
|
32077
|
-
/**
|
|
32078
|
-
* Narrows a `ts.SourceFile` if it has an `NgExtension` property.
|
|
32079
|
-
*/
|
|
32080
|
-
function isExtended(sf) {
|
|
32081
|
-
return sf[NgExtension] !== undefined;
|
|
32082
|
-
}
|
|
32083
|
-
/**
|
|
32084
|
-
* Check whether `sf` is a shim `ts.SourceFile` (either a per-file shim or a top-level shim).
|
|
32085
|
-
*/
|
|
32086
|
-
function isShim(sf) {
|
|
32087
|
-
return isExtended(sf) && (sf[NgExtension].fileShim !== null || sf[NgExtension].isTopLevelShim);
|
|
32088
|
-
}
|
|
32089
|
-
|
|
32090
|
-
/**
|
|
32091
|
-
* @license
|
|
32092
|
-
* Copyright Google LLC All Rights Reserved.
|
|
32093
|
-
*
|
|
32094
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
32095
|
-
* found in the LICENSE file at https://angular.io/license
|
|
32096
|
-
*/
|
|
32097
|
-
const STRIP_NG_FACTORY = /(.*)NgFactory$/;
|
|
32098
|
-
function generatedFactoryTransform(factoryMap, importRewriter) {
|
|
32099
|
-
return (context) => {
|
|
32100
|
-
return (file) => {
|
|
32101
|
-
return transformFactorySourceFile(factoryMap, context, importRewriter, file);
|
|
32102
|
-
};
|
|
32103
|
-
};
|
|
32104
|
-
}
|
|
32105
|
-
function transformFactorySourceFile(factoryMap, context, importRewriter, file) {
|
|
32106
|
-
// If this is not a generated file, it won't have factory info associated with it.
|
|
32107
|
-
if (!factoryMap.has(file.fileName)) {
|
|
32108
|
-
// Don't transform non-generated code.
|
|
32109
|
-
return file;
|
|
32110
|
-
}
|
|
32111
|
-
const { moduleSymbols, sourceFilePath } = factoryMap.get(file.fileName);
|
|
32112
|
-
// Not every exported factory statement is valid. They were generated before the program was
|
|
32113
|
-
// analyzed, and before ngtsc knew which symbols were actually NgModules. factoryMap contains
|
|
32114
|
-
// that knowledge now, so this transform filters the statement list and removes exported factories
|
|
32115
|
-
// that aren't actually factories.
|
|
32116
|
-
//
|
|
32117
|
-
// This could leave the generated factory file empty. To prevent this (it causes issues with
|
|
32118
|
-
// closure compiler) a 'ɵNonEmptyModule' export was added when the factory shim was created.
|
|
32119
|
-
// Preserve that export if needed, and remove it otherwise.
|
|
32120
|
-
//
|
|
32121
|
-
// Additionally, an import to @angular/core is generated, but the current compilation unit could
|
|
32122
|
-
// actually be @angular/core, in which case such an import is invalid and should be replaced with
|
|
32123
|
-
// the proper path to access Ivy symbols in core.
|
|
32124
|
-
// The filtered set of statements.
|
|
32125
|
-
const transformedStatements = [];
|
|
32126
|
-
// The statement identified as the ɵNonEmptyModule export.
|
|
32127
|
-
let nonEmptyExport = null;
|
|
32128
|
-
// Extracted identifiers which refer to import statements from @angular/core.
|
|
32129
|
-
const coreImportIdentifiers = new Set();
|
|
32130
|
-
// Consider all the statements.
|
|
32131
|
-
for (const stmt of file.statements) {
|
|
32132
|
-
// Look for imports to @angular/core.
|
|
32133
|
-
if (ts$1.isImportDeclaration(stmt) && ts$1.isStringLiteral(stmt.moduleSpecifier) &&
|
|
32134
|
-
stmt.moduleSpecifier.text === '@angular/core') {
|
|
32135
|
-
// Update the import path to point to the correct file using the ImportRewriter.
|
|
32136
|
-
const rewrittenModuleSpecifier = importRewriter.rewriteSpecifier('@angular/core', sourceFilePath);
|
|
32137
|
-
if (rewrittenModuleSpecifier !== stmt.moduleSpecifier.text) {
|
|
32138
|
-
transformedStatements.push(ts$1.updateImportDeclaration(stmt, stmt.decorators, stmt.modifiers, stmt.importClause, ts$1.createStringLiteral(rewrittenModuleSpecifier)));
|
|
32139
|
-
// Record the identifier by which this imported module goes, so references to its symbols
|
|
32140
|
-
// can be discovered later.
|
|
32141
|
-
if (stmt.importClause !== undefined && stmt.importClause.namedBindings !== undefined &&
|
|
32142
|
-
ts$1.isNamespaceImport(stmt.importClause.namedBindings)) {
|
|
32143
|
-
coreImportIdentifiers.add(stmt.importClause.namedBindings.name.text);
|
|
32144
|
-
}
|
|
32145
|
-
}
|
|
32146
|
-
else {
|
|
32147
|
-
transformedStatements.push(stmt);
|
|
32148
|
-
}
|
|
32149
|
-
}
|
|
32150
|
-
else if (ts$1.isVariableStatement(stmt) && stmt.declarationList.declarations.length === 1) {
|
|
32151
|
-
const decl = stmt.declarationList.declarations[0];
|
|
32152
|
-
// If this is the ɵNonEmptyModule export, then save it for later.
|
|
32153
|
-
if (ts$1.isIdentifier(decl.name)) {
|
|
32154
|
-
if (decl.name.text === 'ɵNonEmptyModule') {
|
|
32155
|
-
nonEmptyExport = stmt;
|
|
32156
|
-
continue;
|
|
32157
|
-
}
|
|
32158
|
-
// Otherwise, check if this export is a factory for a known NgModule, and retain it if so.
|
|
32159
|
-
const match = STRIP_NG_FACTORY.exec(decl.name.text);
|
|
32160
|
-
const module = match ? moduleSymbols.get(match[1]) : null;
|
|
32161
|
-
if (module) {
|
|
32162
|
-
// If the module can be tree shaken, then the factory should be wrapped in a
|
|
32163
|
-
// `noSideEffects()` call which tells Closure to treat the expression as pure, allowing
|
|
32164
|
-
// it to be removed if the result is not used.
|
|
32165
|
-
//
|
|
32166
|
-
// `NgModule`s with an `id` property will be lazy loaded. Google-internal lazy loading
|
|
32167
|
-
// infra relies on a side effect from the `new NgModuleFactory()` call, which registers
|
|
32168
|
-
// the module globally. Because of this, we **cannot** tree shake any module which has
|
|
32169
|
-
// an `id` property. Doing so would cause lazy loaded modules to never be registered.
|
|
32170
|
-
const moduleIsTreeShakable = !module.hasId;
|
|
32171
|
-
const newStmt = !moduleIsTreeShakable ?
|
|
32172
|
-
stmt :
|
|
32173
|
-
updateInitializers(stmt, (init) => init ? wrapInNoSideEffects(init) : undefined);
|
|
32174
|
-
transformedStatements.push(newStmt);
|
|
32175
|
-
}
|
|
32176
|
-
}
|
|
32177
|
-
else {
|
|
32178
|
-
// Leave the statement alone, as it can't be understood.
|
|
32179
|
-
transformedStatements.push(stmt);
|
|
32180
|
-
}
|
|
32181
|
-
}
|
|
32182
|
-
else {
|
|
32183
|
-
// Include non-variable statements (imports, etc).
|
|
32184
|
-
transformedStatements.push(stmt);
|
|
32185
|
-
}
|
|
32186
|
-
}
|
|
32187
|
-
// Check whether the empty module export is still needed.
|
|
32188
|
-
if (!transformedStatements.some(ts$1.isVariableStatement) && nonEmptyExport !== null) {
|
|
32189
|
-
// If the resulting file has no factories, include an empty export to
|
|
32190
|
-
// satisfy closure compiler.
|
|
32191
|
-
transformedStatements.push(nonEmptyExport);
|
|
32192
|
-
}
|
|
32193
|
-
file = ts$1.updateSourceFileNode(file, transformedStatements);
|
|
32194
|
-
// If any imports to @angular/core were detected and rewritten (which happens when compiling
|
|
32195
|
-
// @angular/core), go through the SourceFile and rewrite references to symbols imported from core.
|
|
32196
|
-
if (coreImportIdentifiers.size > 0) {
|
|
32197
|
-
const visit = (node) => {
|
|
32198
|
-
node = ts$1.visitEachChild(node, child => visit(child), context);
|
|
32199
|
-
// Look for expressions of the form "i.s" where 'i' is a detected name for an @angular/core
|
|
32200
|
-
// import that was changed above. Rewrite 's' using the ImportResolver.
|
|
32201
|
-
if (ts$1.isPropertyAccessExpression(node) && ts$1.isIdentifier(node.expression) &&
|
|
32202
|
-
coreImportIdentifiers.has(node.expression.text)) {
|
|
32203
|
-
// This is an import of a symbol from @angular/core. Transform it with the importRewriter.
|
|
32204
|
-
const rewrittenSymbol = importRewriter.rewriteSymbol(node.name.text, '@angular/core');
|
|
32205
|
-
if (rewrittenSymbol !== node.name.text) {
|
|
32206
|
-
const updated = ts$1.updatePropertyAccess(node, node.expression, ts$1.createIdentifier(rewrittenSymbol));
|
|
32207
|
-
node = updated;
|
|
32208
|
-
}
|
|
32209
|
-
}
|
|
32210
|
-
return node;
|
|
32211
|
-
};
|
|
32212
|
-
file = visit(file);
|
|
32213
|
-
}
|
|
32214
|
-
return file;
|
|
32215
|
-
}
|
|
32216
|
-
/**
|
|
32217
|
-
* Wraps the given expression in a call to `ɵnoSideEffects()`, which tells
|
|
32218
|
-
* Closure we don't care about the side effects of this expression and it should
|
|
32219
|
-
* be treated as "pure". Closure is free to tree shake this expression if its
|
|
32220
|
-
* result is not used.
|
|
32221
|
-
*
|
|
32222
|
-
* Example: Takes `1 + 2` and returns `i0.ɵnoSideEffects(() => 1 + 2)`.
|
|
32223
|
-
*/
|
|
32224
|
-
function wrapInNoSideEffects(expr) {
|
|
32225
|
-
const noSideEffects = ts$1.createPropertyAccess(ts$1.createIdentifier('i0'), 'ɵnoSideEffects');
|
|
32226
|
-
return ts$1.createCall(noSideEffects,
|
|
32227
|
-
/* typeArguments */ [],
|
|
32228
|
-
/* arguments */
|
|
32229
|
-
[
|
|
32230
|
-
ts$1.createFunctionExpression(
|
|
32231
|
-
/* modifiers */ [],
|
|
32232
|
-
/* asteriskToken */ undefined,
|
|
32233
|
-
/* name */ undefined,
|
|
32234
|
-
/* typeParameters */ [],
|
|
32235
|
-
/* parameters */ [],
|
|
32236
|
-
/* type */ undefined,
|
|
32237
|
-
/* body */ ts$1.createBlock([
|
|
32238
|
-
ts$1.createReturn(expr),
|
|
32239
|
-
])),
|
|
32240
|
-
]);
|
|
32241
|
-
}
|
|
32242
|
-
/**
|
|
32243
|
-
* Clones and updates the initializers for a given statement to use the new
|
|
32244
|
-
* expression provided. Does not mutate the input statement.
|
|
32245
|
-
*/
|
|
32246
|
-
function updateInitializers(stmt, update) {
|
|
32247
|
-
return ts$1.updateVariableStatement(stmt, stmt.modifiers, ts$1.updateVariableDeclarationList(stmt.declarationList, stmt.declarationList.declarations.map((decl) => ts$1.updateVariableDeclaration(decl, decl.name, decl.type, update(decl.initializer)))));
|
|
32248
|
-
}
|
|
32249
|
-
|
|
32250
34333
|
/**
|
|
32251
34334
|
* @license
|
|
32252
34335
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -32361,28 +34444,6 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
32361
34444
|
decl.initializer.text.endsWith(IVY_SWITCH_PRE_SUFFIX));
|
|
32362
34445
|
}
|
|
32363
34446
|
|
|
32364
|
-
/**
|
|
32365
|
-
* @license
|
|
32366
|
-
* Copyright Google LLC All Rights Reserved.
|
|
32367
|
-
*
|
|
32368
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
32369
|
-
* found in the LICENSE file at https://angular.io/license
|
|
32370
|
-
*/
|
|
32371
|
-
var UpdateMode;
|
|
32372
|
-
(function (UpdateMode) {
|
|
32373
|
-
/**
|
|
32374
|
-
* A complete update creates a completely new overlay of type-checking code on top of the user's
|
|
32375
|
-
* original program, which doesn't include type-checking code from previous calls to
|
|
32376
|
-
* `updateFiles`.
|
|
32377
|
-
*/
|
|
32378
|
-
UpdateMode[UpdateMode["Complete"] = 0] = "Complete";
|
|
32379
|
-
/**
|
|
32380
|
-
* An incremental update changes the contents of some files in the type-checking program without
|
|
32381
|
-
* reverting any prior changes.
|
|
32382
|
-
*/
|
|
32383
|
-
UpdateMode[UpdateMode["Incremental"] = 1] = "Incremental";
|
|
32384
|
-
})(UpdateMode || (UpdateMode = {}));
|
|
32385
|
-
|
|
32386
34447
|
/**
|
|
32387
34448
|
* @license
|
|
32388
34449
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -33097,6 +35158,7 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33097
35158
|
* Use of this source code is governed by an MIT-style license that can be
|
|
33098
35159
|
* found in the LICENSE file at https://angular.io/license
|
|
33099
35160
|
*/
|
|
35161
|
+
const INELIGIBLE = {};
|
|
33100
35162
|
/**
|
|
33101
35163
|
* Determines whether the provided type can be emitted, which means that it can be safely emitted
|
|
33102
35164
|
* into a different location.
|
|
@@ -33108,13 +35170,29 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33108
35170
|
function canEmitType(type, resolver) {
|
|
33109
35171
|
return canEmitTypeWorker(type);
|
|
33110
35172
|
function canEmitTypeWorker(type) {
|
|
33111
|
-
return
|
|
33112
|
-
|
|
33113
|
-
|
|
33114
|
-
|
|
33115
|
-
|
|
33116
|
-
|
|
33117
|
-
|
|
35173
|
+
return visitNode(type) !== INELIGIBLE;
|
|
35174
|
+
}
|
|
35175
|
+
// To determine whether a type can be emitted, we have to recursively look through all type nodes.
|
|
35176
|
+
// If an unsupported type node is found at any position within the type, then the `INELIGIBLE`
|
|
35177
|
+
// constant is returned to stop the recursive walk as the type as a whole cannot be emitted in
|
|
35178
|
+
// that case. Otherwise, the result of visiting all child nodes determines the result. If no
|
|
35179
|
+
// ineligible type reference node is found then the walk returns `undefined`, indicating that
|
|
35180
|
+
// no type node was visited that could not be emitted.
|
|
35181
|
+
function visitNode(node) {
|
|
35182
|
+
// `import('module')` type nodes are not supported, as it may require rewriting the module
|
|
35183
|
+
// specifier which is currently not done.
|
|
35184
|
+
if (ts$1.isImportTypeNode(node)) {
|
|
35185
|
+
return INELIGIBLE;
|
|
35186
|
+
}
|
|
35187
|
+
// Emitting a type reference node in a different context requires that an import for the type
|
|
35188
|
+
// can be created. If a type reference node cannot be emitted, `INELIGIBLE` is returned to stop
|
|
35189
|
+
// the walk.
|
|
35190
|
+
if (ts$1.isTypeReferenceNode(node) && !canEmitTypeReference(node)) {
|
|
35191
|
+
return INELIGIBLE;
|
|
35192
|
+
}
|
|
35193
|
+
else {
|
|
35194
|
+
return ts$1.forEachChild(node, visitNode);
|
|
35195
|
+
}
|
|
33118
35196
|
}
|
|
33119
35197
|
function canEmitTypeReference(type) {
|
|
33120
35198
|
const reference = resolver(type);
|
|
@@ -33122,10 +35200,9 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33122
35200
|
if (reference === null) {
|
|
33123
35201
|
return false;
|
|
33124
35202
|
}
|
|
33125
|
-
// If the type is a reference
|
|
33126
|
-
|
|
33127
|
-
|
|
33128
|
-
return false;
|
|
35203
|
+
// If the type is a reference, consider the type to be eligible for emitting.
|
|
35204
|
+
if (reference instanceof Reference$1) {
|
|
35205
|
+
return true;
|
|
33129
35206
|
}
|
|
33130
35207
|
// The type can be emitted if either it does not have any type arguments, or all of them can be
|
|
33131
35208
|
// emitted.
|
|
@@ -33167,15 +35244,32 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33167
35244
|
this.emitReference = emitReference;
|
|
33168
35245
|
}
|
|
33169
35246
|
emitType(type) {
|
|
33170
|
-
|
|
33171
|
-
|
|
33172
|
-
|
|
33173
|
-
|
|
33174
|
-
|
|
33175
|
-
|
|
33176
|
-
|
|
33177
|
-
|
|
33178
|
-
|
|
35247
|
+
const typeReferenceTransformer = context => {
|
|
35248
|
+
const visitNode = (node) => {
|
|
35249
|
+
if (ts$1.isImportTypeNode(node)) {
|
|
35250
|
+
throw new Error('Unable to emit import type');
|
|
35251
|
+
}
|
|
35252
|
+
if (ts$1.isTypeReferenceNode(node)) {
|
|
35253
|
+
return this.emitTypeReference(node);
|
|
35254
|
+
}
|
|
35255
|
+
else if (ts$1.isLiteralExpression(node)) {
|
|
35256
|
+
// TypeScript would typically take the emit text for a literal expression from the source
|
|
35257
|
+
// file itself. As the type node is being emitted into a different file, however,
|
|
35258
|
+
// TypeScript would extract the literal text from the wrong source file. To mitigate this
|
|
35259
|
+
// issue the literal is cloned and explicitly marked as synthesized by setting its text
|
|
35260
|
+
// range to a negative range, forcing TypeScript to determine the node's literal text from
|
|
35261
|
+
// the synthesized node's text instead of the incorrect source file.
|
|
35262
|
+
const clone = ts$1.getMutableClone(node);
|
|
35263
|
+
ts$1.setTextRange(clone, { pos: -1, end: -1 });
|
|
35264
|
+
return clone;
|
|
35265
|
+
}
|
|
35266
|
+
else {
|
|
35267
|
+
return ts$1.visitEachChild(node, visitNode, context);
|
|
35268
|
+
}
|
|
35269
|
+
};
|
|
35270
|
+
return node => ts$1.visitNode(node, visitNode);
|
|
35271
|
+
};
|
|
35272
|
+
return ts$1.transform(type, [typeReferenceTransformer]).transformed[0];
|
|
33179
35273
|
}
|
|
33180
35274
|
emitTypeReference(type) {
|
|
33181
35275
|
// Determine the reference that the type corresponds with.
|
|
@@ -33191,9 +35285,6 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33191
35285
|
// Emit the type name.
|
|
33192
35286
|
let typeName = type.typeName;
|
|
33193
35287
|
if (reference instanceof Reference$1) {
|
|
33194
|
-
if (!reference.hasOwningModuleGuess) {
|
|
33195
|
-
throw new Error('A type reference to emit must be imported from an absolute module');
|
|
33196
|
-
}
|
|
33197
35288
|
const emittedType = this.emitReference(reference);
|
|
33198
35289
|
if (!ts$1.isTypeReferenceNode(emittedType)) {
|
|
33199
35290
|
throw new Error(`Expected TypeReferenceNode for emitted reference, got ${ts$1.SyntaxKind[emittedType.kind]}`);
|
|
@@ -33203,30 +35294,6 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33203
35294
|
return ts$1.updateTypeReferenceNode(type, typeName, typeArguments);
|
|
33204
35295
|
}
|
|
33205
35296
|
}
|
|
33206
|
-
function visitTypeNode(type, visitor) {
|
|
33207
|
-
if (ts$1.isTypeReferenceNode(type)) {
|
|
33208
|
-
return visitor.visitTypeReferenceNode(type);
|
|
33209
|
-
}
|
|
33210
|
-
else if (ts$1.isArrayTypeNode(type)) {
|
|
33211
|
-
return visitor.visitArrayTypeNode(type);
|
|
33212
|
-
}
|
|
33213
|
-
else if (ts$1.isLiteralTypeNode(type)) {
|
|
33214
|
-
return visitor.visitLiteralType(type);
|
|
33215
|
-
}
|
|
33216
|
-
switch (type.kind) {
|
|
33217
|
-
case ts$1.SyntaxKind.AnyKeyword:
|
|
33218
|
-
case ts$1.SyntaxKind.UnknownKeyword:
|
|
33219
|
-
case ts$1.SyntaxKind.NumberKeyword:
|
|
33220
|
-
case ts$1.SyntaxKind.ObjectKeyword:
|
|
33221
|
-
case ts$1.SyntaxKind.BooleanKeyword:
|
|
33222
|
-
case ts$1.SyntaxKind.StringKeyword:
|
|
33223
|
-
case ts$1.SyntaxKind.UndefinedKeyword:
|
|
33224
|
-
case ts$1.SyntaxKind.NullKeyword:
|
|
33225
|
-
return visitor.visitKeywordType(type);
|
|
33226
|
-
default:
|
|
33227
|
-
return visitor.visitOtherType(type);
|
|
33228
|
-
}
|
|
33229
|
-
}
|
|
33230
35297
|
|
|
33231
35298
|
/**
|
|
33232
35299
|
* @license
|
|
@@ -33253,12 +35320,15 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33253
35320
|
return true;
|
|
33254
35321
|
}
|
|
33255
35322
|
return this.typeParameters.every(typeParam => {
|
|
33256
|
-
|
|
33257
|
-
return true;
|
|
33258
|
-
}
|
|
33259
|
-
return canEmitType(typeParam.constraint, type => this.resolveTypeReference(type));
|
|
35323
|
+
return this.canEmitType(typeParam.constraint) && this.canEmitType(typeParam.default);
|
|
33260
35324
|
});
|
|
33261
35325
|
}
|
|
35326
|
+
canEmitType(type) {
|
|
35327
|
+
if (type === undefined) {
|
|
35328
|
+
return true;
|
|
35329
|
+
}
|
|
35330
|
+
return canEmitType(type, typeReference => this.resolveTypeReference(typeReference));
|
|
35331
|
+
}
|
|
33262
35332
|
/**
|
|
33263
35333
|
* Emits the type parameters using the provided emitter function for `Reference`s.
|
|
33264
35334
|
*/
|
|
@@ -33269,11 +35339,12 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33269
35339
|
const emitter = new TypeEmitter(type => this.resolveTypeReference(type), emitReference);
|
|
33270
35340
|
return this.typeParameters.map(typeParam => {
|
|
33271
35341
|
const constraint = typeParam.constraint !== undefined ? emitter.emitType(typeParam.constraint) : undefined;
|
|
35342
|
+
const defaultType = typeParam.default !== undefined ? emitter.emitType(typeParam.default) : undefined;
|
|
33272
35343
|
return ts$1.updateTypeParameterDeclaration(
|
|
33273
35344
|
/* node */ typeParam,
|
|
33274
35345
|
/* name */ typeParam.name,
|
|
33275
35346
|
/* constraint */ constraint,
|
|
33276
|
-
/* defaultType */
|
|
35347
|
+
/* defaultType */ defaultType);
|
|
33277
35348
|
});
|
|
33278
35349
|
}
|
|
33279
35350
|
resolveTypeReference(type) {
|
|
@@ -33296,8 +35367,16 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
33296
35367
|
resolutionContext: type.getSourceFile().fileName,
|
|
33297
35368
|
};
|
|
33298
35369
|
}
|
|
35370
|
+
// If no owning module is known, the reference needs to be exported to be able to emit an import
|
|
35371
|
+
// statement for it. If the declaration is not exported, null is returned to prevent emit.
|
|
35372
|
+
if (owningModule === null && !this.isStaticallyExported(declaration.node)) {
|
|
35373
|
+
return null;
|
|
35374
|
+
}
|
|
33299
35375
|
return new Reference$1(declaration.node, owningModule);
|
|
33300
35376
|
}
|
|
35377
|
+
isStaticallyExported(decl) {
|
|
35378
|
+
return isNamedClassDeclaration(decl) && this.reflector.isStaticallyExported(decl);
|
|
35379
|
+
}
|
|
33301
35380
|
isLocalTypeParameter(decl) {
|
|
33302
35381
|
// Checking for local type parameters only occurs during resolution of type parameters, so it is
|
|
33303
35382
|
// guaranteed that type parameters are present.
|
|
@@ -34877,7 +36956,7 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
34877
36956
|
}
|
|
34878
36957
|
/**
|
|
34879
36958
|
* A `TcbOp` which constructs an instance of a non-generic directive _without_ setting any of its
|
|
34880
|
-
* inputs. Inputs
|
|
36959
|
+
* inputs. Inputs are later set in the `TcbDirectiveInputsOp`. Type checking was found to be
|
|
34881
36960
|
* faster when done in this way as opposed to `TcbDirectiveCtorOp` which is only necessary when the
|
|
34882
36961
|
* directive is generic.
|
|
34883
36962
|
*
|
|
@@ -36489,7 +38568,10 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
36489
38568
|
for (const originalSf of this.opMap.keys()) {
|
|
36490
38569
|
const newText = this.transform(originalSf);
|
|
36491
38570
|
if (newText !== null) {
|
|
36492
|
-
updates.set(absoluteFromSourceFile(originalSf),
|
|
38571
|
+
updates.set(absoluteFromSourceFile(originalSf), {
|
|
38572
|
+
newText,
|
|
38573
|
+
originalFile: originalSf,
|
|
38574
|
+
});
|
|
36493
38575
|
}
|
|
36494
38576
|
}
|
|
36495
38577
|
// Then go through each input file that has pending code generation operations.
|
|
@@ -36505,7 +38587,12 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
36505
38587
|
path: pendingShimData.file.fileName,
|
|
36506
38588
|
templates: pendingShimData.templates,
|
|
36507
38589
|
});
|
|
36508
|
-
|
|
38590
|
+
const sfText = pendingShimData.file.render(false /* removeComments */);
|
|
38591
|
+
updates.set(pendingShimData.file.fileName, {
|
|
38592
|
+
newText: sfText,
|
|
38593
|
+
// Shim files do not have an associated original file.
|
|
38594
|
+
originalFile: null,
|
|
38595
|
+
});
|
|
36509
38596
|
}
|
|
36510
38597
|
}
|
|
36511
38598
|
return updates;
|
|
@@ -36871,7 +38958,24 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
36871
38958
|
}
|
|
36872
38959
|
getDirectiveMeta(host, directiveDeclaration) {
|
|
36873
38960
|
var _a;
|
|
36874
|
-
|
|
38961
|
+
let directives = this.templateData.boundTarget.getDirectivesOfNode(host);
|
|
38962
|
+
// `getDirectivesOfNode` will not return the directives intended for an element
|
|
38963
|
+
// on a microsyntax template, for example `<div *ngFor="let user of users;" dir>`,
|
|
38964
|
+
// the `dir` will be skipped, but it's needed in language service.
|
|
38965
|
+
const firstChild = host.children[0];
|
|
38966
|
+
if (firstChild instanceof Element) {
|
|
38967
|
+
const isMicrosyntaxTemplate = host instanceof Template &&
|
|
38968
|
+
sourceSpanEqual(firstChild.sourceSpan, host.sourceSpan);
|
|
38969
|
+
if (isMicrosyntaxTemplate) {
|
|
38970
|
+
const firstChildDirectives = this.templateData.boundTarget.getDirectivesOfNode(firstChild);
|
|
38971
|
+
if (firstChildDirectives !== null && directives !== null) {
|
|
38972
|
+
directives = directives.concat(firstChildDirectives);
|
|
38973
|
+
}
|
|
38974
|
+
else {
|
|
38975
|
+
directives = directives !== null && directives !== void 0 ? directives : firstChildDirectives;
|
|
38976
|
+
}
|
|
38977
|
+
}
|
|
38978
|
+
}
|
|
36875
38979
|
if (directives === null) {
|
|
36876
38980
|
return null;
|
|
36877
38981
|
}
|
|
@@ -37144,7 +39248,16 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
37144
39248
|
const withSpan = (expression instanceof PropertyWrite || expression instanceof MethodCall) ?
|
|
37145
39249
|
expression.nameSpan :
|
|
37146
39250
|
expression.sourceSpan;
|
|
37147
|
-
let node =
|
|
39251
|
+
let node = null;
|
|
39252
|
+
// Property reads in templates usually map to a `PropertyAccessExpression`
|
|
39253
|
+
// (e.g. `ctx.foo`) so try looking for one first.
|
|
39254
|
+
if (expression instanceof PropertyRead) {
|
|
39255
|
+
node = findFirstMatchingNode(this.typeCheckBlock, { withSpan, filter: ts$1.isPropertyAccessExpression });
|
|
39256
|
+
}
|
|
39257
|
+
// Otherwise fall back to searching for any AST node.
|
|
39258
|
+
if (node === null) {
|
|
39259
|
+
node = findFirstMatchingNode(this.typeCheckBlock, { withSpan, filter: anyNodeFilter });
|
|
39260
|
+
}
|
|
37148
39261
|
if (node === null) {
|
|
37149
39262
|
return null;
|
|
37150
39263
|
}
|
|
@@ -37218,6 +39331,13 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
37218
39331
|
}
|
|
37219
39332
|
}
|
|
37220
39333
|
}
|
|
39334
|
+
/** Filter predicate function that matches any AST node. */
|
|
39335
|
+
function anyNodeFilter(n) {
|
|
39336
|
+
return true;
|
|
39337
|
+
}
|
|
39338
|
+
function sourceSpanEqual(a, b) {
|
|
39339
|
+
return a.start.offset === b.start.offset && a.end.offset === b.end.offset;
|
|
39340
|
+
}
|
|
37221
39341
|
|
|
37222
39342
|
/**
|
|
37223
39343
|
* @license
|
|
@@ -38242,6 +40362,15 @@ Either add the @Injectable() decorator to '${provider.node.name
|
|
|
38242
40362
|
compilation.traitCompiler.index(context);
|
|
38243
40363
|
return generateAnalysis(context);
|
|
38244
40364
|
}
|
|
40365
|
+
/**
|
|
40366
|
+
* Collect i18n messages into the `Xi18nContext`.
|
|
40367
|
+
*/
|
|
40368
|
+
xi18n(ctx) {
|
|
40369
|
+
// Note that the 'resolve' phase is not strictly necessary for xi18n, but this is not currently
|
|
40370
|
+
// optimized.
|
|
40371
|
+
const compilation = this.ensureAnalyzed();
|
|
40372
|
+
compilation.traitCompiler.xi18n(ctx);
|
|
40373
|
+
}
|
|
38245
40374
|
ensureAnalyzed() {
|
|
38246
40375
|
if (this.compilation === null) {
|
|
38247
40376
|
this.analyzeSync();
|
|
@@ -39969,11 +42098,20 @@ https://v9.angular.io/guide/template-typecheck#template-type-checking`,
|
|
|
39969
42098
|
TargetNodeKind[TargetNodeKind["AttributeInValueContext"] = 6] = "AttributeInValueContext";
|
|
39970
42099
|
TargetNodeKind[TargetNodeKind["TwoWayBindingContext"] = 7] = "TwoWayBindingContext";
|
|
39971
42100
|
})(TargetNodeKind || (TargetNodeKind = {}));
|
|
42101
|
+
/**
|
|
42102
|
+
* Special marker AST that can be used when the cursor is within the `sourceSpan` but not
|
|
42103
|
+
* the key or value span of a node with key/value spans.
|
|
42104
|
+
*/
|
|
42105
|
+
class OutsideKeyValueMarkerAst extends AST {
|
|
42106
|
+
visit() {
|
|
42107
|
+
return null;
|
|
42108
|
+
}
|
|
42109
|
+
}
|
|
39972
42110
|
/**
|
|
39973
42111
|
* This special marker is added to the path when the cursor is within the sourceSpan but not the key
|
|
39974
42112
|
* or value span of a node with key/value spans.
|
|
39975
42113
|
*/
|
|
39976
|
-
const OUTSIDE_K_V_MARKER = new
|
|
42114
|
+
const OUTSIDE_K_V_MARKER = new OutsideKeyValueMarkerAst(new ParseSpan(-1, -1), new AbsoluteSourceSpan(-1, -1));
|
|
39977
42115
|
/**
|
|
39978
42116
|
* Return the template AST node or expression AST node that most accurately
|
|
39979
42117
|
* represents the node at the specified cursor `position`.
|
|
@@ -42405,7 +44543,7 @@ https://v9.angular.io/guide/template-typecheck#template-type-checking`,
|
|
|
42405
44543
|
return program;
|
|
42406
44544
|
},
|
|
42407
44545
|
updateFiles(contents) {
|
|
42408
|
-
for (const [fileName, newText] of contents) {
|
|
44546
|
+
for (const [fileName, { newText }] of contents) {
|
|
42409
44547
|
const scriptInfo = getOrCreateTypeCheckScriptInfo(project, fileName);
|
|
42410
44548
|
const snapshot = scriptInfo.getSnapshot();
|
|
42411
44549
|
const length = snapshot.getLength();
|