Scott,
This is what your define array looks like cleaned up (i.e removing the unused classes and proper ordering):
define([
'dojo/_base/declare',
"dijit/_WidgetsInTemplateMixin",
"jimu/BaseWidget",
"esri/tasks/query",
"esri/tasks/QueryTask",
"esri/layers/LabelClass",
"esri/symbols/TextSymbol",
"esri/symbols/Font",
"esri/tasks/StatisticDefinition",
"esri/symbols/SimpleLineSymbol",
"esri/Color",
"esri/renderers/ClassBreaksRenderer",
"dojo/_base/lang",
"dojo/on",
"dojo/dom",
"dojo/_base/array",
"dojo/_base/html",
"esri/layers/FeatureLayer",
"esri/domUtils",
'jimu/dijit/FeatureSetChooserForMultipleLayers',
"jimu/dijit/TabContainer",
'dijit/form/CheckBox',
"dijit/layout/ContentPane",
'dijit/form/FilteringSelect',
"dijit/Dialog",
"dijit/ProgressBar",
"dijit/form/NumberSpinner",
"dijit/form/Select",
"dijit/form/TextBox",
'jimu/dijit/ViewStack',
"dojo/domReady!"
],
function(
declare, _WidgetsInTemplateMixin, BaseWidget, Query, QueryTask, LabelClass,
TextSymbol, Font, StatisticDefinition,
SimpleLineSymbol, Color, ClassBreaksRenderer,
lang, on, dom, array, html, FeatureLayer, esriUtils
) {
The other thing I see is that I never specify a empty string for my TextSymbol.
var labelSymbol = new TextSymbol();
and you can have a simpler json:
var json = {
"labelExpressionInfo": {
"value": "{thecolor}"
}
};