import { BaseComponent } from "./chunk-4YEN7HVQ.js"; // src/templates/error_metadata/main.ts import { dump, themes } from "@poppinss/dumper/html"; var ErrorMetadata = class extends BaseComponent { #primitives = ["string", "boolean", "number", "undefined"]; /** * Formats the error row value */ #formatRowValue(value, dumpValue, cspNonce) { if (dumpValue === true) { return dump(value, { styles: themes.cssVariables, cspNonce }); } if (this.#primitives.includes(typeof value) || value === null) { return value; } return dump(value, { styles: themes.cssVariables }); } /** * Returns HTML fragment with HTML table containing rows * metadata section rows */ #renderRows(rows, cspNonce) { return ` ${rows.map((row) => { return ``; }).join("\n")}
${row.key} ${this.#formatRowValue(row.value, row.dump, cspNonce)}
`; } /** * Renders each section with its rows inside a table */ #renderSection(section, rows, cspNonce) { return `

${section}

${Array.isArray(rows) ? this.#renderRows(rows, cspNonce) : `${this.#formatRowValue(rows.value, rows.dump, cspNonce)}`}
`; } /** * Renders each group as a card */ #renderGroup(group, sections, cspNonce) { return `

${group}

${Object.keys(sections).map((section) => this.#renderSection(section, sections[section], cspNonce)).join("\n")}
`; } /** * The toHTML method is used to output the HTML for the * web view */ async toHTML(props) { const groups = props.metadata.toJSON(); const groupsNames = Object.keys(groups); if (!groupsNames.length) { return ""; } return groupsNames.map((group) => this.#renderGroup(group, groups[group], props.cspNonce)).join("\n"); } /** * The toANSI method is used to output the text for the console */ async toANSI() { return ""; } }; export { ErrorMetadata };