`;
output += valueToHTML(json[i], maxExpandLevel);
if (i < length - 1) {
output += ',';
@@ -98,14 +118,21 @@ function objectToHTML(json, maxExpandLevel: number) {
const collapsed = level > maxExpandLevel ? 'collapsed' : '';
const keys = Object.keys(json);
const length = keys.length;
- let output = `
${punctuation('{')}
`;
+ let output = `${punctuation(
+ '{',
+ )}`;
let hasContents = false;
for (let i = 0; i < length; i++) {
const key = keys[i];
hasContents = true;
- output += '';
+ const isChildCollapsible = isCollapsible(json[key]);
+ const collapsedClass = level > maxExpandLevel ? 'collapsed' : '';
+ const ariaExpanded = isChildCollapsible
+ ? ` aria-expanded="${level + 1 <= maxExpandLevel}"`
+ : '';
+ output += `
`;
output += '"' + htmlEncode(key) + '": ';
output += valueToHTML(json[key], maxExpandLevel);
if (i < length - 1) {