{ "custom": {}, "params": { "inText": "# Markdown Editor\n\nUse the buttons above to build your markdown", "outText": "# Markdown Editor\n\nUse the buttons above to build your markdown" }, "propConfig": { "params.inText": { "paramDirection": "input", "persistent": true }, "params.outText": { "paramDirection": "output", "persistent": true } }, "props": { "defaultSize": { "height": 853, "width": 1045 } }, "root": { "children": [ { "children": [ { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/format_bold", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "**Text**" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Bold" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/format_italic", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "*Text*" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Italic" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/format_strikethrough", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "~~Text~~" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Strikethrough" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/title", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "# Heading" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Heading" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "meta": { "name": "Spacer" }, "position": { "basis": "1px" }, "props": { "style": { "backgroundColor": "#CCCCCC", "marginBottom": "4px", "marginLeft": "4px", "marginRight": "8px" } }, "type": "ia.display.label" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/format_quote", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "\u003e Quote \n" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Quote" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/format_list_bulleted", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "* Item 1\n* Item 2" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Bullet List" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/format_list_numbered", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "1. Item 1\n2. Item 2" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Number List" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "meta": { "name": "Spacer_0" }, "position": { "basis": "1px" }, "props": { "style": { "backgroundColor": "#CCCCCC", "marginLeft": "4px", "marginRight": "8px" } }, "type": "ia.display.label" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/insert_link", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "[Link](http://www,inductiveautomation.com)" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Link" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/insert_photo", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "![Image](https://inductiveautomation.com/static/images/logos/inductive-automation-logo.png)" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Image" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "meta": { "name": "Spacer_1" }, "position": { "basis": "1px" }, "props": { "style": { "backgroundColor": "#CCCCCC", "marginBottom": "4px", "marginLeft": "4px", "marginRight": "8px" } }, "type": "ia.display.label" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/drag_handle", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "------------" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Horizontal Rule" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/border_all", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "| Column 1 | Column 2 |\n| ------------ | ------------ |\n| Row 1 1 | Row 1 2 |\n| Row 2 1 | Row 2 2 |" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Table" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/code", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "custom": { "text": "`Code`" }, "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").updateEditor(self.custom.text)" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Code" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" }, { "meta": { "name": "Spacer_2" }, "position": { "basis": "1px" }, "props": { "style": { "backgroundColor": "#CCCCCC", "marginBottom": "4px", "marginLeft": "4px", "marginRight": "8px" } }, "type": "ia.display.label" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/remove_red_eye", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "events": { "dom": { "onClick": { "config": { "script": "\tvalue \u003d not self.custom.selected\n\tself.custom.selected \u003d value\n\t\n\tif not value:\n\t\tself.getSibling(\"Split\").custom.selected \u003d False" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Preview" }, "position": { "basis": "32px" }, "propConfig": { "custom.selected": { "binding": { "config": { "expression": "true" }, "type": "expr" } }, "props.style.classes": { "binding": { "config": { "path": "this.custom.selected" }, "transforms": [ { "fallback": "Markdown/Button", "inputType": "scalar", "mappings": [ { "input": false, "output": "Markdown/Button" }, { "input": true, "output": "Markdown/Button_Selected" } ], "outputType": "scalar", "type": "map" } ], "type": "property" } } }, "props": { "direction": "column", "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/border_vertical", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "events": { "dom": { "onClick": { "config": { "script": "\tself.custom.selected \u003d not self.custom.selected" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Split" }, "position": { "basis": "32px" }, "propConfig": { "custom.selected": { "binding": { "config": { "expression": "true" }, "type": "expr" } }, "position.display": { "binding": { "config": { "expression": "{../Preview.custom.selected}" }, "type": "expr" } }, "props.style.classes": { "binding": { "config": { "path": "this.custom.selected" }, "transforms": [ { "fallback": "Markdown/Button", "inputType": "scalar", "mappings": [ { "input": false, "output": "Markdown/Button" }, { "input": true, "output": "Markdown/Button_Selected" } ], "outputType": "scalar", "type": "map" } ], "type": "property" } } }, "props": { "direction": "column", "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "Icon" }, "position": { "basis": "24px", "shrink": 0 }, "props": { "path": "material/clear", "style": { "classes": "ClickToGraph/Icon" } }, "type": "ia.display.icon" } ], "meta": { "name": "Flex" }, "position": { "basis": "32px", "shrink": 0 }, "props": { "justify": "center", "style": { "overflow": "hidden" } }, "type": "ia.container.flex" } ], "events": { "dom": { "onClick": { "config": { "script": "\tself.view.getChild(\"root\").clearEditor()" }, "scope": "G", "type": "script" } } }, "meta": { "name": "Clear" }, "position": { "basis": "32px" }, "props": { "direction": "column", "justify": "center", "style": { "classes": "Markdown/Button", "overflow": "hidden" } }, "type": "ia.container.flex" } ], "meta": { "name": "Actions" }, "position": { "shrink": 0 }, "props": { "style": { "classes": "Markdown/Actions", "padding": "8px" }, "wrap": "wrap" }, "type": "ia.container.flex" }, { "children": [ { "children": [ { "meta": { "name": "TextArea" }, "position": { "grow": 1 }, "propConfig": { "props.text": { "binding": { "config": { "path": "view.params.inText" }, "type": "property" }, "onChange": { "enabled": null, "script": "\tself.view.params.outText \u003d currentValue.value" } } }, "props": { "deferUpdates": false, "rejectUpdatesWhileFocused": false, "style": { "borderStyle": "none", "fontSize": "18px" } }, "type": "ia.input.text-area" } ], "meta": { "name": "Editor" }, "position": { "basis": "50px", "grow": 1 }, "propConfig": { "position.display": { "binding": { "config": { "expression": "{.../Actions/Split.custom.selected} || !{.../Actions/Preview.custom.selected}" }, "type": "expr" } } }, "props": { "direction": "column", "style": { "margin": "10px" } }, "type": "ia.container.flex" }, { "meta": { "name": "Spacer" }, "position": { "basis": "1px", "shrink": 0 }, "propConfig": { "position.display": { "binding": { "config": { "expression": "{.../Actions/Split.custom.selected}" }, "type": "expr" } } }, "props": { "style": { "backgroundColor": "#CCCCCC" } }, "type": "ia.display.label" }, { "meta": { "name": "Markdown" }, "position": { "basis": "50px", "grow": 1 }, "propConfig": { "position.display": { "binding": { "config": { "expression": "{.../Actions/Split.custom.selected} || {.../Actions/Preview.custom.selected}" }, "type": "expr" } }, "props.source": { "binding": { "config": { "path": "../Editor/TextArea.props.text" }, "type": "property" } } }, "props": { "style": { "borderStyle": "none", "margin": "10px" } }, "type": "ia.display.markdown" } ], "meta": { "name": "Editor" }, "position": { "grow": 1 }, "type": "ia.container.flex" } ], "meta": { "name": "root" }, "props": { "direction": "column", "style": { "classes": "Markdown/Editor" } }, "scripts": { "customMethods": [ { "name": "updateEditor", "params": [ "text" ], "script": "\tif self.getChild(\"Editor\").getChild(\"Editor\").getChild(\"TextArea\").props.text \u003d\u003d \"\":\n\t\tnewText \u003d text\n\telse:\n\t\tnewText \u003d \" \\n%s\" % text\n\tself.getChild(\"Editor\").getChild(\"Editor\").getChild(\"TextArea\").props.text +\u003d newText" }, { "name": "clearEditor", "params": [], "script": "\tself.getChild(\"Editor\").getChild(\"Editor\").getChild(\"TextArea\").props.text \u003d \"\"" } ], "extensionFunctions": null, "messageHandlers": [ { "messageType": "refreshEditor", "pageScope": true, "script": "\tself.getChild(\"Editor\").getChild(\"Editor\").getChild(\"TextArea\").refreshBinding(\"props.text\")", "sessionScope": false, "viewScope": false } ] }, "type": "ia.container.flex" } }