{"size":{"Width":790,"Height":326},"appearance":{"background":null,"padding":14,"font":{"family":"Courier New","size":10.0,"bold":false,"italic":false,"underline":false,"strikeout":false,"color":"rgb(0,72,168)"},"border":{"on":true,"size":0.0,"style":"solid","color":"#666"},"text":{"wrap":false,"hAlign":"left","vAlign":"top"}},"outputType":"WIDGET","widgetState":null,"outputs":{"console":"<pre class='debug-source'>>library(flipPlots)\n</pre>\n<pre class='debug-source'>>library(flipData)\n</pre>\n<pre class='debug-source'>>library(flipFormat)\n</pre>\n<pre class='debug-source'>>library(flipChartBasics)\n</pre>\n<pre class='debug-source'>>\n</pre>\n<pre class='debug-source'>>weights <- NULL\n</pre>\n<pre class='debug-source'>>dat <- NULL\n</pre>\n<pre class='debug-source'>>dat <- get0("formTable")\n</pre>\n<pre class='debug-source'>>if (is.null(dat))\n{\n if (exists("formEnteredData") && sum(dim(formEnteredData)) > 0)\n dat <- flipTransformations::ParseEnteredData(formEnteredData)\n}\n</pre>\n<pre class='debug-source'>>if (is.null(dat))\n{\n dat <- as.data.frame(get0("formVariables"))\n if (is.null(dat) || sum(dim(dat)) == 0)\n stop("No data has been provided.")\n weights <- QPopulationWeight\n names(dat) <- if (!formNames) Labels(dat) else Names(dat)\n}\n</pre>\n<pre class='debug-source'>>\n</pre>\n<pre class='debug-source'>>if (isTRUE(get0("formContainsWeights")))\n{\n weights <- dat[,ncol(dat)]\n dat <- dat[,-ncol(dat)]\n}\n</pre>\n<pre class='debug-source'>>if (formTidyLabels)\n names(dat) <- ExtractCommonPrefix(names(dat))$shortened.labels\n</pre>\n<pre class='debug-source'>>dat <- TidyRawData(dat, weights = weights, missing = "Use partial data", subset = QFilter)\n</pre>\n<pre class='debug-source'>>\n</pre>\n<pre class='debug-source'>>num.colors <- ncol(dat)\n</pre>\n<pre class='debug-source'>>if (formLinkColors == "Source" || formLinkColors == "Target")\n{\n if (formSharedValues)\n num.colors <- length(unique(unlist(dat)))\n else\n num.colors <- sum(sapply(dat, function(x){length(unique(x))}))\n} else if (formLinkColors == "First variable")\n{\n num.colors <- length(unique(dat[,1]))\n} else if (formLinkColors == "Last variable")\n{\n num.colors <- length(unique(dat[,ncol(dat)]))\n}\n</pre>\n<pre class='debug-source'>>\n</pre>\n<pre class='debug-source'>>colors <- NULL\n</pre>\n<pre class='debug-source'>>if (formPalette != "Legacy colors")\n colors <- ChartColors(num.colors, given.colors = formPalette,\n custom.color = formCustomColor,\n custom.gradient.start = formCustomGradientStart,\n custom.gradient.end = formCustomGradientEnd,\n custom.palette = formCustomPalette, silent = TRUE) \n</pre>\n<pre class='debug-source'>>\n</pre>\n<pre class='debug-source'>>sankey.2 <- SankeyDiagram(dat, max.categories = formMaxCategories,\n subset = TRUE, weights = attr(dat, "weights"),\n font.family = formFontFamily, font.size = formFontSize, \n node.width = formNodeWidth, colors = colors,\n link.color = formLinkColors, \n variables.share.values = get0("formSharedValues", ifnotfound=FALSE))\n</pre>\r\n<div class=\"debug-summarystatistics\">\r\n<table>\r\n<tr><th>Total time:</th><td>2.75s</td></tr>\r\n<tr><th>Time on R server:</th><td title=\"rApacheServe 2.56s (pre 0.00s, post 0.00s) httpget_code() setup for eval 0.00s session$eval 2.27s (pre 0.00s, post 0.04s) unexplained 0.30s apparmor forking (pre 0.00s, post 0.00s)\">2.56s</td></tr>\r\n<tr><th>Time evaluating code:</th><td>2.14s</td></tr>\r\n<tr><th>Bytes sent:</th><td>3,887</td></tr>\r\n<tr><th>Bytes received:</th><td>8,331</td></tr>\r\n</table>\r\n</div>","htmlwidgets":"<div id=\"htmlwidget_container\">\n <div id=\"htmlwidget-f474ad921ae63e0a53f4\" style=\"width:960px;height:500px;\" class=\"sankeyNetwork html-widget\"></div>\n</div>\n<script type=\"application/json\" data-for=\"htmlwidget-f474ad921ae63e0a53f4\">{\"x\":{\"links\":{\"source\":[0,0,0,1,2,2],\"target\":[3,5,7,8,4,6],\"value\":[20,20,20,50,20,200],\"group\":[\"0\",\"0\",\"0\",\"1\",\"2\",\"2\"]},\"nodes\":{\"name\":[\"Type: Discretionary\",\"Type: Transport\",\"Type: Utilities\",\"Item: Books\",\"Item: Electricity\",\"Item: Entertainment\",\"Item: Rent\",\"Item: Snacks\",\"Item: Train\"],\"group\":[\"0\",\"1\",\"2\",\"0\",\"2\",\"0\",\"2\",\"0\",\"1\"]},\"options\":{\"NodeID\":\"name\",\"NodeGroup\":\"group\",\"LinkGroup\":\"group\",\"colourScale\":\"d3.scaleOrdinal() .domain(['0','1','2']) .range(['#E495A5','#86B875','#7DB0DD']);\",\"fontSize\":10,\"fontFamily\":\"Arial\",\"nodeWidth\":30,\"nodePadding\":10,\"units\":\"\",\"margin\":{\"top\":null,\"right\":null,\"bottom\":null,\"left\":null},\"iterations\":32,\"sinksRight\":true}},\"evals\":[],\"jsHooks\":[]}</script>\n<script type=\"application/htmlwidget-sizing\" data-for=\"htmlwidget-f474ad921ae63e0a53f4\">{\"viewer\":{\"width\":450,\"height\":350,\"padding\":10,\"fill\":true},\"browser\":{\"width\":960,\"height\":500,\"padding\":10,\"fill\":true}}</script>","htmlwidget-head":"{\"stylesheets\":[],\"javascript\":[\"https://rserverhtmlwidgetasset.azureedge.net/htmlwidgets-917a66c6e5036eb1bfd1fb672a82635a.js\",\"https://rserverhtmlwidgetasset.azureedge.net/d3.min-8cb4245fbe0fd43eed62462352223240.js\",\"https://rserverhtmlwidgetasset.azureedge.net/sankey-58c4ed3855c134f68a086bd1e43cb1e0.js\",\"https://rserverhtmlwidgetasset.azureedge.net/sankeyNetwork-37d0407b37150c41005a94bf4a70645b.js\"],\"attachments\":[],\"widget-cannot-re-render\":false}","message":"","warning":""},"secondsTaken":2.7479780000000003,"updated":"2018-07-27T06:43:35.2892052Z","lastUpdatedMessage":null,"executedCode":"library(flipPlots)\nlibrary(flipData)\nlibrary(flipFormat)\nlibrary(flipChartBasics)\n\nweights <- NULL\ndat <- NULL\ndat <- get0(\"formTable\")\nif (is.null(dat))\n{\n if (exists(\"formEnteredData\") && sum(dim(formEnteredData)) > 0)\n dat <- flipTransformations::ParseEnteredData(formEnteredData)\n}\nif (is.null(dat))\n{\n dat <- as.data.frame(get0(\"formVariables\"))\n if (is.null(dat) || sum(dim(dat)) == 0)\n stop(\"No data has been provided.\")\n weights <- QPopulationWeight\n names(dat) <- if (!formNames) Labels(dat) else Names(dat)\n}\n\nif (isTRUE(get0(\"formContainsWeights\")))\n{\n weights <- dat[,ncol(dat)]\n dat <- dat[,-ncol(dat)]\n}\nif (formTidyLabels)\n names(dat) <- ExtractCommonPrefix(names(dat))$shortened.labels\ndat <- TidyRawData(dat, weights = weights, missing = \"Use partial data\", subset = QFilter)\n\nnum.colors <- ncol(dat)\nif (formLinkColors == \"Source\" || formLinkColors == \"Target\")\n{\n if (formSharedValues)\n num.colors <- length(unique(unlist(dat)))\n else\n num.colors <- sum(sapply(dat, function(x){length(unique(x))}))\n} else if (formLinkColors == \"First variable\")\n{\n num.colors <- length(unique(dat[,1]))\n} else if (formLinkColors == \"Last variable\")\n{\n num.colors <- length(unique(dat[,ncol(dat)]))\n}\n\ncolors <- NULL\nif (formPalette != \"Legacy colors\")\n colors <- ChartColors(num.colors, given.colors = formPalette,\n custom.color = formCustomColor,\n custom.gradient.start = formCustomGradientStart,\n custom.gradient.end = formCustomGradientEnd,\n custom.palette = formCustomPalette, silent = TRUE) \n\nsankey.2 <- SankeyDiagram(dat, max.categories = formMaxCategories,\n subset = TRUE, weights = attr(dat, \"weights\"),\n font.family = formFontFamily, font.size = formFontSize, \n node.width = formNodeWidth, colors = colors,\n link.color = formLinkColors, \n variables.share.values = get0(\"formSharedValues\", ifnotfound=FALSE))","lastSavedCode":"library(flipPlots)\nlibrary(flipData)\nlibrary(flipFormat)\nlibrary(flipChartBasics)\n\nweights <- NULL\ndat <- NULL\ndat <- get0(\"formTable\")\nif (is.null(dat))\n{\n if (exists(\"formEnteredData\") && sum(dim(formEnteredData)) > 0)\n dat <- flipTransformations::ParseEnteredData(formEnteredData)\n}\nif (is.null(dat))\n{\n dat <- as.data.frame(get0(\"formVariables\"))\n if (is.null(dat) || sum(dim(dat)) == 0)\n stop(\"No data has been provided.\")\n weights <- QPopulationWeight\n names(dat) <- if (!formNames) Labels(dat) else Names(dat)\n}\n\nif (isTRUE(get0(\"formContainsWeights\")))\n{\n weights <- dat[,ncol(dat)]\n dat <- dat[,-ncol(dat)]\n}\nif (formTidyLabels)\n names(dat) <- ExtractCommonPrefix(names(dat))$shortened.labels\ndat <- TidyRawData(dat, weights = weights, missing = \"Use partial data\", subset = QFilter)\n\nnum.colors <- ncol(dat)\nif (formLinkColors == \"Source\" || formLinkColors == \"Target\")\n{\n if (formSharedValues)\n num.colors <- length(unique(unlist(dat)))\n else\n num.colors <- sum(sapply(dat, function(x){length(unique(x))}))\n} else if (formLinkColors == \"First variable\")\n{\n num.colors <- length(unique(dat[,1]))\n} else if (formLinkColors == \"Last variable\")\n{\n num.colors <- length(unique(dat[,ncol(dat)]))\n}\n\ncolors <- NULL\nif (formPalette != \"Legacy colors\")\n colors <- ChartColors(num.colors, given.colors = formPalette,\n custom.color = formCustomColor,\n custom.gradient.start = formCustomGradientStart,\n custom.gradient.end = formCustomGradientEnd,\n custom.palette = formCustomPalette, silent = TRUE) \n\nsankey.2 <- SankeyDiagram(dat, max.categories = formMaxCategories,\n subset = TRUE, weights = attr(dat, \"weights\"),\n font.family = formFontFamily, font.size = formFontSize, \n node.width = formNodeWidth, colors = colors,\n link.color = formLinkColors, \n variables.share.values = get0(\"formSharedValues\", ifnotfound=FALSE))","highlightedCodeSpans":[{"start":466,"length":17,"index":6},{"start":657,"length":14,"index":4},{"start":822,"length":7,"index":6},{"start":860,"length":14,"index":4},{"start":890,"length":14,"index":4},{"start":1087,"length":14,"index":4},{"start":1178,"length":14,"index":4},{"start":1287,"length":11,"index":4},{"start":1372,"length":11,"index":4},{"start":1703,"length":17,"index":4},{"start":1831,"length":14,"index":4},{"start":1859,"length":12,"index":4},{"start":1911,"length":13,"index":4},{"start":1980,"length":14,"index":4}],"tableTransformations":"<TabularTransformer>\r\n <TabularTransform type=\"Truncation\" truncationHeaderType=\"Column\" />\r\n <TabularTransform />\r\n</TabularTransformer>","tabularFilteringOptions":null,"hasGuiControls":true,"guiControls":{"Code":"form.setHeading(\"Sankey Diagram\")\nvar allow_control_groups = Q.fileFormatVersion() > 10.9; // Group controls for Displayr and later versions of Q\nfunction isEmpty(x) { return (x == undefined || x.getValue() == null && (x.getValues() == null || x.getValues().length == 0)) }\nfunction isBlankSheet(x) { return (x.getValue() == null || x.getValue().length == 0) }\nvar controls = [];\n\nif (allow_control_groups)\n form.group(\"DATA SOURCE\");\nvar tableInput = form.dropBox({label: \"Input table\", types:[\"table\", \"RItem\"], name: \"formTable\", multi : false, required: false});\nvar varInput = form.dropBox({label: \"Variables\", name: \"formVariables\", multi: true, min_inputs: 2, max_inputs: 20, required: false, types:[\"Variable: Numeric, Date, Money, Categorical, OrderedCategorical, Text\"]});\nvar pastedInput = form.dataEntry({name: \"formEnteredData\", label: \"Paste or type table\", prompt: \"Opens a spreadsheet into which you can paste data.\"})\n\nif (!allow_control_groups || !isEmpty(tableInput) || (isBlankSheet(pastedInput) && isEmpty(varInput)))\n controls.push(tableInput);\nif (!allow_control_groups || !isEmpty(varInput) || (isEmpty(tableInput) && isBlankSheet(pastedInput)))\n controls.push(varInput);\nif (!allow_control_groups || !isBlankSheet(pastedInput) || (isEmpty(tableInput) && isEmpty(varInput)))\n controls.push(pastedInput);\n\nif (!isEmpty(tableInput) || !isBlankSheet(pastedInput))\n{\n var qContainsWgt = form.checkBox({label: \"Last column contains weights\", name: \"formContainsWeights\", default_value: false});\n controls.push(qContainsWgt);\n}\nvar maxCat = form.numericUpDown({label: \"Maximum number of categories\",\n name: \"formMaxCategories\",\n increment: 1, \n minimum: 2,\n default_value: 10, \n maximum: 100})\ncontrols.push(maxCat);\n\nif (allow_control_groups)\n form.group(\"APPEARANCE\");\nvar linkCol = form.comboBox({label: \"Links colored by\", name: \"formLinkColors\", alternatives: ['Target', 'Source', 'None', 'First variable', 'Last variable'], default_value: 'None'});\ncontrols.push(linkCol);\nif (linkCol.getValue() == \"Target\" || linkCol.getValue() == \"Source\")\n{\n var qShared = form.checkBox({label: \"Variables share common values\", name: \"formSharedValues\", default_value: false});\n controls.push(qShared);\n}\npalettes = [\"Legacy colors\", \"Default colors\", \"Primary colors\", \"Rainbow\", \"Light pastels\", \"Strong colors\", \"Reds, dark to light\", \"Reds, light to dark\", \"Greens, dark to light\", \"Greens, light to dark\", \"Blues, dark to light\", \"Blues, light to dark\", \"Greys, dark to light\", \"Greys, light to dark\", \"Heat colors (red, yellow, white)\", \"Terrain colors (green, beige, grey)\", \"Custom color\", \"Custom gradient\", \"Custom palette\"];\ngradual_palettes = [\"Blues, light to dark\", \"Blues, dark to light\", \"Greys, light to dark\", \"Greys, dark to light\", \"Reds, light to dark\", \"Reds, dark to light\", \"Greens, light to dark\", \"Greens, dark to light\", \"Custom gradient\", \"Custom palette\"];\ngradual_palettes_red = [\"Reds, light to dark\", \"Reds, dark to light\", \"Greys, light to dark\", \"Greys, dark to light\", \"Blues, light to dark\", \"Blues, dark to light\", \"Greens, light to dark\", \"Greens, dark to light\", \"Custom gradient\", \"Custom palette\"];\nqColor = form.comboBox({name: \"formPalette\", label: \"Color palette\", alternatives: palettes, default_value: palettes[1], required: true});\ncontrols.push(qColor);\nif (qColor.getValue() == \"Custom color\")\n{\n var qCustCol = form.colorPicker({name: \"formCustomColor\", label: \"Custom color\", default_value: \"#5C9AD3\"});\n controls.push(qCustCol);\n}\nif (qColor.getValue() == \"Custom gradient\")\n{\n var qCustGrad1 = form.colorPicker({name: \"formCustomGradientStart\", label: \"Gradient start\", default_value: \"#5C9AD3\"});\n var qCustGrad2 = form.colorPicker({name: \"formCustomGradientEnd\", label: \"Gradient end\", default_value: \"#ED7D31\"});\n controls.push(qCustGrad1);\n controls.push(qCustGrad2);\n}\nif (qColor.getValue() == \"Custom palette\")\n{\n var qCustPalette = form.textBox({name: \"formCustomPalette\", label: \"Custom palette\", default_value: \"#5C9AD3, #ED7D31\", prompt: \"Enter color as a string. Multiple values should be separated by commas.\"});\n controls.push(qCustPalette);\n}\nvar qNodeWidth = form.numericUpDown({label: \"Node width\", name: \"formNodeWidth\", minimum: 0, maximum: 100, default_value: 30});\ncontrols.push(qNodeWidth);\n\nif (allow_control_groups)\n form.group(\"LABELS\");\nif (!isEmpty(varInput))\n{\n var qVarNames = form.checkBox({label: \"Variable names\", name: \"formNames\", default_value: false});\n controls.push(qVarNames);\n}\nvar qTidyLabels = form.checkBox({label: \"Tidy labels\", name: \"formTidyLabels\", default_value: true});\ncontrols.push(qTidyLabels);\n\nfont_families = [\"Andale Mono\", \"Arial\", \"Arial Black\", \"Century Gothic\", \"Comic Sans MS\",\n \"Courier New\", \"Georgia\", \"Impact\", \"Times New Roman\", \"Trebuchet MS\", \"Verdana\"];\nvar qFontFamily = form.comboBox({label: \"Font family\", name: \"formFontFamily\", alternatives: font_families, default_value: \"Arial\"});\nvar qFontSize = form.numericUpDown({label: \"Font size\", name: \"formFontSize\", default_value: 12});\ncontrols.push(qFontFamily);\ncontrols.push(qFontSize);\nform.setInputControls(controls);","JSError":null,"JSErrorDetails":null,"ControlDefinitionErrors":null,"InputValidationErrors":null,"Controls":[{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":null,"Page":null,"Group":null,"Type":"Heading","Label":null,"LabelEmphasised":false,"Value":null,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":"Sankey Diagram","Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formEnteredData","Page":null,"Group":"DATA SOURCE","Type":"DataEntry","Label":"Paste or type table","LabelEmphasised":false,"Value":"[[\"\",\"\",\"\",\"\"],[\"\",\"\",\"\",\"\"],[\"\",\"Type\",\"Item\",\"Amount\"],[\"\",\"Utilities\",\"Rent\",\"200\"],[\"\",\"Utilities\",\"Electricity\",\"20\"],[\"\",\"Transport\",\"Train\",\"50\"],[\"\",\"Discretionary\",\"Snacks\",\"20\"],[\"\",\"Discretionary\",\"Entertainment\",\"20\"],[\"\",\"Discretionary\",\"Books\",\"20\"]]","Allowed":null,"Multi":false,"Prompt":"Opens a spreadsheet into which you can paste data.","ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formContainsWeights","Page":null,"Group":"DATA SOURCE","Type":"CheckBox","Label":"Last column contains weights","LabelEmphasised":false,"Value":true,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formMaxCategories","Page":null,"Group":"DATA SOURCE","Type":"NumericUpDown","Label":"Maximum number of categories","LabelEmphasised":false,"Value":10.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Maximum number of categories: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":2.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formLinkColors","Page":null,"Group":"APPEARANCE","Type":"ComboBox","Label":"Links colored by","LabelEmphasised":false,"Value":"First variable","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Target","Source","None","First variable","Last variable"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formPalette","Page":null,"Group":"APPEARANCE","Type":"ComboBox","Label":"Color palette","LabelEmphasised":false,"Value":"Rainbow","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Legacy colors","Default colors","Primary colors","Rainbow","Light pastels","Strong colors","Reds, dark to light","Reds, light to dark","Greens, dark to light","Greens, light to dark","Blues, dark to light","Blues, light to dark","Greys, dark to light","Greys, light to dark","Heat colors (red, yellow, white)","Terrain colors (green, beige, grey)","Custom color","Custom gradient","Custom palette"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formNodeWidth","Page":null,"Group":"APPEARANCE","Type":"NumericUpDown","Label":"Node width","LabelEmphasised":false,"Value":30.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Node width: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formTidyLabels","Page":null,"Group":"LABELS","Type":"CheckBox","Label":"Tidy labels","LabelEmphasised":false,"Value":false,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":"left","Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formFontFamily","Page":null,"Group":"LABELS","Type":"ComboBox","Label":"Font family","LabelEmphasised":false,"Value":"Arial","Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":true,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":["Andale Mono","Arial","Arial Black","Century Gothic","Comic Sans MS","Courier New","Georgia","Impact","Times New Roman","Trebuchet MS","Verdana"],"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":"formFontSize","Page":null,"Group":"LABELS","Type":"NumericUpDown","Label":"Font size","LabelEmphasised":false,"Value":10.0,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":"Font size: ","Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":1.0,"Min":0.0,"Max":100.0,"Vertical":null},{"ItemGuid":"00000000-0000-0000-0000-000000000000","ControlName":null,"Page":null,"Group":null,"Type":null,"Label":null,"LabelEmphasised":false,"Value":null,"Allowed":null,"Multi":false,"Prompt":null,"ErrorMessage":null,"Invalid":null,"Required":false,"AllowedTypes":null,"OwnerRItemGuid":null,"MinInputs":0,"MaxInputs":0,"Height":0,"Duplicates":false,"Values":null,"CheckAlign":null,"Text":null,"Increment":0.0,"Min":0.0,"Max":0.0,"Vertical":false}]},"calculating":"Idle","showDebug":false,"layout":"OutputOnly","vSplit":0.25,"hSplit":0.45,"updateWarnings":true,"updateMode":"Manual","warnSlow":false,"Options":{"debugconsole":false,"codeposition":"OutputOnly","splitH":0.45,"splitV":0.25,"update warnings":true,"updating":"Manual","warn slow":false}}