UNPKG

prism-code-editor

Version:

Lightweight, extensible code editor component for the web using Prism

73 lines (72 loc) 2.05 kB
import { c, e, i } from "../../language-BqHrf6z-.js"; import { e as e2 } from "../../templating-BdWShxVo.js"; import { T as Token, t as tokenizeText, l as languages } from "../../index-DF54SWhA.js"; var tokenizeStrings = (tokens, tokenize) => { var result = []; for (var i2 = 0, token; token = tokens[i2++]; ) { var content = token.content; var stream; if (content) { if (Array.isArray(content)) { tokenizeStrings(content, tokenize); } else { stream = tokenize(content); if (stream[0] !== content) token.content = stream; } result.push(token); } else { result.push(...tokenize(token)); } } for (i2 = 0; token = result[i2]; ) tokens[i2++] = token; }; var pattern$1 = /(['"]?)\s*data:[^,/]+\/(?:[^,+]+\+)?(css|javascript|json|html|xml),([^]+)\1$/g; var tokenizeDataUris = (tokens) => { return tokenizeStrings(tokens, (code) => { var result = []; var pos = 0; var match; var body; while (match = pattern$1.exec(code)) { result.push( code.slice(pos, pos = code.indexOf(",", match.index) + 1), new Token( "language-" + match[2], tokenizeText( body = match[3], languages[match[2]] || {} ), body ) ); pos += body.length; } if (code[pos]) result.push(code.slice(pos)); return result; }); }; var pattern = / | /g; var tokenizeInvisibles = (tokens) => { return tokenizeStrings(tokens, (code) => { var result = []; var pos = 0; var match, i2 = 0; while (match = pattern.exec(code)) { if (match.index > pos) result[i2++] = code.slice(pos, pos = match.index); result[i2++] = new Token(match[0] == " " ? "space" : "tab", match[0], " "); pos++; } if (code[pos]) result[i2] = code.slice(pos); return result; }); }; export { c as clone, e2 as embeddedIn, e as extend, i as insertBefore, tokenizeDataUris, tokenizeInvisibles, tokenizeStrings }; //# sourceMappingURL=index.js.map