{
  "type": "File",
  "start": 0,
  "end": 2136,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 61,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 2136,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 61,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [],
    "directives": [],
    "leadingComments": null,
    "innerComments": [
      {
        "type": "CommentLine",
        "value": " TODO: This needs its own repo to work, otherwise awv3 would have to pull react along",
        "start": 0,
        "end": 87,
        "loc": {
          "start": {
            "line": 1,
            "column": 0
          },
          "end": {
            "line": 1,
            "column": 87
          }
        }
      },
      {
        "type": "CommentBlock",
        "value": "import React from 'react';\nimport { connect } from 'react-redux';\nimport JSONTree from 'react-json-tree';\nimport Plugin from '../../session/plugin';\nimport { Button, Group, Checkbox, Custom } from '../../session/elements';\n\nconst resources = ['isometric'].reduce((prev, item) => ({ ...prev, [item]: require('!!url-loader!awv3-icons/32x32/' + item + '.png') }), {});\n\nconst theme = {\n    scheme: 'flat',\n    author: 'chris kempson (http://chriskempson.com)',\n    base00: 'transparent',\n    base01: '#34495E',\n    base02: '#7F8C8D',\n    base03: '#95A5A6',\n    base04: '#BDC3C7',\n    base05: '#e0e0e0',\n    base06: '#f5f5f5',\n    base07: '#ECF0F1',\n    base08: '#E74C3C',\n    base09: '#E67E22',\n    base0A: '#F1C40F',\n    base0B: '#2ECC71',\n    base0C: '#1ABC9C',\n    base0D: '#3498DB',\n    base0E: '#9B59B6',\n    base0F: '#be643c'\n};\n\n@connect((state, props) => ({ tree: state.connections[state.globals.activeConnection].tree }))\nclass JsonView extends React.PureComponent {\n    static contextTypes = { session: React.PropTypes.object };\n    render() {\n        let data = this.props.resolve\n            ? this.context.session.activeConnectionClass.resolveTree(this.props.tree.root)[0]\n            : this.props.tree;\n        return (\n            <div style={{ fontFamily: 'monospace' }}>\n                <JSONTree data={data} theme={theme} invertTheme={false} />\n            </div>\n        );\n    }\n}\n\nexport default class Interpreter extends Plugin {\n    constructor(session, args) {\n        super(session, { type: 'Json', icon: 'isometric', resources, ...args });\n        this.resolve = new Checkbox(this, { name: 'Resolve', value: true });\n        this.addElement(new Group(this, { format: Group.Format.Table, children: [this.resolve] }));\n        this.input = new Custom(this, { name: 'Json', value: <JsonView resolve={true} /> });\n        this.addElement(this.input);\n    }\n\n    onEnabled() {\n        this.resetElements();\n        this.resolve.observe(state => state.value, value => this.input.value = <JsonView resolve={value} />);\n    }\n}",
        "start": 89,
        "end": 2135,
        "loc": {
          "start": {
            "line": 3,
            "column": 0
          },
          "end": {
            "line": 60,
            "column": 3
          }
        }
      }
    ]
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " TODO: This needs its own repo to work, otherwise awv3 would have to pull react along",
      "start": 0,
      "end": 87,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 87
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "import React from 'react';\nimport { connect } from 'react-redux';\nimport JSONTree from 'react-json-tree';\nimport Plugin from '../../session/plugin';\nimport { Button, Group, Checkbox, Custom } from '../../session/elements';\n\nconst resources = ['isometric'].reduce((prev, item) => ({ ...prev, [item]: require('!!url-loader!awv3-icons/32x32/' + item + '.png') }), {});\n\nconst theme = {\n    scheme: 'flat',\n    author: 'chris kempson (http://chriskempson.com)',\n    base00: 'transparent',\n    base01: '#34495E',\n    base02: '#7F8C8D',\n    base03: '#95A5A6',\n    base04: '#BDC3C7',\n    base05: '#e0e0e0',\n    base06: '#f5f5f5',\n    base07: '#ECF0F1',\n    base08: '#E74C3C',\n    base09: '#E67E22',\n    base0A: '#F1C40F',\n    base0B: '#2ECC71',\n    base0C: '#1ABC9C',\n    base0D: '#3498DB',\n    base0E: '#9B59B6',\n    base0F: '#be643c'\n};\n\n@connect((state, props) => ({ tree: state.connections[state.globals.activeConnection].tree }))\nclass JsonView extends React.PureComponent {\n    static contextTypes = { session: React.PropTypes.object };\n    render() {\n        let data = this.props.resolve\n            ? this.context.session.activeConnectionClass.resolveTree(this.props.tree.root)[0]\n            : this.props.tree;\n        return (\n            <div style={{ fontFamily: 'monospace' }}>\n                <JSONTree data={data} theme={theme} invertTheme={false} />\n            </div>\n        );\n    }\n}\n\nexport default class Interpreter extends Plugin {\n    constructor(session, args) {\n        super(session, { type: 'Json', icon: 'isometric', resources, ...args });\n        this.resolve = new Checkbox(this, { name: 'Resolve', value: true });\n        this.addElement(new Group(this, { format: Group.Format.Table, children: [this.resolve] }));\n        this.input = new Custom(this, { name: 'Json', value: <JsonView resolve={true} /> });\n        this.addElement(this.input);\n    }\n\n    onEnabled() {\n        this.resetElements();\n        this.resolve.observe(state => state.value, value => this.input.value = <JsonView resolve={value} />);\n    }\n}",
      "start": 89,
      "end": 2135,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 60,
          "column": 3
        }
      }
    }
  ],
  "tokens": [
    {
      "type": "CommentLine",
      "value": " TODO: This needs its own repo to work, otherwise awv3 would have to pull react along",
      "start": 0,
      "end": 87,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 87
        }
      }
    },
    {
      "type": "CommentBlock",
      "value": "import React from 'react';\nimport { connect } from 'react-redux';\nimport JSONTree from 'react-json-tree';\nimport Plugin from '../../session/plugin';\nimport { Button, Group, Checkbox, Custom } from '../../session/elements';\n\nconst resources = ['isometric'].reduce((prev, item) => ({ ...prev, [item]: require('!!url-loader!awv3-icons/32x32/' + item + '.png') }), {});\n\nconst theme = {\n    scheme: 'flat',\n    author: 'chris kempson (http://chriskempson.com)',\n    base00: 'transparent',\n    base01: '#34495E',\n    base02: '#7F8C8D',\n    base03: '#95A5A6',\n    base04: '#BDC3C7',\n    base05: '#e0e0e0',\n    base06: '#f5f5f5',\n    base07: '#ECF0F1',\n    base08: '#E74C3C',\n    base09: '#E67E22',\n    base0A: '#F1C40F',\n    base0B: '#2ECC71',\n    base0C: '#1ABC9C',\n    base0D: '#3498DB',\n    base0E: '#9B59B6',\n    base0F: '#be643c'\n};\n\n@connect((state, props) => ({ tree: state.connections[state.globals.activeConnection].tree }))\nclass JsonView extends React.PureComponent {\n    static contextTypes = { session: React.PropTypes.object };\n    render() {\n        let data = this.props.resolve\n            ? this.context.session.activeConnectionClass.resolveTree(this.props.tree.root)[0]\n            : this.props.tree;\n        return (\n            <div style={{ fontFamily: 'monospace' }}>\n                <JSONTree data={data} theme={theme} invertTheme={false} />\n            </div>\n        );\n    }\n}\n\nexport default class Interpreter extends Plugin {\n    constructor(session, args) {\n        super(session, { type: 'Json', icon: 'isometric', resources, ...args });\n        this.resolve = new Checkbox(this, { name: 'Resolve', value: true });\n        this.addElement(new Group(this, { format: Group.Format.Table, children: [this.resolve] }));\n        this.input = new Custom(this, { name: 'Json', value: <JsonView resolve={true} /> });\n        this.addElement(this.input);\n    }\n\n    onEnabled() {\n        this.resetElements();\n        this.resolve.observe(state => state.value, value => this.input.value = <JsonView resolve={value} />);\n    }\n}",
      "start": 89,
      "end": 2135,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 60,
          "column": 3
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 2136,
      "end": 2136,
      "loc": {
        "start": {
          "line": 61,
          "column": 0
        },
        "end": {
          "line": 61,
          "column": 0
        }
      }
    }
  ]
}