grafana/public/app/angular/components/jsontree.ts

30 lines
816 B
TypeScript
Raw Normal View History

2017-12-20 05:33:33 -06:00
import coreModule from 'app/core/core_module';
import { JsonExplorer } from '@grafana/ui';
2017-12-20 05:33:33 -06:00
coreModule.directive('jsonTree', [
function jsonTreeDirective() {
return {
2017-12-20 05:33:33 -06:00
restrict: 'E',
scope: {
2017-12-20 05:33:33 -06:00
object: '=',
startExpanded: '@',
rootName: '@',
},
link: (scope: any, elem) => {
let expansionLevel = scope.startExpanded;
if (scope.startExpanded === 'true') {
expansionLevel = 2;
} else if (scope.startExpanded === 'false') {
expansionLevel = 1;
}
const jsonObject = { [scope.rootName]: scope.object };
const jsonExp = new JsonExplorer(jsonObject, expansionLevel, {
2017-12-20 05:33:33 -06:00
animateOpen: true,
});
const html = jsonExp.render(true);
elem.append(html);
2017-12-20 05:33:33 -06:00
},
};
2017-12-20 05:33:33 -06:00
},
]);