blob: 30cf8b068d22817f5677e8ddba649c40e5bba324 [file] [log] [blame]
/*
* Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
import formatters from "./index.mjs";
import { color } from "../html/styles.mjs";
import { Formatter } from "./formatter.mjs";
import { FIELD_IDENTIFIER_COLOR } from "../theme/colors.mjs";
import { element, list, object, span} from "../html/tags.mjs";
export const ENTRY_TYPE = Symbol("entry")
function entryHeader({ value: { key, value } }) {
const keyPresentation = formatters.get(key)?.header(key) ?? object(key)
const valuePresentation = formatters.get(value)?.header(value) ?? object(value)
return span([], [keyPresentation, " => ", valuePresentation])
}
function entryBody({ value: { key, value } }) {
return list(
[], [
element([], [span([color(FIELD_IDENTIFIER_COLOR)], "key: "), object(key)]),
element([], [span([color(FIELD_IDENTIFIER_COLOR)], "value: "), object(value)]),
])
}
export default Formatter.create(entryHeader, entryBody)