UNPKG

@domoinc/arrow-single-value-indicator

Version:

ArrowSingleValueIndicator - Domo Widget

349 lines (248 loc) 7.09 kB
# ArrowSingleValueIndicator ## Configuration Options #### abbrNumber Type: `select` Default: `{"name":"Abbreviate","value":true}` Set the format of the number to be fully written out or abbreviated when the value is 1000 or greater (e.g. if abbreviated, 1000 will be 1K) #### alignment Type: `select` Default: `{"name":"Align Text Left","value":"left"}` The horizontal alignment of the text relative to the widget's chart bounds #### animationDuration Type: `number` Default: `500` Units: `ms` Duration of time for the initial animation #### arrowOffset Type: `number` Default: `-6` Distance of arrow from the text (negative is further away) #### chartName Type: `string` Default: `"ArrowSingleValueIndicator"` Name of chart for Reporting. #### decTrendColor Type: `color` Default: `"#E4584F"` Fill color that indicates something is bad #### fontSize Type: `number` Default: `48` Units: `px` Font size for the text #### fontWeight Type: `select` Default: `{"name":"300 - Light","value":300}` Greater values correspond to increased font boldness (some fonts do not support every value) #### height Type: `number` Default: `0` Units: `px` #### hoverEvent Type: `select` Default: `{"name":"Enable","value":true}` Enable or disable the animation triggered by moving the mouse over the widget #### incTrendColor Type: `color` Default: `"#80C25D"` Fill color that indicates something is good #### indicatorColor Type: `color` Default: `"#333333"` Font color for the text #### isOnMobile Type: `boolean` Default: `false` If true, it signals to the widget that it is running on a mobile device. Should be called before draw and then NEVER changed. #### magnitudeFontSize Type: `number` Default: `null` Units: `px` Font size for the abbreviation symbol for large numbers (e.g. if 1000 abbreviates to '1K', the symbol is 'K') #### noTrendColor Type: `color` Default: `"#E5E5E5"` Fill color that indicates something is neutral #### numDecimal Type: `select` Default: `{"name":"Default"}` Set the number of decimal places to be displayed #### offsetArrowHeadWidth Type: `number` Default: `0` Units: `px` Width of the arrowhead (0 is default, negative and positive is narrower and wider respectively) #### offsetArrowLength Type: `number` Default: `0` Units: `px` Length of the arrow (0 is default, negative and positive is shorter and longer respectively) #### offsetArrowWidth Type: `number` Default: `0` Units: `px` Width of the arrow (0 is default, negative and positive is narrower and wider respectively) #### postfixFontSize Type: `number` Default: `null` Units: `px` Font size for the suffix (if left empty, the font size will be the same as the font size above) #### postfixString Type: `string` Default: `""` Text added after the indicator #### prefixFontSize Type: `number` Default: `null` Units: `px` Font size for the prefix (if left empty, the font size will be the same as the font size above) #### prefixString Type: `string` Default: `""` Text added before the indicator #### shouldValidate Type: `boolean` Default: `true` Flag for turning off data validation #### showArrow Type: `select` Default: `{"name":"Show","value":true}` Flag that dictates if the trend arrow is drawn #### textFontFamily Type: `string` Default: `"Open Sans"` Font type for the text #### updateSizeableConfigs Type: `boolean` Default: `true` Flag for turning off the mimic of illustrator's scale functionality #### useContrastColors Type: `boolean` Default: `false` Flag that dictates whether or not to use the good and bad color configs #### width Type: `number` Default: `0` Units: `px` ## Data Definition #### Label Type: `string` Default validate: ```js function (d) { return true; } ``` Default accessor: ```js function (line) { return String(line[0]); } ``` #### Value Type: `number` Default validate: ```js function (d) { return !isNaN(this.accessor(d)); } ``` Default accessor: ```js function (line) { return Number(line[1]); } ``` ## Events #### Dispatch Events #### External Events ## Example ```js //Setup some fake data var data = [ ['Sales', 100] // ['Sales', 1234567.1234567] ]; var aHeight = 500; var aWidth = 500; //Initialize the widget var chart = d3.select('#vis') .append('svg') .attr({'height': 500, 'width': 500}) .append('g') .attr('transform', 'translate(250,250)') .chart('ArrowSingleValueIndicator') .c({ width: aWidth, height: aHeight, useContrastColors: true, // postfixString: '%', // prefixString: '$', //indicatorColor: 'red', //arrowOffset: -6, //fontSize: 48, //prefixFontSize: 40, //magnitudeFontSize: 40, //postfixFontSize: 40, //useContrastColors: true, showArrow: {name:'Hide', value: false}, abbrNumber: {name: 'Abbreviate', value: true}, // abbrNumber: {name: 'Full Form', value: false}, numDecimal: {name: 'Default', value: undefined}, // numDecimal: {name: 'None', value: 0}, // numDecimal: {name: '.0', value: 1}, // numDecimal: {name: '.00', value: 2}, // numDecimal: {name: '.000', value: 3}, // numDecimal: {name: '.0000', value: 4}, // numDecimal: {name: '.00000', value: 5}, }); //Render the chart with data chart._notifier.showMessage(true); chart.draw(data); /*---------------------------------------------------------------------------------- // Multi Draw Triggers ----------------------------------------------------------------------------------*/ // setTimeout(function () { // chart // .config('showArrow', {name:'Show', value:true}) // // .config('showArrow', {name:'Hide', value:false}) // .draw([['name', 5000000000]]) // }, 1000); // setTimeout(function () { // chart // // .config('showArrow', {name:'Show', value:true}) // .config('showArrow', {name:'Hide', value:false}) // .draw([['name', -1234567]]) // }, 2000); // setTimeout(function () { // chart // .config('showArrow', {name:'Show', value:true}) // // .config('showArrow', {name:'Hide', value:false}) // .draw([['name', -1]]) // }, 3000); /*---------------------------------------------------------------------------------- // Border and Alignment Lines ----------------------------------------------------------------------------------*/ // var svg = d3.select('svg'); // svg.insert('rect', ':first-child') // .attr('height', aHeight) // .attr('width', aWidth) // .attr('stroke', 'black') // .style('fill', 'white') // .style('fill-opacity', 0); // svg.insert('line', ':first-child') // .attr({ // x1: aWidth / 2.0, // y1: 0, // x2: aWidth / 2.0, // y2: aHeight // }) // .style({ // stroke: '#000000', // 'stroke-width': 1 // }); // var offset = 165; // svg.insert('line', ':first-child') // .attr({ // x1: offset, // y1: aHeight / 2.0, // x2: aHeight - offset, // y2: aHeight / 2.0 // }) // .style({ // stroke: '#000000', // 'stroke-width': 1 // }); ```