| 12345678910111213141516171819202122232425262728 |
- "use strict";
- // https://github.com/vuejs/core/blob/main/packages/compiler-sfc/src/cssVars.ts#L47-L61
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.clearComments = exports.parseCssVars = void 0;
- const vBindCssVarReg = /\bv-bind\(\s*(?:'([^']+)'|"([^"]+)"|([^'"][^)]*))\s*\)/g;
- const commentReg1 = /\/\*([\s\S]*?)\*\//g;
- const commentReg2 = /\/\/([\s\S]*?)\n/g;
- function* parseCssVars(styleContent) {
- styleContent = clearComments(styleContent);
- const matchs = styleContent.matchAll(vBindCssVarReg);
- for (const match of matchs) {
- if (match.index !== undefined) {
- const matchText = match[1] ?? match[2] ?? match[3];
- if (matchText !== undefined) {
- const offset = match.index + styleContent.slice(match.index).indexOf(matchText);
- yield { offset, text: matchText };
- }
- }
- }
- }
- exports.parseCssVars = parseCssVars;
- function clearComments(css) {
- return css
- .replace(commentReg1, match => `/*${' '.repeat(match.length - 4)}*/`)
- .replace(commentReg2, match => `//${' '.repeat(match.length - 3)}\n`);
- }
- exports.clearComments = clearComments;
- //# sourceMappingURL=parseCssVars.js.map
|