30 lines
707 B
JavaScript
30 lines
707 B
JavaScript
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 () {
|
|
let data = this.content;
|
|
stringifyObjectValues(data);
|
|
|
|
return columnify(data, {
|
|
preserveNewLines: true,
|
|
headingTransform: function (heading) {
|
|
return capitalize(heading);
|
|
},
|
|
});
|
|
}),
|
|
});
|