Files
2021-05-04 12:24:20 +00:00

294 lines
11 KiB
JavaScript

(self.webpackChunkmermaid_live_editor =
self.webpackChunkmermaid_live_editor || []).push([
[525],
{
90525: (e, t, n) => {
'use strict';
n.r(t), n.d(t, { conf: () => o, language: () => i });
var o = {
wordPattern: /(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,
comments: { blockComment: ['/*', '*/'], lineComment: '//' },
brackets: [
['{', '}'],
['[', ']'],
['(', ')'],
],
autoClosingPairs: [
{ open: '{', close: '}', notIn: ['string', 'comment'] },
{ open: '[', close: ']', notIn: ['string', 'comment'] },
{ open: '(', close: ')', notIn: ['string', 'comment'] },
{ open: '"', close: '"', notIn: ['string', 'comment'] },
{ open: "'", close: "'", notIn: ['string', 'comment'] },
],
surroundingPairs: [
{ open: '{', close: '}' },
{ open: '[', close: ']' },
{ open: '(', close: ')' },
{ open: '"', close: '"' },
{ open: "'", close: "'" },
],
folding: {
markers: {
start: new RegExp('^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/'),
end: new RegExp('^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/'),
},
},
},
i = {
defaultToken: '',
tokenPostfix: '.scss',
ws: '[ \t\n\r\f]*',
identifier:
'-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*',
brackets: [
{ open: '{', close: '}', token: 'delimiter.curly' },
{ open: '[', close: ']', token: 'delimiter.bracket' },
{ open: '(', close: ')', token: 'delimiter.parenthesis' },
{ open: '<', close: '>', token: 'delimiter.angle' },
],
tokenizer: {
root: [{ include: '@selector' }],
selector: [
{ include: '@comments' },
{ include: '@import' },
{ include: '@variabledeclaration' },
{ include: '@warndebug' },
[
'[@](include)',
{ token: 'keyword', next: '@includedeclaration' },
],
[
'[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)',
{ token: 'keyword', next: '@keyframedeclaration' },
],
[
'[@](page|content|font-face|-moz-document)',
{ token: 'keyword' },
],
[
'[@](charset|namespace)',
{ token: 'keyword', next: '@declarationbody' },
],
[
'[@](function)',
{ token: 'keyword', next: '@functiondeclaration' },
],
['[@](mixin)', { token: 'keyword', next: '@mixindeclaration' }],
[
'url(\\-prefix)?\\(',
{ token: 'meta', next: '@urldeclaration' },
],
{ include: '@controlstatement' },
{ include: '@selectorname' },
['[&\\*]', 'tag'],
['[>\\+,]', 'delimiter'],
[
'\\[',
{ token: 'delimiter.bracket', next: '@selectorattribute' },
],
['{', { token: 'delimiter.curly', next: '@selectorbody' }],
],
selectorbody: [
[
'[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))',
'attribute.name',
'@rulevalue',
],
{ include: '@selector' },
['[@](extend)', { token: 'keyword', next: '@extendbody' }],
['[@](return)', { token: 'keyword', next: '@declarationbody' }],
['}', { token: 'delimiter.curly', next: '@pop' }],
],
selectorname: [
['#{', { token: 'meta', next: '@variableinterpolation' }],
['(\\.|#(?=[^{])|%|(@identifier)|:)+', 'tag'],
],
selectorattribute: [
{ include: '@term' },
[']', { token: 'delimiter.bracket', next: '@pop' }],
],
term: [
{ include: '@comments' },
[
'url(\\-prefix)?\\(',
{ token: 'meta', next: '@urldeclaration' },
],
{ include: '@functioninvocation' },
{ include: '@numbers' },
{ include: '@strings' },
{ include: '@variablereference' },
['(and\\b|or\\b|not\\b)', 'operator'],
{ include: '@name' },
['([<>=\\+\\-\\*\\/\\^\\|\\~,])', 'operator'],
[',', 'delimiter'],
['!default', 'literal'],
[
'\\(',
{ token: 'delimiter.parenthesis', next: '@parenthizedterm' },
],
],
rulevalue: [
{ include: '@term' },
['!important', 'literal'],
[';', 'delimiter', '@pop'],
['{', { token: 'delimiter.curly', switchTo: '@nestedproperty' }],
['(?=})', { token: '', next: '@pop' }],
],
nestedproperty: [
['[*_]?@identifier@ws:', 'attribute.name', '@rulevalue'],
{ include: '@comments' },
['}', { token: 'delimiter.curly', next: '@pop' }],
],
warndebug: [
[
'[@](warn|debug)',
{ token: 'keyword', next: '@declarationbody' },
],
],
import: [
['[@](import)', { token: 'keyword', next: '@declarationbody' }],
],
variabledeclaration: [
['\\$@identifier@ws:', 'variable.decl', '@declarationbody'],
],
urldeclaration: [
{ include: '@strings' },
['[^)\r\n]+', 'string'],
['\\)', { token: 'meta', next: '@pop' }],
],
parenthizedterm: [
{ include: '@term' },
['\\)', { token: 'delimiter.parenthesis', next: '@pop' }],
],
declarationbody: [
{ include: '@term' },
[';', 'delimiter', '@pop'],
['(?=})', { token: '', next: '@pop' }],
],
extendbody: [
{ include: '@selectorname' },
['!optional', 'literal'],
[';', 'delimiter', '@pop'],
['(?=})', { token: '', next: '@pop' }],
],
variablereference: [
['\\$@identifier', 'variable.ref'],
['\\.\\.\\.', 'operator'],
['#{', { token: 'meta', next: '@variableinterpolation' }],
],
variableinterpolation: [
{ include: '@variablereference' },
['}', { token: 'meta', next: '@pop' }],
],
comments: [
['\\/\\*', 'comment', '@comment'],
['\\/\\/+.*', 'comment'],
],
comment: [
['\\*\\/', 'comment', '@pop'],
['.', 'comment'],
],
name: [['@identifier', 'attribute.value']],
numbers: [
[
'(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?',
{ token: 'number', next: '@units' },
],
['#[0-9a-fA-F_]+(?!\\w)', 'number.hex'],
],
units: [
[
'(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?',
'number',
'@pop',
],
],
functiondeclaration: [
[
'@identifier@ws\\(',
{ token: 'meta', next: '@parameterdeclaration' },
],
['{', { token: 'delimiter.curly', switchTo: '@functionbody' }],
],
mixindeclaration: [
[
'@identifier@ws\\(',
{ token: 'meta', next: '@parameterdeclaration' },
],
['@identifier', 'meta'],
['{', { token: 'delimiter.curly', switchTo: '@selectorbody' }],
],
parameterdeclaration: [
['\\$@identifier@ws:', 'variable.decl'],
['\\.\\.\\.', 'operator'],
[',', 'delimiter'],
{ include: '@term' },
['\\)', { token: 'meta', next: '@pop' }],
],
includedeclaration: [
{ include: '@functioninvocation' },
['@identifier', 'meta'],
[';', 'delimiter', '@pop'],
['(?=})', { token: '', next: '@pop' }],
['{', { token: 'delimiter.curly', switchTo: '@selectorbody' }],
],
keyframedeclaration: [
['@identifier', 'meta'],
['{', { token: 'delimiter.curly', switchTo: '@keyframebody' }],
],
keyframebody: [
{ include: '@term' },
['{', { token: 'delimiter.curly', next: '@selectorbody' }],
['}', { token: 'delimiter.curly', next: '@pop' }],
],
controlstatement: [
[
'[@](if|else|for|while|each|media)',
{ token: 'keyword.flow', next: '@controlstatementdeclaration' },
],
],
controlstatementdeclaration: [
['(in|from|through|if|to)\\b', { token: 'keyword.flow' }],
{ include: '@term' },
['{', { token: 'delimiter.curly', switchTo: '@selectorbody' }],
],
functionbody: [
['[@](return)', { token: 'keyword' }],
{ include: '@variabledeclaration' },
{ include: '@term' },
{ include: '@controlstatement' },
[';', 'delimiter'],
['}', { token: 'delimiter.curly', next: '@pop' }],
],
functioninvocation: [
['@identifier\\(', { token: 'meta', next: '@functionarguments' }],
],
functionarguments: [
['\\$@identifier@ws:', 'attribute.name'],
['[,]', 'delimiter'],
{ include: '@term' },
['\\)', { token: 'meta', next: '@pop' }],
],
strings: [
[
'~?"',
{ token: 'string.delimiter', next: '@stringenddoublequote' },
],
["~?'", { token: 'string.delimiter', next: '@stringendquote' }],
],
stringenddoublequote: [
['\\\\.', 'string'],
['"', { token: 'string.delimiter', next: '@pop' }],
['.', 'string'],
],
stringendquote: [
['\\\\.', 'string'],
["'", { token: 'string.delimiter', next: '@pop' }],
['.', 'string'],
],
},
};
},
},
]);