{"version":3,"file":"qml.mjs","sources":["../../../../../../node_modules/highlight.js/lib/languages/qml.js"],"sourcesContent":["/*\nLanguage: QML\nRequires: javascript.js, xml.js\nAuthor: John Foster <jfoster@esri.com>\nDescription: Syntax highlighting for the Qt Quick QML scripting language, based mostly off\n             the JavaScript parser.\nWebsite: https://doc.qt.io/qt-5/qmlapplications.html\nCategory: scripting\n*/\n\nfunction qml(hljs) {\n  const regex = hljs.regex;\n  const KEYWORDS = {\n    keyword:\n      'in of on if for while finally var new function do return void else break catch '\n      + 'instanceof with throw case default try this switch continue typeof delete '\n      + 'let yield const export super debugger as async await import',\n    literal:\n      'true false null undefined NaN Infinity',\n    built_in:\n      'eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent '\n      + 'encodeURI encodeURIComponent escape unescape Object Function Boolean Error '\n      + 'EvalError InternalError RangeError ReferenceError StopIteration SyntaxError '\n      + 'TypeError URIError Number Math Date String RegExp Array Float32Array '\n      + 'Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array '\n      + 'Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require '\n      + 'module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect '\n      + 'Behavior bool color coordinate date double enumeration font geocircle georectangle '\n      + 'geoshape int list matrix4x4 parent point quaternion real rect '\n      + 'size string url variant vector2d vector3d vector4d '\n      + 'Promise'\n  };\n\n  const QML_IDENT_RE = '[a-zA-Z_][a-zA-Z0-9\\\\._]*';\n\n  // Isolate property statements. Ends at a :, =, ;, ,, a comment or end of line.\n  // Use property class.\n  const PROPERTY = {\n    className: 'keyword',\n    begin: '\\\\bproperty\\\\b',\n    starts: {\n      className: 'string',\n      end: '(:|=|;|,|//|/\\\\*|$)',\n      returnEnd: true\n    }\n  };\n\n  // Isolate signal statements. Ends at a ) a comment or end of line.\n  // Use property class.\n  const SIGNAL = {\n    className: 'keyword',\n    begin: '\\\\bsignal\\\\b',\n    starts: {\n      className: 'string',\n      end: '(\\\\(|:|=|;|,|//|/\\\\*|$)',\n      returnEnd: true\n    }\n  };\n\n  // id: is special in QML. When we see id: we want to mark the id: as attribute and\n  // emphasize the token following.\n  const ID_ID = {\n    className: 'attribute',\n    begin: '\\\\bid\\\\s*:',\n    starts: {\n      className: 'string',\n      end: QML_IDENT_RE,\n      returnEnd: false\n    }\n  };\n\n  // Find QML object attribute. An attribute is a QML identifier followed by :.\n  // Unfortunately it's hard to know where it ends, as it may contain scalars,\n  // objects, object definitions, or javascript. The true end is either when the parent\n  // ends or the next attribute is detected.\n  const QML_ATTRIBUTE = {\n    begin: QML_IDENT_RE + '\\\\s*:',\n    returnBegin: true,\n    contains: [\n      {\n        className: 'attribute',\n        begin: QML_IDENT_RE,\n        end: '\\\\s*:',\n        excludeEnd: true,\n        relevance: 0\n      }\n    ],\n    relevance: 0\n  };\n\n  // Find QML object. A QML object is a QML identifier followed by { and ends at the matching }.\n  // All we really care about is finding IDENT followed by { and just mark up the IDENT and ignore the {.\n  const QML_OBJECT = {\n    begin: regex.concat(QML_IDENT_RE, /\\s*\\{/),\n    end: /\\{/,\n    returnBegin: true,\n    relevance: 0,\n    contains: [ hljs.inherit(hljs.TITLE_MODE, { begin: QML_IDENT_RE }) ]\n  };\n\n  return {\n    name: 'QML',\n    aliases: [ 'qt' ],\n    case_insensitive: false,\n    keywords: KEYWORDS,\n    contains: [\n      {\n        className: 'meta',\n        begin: /^\\s*['\"]use (strict|asm)['\"]/\n      },\n      hljs.APOS_STRING_MODE,\n      hljs.QUOTE_STRING_MODE,\n      { // template string\n        className: 'string',\n        begin: '`',\n        end: '`',\n        contains: [\n          hljs.BACKSLASH_ESCAPE,\n          {\n            className: 'subst',\n            begin: '\\\\$\\\\{',\n            end: '\\\\}'\n          }\n        ]\n      },\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      {\n        className: 'number',\n        variants: [\n          { begin: '\\\\b(0[bB][01]+)' },\n          { begin: '\\\\b(0[oO][0-7]+)' },\n          { begin: hljs.C_NUMBER_RE }\n        ],\n        relevance: 0\n      },\n      { // \"value\" container\n        begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n        keywords: 'return throw case',\n        contains: [\n          hljs.C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          hljs.REGEXP_MODE,\n          { // E4X / JSX\n            begin: /</,\n            end: />\\s*[);\\]]/,\n            relevance: 0,\n            subLanguage: 'xml'\n          }\n        ],\n        relevance: 0\n      },\n      SIGNAL,\n      PROPERTY,\n      {\n        className: 'function',\n        beginKeywords: 'function',\n        end: /\\{/,\n        excludeEnd: true,\n        contains: [\n          hljs.inherit(hljs.TITLE_MODE, { begin: /[A-Za-z$_][0-9A-Za-z$_]*/ }),\n          {\n            className: 'params',\n            begin: /\\(/,\n            end: /\\)/,\n            excludeBegin: true,\n            excludeEnd: true,\n            contains: [\n              hljs.C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE\n            ]\n          }\n        ],\n        illegal: /\\[|%/\n      },\n      {\n        // hack: prevents detection of keywords after dots\n        begin: '\\\\.' + hljs.IDENT_RE,\n        relevance: 0\n      },\n      ID_ID,\n      QML_ATTRIBUTE,\n      QML_OBJECT\n    ],\n    illegal: /#/\n  };\n}\n\nmodule.exports = qml;\n"],"names":["qml","hljs","regex","KEYWORDS","QML_IDENT_RE","PROPERTY","SIGNAL","ID_ID","QML_ATTRIBUTE","QML_OBJECT","qml_1"],"mappings":";;;;AAUA,WAASA,EAAIC,GAAM;AACjB,UAAMC,IAAQD,EAAK,OACbE,IAAW;AAAA,MACf,SACE;AAAA,MAGF,SACE;AAAA,MACF,UACE;AAAA,IAWN,GAEQC,IAAe,6BAIfC,IAAW;AAAA,MACf,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,WAAW;AAAA,QACX,KAAK;AAAA,QACL,WAAW;AAAA;IAEjB,GAIQC,IAAS;AAAA,MACb,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,WAAW;AAAA,QACX,KAAK;AAAA,QACL,WAAW;AAAA;IAEjB,GAIQC,IAAQ;AAAA,MACZ,WAAW;AAAA,MACX,OAAO;AAAA,MACP,QAAQ;AAAA,QACN,WAAW;AAAA,QACX,KAAKH;AAAA,QACL,WAAW;AAAA;IAEjB,GAMQI,IAAgB;AAAA,MACpB,OAAOJ,IAAe;AAAA,MACtB,aAAa;AAAA,MACb,UAAU;AAAA,QACR;AAAA,UACE,WAAW;AAAA,UACX,OAAOA;AAAA,UACP,KAAK;AAAA,UACL,YAAY;AAAA,UACZ,WAAW;AAAA;;MAGf,WAAW;AAAA,IACf,GAIQK,IAAa;AAAA,MACjB,OAAOP,EAAM,OAAOE,GAAc,OAAO;AAAA,MACzC,KAAK;AAAA,MACL,aAAa;AAAA,MACb,WAAW;AAAA,MACX,UAAU,CAAEH,EAAK,QAAQA,EAAK,YAAY,EAAE,OAAOG,GAAc,CAAC;AAAA,IACtE;AAEE,WAAO;AAAA,MACL,MAAM;AAAA,MACN,SAAS,CAAE,IAAI;AAAA,MACf,kBAAkB;AAAA,MAClB,UAAUD;AAAA,MACV,UAAU;AAAA,QACR;AAAA,UACE,WAAW;AAAA,UACX,OAAO;AAAA;QAETF,EAAK;AAAA,QACLA,EAAK;AAAA,QACL;AAAA;AAAA,UACE,WAAW;AAAA,UACX,OAAO;AAAA,UACP,KAAK;AAAA,UACL,UAAU;AAAA,YACRA,EAAK;AAAA,YACL;AAAA,cACE,WAAW;AAAA,cACX,OAAO;AAAA,cACP,KAAK;AAAA;;;QAIXA,EAAK;AAAA,QACLA,EAAK;AAAA,QACL;AAAA,UACE,WAAW;AAAA,UACX,UAAU;AAAA,YACR,EAAE,OAAO,kBAAiB;AAAA,YAC1B,EAAE,OAAO,mBAAkB;AAAA,YAC3B,EAAE,OAAOA,EAAK,YAAW;AAAA;UAE3B,WAAW;AAAA;QAEb;AAAA;AAAA,UACE,OAAO,MAAMA,EAAK,iBAAiB;AAAA,UACnC,UAAU;AAAA,UACV,UAAU;AAAA,YACRA,EAAK;AAAA,YACLA,EAAK;AAAA,YACLA,EAAK;AAAA,YACL;AAAA;AAAA,cACE,OAAO;AAAA,cACP,KAAK;AAAA,cACL,WAAW;AAAA,cACX,aAAa;AAAA;;UAGjB,WAAW;AAAA;QAEbK;AAAA,QACAD;AAAA,QACA;AAAA,UACE,WAAW;AAAA,UACX,eAAe;AAAA,UACf,KAAK;AAAA,UACL,YAAY;AAAA,UACZ,UAAU;AAAA,YACRJ,EAAK,QAAQA,EAAK,YAAY,EAAE,OAAO,4BAA4B;AAAA,YACnE;AAAA,cACE,WAAW;AAAA,cACX,OAAO;AAAA,cACP,KAAK;AAAA,cACL,cAAc;AAAA,cACd,YAAY;AAAA,cACZ,UAAU;AAAA,gBACRA,EAAK;AAAA,gBACLA,EAAK;AAAA;;;UAIX,SAAS;AAAA;QAEX;AAAA;AAAA,UAEE,OAAO,QAAQA,EAAK;AAAA,UACpB,WAAW;AAAA;QAEbM;AAAA,QACAC;AAAA,QACAC;AAAA;MAEF,SAAS;AAAA,IACb;AAAA,EACA;AAEA,SAAAC,IAAiBV;;","x_google_ignoreList":[0]}