{"version":3,"sources":["components/directives/form/d_curve_statistic.js"],"names":["angular","module","$filter","xCenterConfig","x","startX","initValue","scope","values","max","min","stepsX","step","delta","xaxis","yaxis","restrict","template","link","element","attrs","controller","window","$on","event","data","xAxis","yAxis","document","createElement","canvas","id","units","fineUnits","gridColorReg","gridColorFine","withFineGrid","radius","topBottomPixel","append","height","statistic_delta_percent","offsetX","offsetYGraph","getContext","offsetY","ya","undefined","xa","va","width","walk","shadowColor","o2","$color","strokeStyle","length","ctx","mozImageSmoothingEnabled","lineJoin","lineCap","shadowBlur","Value","i2","y","lineWidth","NaN","lastY","beginPath","o","i","first","moveTo","lineTo","stroke","abs","drawLines","pXValOneStep","Math","j","y2","Percent"],"mappings":"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","file":"d_curve_statistic.js","sourcesContent":["// -------------------------------------------//\r\n// Range Slider.\r\n// -------------------------------------------//\r\n\r\nangular.module('app.directives.curve_statistic', []).//\r\n\r\ndirective('curveStatistic', ['$filter','xCenterConfig',\r\n function ($filter,xCenterConfig) {\r\n var obj = {\r\n x: 0,\r\n startX: 0,\r\n initValue: 0,\r\n scope: {\r\n values: '=values',\r\n max: '=max',\r\n min: '=min',\r\n stepsX: '=stepsx',\r\n step: '=step',\r\n delta: '=delta',\r\n xaxis: '=xaxis',\r\n yaxis: '=yaxis'\r\n },\r\n restrict: 'AE',\r\n template: '',\r\n\r\n\r\n // -------------------------------------------//\r\n // Link Function\r\n // -------------------------------------------//\r\n link: function (scope, element, attrs, controller) {\r\n var isTouch = !!('ontouchstart' in window);\r\n //create canvas and context\r\n\r\n /*\tscope.$watch('values',function(newvalue){\r\n //console.log(scope.values);\r\n //scope.draw();\r\n },true)*/\r\n scope.$on('curve_update', function (event, data) {\r\n //console.log(data);\r\n scope.draw(data.xAxis, data.yAxis, data.values);\r\n });\r\n var canvas = document.createElement('canvas');\r\n canvas.id = 'curveCanvas';\r\n //canvas.id = options.canvasId;\r\n scope.units = 10;\r\n scope.fineUnits = 10;\r\n scope.gridColorReg = '#999999';\r\n scope.gridColorFine = '#333333';\r\n scope.withFineGrid = true;\r\n // Radius for Circles\r\n scope.radius = 5;\r\n\r\n\r\n canvas.width = 800;\r\n canvas.height = 480;\r\n scope.topBottomPixel = canvas.height * xCenterConfig.statistic_delta_percent;\r\n\r\n element.append(canvas);\r\n var ctx = canvas.getContext('2d');\r\n scope.offsetY = -5;\r\n scope.offsetX = 5;\r\n scope.offsetYGraph = 0;\r\n\r\n scope.draw = function (xa, ya, va) {\r\n if (xa != undefined) {\r\n scope.xaxis = xa;\r\n }\r\n if (ya != undefined) {\r\n\r\n scope.yaxis = ya;\r\n }\r\n if (va != undefined) {\r\n\r\n scope.values = va;\r\n }\r\n\r\n\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n ctx.moveTo(0, 0);\r\n\r\n scope.drawLines();\r\n // console.log('Values', scope.values);\r\n if (scope.values && scope.values.length > 0) {\r\n\r\n ctx.mozImageSmoothingEnabled = false;\r\n\r\n ctx.lineJoin = 'round';\r\n ctx.lineCap = 'round';\r\n ctx.shadowBlur = 1;\r\n\r\n\r\n scope.values.walk(function (o2, i2) {\r\n ctx.shadowColor = o2.$color;\r\n //console.log(o2);\r\n ctx.strokeStyle = o2.$color;\r\n o2 = $filter('orderBy')(o2, '+TimeStampUtc');\r\n var first;\r\n var lastY = 0;\r\n //console.log(o2.$color);\r\n //\r\n o2.walk(function (o, i) {\r\n //console.log(o.Value.Value);\r\n\r\n var x = o.Value.x + scope.offsetX;\r\n var y;\r\n if (o.Value.Value != 'NaN') {\r\n\r\n ctx.lineWidth = 2;\r\n\r\n y = (canvas.height - o.Value.y);\r\n\r\n if ((first === undefined && y != NaN) || lastY == false) {\r\n ctx.beginPath();\r\n ctx.moveTo(x, y);\r\n first = false;\r\n }\r\n\r\n\r\n ctx.lineTo(x, y);\r\n ctx.stroke();\r\n lastY = y;\r\n // console.log('---Draw');\r\n } else {\r\n if (o2[i - 1] !== undefined && o2[i - 1].Value.Value != 'NaN') {\r\n y = (canvas.height - o2[i - 1].Value.y);\r\n x = (o2[i - 1].Value.x + scope.offsetX);\r\n ctx.moveTo(x, y);\r\n } else {\r\n y = false;\r\n ctx.moveTo(x, 0);\r\n }\r\n // console.log('---DrawnoNan');\r\n lastY = y;\r\n\r\n }\r\n });\r\n });\r\n\r\n }\r\n //}\r\n\r\n\r\n };\r\n\r\n scope.drawLines = function () {\r\n ctx.shadowBlur = 0;\r\n ctx.mozImageSmoothingEnabled = false;\r\n //\r\n\r\n ctx.lineJoin = 'round';\r\n\r\n\r\n\r\n if (scope.yaxis) {\r\n //console.log(scope.yaxis);\r\n if(!scope.yaxis[0] || !scope.yaxis[1] || !scope.yaxis[1].y || !scope.yaxis[0].y){\r\n return;\r\n }\r\n var pXValOneStep = Math.abs(scope.yaxis[1].y - scope.yaxis[0].y);\r\n for (var i = 0; i < scope.yaxis.length; i++) {\r\n var y = (canvas.height - scope.yaxis[i].y );\r\n // console.log('painting to y' + y);\r\n ctx.beginPath();\r\n ctx.lineWidth = 0.5;\r\n ctx.strokeStyle = scope.gridColorReg;\r\n ctx.moveTo(0, y);\r\n ctx.lineTo(canvas.width, y);\r\n ctx.stroke();\r\n\r\n //if(i > 0){ m = i-1;}else{m = i + 1};\r\n\r\n if (scope.withFineGrid) {\r\n for (var j = 0; j < (scope.fineUnits - 1); j++) {\r\n ctx.beginPath();\r\n var y2 = ( y - ( ( (j + 1 ) / scope.fineUnits ) * pXValOneStep ) );\r\n ctx.lineWidth = 0.3;\r\n ctx.strokeStyle = scope.gridColorFine;\r\n ctx.moveTo(0, y2);\r\n ctx.lineTo(canvas.width, y2);\r\n ctx.stroke();\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n //Last Line at the bottom\r\n ctx.beginPath();\r\n ctx.strokeStyle = scope.gridColorReg;\r\n ctx.moveTo(0, canvas.height - 1);\r\n ctx.lineTo(canvas.width, canvas.height - 1);\r\n ctx.stroke();\r\n\r\n\r\n\r\n if (scope.xaxis) {\r\n for (var i = 0; i < scope.xaxis.length; i++) {\r\n ctx.beginPath();\r\n var x = (canvas.width - scope.offsetX ) * ( scope.xaxis[i].Percent / 100 );\r\n ctx.lineWidth = 0.3;\r\n ctx.strokeStyle = scope.gridColorReg;\r\n\r\n ctx.moveTo(x, 0);\r\n ctx.lineTo(x, canvas.height);\r\n ctx.stroke();\r\n }\r\n }\r\n\r\n };\r\n\r\n }\r\n\r\n };\r\n return obj;\r\n\r\n\r\n }]);\r\n"],"sourceRoot":"../../../../../app"}