35 lines
787 B
JavaScript
35 lines
787 B
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import { capitalize } from '@ember/string';
|
|
import Component from '@ember/component';
|
|
import { computed } from '@ember/object';
|
|
import columnify from 'columnify';
|
|
|
|
export function stringifyObjectValues(data) {
|
|
Object.keys(data).forEach((item) => {
|
|
let val = data[item];
|
|
if (typeof val !== 'string') {
|
|
val = JSON.stringify(val);
|
|
}
|
|
data[item] = val;
|
|
});
|
|
}
|
|
|
|
export default Component.extend({
|
|
content: null,
|
|
columns: computed('content', function () {
|
|
const data = this.content;
|
|
stringifyObjectValues(data);
|
|
|
|
return columnify(data, {
|
|
preserveNewLines: true,
|
|
headingTransform: function (heading) {
|
|
return capitalize(heading);
|
|
},
|
|
});
|
|
}),
|
|
});
|