{"version":3,"file":"GaugeGraph.mjs","names":["React","Vega","useTheme","lighten","getEllipseColor","GaugeGraph","props","$","_c","title","t0","unitLabel","t1","legend","t2","showTicks","t3","ticksNumber","t4","backgroundColor","fillColor","t5","value","t6","minValue","t7","maxValue","t8","width","t9","height","t10","undefined","theme","t11","Symbol","for","left","right","top","bottom","t12","t13","t14","t15","t16","t17","name","transform","type","as","start","signal","stop","step","expr","update","t18","t19","palette","secondary","main","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","text","primary","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","data","field","t41","domain","zero","range","t42","t43","t44","t45","t46","encode","enter","x","y","startAngle","endAngle","outerRadius","innerRadius","fill","t47","scale","t48","description","from","stroke","opacity","t49","align","baseline","fontSize","t50","t51","t52","t53","t54","offset","t55","t56","t57","t58","t59","t60","t61","t62","t63","t64","t65","t66","t67","t68","t69","t70","specs","$schema","padding","signals","scales","axes","legends","marks"],"sources":["../../../../src/UI/dataDisplay/visualization/GaugeGraph.jsx"],"sourcesContent":["import React from 'react';\nimport { Vega } from 'react-vega';\nimport { useTheme, lighten } from '@material-ui/core';\nimport { getEllipseColor } from '../../../utilities/style/colorConverter';\n\nexport const GaugeGraph = (props) => {\n  const {\n    title = '',\n    unitLabel = '',\n    legend = '',\n    showTicks = false,\n    ticksNumber = 6,\n    backgroundColor,\n    fillColor = 'warning',\n    value = 0,\n    minValue = 0,\n    maxValue = 100,\n    width = 350,\n    height = 180\n  } = props;\n  const theme = useTheme();\n\n  const specs = {\n    $schema: 'https://vega.github.io/schema/vega/v5.json',\n    width: width,\n    height: height,\n    padding: { left: 0, right: 0, top: 0, bottom: 0 },\n    data: [\n      {\n        name: 'ticks',\n        transform: [\n          {\n            type: 'sequence',\n            as: 'data',\n            start: {\n              signal: '0'\n            },\n            stop: {\n              signal: '(maxValue - minValue) + 0.1'\n            },\n            step: {\n              signal: '(maxValue - minValue)/(ticksNumber-1)'\n            }\n          },\n          {\n            type: 'formula',\n            expr: 'datum.data + minValue',\n            as: 'data_2'\n          },\n          {\n            type: 'formula',\n            as: 'radianRef',\n            expr: 'PI * (datum.data/(maxValue - minValue))'\n          },\n          {\n            type: 'formula',\n            as: 'x',\n            expr: 'centerX - ((outerRadius - (outerRadius - innerRadius) * 0.6) * cos(datum.radianRef))'\n          },\n          {\n            type: 'formula',\n            as: 'y',\n            expr: 'centerY - ((outerRadius - (outerRadius - innerRadius) * 0.7) * sin(datum.radianRef))'\n          }\n        ]\n      }\n    ],\n    signals: [\n      {\n        name: 'centerX',\n        update: 'width/2'\n      },\n      {\n        name: 'centerY',\n        update: 'height/2 + outerRadius/2'\n      },\n      {\n        name: 'outerRadius',\n        update: 'targetValue ? radiusRef * 0.9 : radiusRef * 0.95'\n      },\n      {\n        name: 'radiusRef',\n        update: 'max(width/2, height/2)' // TODO: Important max or min functions are allowed\n      },\n      {\n        name: 'innerRadius',\n        update: 'outerRadius - outerRadius * 0.25'\n      },\n      {\n        name: 'targetValue',\n        value: value\n      },\n      {\n        name: 'backgroundColor',\n        value: backgroundColor\n          ? lighten(getEllipseColor(theme, backgroundColor), 0.6)\n          : lighten(theme.palette.secondary.main, 0.6)\n      },\n      {\n        name: 'ticksNumber',\n        value: ticksNumber\n      },\n      {\n        name: 'mainValue',\n        value: value\n      },\n      {\n        name: 'title',\n        value: title\n      },\n      {\n        name: 'unit',\n        value: unitLabel\n      },\n      {\n        name: 'usedValue',\n        update: 'min(max(minValue, mainValue), maxValue)'\n      },\n      {\n        name: 'minValue',\n        value: minValue\n      },\n      {\n        name: 'maxValue',\n        value: maxValue\n      },\n      {\n        name: 'fillColor',\n        value: fillColor\n          ? getEllipseColor(theme, fillColor)\n          : theme.palette.secondary.main\n      },\n      {\n        name: 'ticksColor',\n        value: theme.palette.text.primary\n      },\n      {\n        name: 'showTicks',\n        value: showTicks\n      },\n      {\n        name: 'fontFactor',\n        update: '(radiusRef/5)/25'\n      },\n      {\n        name: 'hasTarget',\n        update: 'isNumber(targetValue) === true'\n      },\n      {\n        name: 'targetRule',\n        update:\n          '(showTarget && hasTarget && (minValue <= targetValue) && (targetValue <= maxValue)) ? 1 : 0'\n      },\n      {\n        name: 'showTarget',\n        value: true\n      },\n      {\n        name: 'targetStatus',\n        update:\n          'mainValue === targetValue ? 0 : mainValue > targetValue ? lowIsGood ? -1 : 1 : lowIsGood ? 1 : -1'\n      },\n      {\n        name: 'lowIsGood',\n        value: false\n      },\n      {\n        name: 'legend',\n        value: legend\n      }\n    ],\n    scales: [\n      {\n        name: 'gaugeScale',\n        type: 'linear',\n        domain: { data: 'ticks', field: 'data_2' },\n        zero: false,\n        range: { signal: '[-PI/2, PI/2]' }\n      },\n      {\n        name: 'tickScale',\n        type: 'linear',\n        domain: { data: 'ticks', field: 'data' },\n        range: { signal: '[PI/2, -PI/2]' }\n      },\n      {\n        name: 'targetStatusColorScale',\n        domain: [-1, 0, 1],\n        range: ['red', 'orange', 'green']\n      }\n    ],\n    axes: [],\n    legends: [],\n    marks: [\n      {\n        type: 'arc',\n        name: 'gauge',\n        encode: {\n          enter: {\n            x: { signal: 'centerX' },\n            y: { signal: 'centerY' },\n            startAngle: { signal: '-PI/2' },\n            endAngle: { signal: 'PI/2' },\n            outerRadius: { signal: 'outerRadius' },\n            innerRadius: { signal: 'innerRadius' },\n            fill: { signal: 'backgroundColor' }\n          }\n        }\n      },\n      {\n        type: 'arc',\n        encode: {\n          enter: {\n            startAngle: { signal: '-PI/2' }\n          },\n          update: {\n            x: { signal: 'centerX' },\n            y: { signal: 'centerY' },\n            innerRadius: { signal: 'innerRadius' },\n            outerRadius: { signal: 'outerRadius' },\n            endAngle: { scale: 'gaugeScale', signal: 'usedValue' },\n            fill: { signal: 'fillColor' }\n          }\n        }\n      },\n      {\n        type: 'arc',\n        description: 'ticks on the arc',\n        from: { data: 'ticks' },\n        encode: {\n          enter: {\n            x: { signal: 'centerX' },\n            y: { signal: 'centerY' },\n            outerRadius: { signal: 'outerRadius' },\n            innerRadius: { signal: 'outerRadius - (radiusRef*0.05)' },\n            startAngle: {\n              scale: 'tickScale',\n              field: 'data'\n            },\n            endAngle: {\n              scale: 'tickScale',\n              field: 'data'\n            },\n            stroke: { signal: 'ticksColor' },\n            opacity: { signal: 'showTicks ? 1 : 0' }\n          }\n        }\n      },\n      {\n        type: 'text',\n        from: { data: 'ticks' },\n        encode: {\n          enter: {\n            align: { value: 'center' },\n            baseline: { value: 'alphabetic' }\n          },\n          update: {\n            text: { signal: \"format(datum.data_2, '.0f')\" },\n            x: { field: 'x' },\n            y: { field: 'y' },\n            fontSize: { signal: 'fontFactor* 11' },\n            fill: { signal: 'ticksColor' },\n            opacity: { signal: 'showTicks ? 1 : 0' }\n          }\n        }\n      },\n      {\n        type: 'text',\n        description:\n          'displayed min value at the bottom left of gauge when showTicks is false',\n        from: { data: 'gauge' },\n        encode: {\n          enter: {\n            align: { value: 'center' },\n            baseline: { value: 'top' }\n          },\n          update: {\n            text: { signal: 'minValue' },\n            x: {\n              signal: 'centerX - outerRadius + (outerRadius - innerRadius)/2'\n            },\n            y: { signal: 'centerY', offset: { signal: 'fontFactor*5' } },\n            fontSize: { signal: 'fontFactor * 11' },\n            opacity: { signal: 'showTicks ? 0 : 1' }\n          }\n        }\n      },\n      {\n        type: 'text',\n        description:\n          'displayed max value at the bottom right of gauge when showTicks is false',\n        from: { data: 'gauge' },\n        encode: {\n          enter: {\n            align: { value: 'center' },\n            baseline: { value: 'top' }\n          },\n          update: {\n            text: { signal: 'maxValue' },\n            x: {\n              signal: 'centerX + innerRadius + (outerRadius - innerRadius)/2'\n            },\n            y: { signal: 'centerY', offset: { signal: 'fontFactor*5' } },\n            fontSize: { signal: 'fontFactor * 11' },\n            opacity: { signal: 'showTicks ? 0 : 1' }\n          }\n        }\n      },\n      {\n        type: 'text',\n        description: 'displayed a title for the chart ',\n        name: 'titleLabel',\n        encode: {\n          enter: {\n            x: { signal: 'centerX' },\n            baseline: { value: 'top' },\n            align: { value: 'center' }\n          },\n          update: {\n            text: { signal: 'title' },\n            y: { signal: 'centerY', offset: { signal: 'fontFactor * -50' } },\n            fontSize: { signal: 'fontFactor * 14' },\n            fill: { signal: 'fillColor' }\n          }\n        }\n      },\n      {\n        type: 'text',\n        description: 'displayed main value at the bottom center of the gauge ',\n        name: 'gaugeValue',\n        encode: {\n          enter: {\n            x: { signal: 'centerX' },\n            baseline: { value: 'top' },\n            align: { value: 'center' }\n          },\n          update: {\n            text: { signal: \"format(mainValue, '.1f') + unit \" },\n            y: { signal: 'centerY', offset: { signal: 'fontFactor * -25' } },\n            fontSize: { signal: 'fontFactor * 20' }\n          }\n        }\n      },\n      {\n        type: 'text',\n        name: 'targetDiff',\n        description: 'add status with symbol and difference and percentage',\n        from: { data: 'gaugeValue' },\n        encode: {\n          enter: {\n            x: { signal: 'centerX' },\n            align: { value: 'center' },\n            baseline: { value: 'top' }\n          },\n          update: {\n            text: { signal: 'legend' },\n            y: { signal: 'centerY', offset: { signal: 'fontFactor * -4' } },\n            fontSize: { signal: 'fontFactor * 10' },\n            opacity: { signal: ' targetRule ? 1 : 0' }\n          }\n        }\n      }\n    ]\n  };\n\n  return <Vega spec={specs} actions={false} />;\n};\n"],"mappings":"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"}