[ { "id": "fa039591fddc0902", "type": "tab", "label": "node-maker", "disabled": false, "info": "", "env": [] }, { "id": "9771d13dd19bf60f", "type": "subflow", "name": "use templts.", "info": "If you use any of the code templates, be sure to place this node before it.", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "ebd81684ada1c31c" } ] } ], "out": [ { "x": 420, "y": 100, "wires": [ { "id": "6bb34952a24fe530", "port": 0 } ] } ], "env": [], "meta": {}, "color": "#F3B567", "icon": "font-awesome/fa-file-code-o" }, { "id": "7996feeba4e5f327", "type": "subflow", "name": "spinner", "info": "", "category": "node maker", "in": [ { "x": 60, "y": 40, "wires": [ { "id": "62b4d0382560364d" } ] } ], "out": [ { "x": 640, "y": 100, "wires": [ { "id": "79f6b4d4f4df2a1a", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" }, { "l": { "en-US": "3/4 row" }, "v": "col col-75 sml-lbl" }, { "l": { "en-US": "2/3 row" }, "v": "col col-66 sml-lbl" }, { "l": { "en-US": "1/2 row" }, "v": "col col-50 sml-lbl" }, { "l": { "en-US": "1/3 row" }, "v": "col col-33 sml-lbl" }, { "l": { "en-US": "1/4 row" }, "v": "col col-25 sml-lbl" } ] } } }, { "name": "field_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "num", "value": "", "ui": { "label": { "en-US": "Default" }, "type": "input", "opts": { "types": [ "num" ] } } }, { "name": "field_min", "type": "num", "value": "0", "ui": { "label": { "en-US": "Min" }, "type": "spinner" } }, { "name": "field_max", "type": "num", "value": "100", "ui": { "label": { "en-US": "Max" }, "type": "spinner" } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-sort" }, { "id": "8d72584ecbd0d019", "type": "subflow", "name": "confignode", "info": "", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "b0d3a03a3d6ca839" } ] } ], "out": [ { "x": 420, "y": 160, "wires": [ { "id": "084f5d08fdf5e058", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" } ] } } }, { "name": "field_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "str", "value": "", "ui": { "label": { "en-US": "Default" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_placeholder", "type": "str", "value": "", "ui": { "label": { "en-US": "Placeholder" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "confignode_type", "type": "str", "value": "", "ui": { "label": { "en-US": "Type" }, "type": "input", "opts": { "types": [ "str" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-gear" }, { "id": "162e81fc107019c0", "type": "subflow", "name": "end rgroup", "info": "", "category": "node maker", "in": [ { "x": 60, "y": 40, "wires": [ { "id": "86ccecca4fabac7f" } ] } ], "out": [ { "x": 600, "y": 100, "wires": [ { "id": "f7e683ae5d08c682", "port": 0 } ] } ], "env": [], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-reorder" }, { "id": "973db1310fdebc19", "type": "subflow", "name": "start rgroup", "info": "Use the start rgroup node to define a repeatable set of properties; also known as an “editableList” in Node-RED’s API. An example of Node-RED’s editable list is used in the property panel for the [switch and change nodes](https://nodered.org/docs/user-guide/nodes#change). Using the start rgroup and end rgroup nodes makes designing repeatable lists easy. \n\nSimply place the following compatible controls between the start/end rgroup nodes:\n\n* label\n* field\n* selectbox\n* checkbox\n\nThe start rgroup node has the following properties:\n\n* Group Name - A JavaScript compatible variable name (no spaces hyphens or punctuation).\n* Label - The actual text that will be used when displaying the label.\n* Icon - A font awesome icon that will appear to the left of the label. You can specify the icon name sans any ‘fa’ prefix; i.e. bathtub\n* Sortable - Determines if the contents of the editable list can be sorted.\n* Height - Determines the height of the listbox that contains the repeating group of fields.\n", "category": "node maker", "in": [ { "x": 60, "y": 40, "wires": [ { "id": "c3b7bb6404eb0c25" } ] } ], "out": [ { "x": 400, "y": 40, "wires": [ { "id": "b6607748c85f3e81", "port": 0 } ] } ], "env": [ { "name": "rgroup_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Group Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "rgroup_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "rgroup_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "rgroup_sortable", "type": "bool", "value": "true", "ui": { "label": { "en-US": "Sortable" } } }, { "name": "rgroup_height", "type": "num", "value": "150", "ui": { "label": { "en-US": "Height" }, "type": "input", "opts": { "types": [ "num" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-reorder" }, { "id": "7d1e49e9a2f7337a", "type": "subflow", "name": "tab", "info": "The tab node allows you to group your input fields and other controls in your node’s property panel under tabs. An example of tabs can be seen in the native function node. Simply wire a tab node between the start and finish nodes and before the UI nodes you wish to have appear under a tab. The tab node uses the following properties to determine its appearance: \n\n* Tab Name - A JavaScript compatible variable name (no spaces hyphens or punctuation).\n* Label - The actual text that will be used when displaying the label.\n* Icon - A font awesome icon that will appear to the left of the label. You can specify the icon name sans any ‘fa’ prefix; i.e. bathtub", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "97041e5e58e0392a" } ] } ], "out": [ { "x": 300, "y": 40, "wires": [ { "id": "97041e5e58e0392a", "port": 0 } ] } ], "env": [ { "name": "tab_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Tab Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "tab_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "tab_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-bookmark" }, { "id": "3aaeb350dea9a1f1", "type": "subflow", "name": "buttongroup", "info": "", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "f3308a3fdb36ac02" } ] } ], "out": [ { "x": 580, "y": 100, "wires": [ { "id": "d8c795cf2bf3ed56", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" }, { "l": { "en-US": "3/4 row" }, "v": "col col-75" }, { "l": { "en-US": "2/3 row" }, "v": "col col-66" }, { "l": { "en-US": "1/2 row" }, "v": "col col-50" }, { "l": { "en-US": "1/3 row" }, "v": "col col-33" }, { "l": { "en-US": "1/4 row" }, "v": "col col-25" } ] } } }, { "name": "field_name", "type": "str", "value": "fruity", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_values", "type": "str", "value": "Apple:a,Banana:b,Coconut:c", "ui": { "label": { "en-US": "Values" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "str", "value": "c", "ui": { "label": { "en-US": "Default" }, "type": "input", "opts": { "types": [ "str" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-clone" }, { "id": "c70964ba34544694", "type": "subflow", "name": "button", "info": "", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "5fd3369e032c68b0" } ] } ], "out": [ { "x": 380, "y": 80, "wires": [ { "id": "41f4b3c1077a06f2", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" }, { "l": { "en-US": "3/4 row" }, "v": "col col-75" }, { "l": { "en-US": "2/3 row" }, "v": "col col-66" }, { "l": { "en-US": "1/2 row" }, "v": "col col-50" }, { "l": { "en-US": "1/3 row" }, "v": "col col-33" }, { "l": { "en-US": "1/4 row" }, "v": "col col-25" } ] } } }, { "name": "field_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Button Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Caption" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "button_size", "type": "str", "value": "red-ui-button", "ui": { "label": { "en-US": "Size" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "Regular" }, "v": "red-ui-button btn-regular" }, { "l": { "en-US": "Small" }, "v": "red-ui-button red-ui-button-small" } ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-square-o" }, { "id": "60de16a0fefb7ace", "type": "subflow", "name": "editor", "info": "", "category": "node maker", "in": [ { "x": 60, "y": 40, "wires": [ { "id": "b39ca36c12467718" } ] } ], "out": [ { "x": 660, "y": 380, "wires": [ { "id": "af0afbba9a411b15", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" } ] } } }, { "name": "field_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "str", "value": "", "ui": { "label": { "en-US": "Default" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "editor_expand", "type": "bool", "value": "true", "ui": { "label": { "en-US": "Allow Expanded" }, "type": "input", "opts": { "types": [ "bool" ] } } }, { "name": "editor_formatting", "type": "str", "value": "mustache:handlebars, JSON:json, JavaScript:javascript, CSS:css, Markdown:markdown, PHP:php, Python:python, SQL:sql, XML:xml, YAML:yaml, none:text", "ui": { "label": { "en-US": "Formatting" } } }, { "name": "editor_format_default", "type": "str", "value": "text", "ui": { "label": { "en-US": "Format default" }, "type": "input", "opts": { "types": [ "str" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-file-code-o" }, { "id": "5904ee94d99998b2", "type": "subflow", "name": "textarea", "info": "", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "3a8bd58bf294fc23" } ] } ], "out": [ { "x": 420, "y": 160, "wires": [ { "id": "56c0f86d94e65e2f", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" } ] } } }, { "name": "textarea_rows", "type": "num", "value": "4", "ui": { "label": { "en-US": "Rows" }, "type": "spinner" } }, { "name": "field_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "str", "value": "", "ui": { "label": { "en-US": "Default" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_placeholder", "type": "str", "value": "", "ui": { "label": { "en-US": "Placeholder" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_required", "type": "bool", "value": "false", "ui": { "label": { "en-US": "Required" }, "type": "input", "opts": { "types": [ "bool" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-file-text-o" }, { "id": "a9570576c6d79609", "type": "subflow", "name": "option", "info": "", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "4f14c5db823380c0" } ] } ], "out": [ { "x": 540, "y": 220, "wires": [ { "id": "f3c884a018b98b9c", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full row" }, "v": "col-100" }, { "l": { "en-US": "3/4 row" }, "v": "col col-75" }, { "l": { "en-US": "2/3 row" }, "v": "col col-66" }, { "l": { "en-US": "1/2 row" }, "v": "col col-50" }, { "l": { "en-US": "1/3 row" }, "v": "col col-33" }, { "l": { "en-US": "1/4 row" }, "v": "col col-25" } ] } } }, { "name": "field_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "radio_group", "type": "str", "value": "", "ui": { "label": { "en-US": "Group" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "str", "value": "unchecked", "ui": { "label": { "en-US": "Default" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "checked" }, "v": "checked" }, { "l": { "en-US": "unchecked" }, "v": "unchecked" } ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-dot-circle-o" }, { "id": "da6577bfc4038dbb", "type": "subflow", "name": "checkbox", "info": "", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "b08129ad78aa131f" } ] } ], "out": [ { "x": 320, "y": 160, "wires": [ { "id": "d46ba26faedba5a9", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full row" }, "v": "col-100" }, { "l": { "en-US": "3/4 row" }, "v": "col col-75" }, { "l": { "en-US": "2/3 row" }, "v": "col col-66" }, { "l": { "en-US": "1/2 row" }, "v": "col col-50" }, { "l": { "en-US": "1/3 row" }, "v": "col col-33" }, { "l": { "en-US": "1/4 row" }, "v": "col col-25" } ] } } }, { "name": "field_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "str", "value": "checked", "ui": { "label": { "en-US": "Default" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "checked" }, "v": "checked" }, { "l": { "en-US": "unchecked" }, "v": "unchecked" } ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-check-square" }, { "id": "b30b4cf6837f20a7", "type": "subflow", "name": "selectbox", "info": "Node Maker Docs\nThe selectbox node represents the use of Node-RED’s TypedInput and Typed Input Multiple Selectbox. For an example, see the bottom of the page for [Node-RED Inputs field for examples](https://nodered.org/docs/creating-nodes/edit-dialog#inputs). The following properties define the select box’s appearance:\n\n* Layout - The number of columns the label will consume out of a division of four or three equal areas. To align controls on the panel on the same row, ensure the used column space totals to consume an entire row.\n* Field Name - A JavaScript compatible variable name (no spaces hyphens or punctuation).\n* Label - The actual text that will be used when displaying the label.\n* Icon - A font awesome icon that will appear to the left of the label. You can specify the icon name sans any ‘fa’ prefix; i.e. bathtub\n* Values - The values of the selectbox are represented as a comma delimited string of captions:value (a caption separated by a colon and value). The captions will appear in the selectbox as a dropdown combobox. \n* Default - The default value or default selection (comma delimited if multiple is enabled) for the selectbox.\n* Allow Multiple - true to allow more than one value to be selected or false for only a single value. \n", "category": "node maker", "in": [ { "x": 60, "y": 40, "wires": [ { "id": "a898132ca0292c19" } ] } ], "out": [ { "x": 540, "y": 100, "wires": [ { "id": "3d97bfe487ea399d", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" }, { "l": { "en-US": "3/4 row" }, "v": "col col-75 sml-lbl" }, { "l": { "en-US": "2/3 row" }, "v": "col col-66 sml-lbl" }, { "l": { "en-US": "1/2 row" }, "v": "col col-50 sml-lbl" }, { "l": { "en-US": "1/3 row" }, "v": "col col-33 sml-lbl" }, { "l": { "en-US": "1/4 row" }, "v": "col col-25 sml-lbl" } ] } } }, { "name": "field_name", "type": "str", "value": "fruit", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "Fruits Label", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_icon", "type": "str", "value": "box", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_values", "type": "str", "value": "Apple:a,Banana:b,Cherry:c", "ui": { "label": { "en-US": "Values" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "str", "value": "b", "ui": { "label": { "en-US": "Default" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "selectbox_multiple", "type": "bool", "value": "false", "ui": { "label": { "en-US": "Allow Multiple" }, "type": "input", "opts": { "types": [ "bool" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-list" }, { "id": "d0a39641213352a7", "type": "subflow", "name": "label", "info": "The label node is used to place a standalone label in the property panel. Use this node to mark specific sections or to provide users with additional information. \n\nOther nodes may also include a built-in label and this node may not be necessary for nodes that have their own. The following properties for defining a label may apply to other nodes as well:\n\n* Layout - The number of columns the label will consume out of a division of four or three equal areas. To align controls on the panel on the same row, ensure the used column space totals to consume an entire row. \n* Label - The actual text that will be used when displaying the label.\n* Icon - A font awesome icon that will appear to the left of the label. You can specify the icon name sans any ‘fa’ prefix; i.e. bathtub \n\n", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "b15245fe8570aaf7" } ] } ], "out": [ { "x": 360, "y": 160, "wires": [ { "id": "84054fdfc2c499b0", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" }, { "l": { "en-US": "3/4 row" }, "v": "col col-75" }, { "l": { "en-US": "2/3 row" }, "v": "col col-66" }, { "l": { "en-US": "1/2 row" }, "v": "col col-50" }, { "l": { "en-US": "1/3 row" }, "v": "col col-33" }, { "l": { "en-US": "1/4 row" }, "v": "col col-25" } ] } } }, { "name": "label_caption", "type": "str", "value": " ", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "label_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-font" }, { "id": "7062e6f741533eb2", "type": "subflow", "name": "field ", "info": "The field node represents an instance of the Node-RED [Inputs field](https://nodered.org/docs/creating-nodes/edit-dialog#inputs). A plain input text box can be achieved with the no “Typed” checkbox or type definition specified. The following properties for defining a field are as follows:\n\n* Layout - The number of columns the label will consume out of a division of four or three equal areas. To align controls on the panel on the same row, ensure the used column space totals to consume an entire row.\n* Field Name - A JavaScript compatible variable name (no spaces hyphens or punctuation).\n* Label - The actual text that will be used when displaying the label.\n* Icon - A font awesome icon that will appear to the left of the label. You can specify the icon name sans any ‘fa’ prefix; i.e. bathtub\n* Default - the optional default contents of the field.\n* Placeholder - displays a grey value in the input field as a suggested or example value.\n* Required - whether the input field is required and must be filled out. True will invoke a basic validation check to ensure the value is supplied. A missing value will cause the node’s appearance to show an “needs configuration” triangle and subsequent message when the user attempts to deploy the flow. Additionally, a red border will appear around any required fields not filled out.\n* Typed - This section allows the field input to have one or more types to be prefixed to the field area and influences the fields display behavior. See the [Node-RED Inputs field for examples](https://nodered.org/docs/creating-nodes/edit-dialog#inputs).\n* Type Definitions - Allows for defining a custom type using JSON. When the above Typed checkbox “Include additional type definition array” is checked, this property becomes relevant. For example, you can create a custom input option such as “the complete msg object” as used in the [debug node](https://nodered.org/docs/user-guide/nodes#debug).\n* Default Type - This string value determines the default type to be selected for the input field when your node’s property panel is first opened. \n", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "73a3b0f6af6b0aeb" } ] } ], "out": [ { "x": 560, "y": 260, "wires": [ { "id": "67eed6e284e28123", "port": 0 }, { "id": "eda19645927d3dda", "port": 0 } ] } ], "env": [ { "name": "field_columns", "type": "str", "value": "col-100", "ui": { "label": { "en-US": "Layout" }, "type": "select", "opts": { "opts": [ { "l": { "en-US": "full-row" }, "v": "col-100" }, { "l": { "en-US": "3/4 row" }, "v": "col col-75 sml-lbl" }, { "l": { "en-US": "2/3 row" }, "v": "col col-66 sml-lbl" }, { "l": { "en-US": "1/2 row" }, "v": "col col-50 sml-lbl" }, { "l": { "en-US": "1/3 row" }, "v": "col col-33 sml-lbl" }, { "l": { "en-US": "1/4 row" }, "v": "col col-25 sml-lbl" } ] } } }, { "name": "field_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Field Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_label", "type": "str", "value": "", "ui": { "label": { "en-US": "Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_default", "type": "str", "value": "", "ui": { "label": { "en-US": "Default" }, "type": "input", "opts": { "types": [ "str", "num", "bool", "json", "bin" ] } } }, { "name": "field_placeholder", "type": "str", "value": "", "ui": { "label": { "en-US": "Placeholder" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "field_required", "type": "bool", "value": "false", "ui": { "label": { "en-US": "Required" } } }, { "name": "typed", "type": "str", "value": "", "ui": { "label": { "en-US": "Typed:" }, "type": "none" } }, { "name": "field_type_string", "type": "bool", "value": "false", "ui": { "label": { "en-US": "str" }, "type": "checkbox" } }, { "name": "field_type_number", "type": "bool", "value": "false", "ui": { "label": { "en-US": "num" }, "type": "checkbox" } }, { "name": "field_type_boolean", "type": "bool", "value": "false", "ui": { "label": { "en-US": "bool" }, "type": "checkbox" } }, { "name": "field_type_msg", "type": "bool", "value": "false", "ui": { "label": { "en-US": "msg" }, "type": "checkbox" } }, { "name": "field_type_flow", "type": "bool", "value": "false", "ui": { "label": { "en-US": "flow" }, "type": "checkbox" } }, { "name": "field_type_global", "type": "bool", "value": "false", "ui": { "label": { "en-US": "global" }, "type": "checkbox" } }, { "name": "field_type_json", "type": "bool", "value": "false", "ui": { "label": { "en-US": "json" }, "type": "checkbox" } }, { "name": "field_type_additional", "type": "bool", "value": "false", "ui": { "label": { "en-US": "Include additional type definition array (below)" }, "type": "checkbox" } }, { "name": "field_additional_types", "type": "json", "value": "[{\"value\":\"full\",\"label\":\"complete msg object\",\"hasValue\":false}]", "ui": { "label": { "en-US": "Type Definitions" }, "type": "input", "opts": { "types": [ "json" ] } } }, { "name": "field_default_type", "type": "str", "value": "", "ui": { "label": { "en-US": "Default Type" }, "type": "input", "opts": { "types": [ "str" ] } } } ], "meta": {}, "color": "#DDAA99", "icon": "font-awesome/fa-i-cursor" }, { "id": "65d5e45697fed99a", "type": "subflow", "name": "finish node", "info": "A finish node marks the end of a node definition. The finish node will finalize writing all\nthe files needed to create your node; the package.json, html, javascript, and ecompassing\nproject folder within your node-red instance's node_module folder. It will also restart the\nnode-red instance if it was started using the command:\n\n``\nkill -9 `cat /tmp/node-red.pid`; nohup nice node-red > /dev/null 2>&1 & echo $! > /tmp/node-red.pid\n``\n\nThis makes ongoing development easy as you simply need to refresh the browser to see node changes\nafter you have invoked the flow.", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "37f124c38d4954c7" } ] } ], "out": [], "env": [], "meta": {}, "color": "#DDAA99" }, { "id": "85e13a6e48f6a1c3", "type": "subflow", "name": "start node", "info": "The start node marks the beginning of a new node defintion. To create a node,\nconnect an inject node to the start node and connect the start node to a \nfinish node. You may wire various other nodes between the start and finish\nnodes to define your node's user interface.\n\nThe following properties can be configured in the properties panel:\n\n* Node Name - choose a JavaScript variable safe name for your node.\n* Version - A valid version string in the form of major, minor, patch i.e. 1.0.0\n* Description - a short description of your node.\n* Category - The palette group the node will appear under; existing i.e. common or you can define your own.\n* Icon - An existing fontawesome name, sans the 'font-awesome/fa-' prefix; i.e. bathtub\n* Color - The color of the node as it appears in the palette and editor. I.e. #E2D96E\n* Keywords - Used in the package.json file for reference and indexing by npm.\n* Author Name - The name of the node author. Used in package.json\n* Author Email - The email of the node author. Used in package.json\n* GitHub Handle - The handle used for the GitHub repo URL, I.e. john will appears as https://github.com/john/node-name\n* Max Row Width - The initial width of the property dialog (in pixels) when it is first opened.\n* Inputs - Whether the node accepts an input or not; 1 or 0 our the only acceptable values.\n* Outputs - The number of outputs the node will have.\n* Include node name... - Determines if a default name field will appear at the top of the property window; appears above any tab or other input fields.\n", "category": "node maker", "in": [ { "x": 40, "y": 40, "wires": [ { "id": "729874432b3551f1" } ] } ], "out": [ { "x": 740, "y": 200, "wires": [ { "id": "1d506b65823c19c3", "port": 0 } ] } ], "env": [ { "name": "node_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Node Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "node_version", "type": "str", "value": "0.0.1", "ui": { "label": { "en-US": "Version" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "node_description", "type": "str", "value": "", "ui": { "label": { "en-US": "Description" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "node_category", "type": "str", "value": "", "ui": { "label": { "en-US": "Category" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "node_palettelabel", "type": "str", "value": "", "ui": { "label": { "en-US": "Palette Label" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "node_icon", "type": "str", "value": "", "ui": { "label": { "en-US": "Icon" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "node_color", "type": "str", "value": "", "ui": { "label": { "en-US": "Color" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "keywords", "type": "str", "value": "", "ui": { "label": { "en-US": "Keywords" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "author_name", "type": "str", "value": "", "ui": { "label": { "en-US": "Author Name" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "author_email", "type": "str", "value": "", "ui": { "label": { "en-US": "Author Email" } } }, { "name": "github_handle", "type": "str", "value": "", "ui": { "label": { "en-US": "GitHub Handle" }, "type": "input", "opts": { "types": [ "str" ] } } }, { "name": "row_width", "type": "num", "value": "460", "ui": { "label": { "en-US": "Max Row Width" }, "type": "input", "opts": { "types": [ "num" ] } } }, { "name": "numinputs", "type": "num", "value": "1", "ui": { "label": { "en-US": "Inputs" }, "type": "spinner", "opts": { "min": 0, "max": 1 } } }, { "name": "numoutputs", "type": "num", "value": "1", "ui": { "label": { "en-US": "Outputs" }, "type": "spinner" } }, { "name": "inc_node_name", "type": "bool", "value": "true", "ui": { "label": { "en-US": "Include node name field at the top" }, "type": "checkbox" } } ], "meta": {}, "color": "#DDAA99" }, { "id": "11ee4d2cf1435263", "type": "junction", "z": "7062e6f741533eb2", "x": 340, "y": 40, "wires": [ [ "3c2eac4c542cd18e" ] ] }, { "id": "1d0b5202023b245b", "type": "junction", "z": "65d5e45697fed99a", "x": 500, "y": 220, "wires": [ [ "46fdba84593e4a18" ] ] }, { "id": "ebd81684ada1c31c", "type": "template", "z": "9771d13dd19bf60f", "name": "re-size fix", "field": "payload", "fieldType": "msg", "format": "javascript", "syntax": "mustache", "template": " // Allow dynamic re-size after init. appearance \n setTimeout(function () {\n $('#node-props').css('width', '100%');\n }, 30);", "output": "str", "x": 180, "y": 40, "wires": [ [ "6bb34952a24fe530" ] ] }, { "id": "6bb34952a24fe530", "type": "function", "z": "9771d13dd19bf60f", "name": "compose_code", "func": "msg._oneditprepare.push(msg.payload);\n\nString.prototype.delRightMost = function (sFind) {\n for (var i = this.length; i >= 0; i = i - 1) {\n var f = this.indexOf(sFind, i);\n if (f != -1) {\n return this.substring(0, f);\n break;\n }\n }\n return this;\n};\nString.prototype.getRightMost = function (sFind) {\n for (var i = this.length; i >= 0; i = i - 1) {\n var f = this.indexOf(sFind, i);\n if (f != -1) {\n return this.substring(f + sFind.length, f + sFind.length + this.length);\n }\n }\n return this;\n};\nString.prototype.delLeftMost = function (sFind) {\n for (var i = 0; i < this.length; i = i + 1) {\n var f = this.indexOf(sFind, i);\n if (f != -1) {\n return this.substring(f + sFind.length, f + sFind.length + this.length);\n break;\n }\n }\n return this;\n};\nString.prototype.getLeftMost = function (sFind) {\n for (var i = 0; i < this.length; i = i + 1) {\n var f = this.indexOf(sFind, i);\n if (f != -1) {\n return this.substring(0, f);\n break;\n }\n }\n return this;\n};\nvar indent = \" \".repeat(4);\nvar tabIndent = \"\";\nvar edit_dialog = \" \".repeat(8) + '