[
  {
    "tags": [],
    "description": {
      "full": "",
      "summary": "",
      "body": ""
    },
    "isPrivate": false,
    "code": "function decodeHTMLEntities (str) {\n    if(str && typeof str === 'string') {\n      // strip script/html tags\n      element = document.querySelector('.editor');\n        \n      str = str.replace(/<script[^>]*>([\\S\\s]*?)<\\/script>/gmi, '');\n      str = str.replace(/<\\/?\\w(?:[^\"'>]|\"[^\"]*\"|'[^']*')*>/gmi, '');\n      element.innerHTML = str;\n      str = element.textContent;\n      element.textContent = '';\n    }\n\n    return str;\n}\n\nvar mermaidEditor =  {\n    $ : document.querySelector,\n    textField : '',\n    submit : '',\n    graph : '',\n\n    init: function () {\n\n        document.querySelector('.button').addEventListener('click', function () {\n            mermaidEditor.update();\n        }.bind(this));\n    },\n    \n    update: function () {\n        var txt = document.querySelector('.editor').value;\n        txt = txt.replace(/>/g,'&gt;');\n        txt = txt.replace(/</g,'&lt;');\n        txt = decodeHTMLEntities(txt).trim();\n\n        document.querySelector('.mermaid').innerHTML = txt;\n        mermaid.init();\n        document.querySelector('.editor').value = txt;\n    }\n};\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n    mermaidEditor.init();\n\n}, false);\n\nexports = mermaidEditor;",
    "ctx": {
      "type": "function",
      "name": "decodeHTMLEntities",
      "string": "decodeHTMLEntities()"
    }
  }
]