module.exports = (function() { var __MODS__ = {}; var __DEFINE__ = function(modId, func, req) { var m = { exports: {}, _tempexports: {} }; __MODS__[modId] = { status: 0, func: func, req: req, m: m }; }; var __REQUIRE__ = function(modId, source) { if(!__MODS__[modId]) return require(source); if(!__MODS__[modId].status) { var m = __MODS__[modId].m; m._exports = m._tempexports; var desp = Object.getOwnPropertyDescriptor(m, "exports"); if (desp && desp.configurable) Object.defineProperty(m, "exports", { set: function (val) { if(typeof val === "object" && val !== m._exports) { m._exports.__proto__ = val.__proto__; Object.keys(val).forEach(function (k) { m._exports[k] = val[k]; }); } m._tempexports = val }, get: function () { return m._tempexports; } }); __MODS__[modId].status = 1; __MODS__[modId].func(__MODS__[modId].req, m, m.exports); } return __MODS__[modId].m.exports; }; var __REQUIRE_WILDCARD__ = function(obj) { if(obj && obj.__esModule) { return obj; } else { var newObj = {}; if(obj != null) { for(var k in obj) { if (Object.prototype.hasOwnProperty.call(obj, k)) newObj[k] = obj[k]; } } newObj.default = obj; return newObj; } }; var __REQUIRE_DEFAULT__ = function(obj) { return obj && obj.__esModule ? obj.default : obj; }; __DEFINE__(1745998156643, function(require, module, exports) { var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.compile = exports.parse = exports.transformModel = exports.transformOn = exports.isForElementNode = exports.rewriteExpression = exports.genExpr = exports.findProp = void 0; const shared_1 = require("@vue/shared"); const compiler_core_1 = require("@vue/compiler-core"); const compile_1 = require("./compile"); const parserOptions_1 = require("./parserOptions"); var compiler_core_2 = require("@vue/compiler-core"); Object.defineProperty(exports, "findProp", { enumerable: true, get: function () { return compiler_core_2.findProp; } }); var codegen_1 = require("./codegen"); Object.defineProperty(exports, "genExpr", { enumerable: true, get: function () { return codegen_1.genExpr; } }); var utils_1 = require("./transforms/utils"); Object.defineProperty(exports, "rewriteExpression", { enumerable: true, get: function () { return utils_1.rewriteExpression; } }); var vFor_1 = require("./transforms/vFor"); Object.defineProperty(exports, "isForElementNode", { enumerable: true, get: function () { return vFor_1.isForElementNode; } }); var vOn_1 = require("./transforms/vOn"); Object.defineProperty(exports, "transformOn", { enumerable: true, get: function () { return vOn_1.transformOn; } }); var vModel_1 = require("./transforms/vModel"); Object.defineProperty(exports, "transformModel", { enumerable: true, get: function () { return vModel_1.transformModel; } }); __exportStar(require("./runtimeHelpers"), exports); function parse(template, options = {}) { return (0, compiler_core_1.baseParse)(template, (0, shared_1.extend)({}, parserOptions_1.parserOptions, options)); } exports.parse = parse; function compile(template, options = {}) { return (0, compile_1.baseCompile)(template, (0, shared_1.extend)({}, parserOptions_1.parserOptions, options, { directiveTransforms: (0, shared_1.extend)({}, options.directiveTransforms || {}), })); } exports.compile = compile; }, function(modId) {var map = {"./parserOptions":1745998156645,"./codegen":1745998156648,"./transforms/vFor":1745998156650,"./runtimeHelpers":1745998156655}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156645, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.parserOptions = void 0; const shared_1 = require("@vue/shared"); const decodeHtml_1 = require("./decodeHtml"); const isRawTextContainer = /*#__PURE__*/ (0, shared_1.makeMap)('style,iframe,script,noscript', true); exports.parserOptions = { isVoidTag: shared_1.isVoidTag, isNativeTag: (tag) => (0, shared_1.isHTMLTag)(tag) || (0, shared_1.isSVGTag)(tag), isPreTag: (tag) => tag === 'pre', decodeEntities: decodeHtml_1.decodeHtml, // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher getNamespace(tag, parent) { let ns = parent ? parent.ns : 0 /* DOMNamespaces.HTML */; if (parent && ns === 2 /* DOMNamespaces.MATH_ML */) { if (parent.tag === 'annotation-xml') { if (tag === 'svg') { return 1 /* DOMNamespaces.SVG */; } if (parent.props.some((a) => a.type === 6 /* NodeTypes.ATTRIBUTE */ && a.name === 'encoding' && a.value != null && (a.value.content === 'text/html' || a.value.content === 'application/xhtml+xml'))) { ns = 0 /* DOMNamespaces.HTML */; } } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== 'mglyph' && tag !== 'malignmark') { ns = 0 /* DOMNamespaces.HTML */; } } else if (parent && ns === 1 /* DOMNamespaces.SVG */) { if (parent.tag === 'foreignObject' || parent.tag === 'desc' || parent.tag === 'title') { ns = 0 /* DOMNamespaces.HTML */; } } if (ns === 0 /* DOMNamespaces.HTML */) { if (tag === 'svg') { return 1 /* DOMNamespaces.SVG */; } if (tag === 'math') { return 2 /* DOMNamespaces.MATH_ML */; } } return ns; }, // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments getTextMode({ tag, ns }) { if (ns === 0 /* DOMNamespaces.HTML */) { if (tag === 'textarea' || tag === 'title') { return 1 /* TextModes.RCDATA */; } if (isRawTextContainer(tag)) { return 2 /* TextModes.RAWTEXT */; } } return 0 /* TextModes.DATA */; }, }; }, function(modId) { var map = {"./decodeHtml":1745998156646}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156646, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.decodeHtml = void 0; const namedChars_json_1 = __importDefault(require("./namedChars.json")); // lazy compute this to make this file tree-shakable for browser let maxCRNameLength; const decodeHtml = (rawText, asAttr) => { let offset = 0; const end = rawText.length; let decodedText = ''; function advance(length) { offset += length; rawText = rawText.slice(length); } while (offset < end) { const head = /&(?:#x?)?/i.exec(rawText); if (!head || offset + head.index >= end) { const remaining = end - offset; decodedText += rawText.slice(0, remaining); advance(remaining); break; } // Advance to the "&". decodedText += rawText.slice(0, head.index); advance(head.index); if (head[0] === '&') { // Named character reference. let name = ''; let value = undefined; if (/[0-9a-z]/i.test(rawText[1])) { if (!maxCRNameLength) { maxCRNameLength = Object.keys(namedChars_json_1.default).reduce((max, name) => Math.max(max, name.length), 0); } for (let length = maxCRNameLength; !value && length > 0; --length) { name = rawText.slice(1, 1 + length); value = namedChars_json_1.default[name]; } if (value) { const semi = name.endsWith(';'); if (asAttr && !semi && /[=a-z0-9]/i.test(rawText[name.length + 1] || '')) { decodedText += '&' + name; advance(1 + name.length); } else { decodedText += value; advance(1 + name.length); } } else { decodedText += '&' + name; advance(1 + name.length); } } else { decodedText += '&'; advance(1); } } else { // Numeric character reference. const hex = head[0] === '&#x'; const pattern = hex ? /^&#x([0-9a-f]+);?/i : /^&#([0-9]+);?/; const body = pattern.exec(rawText); if (!body) { decodedText += head[0]; advance(head[0].length); } else { // https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state let cp = Number.parseInt(body[1], hex ? 16 : 10); if (cp === 0) { cp = 0xfffd; } else if (cp > 0x10ffff) { cp = 0xfffd; } else if (cp >= 0xd800 && cp <= 0xdfff) { cp = 0xfffd; } else if ((cp >= 0xfdd0 && cp <= 0xfdef) || (cp & 0xfffe) === 0xfffe) { // noop } else if ((cp >= 0x01 && cp <= 0x08) || cp === 0x0b || (cp >= 0x0d && cp <= 0x1f) || (cp >= 0x7f && cp <= 0x9f)) { cp = CCR_REPLACEMENTS[cp] || cp; } decodedText += String.fromCodePoint(cp); advance(body[0].length); } } } return decodedText; }; exports.decodeHtml = decodeHtml; // https://html.spec.whatwg.org/multipage/parsing.html#numeric-character-reference-end-state const CCR_REPLACEMENTS = { 0x80: 0x20ac, 0x82: 0x201a, 0x83: 0x0192, 0x84: 0x201e, 0x85: 0x2026, 0x86: 0x2020, 0x87: 0x2021, 0x88: 0x02c6, 0x89: 0x2030, 0x8a: 0x0160, 0x8b: 0x2039, 0x8c: 0x0152, 0x8e: 0x017d, 0x91: 0x2018, 0x92: 0x2019, 0x93: 0x201c, 0x94: 0x201d, 0x95: 0x2022, 0x96: 0x2013, 0x97: 0x2014, 0x98: 0x02dc, 0x99: 0x2122, 0x9a: 0x0161, 0x9b: 0x203a, 0x9c: 0x0153, 0x9e: 0x017e, 0x9f: 0x0178, }; }, function(modId) { var map = {"./namedChars.json":1745998156647}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156647, function(require, module, exports) { module.exports = { "GT": ">", "gt": ">", "LT": "<", "lt": "<", "ac;": "∾", "af;": "⁡", "AMP": "&", "amp": "&", "ap;": "≈", "DD;": "ⅅ", "dd;": "ⅆ", "deg": "°", "ee;": "ⅇ", "eg;": "⪚", "el;": "⪙", "ETH": "Ð", "eth": "ð", "gE;": "≧", "ge;": "≥", "Gg;": "⋙", "gg;": "≫", "gl;": "≷", "GT;": ">", "Gt;": "≫", "gt;": ">", "ic;": "⁣", "ii;": "ⅈ", "Im;": "ℑ", "in;": "∈", "it;": "⁢", "lE;": "≦", "le;": "≤", "lg;": "≶", "Ll;": "⋘", "ll;": "≪", "LT;": "<", "Lt;": "≪", "lt;": "<", "mp;": "∓", "Mu;": "Μ", "mu;": "μ", "ne;": "≠", "ni;": "∋", "not": "¬", "Nu;": "Ν", "nu;": "ν", "Or;": "⩔", "or;": "∨", "oS;": "Ⓢ", "Pi;": "Π", "pi;": "π", "pm;": "±", "Pr;": "⪻", "pr;": "≺", "Re;": "ℜ", "REG": "®", "reg": "®", "rx;": "℞", "Sc;": "⪼", "sc;": "≻", "shy": "­", "uml": "¨", "wp;": "℘", "wr;": "≀", "Xi;": "Ξ", "xi;": "ξ", "yen": "¥", "acd;": "∿", "acE;": "∾̳", "Acy;": "А", "acy;": "а", "Afr;": "𝔄", "afr;": "𝔞", "AMP;": "&", "amp;": "&", "And;": "⩓", "and;": "∧", "ang;": "∠", "apE;": "⩰", "ape;": "≊", "ast;": "*", "Auml": "Ä", "auml": "ä", "Bcy;": "Б", "bcy;": "б", "Bfr;": "𝔅", "bfr;": "𝔟", "bne;": "=⃥", "bot;": "⊥", "Cap;": "⋒", "cap;": "∩", "cent": "¢", "Cfr;": "ℭ", "cfr;": "𝔠", "Chi;": "Χ", "chi;": "χ", "cir;": "○", "COPY": "©", "copy": "©", "Cup;": "⋓", "cup;": "∪", "Dcy;": "Д", "dcy;": "д", "deg;": "°", "Del;": "∇", "Dfr;": "𝔇", "dfr;": "𝔡", "die;": "¨", "div;": "÷", "Dot;": "¨", "dot;": "˙", "Ecy;": "Э", "ecy;": "э", "Efr;": "𝔈", "efr;": "𝔢", "egs;": "⪖", "ell;": "ℓ", "els;": "⪕", "ENG;": "Ŋ", "eng;": "ŋ", "Eta;": "Η", "eta;": "η", "ETH;": "Ð", "eth;": "ð", "Euml": "Ë", "euml": "ë", "Fcy;": "Ф", "fcy;": "ф", "Ffr;": "𝔉", "ffr;": "𝔣", "gap;": "⪆", "Gcy;": "Г", "gcy;": "г", "gEl;": "⪌", "gel;": "⋛", "geq;": "≥", "ges;": "⩾", "Gfr;": "𝔊", "gfr;": "𝔤", "ggg;": "⋙", "gla;": "⪥", "glE;": "⪒", "glj;": "⪤", "gnE;": "≩", "gne;": "⪈", "Hat;": "^", "Hfr;": "ℌ", "hfr;": "𝔥", "Icy;": "И", "icy;": "и", "iff;": "⇔", "Ifr;": "ℑ", "ifr;": "𝔦", "Int;": "∬", "int;": "∫", "Iuml": "Ï", "iuml": "ï", "Jcy;": "Й", "jcy;": "й", "Jfr;": "𝔍", "jfr;": "𝔧", "Kcy;": "К", "kcy;": "к", "Kfr;": "𝔎", "kfr;": "𝔨", "lap;": "⪅", "lat;": "⪫", "Lcy;": "Л", "lcy;": "л", "lEg;": "⪋", "leg;": "⋚", "leq;": "≤", "les;": "⩽", "Lfr;": "𝔏", "lfr;": "𝔩", "lgE;": "⪑", "lnE;": "≨", "lne;": "⪇", "loz;": "◊", "lrm;": "‎", "Lsh;": "↰", "lsh;": "↰", "macr": "¯", "Map;": "⤅", "map;": "↦", "Mcy;": "М", "mcy;": "м", "Mfr;": "𝔐", "mfr;": "𝔪", "mho;": "℧", "mid;": "∣", "nap;": "≉", "nbsp": " ", "Ncy;": "Н", "ncy;": "н", "Nfr;": "𝔑", "nfr;": "𝔫", "ngE;": "≧̸", "nge;": "≱", "nGg;": "⋙̸", "nGt;": "≫⃒", "ngt;": "≯", "nis;": "⋼", "niv;": "∋", "nlE;": "≦̸", "nle;": "≰", "nLl;": "⋘̸", "nLt;": "≪⃒", "nlt;": "≮", "Not;": "⫬", "not;": "¬", "npr;": "⊀", "nsc;": "⊁", "num;": "#", "Ocy;": "О", "ocy;": "о", "Ofr;": "𝔒", "ofr;": "𝔬", "ogt;": "⧁", "ohm;": "Ω", "olt;": "⧀", "ord;": "⩝", "ordf": "ª", "ordm": "º", "orv;": "⩛", "Ouml": "Ö", "ouml": "ö", "par;": "∥", "para": "¶", "Pcy;": "П", "pcy;": "п", "Pfr;": "𝔓", "pfr;": "𝔭", "Phi;": "Φ", "phi;": "φ", "piv;": "ϖ", "prE;": "⪳", "pre;": "⪯", "Psi;": "Ψ", "psi;": "ψ", "Qfr;": "𝔔", "qfr;": "𝔮", "QUOT": "\"", "quot": "\"", "Rcy;": "Р", "rcy;": "р", "REG;": "®", "reg;": "®", "Rfr;": "ℜ", "rfr;": "𝔯", "Rho;": "Ρ", "rho;": "ρ", "rlm;": "‏", "Rsh;": "↱", "rsh;": "↱", "scE;": "⪴", "sce;": "⪰", "Scy;": "С", "scy;": "с", "sect": "§", "Sfr;": "𝔖", "sfr;": "𝔰", "shy;": "­", "sim;": "∼", "smt;": "⪪", "sol;": "/", "squ;": "□", "Sub;": "⋐", "sub;": "⊂", "Sum;": "∑", "sum;": "∑", "Sup;": "⋑", "sup;": "⊃", "sup1": "¹", "sup2": "²", "sup3": "³", "Tab;": "\t", "Tau;": "Τ", "tau;": "τ", "Tcy;": "Т", "tcy;": "т", "Tfr;": "𝔗", "tfr;": "𝔱", "top;": "⊤", "Ucy;": "У", "ucy;": "у", "Ufr;": "𝔘", "ufr;": "𝔲", "uml;": "¨", "Uuml": "Ü", "uuml": "ü", "Vcy;": "В", "vcy;": "в", "Vee;": "⋁", "vee;": "∨", "Vfr;": "𝔙", "vfr;": "𝔳", "Wfr;": "𝔚", "wfr;": "𝔴", "Xfr;": "𝔛", "xfr;": "𝔵", "Ycy;": "Ы", "ycy;": "ы", "yen;": "¥", "Yfr;": "𝔜", "yfr;": "𝔶", "yuml": "ÿ", "Zcy;": "З", "zcy;": "з", "Zfr;": "ℨ", "zfr;": "𝔷", "zwj;": "‍", "Acirc": "Â", "acirc": "â", "acute": "´", "AElig": "Æ", "aelig": "æ", "andd;": "⩜", "andv;": "⩚", "ange;": "⦤", "Aopf;": "𝔸", "aopf;": "𝕒", "apid;": "≋", "apos;": "'", "Aring": "Å", "aring": "å", "Ascr;": "𝒜", "ascr;": "𝒶", "Auml;": "Ä", "auml;": "ä", "Barv;": "⫧", "bbrk;": "⎵", "Beta;": "Β", "beta;": "β", "beth;": "ℶ", "bNot;": "⫭", "bnot;": "⌐", "Bopf;": "𝔹", "bopf;": "𝕓", "boxH;": "═", "boxh;": "─", "boxV;": "║", "boxv;": "│", "Bscr;": "ℬ", "bscr;": "𝒷", "bsim;": "∽", "bsol;": "\\", "bull;": "•", "bump;": "≎", "caps;": "∩︀", "Cdot;": "Ċ", "cdot;": "ċ", "cedil": "¸", "cent;": "¢", "CHcy;": "Ч", "chcy;": "ч", "circ;": "ˆ", "cirE;": "⧃", "cire;": "≗", "comp;": "∁", "cong;": "≅", "Copf;": "ℂ", "copf;": "𝕔", "COPY;": "©", "copy;": "©", "Cscr;": "𝒞", "cscr;": "𝒸", "csub;": "⫏", "csup;": "⫐", "cups;": "∪︀", "Darr;": "↡", "dArr;": "⇓", "darr;": "↓", "dash;": "‐", "dHar;": "⥥", "diam;": "⋄", "DJcy;": "Ђ", "djcy;": "ђ", "Dopf;": "𝔻", "dopf;": "𝕕", "Dscr;": "𝒟", "dscr;": "𝒹", "DScy;": "Ѕ", "dscy;": "ѕ", "dsol;": "⧶", "dtri;": "▿", "DZcy;": "Џ", "dzcy;": "џ", "ecir;": "≖", "Ecirc": "Ê", "ecirc": "ê", "Edot;": "Ė", "eDot;": "≑", "edot;": "ė", "emsp;": " ", "ensp;": " ", "Eopf;": "𝔼", "eopf;": "𝕖", "epar;": "⋕", "epsi;": "ε", "Escr;": "ℰ", "escr;": "ℯ", "Esim;": "⩳", "esim;": "≂", "Euml;": "Ë", "euml;": "ë", "euro;": "€", "excl;": "!", "flat;": "♭", "fnof;": "ƒ", "Fopf;": "𝔽", "fopf;": "𝕗", "fork;": "⋔", "Fscr;": "ℱ", "fscr;": "𝒻", "Gdot;": "Ġ", "gdot;": "ġ", "geqq;": "≧", "gesl;": "⋛︀", "GJcy;": "Ѓ", "gjcy;": "ѓ", "gnap;": "⪊", "gneq;": "⪈", "Gopf;": "𝔾", "gopf;": "𝕘", "Gscr;": "𝒢", "gscr;": "ℊ", "gsim;": "≳", "gtcc;": "⪧", "gvnE;": "≩︀", "half;": "½", "hArr;": "⇔", "harr;": "↔", "hbar;": "ℏ", "Hopf;": "ℍ", "hopf;": "𝕙", "Hscr;": "ℋ", "hscr;": "𝒽", "Icirc": "Î", "icirc": "î", "Idot;": "İ", "IEcy;": "Е", "iecy;": "е", "iexcl": "¡", "imof;": "⊷", "IOcy;": "Ё", "iocy;": "ё", "Iopf;": "𝕀", "iopf;": "𝕚", "Iota;": "Ι", "iota;": "ι", "Iscr;": "ℐ", "iscr;": "𝒾", "isin;": "∈", "Iuml;": "Ï", "iuml;": "ï", "Jopf;": "𝕁", "jopf;": "𝕛", "Jscr;": "𝒥", "jscr;": "𝒿", "KHcy;": "Х", "khcy;": "х", "KJcy;": "Ќ", "kjcy;": "ќ", "Kopf;": "𝕂", "kopf;": "𝕜", "Kscr;": "𝒦", "kscr;": "𝓀", "Lang;": "⟪", "lang;": "⟨", "laquo": "«", "Larr;": "↞", "lArr;": "⇐", "larr;": "←", "late;": "⪭", "lcub;": "{", "ldca;": "⤶", "ldsh;": "↲", "leqq;": "≦", "lesg;": "⋚︀", "lHar;": "⥢", "LJcy;": "Љ", "ljcy;": "љ", "lnap;": "⪉", "lneq;": "⪇", "Lopf;": "𝕃", "lopf;": "𝕝", "lozf;": "⧫", "lpar;": "(", "Lscr;": "ℒ", "lscr;": "𝓁", "lsim;": "≲", "lsqb;": "[", "ltcc;": "⪦", "ltri;": "◃", "lvnE;": "≨︀", "macr;": "¯", "male;": "♂", "malt;": "✠", "micro": "µ", "mlcp;": "⫛", "mldr;": "…", "Mopf;": "𝕄", "mopf;": "𝕞", "Mscr;": "ℳ", "mscr;": "𝓂", "nang;": "∠⃒", "napE;": "⩰̸", "nbsp;": " ", "ncap;": "⩃", "ncup;": "⩂", "ngeq;": "≱", "nges;": "⩾̸", "ngtr;": "≯", "nGtv;": "≫̸", "nisd;": "⋺", "NJcy;": "Њ", "njcy;": "њ", "nldr;": "‥", "nleq;": "≰", "nles;": "⩽̸", "nLtv;": "≪̸", "nmid;": "∤", "Nopf;": "ℕ", "nopf;": "𝕟", "npar;": "∦", "npre;": "⪯̸", "nsce;": "⪰̸", "Nscr;": "𝒩", "nscr;": "𝓃", "nsim;": "≁", "nsub;": "⊄", "nsup;": "⊅", "ntgl;": "≹", "ntlg;": "≸", "nvap;": "≍⃒", "nvge;": "≥⃒", "nvgt;": ">⃒", "nvle;": "≤⃒", "nvlt;": "<⃒", "oast;": "⊛", "ocir;": "⊚", "Ocirc": "Ô", "ocirc": "ô", "odiv;": "⨸", "odot;": "⊙", "ogon;": "˛", "oint;": "∮", "omid;": "⦶", "Oopf;": "𝕆", "oopf;": "𝕠", "opar;": "⦷", "ordf;": "ª", "ordm;": "º", "oror;": "⩖", "Oscr;": "𝒪", "oscr;": "ℴ", "osol;": "⊘", "Ouml;": "Ö", "ouml;": "ö", "para;": "¶", "part;": "∂", "perp;": "⊥", "phiv;": "ϕ", "plus;": "+", "Popf;": "ℙ", "popf;": "𝕡", "pound": "£", "prap;": "⪷", "prec;": "≺", "prnE;": "⪵", "prod;": "∏", "prop;": "∝", "Pscr;": "𝒫", "pscr;": "𝓅", "qint;": "⨌", "Qopf;": "ℚ", "qopf;": "𝕢", "Qscr;": "𝒬", "qscr;": "𝓆", "QUOT;": "\"", "quot;": "\"", "race;": "∽̱", "Rang;": "⟫", "rang;": "⟩", "raquo": "»", "Rarr;": "↠", "rArr;": "⇒", "rarr;": "→", "rcub;": "}", "rdca;": "⤷", "rdsh;": "↳", "real;": "ℜ", "rect;": "▭", "rHar;": "⥤", "rhov;": "ϱ", "ring;": "˚", "Ropf;": "ℝ", "ropf;": "𝕣", "rpar;": ")", "Rscr;": "ℛ", "rscr;": "𝓇", "rsqb;": "]", "rtri;": "▹", "scap;": "⪸", "scnE;": "⪶", "sdot;": "⋅", "sect;": "§", "semi;": ";", "sext;": "✶", "SHcy;": "Ш", "shcy;": "ш", "sime;": "≃", "simg;": "⪞", "siml;": "⪝", "smid;": "∣", "smte;": "⪬", "solb;": "⧄", "Sopf;": "𝕊", "sopf;": "𝕤", "spar;": "∥", "Sqrt;": "√", "squf;": "▪", "Sscr;": "𝒮", "sscr;": "𝓈", "Star;": "⋆", "star;": "☆", "subE;": "⫅", "sube;": "⊆", "succ;": "≻", "sung;": "♪", "sup1;": "¹", "sup2;": "²", "sup3;": "³", "supE;": "⫆", "supe;": "⊇", "szlig": "ß", "tbrk;": "⎴", "tdot;": "⃛", "THORN": "Þ", "thorn": "þ", "times": "×", "tint;": "∭", "toea;": "⤨", "Topf;": "𝕋", "topf;": "𝕥", "tosa;": "⤩", "trie;": "≜", "Tscr;": "𝒯", "tscr;": "𝓉", "TScy;": "Ц", "tscy;": "ц", "Uarr;": "↟", "uArr;": "⇑", "uarr;": "↑", "Ucirc": "Û", "ucirc": "û", "uHar;": "⥣", "Uopf;": "𝕌", "uopf;": "𝕦", "Upsi;": "ϒ", "upsi;": "υ", "Uscr;": "𝒰", "uscr;": "𝓊", "utri;": "▵", "Uuml;": "Ü", "uuml;": "ü", "vArr;": "⇕", "varr;": "↕", "Vbar;": "⫫", "vBar;": "⫨", "Vert;": "‖", "vert;": "|", "Vopf;": "𝕍", "vopf;": "𝕧", "Vscr;": "𝒱", "vscr;": "𝓋", "Wopf;": "𝕎", "wopf;": "𝕨", "Wscr;": "𝒲", "wscr;": "𝓌", "xcap;": "⋂", "xcup;": "⋃", "xmap;": "⟼", "xnis;": "⋻", "Xopf;": "𝕏", "xopf;": "𝕩", "Xscr;": "𝒳", "xscr;": "𝓍", "xvee;": "⋁", "YAcy;": "Я", "yacy;": "я", "YIcy;": "Ї", "yicy;": "ї", "Yopf;": "𝕐", "yopf;": "𝕪", "Yscr;": "𝒴", "yscr;": "𝓎", "YUcy;": "Ю", "yucy;": "ю", "Yuml;": "Ÿ", "yuml;": "ÿ", "Zdot;": "Ż", "zdot;": "ż", "Zeta;": "Ζ", "zeta;": "ζ", "ZHcy;": "Ж", "zhcy;": "ж", "Zopf;": "ℤ", "zopf;": "𝕫", "Zscr;": "𝒵", "zscr;": "𝓏", "zwnj;": "‌", "Aacute": "Á", "aacute": "á", "Acirc;": "Â", "acirc;": "â", "acute;": "´", "AElig;": "Æ", "aelig;": "æ", "Agrave": "À", "agrave": "à", "aleph;": "ℵ", "Alpha;": "Α", "alpha;": "α", "Amacr;": "Ā", "amacr;": "ā", "amalg;": "⨿", "angle;": "∠", "angrt;": "∟", "angst;": "Å", "Aogon;": "Ą", "aogon;": "ą", "Aring;": "Å", "aring;": "å", "asymp;": "≈", "Atilde": "Ã", "atilde": "ã", "awint;": "⨑", "bcong;": "≌", "bdquo;": "„", "bepsi;": "϶", "blank;": "␣", "blk12;": "▒", "blk14;": "░", "blk34;": "▓", "block;": "█", "boxDL;": "╗", "boxDl;": "╖", "boxdL;": "╕", "boxdl;": "┐", "boxDR;": "╔", "boxDr;": "╓", "boxdR;": "╒", "boxdr;": "┌", "boxHD;": "╦", "boxHd;": "╤", "boxhD;": "╥", "boxhd;": "┬", "boxHU;": "╩", "boxHu;": "╧", "boxhU;": "╨", "boxhu;": "┴", "boxUL;": "╝", "boxUl;": "╜", "boxuL;": "╛", "boxul;": "┘", "boxUR;": "╚", "boxUr;": "╙", "boxuR;": "╘", "boxur;": "└", "boxVH;": "╬", "boxVh;": "╫", "boxvH;": "╪", "boxvh;": "┼", "boxVL;": "╣", "boxVl;": "╢", "boxvL;": "╡", "boxvl;": "┤", "boxVR;": "╠", "boxVr;": "╟", "boxvR;": "╞", "boxvr;": "├", "Breve;": "˘", "breve;": "˘", "brvbar": "¦", "bsemi;": "⁏", "bsime;": "⋍", "bsolb;": "⧅", "bumpE;": "⪮", "bumpe;": "≏", "caret;": "⁁", "caron;": "ˇ", "ccaps;": "⩍", "Ccedil": "Ç", "ccedil": "ç", "Ccirc;": "Ĉ", "ccirc;": "ĉ", "ccups;": "⩌", "cedil;": "¸", "check;": "✓", "clubs;": "♣", "Colon;": "∷", "colon;": ":", "comma;": ",", "crarr;": "↵", "Cross;": "⨯", "cross;": "✗", "csube;": "⫑", "csupe;": "⫒", "ctdot;": "⋯", "cuepr;": "⋞", "cuesc;": "⋟", "cupor;": "⩅", "curren": "¤", "cuvee;": "⋎", "cuwed;": "⋏", "cwint;": "∱", "Dashv;": "⫤", "dashv;": "⊣", "dblac;": "˝", "ddarr;": "⇊", "Delta;": "Δ", "delta;": "δ", "dharl;": "⇃", "dharr;": "⇂", "diams;": "♦", "disin;": "⋲", "divide": "÷", "doteq;": "≐", "dtdot;": "⋱", "dtrif;": "▾", "duarr;": "⇵", "duhar;": "⥯", "Eacute": "É", "eacute": "é", "Ecirc;": "Ê", "ecirc;": "ê", "eDDot;": "⩷", "efDot;": "≒", "Egrave": "È", "egrave": "è", "Emacr;": "Ē", "emacr;": "ē", "empty;": "∅", "Eogon;": "Ę", "eogon;": "ę", "eplus;": "⩱", "epsiv;": "ϵ", "eqsim;": "≂", "Equal;": "⩵", "equiv;": "≡", "erarr;": "⥱", "erDot;": "≓", "esdot;": "≐", "exist;": "∃", "fflig;": "ff", "filig;": "fi", "fjlig;": "fj", "fllig;": "fl", "fltns;": "▱", "forkv;": "⫙", "frac12": "½", "frac14": "¼", "frac34": "¾", "frasl;": "⁄", "frown;": "⌢", "Gamma;": "Γ", "gamma;": "γ", "Gcirc;": "Ĝ", "gcirc;": "ĝ", "gescc;": "⪩", "gimel;": "ℷ", "gneqq;": "≩", "gnsim;": "⋧", "grave;": "`", "gsime;": "⪎", "gsiml;": "⪐", "gtcir;": "⩺", "gtdot;": "⋗", "Hacek;": "ˇ", "harrw;": "↭", "Hcirc;": "Ĥ", "hcirc;": "ĥ", "hoarr;": "⇿", "Iacute": "Í", "iacute": "í", "Icirc;": "Î", "icirc;": "î", "iexcl;": "¡", "Igrave": "Ì", "igrave": "ì", "iiint;": "∭", "iiota;": "℩", "IJlig;": "IJ", "ijlig;": "ij", "Imacr;": "Ī", "imacr;": "ī", "image;": "ℑ", "imath;": "ı", "imped;": "Ƶ", "infin;": "∞", "Iogon;": "Į", "iogon;": "į", "iprod;": "⨼", "iquest": "¿", "isinE;": "⋹", "isins;": "⋴", "isinv;": "∈", "Iukcy;": "І", "iukcy;": "і", "Jcirc;": "Ĵ", "jcirc;": "ĵ", "jmath;": "ȷ", "Jukcy;": "Є", "jukcy;": "є", "Kappa;": "Κ", "kappa;": "κ", "lAarr;": "⇚", "langd;": "⦑", "laquo;": "«", "larrb;": "⇤", "lates;": "⪭︀", "lBarr;": "⤎", "lbarr;": "⤌", "lbbrk;": "❲", "lbrke;": "⦋", "lceil;": "⌈", "ldquo;": "“", "lescc;": "⪨", "lhard;": "↽", "lharu;": "↼", "lhblk;": "▄", "llarr;": "⇇", "lltri;": "◺", "lneqq;": "≨", "lnsim;": "⋦", "loang;": "⟬", "loarr;": "⇽", "lobrk;": "⟦", "lopar;": "⦅", "lrarr;": "⇆", "lrhar;": "⇋", "lrtri;": "⊿", "lsime;": "⪍", "lsimg;": "⪏", "lsquo;": "‘", "ltcir;": "⩹", "ltdot;": "⋖", "ltrie;": "⊴", "ltrif;": "◂", "mdash;": "—", "mDDot;": "∺", "micro;": "µ", "middot": "·", "minus;": "−", "mumap;": "⊸", "nabla;": "∇", "napid;": "≋̸", "napos;": "ʼn", "natur;": "♮", "nbump;": "≎̸", "ncong;": "≇", "ndash;": "–", "neArr;": "⇗", "nearr;": "↗", "nedot;": "≐̸", "nesim;": "≂̸", "ngeqq;": "≧̸", "ngsim;": "≵", "nhArr;": "⇎", "nharr;": "↮", "nhpar;": "⫲", "nlArr;": "⇍", "nlarr;": "↚", "nleqq;": "≦̸", "nless;": "≮", "nlsim;": "≴", "nltri;": "⋪", "notin;": "∉", "notni;": "∌", "npart;": "∂̸", "nprec;": "⊀", "nrArr;": "⇏", "nrarr;": "↛", "nrtri;": "⋫", "nsime;": "≄", "nsmid;": "∤", "nspar;": "∦", "nsubE;": "⫅̸", "nsube;": "⊈", "nsucc;": "⊁", "nsupE;": "⫆̸", "nsupe;": "⊉", "Ntilde": "Ñ", "ntilde": "ñ", "numsp;": " ", "nvsim;": "∼⃒", "nwArr;": "⇖", "nwarr;": "↖", "Oacute": "Ó", "oacute": "ó", "Ocirc;": "Ô", "ocirc;": "ô", "odash;": "⊝", "OElig;": "Œ", "oelig;": "œ", "ofcir;": "⦿", "Ograve": "Ò", "ograve": "ò", "ohbar;": "⦵", "olarr;": "↺", "olcir;": "⦾", "oline;": "‾", "Omacr;": "Ō", "omacr;": "ō", "Omega;": "Ω", "omega;": "ω", "operp;": "⦹", "oplus;": "⊕", "orarr;": "↻", "order;": "ℴ", "Oslash": "Ø", "oslash": "ø", "Otilde": "Õ", "otilde": "õ", "ovbar;": "⌽", "parsl;": "⫽", "phone;": "☎", "plusb;": "⊞", "pluse;": "⩲", "plusmn": "±", "pound;": "£", "prcue;": "≼", "Prime;": "″", "prime;": "′", "prnap;": "⪹", "prsim;": "≾", "quest;": "?", "rAarr;": "⇛", "radic;": "√", "rangd;": "⦒", "range;": "⦥", "raquo;": "»", "rarrb;": "⇥", "rarrc;": "⤳", "rarrw;": "↝", "ratio;": "∶", "RBarr;": "⤐", "rBarr;": "⤏", "rbarr;": "⤍", "rbbrk;": "❳", "rbrke;": "⦌", "rceil;": "⌉", "rdquo;": "”", "reals;": "ℝ", "rhard;": "⇁", "rharu;": "⇀", "rlarr;": "⇄", "rlhar;": "⇌", "rnmid;": "⫮", "roang;": "⟭", "roarr;": "⇾", "robrk;": "⟧", "ropar;": "⦆", "rrarr;": "⇉", "rsquo;": "’", "rtrie;": "⊵", "rtrif;": "▸", "sbquo;": "‚", "sccue;": "≽", "Scirc;": "Ŝ", "scirc;": "ŝ", "scnap;": "⪺", "scsim;": "≿", "sdotb;": "⊡", "sdote;": "⩦", "seArr;": "⇘", "searr;": "↘", "setmn;": "∖", "sharp;": "♯", "Sigma;": "Σ", "sigma;": "σ", "simeq;": "≃", "simgE;": "⪠", "simlE;": "⪟", "simne;": "≆", "slarr;": "←", "smile;": "⌣", "smtes;": "⪬︀", "sqcap;": "⊓", "sqcup;": "⊔", "sqsub;": "⊏", "sqsup;": "⊐", "srarr;": "→", "starf;": "★", "strns;": "¯", "subnE;": "⫋", "subne;": "⊊", "supnE;": "⫌", "supne;": "⊋", "swArr;": "⇙", "swarr;": "↙", "szlig;": "ß", "Theta;": "Θ", "theta;": "θ", "thkap;": "≈", "THORN;": "Þ", "thorn;": "þ", "Tilde;": "∼", "tilde;": "˜", "times;": "×", "TRADE;": "™", "trade;": "™", "trisb;": "⧍", "TSHcy;": "Ћ", "tshcy;": "ћ", "twixt;": "≬", "Uacute": "Ú", "uacute": "ú", "Ubrcy;": "Ў", "ubrcy;": "ў", "Ucirc;": "Û", "ucirc;": "û", "udarr;": "⇅", "udhar;": "⥮", "Ugrave": "Ù", "ugrave": "ù", "uharl;": "↿", "uharr;": "↾", "uhblk;": "▀", "ultri;": "◸", "Umacr;": "Ū", "umacr;": "ū", "Union;": "⋃", "Uogon;": "Ų", "uogon;": "ų", "uplus;": "⊎", "upsih;": "ϒ", "UpTee;": "⊥", "Uring;": "Ů", "uring;": "ů", "urtri;": "◹", "utdot;": "⋰", "utrif;": "▴", "uuarr;": "⇈", "varpi;": "ϖ", "vBarv;": "⫩", "VDash;": "⊫", "Vdash;": "⊩", "vDash;": "⊨", "vdash;": "⊢", "veeeq;": "≚", "vltri;": "⊲", "vnsub;": "⊂⃒", "vnsup;": "⊃⃒", "vprop;": "∝", "vrtri;": "⊳", "Wcirc;": "Ŵ", "wcirc;": "ŵ", "Wedge;": "⋀", "wedge;": "∧", "xcirc;": "◯", "xdtri;": "▽", "xhArr;": "⟺", "xharr;": "⟷", "xlArr;": "⟸", "xlarr;": "⟵", "xodot;": "⨀", "xrArr;": "⟹", "xrarr;": "⟶", "xutri;": "△", "Yacute": "Ý", "yacute": "ý", "Ycirc;": "Ŷ", "ycirc;": "ŷ", "Aacute;": "Á", "aacute;": "á", "Abreve;": "Ă", "abreve;": "ă", "Agrave;": "À", "agrave;": "à", "andand;": "⩕", "angmsd;": "∡", "angsph;": "∢", "apacir;": "⩯", "approx;": "≈", "Assign;": "≔", "Atilde;": "Ã", "atilde;": "ã", "barvee;": "⊽", "Barwed;": "⌆", "barwed;": "⌅", "becaus;": "∵", "bernou;": "ℬ", "bigcap;": "⋂", "bigcup;": "⋃", "bigvee;": "⋁", "bkarow;": "⤍", "bottom;": "⊥", "bowtie;": "⋈", "boxbox;": "⧉", "bprime;": "‵", "brvbar;": "¦", "bullet;": "•", "Bumpeq;": "≎", "bumpeq;": "≏", "Cacute;": "Ć", "cacute;": "ć", "capand;": "⩄", "capcap;": "⩋", "capcup;": "⩇", "capdot;": "⩀", "Ccaron;": "Č", "ccaron;": "č", "Ccedil;": "Ç", "ccedil;": "ç", "circeq;": "≗", "cirmid;": "⫯", "Colone;": "⩴", "colone;": "≔", "commat;": "@", "compfn;": "∘", "Conint;": "∯", "conint;": "∮", "coprod;": "∐", "copysr;": "℗", "cularr;": "↶", "CupCap;": "≍", "cupcap;": "⩆", "cupcup;": "⩊", "cupdot;": "⊍", "curarr;": "↷", "curren;": "¤", "cylcty;": "⌭", "Dagger;": "‡", "dagger;": "†", "daleth;": "ℸ", "Dcaron;": "Ď", "dcaron;": "ď", "dfisht;": "⥿", "divide;": "÷", "divonx;": "⋇", "dlcorn;": "⌞", "dlcrop;": "⌍", "dollar;": "$", "DotDot;": "⃜", "drcorn;": "⌟", "drcrop;": "⌌", "Dstrok;": "Đ", "dstrok;": "đ", "Eacute;": "É", "eacute;": "é", "easter;": "⩮", "Ecaron;": "Ě", "ecaron;": "ě", "ecolon;": "≕", "Egrave;": "È", "egrave;": "è", "egsdot;": "⪘", "elsdot;": "⪗", "emptyv;": "∅", "emsp13;": " ", "emsp14;": " ", "eparsl;": "⧣", "eqcirc;": "≖", "equals;": "=", "equest;": "≟", "Exists;": "∃", "female;": "♀", "ffilig;": "ffi", "ffllig;": "ffl", "ForAll;": "∀", "forall;": "∀", "frac12;": "½", "frac13;": "⅓", "frac14;": "¼", "frac15;": "⅕", "frac16;": "⅙", "frac18;": "⅛", "frac23;": "⅔", "frac25;": "⅖", "frac34;": "¾", "frac35;": "⅗", "frac38;": "⅜", "frac45;": "⅘", "frac56;": "⅚", "frac58;": "⅝", "frac78;": "⅞", "gacute;": "ǵ", "Gammad;": "Ϝ", "gammad;": "ϝ", "Gbreve;": "Ğ", "gbreve;": "ğ", "Gcedil;": "Ģ", "gesdot;": "⪀", "gesles;": "⪔", "gtlPar;": "⦕", "gtrarr;": "⥸", "gtrdot;": "⋗", "gtrsim;": "≳", "hairsp;": " ", "hamilt;": "ℋ", "HARDcy;": "Ъ", "hardcy;": "ъ", "hearts;": "♥", "hellip;": "…", "hercon;": "⊹", "homtht;": "∻", "horbar;": "―", "hslash;": "ℏ", "Hstrok;": "Ħ", "hstrok;": "ħ", "hybull;": "⁃", "hyphen;": "‐", "Iacute;": "Í", "iacute;": "í", "Igrave;": "Ì", "igrave;": "ì", "iiiint;": "⨌", "iinfin;": "⧜", "incare;": "℅", "inodot;": "ı", "intcal;": "⊺", "iquest;": "¿", "isinsv;": "⋳", "Itilde;": "Ĩ", "itilde;": "ĩ", "Jsercy;": "Ј", "jsercy;": "ј", "kappav;": "ϰ", "Kcedil;": "Ķ", "kcedil;": "ķ", "kgreen;": "ĸ", "Lacute;": "Ĺ", "lacute;": "ĺ", "lagran;": "ℒ", "Lambda;": "Λ", "lambda;": "λ", "langle;": "⟨", "larrfs;": "⤝", "larrhk;": "↩", "larrlp;": "↫", "larrpl;": "⤹", "larrtl;": "↢", "lAtail;": "⤛", "latail;": "⤙", "lbrace;": "{", "lbrack;": "[", "Lcaron;": "Ľ", "lcaron;": "ľ", "Lcedil;": "Ļ", "lcedil;": "ļ", "ldquor;": "„", "lesdot;": "⩿", "lesges;": "⪓", "lfisht;": "⥼", "lfloor;": "⌊", "lharul;": "⥪", "llhard;": "⥫", "Lmidot;": "Ŀ", "lmidot;": "ŀ", "lmoust;": "⎰", "loplus;": "⨭", "lowast;": "∗", "lowbar;": "_", "lparlt;": "⦓", "lrhard;": "⥭", "lsaquo;": "‹", "lsquor;": "‚", "Lstrok;": "Ł", "lstrok;": "ł", "lthree;": "⋋", "ltimes;": "⋉", "ltlarr;": "⥶", "ltrPar;": "⦖", "mapsto;": "↦", "marker;": "▮", "mcomma;": "⨩", "midast;": "*", "midcir;": "⫰", "middot;": "·", "minusb;": "⊟", "minusd;": "∸", "mnplus;": "∓", "models;": "⊧", "mstpos;": "∾", "Nacute;": "Ń", "nacute;": "ń", "nbumpe;": "≏̸", "Ncaron;": "Ň", "ncaron;": "ň", "Ncedil;": "Ņ", "ncedil;": "ņ", "nearhk;": "⤤", "nequiv;": "≢", "nesear;": "⤨", "nexist;": "∄", "nltrie;": "⋬", "notinE;": "⋹̸", "nparsl;": "⫽⃥", "nprcue;": "⋠", "nrarrc;": "⤳̸", "nrarrw;": "↝̸", "nrtrie;": "⋭", "nsccue;": "⋡", "nsimeq;": "≄", "Ntilde;": "Ñ", "ntilde;": "ñ", "numero;": "№", "nVDash;": "⊯", "nVdash;": "⊮", "nvDash;": "⊭", "nvdash;": "⊬", "nvHarr;": "⤄", "nvlArr;": "⤂", "nvrArr;": "⤃", "nwarhk;": "⤣", "nwnear;": "⤧", "Oacute;": "Ó", "oacute;": "ó", "Odblac;": "Ő", "odblac;": "ő", "odsold;": "⦼", "Ograve;": "Ò", "ograve;": "ò", "ominus;": "⊖", "origof;": "⊶", "Oslash;": "Ø", "oslash;": "ø", "Otilde;": "Õ", "otilde;": "õ", "Otimes;": "⨷", "otimes;": "⊗", "parsim;": "⫳", "percnt;": "%", "period;": ".", "permil;": "‰", "phmmat;": "ℳ", "planck;": "ℏ", "plankv;": "ℏ", "plusdo;": "∔", "plusdu;": "⨥", "plusmn;": "±", "preceq;": "⪯", "primes;": "ℙ", "prnsim;": "⋨", "propto;": "∝", "prurel;": "⊰", "puncsp;": " ", "qprime;": "⁗", "Racute;": "Ŕ", "racute;": "ŕ", "rangle;": "⟩", "rarrap;": "⥵", "rarrfs;": "⤞", "rarrhk;": "↪", "rarrlp;": "↬", "rarrpl;": "⥅", "Rarrtl;": "⤖", "rarrtl;": "↣", "rAtail;": "⤜", "ratail;": "⤚", "rbrace;": "}", "rbrack;": "]", "Rcaron;": "Ř", "rcaron;": "ř", "Rcedil;": "Ŗ", "rcedil;": "ŗ", "rdquor;": "”", "rfisht;": "⥽", "rfloor;": "⌋", "rharul;": "⥬", "rmoust;": "⎱", "roplus;": "⨮", "rpargt;": "⦔", "rsaquo;": "›", "rsquor;": "’", "rthree;": "⋌", "rtimes;": "⋊", "Sacute;": "Ś", "sacute;": "ś", "Scaron;": "Š", "scaron;": "š", "Scedil;": "Ş", "scedil;": "ş", "scnsim;": "⋩", "searhk;": "⤥", "seswar;": "⤩", "sfrown;": "⌢", "SHCHcy;": "Щ", "shchcy;": "щ", "sigmaf;": "ς", "sigmav;": "ς", "simdot;": "⩪", "smashp;": "⨳", "SOFTcy;": "Ь", "softcy;": "ь", "solbar;": "⌿", "spades;": "♠", "sqcaps;": "⊓︀", "sqcups;": "⊔︀", "sqsube;": "⊑", "sqsupe;": "⊒", "Square;": "□", "square;": "□", "squarf;": "▪", "ssetmn;": "∖", "ssmile;": "⌣", "sstarf;": "⋆", "subdot;": "⪽", "Subset;": "⋐", "subset;": "⊂", "subsim;": "⫇", "subsub;": "⫕", "subsup;": "⫓", "succeq;": "⪰", "supdot;": "⪾", "Supset;": "⋑", "supset;": "⊃", "supsim;": "⫈", "supsub;": "⫔", "supsup;": "⫖", "swarhk;": "⤦", "swnwar;": "⤪", "target;": "⌖", "Tcaron;": "Ť", "tcaron;": "ť", "Tcedil;": "Ţ", "tcedil;": "ţ", "telrec;": "⌕", "there4;": "∴", "thetav;": "ϑ", "thinsp;": " ", "thksim;": "∼", "timesb;": "⊠", "timesd;": "⨰", "topbot;": "⌶", "topcir;": "⫱", "tprime;": "‴", "tridot;": "◬", "Tstrok;": "Ŧ", "tstrok;": "ŧ", "Uacute;": "Ú", "uacute;": "ú", "Ubreve;": "Ŭ", "ubreve;": "ŭ", "Udblac;": "Ű", "udblac;": "ű", "ufisht;": "⥾", "Ugrave;": "Ù", "ugrave;": "ù", "ulcorn;": "⌜", "ulcrop;": "⌏", "urcorn;": "⌝", "urcrop;": "⌎", "Utilde;": "Ũ", "utilde;": "ũ", "vangrt;": "⦜", "varphi;": "ϕ", "varrho;": "ϱ", "Vdashl;": "⫦", "veebar;": "⊻", "vellip;": "⋮", "Verbar;": "‖", "verbar;": "|", "vsubnE;": "⫋︀", "vsubne;": "⊊︀", "vsupnE;": "⫌︀", "vsupne;": "⊋︀", "Vvdash;": "⊪", "wedbar;": "⩟", "wedgeq;": "≙", "weierp;": "℘", "wreath;": "≀", "xoplus;": "⨁", "xotime;": "⨂", "xsqcup;": "⨆", "xuplus;": "⨄", "xwedge;": "⋀", "Yacute;": "Ý", "yacute;": "ý", "Zacute;": "Ź", "zacute;": "ź", "Zcaron;": "Ž", "zcaron;": "ž", "zeetrf;": "ℨ", "alefsym;": "ℵ", "angrtvb;": "⊾", "angzarr;": "⍼", "asympeq;": "≍", "backsim;": "∽", "Because;": "∵", "because;": "∵", "bemptyv;": "⦰", "between;": "≬", "bigcirc;": "◯", "bigodot;": "⨀", "bigstar;": "★", "bnequiv;": "≡⃥", "boxplus;": "⊞", "Cayleys;": "ℭ", "Cconint;": "∰", "ccupssm;": "⩐", "Cedilla;": "¸", "cemptyv;": "⦲", "cirscir;": "⧂", "coloneq;": "≔", "congdot;": "⩭", "cudarrl;": "⤸", "cudarrr;": "⤵", "cularrp;": "⤽", "curarrm;": "⤼", "dbkarow;": "⤏", "ddagger;": "‡", "ddotseq;": "⩷", "demptyv;": "⦱", "Diamond;": "⋄", "diamond;": "⋄", "digamma;": "ϝ", "dotplus;": "∔", "DownTee;": "⊤", "dwangle;": "⦦", "Element;": "∈", "Epsilon;": "Ε", "epsilon;": "ε", "eqcolon;": "≕", "equivDD;": "⩸", "gesdoto;": "⪂", "gtquest;": "⩼", "gtrless;": "≷", "harrcir;": "⥈", "Implies;": "⇒", "intprod;": "⨼", "isindot;": "⋵", "larrbfs;": "⤟", "larrsim;": "⥳", "lbrksld;": "⦏", "lbrkslu;": "⦍", "ldrdhar;": "⥧", "LeftTee;": "⊣", "lesdoto;": "⪁", "lessdot;": "⋖", "lessgtr;": "≶", "lesssim;": "≲", "lotimes;": "⨴", "lozenge;": "◊", "ltquest;": "⩻", "luruhar;": "⥦", "maltese;": "✠", "minusdu;": "⨪", "napprox;": "≉", "natural;": "♮", "nearrow;": "↗", "NewLine;": "\n", "nexists;": "∄", "NoBreak;": "⁠", "notinva;": "∉", "notinvb;": "⋷", "notinvc;": "⋶", "NotLess;": "≮", "notniva;": "∌", "notnivb;": "⋾", "notnivc;": "⋽", "npolint;": "⨔", "npreceq;": "⪯̸", "nsqsube;": "⋢", "nsqsupe;": "⋣", "nsubset;": "⊂⃒", "nsucceq;": "⪰̸", "nsupset;": "⊃⃒", "nvinfin;": "⧞", "nvltrie;": "⊴⃒", "nvrtrie;": "⊵⃒", "nwarrow;": "↖", "olcross;": "⦻", "Omicron;": "Ο", "omicron;": "ο", "orderof;": "ℴ", "orslope;": "⩗", "OverBar;": "‾", "pertenk;": "‱", "planckh;": "ℎ", "pluscir;": "⨢", "plussim;": "⨦", "plustwo;": "⨧", "precsim;": "≾", "Product;": "∏", "quatint;": "⨖", "questeq;": "≟", "rarrbfs;": "⤠", "rarrsim;": "⥴", "rbrksld;": "⦎", "rbrkslu;": "⦐", "rdldhar;": "⥩", "realine;": "ℛ", "rotimes;": "⨵", "ruluhar;": "⥨", "searrow;": "↘", "simplus;": "⨤", "simrarr;": "⥲", "subedot;": "⫃", "submult;": "⫁", "subplus;": "⪿", "subrarr;": "⥹", "succsim;": "≿", "supdsub;": "⫘", "supedot;": "⫄", "suphsol;": "⟉", "suphsub;": "⫗", "suplarr;": "⥻", "supmult;": "⫂", "supplus;": "⫀", "swarrow;": "↙", "topfork;": "⫚", "triplus;": "⨹", "tritime;": "⨻", "UpArrow;": "↑", "Uparrow;": "⇑", "uparrow;": "↑", "Upsilon;": "Υ", "upsilon;": "υ", "uwangle;": "⦧", "vzigzag;": "⦚", "zigrarr;": "⇝", "andslope;": "⩘", "angmsdaa;": "⦨", "angmsdab;": "⦩", "angmsdac;": "⦪", "angmsdad;": "⦫", "angmsdae;": "⦬", "angmsdaf;": "⦭", "angmsdag;": "⦮", "angmsdah;": "⦯", "angrtvbd;": "⦝", "approxeq;": "≊", "awconint;": "∳", "backcong;": "≌", "barwedge;": "⌅", "bbrktbrk;": "⎶", "bigoplus;": "⨁", "bigsqcup;": "⨆", "biguplus;": "⨄", "bigwedge;": "⋀", "boxminus;": "⊟", "boxtimes;": "⊠", "bsolhsub;": "⟈", "capbrcup;": "⩉", "circledR;": "®", "circledS;": "Ⓢ", "cirfnint;": "⨐", "clubsuit;": "♣", "cupbrcap;": "⩈", "curlyvee;": "⋎", "cwconint;": "∲", "DDotrahd;": "⤑", "doteqdot;": "≑", "DotEqual;": "≐", "dotminus;": "∸", "drbkarow;": "⤐", "dzigrarr;": "⟿", "elinters;": "⏧", "emptyset;": "∅", "eqvparsl;": "⧥", "fpartint;": "⨍", "geqslant;": "⩾", "gesdotol;": "⪄", "gnapprox;": "⪊", "hksearow;": "⤥", "hkswarow;": "⤦", "imagline;": "ℐ", "imagpart;": "ℑ", "infintie;": "⧝", "integers;": "ℤ", "Integral;": "∫", "intercal;": "⊺", "intlarhk;": "⨗", "laemptyv;": "⦴", "ldrushar;": "⥋", "leqslant;": "⩽", "lesdotor;": "⪃", "LessLess;": "⪡", "llcorner;": "⌞", "lnapprox;": "⪉", "lrcorner;": "⌟", "lurdshar;": "⥊", "mapstoup;": "↥", "multimap;": "⊸", "naturals;": "ℕ", "ncongdot;": "⩭̸", "NotEqual;": "≠", "notindot;": "⋵̸", "NotTilde;": "≁", "otimesas;": "⨶", "parallel;": "∥", "PartialD;": "∂", "plusacir;": "⨣", "pointint;": "⨕", "Precedes;": "≺", "precneqq;": "⪵", "precnsim;": "⋨", "profalar;": "⌮", "profline;": "⌒", "profsurf;": "⌓", "raemptyv;": "⦳", "realpart;": "ℜ", "RightTee;": "⊢", "rppolint;": "⨒", "rtriltri;": "⧎", "scpolint;": "⨓", "setminus;": "∖", "shortmid;": "∣", "smeparsl;": "⧤", "sqsubset;": "⊏", "sqsupset;": "⊐", "subseteq;": "⊆", "Succeeds;": "≻", "succneqq;": "⪶", "succnsim;": "⋩", "SuchThat;": "∋", "Superset;": "⊃", "supseteq;": "⊇", "thetasym;": "ϑ", "thicksim;": "∼", "timesbar;": "⨱", "triangle;": "▵", "triminus;": "⨺", "trpezium;": "⏢", "Uarrocir;": "⥉", "ulcorner;": "⌜", "UnderBar;": "_", "urcorner;": "⌝", "varkappa;": "ϰ", "varsigma;": "ς", "vartheta;": "ϑ", "backprime;": "‵", "backsimeq;": "⋍", "Backslash;": "∖", "bigotimes;": "⨂", "CenterDot;": "·", "centerdot;": "·", "checkmark;": "✓", "CircleDot;": "⊙", "complexes;": "ℂ", "Congruent;": "≡", "Coproduct;": "∐", "dotsquare;": "⊡", "DoubleDot;": "¨", "DownArrow;": "↓", "Downarrow;": "⇓", "downarrow;": "↓", "DownBreve;": "̑", "gtrapprox;": "⪆", "gtreqless;": "⋛", "gvertneqq;": "≩︀", "heartsuit;": "♥", "HumpEqual;": "≏", "LeftArrow;": "←", "Leftarrow;": "⇐", "leftarrow;": "←", "LeftFloor;": "⌊", "lesseqgtr;": "⋚", "LessTilde;": "≲", "lvertneqq;": "≨︀", "Mellintrf;": "ℳ", "MinusPlus;": "∓", "ngeqslant;": "⩾̸", "nleqslant;": "⩽̸", "NotCupCap;": "≭", "NotExists;": "∄", "NotSubset;": "⊂⃒", "nparallel;": "∦", "nshortmid;": "∤", "nsubseteq;": "⊈", "nsupseteq;": "⊉", "OverBrace;": "⏞", "pitchfork;": "⋔", "PlusMinus;": "±", "rationals;": "ℚ", "spadesuit;": "♠", "subseteqq;": "⫅", "subsetneq;": "⊊", "supseteqq;": "⫆", "supsetneq;": "⊋", "Therefore;": "∴", "therefore;": "∴", "ThinSpace;": " ", "triangleq;": "≜", "TripleDot;": "⃛", "UnionPlus;": "⊎", "varpropto;": "∝", "Bernoullis;": "ℬ", "circledast;": "⊛", "CirclePlus;": "⊕", "complement;": "∁", "curlywedge;": "⋏", "eqslantgtr;": "⪖", "EqualTilde;": "≂", "Fouriertrf;": "ℱ", "gtreqqless;": "⪌", "ImaginaryI;": "ⅈ", "Laplacetrf;": "ℒ", "LeftVector;": "↼", "lessapprox;": "⪅", "lesseqqgtr;": "⪋", "Lleftarrow;": "⇚", "lmoustache;": "⎰", "longmapsto;": "⟼", "mapstodown;": "↧", "mapstoleft;": "↤", "nLeftarrow;": "⇍", "nleftarrow;": "↚", "NotElement;": "∉", "NotGreater;": "≯", "nsubseteqq;": "⫅̸", "nsupseteqq;": "⫆̸", "precapprox;": "⪷", "Proportion;": "∷", "RightArrow;": "→", "Rightarrow;": "⇒", "rightarrow;": "→", "RightFloor;": "⌋", "rmoustache;": "⎱", "sqsubseteq;": "⊑", "sqsupseteq;": "⊒", "subsetneqq;": "⫋", "succapprox;": "⪸", "supsetneqq;": "⫌", "ThickSpace;": "  ", "TildeEqual;": "≃", "TildeTilde;": "≈", "UnderBrace;": "⏟", "UpArrowBar;": "⤒", "UpTeeArrow;": "↥", "upuparrows;": "⇈", "varepsilon;": "ϵ", "varnothing;": "∅", "backepsilon;": "϶", "blacksquare;": "▪", "circledcirc;": "⊚", "circleddash;": "⊝", "CircleMinus;": "⊖", "CircleTimes;": "⊗", "curlyeqprec;": "⋞", "curlyeqsucc;": "⋟", "diamondsuit;": "♦", "eqslantless;": "⪕", "Equilibrium;": "⇌", "expectation;": "ℰ", "GreaterLess;": "≷", "LeftCeiling;": "⌈", "LessGreater;": "≶", "MediumSpace;": " ", "NotLessLess;": "≪̸", "NotPrecedes;": "⊀", "NotSucceeds;": "⊁", "NotSuperset;": "⊃⃒", "nRightarrow;": "⇏", "nrightarrow;": "↛", "OverBracket;": "⎴", "preccurlyeq;": "≼", "precnapprox;": "⪹", "quaternions;": "ℍ", "RightVector;": "⇀", "Rrightarrow;": "⇛", "RuleDelayed;": "⧴", "SmallCircle;": "∘", "SquareUnion;": "⊔", "straightphi;": "ϕ", "SubsetEqual;": "⊆", "succcurlyeq;": "≽", "succnapprox;": "⪺", "thickapprox;": "≈", "UpDownArrow;": "↕", "Updownarrow;": "⇕", "updownarrow;": "↕", "VerticalBar;": "∣", "blacklozenge;": "⧫", "DownArrowBar;": "⤓", "DownTeeArrow;": "↧", "ExponentialE;": "ⅇ", "exponentiale;": "ⅇ", "GreaterEqual;": "≥", "GreaterTilde;": "≳", "HilbertSpace;": "ℋ", "HumpDownHump;": "≎", "Intersection;": "⋂", "LeftArrowBar;": "⇤", "LeftTeeArrow;": "↤", "LeftTriangle;": "⊲", "LeftUpVector;": "↿", "NotCongruent;": "≢", "NotHumpEqual;": "≏̸", "NotLessEqual;": "≰", "NotLessTilde;": "≴", "Proportional;": "∝", "RightCeiling;": "⌉", "risingdotseq;": "≓", "RoundImplies;": "⥰", "ShortUpArrow;": "↑", "SquareSubset;": "⊏", "triangledown;": "▿", "triangleleft;": "◃", "UnderBracket;": "⎵", "varsubsetneq;": "⊊︀", "varsupsetneq;": "⊋︀", "VerticalLine;": "|", "ApplyFunction;": "⁡", "bigtriangleup;": "△", "blacktriangle;": "▴", "DifferentialD;": "ⅆ", "divideontimes;": "⋇", "DoubleLeftTee;": "⫤", "DoubleUpArrow;": "⇑", "fallingdotseq;": "≒", "hookleftarrow;": "↩", "leftarrowtail;": "↢", "leftharpoonup;": "↼", "LeftTeeVector;": "⥚", "LeftVectorBar;": "⥒", "LessFullEqual;": "≦", "LongLeftArrow;": "⟵", "Longleftarrow;": "⟸", "longleftarrow;": "⟵", "looparrowleft;": "↫", "measuredangle;": "∡", "NotEqualTilde;": "≂̸", "NotTildeEqual;": "≄", "NotTildeTilde;": "≉", "ntriangleleft;": "⋪", "Poincareplane;": "ℌ", "PrecedesEqual;": "⪯", "PrecedesTilde;": "≾", "RightArrowBar;": "⇥", "RightTeeArrow;": "↦", "RightTriangle;": "⊳", "RightUpVector;": "↾", "shortparallel;": "∥", "smallsetminus;": "∖", "SucceedsEqual;": "⪰", "SucceedsTilde;": "≿", "SupersetEqual;": "⊇", "triangleright;": "▹", "UpEquilibrium;": "⥮", "upharpoonleft;": "↿", "varsubsetneqq;": "⫋︀", "varsupsetneqq;": "⫌︀", "VerticalTilde;": "≀", "VeryThinSpace;": " ", "curvearrowleft;": "↶", "DiacriticalDot;": "˙", "doublebarwedge;": "⌆", "DoubleRightTee;": "⊨", "downdownarrows;": "⇊", "DownLeftVector;": "↽", "GreaterGreater;": "⪢", "hookrightarrow;": "↪", "HorizontalLine;": "─", "InvisibleComma;": "⁣", "InvisibleTimes;": "⁢", "LeftDownVector;": "⇃", "leftleftarrows;": "⇇", "LeftRightArrow;": "↔", "Leftrightarrow;": "⇔", "leftrightarrow;": "↔", "leftthreetimes;": "⋋", "LessSlantEqual;": "⩽", "LongRightArrow;": "⟶", "Longrightarrow;": "⟹", "longrightarrow;": "⟶", "looparrowright;": "↬", "LowerLeftArrow;": "↙", "NestedLessLess;": "≪", "NotGreaterLess;": "≹", "NotLessGreater;": "≸", "NotSubsetEqual;": "⊈", "NotVerticalBar;": "∤", "nshortparallel;": "∦", "ntriangleright;": "⋫", "OpenCurlyQuote;": "‘", "ReverseElement;": "∋", "rightarrowtail;": "↣", "rightharpoonup;": "⇀", "RightTeeVector;": "⥛", "RightVectorBar;": "⥓", "ShortDownArrow;": "↓", "ShortLeftArrow;": "←", "SquareSuperset;": "⊐", "TildeFullEqual;": "≅", "trianglelefteq;": "⊴", "upharpoonright;": "↾", "UpperLeftArrow;": "↖", "ZeroWidthSpace;": "​", "bigtriangledown;": "▽", "circlearrowleft;": "↺", "CloseCurlyQuote;": "’", "ContourIntegral;": "∮", "curvearrowright;": "↷", "DoubleDownArrow;": "⇓", "DoubleLeftArrow;": "⇐", "downharpoonleft;": "⇃", "DownRightVector;": "⇁", "leftharpoondown;": "↽", "leftrightarrows;": "⇆", "LeftRightVector;": "⥎", "LeftTriangleBar;": "⧏", "LeftUpTeeVector;": "⥠", "LeftUpVectorBar;": "⥘", "LowerRightArrow;": "↘", "nLeftrightarrow;": "⇎", "nleftrightarrow;": "↮", "NotGreaterEqual;": "≱", "NotGreaterTilde;": "≵", "NotHumpDownHump;": "≎̸", "NotLeftTriangle;": "⋪", "NotSquareSubset;": "⊏̸", "ntrianglelefteq;": "⋬", "OverParenthesis;": "⏜", "RightDownVector;": "⇂", "rightleftarrows;": "⇄", "rightsquigarrow;": "↝", "rightthreetimes;": "⋌", "ShortRightArrow;": "→", "straightepsilon;": "ϵ", "trianglerighteq;": "⊵", "UpperRightArrow;": "↗", "vartriangleleft;": "⊲", "circlearrowright;": "↻", "DiacriticalAcute;": "´", "DiacriticalGrave;": "`", "DiacriticalTilde;": "˜", "DoubleRightArrow;": "⇒", "DownArrowUpArrow;": "⇵", "downharpoonright;": "⇂", "EmptySmallSquare;": "◻", "GreaterEqualLess;": "⋛", "GreaterFullEqual;": "≧", "LeftAngleBracket;": "⟨", "LeftUpDownVector;": "⥑", "LessEqualGreater;": "⋚", "NonBreakingSpace;": " ", "NotPrecedesEqual;": "⪯̸", "NotRightTriangle;": "⋫", "NotSucceedsEqual;": "⪰̸", "NotSucceedsTilde;": "≿̸", "NotSupersetEqual;": "⊉", "ntrianglerighteq;": "⋭", "rightharpoondown;": "⇁", "rightrightarrows;": "⇉", "RightTriangleBar;": "⧐", "RightUpTeeVector;": "⥜", "RightUpVectorBar;": "⥔", "twoheadleftarrow;": "↞", "UnderParenthesis;": "⏝", "UpArrowDownArrow;": "⇅", "vartriangleright;": "⊳", "blacktriangledown;": "▾", "blacktriangleleft;": "◂", "DoubleUpDownArrow;": "⇕", "DoubleVerticalBar;": "∥", "DownLeftTeeVector;": "⥞", "DownLeftVectorBar;": "⥖", "FilledSmallSquare;": "◼", "GreaterSlantEqual;": "⩾", "LeftDoubleBracket;": "⟦", "LeftDownTeeVector;": "⥡", "LeftDownVectorBar;": "⥙", "leftrightharpoons;": "⇋", "LeftTriangleEqual;": "⊴", "NegativeThinSpace;": "​", "NotGreaterGreater;": "≫̸", "NotLessSlantEqual;": "⩽̸", "NotNestedLessLess;": "⪡̸", "NotReverseElement;": "∌", "NotSquareSuperset;": "⊐̸", "NotTildeFullEqual;": "≇", "RightAngleBracket;": "⟩", "rightleftharpoons;": "⇌", "RightUpDownVector;": "⥏", "SquareSubsetEqual;": "⊑", "twoheadrightarrow;": "↠", "VerticalSeparator;": "❘", "blacktriangleright;": "▸", "DownRightTeeVector;": "⥟", "DownRightVectorBar;": "⥗", "LongLeftRightArrow;": "⟷", "Longleftrightarrow;": "⟺", "longleftrightarrow;": "⟷", "NegativeThickSpace;": "​", "NotLeftTriangleBar;": "⧏̸", "PrecedesSlantEqual;": "≼", "ReverseEquilibrium;": "⇋", "RightDoubleBracket;": "⟧", "RightDownTeeVector;": "⥝", "RightDownVectorBar;": "⥕", "RightTriangleEqual;": "⊵", "SquareIntersection;": "⊓", "SucceedsSlantEqual;": "≽", "DoubleLongLeftArrow;": "⟸", "DownLeftRightVector;": "⥐", "LeftArrowRightArrow;": "⇆", "leftrightsquigarrow;": "↭", "NegativeMediumSpace;": "​", "NotGreaterFullEqual;": "≧̸", "NotRightTriangleBar;": "⧐̸", "RightArrowLeftArrow;": "⇄", "SquareSupersetEqual;": "⊒", "CapitalDifferentialD;": "ⅅ", "DoubleLeftRightArrow;": "⇔", "DoubleLongRightArrow;": "⟹", "EmptyVerySmallSquare;": "▫", "NestedGreaterGreater;": "≫", "NotDoubleVerticalBar;": "∦", "NotGreaterSlantEqual;": "⩾̸", "NotLeftTriangleEqual;": "⋬", "NotSquareSubsetEqual;": "⋢", "OpenCurlyDoubleQuote;": "“", "ReverseUpEquilibrium;": "⥯", "CloseCurlyDoubleQuote;": "”", "DoubleContourIntegral;": "∯", "FilledVerySmallSquare;": "▪", "NegativeVeryThinSpace;": "​", "NotPrecedesSlantEqual;": "⋠", "NotRightTriangleEqual;": "⋭", "NotSucceedsSlantEqual;": "⋡", "DiacriticalDoubleAcute;": "˝", "NotSquareSupersetEqual;": "⋣", "NotNestedGreaterGreater;": "⪢̸", "ClockwiseContourIntegral;": "∲", "DoubleLongLeftRightArrow;": "⟺", "CounterClockwiseContourIntegral;": "∳" } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156648, function(require, module, exports) { var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.genExpr = exports.genBabelExpr = exports.generate = void 0; const shared_1 = require("@vue/shared"); const compiler_core_1 = require("@vue/compiler-core"); const generator_1 = __importDefault(require("@babel/generator")); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); function generate(ast, options) { const context = createCodegenContext(ast, options); const { mode, push, indent, deindent, newline, prefixIdentifiers } = context; const helpers = Array.from(ast.helpers); const hasHelpers = helpers.length > 0; const useWithBlock = !prefixIdentifiers && mode !== 'module'; const isSetupInlined = !!options.inline; // preambles // in setup() inline mode, the preamble is generated in a sub context // and returned separately. const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context; if (mode === 'module') { genModulePreamble(ast, preambleContext, isSetupInlined); } else { genFunctionPreamble(ast, preambleContext); } // enter render function const functionName = `render`; const args = ['_ctx', '_cache']; if (options.bindingMetadata && !options.inline) { // binding optimization args args.push('$props', '$setup', '$data', '$options'); } const signature = options.isTS ? args.map((arg) => `${arg}: any`).join(',') : args.join(', '); if (isSetupInlined) { push(`(${signature}) => {`); } else { push(`function ${functionName}(${signature}) {`); } indent(); if (useWithBlock) { push(`with (_ctx) {`); indent(); if (hasHelpers) { push(`const { ${helpers .map((s) => `${compiler_core_1.helperNameMap[s]}: _${compiler_core_1.helperNameMap[s]}`) .join(', ')} } = _Vue`); push(`\n`); newline(); } } push(`return `); push(genBabelExpr(ast.renderData, options.generatorOpts)); if (useWithBlock) { deindent(); push(`}`); } deindent(); push(`}`); return { code: context.code, preamble: isSetupInlined ? preambleContext.code : ``, // SourceMapGenerator does have toJSON() method but it's not in the types map: context.map ? context.map.toJSON() : undefined, }; } exports.generate = generate; function createCodegenContext(ast, { mode = 'function', prefixIdentifiers = mode === 'module', filename = `template.vue.html`, scopeId = null, runtimeGlobalName = `Vue`, runtimeModuleName = `vue`, isTS = false, sourceMap = false, }) { const context = { mode, prefixIdentifiers, filename, scopeId, runtimeGlobalName, runtimeModuleName, bindingComponents: ast.bindingComponents, isTS, source: ast.loc.source, code: ``, column: 1, line: 1, offset: 0, indentLevel: 0, push(code, node) { context.code += code; if (context.map) { if (node) { let name; if (node.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */ && !node.isStatic) { const content = node.content.replace(/^_ctx\./, ''); if (content !== node.content && (0, compiler_core_1.isSimpleIdentifier)(content)) { name = content; } } addMapping(node.loc.start, name); } (0, compiler_core_1.advancePositionWithMutation)(context, code); if (node && node.loc !== compiler_core_1.locStub) { addMapping(node.loc.end); } } }, indent() { newline(++context.indentLevel); }, deindent(withoutNewLine = false) { if (withoutNewLine) { --context.indentLevel; } else { newline(--context.indentLevel); } }, newline() { newline(context.indentLevel); }, }; function newline(n) { context.push('\n' + ` `.repeat(n)); } function addMapping(loc, name) { context.map.addMapping({ name, source: context.filename || '', original: { line: loc.line, column: loc.column - 1, // source-map column is 0 based }, generated: { line: context.line, column: context.column - 1, }, }); } // 暂时无需提供 sourcemap 支持 // if (sourceMap) { // // lazy require source-map implementation // context.map = new SourceMapGenerator() // context.map!.setSourceContent(filename, context.source) // } return context; } function genComponentImports(bindingComponents, { push, newline }) { const tags = Object.keys(bindingComponents); const importDeclarations = []; // 仅记录easycom和setup组件 const components = []; tags.forEach((tag) => { const { name, type } = bindingComponents[tag]; if (type === "unknown" /* BindingComponentTypes.UNKNOWN */) { const source = (0, uni_cli_shared_1.matchEasycom)(tag); if (source) { // 调整为easycom命名 const easycomName = name.replace('component', 'easycom'); bindingComponents[tag].name = easycomName; components.push(easycomName); (0, uni_cli_shared_1.addImportDeclaration)(importDeclarations, easycomName, source); } } else if (type === "setup" /* BindingComponentTypes.SETUP */) { components.push(name); } }); if (tags.length) { push(`const __BINDING_COMPONENTS__ = '` + JSON.stringify(bindingComponents) + `'`); const resolveComponents = []; const names = []; Object.keys(bindingComponents).forEach((id) => { const { type, name } = bindingComponents[id]; if (type === "unknown" /* BindingComponentTypes.UNKNOWN */) { resolveComponents.push(`const ${name} = _${compiler_core_1.helperNameMap[compiler_core_1.RESOLVE_COMPONENT]}("${id}");`); names.push(name); } }); if (resolveComponents.length) { newline(); push(`if (!Array) {`); resolveComponents.forEach((code) => { push(code); }); push(`(${names.join('+')})()`); push(`}`); } newline(); importDeclarations.forEach((str) => push(str)); if (importDeclarations.length) { newline(); } if (components.length) { push(`if (!Math) {`); push(` (${components.map((name) => name).join('+')})() `); push(`}`); newline(); } } } function genFunctionPreamble(ast, context) { const { prefixIdentifiers, push, newline, runtimeGlobalName, bindingComponents, } = context; const VueBinding = runtimeGlobalName; const aliasHelper = (s) => `${compiler_core_1.helperNameMap[s]}: _${compiler_core_1.helperNameMap[s]}`; const helpers = Array.from(ast.helpers); if (helpers.length > 0) { if (prefixIdentifiers) { push(`const { ${helpers.map(aliasHelper).join(', ')} } = ${VueBinding}\n`); } else { push(`const _Vue = ${VueBinding}\n`); } } genComponentImports(bindingComponents, context); newline(); push(`return `); } function genModulePreamble(ast, context, inline) { const { push, newline, runtimeModuleName, bindingComponents } = context; const helpers = Array.from(ast.helpers); if (helpers.length) { push(`import { ${helpers .map((s) => `${compiler_core_1.helperNameMap[s]} as _${compiler_core_1.helperNameMap[s]}`) .join(', ')} } from ${JSON.stringify(runtimeModuleName)}\n`); } if (ast.imports.length) { genImports(ast.imports, context); } genComponentImports(bindingComponents, context); newline(); if (!inline) { push(`export `); } } function genImports(importsOptions, { push, newline }) { if (!importsOptions.length) { return; } importsOptions.forEach((imports) => { push(`import `); push(genExpr(imports.exp)); push(` from '${imports.path}'`); newline(); }); } function createGenNodeContext() { const context = { code: '', helper(key) { return `_${compiler_core_1.helperNameMap[key]}`; }, push(code) { context.code += code; }, }; return context; } function genBabelExpr(expr, opts = {}) { if (!(0, shared_1.hasOwn)(opts, 'jsescOption')) { opts.jsescOption = {}; } opts.jsescOption.quotes = 'single'; return (0, generator_1.default)(expr, opts).code; } exports.genBabelExpr = genBabelExpr; function genExpr(node, context) { return genNode(node, context).code; } exports.genExpr = genExpr; function genNode(node, context) { if (!context) { context = createGenNodeContext(); } if ((0, shared_1.isString)(node)) { context.push(node); return context; } if ((0, shared_1.isSymbol)(node)) { context.push(context.helper(node)); return context; } switch (node.type) { case 2 /* NodeTypes.TEXT */: genText(node, context); break; case 4 /* NodeTypes.SIMPLE_EXPRESSION */: genExpression(node, context); break; case 5 /* NodeTypes.INTERPOLATION */: genInterpolation(node, context); break; case 8 /* NodeTypes.COMPOUND_EXPRESSION */: genCompoundExpression(node, context); break; } return context; } function genText(node, context) { context.push(JSON.stringify(node.content), node); } function genExpression(node, context) { const { content, isStatic } = node; context.push(isStatic ? JSON.stringify(content) : content, node); } function genInterpolation(node, context) { const { push, helper } = context; push(`${helper(compiler_core_1.TO_DISPLAY_STRING)}(`); genExpr(node.content, context); push(`)`); } function genCompoundExpression(node, context) { for (let i = 0; i < node.children.length; i++) { const child = node.children[i]; if ((0, shared_1.isString)(child)) { context.push(child); } else { genExpr(child, context); } } } }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156650, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.createVForArrowFunctionExpression = exports.createForLoopParams = exports.parseForExpression = exports.parseVForScope = exports.transformFor = exports.isForElementNode = void 0; const shared_1 = require("@vue/shared"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const compiler_core_1 = require("@vue/compiler-core"); const ast_1 = require("../ast"); const transform_1 = require("../transform"); const transformExpression_1 = require("./transformExpression"); const codegen_1 = require("../codegen"); const types_1 = require("@babel/types"); const utils_1 = require("./utils"); const runtimeHelpers_1 = require("../runtimeHelpers"); const vSlot_1 = require("./vSlot"); function isForElementNode(node) { return !!node.vFor; } exports.isForElementNode = isForElementNode; exports.transformFor = (0, transform_1.createStructuralDirectiveTransform)('for', (node, dir, context) => { if (!dir.exp) { context.onError((0, compiler_core_1.createCompilerError)(31 /* ErrorCodes.X_V_FOR_NO_EXPRESSION */, dir.loc)); return; } const parseResult = parseForExpression(dir.exp, context); if (!parseResult) { context.onError((0, compiler_core_1.createCompilerError)(32 /* ErrorCodes.X_V_FOR_MALFORMED_EXPRESSION */, dir.loc)); return; } parseResult.tagType = node.tagType; const { addIdentifiers, removeIdentifiers } = context; const { source, value, key, index } = parseResult; if (context.prefixIdentifiers) { addIdentifiers(value); addIdentifiers(key); addIdentifiers(index); } const { currentScope: parentScope, scopes, popScope } = context; const sourceExpr = (0, ast_1.parseExpr)(source, context); const valueCode = (0, codegen_1.genExpr)(value); const valueExpr = (0, ast_1.parseParam)(valueCode, context, value); const valueAlias = parseAlias(valueExpr, valueCode, 'v' + scopes.vFor); const keyCode = (0, codegen_1.genExpr)(key); const keyExpr = (0, ast_1.parseParam)(keyCode, context, key); const keyAlias = parseAlias(keyExpr, keyCode, 'k' + scopes.vFor); const indexCode = (0, codegen_1.genExpr)(index); const indexExpr = (0, ast_1.parseParam)(indexCode, context, index); const indexAlias = parseAlias(indexExpr, indexCode, 'i' + scopes.vFor); // 先占位 vFor,后续更新 cloneSourceExpr 为 CallExpression const cloneSourceExpr = (0, types_1.cloneNode)(sourceExpr, false); const sourceAliasReferencedScope = (0, utils_1.findReferencedScope)(cloneSourceExpr, context.currentScope, // vFor 嵌套时,始终保持嵌套关系,issues/3263 false); // 寻找子节点中 if 指令作用域 const vIfReferencedScope = findVIfReferencedScope(node, context.currentScope, context); // 取最近的作用域 const referencedScope = vIfReferencedScope && context.getScopeIndex(vIfReferencedScope) > context.getScopeIndex(sourceAliasReferencedScope) ? vIfReferencedScope : sourceAliasReferencedScope; const sourceAlias = (0, utils_1.rewriteExpression)(source, context, cloneSourceExpr, parentScope, // 强制 rewrite,因为即使是字符串,数字,也要走 vFor 函数 { property: true, ignoreLiteral: true, referencedScope, }).content; const sourceCode = `{{${sourceAlias}}}`; const vForData = { source, sourceExpr, sourceAlias, sourceCode, value, valueCode, valueExpr, valueAlias, key, keyCode, keyExpr, keyAlias, index, indexCode, indexExpr, indexAlias, node, }; const vForScope = context.addVForScope({ ...vForData, locals: findVForLocals(parseResult), }); const vFor = { ...vForData, }; const isScopedSlot = (0, transform_1.isScopedSlotVFor)(vForScope); node.vFor = vFor; scopes.vFor++; return () => { scopes.vFor--; if ((0, compiler_core_1.isTemplateNode)(node)) { node.children.some((c) => { if (c.type === 1 /* NodeTypes.ELEMENT */ && !isForElementNode(c)) { const key = (0, compiler_core_1.findProp)(c, 'key'); if (key) { context.onError((0, compiler_core_1.createCompilerError)(33 /* ErrorCodes.X_V_FOR_TEMPLATE_KEY_PLACEMENT */, key.loc)); return true; } } }); } if (context.prefixIdentifiers) { value && removeIdentifiers(value); key && removeIdentifiers(key); index && removeIdentifiers(index); } (0, shared_1.extend)(clearExpr(cloneSourceExpr), isScopedSlot ? (0, vSlot_1.createVSlotCallExpression)(node .slotComponent, vForScope, context) : createVForCallExpression(vForScope, context)); popScope(); }; }); function clearExpr(expr) { Object.keys(expr).forEach((key) => { delete expr[key]; }); return expr; } function parseAlias(babelExpr, exprCode, fallback) { if ((0, types_1.isIdentifier)(babelExpr)) { return exprCode; } return fallback; } function parseVForScope(currentScope) { while (currentScope) { if ((0, transform_1.isVForScope)(currentScope) && !(0, transform_1.isScopedSlotVFor)(currentScope)) { return currentScope; } currentScope = currentScope.parent; } } exports.parseVForScope = parseVForScope; function findVIfReferencedScope(node, currentScope, context) { if (!currentScope) { return; } const vForScope = parseVForScope(currentScope); if (!vForScope) { return; } if (!node.children.find((item) => checkVIfReferenced(item, vForScope, context))) { return findVIfReferencedScope(node, currentScope.parent, context); } return vForScope; } function checkVIfReferenced(node, vForScope, context) { if (!(0, uni_cli_shared_1.isElementNode)(node)) { return false; } // 嵌套 for 不查找 if ((0, compiler_core_1.findDir)(node, 'for')) { return false; } const ifDir = (0, compiler_core_1.findDir)(node, 'if'); if (ifDir) { return checkDirReferenced(ifDir.exp, vForScope, context); } const elseIfDir = (0, compiler_core_1.findDir)(node, 'else-if'); if (elseIfDir) { return checkDirReferenced(elseIfDir.exp, vForScope, context); } return !!node.children.find((item) => checkVIfReferenced(item, vForScope, context)); } function checkDirReferenced(node, vForScope, context) { if (node) { const babelNode = (0, ast_1.parseExpr)(node, context); if (babelNode && (0, utils_1.isReferencedByIds)(babelNode, vForScope.locals)) { return true; } } return false; } function findVForLocals({ value, key, index }) { const ids = []; if (value) { findIds(value, ids); } if (key) { findIds(key, ids); } if (index) { findIds(index, ids); } return ids; } function findIds(exp, ids) { if ((0, shared_1.isString)(exp)) { ids.push(exp); } else if (exp.identifiers) { exp.identifiers.forEach((id) => ids.push(id)); } else if (exp.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */) { ids.push(exp.content); } } const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/; const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/; const stripParensRE = /^\(|\)$/g; function parseForExpression(input, context) { const loc = input.loc; const exp = input.content; const inMatch = exp.match(forAliasRE); if (!inMatch) return; const [, LHS, RHS] = inMatch; const result = { source: createAliasExpression(loc, RHS.trim(), exp.indexOf(RHS, LHS.length)), value: (0, compiler_core_1.createSimpleExpression)('v' + context.scopes.vFor), key: (0, compiler_core_1.createSimpleExpression)('k' + context.scopes.vFor), index: (0, compiler_core_1.createSimpleExpression)('i' + context.scopes.vFor), tagType: 0 /* ElementTypes.ELEMENT */, }; if (context.prefixIdentifiers) { result.source = (0, transformExpression_1.processExpression)(result.source, context); } let valueContent = LHS.trim().replace(stripParensRE, '').trim(); const trimmedOffset = LHS.indexOf(valueContent); const iteratorMatch = valueContent.match(forIteratorRE); if (iteratorMatch) { valueContent = valueContent.replace(forIteratorRE, '').trim(); const keyContent = iteratorMatch[1].trim(); let keyOffset; if (keyContent) { keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length); result.key = createAliasExpression(loc, keyContent, keyOffset); if (context.prefixIdentifiers) { result.key = (0, transformExpression_1.processExpression)(result.key, context, true); } } if (iteratorMatch[2]) { const indexContent = iteratorMatch[2].trim(); if (indexContent) { result.index = createAliasExpression(loc, indexContent, exp.indexOf(indexContent, result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length)); if (context.prefixIdentifiers) { result.index = (0, transformExpression_1.processExpression)(result.index, context, true); } } } } if (valueContent) { result.value = createAliasExpression(loc, valueContent, trimmedOffset); if (context.prefixIdentifiers) { result.value = (0, transformExpression_1.processExpression)(result.value, context, true); } } return result; } exports.parseForExpression = parseForExpression; function createAliasExpression(range, content, offset) { return (0, compiler_core_1.createSimpleExpression)(content, false, (0, compiler_core_1.getInnerRange)(range, offset, content.length)); } function createForLoopParams({ value, key, index }, memoArgs = []) { return createParamsList([value, key, index, ...memoArgs]); } exports.createForLoopParams = createForLoopParams; function createParamsList(args) { let i = args.length; while (i--) { if (args[i]) break; } return args .slice(0, i + 1) .map((arg, i) => arg || (0, compiler_core_1.createSimpleExpression)(`_`.repeat(i + 1), false)); } function createVForCallExpression(vForScope, context) { // let sourceExpr: Expression = vForScope.sourceExpr! // if (isNumericLiteral(sourceExpr)) { // sourceExpr = numericLiteralToArrayExpr((sourceExpr as NumericLiteral).value) // } return (0, types_1.callExpression)((0, types_1.identifier)(context.helperString(runtimeHelpers_1.V_FOR)), [ vForScope.sourceExpr, createVForArrowFunctionExpression(vForScope), ]); } function createVForArrowFunctionExpression({ valueExpr, keyExpr, indexExpr, properties, }) { const params = []; if (valueExpr) { params.push(valueExpr); } if (keyExpr) { params.push(keyExpr); } if (indexExpr) { params.push(indexExpr); } return (0, types_1.arrowFunctionExpression)(params, (0, types_1.blockStatement)([(0, types_1.returnStatement)((0, types_1.objectExpression)(properties))])); } exports.createVForArrowFunctionExpression = createVForArrowFunctionExpression; }, function(modId) { var map = {"../ast":1745998156651,"./transformExpression":1745998156653,"../codegen":1745998156648,"../runtimeHelpers":1745998156655,"./vSlot":1745998156656}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156651, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.parseStringLiteral = exports.isTrueExpr = exports.isUndefined = exports.parseParam = exports.parseExpr = exports.createVIfSpreadElement = exports.createVIfConditionalExpression = exports.createVIfProperty = exports.createObjectExpression = exports.createSpreadElement = exports.createObjectProperty = exports.createIdentifier = void 0; const shared_1 = require("@vue/shared"); const parser_1 = require("@babel/parser"); const types_1 = require("@babel/types"); const compiler_core_1 = require("@vue/compiler-core"); const codegen_1 = require("./codegen"); function createIdentifier(name) { return (0, types_1.identifier)(name); } exports.createIdentifier = createIdentifier; function createObjectProperty(name, value) { return (0, types_1.objectProperty)((0, types_1.identifier)(name), value); } exports.createObjectProperty = createObjectProperty; function createSpreadElement(argument) { return (0, types_1.spreadElement)(argument); } exports.createSpreadElement = createSpreadElement; function createObjectExpression(properties) { return (0, types_1.objectExpression)(properties); } exports.createObjectExpression = createObjectExpression; function createVIfProperty(condition, { id }) { return (0, types_1.objectProperty)((0, types_1.identifier)(id.next()), condition); } exports.createVIfProperty = createVIfProperty; function createVIfConditionalExpression({ condition, properties, }) { return (0, types_1.conditionalExpression)(condition, (0, types_1.objectExpression)(properties), (0, types_1.objectExpression)([])); } exports.createVIfConditionalExpression = createVIfConditionalExpression; function createVIfSpreadElement(vIfScope) { return (0, types_1.spreadElement)(createVIfConditionalExpression(vIfScope)); } exports.createVIfSpreadElement = createVIfSpreadElement; // function numericLiteralToArrayExpr(num: number) { // const elements: NumericLiteral[] = [] // for (let i = 0; i < num; i++) { // elements.push(numericLiteral(i + 1)) // } // return arrayExpression(elements) // } function parseExpr(code, context, node) { if (!(0, shared_1.isString)(code)) { node = code; code = (0, codegen_1.genExpr)(code); } try { return (0, parser_1.parseExpression)(code, { plugins: context.expressionPlugins, }); } catch (e) { context.onError((0, compiler_core_1.createCompilerError)(45 /* ErrorCodes.X_INVALID_EXPRESSION */, node && node.loc, undefined, '\n' + code + '\n' + e.message)); } } exports.parseExpr = parseExpr; function parseParam(code, context, node) { const { params: [expr], } = parseExpr(`(${code})=>{}`, context, node); return expr; } exports.parseParam = parseParam; function isUndefined(expr) { return (0, types_1.isIdentifier)(expr) && expr.name === 'undefined'; } exports.isUndefined = isUndefined; function isTrueExpr(expr) { if ((0, types_1.isNullLiteral)(expr)) { return false; } if ((0, types_1.isStringLiteral)(expr) || (0, types_1.isNumericLiteral)(expr) || (0, types_1.isBooleanLiteral)(expr) || (0, types_1.isBigIntLiteral)(expr) || (0, types_1.isDecimalLiteral)(expr)) { return !!expr.value; } return true; } exports.isTrueExpr = isTrueExpr; function parseStringLiteral(expr) { if ((0, types_1.isIdentifier)(expr)) { return (0, types_1.stringLiteral)(expr.name); } if ((0, types_1.isStringLiteral)(expr)) { return (0, types_1.stringLiteral)(expr.value); } return (0, types_1.stringLiteral)(''); } exports.parseStringLiteral = parseStringLiteral; }, function(modId) { var map = {"./codegen":1745998156648}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156653, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.isBuiltInIdentifier = exports.processExpression = exports.transformExpression = void 0; const shared_1 = require("@vue/shared"); const compiler_core_1 = require("@vue/compiler-core"); const parser_1 = require("@babel/parser"); const isLiteralWhitelisted = /*#__PURE__*/ (0, shared_1.makeMap)('true,false,null,this'); const transformExpression = (node, context) => { if (node.type === 5 /* NodeTypes.INTERPOLATION */) { node.content = processExpression(node.content, context); } else if (node.type === 1 /* NodeTypes.ELEMENT */) { // handle directives on element for (let i = 0; i < node.props.length; i++) { const dir = node.props[i]; // do not process for v-on & v-for since they are special handled if (dir.type === 7 /* NodeTypes.DIRECTIVE */ && dir.name !== 'for') { const exp = dir.exp; const arg = dir.arg; // do not process exp if this is v-on:arg - we need special handling // for wrapping inline statements. if (exp && exp.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */ && !(dir.name === 'on' && arg)) { dir.exp = processExpression(exp, context, // slot args must be processed as function params dir.name === 'slot'); } if (arg && arg.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */ && !arg.isStatic) { dir.arg = processExpression(arg, context); } } } } }; exports.transformExpression = transformExpression; // Important: since this function uses Node.js only dependencies, it should // always be used with a leading !__BROWSER__ check so that it can be // tree-shaken from the browser build. function processExpression(node, context, // some expressions like v-slot props & v-for aliases should be parsed as // function params asParams = false, // v-on handler values may contain multiple statements asRawStatements = false, localVars = Object.create(context.identifiers)) { if (!context.prefixIdentifiers || !node.content.trim()) { return node; } const { inline, bindingMetadata } = context; const rewriteIdentifier = (raw, parent, id) => { const type = (0, shared_1.hasOwn)(bindingMetadata, raw) && bindingMetadata[raw]; if (inline) { // x = y const isAssignmentLVal = parent && parent.type === 'AssignmentExpression' && parent.left === id; // x++ const isUpdateArg = parent && parent.type === 'UpdateExpression' && parent.argument === id; // ({ x } = y) const isDestructureAssignment = parent && (0, compiler_core_1.isInDestructureAssignment)(parent, parentStack); if (type === "setup-const" /* BindingTypes.SETUP_CONST */ || type === "setup-reactive-const" /* BindingTypes.SETUP_REACTIVE_CONST */ || localVars[raw]) { return raw; } else if (type === "setup-ref" /* BindingTypes.SETUP_REF */) { return `${raw}.value`; } else if (type === "setup-maybe-ref" /* BindingTypes.SETUP_MAYBE_REF */) { // const binding that may or may not be ref // if it's not a ref, then assignments don't make sense - // so we ignore the non-ref assignment case and generate code // that assumes the value to be a ref for more efficiency return isAssignmentLVal || isUpdateArg || isDestructureAssignment ? `${raw}.value` : `${context.helperString(compiler_core_1.UNREF)}(${raw})`; } else if (type === "setup-let" /* BindingTypes.SETUP_LET */) { if (isAssignmentLVal) { // let binding. // this is a bit more tricky as we need to cover the case where // let is a local non-ref value, and we need to replicate the // right hand side value. // x = y --> isRef(x) ? x.value = y : x = y const { right: rVal, operator } = parent; const rExp = rawExp.slice(rVal.start - 1, rVal.end - 1); const rExpString = stringifyExpression(processExpression((0, compiler_core_1.createSimpleExpression)(rExp, false), context, false, false, knownIds)); return `${context.helperString(compiler_core_1.IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${raw}.value ${operator} ${rExpString} : ${raw}`; } else if (isUpdateArg) { // make id replace parent in the code range so the raw update operator // is removed id.start = parent.start; id.end = parent.end; const { prefix: isPrefix, operator } = parent; const prefix = isPrefix ? operator : ``; const postfix = isPrefix ? `` : operator; // let binding. // x++ --> isRef(a) ? a.value++ : a++ return `${context.helperString(compiler_core_1.IS_REF)}(${raw})${context.isTS ? ` //@ts-ignore\n` : ``} ? ${prefix}${raw}.value${postfix} : ${prefix}${raw}${postfix}`; } else if (isDestructureAssignment) { // TODO // let binding in a destructure assignment - it's very tricky to // handle both possible cases here without altering the original // structure of the code, so we just assume it's not a ref here // for now return raw; } else { return `${context.helperString(compiler_core_1.UNREF)}(${raw})`; } } else if (type === "props" /* BindingTypes.PROPS */) { // use __props which is generated by compileScript so in ts mode // it gets correct type return (0, shared_1.genPropsAccessExp)(raw); } else if (type === "props-aliased" /* BindingTypes.PROPS_ALIASED */) { // prop with a different local alias (from defineProps() destructure) return (0, shared_1.genPropsAccessExp)(bindingMetadata.__propsAliases[raw]); } } else { if (type && type.startsWith('setup')) { // setup bindings in non-inline mode return `$setup.${raw}`; } else if (type === "props-aliased" /* BindingTypes.PROPS_ALIASED */) { return `$props['${bindingMetadata.__propsAliases[raw]}']`; } else if (type) { return `$${type}.${raw}`; } } // fallback to ctx return `_ctx.${raw}`; }; // fast path if expression is a simple identifier. const rawExp = node.content; // bail constant on parens (function invocation) and dot (member access) const bailConstant = rawExp.indexOf(`(`) > -1 || rawExp.indexOf('.') > 0; if ((0, compiler_core_1.isSimpleIdentifier)(rawExp)) { const isScopeVarReference = context.identifiers[rawExp]; const isAllowedGlobal = (0, shared_1.isGloballyWhitelisted)(rawExp); const isLiteral = isLiteralWhitelisted(rawExp); const isFilter = context.filters.includes(rawExp); const isBuiltIn = isBuiltInIdentifier(rawExp); if (!asParams && !isScopeVarReference && !isAllowedGlobal && !isLiteral && !isFilter && !isBuiltIn) { // const bindings exposed from setup can be skipped for patching but // cannot be hoisted to module scope if (bindingMetadata[node.content] === "setup-const" /* BindingTypes.SETUP_CONST */) { node.constType = 1 /* ConstantTypes.CAN_SKIP_PATCH */; } node.content = rewriteIdentifier(rawExp); } else if (!isScopeVarReference) { if (isLiteral) { node.constType = 3 /* ConstantTypes.CAN_STRINGIFY */; } else { node.constType = 2 /* ConstantTypes.CAN_HOIST */; } } return node; } let ast; // exp needs to be parsed differently: // 1. Multiple inline statements (v-on, with presence of `;`): parse as raw // exp, but make sure to pad with spaces for consistent ranges // 2. Expressions: wrap with parens (for e.g. object expressions) // 3. Function arguments (v-for, v-slot): place in a function argument position const source = asRawStatements ? ` ${rawExp} ` : `(${rawExp})${asParams ? `=>{}` : ``}`; try { ast = (0, parser_1.parse)(source, { plugins: context.expressionPlugins, }).program; } catch (e) { context.onError((0, compiler_core_1.createCompilerError)(45 /* ErrorCodes.X_INVALID_EXPRESSION */, node.loc, undefined, '\n' + source + '\n' + e.message)); return node; } const ids = []; const parentStack = []; const knownIds = Object.create(context.identifiers); context.filters.forEach((name) => { knownIds[name] = 1; }); (0, compiler_core_1.walkIdentifiers)(ast, (node, parent, _, isReferenced, isLocal) => { if ((0, compiler_core_1.isStaticPropertyKey)(node, parent)) { return; } const needPrefix = isReferenced && canPrefix(node); if (needPrefix && !isLocal) { if ((0, compiler_core_1.isStaticProperty)(parent) && parent.shorthand) { // property shorthand like { foo }, we need to add the key since // we rewrite the value ; node.prefix = `${node.name}: `; } node.name = rewriteIdentifier(node.name, parent, node); ids.push(node); } else { // The identifier is considered constant unless it's pointing to a // local scope variable (a v-for alias, or a v-slot prop) if (!(needPrefix && isLocal) && !bailConstant) { ; node.isConstant = true; } // also generate sub-expressions for other identifiers for better // source map support. (except for property keys which are static) ids.push(node); } }, true, // invoke on ALL identifiers parentStack, knownIds); // We break up the compound expression into an array of strings and sub // expressions (for identifiers that have been prefixed). In codegen, if // an ExpressionNode has the `.children` property, it will be used instead of // `.content`. const children = []; ids.sort((a, b) => a.start - b.start); ids.forEach((id, i) => { // range is offset by -1 due to the wrapping parens when parsed const start = id.start - 1; const end = id.end - 1; const last = ids[i - 1]; const leadingText = rawExp.slice(last ? last.end - 1 : 0, start); if (leadingText.length || id.prefix) { children.push(leadingText + (id.prefix || ``)); } const source = rawExp.slice(start, end); children.push((0, compiler_core_1.createSimpleExpression)(id.name, false, { source, start: (0, compiler_core_1.advancePositionWithClone)(node.loc.start, source, start), end: (0, compiler_core_1.advancePositionWithClone)(node.loc.start, source, end), }, id.isConstant ? 3 /* ConstantTypes.CAN_STRINGIFY */ : 0 /* ConstantTypes.NOT_CONSTANT */)); if (i === ids.length - 1 && end < rawExp.length) { children.push(rawExp.slice(end)); } }); let ret; if (children.length) { ret = (0, compiler_core_1.createCompoundExpression)(children, node.loc); } else { ret = node; ret.constType = bailConstant ? 0 /* ConstantTypes.NOT_CONSTANT */ : 3 /* ConstantTypes.CAN_STRINGIFY */; } ret.identifiers = Object.keys(knownIds); return ret; } exports.processExpression = processExpression; function canPrefix(id) { // skip whitelisted globals if ((0, shared_1.isGloballyWhitelisted)(id.name)) { return false; } // special case for webpack compilation if (id.name === 'require') { return false; } return true; } function stringifyExpression(exp) { if ((0, shared_1.isString)(exp)) { return exp; } else if (exp.type === 4 /* NodeTypes.SIMPLE_EXPRESSION */) { return exp.content; } else { return exp.children .map(stringifyExpression) .join(''); } } const builtInIdentifiers = ['__l']; function isBuiltInIdentifier(id) { if (!(0, shared_1.isString)(id)) { if (id.type !== 4 /* NodeTypes.SIMPLE_EXPRESSION */) { return false; } id = id.content; } return builtInIdentifiers.includes(id); } exports.isBuiltInIdentifier = isBuiltInIdentifier; }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156655, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.WITH_MODEL_MODIFIERS = exports.TO_DISPLAY_STRING = exports.NORMALIZE_CLASS = exports.STRINGIFY_STYLE = exports.WITH_SCOPED_SLOT = exports.DYNAMIC_SLOT = exports.RENDER_SLOT = exports.RENDER_PROPS = exports.HYPHENATE = exports.CAMELIZE = exports.SET_REF = exports.EXTEND = exports.V_FOR = exports.V_ON = void 0; const compiler_core_1 = require("@vue/compiler-core"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); exports.V_ON = Symbol(`vOn`); exports.V_FOR = Symbol(`vFor`); exports.EXTEND = Symbol(`extend`); exports.SET_REF = Symbol(`setRef`); exports.CAMELIZE = Symbol(`camelize`); exports.HYPHENATE = Symbol(`hyphenate`); exports.RENDER_PROPS = Symbol(`renderProps`); exports.RENDER_SLOT = Symbol(`renderSlot`); exports.DYNAMIC_SLOT = Symbol(`dynamicSlot`); exports.WITH_SCOPED_SLOT = Symbol(`withScopedSlot`); exports.STRINGIFY_STYLE = Symbol(`stringifyStyle`); exports.NORMALIZE_CLASS = Symbol(`normalizeClass`); exports.TO_DISPLAY_STRING = Symbol(`toDisplayString`); exports.WITH_MODEL_MODIFIERS = Symbol(`withModelModifiers`); (0, compiler_core_1.registerRuntimeHelpers)({ [exports.V_ON]: 'o', [exports.V_FOR]: 'f', [exports.EXTEND]: 'e', [exports.SET_REF]: 'sr', [exports.CAMELIZE]: 'c', [exports.HYPHENATE]: 'h', [exports.RENDER_PROPS]: 'p', [exports.RENDER_SLOT]: 'r', [exports.DYNAMIC_SLOT]: 'd', [exports.WITH_SCOPED_SLOT]: 'w', [exports.STRINGIFY_STYLE]: 's', [exports.NORMALIZE_CLASS]: 'n', [exports.TO_DISPLAY_STRING]: 't', [exports.WITH_MODEL_MODIFIERS]: 'm', [uni_cli_shared_1.STRINGIFY_JSON]: 'j', }); }, function(modId) { var map = {}; return __REQUIRE__(map[modId], modId); }) __DEFINE__(1745998156656, function(require, module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); exports.createVSlotCallExpression = exports.rewriteScopedSlotVForScope = exports.findCurrentPath = exports.findSlotName = exports.rewriteVSlot = exports.transformSlot = void 0; const types_1 = require("@babel/types"); const shared_1 = require("@vue/shared"); const compiler_core_1 = require("@vue/compiler-core"); const uni_shared_1 = require("@dcloudio/uni-shared"); const uni_cli_shared_1 = require("@dcloudio/uni-cli-shared"); const runtimeHelpers_1 = require("../runtimeHelpers"); const ast_1 = require("../ast"); const codegen_1 = require("../codegen"); const transform_1 = require("../transform"); const utils_1 = require("./utils"); const vFor_1 = require("./vFor"); const runtimeHelpers_2 = require("../runtimeHelpers"); const transformSlot = (node, context) => { if (!(0, uni_cli_shared_1.isUserComponent)(node, context)) { return; } const { tag, children } = node; const slots = new Set(); const onComponentSlot = (0, compiler_core_1.findDir)(node, 'slot', true); const implicitDefaultChildren = []; const isMiniProgramComponent = context.isMiniProgramComponent(tag); for (let i = 0; i < children.length; i++) { const slotElement = children[i]; let slotDir; if (!(0, compiler_core_1.isTemplateNode)(slotElement) || !(slotDir = (0, compiler_core_1.findDir)(slotElement, 'slot', true))) { // not a