"use strict"; 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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.collectClassesAndIdsFromDocument = exports.extractStylesheets = void 0; const utils_1 = require("@astrojs/compiler/utils"); const language_core_1 = require("@volar/language-core"); const SourceMap = __importStar(require("@volar/source-map")); const muggle = __importStar(require("muggle-string")); function extractStylesheets(fileName, snapshot, htmlDocument, ast) { const embeddedCSSFiles = findEmbeddedStyles(fileName, snapshot, htmlDocument.roots); const inlineStyles = findInlineStyles(ast); if (inlineStyles.length > 0) { const codes = []; for (const inlineStyle of inlineStyles) { codes.push('x { '); codes.push([ inlineStyle.value, undefined, inlineStyle.position.start.offset + 'style="'.length, language_core_1.FileRangeCapabilities.full, ]); codes.push(' }\n'); } const mappings = SourceMap.buildMappings(codes); const text = muggle.toString(codes); embeddedCSSFiles.push({ fileName: fileName + '.inline.css', codegenStacks: [], snapshot: { getText: (start, end) => text.substring(start, end), getLength: () => text.length, getChangeRange: () => undefined, }, capabilities: { documentSymbol: true }, embeddedFiles: [], kind: language_core_1.FileKind.TextFile, mappings, }); } return embeddedCSSFiles; } exports.extractStylesheets = extractStylesheets; /** * Find all embedded styles in a document. * Embedded styles are styles that are defined in `