@grafana/ui
Version:
Grafana Components Library
1 lines • 2.63 kB
Source Map (JSON)
{"version":3,"file":"JSONFormatter.mjs","sources":["../../../../src/components/JSONFormatter/JSONFormatter.tsx"],"sourcesContent":["import { PureComponent, createRef } from 'react';\n\nimport { JsonExplorer, JsonExplorerConfig } from './json_explorer/json_explorer'; // We have made some monkey-patching of json-formatter-js so we can't switch right now\n\ninterface Props {\n className?: string;\n json: {};\n config?: JsonExplorerConfig;\n open?: number;\n onDidRender?: (formattedJson: {}) => void;\n}\n\nexport class JSONFormatter extends PureComponent<Props> {\n private wrapperRef = createRef<HTMLDivElement>();\n\n static defaultProps = {\n open: 3,\n config: {\n animateOpen: true,\n },\n };\n\n componentDidMount() {\n this.renderJson();\n }\n\n componentDidUpdate() {\n this.renderJson();\n }\n\n renderJson = () => {\n const { json, config, open, onDidRender } = this.props;\n const wrapperEl = this.wrapperRef.current;\n const formatter = new JsonExplorer(json, open, config);\n // @ts-ignore\n const hasChildren: boolean = wrapperEl.hasChildNodes();\n if (hasChildren) {\n // @ts-ignore\n wrapperEl.replaceChild(formatter.render(), wrapperEl.lastChild);\n } else {\n // @ts-ignore\n wrapperEl.appendChild(formatter.render());\n }\n\n if (onDidRender) {\n onDidRender(formatter.json);\n }\n };\n\n render() {\n const { className } = this.props;\n return <div className={className} ref={this.wrapperRef} />;\n }\n}\n"],"names":[],"mappings":";;;;;AAYO,MAAM,sBAAsB,aAAA,CAAqB;AAAA,EAAjD,WAAA,GAAA;AAAA,IAAA,KAAA,CAAA,GAAA,SAAA,CAAA;AACL,IAAA,IAAA,CAAQ,aAAa,SAAA,EAA0B;AAiB/C,IAAA,IAAA,CAAA,UAAA,GAAa,MAAM;AACjB,MAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,WAAA,KAAgB,IAAA,CAAK,KAAA;AACjD,MAAA,MAAM,SAAA,GAAY,KAAK,UAAA,CAAW,OAAA;AAClC,MAAA,MAAM,SAAA,GAAY,IAAI,YAAA,CAAa,IAAA,EAAM,MAAM,MAAM,CAAA;AAErD,MAAA,MAAM,WAAA,GAAuB,UAAU,aAAA,EAAc;AACrD,MAAA,IAAI,WAAA,EAAa;AAEf,QAAA,SAAA,CAAU,YAAA,CAAa,SAAA,CAAU,MAAA,EAAO,EAAG,UAAU,SAAS,CAAA;AAAA,MAChE,CAAA,MAAO;AAEL,QAAA,SAAA,CAAU,WAAA,CAAY,SAAA,CAAU,MAAA,EAAQ,CAAA;AAAA,MAC1C;AAEA,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,WAAA,CAAY,UAAU,IAAI,CAAA;AAAA,MAC5B;AAAA,IACF,CAAA;AAAA,EAAA;AAAA,EAzBA,iBAAA,GAAoB;AAClB,IAAA,IAAA,CAAK,UAAA,EAAW;AAAA,EAClB;AAAA,EAEA,kBAAA,GAAqB;AACnB,IAAA,IAAA,CAAK,UAAA,EAAW;AAAA,EAClB;AAAA,EAqBA,MAAA,GAAS;AACP,IAAA,MAAM,EAAE,SAAA,EAAU,GAAI,IAAA,CAAK,KAAA;AAC3B,IAAA,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAsB,GAAA,EAAK,KAAK,UAAA,EAAY,CAAA;AAAA,EAC1D;AACF;AAzCa,aAAA,CAGJ,YAAA,GAAe;AAAA,EACpB,IAAA,EAAM,CAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,WAAA,EAAa;AAAA;AAEjB,CAAA;;;;"}