{
  "widget": {
    "name": "Gauge",
    "selector": "jqx-gauge"
  },
  "properties": [
    {
      "name": "analogDisplayType",
      "value": "needle",
      "allowedValues": [ "needle", "fill", "line" ],
      "description": "Sets the type of gauge's indicator",
      "demoValues": [ "fill", "line" ],
      "type": "string"
    },
    {
      "name": "coerce",
      "value": false,
      "allowedValues": [],
      "description": "With the coerce property true, the value is set to the nearest value allowed by the interval property. ",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "decimalSeparator",
      "value": "\".\"",
      "allowedValues": [],
      "description": "Sets or gets the char to use as the decimal separator in numeric values. ",
      "demoValues": [ ",", "." ],
      "type": "string"
    },

    {
      "name": "digitalDisplay",
      "value": false,
      "allowedValues": [],
      "description": "Enables or disables the digital display of the widget.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "digitalDisplayPosition",
      "value": "bottom",
      "allowedValues": [ "top", "bottom", "right", "left", "center" ],
      "description": "Sets the position of the digital display.",
      "demoValues": [ "Placeholder", "New Placeholder" ],
      "type": "string"
    },
    {
      "name": "disabled",
      "value": false,
      "allowedValues": [],
      "description": "Enables or disables the widget.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "drawNeedle",
      "value": null,
      "allowedValues": [],
      "description": "Callback function which allows rendering on a custom needle. Applicable only on analogDisplayType needle.",
      "demoValues": [ null, "customDrawNeedleFunction" ],
      "type": "function"
    },
    {
      "name": "endAngle",
      "value": 210,
      "allowedValues": [],
      "description": "Sets or gets gauge's endAngle. This property specifies the end of the gauge's scale and is measured in degrees.",
      "demoValues": [ 150, 300 ],
      "type": "number"
    },
    {
      "name": "interval",
      "value": "1",
      "allowedValues": [],
      "description": "When cooerce property is true, all values coerce to the interval's value.",
      "demoValues": [ "2", "10" ],
      "type": "any"
    },
    {
      "name": "inverted",
      "value": false,
      "allowedValues": [],
      "description": "Sets the direction of the gauge. If is true - positions of the gauge's start and end are changed.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "labelFormatFunction",
      "value": null,
      "allowedValues": [],
      "description": "A callback function that can be used to format the values displayed on the gauge labels.",
      "demoValues": [ "function (value) { return value + '%'; }", "function (value) { return value + '$'; }" ],
      "type": "function"
    },
    {
      "name": "labelsVisibility",
      "value": "all",
      "allowedValues": [ "all", "endPoints", "none" ],
      "description": "Sets or gets the widget's label visibility",
      "demoValues": [ "endPoints", "none" ],
      "type": "string"
    },
    {
      "name": "language",
      "value": "en",
      "allowedValues": [],
      "description": "Sets or gets the language. Used in conjunction with the property <strong>messages</strong>. ",
      "demoValues": [ "de", "fr" ],
      "type": "string"
    },
    {
      "name": "logarithmicScale",
      "value": false,
      "allowedValues": [],
      "description": "Enables/disables the usage of logarithmic scale in the widget.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "max",
      "value": "100",
      "allowedValues": [],
      "description": "Sets or gets the maximum value of the widget.",
      "demoValues": [ "20", "50" ],
      "type": "any"
    },
    {
      "name": "mechanicalAction",
      "value": "switchWhileDragging",
      "allowedValues": [ "switchUntilReleased", "switchWhenReleased", "switchWhileDragging" ],
      "description": "Sets or gets the type of used mechanical action.",
      "demoValues": [ "switchUntilReleased", "switchWhenReleased" ],
      "type": "string"
    },
    {
      "name": "messages",
      "value": "{ \"en\": { \"missingReference\": \"{{elementType}}: Missing reference to {{files}}.\", \"significantPrecisionDigits\": \"{{elementType}}: the properties significantDigits and precisionDigits cannot be set at the same time.\", \"invalidMinOrMax\": \"{{elementType}}: Invalid {{property}} value. Max cannot be lower than Min.\", \"noInteger\": \"{{elementType}}: precisionDigits could be set only on floatingPoint scaleType.\" } }",
      "allowedValues": [],
      "description": "Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property <strong>language</strong>. ",
      "demoValues": [
        "{ \"de\": { \"missingReference\": \"{{elementType}}: Fehlende Bezugnahme auf {{files}}.\", \"significantPrecisionDigits\": \"{{elementType}}: Die Eigenschaften significantDigits und precisionDigits koennen nicht gleichzeitig eingestellt werden.\", \"invalidMinOrMax\": \"{{elementType}}: Ungültiger Wert {{property}}. Max darf nicht niedriger sein als Min.\", \"noInteger\": \"{{elementType}}: PrecisionDigits konnte nur auf floatingPoint scaleType gesetzt werden.\" } }",
        "{ \"de\": { \"missingReference\": \"{{elementType}}: Fehlende Bezugnahme auf {{files}}.\", \"significantPrecisionDigits\": \"{{elementType}}: Die Eigenschaften significantDigits und precisionDigits koennen nicht gleichzeitig eingestellt werden.\", \"invalidMinOrMax\": \"{{elementType}}: Ungültiger Wert {{property}}. Max darf nicht niedriger sein als Min.\", \"noInteger\": \"{{elementType}}: PrecisionDigits konnte nur auf floatingPoint scaleType gesetzt werden.\" } }"
      ],
      "type": "object"
    },
    {
      "name": "min",
      "value": "0",
      "allowedValues": [],
      "description": "Sets or gets the minimum value of the widget. ",
      "demoValues": [ "20", "50" ],
      "type": "any"
    },
    {
      "name": "needlePosition",
      "value": "center",
      "allowedValues": [ "center", "edge" ],
      "description": "Sets the position of the needle when <strong>analogDisplayType</strong> is <em>'needle'</em>. ",
      "demoValues": [ "center", "edge" ],
      "type": "string"
    },
    {
      "name": "precisionDigits",
      "value": null,
      "allowedValues": [],
      "description": "Determines the number of digits after the decimal point. Applicable only when <strong>scaleType</strong> is <em>'integer'</em>.",
      "demoValues": [ 5, 6 ],
      "type": "number"
    },
    {
      "name": "ranges",
      "value": [],
      "allowedValues": [],
      "description": "This property is array of objects. Each object is different range. The range is colored area with specified size.",
      "demoValues": [ "[{ startValue: 0, endValue: 50, className: 'range1' }, { startValue: 50, endValue: 100, className: 'range2' }]", "[{ startValue: 0, endValue: 60, className: 'range1' }, { startValue: 60, endValue: 100, className: 'range2' }]" ],
      "type": "array"
    },
    {
      "name": "readonly",
      "value": false,
      "allowedValues": [],
      "description": "When the widget is read only the users cannot interact with it.",
      "demoValues": [ false, true ],
      "type": "boolean"
    },
    {
      "name": "scalePosition",
      "value": "inside",
      "allowedValues": [ "outside", "inside", "none" ],
      "description": "Sets the position of the widget's scales. ",
      "demoValues": [ "inside", "outside" ],
      "type": "string"
    },
    {
      "name": "scaleType",
      "value": "floatingPoint",
      "allowedValues": [ "floatingPoint", "integer" ],
      "description": "Sets the type of the gauge's scale. ",
      "demoValues": [ "integer", "floatingPoint" ],
      "type": "string"
    },
    {
      "name": "scientificNotation",
      "value": false,
      "allowedValues": [],
      "description": "Enables/disables scientific notation.",
      "demoValues": [ false, true ],
      "type": "boolean"
    },
    {
      "name": "showRanges",
      "value": false,
      "allowedValues": [],
      "description": "This property indicates whether the gauge's ranges will be visible.",
      "demoValues": [ false, true ],
      "type": "boolean"
    },
    {
      "name": "showUnit",
      "value": false,
      "allowedValues": [],
      "description": "Enables/disables displaying of the units.",
      "demoValues": [ true, false ],
      "type": "boolean"
    },
    {
      "name": "significantDigits",
      "value": null,
      "allowedValues": [],
      "description": "Determining how many significant digits are in a number. Applicable only when <strong>scaleType</strong> is <em>'integer'</em>.",
      "demoValues": [ 1, 2 ],
      "type": "number"
    },
    {
      "name": "startAngle",
      "value": -30,
      "allowedValues": [],
      "description": "Sets or gets gauge's startAngle. This property specifies the beggining of the gauge's scale and is measured in degrees.",
      "demoValues": [ 0, 20 ],
      "type": "number"
    },
    {
      "name": "ticksPosition",
      "value": "scale",
      "allowedValues": [ "scale", "track" ],
      "description": "Sets or gets the position of the ticks in jqxTank widget.",
      "demoValues": [ "track", "scale" ],
      "type": "string"
    },
    {
      "name": "ticksVisibility",
      "value": "minor",
      "allowedValues": [ "major", "minor", "none" ],
      "description": "Sets or gets the visibility of the ticks.",
      "demoValues": [ "major", "none" ],
      "type": "string"
    },
    {
      "name": "unit",
      "value": "kg",
      "allowedValues": [],
      "description": "Sets or gets the name of unit used in the widget.",
      "demoValues": [ "mm", "cm" ],
      "type": "string"
    },
    {
      "name": "value",
      "value": "0",
      "allowedValues": [],
      "description": "Sets or gets the value of the widget. ",
      "demoValues": [ "50", "100" ],
      "type": "number"
    },
    {
      "name": "wordLength",
      "value": "int32",
      "allowedValues": [ "int8", "uint8", "int16", "uint16", "int32", "uint32", "int64", "uint64" ],
      "description": "Sets or gets the word length. Applicable only when <strong>scaleType</strong> is <em>'integer'</em>.",
      "demoValues": [ "int8", "int16" ],
      "type": "string"
    }
  ],
  "events": [
    {
      "name": "change",
      "description": "This event is triggered when the value of the widget is changed using the mouse or keyboard."
    }
  ],
  "methods": [
    {
      "name": "val",
      "description": "Get/set the value of the gauge. ",
      "demoValues": [ "10" ],
      "returnDataType": "String",
      "arguments": [
        {
          "name": "value",
          "type": "string/number",
          "description": "The value to be set. If no parameter is passed, returns the displayed value of the gauge. ",
          "optional": true
        }
      ]
    }
  ]
}