@shijiu/jsview 2.3.151-test.0 → 3.0.0-test.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dom/bin/jsview-dom-browser-engine-core.min.js +1 -1
  2. package/dom/bin/jsview-dom-browser-engine-modules.min.js +1 -1
  3. package/dom/bin/{jsview-dom-browser-forge.1493.9a36.wasm → jsview-dom-browser-forge.1760.0e35.wasm} +0 -0
  4. package/dom/bin/jsview-dom-browser-forge.min.js +1 -1
  5. package/dom/bin/jsview-dom-browser-forge.worker.min.js +1 -1
  6. package/dom/bin/jsview-dom-browser.min.js +1 -1
  7. package/dom/bin/jsview-dom-native.min.js +1 -1
  8. package/dom/bin/jsview-engine-js-native.min.js +1 -1
  9. package/dom/target_core_revision.mjs +2 -2
  10. package/loader/jsv-core-api/jsview-core-api-glue.js +10 -1
  11. package/loader/jsv-core-api/wasm/core-api.js +87 -2
  12. package/loader/jsv-core-api/wasm/wasm-extension.js +5 -0
  13. package/loader/jsview-loader.js +7 -0
  14. package/loader/jsview-main.mjs +2 -1
  15. package/loader/jsview.config.default.js +4 -0
  16. package/package.json +7 -5
  17. package/patches/@vitejs+plugin-vue+4.0.0.patch +51 -0
  18. package/patches/@vitejs+plugin-vue+6.0.6.patch +54 -0
  19. package/patches/@vue+compiler-dom+3.2.45.patch +22 -0
  20. package/patches/@vue+compiler-dom+3.6.0-beta.10.patch +22 -0
  21. package/patches/@vue+compiler-sfc+3.2.45.patch +1986 -0
  22. package/patches/@vue+compiler-sfc+3.6.0-beta.10.patch +69 -0
  23. package/patches/@vue+runtime-core+3.2.45.patch +353 -0
  24. package/patches/@vue+runtime-core+3.6.0-beta.10.patch +198 -0
  25. package/patches/@vue+runtime-dom+3.2.45.patch +81 -0
  26. package/patches/@vue+runtime-dom+3.6.0-beta.10.patch +47 -0
  27. package/patches/postcss-js+5.1.0.patch +20 -0
  28. package/patches/vite+4.0.0.patch +117 -0
  29. package/patches/vite+8.0.9.patch +77 -0
  30. package/patches/vue-router+4.1.6.patch +17 -0
  31. package/patches/vue-router+5.0.6.patch +0 -0
  32. package/{patches/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js → thirdparty/@vue/compiler-sfc/jsview-css-to-js.cjs} +15 -10
  33. package/{patches/node_modules/@vue/compiler-sfc/dist/jsview-style-checker.js → thirdparty/@vue/compiler-sfc/jsview-style-checker.cjs} +6 -1
  34. package/{patches/node_modules/@vue/compiler-sfc/dist/jsview-style-formator.cjs.js → thirdparty/@vue/compiler-sfc/jsview-style-formator.cjs} +3 -0
  35. package/thirdparty/@vue/runtime-core/jsview-render-break.mjs +201 -0
  36. package/thirdparty/vite/jsview-vite-extension.mjs +336 -0
  37. package/tools/jsview-build-zip.mjs +7 -2
  38. package/tools/jsview-common.mjs +17 -4
  39. package/tools/{jsview-logger.js → jsview-logger.cjs} +1 -1
  40. package/tools/jsview-post-build.mjs +55 -0
  41. package/tools/jsview-post-install.mjs +98 -110
  42. package/tools/jsview-run-tool.mjs +3 -6
  43. package/tools/jsview-vue-devtools.mjs +1 -1
  44. package/loader/jsview-react-main.js +0 -37
  45. package/loader/jsview-react-script-loader.js +0 -134
  46. package/patches/node_modules/@vitejs/plugin-react/dist/index.cjs +0 -520
  47. package/patches/node_modules/@vitejs/plugin-react/package.json +0 -55
  48. package/patches/node_modules/@vitejs/plugin-vue/dist/index.mjs +0 -2756
  49. package/patches/node_modules/@vitejs/plugin-vue/package.json +0 -51
  50. package/patches/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.js +0 -3152
  51. package/patches/node_modules/@vue/compiler-dom/package.json +0 -43
  52. package/patches/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +0 -17730
  53. package/patches/node_modules/@vue/compiler-sfc/package.json +0 -59
  54. package/patches/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +0 -8154
  55. package/patches/node_modules/@vue/runtime-core/package.json +0 -38
  56. package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.d.ts +0 -1531
  57. package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +0 -1740
  58. package/patches/node_modules/@vue/runtime-dom/package.json +0 -42
  59. package/patches/node_modules/postcss-js/objectifier.js +0 -94
  60. package/patches/node_modules/postcss-js/package.json +0 -42
  61. package/patches/node_modules/react-dev-utils/WebpackDevServerUtils.js +0 -450
  62. package/patches/node_modules/react-dev-utils/package.json +0 -88
  63. package/patches/node_modules/react-dom/cjs/react-dom.development.js +0 -29868
  64. package/patches/node_modules/react-dom/cjs/react-dom.production.min.js +0 -323
  65. package/patches/node_modules/react-dom/package.json +0 -62
  66. package/patches/node_modules/react-scripts/config/paths.js +0 -179
  67. package/patches/node_modules/react-scripts/config/webpack.config.js +0 -858
  68. package/patches/node_modules/react-scripts/package.json +0 -108
  69. package/patches/node_modules/vite/dist/node/chunks/dep-ed9cb113.js +0 -63182
  70. package/patches/node_modules/vite/dist/node/constants.js +0 -125
  71. package/patches/node_modules/vite/dist/node/jsview-vite-extension.js +0 -245
  72. package/patches/node_modules/vite/package.json +0 -153
  73. package/patches/node_modules/vue-router/dist/vue-router.mjs +0 -3613
  74. package/patches/node_modules/vue-router/package.json +0 -114
  75. package/patches/node_modules/webpack-dev-server/client/utils/reloadApp.js +0 -76
  76. package/patches/node_modules/webpack-dev-server/client/utils/sendMessage.js +0 -21
  77. package/patches/node_modules/webpack-dev-server/package.json +0 -141
  78. /package/patches/{node_modules/@originjs/vite-plugin-federation/1.3.4/@originjs+vite-plugin-federation+1.3.4.patch → @originjs+vite-plugin-federation+1.3.4.patch} +0 -0
