define("dijit/form/HorizontalRuleLabels", [ "dojo/_base/declare", // declare "dojo/number", // number.format "dojo/query", // query "./HorizontalRule" ], function(declare, number, query, HorizontalRule){ /*===== var HorizontalRule = dijit.form.HorizontalRule; =====*/ // module: // dijit/form/HorizontalRuleLabels // summary: // Labels for `dijit.form.HorizontalSlider` return declare("dijit.form.HorizontalRuleLabels", HorizontalRule, { // summary: // Labels for `dijit.form.HorizontalSlider` templateString: '
', // labelStyle: String // CSS style to apply to individual text labels labelStyle: "", // labels: String[]? // Array of text labels to render - evenly spaced from left-to-right or bottom-to-top. // Alternately, minimum and maximum can be specified, to get numeric labels. labels: [], // numericMargin: Integer // Number of generated numeric labels that should be rendered as '' on the ends when labels[] are not specified numericMargin: 0, // numericMinimum: Integer // Leftmost label value for generated numeric labels when labels[] are not specified minimum: 0, // numericMaximum: Integer // Rightmost label value for generated numeric labels when labels[] are not specified maximum: 1, // constraints: Object // pattern, places, lang, et al (see dojo.number) for generated numeric labels when labels[] are not specified constraints: {pattern:"#%"}, _positionPrefix: '
', _suffix: '
', _calcPosition: function(pos){ // summary: // Returns the value to be used in HTML for the label as part of the left: attribute // tags: // protected extension return pos; }, _genHTML: function(pos, ndx){ return this._positionPrefix + this._calcPosition(pos) + this._positionSuffix + this.labelStyle + this._labelPrefix + this.labels[ndx] + this._suffix; }, getLabels: function(){ // summary: // Overridable function to return array of labels to use for this slider. // Can specify a getLabels() method instead of a labels[] array, or min/max attributes. // tags: // protected extension // if the labels array was not specified directly, then see if
  • children were var labels = this.labels; if(!labels.length){ // for markup creation, labels are specified as child elements labels = query("> li", this.srcNodeRef).map(function(node){ return String(node.innerHTML); }); } this.srcNodeRef.innerHTML = ''; // if the labels were not specified directly and not as
  • children, then calculate numeric labels if(!labels.length && this.count > 1){ var start = this.minimum; var inc = (this.maximum - start) / (this.count-1); for(var i=0; i < this.count; i++){ labels.push((i < this.numericMargin || i >= (this.count-this.numericMargin)) ? '' : number.format(start, this.constraints)); start += inc; } } return labels; }, postMixInProperties: function(){ this.inherited(arguments); this.labels = this.getLabels(); this.count = this.labels.length; } }); });