@@ -1,3152 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var compilerCore = require('@vue/compiler-core');
6
- var shared = require('@vue/shared');
7
-
8
- const V_MODEL_RADIO = Symbol(`vModelRadio` );
9
- const V_MODEL_CHECKBOX = Symbol(`vModelCheckbox` );
10
- const V_MODEL_TEXT = Symbol(`vModelText` );
11
- const V_MODEL_SELECT = Symbol(`vModelSelect` );
12
- const V_MODEL_DYNAMIC = Symbol(`vModelDynamic` );
13
- const V_ON_WITH_MODIFIERS = Symbol(`vOnModifiersGuard` );
14
- const V_ON_WITH_KEYS = Symbol(`vOnKeysGuard` );
15
- const V_SHOW = Symbol(`vShow` );
16
- const TRANSITION = Symbol(`Transition` );
17
- const TRANSITION_GROUP = Symbol(`TransitionGroup` );
18
- compilerCore.registerRuntimeHelpers({
19
- [V_MODEL_RADIO]: `vModelRadio`,
20
- [V_MODEL_CHECKBOX]: `vModelCheckbox`,
21
- [V_MODEL_TEXT]: `vModelText`,
22
- [V_MODEL_SELECT]: `vModelSelect`,
23
- [V_MODEL_DYNAMIC]: `vModelDynamic`,
24
- [V_ON_WITH_MODIFIERS]: `withModifiers`,
25
- [V_ON_WITH_KEYS]: `withKeys`,
26
- [V_SHOW]: `vShow`,
27
- [TRANSITION]: `Transition`,
28
- [TRANSITION_GROUP]: `TransitionGroup`
29
- });
30
-
31
- var namedCharacterReferences = {
32
- GT: ">",
33
- gt: ">",
34
- LT: "<",
35
- lt: "<",
36
- "ac;": "∾",
37
- "af;": "⁡",
38
- AMP: "&",
39
- amp: "&",
40
- "ap;": "≈",
41
- "DD;": "ⅅ",
42
- "dd;": "ⅆ",
43
- deg: "°",
44
- "ee;": "ⅇ",
45
- "eg;": "⪚",
46
- "el;": "⪙",
47
- ETH: "Ð",
48
- eth: "ð",
49
- "gE;": "≧",
50
- "ge;": "≥",
51
- "Gg;": "⋙",
52
- "gg;": "≫",
53
- "gl;": "≷",
54
- "GT;": ">",
55
- "Gt;": "≫",
56
- "gt;": ">",
57
- "ic;": "⁣",
58
- "ii;": "ⅈ",
59
- "Im;": "ℑ",
60
- "in;": "∈",
61
- "it;": "⁢",
62
- "lE;": "≦",
63
- "le;": "≤",
64
- "lg;": "≶",
65
- "Ll;": "⋘",
66
- "ll;": "≪",
67
- "LT;": "<",
68
- "Lt;": "≪",
69
- "lt;": "<",
70
- "mp;": "∓",
71
- "Mu;": "Μ",
72
- "mu;": "μ",
73
- "ne;": "≠",
74
- "ni;": "∋",
75
- not: "¬",
76
- "Nu;": "Ν",
77
- "nu;": "ν",
78
- "Or;": "⩔",
79
- "or;": "∨",
80
- "oS;": "Ⓢ",
81
- "Pi;": "Π",
82
- "pi;": "π",
83
- "pm;": "±",
84
- "Pr;": "⪻",
85
- "pr;": "≺",
86
- "Re;": "ℜ",
87
- REG: "®",
88
- reg: "®",
89
- "rx;": "℞",
90
- "Sc;": "⪼",
91
- "sc;": "≻",
92
- shy: "­",
93
- uml: "¨",
94
- "wp;": "℘",
95
- "wr;": "≀",
96
- "Xi;": "Ξ",
97
- "xi;": "ξ",
98
- yen: "¥",
99
- "acd;": "∿",
100
- "acE;": "∾̳",
101
- "Acy;": "А",
102
- "acy;": "а",
103
- "Afr;": "𝔄",
104
- "afr;": "𝔞",
105
- "AMP;": "&",
106
- "amp;": "&",
107
- "And;": "⩓",
108
- "and;": "∧",
109
- "ang;": "∠",
110
- "apE;": "⩰",
111
- "ape;": "≊",
112
- "ast;": "*",
113
- Auml: "Ä",
114
- auml: "ä",
115
- "Bcy;": "Б",
116
- "bcy;": "б",
117
- "Bfr;": "𝔅",
118
- "bfr;": "𝔟",
119
- "bne;": "=⃥",
120
- "bot;": "⊥",
121
- "Cap;": "⋒",
122
- "cap;": "∩",
123
- cent: "¢",
124
- "Cfr;": "ℭ",
125
- "cfr;": "𝔠",
126
- "Chi;": "Χ",
127
- "chi;": "χ",
128
- "cir;": "○",
129
- COPY: "©",
130
- copy: "©",
131
- "Cup;": "⋓",
132
- "cup;": "∪",
133
- "Dcy;": "Д",
134
- "dcy;": "д",
135
- "deg;": "°",
136
- "Del;": "∇",
137
- "Dfr;": "𝔇",
138
- "dfr;": "𝔡",
139
- "die;": "¨",
140
- "div;": "÷",
141
- "Dot;": "¨",
142
- "dot;": "˙",
143
- "Ecy;": "Э",
144
- "ecy;": "э",
145
- "Efr;": "𝔈",
146
- "efr;": "𝔢",
147
- "egs;": "⪖",
148
- "ell;": "ℓ",
149
- "els;": "⪕",
150
- "ENG;": "Ŋ",
151
- "eng;": "ŋ",
152
- "Eta;": "Η",
153
- "eta;": "η",
154
- "ETH;": "Ð",
155
- "eth;": "ð",
156
- Euml: "Ë",
157
- euml: "ë",
158
- "Fcy;": "Ф",
159
- "fcy;": "ф",
160
- "Ffr;": "𝔉",
161
- "ffr;": "𝔣",
162
- "gap;": "⪆",
163
- "Gcy;": "Г",
164
- "gcy;": "г",
165
- "gEl;": "⪌",
166
- "gel;": "⋛",
167
- "geq;": "≥",
168
- "ges;": "⩾",
169
- "Gfr;": "𝔊",
170
- "gfr;": "𝔤",
171
- "ggg;": "⋙",
172
- "gla;": "⪥",
173
- "glE;": "⪒",
174
- "glj;": "⪤",
175
- "gnE;": "≩",
176
- "gne;": "⪈",
177
- "Hat;": "^",
178
- "Hfr;": "ℌ",
179
- "hfr;": "𝔥",
180
- "Icy;": "И",
181
- "icy;": "и",
182
- "iff;": "⇔",
183
- "Ifr;": "ℑ",
184
- "ifr;": "𝔦",
185
- "Int;": "∬",
186
- "int;": "∫",
187
- Iuml: "Ï",
188
- iuml: "ï",
189
- "Jcy;": "Й",
190
- "jcy;": "й",
191
- "Jfr;": "𝔍",
192
- "jfr;": "𝔧",
193
- "Kcy;": "К",
194
- "kcy;": "к",
195
- "Kfr;": "𝔎",
196
- "kfr;": "𝔨",
197
- "lap;": "⪅",
198
- "lat;": "⪫",
199
- "Lcy;": "Л",
200
- "lcy;": "л",
201
- "lEg;": "⪋",
202
- "leg;": "⋚",
203
- "leq;": "≤",
204
- "les;": "⩽",
205
- "Lfr;": "𝔏",
206
- "lfr;": "𝔩",
207
- "lgE;": "⪑",
208
- "lnE;": "≨",
209
- "lne;": "⪇",
210
- "loz;": "◊",
211
- "lrm;": "‎",
212
- "Lsh;": "↰",
213
- "lsh;": "↰",
214
- macr: "¯",
215
- "Map;": "⤅",
216
- "map;": "↦",
217
- "Mcy;": "М",
218
- "mcy;": "м",
219
- "Mfr;": "𝔐",
220
- "mfr;": "𝔪",
221
- "mho;": "℧",
222
- "mid;": "∣",
223
- "nap;": "≉",
224
- nbsp: " ",
225
- "Ncy;": "Н",
226
- "ncy;": "н",
227
- "Nfr;": "𝔑",
228
- "nfr;": "𝔫",
229
- "ngE;": "≧̸",
230
- "nge;": "≱",
231
- "nGg;": "⋙̸",
232
- "nGt;": "≫⃒",
233
- "ngt;": "≯",
234
- "nis;": "⋼",
235
- "niv;": "∋",
236
- "nlE;": "≦̸",
237
- "nle;": "≰",
238
- "nLl;": "⋘̸",
239
- "nLt;": "≪⃒",
240
- "nlt;": "≮",
241
- "Not;": "⫬",
242
- "not;": "¬",
243
- "npr;": "⊀",
244
- "nsc;": "⊁",
245
- "num;": "#",
246
- "Ocy;": "О",
247
- "ocy;": "о",
248
- "Ofr;": "𝔒",
249
- "ofr;": "𝔬",
250
- "ogt;": "⧁",
251
- "ohm;": "Ω",
252
- "olt;": "⧀",
253
- "ord;": "⩝",
254
- ordf: "ª",
255
- ordm: "º",
256
- "orv;": "⩛",
257
- Ouml: "Ö",
258
- ouml: "ö",
259
- "par;": "∥",
260
- para: "¶",
261
- "Pcy;": "П",
262
- "pcy;": "п",
263
- "Pfr;": "𝔓",
264
- "pfr;": "𝔭",
265
- "Phi;": "Φ",
266
- "phi;": "φ",
267
- "piv;": "ϖ",
268
- "prE;": "⪳",
269
- "pre;": "⪯",
270
- "Psi;": "Ψ",
271
- "psi;": "ψ",
272
- "Qfr;": "𝔔",
273
- "qfr;": "𝔮",
274
- QUOT: "\"",
275
- quot: "\"",
276
- "Rcy;": "Р",
277
- "rcy;": "р",
278
- "REG;": "®",
279
- "reg;": "®",
280
- "Rfr;": "ℜ",
281
- "rfr;": "𝔯",
282
- "Rho;": "Ρ",
283
- "rho;": "ρ",
284
- "rlm;": "‏",
285
- "Rsh;": "↱",
286
- "rsh;": "↱",
287
- "scE;": "⪴",
288
- "sce;": "⪰",
289
- "Scy;": "С",
290
- "scy;": "с",
291
- sect: "§",
292
- "Sfr;": "𝔖",
293
- "sfr;": "𝔰",
294
- "shy;": "­",
295
- "sim;": "∼",
296
- "smt;": "⪪",
297
- "sol;": "/",
298
- "squ;": "□",
299
- "Sub;": "⋐",
300
- "sub;": "⊂",
301
- "Sum;": "∑",
302
- "sum;": "∑",
303
- "Sup;": "⋑",
304
- "sup;": "⊃",
305
- sup1: "¹",
306
- sup2: "²",
307
- sup3: "³",
308
- "Tab;": "\t",
309
- "Tau;": "Τ",
310
- "tau;": "τ",
311
- "Tcy;": "Т",
312
- "tcy;": "т",
313
- "Tfr;": "𝔗",
314
- "tfr;": "𝔱",
315
- "top;": "⊤",
316
- "Ucy;": "У",
317
- "ucy;": "у",
318
- "Ufr;": "𝔘",
319
- "ufr;": "𝔲",
320
- "uml;": "¨",
321
- Uuml: "Ü",
322
- uuml: "ü",
323
- "Vcy;": "В",
324
- "vcy;": "в",
325
- "Vee;": "⋁",
326
- "vee;": "∨",
327
- "Vfr;": "𝔙",
328
- "vfr;": "𝔳",
329
- "Wfr;": "𝔚",
330
- "wfr;": "𝔴",
331
- "Xfr;": "𝔛",
332
- "xfr;": "𝔵",
333
- "Ycy;": "Ы",
334
- "ycy;": "ы",
335
- "yen;": "¥",
336
- "Yfr;": "𝔜",
337
- "yfr;": "𝔶",
338
- yuml: "ÿ",
339
- "Zcy;": "З",
340
- "zcy;": "з",
341
- "Zfr;": "ℨ",
342
- "zfr;": "𝔷",
343
- "zwj;": "‍",
344
- Acirc: "Â",
345
- acirc: "â",
346
- acute: "´",
347
- AElig: "Æ",
348
- aelig: "æ",
349
- "andd;": "⩜",
350
- "andv;": "⩚",
351
- "ange;": "⦤",
352
- "Aopf;": "𝔸",
353
- "aopf;": "𝕒",
354
- "apid;": "≋",
355
- "apos;": "'",
356
- Aring: "Å",
357
- aring: "å",
358
- "Ascr;": "𝒜",
359
- "ascr;": "𝒶",
360
- "Auml;": "Ä",
361
- "auml;": "ä",
362
- "Barv;": "⫧",
363
- "bbrk;": "⎵",
364
- "Beta;": "Β",
365
- "beta;": "β",
366
- "beth;": "ℶ",
367
- "bNot;": "⫭",
368
- "bnot;": "⌐",
369
- "Bopf;": "𝔹",
370
- "bopf;": "𝕓",
371
- "boxH;": "═",
372
- "boxh;": "─",
373
- "boxV;": "║",
374
- "boxv;": "│",
375
- "Bscr;": "ℬ",
376
- "bscr;": "𝒷",
377
- "bsim;": "∽",
378
- "bsol;": "\\",
379
- "bull;": "•",
380
- "bump;": "≎",
381
- "caps;": "∩︀",
382
- "Cdot;": "Ċ",
383
- "cdot;": "ċ",
384
- cedil: "¸",
385
- "cent;": "¢",
386
- "CHcy;": "Ч",
387
- "chcy;": "ч",
388
- "circ;": "ˆ",
389
- "cirE;": "⧃",
390
- "cire;": "≗",
391
- "comp;": "∁",
392
- "cong;": "≅",
393
- "Copf;": "ℂ",
394
- "copf;": "𝕔",
395
- "COPY;": "©",
396
- "copy;": "©",
397
- "Cscr;": "𝒞",
398
- "cscr;": "𝒸",
399
- "csub;": "⫏",
400
- "csup;": "⫐",
401
- "cups;": "∪︀",
402
- "Darr;": "↡",
403
- "dArr;": "⇓",
404
- "darr;": "↓",
405
- "dash;": "‐",
406
- "dHar;": "⥥",
407
- "diam;": "⋄",
408
- "DJcy;": "Ђ",
409
- "djcy;": "ђ",
410
- "Dopf;": "𝔻",
411
- "dopf;": "𝕕",
412
- "Dscr;": "𝒟",
413
- "dscr;": "𝒹",
414
- "DScy;": "Ѕ",
415
- "dscy;": "ѕ",
416
- "dsol;": "⧶",
417
- "dtri;": "▿",
418
- "DZcy;": "Џ",
419
- "dzcy;": "џ",
420
- "ecir;": "≖",
421
- Ecirc: "Ê",
422
- ecirc: "ê",
423
- "Edot;": "Ė",
424
- "eDot;": "≑",
425
- "edot;": "ė",
426
- "emsp;": " ",
427
- "ensp;": " ",
428
- "Eopf;": "𝔼",
429
- "eopf;": "𝕖",
430
- "epar;": "⋕",
431
- "epsi;": "ε",
432
- "Escr;": "ℰ",
433
- "escr;": "ℯ",
434
- "Esim;": "⩳",
435
- "esim;": "≂",
436
- "Euml;": "Ë",
437
- "euml;": "ë",
438
- "euro;": "€",
439
- "excl;": "!",
440
- "flat;": "♭",
441
- "fnof;": "ƒ",
442
- "Fopf;": "𝔽",
443
- "fopf;": "𝕗",
444
- "fork;": "⋔",
445
- "Fscr;": "ℱ",
446
- "fscr;": "𝒻",
447
- "Gdot;": "Ġ",
448
- "gdot;": "ġ",
449
- "geqq;": "≧",
450
- "gesl;": "⋛︀",
451
- "GJcy;": "Ѓ",
452
- "gjcy;": "ѓ",
453
- "gnap;": "⪊",
454
- "gneq;": "⪈",
455
- "Gopf;": "𝔾",
456
- "gopf;": "𝕘",
457
- "Gscr;": "𝒢",
458
- "gscr;": "ℊ",
459
- "gsim;": "≳",
460
- "gtcc;": "⪧",
461
- "gvnE;": "≩︀",
462
- "half;": "½",
463
- "hArr;": "⇔",
464
- "harr;": "↔",
465
- "hbar;": "ℏ",
466
- "Hopf;": "ℍ",
467
- "hopf;": "𝕙",
468
- "Hscr;": "ℋ",
469
- "hscr;": "𝒽",
470
- Icirc: "Î",
471
- icirc: "î",
472
- "Idot;": "İ",
473
- "IEcy;": "Е",
474
- "iecy;": "е",
475
- iexcl: "¡",
476
- "imof;": "⊷",
477
- "IOcy;": "Ё",
478
- "iocy;": "ё",
479
- "Iopf;": "𝕀",
480
- "iopf;": "𝕚",
481
- "Iota;": "Ι",
482
- "iota;": "ι",
483
- "Iscr;": "ℐ",
484
- "iscr;": "𝒾",
485
- "isin;": "∈",
486
- "Iuml;": "Ï",
487
- "iuml;": "ï",
488
- "Jopf;": "𝕁",
489
- "jopf;": "𝕛",
490
- "Jscr;": "𝒥",
491
- "jscr;": "𝒿",
492
- "KHcy;": "Х",
493
- "khcy;": "х",
494
- "KJcy;": "Ќ",
495
- "kjcy;": "ќ",
496
- "Kopf;": "𝕂",
497
- "kopf;": "𝕜",
498
- "Kscr;": "𝒦",
499
- "kscr;": "𝓀",
500
- "Lang;": "⟪",
501
- "lang;": "⟨",
502
- laquo: "«",
503
- "Larr;": "↞",
504
- "lArr;": "⇐",
505
- "larr;": "←",
506
- "late;": "⪭",
507
- "lcub;": "{",
508
- "ldca;": "⤶",
509
- "ldsh;": "↲",
510
- "leqq;": "≦",
511
- "lesg;": "⋚︀",
512
- "lHar;": "⥢",
513
- "LJcy;": "Љ",
514
- "ljcy;": "љ",
515
- "lnap;": "⪉",
516
- "lneq;": "⪇",
517
- "Lopf;": "𝕃",
518
- "lopf;": "𝕝",
519
- "lozf;": "⧫",
520
- "lpar;": "(",
521
- "Lscr;": "ℒ",
522
- "lscr;": "𝓁",
523
- "lsim;": "≲",
524
- "lsqb;": "[",
525
- "ltcc;": "⪦",
526
- "ltri;": "◃",
527
- "lvnE;": "≨︀",
528
- "macr;": "¯",
529
- "male;": "♂",
530
- "malt;": "✠",
531
- micro: "µ",
532
- "mlcp;": "⫛",
533
- "mldr;": "…",
534
- "Mopf;": "𝕄",
535
- "mopf;": "𝕞",
536
- "Mscr;": "ℳ",
537
- "mscr;": "𝓂",
538
- "nang;": "∠⃒",
539
- "napE;": "⩰̸",
540
- "nbsp;": " ",
541
- "ncap;": "⩃",
542
- "ncup;": "⩂",
543
- "ngeq;": "≱",
544
- "nges;": "⩾̸",
545
- "ngtr;": "≯",
546
- "nGtv;": "≫̸",
547
- "nisd;": "⋺",
548
- "NJcy;": "Њ",
549
- "njcy;": "њ",
550
- "nldr;": "‥",
551
- "nleq;": "≰",
552
- "nles;": "⩽̸",
553
- "nLtv;": "≪̸",
554
- "nmid;": "∤",
555
- "Nopf;": "ℕ",
556
- "nopf;": "𝕟",
557
- "npar;": "∦",
558
- "npre;": "⪯̸",
559
- "nsce;": "⪰̸",
560
- "Nscr;": "𝒩",
561
- "nscr;": "𝓃",
562
- "nsim;": "≁",
563
- "nsub;": "⊄",
564
- "nsup;": "⊅",
565
- "ntgl;": "≹",
566
- "ntlg;": "≸",
567
- "nvap;": "≍⃒",
568
- "nvge;": "≥⃒",
569
- "nvgt;": ">⃒",
570
- "nvle;": "≤⃒",
571
- "nvlt;": "<⃒",
572
- "oast;": "⊛",
573
- "ocir;": "⊚",
574
- Ocirc: "Ô",
575
- ocirc: "ô",
576
- "odiv;": "⨸",
577
- "odot;": "⊙",
578
- "ogon;": "˛",
579
- "oint;": "∮",
580
- "omid;": "⦶",
581
- "Oopf;": "𝕆",
582
- "oopf;": "𝕠",
583
- "opar;": "⦷",
584
- "ordf;": "ª",
585
- "ordm;": "º",
586
- "oror;": "⩖",
587
- "Oscr;": "𝒪",
588
- "oscr;": "ℴ",
589
- "osol;": "⊘",
590
- "Ouml;": "Ö",
591
- "ouml;": "ö",
592
- "para;": "¶",
593
- "part;": "∂",
594
- "perp;": "⊥",
595
- "phiv;": "ϕ",
596
- "plus;": "+",
597
- "Popf;": "ℙ",
598
- "popf;": "𝕡",
599
- pound: "£",
600
- "prap;": "⪷",
601
- "prec;": "≺",
602
- "prnE;": "⪵",
603
- "prod;": "∏",
604
- "prop;": "∝",
605
- "Pscr;": "𝒫",
606
- "pscr;": "𝓅",
607
- "qint;": "⨌",
608
- "Qopf;": "ℚ",
609
- "qopf;": "𝕢",
610
- "Qscr;": "𝒬",
611
- "qscr;": "𝓆",
612
- "QUOT;": "\"",
613
- "quot;": "\"",
614
- "race;": "∽̱",
615
- "Rang;": "⟫",
616
- "rang;": "⟩",
617
- raquo: "»",
618
- "Rarr;": "↠",
619
- "rArr;": "⇒",
620
- "rarr;": "→",
621
- "rcub;": "}",
622
- "rdca;": "⤷",
623
- "rdsh;": "↳",
624
- "real;": "ℜ",
625
- "rect;": "▭",
626
- "rHar;": "⥤",
627
- "rhov;": "ϱ",
628
- "ring;": "˚",
629
- "Ropf;": "ℝ",
630
- "ropf;": "𝕣",
631
- "rpar;": ")",
632
- "Rscr;": "ℛ",
633
- "rscr;": "𝓇",
634
- "rsqb;": "]",
635
- "rtri;": "▹",
636
- "scap;": "⪸",
637
- "scnE;": "⪶",
638
- "sdot;": "⋅",
639
- "sect;": "§",
640
- "semi;": ";",
641
- "sext;": "✶",
642
- "SHcy;": "Ш",
643
- "shcy;": "ш",
644
- "sime;": "≃",
645
- "simg;": "⪞",
646
- "siml;": "⪝",
647
- "smid;": "∣",
648
- "smte;": "⪬",
649
- "solb;": "⧄",
650
- "Sopf;": "𝕊",
651
- "sopf;": "𝕤",
652
- "spar;": "∥",
653
- "Sqrt;": "√",
654
- "squf;": "▪",
655
- "Sscr;": "𝒮",
656
- "sscr;": "𝓈",
657
- "Star;": "⋆",
658
- "star;": "☆",
659
- "subE;": "⫅",
660
- "sube;": "⊆",
661
- "succ;": "≻",
662
- "sung;": "♪",
663
- "sup1;": "¹",
664
- "sup2;": "²",
665
- "sup3;": "³",
666
- "supE;": "⫆",
667
- "supe;": "⊇",
668
- szlig: "ß",
669
- "tbrk;": "⎴",
670
- "tdot;": "⃛",
671
- THORN: "Þ",
672
- thorn: "þ",
673
- times: "×",
674
- "tint;": "∭",
675
- "toea;": "⤨",
676
- "Topf;": "𝕋",
677
- "topf;": "𝕥",
678
- "tosa;": "⤩",
679
- "trie;": "≜",
680
- "Tscr;": "𝒯",
681
- "tscr;": "𝓉",
682
- "TScy;": "Ц",
683
- "tscy;": "ц",
684
- "Uarr;": "↟",
685
- "uArr;": "⇑",
686
- "uarr;": "↑",
687
- Ucirc: "Û",
688
- ucirc: "û",
689
- "uHar;": "⥣",
690
- "Uopf;": "𝕌",
691
- "uopf;": "𝕦",
692
- "Upsi;": "ϒ",
693
- "upsi;": "υ",
694
- "Uscr;": "𝒰",
695
- "uscr;": "𝓊",
696
- "utri;": "▵",
697
- "Uuml;": "Ü",
698
- "uuml;": "ü",
699
- "vArr;": "⇕",
700
- "varr;": "↕",
701
- "Vbar;": "⫫",
702
- "vBar;": "⫨",
703
- "Vert;": "‖",
704
- "vert;": "|",
705
- "Vopf;": "𝕍",
706
- "vopf;": "𝕧",
707
- "Vscr;": "𝒱",
708
- "vscr;": "𝓋",
709
- "Wopf;": "𝕎",
710
- "wopf;": "𝕨",
711
- "Wscr;": "𝒲",
712
- "wscr;": "𝓌",
713
- "xcap;": "⋂",
714
- "xcup;": "⋃",
715
- "xmap;": "⟼",
716
- "xnis;": "⋻",
717
- "Xopf;": "𝕏",
718
- "xopf;": "𝕩",
719
- "Xscr;": "𝒳",
720
- "xscr;": "𝓍",
721
- "xvee;": "⋁",
722
- "YAcy;": "Я",
723
- "yacy;": "я",
724
- "YIcy;": "Ї",
725
- "yicy;": "ї",
726
- "Yopf;": "𝕐",
727
- "yopf;": "𝕪",
728
- "Yscr;": "𝒴",
729
- "yscr;": "𝓎",
730
- "YUcy;": "Ю",
731
- "yucy;": "ю",
732
- "Yuml;": "Ÿ",
733
- "yuml;": "ÿ",
734
- "Zdot;": "Ż",
735
- "zdot;": "ż",
736
- "Zeta;": "Ζ",
737
- "zeta;": "ζ",
738
- "ZHcy;": "Ж",
739
- "zhcy;": "ж",
740
- "Zopf;": "ℤ",
741
- "zopf;": "𝕫",
742
- "Zscr;": "𝒵",
743
- "zscr;": "𝓏",
744
- "zwnj;": "‌",
745
- Aacute: "Á",
746
- aacute: "á",
747
- "Acirc;": "Â",
748
- "acirc;": "â",
749
- "acute;": "´",
750
- "AElig;": "Æ",
751
- "aelig;": "æ",
752
- Agrave: "À",
753
- agrave: "à",
754
- "aleph;": "ℵ",
755
- "Alpha;": "Α",
756
- "alpha;": "α",
757
- "Amacr;": "Ā",
758
- "amacr;": "ā",
759
- "amalg;": "⨿",
760
- "angle;": "∠",
761
- "angrt;": "∟",
762
- "angst;": "Å",
763
- "Aogon;": "Ą",
764
- "aogon;": "ą",
765
- "Aring;": "Å",
766
- "aring;": "å",
767
- "asymp;": "≈",
768
- Atilde: "Ã",
769
- atilde: "ã",
770
- "awint;": "⨑",
771
- "bcong;": "≌",
772
- "bdquo;": "„",
773
- "bepsi;": "϶",
774
- "blank;": "␣",
775
- "blk12;": "▒",
776
- "blk14;": "░",
777
- "blk34;": "▓",
778
- "block;": "█",
779
- "boxDL;": "╗",
780
- "boxDl;": "╖",
781
- "boxdL;": "╕",
782
- "boxdl;": "┐",
783
- "boxDR;": "╔",
784
- "boxDr;": "╓",
785
- "boxdR;": "╒",
786
- "boxdr;": "┌",
787
- "boxHD;": "╦",
788
- "boxHd;": "╤",
789
- "boxhD;": "╥",
790
- "boxhd;": "┬",
791
- "boxHU;": "╩",
792
- "boxHu;": "╧",
793
- "boxhU;": "╨",
794
- "boxhu;": "┴",
795
- "boxUL;": "╝",
796
- "boxUl;": "╜",
797
- "boxuL;": "╛",
798
- "boxul;": "┘",
799
- "boxUR;": "╚",
800
- "boxUr;": "╙",
801
- "boxuR;": "╘",
802
- "boxur;": "└",
803
- "boxVH;": "╬",
804
- "boxVh;": "╫",
805
- "boxvH;": "╪",
806
- "boxvh;": "┼",
807
- "boxVL;": "╣",
808
- "boxVl;": "╢",
809
- "boxvL;": "╡",
810
- "boxvl;": "┤",
811
- "boxVR;": "╠",
812
- "boxVr;": "╟",
813
- "boxvR;": "╞",
814
- "boxvr;": "├",
815
- "Breve;": "˘",
816
- "breve;": "˘",
817
- brvbar: "¦",
818
- "bsemi;": "⁏",
819
- "bsime;": "⋍",
820
- "bsolb;": "⧅",
821
- "bumpE;": "⪮",
822
- "bumpe;": "≏",
823
- "caret;": "⁁",
824
- "caron;": "ˇ",
825
- "ccaps;": "⩍",
826
- Ccedil: "Ç",
827
- ccedil: "ç",
828
- "Ccirc;": "Ĉ",
829
- "ccirc;": "ĉ",
830
- "ccups;": "⩌",
831
- "cedil;": "¸",
832
- "check;": "✓",
833
- "clubs;": "♣",
834
- "Colon;": "∷",
835
- "colon;": ":",
836
- "comma;": ",",
837
- "crarr;": "↵",
838
- "Cross;": "⨯",
839
- "cross;": "✗",
840
- "csube;": "⫑",
841
- "csupe;": "⫒",
842
- "ctdot;": "⋯",
843
- "cuepr;": "⋞",
844
- "cuesc;": "⋟",
845
- "cupor;": "⩅",
846
- curren: "¤",
847
- "cuvee;": "⋎",
848
- "cuwed;": "⋏",
849
- "cwint;": "∱",
850
- "Dashv;": "⫤",
851
- "dashv;": "⊣",
852
- "dblac;": "˝",
853
- "ddarr;": "⇊",
854
- "Delta;": "Δ",
855
- "delta;": "δ",
856
- "dharl;": "⇃",
857
- "dharr;": "⇂",
858
- "diams;": "♦",
859
- "disin;": "⋲",
860
- divide: "÷",
861
- "doteq;": "≐",
862
- "dtdot;": "⋱",
863
- "dtrif;": "▾",
864
- "duarr;": "⇵",
865
- "duhar;": "⥯",
866
- Eacute: "É",
867
- eacute: "é",
868
- "Ecirc;": "Ê",
869
- "ecirc;": "ê",
870
- "eDDot;": "⩷",
871
- "efDot;": "≒",
872
- Egrave: "È",
873
- egrave: "è",
874
- "Emacr;": "Ē",
875
- "emacr;": "ē",
876
- "empty;": "∅",
877
- "Eogon;": "Ę",
878
- "eogon;": "ę",
879
- "eplus;": "⩱",
880
- "epsiv;": "ϵ",
881
- "eqsim;": "≂",
882
- "Equal;": "⩵",
883
- "equiv;": "≡",
884
- "erarr;": "⥱",
885
- "erDot;": "≓",
886
- "esdot;": "≐",
887
- "exist;": "∃",
888
- "fflig;": "ff",
889
- "filig;": "fi",
890
- "fjlig;": "fj",
891
- "fllig;": "fl",
892
- "fltns;": "▱",
893
- "forkv;": "⫙",
894
- frac12: "½",
895
- frac14: "¼",
896
- frac34: "¾",
897
- "frasl;": "⁄",
898
- "frown;": "⌢",
899
- "Gamma;": "Γ",
900
- "gamma;": "γ",
901
- "Gcirc;": "Ĝ",
902
- "gcirc;": "ĝ",
903
- "gescc;": "⪩",
904
- "gimel;": "ℷ",
905
- "gneqq;": "≩",
906
- "gnsim;": "⋧",
907
- "grave;": "`",
908
- "gsime;": "⪎",
909
- "gsiml;": "⪐",
910
- "gtcir;": "⩺",
911
- "gtdot;": "⋗",
912
- "Hacek;": "ˇ",
913
- "harrw;": "↭",
914
- "Hcirc;": "Ĥ",
915
- "hcirc;": "ĥ",
916
- "hoarr;": "⇿",
917
- Iacute: "Í",
918
- iacute: "í",
919
- "Icirc;": "Î",
920
- "icirc;": "î",
921
- "iexcl;": "¡",
922
- Igrave: "Ì",
923
- igrave: "ì",
924
- "iiint;": "∭",
925
- "iiota;": "℩",
926
- "IJlig;": "IJ",
927
- "ijlig;": "ij",
928
- "Imacr;": "Ī",
929
- "imacr;": "ī",
930
- "image;": "ℑ",
931
- "imath;": "ı",
932
- "imped;": "Ƶ",
933
- "infin;": "∞",
934
- "Iogon;": "Į",
935
- "iogon;": "į",
936
- "iprod;": "⨼",
937
- iquest: "¿",
938
- "isinE;": "⋹",
939
- "isins;": "⋴",
940
- "isinv;": "∈",
941
- "Iukcy;": "І",
942
- "iukcy;": "і",
943
- "Jcirc;": "Ĵ",
944
- "jcirc;": "ĵ",
945
- "jmath;": "ȷ",
946
- "Jukcy;": "Є",
947
- "jukcy;": "є",
948
- "Kappa;": "Κ",
949
- "kappa;": "κ",
950
- "lAarr;": "⇚",
951
- "langd;": "⦑",
952
- "laquo;": "«",
953
- "larrb;": "⇤",
954
- "lates;": "⪭︀",
955
- "lBarr;": "⤎",
956
- "lbarr;": "⤌",
957
- "lbbrk;": "❲",
958
- "lbrke;": "⦋",
959
- "lceil;": "⌈",
960
- "ldquo;": "“",
961
- "lescc;": "⪨",
962
- "lhard;": "↽",
963
- "lharu;": "↼",
964
- "lhblk;": "▄",
965
- "llarr;": "⇇",
966
- "lltri;": "◺",
967
- "lneqq;": "≨",
968
- "lnsim;": "⋦",
969
- "loang;": "⟬",
970
- "loarr;": "⇽",
971
- "lobrk;": "⟦",
972
- "lopar;": "⦅",
973
- "lrarr;": "⇆",
974
- "lrhar;": "⇋",
975
- "lrtri;": "⊿",
976
- "lsime;": "⪍",
977
- "lsimg;": "⪏",
978
- "lsquo;": "‘",
979
- "ltcir;": "⩹",
980
- "ltdot;": "⋖",
981
- "ltrie;": "⊴",
982
- "ltrif;": "◂",
983
- "mdash;": "—",
984
- "mDDot;": "∺",
985
- "micro;": "µ",
986
- middot: "·",
987
- "minus;": "−",
988
- "mumap;": "⊸",
989
- "nabla;": "∇",
990
- "napid;": "≋̸",
991
- "napos;": "ʼn",
992
- "natur;": "♮",
993
- "nbump;": "≎̸",
994
- "ncong;": "≇",
995
- "ndash;": "–",
996
- "neArr;": "⇗",
997
- "nearr;": "↗",
998
- "nedot;": "≐̸",
999
- "nesim;": "≂̸",
1000
- "ngeqq;": "≧̸",
1001
- "ngsim;": "≵",
1002
- "nhArr;": "⇎",
1003
- "nharr;": "↮",
1004
- "nhpar;": "⫲",
1005
- "nlArr;": "⇍",
1006
- "nlarr;": "↚",
1007
- "nleqq;": "≦̸",
1008
- "nless;": "≮",
1009
- "nlsim;": "≴",
1010
- "nltri;": "⋪",
1011
- "notin;": "∉",
1012
- "notni;": "∌",
1013
- "npart;": "∂̸",
1014
- "nprec;": "⊀",
1015
- "nrArr;": "⇏",
1016
- "nrarr;": "↛",
1017
- "nrtri;": "⋫",
1018
- "nsime;": "≄",
1019
- "nsmid;": "∤",
1020
- "nspar;": "∦",
1021
- "nsubE;": "⫅̸",
1022
- "nsube;": "⊈",
1023
- "nsucc;": "⊁",
1024
- "nsupE;": "⫆̸",
1025
- "nsupe;": "⊉",
1026
- Ntilde: "Ñ",
1027
- ntilde: "ñ",
1028
- "numsp;": " ",
1029
- "nvsim;": "∼⃒",
1030
- "nwArr;": "⇖",
1031
- "nwarr;": "↖",
1032
- Oacute: "Ó",
1033
- oacute: "ó",
1034
- "Ocirc;": "Ô",
1035
- "ocirc;": "ô",
1036
- "odash;": "⊝",
1037
- "OElig;": "Œ",
1038
- "oelig;": "œ",
1039
- "ofcir;": "⦿",
1040
- Ograve: "Ò",
1041
- ograve: "ò",
1042
- "ohbar;": "⦵",
1043
- "olarr;": "↺",
1044
- "olcir;": "⦾",
1045
- "oline;": "‾",
1046
- "Omacr;": "Ō",
1047
- "omacr;": "ō",
1048
- "Omega;": "Ω",
1049
- "omega;": "ω",
1050
- "operp;": "⦹",
1051
- "oplus;": "⊕",
1052
- "orarr;": "↻",
1053
- "order;": "ℴ",
1054
- Oslash: "Ø",
1055
- oslash: "ø",
1056
- Otilde: "Õ",
1057
- otilde: "õ",
1058
- "ovbar;": "⌽",
1059
- "parsl;": "⫽",
1060
- "phone;": "☎",
1061
- "plusb;": "⊞",
1062
- "pluse;": "⩲",
1063
- plusmn: "±",
1064
- "pound;": "£",
1065
- "prcue;": "≼",
1066
- "Prime;": "″",
1067
- "prime;": "′",
1068
- "prnap;": "⪹",
1069
- "prsim;": "≾",
1070
- "quest;": "?",
1071
- "rAarr;": "⇛",
1072
- "radic;": "√",
1073
- "rangd;": "⦒",
1074
- "range;": "⦥",
1075
- "raquo;": "»",
1076
- "rarrb;": "⇥",
1077
- "rarrc;": "⤳",
1078
- "rarrw;": "↝",
1079
- "ratio;": "∶",
1080
- "RBarr;": "⤐",
1081
- "rBarr;": "⤏",
1082
- "rbarr;": "⤍",
1083
- "rbbrk;": "❳",
1084
- "rbrke;": "⦌",
1085
- "rceil;": "⌉",
1086
- "rdquo;": "”",
1087
- "reals;": "ℝ",
1088
- "rhard;": "⇁",
1089
- "rharu;": "⇀",
1090
- "rlarr;": "⇄",
1091
- "rlhar;": "⇌",
1092
- "rnmid;": "⫮",
1093
- "roang;": "⟭",
1094
- "roarr;": "⇾",
1095
- "robrk;": "⟧",
1096
- "ropar;": "⦆",
1097
- "rrarr;": "⇉",
1098
- "rsquo;": "’",
1099
- "rtrie;": "⊵",
1100
- "rtrif;": "▸",
1101
- "sbquo;": "‚",
1102
- "sccue;": "≽",
1103
- "Scirc;": "Ŝ",
1104
- "scirc;": "ŝ",
1105
- "scnap;": "⪺",
1106
- "scsim;": "≿",
1107
- "sdotb;": "⊡",
1108
- "sdote;": "⩦",
1109
- "seArr;": "⇘",
1110
- "searr;": "↘",
1111
- "setmn;": "∖",
1112
- "sharp;": "♯",
1113
- "Sigma;": "Σ",
1114
- "sigma;": "σ",
1115
- "simeq;": "≃",
1116
- "simgE;": "⪠",
1117
- "simlE;": "⪟",
1118
- "simne;": "≆",
1119
- "slarr;": "←",
1120
- "smile;": "⌣",
1121
- "smtes;": "⪬︀",
1122
- "sqcap;": "⊓",
1123
- "sqcup;": "⊔",
1124
- "sqsub;": "⊏",
1125
- "sqsup;": "⊐",
1126
- "srarr;": "→",
1127
- "starf;": "★",
1128
- "strns;": "¯",
1129
- "subnE;": "⫋",
1130
- "subne;": "⊊",
1131
- "supnE;": "⫌",
1132
- "supne;": "⊋",
1133
- "swArr;": "⇙",
1134
- "swarr;": "↙",
1135
- "szlig;": "ß",
1136
- "Theta;": "Θ",
1137
- "theta;": "θ",
1138
- "thkap;": "≈",
1139
- "THORN;": "Þ",
1140
- "thorn;": "þ",
1141
- "Tilde;": "∼",
1142
- "tilde;": "˜",
1143
- "times;": "×",
1144
- "TRADE;": "™",
1145
- "trade;": "™",
1146
- "trisb;": "⧍",
1147
- "TSHcy;": "Ћ",
1148
- "tshcy;": "ћ",
1149
- "twixt;": "≬",
1150
- Uacute: "Ú",
1151
- uacute: "ú",
1152
- "Ubrcy;": "Ў",
1153
- "ubrcy;": "ў",
1154
- "Ucirc;": "Û",
1155
- "ucirc;": "û",
1156
- "udarr;": "⇅",
1157
- "udhar;": "⥮",
1158
- Ugrave: "Ù",
1159
- ugrave: "ù",
1160
- "uharl;": "↿",
1161
- "uharr;": "↾",
1162
- "uhblk;": "▀",
1163
- "ultri;": "◸",
1164
- "Umacr;": "Ū",
1165
- "umacr;": "ū",
1166
- "Union;": "⋃",
1167
- "Uogon;": "Ų",
1168
- "uogon;": "ų",
1169
- "uplus;": "⊎",
1170
- "upsih;": "ϒ",
1171
- "UpTee;": "⊥",
1172
- "Uring;": "Ů",
1173
- "uring;": "ů",
1174
- "urtri;": "◹",
1175
- "utdot;": "⋰",
1176
- "utrif;": "▴",
1177
- "uuarr;": "⇈",
1178
- "varpi;": "ϖ",
1179
- "vBarv;": "⫩",
1180
- "VDash;": "⊫",
1181
- "Vdash;": "⊩",
1182
- "vDash;": "⊨",
1183
- "vdash;": "⊢",
1184
- "veeeq;": "≚",
1185
- "vltri;": "⊲",
1186
- "vnsub;": "⊂⃒",
1187
- "vnsup;": "⊃⃒",
1188
- "vprop;": "∝",
1189
- "vrtri;": "⊳",
1190
- "Wcirc;": "Ŵ",
1191
- "wcirc;": "ŵ",
1192
- "Wedge;": "⋀",
1193
- "wedge;": "∧",
1194
- "xcirc;": "◯",
1195
- "xdtri;": "▽",
1196
- "xhArr;": "⟺",
1197
- "xharr;": "⟷",
1198
- "xlArr;": "⟸",
1199
- "xlarr;": "⟵",
1200
- "xodot;": "⨀",
1201
- "xrArr;": "⟹",
1202
- "xrarr;": "⟶",
1203
- "xutri;": "△",
1204
- Yacute: "Ý",
1205
- yacute: "ý",
1206
- "Ycirc;": "Ŷ",
1207
- "ycirc;": "ŷ",
1208
- "Aacute;": "Á",
1209
- "aacute;": "á",
1210
- "Abreve;": "Ă",
1211
- "abreve;": "ă",
1212
- "Agrave;": "À",
1213
- "agrave;": "à",
1214
- "andand;": "⩕",
1215
- "angmsd;": "∡",
1216
- "angsph;": "∢",
1217
- "apacir;": "⩯",
1218
- "approx;": "≈",
1219
- "Assign;": "≔",
1220
- "Atilde;": "Ã",
1221
- "atilde;": "ã",
1222
- "barvee;": "⊽",
1223
- "Barwed;": "⌆",
1224
- "barwed;": "⌅",
1225
- "becaus;": "∵",
1226
- "bernou;": "ℬ",
1227
- "bigcap;": "⋂",
1228
- "bigcup;": "⋃",
1229
- "bigvee;": "⋁",
1230
- "bkarow;": "⤍",
1231
- "bottom;": "⊥",
1232
- "bowtie;": "⋈",
1233
- "boxbox;": "⧉",
1234
- "bprime;": "‵",
1235
- "brvbar;": "¦",
1236
- "bullet;": "•",
1237
- "Bumpeq;": "≎",
1238
- "bumpeq;": "≏",
1239
- "Cacute;": "Ć",
1240
- "cacute;": "ć",
1241
- "capand;": "⩄",
1242
- "capcap;": "⩋",
1243
- "capcup;": "⩇",
1244
- "capdot;": "⩀",
1245
- "Ccaron;": "Č",
1246
- "ccaron;": "č",
1247
- "Ccedil;": "Ç",
1248
- "ccedil;": "ç",
1249
- "circeq;": "≗",
1250
- "cirmid;": "⫯",
1251
- "Colone;": "⩴",
1252
- "colone;": "≔",
1253
- "commat;": "@",
1254
- "compfn;": "∘",
1255
- "Conint;": "∯",
1256
- "conint;": "∮",
1257
- "coprod;": "∐",
1258
- "copysr;": "℗",
1259
- "cularr;": "↶",
1260
- "CupCap;": "≍",
1261
- "cupcap;": "⩆",
1262
- "cupcup;": "⩊",
1263
- "cupdot;": "⊍",
1264
- "curarr;": "↷",
1265
- "curren;": "¤",
1266
- "cylcty;": "⌭",
1267
- "Dagger;": "‡",
1268
- "dagger;": "†",
1269
- "daleth;": "ℸ",
1270
- "Dcaron;": "Ď",
1271
- "dcaron;": "ď",
1272
- "dfisht;": "⥿",
1273
- "divide;": "÷",
1274
- "divonx;": "⋇",
1275
- "dlcorn;": "⌞",
1276
- "dlcrop;": "⌍",
1277
- "dollar;": "$",
1278
- "DotDot;": "⃜",
1279
- "drcorn;": "⌟",
1280
- "drcrop;": "⌌",
1281
- "Dstrok;": "Đ",
1282
- "dstrok;": "đ",
1283
- "Eacute;": "É",
1284
- "eacute;": "é",
1285
- "easter;": "⩮",
1286
- "Ecaron;": "Ě",
1287
- "ecaron;": "ě",
1288
- "ecolon;": "≕",
1289
- "Egrave;": "È",
1290
- "egrave;": "è",
1291
- "egsdot;": "⪘",
1292
- "elsdot;": "⪗",
1293
- "emptyv;": "∅",
1294
- "emsp13;": " ",
1295
- "emsp14;": " ",
1296
- "eparsl;": "⧣",
1297
- "eqcirc;": "≖",
1298
- "equals;": "=",
1299
- "equest;": "≟",
1300
- "Exists;": "∃",
1301
- "female;": "♀",
1302
- "ffilig;": "ffi",
1303
- "ffllig;": "ffl",
1304
- "ForAll;": "∀",
1305
- "forall;": "∀",
1306
- "frac12;": "½",
1307
- "frac13;": "⅓",
1308
- "frac14;": "¼",
1309
- "frac15;": "⅕",
1310
- "frac16;": "⅙",
1311
- "frac18;": "⅛",
1312
- "frac23;": "⅔",
1313
- "frac25;": "⅖",
1314
- "frac34;": "¾",
1315
- "frac35;": "⅗",
1316
- "frac38;": "⅜",
1317
- "frac45;": "⅘",
1318
- "frac56;": "⅚",
1319
- "frac58;": "⅝",
1320
- "frac78;": "⅞",
1321
- "gacute;": "ǵ",
1322
- "Gammad;": "Ϝ",
1323
- "gammad;": "ϝ",
1324
- "Gbreve;": "Ğ",
1325
- "gbreve;": "ğ",
1326
- "Gcedil;": "Ģ",
1327
- "gesdot;": "⪀",
1328
- "gesles;": "⪔",
1329
- "gtlPar;": "⦕",
1330
- "gtrarr;": "⥸",
1331
- "gtrdot;": "⋗",
1332
- "gtrsim;": "≳",
1333
- "hairsp;": " ",
1334
- "hamilt;": "ℋ",
1335
- "HARDcy;": "Ъ",
1336
- "hardcy;": "ъ",
1337
- "hearts;": "♥",
1338
- "hellip;": "…",
1339
- "hercon;": "⊹",
1340
- "homtht;": "∻",
1341
- "horbar;": "―",
1342
- "hslash;": "ℏ",
1343
- "Hstrok;": "Ħ",
1344
- "hstrok;": "ħ",
1345
- "hybull;": "⁃",
1346
- "hyphen;": "‐",
1347
- "Iacute;": "Í",
1348
- "iacute;": "í",
1349
- "Igrave;": "Ì",
1350
- "igrave;": "ì",
1351
- "iiiint;": "⨌",
1352
- "iinfin;": "⧜",
1353
- "incare;": "℅",
1354
- "inodot;": "ı",
1355
- "intcal;": "⊺",
1356
- "iquest;": "¿",
1357
- "isinsv;": "⋳",
1358
- "Itilde;": "Ĩ",
1359
- "itilde;": "ĩ",
1360
- "Jsercy;": "Ј",
1361
- "jsercy;": "ј",
1362
- "kappav;": "ϰ",
1363
- "Kcedil;": "Ķ",
1364
- "kcedil;": "ķ",
1365
- "kgreen;": "ĸ",
1366
- "Lacute;": "Ĺ",
1367
- "lacute;": "ĺ",
1368
- "lagran;": "ℒ",
1369
- "Lambda;": "Λ",
1370
- "lambda;": "λ",
1371
- "langle;": "⟨",
1372
- "larrfs;": "⤝",
1373
- "larrhk;": "↩",
1374
- "larrlp;": "↫",
1375
- "larrpl;": "⤹",
1376
- "larrtl;": "↢",
1377
- "lAtail;": "⤛",
1378
- "latail;": "⤙",
1379
- "lbrace;": "{",
1380
- "lbrack;": "[",
1381
- "Lcaron;": "Ľ",
1382
- "lcaron;": "ľ",
1383
- "Lcedil;": "Ļ",
1384
- "lcedil;": "ļ",
1385
- "ldquor;": "„",
1386
- "lesdot;": "⩿",
1387
- "lesges;": "⪓",
1388
- "lfisht;": "⥼",
1389
- "lfloor;": "⌊",
1390
- "lharul;": "⥪",
1391
- "llhard;": "⥫",
1392
- "Lmidot;": "Ŀ",
1393
- "lmidot;": "ŀ",
1394
- "lmoust;": "⎰",
1395
- "loplus;": "⨭",
1396
- "lowast;": "∗",
1397
- "lowbar;": "_",
1398
- "lparlt;": "⦓",
1399
- "lrhard;": "⥭",
1400
- "lsaquo;": "‹",
1401
- "lsquor;": "‚",
1402
- "Lstrok;": "Ł",
1403
- "lstrok;": "ł",
1404
- "lthree;": "⋋",
1405
- "ltimes;": "⋉",
1406
- "ltlarr;": "⥶",
1407
- "ltrPar;": "⦖",
1408
- "mapsto;": "↦",
1409
- "marker;": "▮",
1410
- "mcomma;": "⨩",
1411
- "midast;": "*",
1412
- "midcir;": "⫰",
1413
- "middot;": "·",
1414
- "minusb;": "⊟",
1415
- "minusd;": "∸",
1416
- "mnplus;": "∓",
1417
- "models;": "⊧",
1418
- "mstpos;": "∾",
1419
- "Nacute;": "Ń",
1420
- "nacute;": "ń",
1421
- "nbumpe;": "≏̸",
1422
- "Ncaron;": "Ň",
1423
- "ncaron;": "ň",
1424
- "Ncedil;": "Ņ",
1425
- "ncedil;": "ņ",
1426
- "nearhk;": "⤤",
1427
- "nequiv;": "≢",
1428
- "nesear;": "⤨",
1429
- "nexist;": "∄",
1430
- "nltrie;": "⋬",
1431
- "notinE;": "⋹̸",
1432
- "nparsl;": "⫽⃥",
1433
- "nprcue;": "⋠",
1434
- "nrarrc;": "⤳̸",
1435
- "nrarrw;": "↝̸",
1436
- "nrtrie;": "⋭",
1437
- "nsccue;": "⋡",
1438
- "nsimeq;": "≄",
1439
- "Ntilde;": "Ñ",
1440
- "ntilde;": "ñ",
1441
- "numero;": "№",
1442
- "nVDash;": "⊯",
1443
- "nVdash;": "⊮",
1444
- "nvDash;": "⊭",
1445
- "nvdash;": "⊬",
1446
- "nvHarr;": "⤄",
1447
- "nvlArr;": "⤂",
1448
- "nvrArr;": "⤃",
1449
- "nwarhk;": "⤣",
1450
- "nwnear;": "⤧",
1451
- "Oacute;": "Ó",
1452
- "oacute;": "ó",
1453
- "Odblac;": "Ő",
1454
- "odblac;": "ő",
1455
- "odsold;": "⦼",
1456
- "Ograve;": "Ò",
1457
- "ograve;": "ò",
1458
- "ominus;": "⊖",
1459
- "origof;": "⊶",
1460
- "Oslash;": "Ø",
1461
- "oslash;": "ø",
1462
- "Otilde;": "Õ",
1463
- "otilde;": "õ",
1464
- "Otimes;": "⨷",
1465
- "otimes;": "⊗",
1466
- "parsim;": "⫳",
1467
- "percnt;": "%",
1468
- "period;": ".",
1469
- "permil;": "‰",
1470
- "phmmat;": "ℳ",
1471
- "planck;": "ℏ",
1472
- "plankv;": "ℏ",
1473
- "plusdo;": "∔",
1474
- "plusdu;": "⨥",
1475
- "plusmn;": "±",
1476
- "preceq;": "⪯",
1477
- "primes;": "ℙ",
1478
- "prnsim;": "⋨",
1479
- "propto;": "∝",
1480
- "prurel;": "⊰",
1481
- "puncsp;": " ",
1482
- "qprime;": "⁗",
1483
- "Racute;": "Ŕ",
1484
- "racute;": "ŕ",
1485
- "rangle;": "⟩",
1486
- "rarrap;": "⥵",
1487
- "rarrfs;": "⤞",
1488
- "rarrhk;": "↪",
1489
- "rarrlp;": "↬",
1490
- "rarrpl;": "⥅",
1491
- "Rarrtl;": "⤖",
1492
- "rarrtl;": "↣",
1493
- "rAtail;": "⤜",
1494
- "ratail;": "⤚",
1495
- "rbrace;": "}",
1496
- "rbrack;": "]",
1497
- "Rcaron;": "Ř",
1498
- "rcaron;": "ř",
1499
- "Rcedil;": "Ŗ",
1500
- "rcedil;": "ŗ",
1501
- "rdquor;": "”",
1502
- "rfisht;": "⥽",
1503
- "rfloor;": "⌋",
1504
- "rharul;": "⥬",
1505
- "rmoust;": "⎱",
1506
- "roplus;": "⨮",
1507
- "rpargt;": "⦔",
1508
- "rsaquo;": "›",
1509
- "rsquor;": "’",
1510
- "rthree;": "⋌",
1511
- "rtimes;": "⋊",
1512
- "Sacute;": "Ś",
1513
- "sacute;": "ś",
1514
- "Scaron;": "Š",
1515
- "scaron;": "š",
1516
- "Scedil;": "Ş",
1517
- "scedil;": "ş",
1518
- "scnsim;": "⋩",
1519
- "searhk;": "⤥",
1520
- "seswar;": "⤩",
1521
- "sfrown;": "⌢",
1522
- "SHCHcy;": "Щ",
1523
- "shchcy;": "щ",
1524
- "sigmaf;": "ς",
1525
- "sigmav;": "ς",
1526
- "simdot;": "⩪",
1527
- "smashp;": "⨳",
1528
- "SOFTcy;": "Ь",
1529
- "softcy;": "ь",
1530
- "solbar;": "⌿",
1531
- "spades;": "♠",
1532
- "sqcaps;": "⊓︀",
1533
- "sqcups;": "⊔︀",
1534
- "sqsube;": "⊑",
1535
- "sqsupe;": "⊒",
1536
- "Square;": "□",
1537
- "square;": "□",
1538
- "squarf;": "▪",
1539
- "ssetmn;": "∖",
1540
- "ssmile;": "⌣",
1541
- "sstarf;": "⋆",
1542
- "subdot;": "⪽",
1543
- "Subset;": "⋐",
1544
- "subset;": "⊂",
1545
- "subsim;": "⫇",
1546
- "subsub;": "⫕",
1547
- "subsup;": "⫓",
1548
- "succeq;": "⪰",
1549
- "supdot;": "⪾",
1550
- "Supset;": "⋑",
1551
- "supset;": "⊃",
1552
- "supsim;": "⫈",
1553
- "supsub;": "⫔",
1554
- "supsup;": "⫖",
1555
- "swarhk;": "⤦",
1556
- "swnwar;": "⤪",
1557
- "target;": "⌖",
1558
- "Tcaron;": "Ť",
1559
- "tcaron;": "ť",
1560
- "Tcedil;": "Ţ",
1561
- "tcedil;": "ţ",
1562
- "telrec;": "⌕",
1563
- "there4;": "∴",
1564
- "thetav;": "ϑ",
1565
- "thinsp;": " ",
1566
- "thksim;": "∼",
1567
- "timesb;": "⊠",
1568
- "timesd;": "⨰",
1569
- "topbot;": "⌶",
1570
- "topcir;": "⫱",
1571
- "tprime;": "‴",
1572
- "tridot;": "◬",
1573
- "Tstrok;": "Ŧ",
1574
- "tstrok;": "ŧ",
1575
- "Uacute;": "Ú",
1576
- "uacute;": "ú",
1577
- "Ubreve;": "Ŭ",
1578
- "ubreve;": "ŭ",
1579
- "Udblac;": "Ű",
1580
- "udblac;": "ű",
1581
- "ufisht;": "⥾",
1582
- "Ugrave;": "Ù",
1583
- "ugrave;": "ù",
1584
- "ulcorn;": "⌜",
1585
- "ulcrop;": "⌏",
1586
- "urcorn;": "⌝",
1587
- "urcrop;": "⌎",
1588
- "Utilde;": "Ũ",
1589
- "utilde;": "ũ",
1590
- "vangrt;": "⦜",
1591
- "varphi;": "ϕ",
1592
- "varrho;": "ϱ",
1593
- "Vdashl;": "⫦",
1594
- "veebar;": "⊻",
1595
- "vellip;": "⋮",
1596
- "Verbar;": "‖",
1597
- "verbar;": "|",
1598
- "vsubnE;": "⫋︀",
1599
- "vsubne;": "⊊︀",
1600
- "vsupnE;": "⫌︀",
1601
- "vsupne;": "⊋︀",
1602
- "Vvdash;": "⊪",
1603
- "wedbar;": "⩟",
1604
- "wedgeq;": "≙",
1605
- "weierp;": "℘",
1606
- "wreath;": "≀",
1607
- "xoplus;": "⨁",
1608
- "xotime;": "⨂",
1609
- "xsqcup;": "⨆",
1610
- "xuplus;": "⨄",
1611
- "xwedge;": "⋀",
1612
- "Yacute;": "Ý",
1613
- "yacute;": "ý",
1614
- "Zacute;": "Ź",
1615
- "zacute;": "ź",
1616
- "Zcaron;": "Ž",
1617
- "zcaron;": "ž",
1618
- "zeetrf;": "ℨ",
1619
- "alefsym;": "ℵ",
1620
- "angrtvb;": "⊾",
1621
- "angzarr;": "⍼",
1622
- "asympeq;": "≍",
1623
- "backsim;": "∽",
1624
- "Because;": "∵",
1625
- "because;": "∵",
1626
- "bemptyv;": "⦰",
1627
- "between;": "≬",
1628
- "bigcirc;": "◯",
1629
- "bigodot;": "⨀",
1630
- "bigstar;": "★",
1631
- "bnequiv;": "≡⃥",
1632
- "boxplus;": "⊞",
1633
- "Cayleys;": "ℭ",
1634
- "Cconint;": "∰",
1635
- "ccupssm;": "⩐",
1636
- "Cedilla;": "¸",
1637
- "cemptyv;": "⦲",
1638
- "cirscir;": "⧂",
1639
- "coloneq;": "≔",
1640
- "congdot;": "⩭",
1641
- "cudarrl;": "⤸",
1642
- "cudarrr;": "⤵",
1643
- "cularrp;": "⤽",
1644
- "curarrm;": "⤼",
1645
- "dbkarow;": "⤏",
1646
- "ddagger;": "‡",
1647
- "ddotseq;": "⩷",
1648
- "demptyv;": "⦱",
1649
- "Diamond;": "⋄",
1650
- "diamond;": "⋄",
1651
- "digamma;": "ϝ",
1652
- "dotplus;": "∔",
1653
- "DownTee;": "⊤",
1654
- "dwangle;": "⦦",
1655
- "Element;": "∈",
1656
- "Epsilon;": "Ε",
1657
- "epsilon;": "ε",
1658
- "eqcolon;": "≕",
1659
- "equivDD;": "⩸",
1660
- "gesdoto;": "⪂",
1661
- "gtquest;": "⩼",
1662
- "gtrless;": "≷",
1663
- "harrcir;": "⥈",
1664
- "Implies;": "⇒",
1665
- "intprod;": "⨼",
1666
- "isindot;": "⋵",
1667
- "larrbfs;": "⤟",
1668
- "larrsim;": "⥳",
1669
- "lbrksld;": "⦏",
1670
- "lbrkslu;": "⦍",
1671
- "ldrdhar;": "⥧",
1672
- "LeftTee;": "⊣",
1673
- "lesdoto;": "⪁",
1674
- "lessdot;": "⋖",
1675
- "lessgtr;": "≶",
1676
- "lesssim;": "≲",
1677
- "lotimes;": "⨴",
1678
- "lozenge;": "◊",
1679
- "ltquest;": "⩻",
1680
- "luruhar;": "⥦",
1681
- "maltese;": "✠",
1682
- "minusdu;": "⨪",
1683
- "napprox;": "≉",
1684
- "natural;": "♮",
1685
- "nearrow;": "↗",
1686
- "NewLine;": "\n",
1687
- "nexists;": "∄",
1688
- "NoBreak;": "⁠",
1689
- "notinva;": "∉",
1690
- "notinvb;": "⋷",
1691
- "notinvc;": "⋶",
1692
- "NotLess;": "≮",
1693
- "notniva;": "∌",
1694
- "notnivb;": "⋾",
1695
- "notnivc;": "⋽",
1696
- "npolint;": "⨔",
1697
- "npreceq;": "⪯̸",
1698
- "nsqsube;": "⋢",
1699
- "nsqsupe;": "⋣",
1700
- "nsubset;": "⊂⃒",
1701
- "nsucceq;": "⪰̸",
1702
- "nsupset;": "⊃⃒",
1703
- "nvinfin;": "⧞",
1704
- "nvltrie;": "⊴⃒",
1705
- "nvrtrie;": "⊵⃒",
1706
- "nwarrow;": "↖",
1707
- "olcross;": "⦻",
1708
- "Omicron;": "Ο",
1709
- "omicron;": "ο",
1710
- "orderof;": "ℴ",
1711
- "orslope;": "⩗",
1712
- "OverBar;": "‾",
1713
- "pertenk;": "‱",
1714
- "planckh;": "ℎ",
1715
- "pluscir;": "⨢",
1716
- "plussim;": "⨦",
1717
- "plustwo;": "⨧",
1718
- "precsim;": "≾",
1719
- "Product;": "∏",
1720
- "quatint;": "⨖",
1721
- "questeq;": "≟",
1722
- "rarrbfs;": "⤠",
1723
- "rarrsim;": "⥴",
1724
- "rbrksld;": "⦎",
1725
- "rbrkslu;": "⦐",
1726
- "rdldhar;": "⥩",
1727
- "realine;": "ℛ",
1728
- "rotimes;": "⨵",
1729
- "ruluhar;": "⥨",
1730
- "searrow;": "↘",
1731
- "simplus;": "⨤",
1732
- "simrarr;": "⥲",
1733
- "subedot;": "⫃",
1734
- "submult;": "⫁",
1735
- "subplus;": "⪿",
1736
- "subrarr;": "⥹",
1737
- "succsim;": "≿",
1738
- "supdsub;": "⫘",
1739
- "supedot;": "⫄",
1740
- "suphsol;": "⟉",
1741
- "suphsub;": "⫗",
1742
- "suplarr;": "⥻",
1743
- "supmult;": "⫂",
1744
- "supplus;": "⫀",
1745
- "swarrow;": "↙",
1746
- "topfork;": "⫚",
1747
- "triplus;": "⨹",
1748
- "tritime;": "⨻",
1749
- "UpArrow;": "↑",
1750
- "Uparrow;": "⇑",
1751
- "uparrow;": "↑",
1752
- "Upsilon;": "Υ",
1753
- "upsilon;": "υ",
1754
- "uwangle;": "⦧",
1755
- "vzigzag;": "⦚",
1756
- "zigrarr;": "⇝",
1757
- "andslope;": "⩘",
1758
- "angmsdaa;": "⦨",
1759
- "angmsdab;": "⦩",
1760
- "angmsdac;": "⦪",
1761
- "angmsdad;": "⦫",
1762
- "angmsdae;": "⦬",
1763
- "angmsdaf;": "⦭",
1764
- "angmsdag;": "⦮",
1765
- "angmsdah;": "⦯",
1766
- "angrtvbd;": "⦝",
1767
- "approxeq;": "≊",
1768
- "awconint;": "∳",
1769
- "backcong;": "≌",
1770
- "barwedge;": "⌅",
1771
- "bbrktbrk;": "⎶",
1772
- "bigoplus;": "⨁",
1773
- "bigsqcup;": "⨆",
1774
- "biguplus;": "⨄",
1775
- "bigwedge;": "⋀",
1776
- "boxminus;": "⊟",
1777
- "boxtimes;": "⊠",
1778
- "bsolhsub;": "⟈",
1779
- "capbrcup;": "⩉",
1780
- "circledR;": "®",
1781
- "circledS;": "Ⓢ",
1782
- "cirfnint;": "⨐",
1783
- "clubsuit;": "♣",
1784
- "cupbrcap;": "⩈",
1785
- "curlyvee;": "⋎",
1786
- "cwconint;": "∲",
1787
- "DDotrahd;": "⤑",
1788
- "doteqdot;": "≑",
1789
- "DotEqual;": "≐",
1790
- "dotminus;": "∸",
1791
- "drbkarow;": "⤐",
1792
- "dzigrarr;": "⟿",
1793
- "elinters;": "⏧",
1794
- "emptyset;": "∅",
1795
- "eqvparsl;": "⧥",
1796
- "fpartint;": "⨍",
1797
- "geqslant;": "⩾",
1798
- "gesdotol;": "⪄",
1799
- "gnapprox;": "⪊",
1800
- "hksearow;": "⤥",
1801
- "hkswarow;": "⤦",
1802
- "imagline;": "ℐ",
1803
- "imagpart;": "ℑ",
1804
- "infintie;": "⧝",
1805
- "integers;": "ℤ",
1806
- "Integral;": "∫",
1807
- "intercal;": "⊺",
1808
- "intlarhk;": "⨗",
1809
- "laemptyv;": "⦴",
1810
- "ldrushar;": "⥋",
1811
- "leqslant;": "⩽",
1812
- "lesdotor;": "⪃",
1813
- "LessLess;": "⪡",
1814
- "llcorner;": "⌞",
1815
- "lnapprox;": "⪉",
1816
- "lrcorner;": "⌟",
1817
- "lurdshar;": "⥊",
1818
- "mapstoup;": "↥",
1819
- "multimap;": "⊸",
1820
- "naturals;": "ℕ",
1821
- "ncongdot;": "⩭̸",
1822
- "NotEqual;": "≠",
1823
- "notindot;": "⋵̸",
1824
- "NotTilde;": "≁",
1825
- "otimesas;": "⨶",
1826
- "parallel;": "∥",
1827
- "PartialD;": "∂",
1828
- "plusacir;": "⨣",
1829
- "pointint;": "⨕",
1830
- "Precedes;": "≺",
1831
- "precneqq;": "⪵",
1832
- "precnsim;": "⋨",
1833
- "profalar;": "⌮",
1834
- "profline;": "⌒",
1835
- "profsurf;": "⌓",
1836
- "raemptyv;": "⦳",
1837
- "realpart;": "ℜ",
1838
- "RightTee;": "⊢",
1839
- "rppolint;": "⨒",
1840
- "rtriltri;": "⧎",
1841
- "scpolint;": "⨓",
1842
- "setminus;": "∖",
1843
- "shortmid;": "∣",
1844
- "smeparsl;": "⧤",
1845
- "sqsubset;": "⊏",
1846
- "sqsupset;": "⊐",
1847
- "subseteq;": "⊆",
1848
- "Succeeds;": "≻",
1849
- "succneqq;": "⪶",
1850
- "succnsim;": "⋩",
1851
- "SuchThat;": "∋",
1852
- "Superset;": "⊃",
1853
- "supseteq;": "⊇",
1854
- "thetasym;": "ϑ",
1855
- "thicksim;": "∼",
1856
- "timesbar;": "⨱",
1857
- "triangle;": "▵",
1858
- "triminus;": "⨺",
1859
- "trpezium;": "⏢",
1860
- "Uarrocir;": "⥉",
1861
- "ulcorner;": "⌜",
1862
- "UnderBar;": "_",
1863
- "urcorner;": "⌝",
1864
- "varkappa;": "ϰ",
1865
- "varsigma;": "ς",
1866
- "vartheta;": "ϑ",
1867
- "backprime;": "‵",
1868
- "backsimeq;": "⋍",
1869
- "Backslash;": "∖",
1870
- "bigotimes;": "⨂",
1871
- "CenterDot;": "·",
1872
- "centerdot;": "·",
1873
- "checkmark;": "✓",
1874
- "CircleDot;": "⊙",
1875
- "complexes;": "ℂ",
1876
- "Congruent;": "≡",
1877
- "Coproduct;": "∐",
1878
- "dotsquare;": "⊡",
1879
- "DoubleDot;": "¨",
1880
- "DownArrow;": "↓",
1881
- "Downarrow;": "⇓",
1882
- "downarrow;": "↓",
1883
- "DownBreve;": "̑",
1884
- "gtrapprox;": "⪆",
1885
- "gtreqless;": "⋛",
1886
- "gvertneqq;": "≩︀",
1887
- "heartsuit;": "♥",
1888
- "HumpEqual;": "≏",
1889
- "LeftArrow;": "←",
1890
- "Leftarrow;": "⇐",
1891
- "leftarrow;": "←",
1892
- "LeftFloor;": "⌊",
1893
- "lesseqgtr;": "⋚",
1894
- "LessTilde;": "≲",
1895
- "lvertneqq;": "≨︀",
1896
- "Mellintrf;": "ℳ",
1897
- "MinusPlus;": "∓",
1898
- "ngeqslant;": "⩾̸",
1899
- "nleqslant;": "⩽̸",
1900
- "NotCupCap;": "≭",
1901
- "NotExists;": "∄",
1902
- "NotSubset;": "⊂⃒",
1903
- "nparallel;": "∦",
1904
- "nshortmid;": "∤",
1905
- "nsubseteq;": "⊈",
1906
- "nsupseteq;": "⊉",
1907
- "OverBrace;": "⏞",
1908
- "pitchfork;": "⋔",
1909
- "PlusMinus;": "±",
1910
- "rationals;": "ℚ",
1911
- "spadesuit;": "♠",
1912
- "subseteqq;": "⫅",
1913
- "subsetneq;": "⊊",
1914
- "supseteqq;": "⫆",
1915
- "supsetneq;": "⊋",
1916
- "Therefore;": "∴",
1917
- "therefore;": "∴",
1918
- "ThinSpace;": " ",
1919
- "triangleq;": "≜",
1920
- "TripleDot;": "⃛",
1921
- "UnionPlus;": "⊎",
1922
- "varpropto;": "∝",
1923
- "Bernoullis;": "ℬ",
1924
- "circledast;": "⊛",
1925
- "CirclePlus;": "⊕",
1926
- "complement;": "∁",
1927
- "curlywedge;": "⋏",
1928
- "eqslantgtr;": "⪖",
1929
- "EqualTilde;": "≂",
1930
- "Fouriertrf;": "ℱ",
1931
- "gtreqqless;": "⪌",
1932
- "ImaginaryI;": "ⅈ",
1933
- "Laplacetrf;": "ℒ",
1934
- "LeftVector;": "↼",
1935
- "lessapprox;": "⪅",
1936
- "lesseqqgtr;": "⪋",
1937
- "Lleftarrow;": "⇚",
1938
- "lmoustache;": "⎰",
1939
- "longmapsto;": "⟼",
1940
- "mapstodown;": "↧",
1941
- "mapstoleft;": "↤",
1942
- "nLeftarrow;": "⇍",
1943
- "nleftarrow;": "↚",
1944
- "NotElement;": "∉",
1945
- "NotGreater;": "≯",
1946
- "nsubseteqq;": "⫅̸",
1947
- "nsupseteqq;": "⫆̸",
1948
- "precapprox;": "⪷",
1949
- "Proportion;": "∷",
1950
- "RightArrow;": "→",
1951
- "Rightarrow;": "⇒",
1952
- "rightarrow;": "→",
1953
- "RightFloor;": "⌋",
1954
- "rmoustache;": "⎱",
1955
- "sqsubseteq;": "⊑",
1956
- "sqsupseteq;": "⊒",
1957
- "subsetneqq;": "⫋",
1958
- "succapprox;": "⪸",
1959
- "supsetneqq;": "⫌",
1960
- "ThickSpace;": "  ",
1961
- "TildeEqual;": "≃",
1962
- "TildeTilde;": "≈",
1963
- "UnderBrace;": "⏟",
1964
- "UpArrowBar;": "⤒",
1965
- "UpTeeArrow;": "↥",
1966
- "upuparrows;": "⇈",
1967
- "varepsilon;": "ϵ",
1968
- "varnothing;": "∅",
1969
- "backepsilon;": "϶",
1970
- "blacksquare;": "▪",
1971
- "circledcirc;": "⊚",
1972
- "circleddash;": "⊝",
1973
- "CircleMinus;": "⊖",
1974
- "CircleTimes;": "⊗",
1975
- "curlyeqprec;": "⋞",
1976
- "curlyeqsucc;": "⋟",
1977
- "diamondsuit;": "♦",
1978
- "eqslantless;": "⪕",
1979
- "Equilibrium;": "⇌",
1980
- "expectation;": "ℰ",
1981
- "GreaterLess;": "≷",
1982
- "LeftCeiling;": "⌈",
1983
- "LessGreater;": "≶",
1984
- "MediumSpace;": " ",
1985
- "NotLessLess;": "≪̸",
1986
- "NotPrecedes;": "⊀",
1987
- "NotSucceeds;": "⊁",
1988
- "NotSuperset;": "⊃⃒",
1989
- "nRightarrow;": "⇏",
1990
- "nrightarrow;": "↛",
1991
- "OverBracket;": "⎴",
1992
- "preccurlyeq;": "≼",
1993
- "precnapprox;": "⪹",
1994
- "quaternions;": "ℍ",
1995
- "RightVector;": "⇀",
1996
- "Rrightarrow;": "⇛",
1997
- "RuleDelayed;": "⧴",
1998
- "SmallCircle;": "∘",
1999
- "SquareUnion;": "⊔",
2000
- "straightphi;": "ϕ",
2001
- "SubsetEqual;": "⊆",
2002
- "succcurlyeq;": "≽",
2003
- "succnapprox;": "⪺",
2004
- "thickapprox;": "≈",
2005
- "UpDownArrow;": "↕",
2006
- "Updownarrow;": "⇕",
2007
- "updownarrow;": "↕",
2008
- "VerticalBar;": "∣",
2009
- "blacklozenge;": "⧫",
2010
- "DownArrowBar;": "⤓",
2011
- "DownTeeArrow;": "↧",
2012
- "ExponentialE;": "ⅇ",
2013
- "exponentiale;": "ⅇ",
2014
- "GreaterEqual;": "≥",
2015
- "GreaterTilde;": "≳",
2016
- "HilbertSpace;": "ℋ",
2017
- "HumpDownHump;": "≎",
2018
- "Intersection;": "⋂",
2019
- "LeftArrowBar;": "⇤",
2020
- "LeftTeeArrow;": "↤",
2021
- "LeftTriangle;": "⊲",
2022
- "LeftUpVector;": "↿",
2023
- "NotCongruent;": "≢",
2024
- "NotHumpEqual;": "≏̸",
2025
- "NotLessEqual;": "≰",
2026
- "NotLessTilde;": "≴",
2027
- "Proportional;": "∝",
2028
- "RightCeiling;": "⌉",
2029
- "risingdotseq;": "≓",
2030
- "RoundImplies;": "⥰",
2031
- "ShortUpArrow;": "↑",
2032
- "SquareSubset;": "⊏",
2033
- "triangledown;": "▿",
2034
- "triangleleft;": "◃",
2035
- "UnderBracket;": "⎵",
2036
- "varsubsetneq;": "⊊︀",
2037
- "varsupsetneq;": "⊋︀",
2038
- "VerticalLine;": "|",
2039
- "ApplyFunction;": "⁡",
2040
- "bigtriangleup;": "△",
2041
- "blacktriangle;": "▴",
2042
- "DifferentialD;": "ⅆ",
2043
- "divideontimes;": "⋇",
2044
- "DoubleLeftTee;": "⫤",
2045
- "DoubleUpArrow;": "⇑",
2046
- "fallingdotseq;": "≒",
2047
- "hookleftarrow;": "↩",
2048
- "leftarrowtail;": "↢",
2049
- "leftharpoonup;": "↼",
2050
- "LeftTeeVector;": "⥚",
2051
- "LeftVectorBar;": "⥒",
2052
- "LessFullEqual;": "≦",
2053
- "LongLeftArrow;": "⟵",
2054
- "Longleftarrow;": "⟸",
2055
- "longleftarrow;": "⟵",
2056
- "looparrowleft;": "↫",
2057
- "measuredangle;": "∡",
2058
- "NotEqualTilde;": "≂̸",
2059
- "NotTildeEqual;": "≄",
2060
- "NotTildeTilde;": "≉",
2061
- "ntriangleleft;": "⋪",
2062
- "Poincareplane;": "ℌ",
2063
- "PrecedesEqual;": "⪯",
2064
- "PrecedesTilde;": "≾",
2065
- "RightArrowBar;": "⇥",
2066
- "RightTeeArrow;": "↦",
2067
- "RightTriangle;": "⊳",
2068
- "RightUpVector;": "↾",
2069
- "shortparallel;": "∥",
2070
- "smallsetminus;": "∖",
2071
- "SucceedsEqual;": "⪰",
2072
- "SucceedsTilde;": "≿",
2073
- "SupersetEqual;": "⊇",
2074
- "triangleright;": "▹",
2075
- "UpEquilibrium;": "⥮",
2076
- "upharpoonleft;": "↿",
2077
- "varsubsetneqq;": "⫋︀",
2078
- "varsupsetneqq;": "⫌︀",
2079
- "VerticalTilde;": "≀",
2080
- "VeryThinSpace;": " ",
2081
- "curvearrowleft;": "↶",
2082
- "DiacriticalDot;": "˙",
2083
- "doublebarwedge;": "⌆",
2084
- "DoubleRightTee;": "⊨",
2085
- "downdownarrows;": "⇊",
2086
- "DownLeftVector;": "↽",
2087
- "GreaterGreater;": "⪢",
2088
- "hookrightarrow;": "↪",
2089
- "HorizontalLine;": "─",
2090
- "InvisibleComma;": "⁣",
2091
- "InvisibleTimes;": "⁢",
2092
- "LeftDownVector;": "⇃",
2093
- "leftleftarrows;": "⇇",
2094
- "LeftRightArrow;": "↔",
2095
- "Leftrightarrow;": "⇔",
2096
- "leftrightarrow;": "↔",
2097
- "leftthreetimes;": "⋋",
2098
- "LessSlantEqual;": "⩽",
2099
- "LongRightArrow;": "⟶",
2100
- "Longrightarrow;": "⟹",
2101
- "longrightarrow;": "⟶",
2102
- "looparrowright;": "↬",
2103
- "LowerLeftArrow;": "↙",
2104
- "NestedLessLess;": "≪",
2105
- "NotGreaterLess;": "≹",
2106
- "NotLessGreater;": "≸",
2107
- "NotSubsetEqual;": "⊈",
2108
- "NotVerticalBar;": "∤",
2109
- "nshortparallel;": "∦",
2110
- "ntriangleright;": "⋫",
2111
- "OpenCurlyQuote;": "‘",
2112
- "ReverseElement;": "∋",
2113
- "rightarrowtail;": "↣",
2114
- "rightharpoonup;": "⇀",
2115
- "RightTeeVector;": "⥛",
2116
- "RightVectorBar;": "⥓",
2117
- "ShortDownArrow;": "↓",
2118
- "ShortLeftArrow;": "←",
2119
- "SquareSuperset;": "⊐",
2120
- "TildeFullEqual;": "≅",
2121
- "trianglelefteq;": "⊴",
2122
- "upharpoonright;": "↾",
2123
- "UpperLeftArrow;": "↖",
2124
- "ZeroWidthSpace;": "​",
2125
- "bigtriangledown;": "▽",
2126
- "circlearrowleft;": "↺",
2127
- "CloseCurlyQuote;": "’",
2128
- "ContourIntegral;": "∮",
2129
- "curvearrowright;": "↷",
2130
- "DoubleDownArrow;": "⇓",
2131
- "DoubleLeftArrow;": "⇐",
2132
- "downharpoonleft;": "⇃",
2133
- "DownRightVector;": "⇁",
2134
- "leftharpoondown;": "↽",
2135
- "leftrightarrows;": "⇆",
2136
- "LeftRightVector;": "⥎",
2137
- "LeftTriangleBar;": "⧏",
2138
- "LeftUpTeeVector;": "⥠",
2139
- "LeftUpVectorBar;": "⥘",
2140
- "LowerRightArrow;": "↘",
2141
- "nLeftrightarrow;": "⇎",
2142
- "nleftrightarrow;": "↮",
2143
- "NotGreaterEqual;": "≱",
2144
- "NotGreaterTilde;": "≵",
2145
- "NotHumpDownHump;": "≎̸",
2146
- "NotLeftTriangle;": "⋪",
2147
- "NotSquareSubset;": "⊏̸",
2148
- "ntrianglelefteq;": "⋬",
2149
- "OverParenthesis;": "⏜",
2150
- "RightDownVector;": "⇂",
2151
- "rightleftarrows;": "⇄",
2152
- "rightsquigarrow;": "↝",
2153
- "rightthreetimes;": "⋌",
2154
- "ShortRightArrow;": "→",
2155
- "straightepsilon;": "ϵ",
2156
- "trianglerighteq;": "⊵",
2157
- "UpperRightArrow;": "↗",
2158
- "vartriangleleft;": "⊲",
2159
- "circlearrowright;": "↻",
2160
- "DiacriticalAcute;": "´",
2161
- "DiacriticalGrave;": "`",
2162
- "DiacriticalTilde;": "˜",
2163
- "DoubleRightArrow;": "⇒",
2164
- "DownArrowUpArrow;": "⇵",
2165
- "downharpoonright;": "⇂",
2166
- "EmptySmallSquare;": "◻",
2167
- "GreaterEqualLess;": "⋛",
2168
- "GreaterFullEqual;": "≧",
2169
- "LeftAngleBracket;": "⟨",
2170
- "LeftUpDownVector;": "⥑",
2171
- "LessEqualGreater;": "⋚",
2172
- "NonBreakingSpace;": " ",
2173
- "NotPrecedesEqual;": "⪯̸",
2174
- "NotRightTriangle;": "⋫",
2175
- "NotSucceedsEqual;": "⪰̸",
2176
- "NotSucceedsTilde;": "≿̸",
2177
- "NotSupersetEqual;": "⊉",
2178
- "ntrianglerighteq;": "⋭",
2179
- "rightharpoondown;": "⇁",
2180
- "rightrightarrows;": "⇉",
2181
- "RightTriangleBar;": "⧐",
2182
- "RightUpTeeVector;": "⥜",
2183
- "RightUpVectorBar;": "⥔",
2184
- "twoheadleftarrow;": "↞",
2185
- "UnderParenthesis;": "⏝",
2186
- "UpArrowDownArrow;": "⇅",
2187
- "vartriangleright;": "⊳",
2188
- "blacktriangledown;": "▾",
2189
- "blacktriangleleft;": "◂",
2190
- "DoubleUpDownArrow;": "⇕",
2191
- "DoubleVerticalBar;": "∥",
2192
- "DownLeftTeeVector;": "⥞",
2193
- "DownLeftVectorBar;": "⥖",
2194
- "FilledSmallSquare;": "◼",
2195
- "GreaterSlantEqual;": "⩾",
2196
- "LeftDoubleBracket;": "⟦",
2197
- "LeftDownTeeVector;": "⥡",
2198
- "LeftDownVectorBar;": "⥙",
2199
- "leftrightharpoons;": "⇋",
2200
- "LeftTriangleEqual;": "⊴",
2201
- "NegativeThinSpace;": "​",
2202
- "NotGreaterGreater;": "≫̸",
2203
- "NotLessSlantEqual;": "⩽̸",
2204
- "NotNestedLessLess;": "⪡̸",
2205
- "NotReverseElement;": "∌",
2206
- "NotSquareSuperset;": "⊐̸",
2207
- "NotTildeFullEqual;": "≇",
2208
- "RightAngleBracket;": "⟩",
2209
- "rightleftharpoons;": "⇌",
2210
- "RightUpDownVector;": "⥏",
2211
- "SquareSubsetEqual;": "⊑",
2212
- "twoheadrightarrow;": "↠",
2213
- "VerticalSeparator;": "❘",
2214
- "blacktriangleright;": "▸",
2215
- "DownRightTeeVector;": "⥟",
2216
- "DownRightVectorBar;": "⥗",
2217
- "LongLeftRightArrow;": "⟷",
2218
- "Longleftrightarrow;": "⟺",
2219
- "longleftrightarrow;": "⟷",
2220
- "NegativeThickSpace;": "​",
2221
- "NotLeftTriangleBar;": "⧏̸",
2222
- "PrecedesSlantEqual;": "≼",
2223
- "ReverseEquilibrium;": "⇋",
2224
- "RightDoubleBracket;": "⟧",
2225
- "RightDownTeeVector;": "⥝",
2226
- "RightDownVectorBar;": "⥕",
2227
- "RightTriangleEqual;": "⊵",
2228
- "SquareIntersection;": "⊓",
2229
- "SucceedsSlantEqual;": "≽",
2230
- "DoubleLongLeftArrow;": "⟸",
2231
- "DownLeftRightVector;": "⥐",
2232
- "LeftArrowRightArrow;": "⇆",
2233
- "leftrightsquigarrow;": "↭",
2234
- "NegativeMediumSpace;": "​",
2235
- "NotGreaterFullEqual;": "≧̸",
2236
- "NotRightTriangleBar;": "⧐̸",
2237
- "RightArrowLeftArrow;": "⇄",
2238
- "SquareSupersetEqual;": "⊒",
2239
- "CapitalDifferentialD;": "ⅅ",
2240
- "DoubleLeftRightArrow;": "⇔",
2241
- "DoubleLongRightArrow;": "⟹",
2242
- "EmptyVerySmallSquare;": "▫",
2243
- "NestedGreaterGreater;": "≫",
2244
- "NotDoubleVerticalBar;": "∦",
2245
- "NotGreaterSlantEqual;": "⩾̸",
2246
- "NotLeftTriangleEqual;": "⋬",
2247
- "NotSquareSubsetEqual;": "⋢",
2248
- "OpenCurlyDoubleQuote;": "“",
2249
- "ReverseUpEquilibrium;": "⥯",
2250
- "CloseCurlyDoubleQuote;": "”",
2251
- "DoubleContourIntegral;": "∯",
2252
- "FilledVerySmallSquare;": "▪",
2253
- "NegativeVeryThinSpace;": "​",
2254
- "NotPrecedesSlantEqual;": "⋠",
2255
- "NotRightTriangleEqual;": "⋭",
2256
- "NotSucceedsSlantEqual;": "⋡",
2257
- "DiacriticalDoubleAcute;": "˝",
2258
- "NotSquareSupersetEqual;": "⋣",
2259
- "NotNestedGreaterGreater;": "⪢̸",
2260
- "ClockwiseContourIntegral;": "∲",
2261
- "DoubleLongLeftRightArrow;": "⟺",
2262
- "CounterClockwiseContourIntegral;": "∳"
2263
- };
2264
-
2265
- // lazy compute this to make this file tree-shakable for browser
2266
- let maxCRNameLength;
2267
- const decodeHtml = (rawText, asAttr) => {
2268
- let offset = 0;
2269
- const end = rawText.length;
2270
- let decodedText = '';
2271
- function advance(length) {
2272
- offset += length;
2273
- rawText = rawText.slice(length);
2274
- }
2275
- while (offset < end) {
2276
- const head = /&(?:#x?)?/i.exec(rawText);
2277
- if (!head || offset + head.index >= end) {
2278
- const remaining = end - offset;
2279
- decodedText += rawText.slice(0, remaining);
2280
- advance(remaining);
2281
- break;
2282
- }
2283
- // Advance to the "&".
2284
- decodedText += rawText.slice(0, head.index);
2285
- advance(head.index);
2286
- if (head[0] === '&') {
2287
- // Named character reference.
2288
- let name = '';
2289
- let value = undefined;
2290
- if (/[0-9a-z]/i.test(rawText[1])) {
2291
- if (!maxCRNameLength) {
2292
- maxCRNameLength = Object.keys(namedCharacterReferences).reduce((max, name) => Math.max(max, name.length), 0);
2293
- }
2294
- for (let length = maxCRNameLength; !value && length > 0; --length) {
2295
- name = rawText.slice(1, 1 + length);
2296
- value = namedCharacterReferences[name];
2297
- }
2298
- if (value) {
2299
- const semi = name.endsWith(';');
2300
- if (asAttr &&
2301
- !semi &&
2302
- /[=a-z0-9]/i.test(rawText[name.length + 1] || '')) {
2303
- decodedText += '&' + name;
2304
- advance(1 + name.length);
2305
- }
2306
- else {
2307
- decodedText += value;
2308
- advance(1 + name.length);
2309
- }
2310
- }
2311
- else {
2312
- decodedText += '&' + name;
2313
- advance(1 + name.length);
2314
- }
2315
- }
2316
- else {
2317
- decodedText += '&';
2318
- advance(1);
2319
- }
2320
- }
2321
- else {
2322
- // Numeric character reference.
2323
- const hex = head[0] === '&#x';
2324
- const pattern = hex ? /^&#x([0-9a-f]+);?/i : /^&#([0-9]+);?/;
2325
- const body = pattern.exec(rawText);
2326
- if (!body) {
2327
- decodedText += head[0];
2328
- advance(head[0].length);
2329
- }
2330
- else {
2331
- // https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state
2332
- let cp = Number.parseInt(body[1], hex ? 16 : 10);
2333
- if (cp === 0) {
2334
- cp = 0xfffd;
2335
- }
2336
- else if (cp > 0x10ffff) {
2337
- cp = 0xfffd;
2338
- }
2339
- else if (cp >= 0xd800 && cp <= 0xdfff) {
2340
- cp = 0xfffd;
2341
- }
2342
- else if ((cp >= 0xfdd0 && cp <= 0xfdef) || (cp & 0xfffe) === 0xfffe) ;
2343
- else if ((cp >= 0x01 && cp <= 0x08) ||
2344
- cp === 0x0b ||
2345
- (cp >= 0x0d && cp <= 0x1f) ||
2346
- (cp >= 0x7f && cp <= 0x9f)) {
2347
- cp = CCR_REPLACEMENTS[cp] || cp;
2348
- }
2349
- decodedText += String.fromCodePoint(cp);
2350
- advance(body[0].length);
2351
- }
2352
- }
2353
- }
2354
- return decodedText;
2355
- };
2356
- // https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state
2357
- const CCR_REPLACEMENTS = {
2358
- 0x80: 0x20ac,
2359
- 0x82: 0x201a,
2360
- 0x83: 0x0192,
2361
- 0x84: 0x201e,
2362
- 0x85: 0x2026,
2363
- 0x86: 0x2020,
2364
- 0x87: 0x2021,
2365
- 0x88: 0x02c6,
2366
- 0x89: 0x2030,
2367
- 0x8a: 0x0160,
2368
- 0x8b: 0x2039,
2369
- 0x8c: 0x0152,
2370
- 0x8e: 0x017d,
2371
- 0x91: 0x2018,
2372
- 0x92: 0x2019,
2373
- 0x93: 0x201c,
2374
- 0x94: 0x201d,
2375
- 0x95: 0x2022,
2376
- 0x96: 0x2013,
2377
- 0x97: 0x2014,
2378
- 0x98: 0x02dc,
2379
- 0x99: 0x2122,
2380
- 0x9a: 0x0161,
2381
- 0x9b: 0x203a,
2382
- 0x9c: 0x0153,
2383
- 0x9e: 0x017e,
2384
- 0x9f: 0x0178
2385
- };
2386
-
2387
- const isRawTextContainer = /*#__PURE__*/ shared.makeMap('style,iframe,script,noscript', true);
2388
- const parserOptions = {
2389
- isVoidTag: shared.isVoidTag,
2390
- isNativeTag: tag => shared.isHTMLTag(tag) || shared.isSVGTag(tag),
2391
- isPreTag: tag => tag === 'pre',
2392
- decodeEntities: decodeHtml,
2393
- isBuiltInComponent: (tag) => {
2394
- if (compilerCore.isBuiltInType(tag, `Transition`)) {
2395
- return TRANSITION;
2396
- }
2397
- else if (compilerCore.isBuiltInType(tag, `TransitionGroup`)) {
2398
- return TRANSITION_GROUP;
2399
- }
2400
- },
2401
- // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher
2402
- getNamespace(tag, parent) {
2403
- let ns = parent ? parent.ns : 0 /* DOMNamespaces.HTML */;
2404
- if (parent && ns === 2 /* DOMNamespaces.MATH_ML */) {
2405
- if (parent.tag === 'annotation-xml') {
2406
- if (tag === 'svg') {
2407
- return 1 /* DOMNamespaces.SVG */;
2408
- }
2409
- if (parent.props.some(a => a.type === 6 /* NodeTypes.ATTRIBUTE */ &&
2410
- a.name === 'encoding' &&
2411
- a.value != null &&
2412
- (a.value.content === 'text/html' ||
2413
- a.value.content === 'application/xhtml+xml'))) {
2414
- ns = 0 /* DOMNamespaces.HTML */;
2415
- }
2416
- }
2417
- else if (/^m(?:[ions]|text)$/.test(parent.tag) &&
2418
- tag !== 'mglyph' &&
2419
- tag !== 'malignmark') {
2420
- ns = 0 /* DOMNamespaces.HTML */;
2421
- }
2422
- }
2423
- else if (parent && ns === 1 /* DOMNamespaces.SVG */) {
2424
- if (parent.tag === 'foreignObject' ||
2425
- parent.tag === 'desc' ||
2426
- parent.tag === 'title') {
2427
- ns = 0 /* DOMNamespaces.HTML */;
2428
- }
2429
- }
2430
- if (ns === 0 /* DOMNamespaces.HTML */) {
2431
- if (tag === 'svg') {
2432
- return 1 /* DOMNamespaces.SVG */;
2433
- }
2434
- if (tag === 'math') {
2435
- return 2 /* DOMNamespaces.MATH_ML */;
2436
- }
2437
- }
2438
- return ns;
2439
- },
2440
- // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments
2441
- getTextMode({ tag, ns }) {
2442
- if (ns === 0 /* DOMNamespaces.HTML */) {
2443
- if (tag === 'textarea' || tag === 'title') {
2444
- return 1 /* TextModes.RCDATA */;
2445
- }
2446
- if (isRawTextContainer(tag)) {
2447
- return 2 /* TextModes.RAWTEXT */;
2448
- }
2449
- }
2450
- return 0 /* TextModes.DATA */;
2451
- }
2452
- };
2453
-
2454
- // Parse inline CSS strings for static style attributes into an object.
2455
- // This is a NodeTransform since it works on the static `style` attribute and
2456
- // converts it into a dynamic equivalent:
2457
- // style="color: red" -> :style='{ "color": "red" }'
2458
- // It is then processed by `transformElement` and included in the generated
2459
- // props.
2460
- const transformStyle = node => {
2461
- if (node.type === 1 /* NodeTypes.ELEMENT */) {
2462
- node.props.forEach((p, i) => {
2463
- if (p.type === 6 /* NodeTypes.ATTRIBUTE */ && p.name === 'style' && p.value) {
2464
- // replace p with an expression node
2465
- node.props[i] = {
2466
- type: 7 /* NodeTypes.DIRECTIVE */,
2467
- name: `bind`,
2468
- arg: compilerCore.createSimpleExpression(`style`, true, p.loc),
2469
- exp: parseInlineCSS(p.value.content, p.loc),
2470
- modifiers: [],
2471
- loc: p.loc
2472
- };
2473
- }
2474
- });
2475
- }
2476
- };
2477
- const parseInlineCSS = (cssText, loc) => {
2478
- const normalized = shared.parseStringStyle(cssText);
2479
- return compilerCore.createSimpleExpression(JSON.stringify(normalized), false, loc, 3 /* ConstantTypes.CAN_STRINGIFY */);
2480
- };
2481
-
2482
- function createDOMCompilerError(code, loc) {
2483
- return compilerCore.createCompilerError(code, loc, DOMErrorMessages );
2484
- }
2485
- const DOMErrorMessages = {
2486
- [51 /* DOMErrorCodes.X_V_HTML_NO_EXPRESSION */]: `v-html is missing expression.`,
2487
- [52 /* DOMErrorCodes.X_V_HTML_WITH_CHILDREN */]: `v-html will override element children.`,
2488
- [53 /* DOMErrorCodes.X_V_TEXT_NO_EXPRESSION */]: `v-text is missing expression.`,
2489
- [54 /* DOMErrorCodes.X_V_TEXT_WITH_CHILDREN */]: `v-text will override element children.`,
2490
- [55 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */]: `v-model can only be used on <input>, <textarea> and <select> elements.`,
2491
- [56 /* DOMErrorCodes.X_V_MODEL_ARG_ON_ELEMENT */]: `v-model argument is not supported on plain elements.`,
2492
- [57 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,
2493
- [58 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,
2494
- [59 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */]: `v-show is missing expression.`,
2495
- [60 /* DOMErrorCodes.X_TRANSITION_INVALID_CHILDREN */]: `<Transition> expects exactly one child element or component.`,
2496
- [61 /* DOMErrorCodes.X_IGNORED_SIDE_EFFECT_TAG */]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`
2497
- };
2498
-
2499
- const transformVHtml = (dir, node, context) => {
2500
- const { exp, loc } = dir;
2501
- if (!exp) {
2502
- context.onError(createDOMCompilerError(51 /* DOMErrorCodes.X_V_HTML_NO_EXPRESSION */, loc));
2503
- }
2504
- if (node.children.length) {
2505
- context.onError(createDOMCompilerError(52 /* DOMErrorCodes.X_V_HTML_WITH_CHILDREN */, loc));
2506
- node.children.length = 0;
2507
- }
2508
- return {
2509
- props: [
2510
- compilerCore.createObjectProperty(compilerCore.createSimpleExpression(`innerHTML`, true, loc), exp || compilerCore.createSimpleExpression('', true))
2511
- ]
2512
- };
2513
- };
2514
-
2515
- const transformVText = (dir, node, context) => {
2516
- const { exp, loc } = dir;
2517
- if (!exp) {
2518
- context.onError(createDOMCompilerError(53 /* DOMErrorCodes.X_V_TEXT_NO_EXPRESSION */, loc));
2519
- }
2520
- if (node.children.length) {
2521
- context.onError(createDOMCompilerError(54 /* DOMErrorCodes.X_V_TEXT_WITH_CHILDREN */, loc));
2522
- node.children.length = 0;
2523
- }
2524
- return {
2525
- props: [
2526
- compilerCore.createObjectProperty(compilerCore.createSimpleExpression(`textContent`, true), exp
2527
- ? compilerCore.getConstantType(exp, context) > 0
2528
- ? exp
2529
- : compilerCore.createCallExpression(context.helperString(compilerCore.TO_DISPLAY_STRING), [exp], loc)
2530
- : compilerCore.createSimpleExpression('', true))
2531
- ]
2532
- };
2533
- };
2534
-
2535
- const transformModel = (dir, node, context) => {
2536
- const baseResult = compilerCore.transformModel(dir, node, context);
2537
- // base transform has errors OR component v-model (only need props)
2538
- if (!baseResult.props.length || node.tagType === 1 /* ElementTypes.COMPONENT */) {
2539
- return baseResult;
2540
- }
2541
- if (dir.arg) {
2542
- context.onError(createDOMCompilerError(56 /* DOMErrorCodes.X_V_MODEL_ARG_ON_ELEMENT */, dir.arg.loc));
2543
- }
2544
- function checkDuplicatedValue() {
2545
- const value = compilerCore.findProp(node, 'value');
2546
- if (value) {
2547
- context.onError(createDOMCompilerError(58 /* DOMErrorCodes.X_V_MODEL_UNNECESSARY_VALUE */, value.loc));
2548
- }
2549
- }
2550
- const { tag } = node;
2551
- const isCustomElement = context.isCustomElement(tag);
2552
- if (tag === 'input' ||
2553
- tag === 'textarea' ||
2554
- tag === 'select' ||
2555
- isCustomElement) {
2556
- let directiveToUse = V_MODEL_TEXT;
2557
- let isInvalidType = false;
2558
- if (tag === 'input' || isCustomElement) {
2559
- const type = compilerCore.findProp(node, `type`);
2560
- if (type) {
2561
- if (type.type === 7 /* NodeTypes.DIRECTIVE */) {
2562
- // :type="foo"
2563
- directiveToUse = V_MODEL_DYNAMIC;
2564
- }
2565
- else if (type.value) {
2566
- switch (type.value.content) {
2567
- case 'radio':
2568
- directiveToUse = V_MODEL_RADIO;
2569
- break;
2570
- case 'checkbox':
2571
- directiveToUse = V_MODEL_CHECKBOX;
2572
- break;
2573
- case 'file':
2574
- isInvalidType = true;
2575
- context.onError(createDOMCompilerError(57 /* DOMErrorCodes.X_V_MODEL_ON_FILE_INPUT_ELEMENT */, dir.loc));
2576
- break;
2577
- default:
2578
- // text type
2579
- checkDuplicatedValue();
2580
- break;
2581
- }
2582
- }
2583
- }
2584
- else if (compilerCore.hasDynamicKeyVBind(node)) {
2585
- // element has bindings with dynamic keys, which can possibly contain
2586
- // "type".
2587
- directiveToUse = V_MODEL_DYNAMIC;
2588
- }
2589
- else {
2590
- // text type
2591
- checkDuplicatedValue();
2592
- }
2593
- }
2594
- else if (tag === 'select') {
2595
- directiveToUse = V_MODEL_SELECT;
2596
- }
2597
- else {
2598
- // textarea
2599
- checkDuplicatedValue();
2600
- }
2601
- // inject runtime directive
2602
- // by returning the helper symbol via needRuntime
2603
- // the import will replaced a resolveDirective call.
2604
- if (!isInvalidType) {
2605
- baseResult.needRuntime = context.helper(directiveToUse);
2606
- }
2607
- }
2608
- else {
2609
- context.onError(createDOMCompilerError(55 /* DOMErrorCodes.X_V_MODEL_ON_INVALID_ELEMENT */, dir.loc));
2610
- }
2611
- // native vmodel doesn't need the `modelValue` props since they are also
2612
- // passed to the runtime as `binding.value`. removing it reduces code size.
2613
- baseResult.props = baseResult.props.filter(p => !(p.key.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */ &&
2614
- p.key.content === 'modelValue'));
2615
- return baseResult;
2616
- };
2617
-
2618
- const isEventOptionModifier = /*#__PURE__*/ shared.makeMap(`passive,once,capture`);
2619
- const isNonKeyModifier = /*#__PURE__*/ shared.makeMap(
2620
- // event propagation management
2621
- `stop,prevent,self,` +
2622
- // system modifiers + exact
2623
- `ctrl,shift,alt,meta,exact,` +
2624
- // mouse
2625
- `middle`);
2626
- // left & right could be mouse or key modifiers based on event type
2627
- const maybeKeyModifier = /*#__PURE__*/ shared.makeMap('left,right');
2628
- const isKeyboardEvent = /*#__PURE__*/ shared.makeMap(`onkeyup,onkeydown,onkeypress`, true);
2629
- const resolveModifiers = (key, modifiers, context, loc) => {
2630
- const keyModifiers = [];
2631
- const nonKeyModifiers = [];
2632
- const eventOptionModifiers = [];
2633
- for (let i = 0; i < modifiers.length; i++) {
2634
- const modifier = modifiers[i];
2635
- if (modifier === 'native' &&
2636
- compilerCore.checkCompatEnabled("COMPILER_V_ON_NATIVE" /* CompilerDeprecationTypes.COMPILER_V_ON_NATIVE */, context, loc)) {
2637
- eventOptionModifiers.push(modifier);
2638
- }
2639
- else if (isEventOptionModifier(modifier)) {
2640
- // eventOptionModifiers: modifiers for addEventListener() options,
2641
- // e.g. .passive & .capture
2642
- eventOptionModifiers.push(modifier);
2643
- }
2644
- // JsView Added >>>
2645
- // 处理自定义的 addEventListener() options, 前缀为jsv
2646
- else if(modifier.startsWith('jsv')) {
2647
- const regex = new RegExp('[A-Z]');
2648
- if (regex.test(modifier)) {
2649
- console.error("JsView Error: Failed to parse event option: " + modifier + ". Please use lower-case");
2650
- continue;
2651
- }
2652
- eventOptionModifiers.push(modifier);
2653
- }
2654
- // JsView Added <<<
2655
- else {
2656
- // runtimeModifiers: modifiers that needs runtime guards
2657
- if (maybeKeyModifier(modifier)) {
2658
- if (compilerCore.isStaticExp(key)) {
2659
- if (isKeyboardEvent(key.content)) {
2660
- keyModifiers.push(modifier);
2661
- }
2662
- else {
2663
- nonKeyModifiers.push(modifier);
2664
- }
2665
- }
2666
- else {
2667
- keyModifiers.push(modifier);
2668
- nonKeyModifiers.push(modifier);
2669
- }
2670
- }
2671
- else {
2672
- if (isNonKeyModifier(modifier)) {
2673
- nonKeyModifiers.push(modifier);
2674
- }
2675
- else {
2676
- keyModifiers.push(modifier);
2677
- }
2678
- }
2679
- }
2680
- }
2681
- return {
2682
- keyModifiers,
2683
- nonKeyModifiers,
2684
- eventOptionModifiers
2685
- };
2686
- };
2687
- const transformClick = (key, event) => {
2688
- const isStaticClick = compilerCore.isStaticExp(key) && key.content.toLowerCase() === 'onclick';
2689
- return isStaticClick
2690
- ? compilerCore.createSimpleExpression(event, true)
2691
- : key.type !== 4 /* NodeTypes.SIMPLE_EXPRESSION */
2692
- ? compilerCore.createCompoundExpression([
2693
- `(`,
2694
- key,
2695
- `) === "onClick" ? "${event}" : (`,
2696
- key,
2697
- `)`
2698
- ])
2699
- : key;
2700
- };
2701
- const transformOn = (dir, node, context) => {
2702
- return compilerCore.transformOn(dir, node, context, baseResult => {
2703
- const { modifiers } = dir;
2704
- if (!modifiers.length)
2705
- return baseResult;
2706
- let { key, value: handlerExp } = baseResult.props[0];
2707
- const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);
2708
- // normalize click.right and click.middle since they don't actually fire
2709
- if (nonKeyModifiers.includes('right')) {
2710
- key = transformClick(key, `onContextmenu`);
2711
- }
2712
- if (nonKeyModifiers.includes('middle')) {
2713
- key = transformClick(key, `onMouseup`);
2714
- }
2715
- if (nonKeyModifiers.length) {
2716
- handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [
2717
- handlerExp,
2718
- JSON.stringify(nonKeyModifiers)
2719
- ]);
2720
- }
2721
- if (keyModifiers.length &&
2722
- // if event name is dynamic, always wrap with keys guard
2723
- (!compilerCore.isStaticExp(key) || isKeyboardEvent(key.content))) {
2724
- handlerExp = compilerCore.createCallExpression(context.helper(V_ON_WITH_KEYS), [
2725
- handlerExp,
2726
- JSON.stringify(keyModifiers)
2727
- ]);
2728
- }
2729
- if (eventOptionModifiers.length) {
2730
- const modifierPostfix = eventOptionModifiers.map(shared.capitalize).join('');
2731
- key = compilerCore.isStaticExp(key)
2732
- ? compilerCore.createSimpleExpression(`${key.content}${modifierPostfix}`, true)
2733
- : compilerCore.createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]);
2734
- }
2735
- return {
2736
- props: [compilerCore.createObjectProperty(key, handlerExp)]
2737
- };
2738
- });
2739
- };
2740
-
2741
- const transformShow = (dir, node, context) => {
2742
- const { exp, loc } = dir;
2743
- if (!exp) {
2744
- context.onError(createDOMCompilerError(59 /* DOMErrorCodes.X_V_SHOW_NO_EXPRESSION */, loc));
2745
- }
2746
- return {
2747
- props: [],
2748
- needRuntime: context.helper(V_SHOW)
2749
- };
2750
- };
2751
-
2752
- const transformTransition = (node, context) => {
2753
- if (node.type === 1 /* NodeTypes.ELEMENT */ &&
2754
- node.tagType === 1 /* ElementTypes.COMPONENT */) {
2755
- const component = context.isBuiltInComponent(node.tag);
2756
- if (component === TRANSITION) {
2757
- return () => {
2758
- if (!node.children.length) {
2759
- return;
2760
- }
2761
- // warn multiple transition children
2762
- if (hasMultipleChildren(node)) {
2763
- context.onError(createDOMCompilerError(60 /* DOMErrorCodes.X_TRANSITION_INVALID_CHILDREN */, {
2764
- start: node.children[0].loc.start,
2765
- end: node.children[node.children.length - 1].loc.end,
2766
- source: ''
2767
- }));
2768
- }
2769
- // check if it's s single child w/ v-show
2770
- // if yes, inject "persisted: true" to the transition props
2771
- const child = node.children[0];
2772
- if (child.type === 1 /* NodeTypes.ELEMENT */) {
2773
- for (const p of child.props) {
2774
- if (p.type === 7 /* NodeTypes.DIRECTIVE */ && p.name === 'show') {
2775
- node.props.push({
2776
- type: 6 /* NodeTypes.ATTRIBUTE */,
2777
- name: 'persisted',
2778
- value: undefined,
2779
- loc: node.loc
2780
- });
2781
- }
2782
- }
2783
- }
2784
- };
2785
- }
2786
- }
2787
- };
2788
- function hasMultipleChildren(node) {
2789
- // #1352 filter out potential comment nodes.
2790
- const children = (node.children = node.children.filter(c => c.type !== 3 /* NodeTypes.COMMENT */ &&
2791
- !(c.type === 2 /* NodeTypes.TEXT */ && !c.content.trim())));
2792
- const child = children[0];
2793
- return (children.length !== 1 ||
2794
- child.type === 11 /* NodeTypes.FOR */ ||
2795
- (child.type === 9 /* NodeTypes.IF */ && child.branches.some(hasMultipleChildren)));
2796
- }
2797
-
2798
- /**
2799
- * This module is Node-only.
2800
- */
2801
- /**
2802
- * Regex for replacing placeholders for embedded constant variables
2803
- * (e.g. import URL string constants generated by compiler-sfc)
2804
- */
2805
- const expReplaceRE = /__VUE_EXP_START__(.*?)__VUE_EXP_END__/g;
2806
- /**
2807
- * Turn eligible hoisted static trees into stringified static nodes, e.g.
2808
- *
2809
- * ```js
2810
- * const _hoisted_1 = createStaticVNode(`<div class="foo">bar</div>`)
2811
- * ```
2812
- *
2813
- * A single static vnode can contain stringified content for **multiple**
2814
- * consecutive nodes (element and plain text), called a "chunk".
2815
- * `@vue/runtime-dom` will create the content via innerHTML in a hidden
2816
- * container element and insert all the nodes in place. The call must also
2817
- * provide the number of nodes contained in the chunk so that during hydration
2818
- * we can know how many nodes the static vnode should adopt.
2819
- *
2820
- * The optimization scans a children list that contains hoisted nodes, and
2821
- * tries to find the largest chunk of consecutive hoisted nodes before running
2822
- * into a non-hoisted node or the end of the list. A chunk is then converted
2823
- * into a single static vnode and replaces the hoisted expression of the first
2824
- * node in the chunk. Other nodes in the chunk are considered "merged" and
2825
- * therefore removed from both the hoist list and the children array.
2826
- *
2827
- * This optimization is only performed in Node.js.
2828
- */
2829
- const stringifyStatic = (children, context, parent) => {
2830
- // bail stringification for slot content
2831
- if (context.scopes.vSlot > 0) {
2832
- return;
2833
- }
2834
- let nc = 0; // current node count
2835
- let ec = 0; // current element with binding count
2836
- const currentChunk = [];
2837
- const stringifyCurrentChunk = (currentIndex) => {
2838
- if (nc >= 20 /* StringifyThresholds.NODE_COUNT */ ||
2839
- ec >= 5 /* StringifyThresholds.ELEMENT_WITH_BINDING_COUNT */) {
2840
- // combine all currently eligible nodes into a single static vnode call
2841
- const staticCall = compilerCore.createCallExpression(context.helper(compilerCore.CREATE_STATIC), [
2842
- JSON.stringify(currentChunk.map(node => stringifyNode(node, context)).join('')).replace(expReplaceRE, `" + $1 + "`),
2843
- // the 2nd argument indicates the number of DOM nodes this static vnode
2844
- // will insert / hydrate
2845
- String(currentChunk.length)
2846
- ]);
2847
- // replace the first node's hoisted expression with the static vnode call
2848
- replaceHoist(currentChunk[0], staticCall, context);
2849
- if (currentChunk.length > 1) {
2850
- for (let i = 1; i < currentChunk.length; i++) {
2851
- // for the merged nodes, set their hoisted expression to null
2852
- replaceHoist(currentChunk[i], null, context);
2853
- }
2854
- // also remove merged nodes from children
2855
- const deleteCount = currentChunk.length - 1;
2856
- children.splice(currentIndex - currentChunk.length + 1, deleteCount);
2857
- return deleteCount;
2858
- }
2859
- }
2860
- return 0;
2861
- };
2862
- let i = 0;
2863
- for (; i < children.length; i++) {
2864
- const child = children[i];
2865
- const hoisted = getHoistedNode(child);
2866
- if (hoisted) {
2867
- // presence of hoisted means child must be a stringifiable node
2868
- const node = child;
2869
- const result = analyzeNode(node);
2870
- if (result) {
2871
- // node is stringifiable, record state
2872
- nc += result[0];
2873
- ec += result[1];
2874
- currentChunk.push(node);
2875
- continue;
2876
- }
2877
- }
2878
- // we only reach here if we ran into a node that is not stringifiable
2879
- // check if currently analyzed nodes meet criteria for stringification.
2880
- // adjust iteration index
2881
- i -= stringifyCurrentChunk(i);
2882
- // reset state
2883
- nc = 0;
2884
- ec = 0;
2885
- currentChunk.length = 0;
2886
- }
2887
- // in case the last node was also stringifiable
2888
- stringifyCurrentChunk(i);
2889
- };
2890
- const getHoistedNode = (node) => ((node.type === 1 /* NodeTypes.ELEMENT */ && node.tagType === 0 /* ElementTypes.ELEMENT */) ||
2891
- node.type == 12 /* NodeTypes.TEXT_CALL */) &&
2892
- node.codegenNode &&
2893
- node.codegenNode.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */ &&
2894
- node.codegenNode.hoisted;
2895
- const dataAriaRE = /^(data|aria)-/;
2896
- const isStringifiableAttr = (name, ns) => {
2897
- return ((ns === 0 /* DOMNamespaces.HTML */
2898
- ? shared.isKnownHtmlAttr(name)
2899
- : ns === 1 /* DOMNamespaces.SVG */
2900
- ? shared.isKnownSvgAttr(name)
2901
- : false) || dataAriaRE.test(name));
2902
- };
2903
- const replaceHoist = (node, replacement, context) => {
2904
- const hoistToReplace = node.codegenNode.hoisted;
2905
- context.hoists[context.hoists.indexOf(hoistToReplace)] = replacement;
2906
- };
2907
- const isNonStringifiable = /*#__PURE__*/ shared.makeMap(`caption,thead,tr,th,tbody,td,tfoot,colgroup,col`);
2908
- /**
2909
- * for a hoisted node, analyze it and return:
2910
- * - false: bailed (contains non-stringifiable props or runtime constant)
2911
- * - [nc, ec] where
2912
- * - nc is the number of nodes inside
2913
- * - ec is the number of element with bindings inside
2914
- */
2915
- function analyzeNode(node) {
2916
- if (node.type === 1 /* NodeTypes.ELEMENT */ && isNonStringifiable(node.tag)) {
2917
- return false;
2918
- }
2919
- if (node.type === 12 /* NodeTypes.TEXT_CALL */) {
2920
- return [1, 0];
2921
- }
2922
- let nc = 1; // node count
2923
- let ec = node.props.length > 0 ? 1 : 0; // element w/ binding count
2924
- let bailed = false;
2925
- const bail = () => {
2926
- bailed = true;
2927
- return false;
2928
- };
2929
- // TODO: check for cases where using innerHTML will result in different
2930
- // output compared to imperative node insertions.
2931
- // probably only need to check for most common case
2932
- // i.e. non-phrasing-content tags inside `<p>`
2933
- function walk(node) {
2934
- for (let i = 0; i < node.props.length; i++) {
2935
- const p = node.props[i];
2936
- // bail on non-attr bindings
2937
- if (p.type === 6 /* NodeTypes.ATTRIBUTE */ &&
2938
- !isStringifiableAttr(p.name, node.ns)) {
2939
- return bail();
2940
- }
2941
- if (p.type === 7 /* NodeTypes.DIRECTIVE */ && p.name === 'bind') {
2942
- // bail on non-attr bindings
2943
- if (p.arg &&
2944
- (p.arg.type === 8 /* NodeTypes.COMPOUND_EXPRESSION */ ||
2945
- (p.arg.isStatic && !isStringifiableAttr(p.arg.content, node.ns)))) {
2946
- return bail();
2947
- }
2948
- if (p.exp &&
2949
- (p.exp.type === 8 /* NodeTypes.COMPOUND_EXPRESSION */ ||
2950
- p.exp.constType < 3 /* ConstantTypes.CAN_STRINGIFY */)) {
2951
- return bail();
2952
- }
2953
- }
2954
- }
2955
- for (let i = 0; i < node.children.length; i++) {
2956
- nc++;
2957
- const child = node.children[i];
2958
- if (child.type === 1 /* NodeTypes.ELEMENT */) {
2959
- if (child.props.length > 0) {
2960
- ec++;
2961
- }
2962
- walk(child);
2963
- if (bailed) {
2964
- return false;
2965
- }
2966
- }
2967
- }
2968
- return true;
2969
- }
2970
- return walk(node) ? [nc, ec] : false;
2971
- }
2972
- function stringifyNode(node, context) {
2973
- if (shared.isString(node)) {
2974
- return node;
2975
- }
2976
- if (shared.isSymbol(node)) {
2977
- return ``;
2978
- }
2979
- switch (node.type) {
2980
- case 1 /* NodeTypes.ELEMENT */:
2981
- return stringifyElement(node, context);
2982
- case 2 /* NodeTypes.TEXT */:
2983
- return shared.escapeHtml(node.content);
2984
- case 3 /* NodeTypes.COMMENT */:
2985
- return `<!--${shared.escapeHtml(node.content)}-->`;
2986
- case 5 /* NodeTypes.INTERPOLATION */:
2987
- return shared.escapeHtml(shared.toDisplayString(evaluateConstant(node.content)));
2988
- case 8 /* NodeTypes.COMPOUND_EXPRESSION */:
2989
- return shared.escapeHtml(evaluateConstant(node));
2990
- case 12 /* NodeTypes.TEXT_CALL */:
2991
- return stringifyNode(node.content, context);
2992
- default:
2993
- // static trees will not contain if/for nodes
2994
- return '';
2995
- }
2996
- }
2997
- function stringifyElement(node, context) {
2998
- let res = `<${node.tag}`;
2999
- let innerHTML = '';
3000
- for (let i = 0; i < node.props.length; i++) {
3001
- const p = node.props[i];
3002
- if (p.type === 6 /* NodeTypes.ATTRIBUTE */) {
3003
- res += ` ${p.name}`;
3004
- if (p.value) {
3005
- res += `="${shared.escapeHtml(p.value.content)}"`;
3006
- }
3007
- }
3008
- else if (p.type === 7 /* NodeTypes.DIRECTIVE */) {
3009
- if (p.name === 'bind') {
3010
- const exp = p.exp;
3011
- if (exp.content[0] === '_') {
3012
- // internally generated string constant references
3013
- // e.g. imported URL strings via compiler-sfc transformAssetUrl plugin
3014
- res += ` ${p.arg.content}="__VUE_EXP_START__${exp.content}__VUE_EXP_END__"`;
3015
- continue;
3016
- }
3017
- // #6568
3018
- if (shared.isBooleanAttr(p.arg.content) &&
3019
- exp.content === 'false') {
3020
- continue;
3021
- }
3022
- // constant v-bind, e.g. :foo="1"
3023
- let evaluated = evaluateConstant(exp);
3024
- if (evaluated != null) {
3025
- const arg = p.arg && p.arg.content;
3026
- if (arg === 'class') {
3027
- evaluated = shared.normalizeClass(evaluated);
3028
- }
3029
- else if (arg === 'style') {
3030
- evaluated = shared.stringifyStyle(shared.normalizeStyle(evaluated));
3031
- }
3032
- res += ` ${p.arg.content}="${shared.escapeHtml(evaluated)}"`;
3033
- }
3034
- }
3035
- else if (p.name === 'html') {
3036
- // #5439 v-html with constant value
3037
- // not sure why would anyone do this but it can happen
3038
- innerHTML = evaluateConstant(p.exp);
3039
- }
3040
- else if (p.name === 'text') {
3041
- innerHTML = shared.escapeHtml(shared.toDisplayString(evaluateConstant(p.exp)));
3042
- }
3043
- }
3044
- }
3045
- if (context.scopeId) {
3046
- res += ` ${context.scopeId}`;
3047
- }
3048
- res += `>`;
3049
- if (innerHTML) {
3050
- res += innerHTML;
3051
- }
3052
- else {
3053
- for (let i = 0; i < node.children.length; i++) {
3054
- res += stringifyNode(node.children[i], context);
3055
- }
3056
- }
3057
- if (!shared.isVoidTag(node.tag)) {
3058
- res += `</${node.tag}>`;
3059
- }
3060
- return res;
3061
- }
3062
- // __UNSAFE__
3063
- // Reason: eval.
3064
- // It's technically safe to eval because only constant expressions are possible
3065
- // here, e.g. `{{ 1 }}` or `{{ 'foo' }}`
3066
- // in addition, constant exps bail on presence of parens so you can't even
3067
- // run JSFuck in here. But we mark it unsafe for security review purposes.
3068
- // (see compiler-core/src/transforms/transformExpression)
3069
- function evaluateConstant(exp) {
3070
- if (exp.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */) {
3071
- return new Function(`return ${exp.content}`)();
3072
- }
3073
- else {
3074
- // compound
3075
- let res = ``;
3076
- exp.children.forEach(c => {
3077
- if (shared.isString(c) || shared.isSymbol(c)) {
3078
- return;
3079
- }
3080
- if (c.type === 2 /* NodeTypes.TEXT */) {
3081
- res += c.content;
3082
- }
3083
- else if (c.type === 5 /* NodeTypes.INTERPOLATION */) {
3084
- res += shared.toDisplayString(evaluateConstant(c.content));
3085
- }
3086
- else {
3087
- res += evaluateConstant(c);
3088
- }
3089
- });
3090
- return res;
3091
- }
3092
- }
3093
-
3094
- const ignoreSideEffectTags = (node, context) => {
3095
- if (node.type === 1 /* NodeTypes.ELEMENT */ &&
3096
- node.tagType === 0 /* ElementTypes.ELEMENT */ &&
3097
- (node.tag === 'script' || node.tag === 'style')) {
3098
- context.onError(createDOMCompilerError(61 /* DOMErrorCodes.X_IGNORED_SIDE_EFFECT_TAG */, node.loc));
3099
- context.removeNode();
3100
- }
3101
- };
3102
-
3103
- const DOMNodeTransforms = [
3104
- transformStyle,
3105
- ...([transformTransition] )
3106
- ];
3107
- const DOMDirectiveTransforms = {
3108
- cloak: compilerCore.noopDirectiveTransform,
3109
- html: transformVHtml,
3110
- text: transformVText,
3111
- model: transformModel,
3112
- on: transformOn,
3113
- show: transformShow
3114
- };
3115
- function compile(template, options = {}) {
3116
- return compilerCore.baseCompile(template, shared.extend({}, parserOptions, options, {
3117
- nodeTransforms: [
3118
- // ignore <script> and <tag>
3119
- // this is not put inside DOMNodeTransforms because that list is used
3120
- // by compiler-ssr to generate vnode fallback branches
3121
- ignoreSideEffectTags,
3122
- ...DOMNodeTransforms,
3123
- ...(options.nodeTransforms || [])
3124
- ],
3125
- directiveTransforms: shared.extend({}, DOMDirectiveTransforms, options.directiveTransforms || {}),
3126
- transformHoist: stringifyStatic
3127
- }));
3128
- }
3129
- function parse(template, options = {}) {
3130
- return compilerCore.baseParse(template, shared.extend({}, parserOptions, options));
3131
- }
3132
-
3133
- Object.keys(compilerCore).forEach(function (k) {
3134
- if (k !== 'default') exports[k] = compilerCore[k];
3135
- });
3136
- exports.DOMDirectiveTransforms = DOMDirectiveTransforms;
3137
- exports.DOMNodeTransforms = DOMNodeTransforms;
3138
- exports.TRANSITION = TRANSITION;
3139
- exports.TRANSITION_GROUP = TRANSITION_GROUP;
3140
- exports.V_MODEL_CHECKBOX = V_MODEL_CHECKBOX;
3141
- exports.V_MODEL_DYNAMIC = V_MODEL_DYNAMIC;
3142
- exports.V_MODEL_RADIO = V_MODEL_RADIO;
3143
- exports.V_MODEL_SELECT = V_MODEL_SELECT;
3144
- exports.V_MODEL_TEXT = V_MODEL_TEXT;
3145
- exports.V_ON_WITH_KEYS = V_ON_WITH_KEYS;
3146
- exports.V_ON_WITH_MODIFIERS = V_ON_WITH_MODIFIERS;
3147
- exports.V_SHOW = V_SHOW;
3148
- exports.compile = compile;
3149
- exports.createDOMCompilerError = createDOMCompilerError;
3150
- exports.parse = parse;
3151
- exports.parserOptions = parserOptions;
3152
- exports.transformStyle = transformStyle;