forked from automeris-io/WebPlotDigitizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcombined-compiled.js
255 lines (255 loc) · 108 KB
/
combined-compiled.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
var wpd=wpd||{};wpd.initApp=function(){wpd.browserInfo.checkBrowser();wpd.layoutManager.initialLayout();wpd.loadRemoteData()||wpd.graphicsWidget.loadImageFromURL("start.png");document.getElementById("loadingCurtain").style.display="none"};
wpd.loadRemoteData=function(){return"undefined"===typeof wpdremote?!1:null!=wpdremote.status&&"fail"===wpdremote.status?(wpd.messagePopup.show("Remote Upload Failed!","Remote Upload Failed!"),!1):"success"===wpdremote.status&&null!=wpdremote.localUrl?(wpd.graphicsWidget.loadImageFromURL(wpdremote.localUrl),wpd.popup.show("axesList"),!0):!1};document.addEventListener("DOMContentLoaded",wpd.initApp,!0);wpd=wpd||{};
wpd.appData=function(){function c(){null==b&&(b=new wpd.PlotData);return b}var a=!1,b;return{isAligned:function(b){null!=b&&(a=b);return a},getPlotData:c,reset:function(){a=!1;b=null},plotLoaded:function(a){c().topColors=wpd.colorAnalyzer.getTopColors(a)}}}();wpd=wpd||{};
wpd.AutoDetector=function(){return function(){this.fgColor=[0,0,200];this.bgColor=[255,255,255];this.mask=null;this.gridMask={xmin:null,xmax:null,ymin:null,ymax:null,pixels:[]};this.gridLineColor=[255,255,255];this.gridColorDistance=10;this.gridData=null;this.colorDetectionMode="fg";this.colorDistance=120;this.imageData=this.gridBinaryData=this.binaryData=this.algorithm=null;this.imageHeight=this.imageWidth=0;this.gridBackgroundMode=!0;this.reset=function(){this.gridData=this.imageData=this.binaryData=
this.mask=null;this.gridMask={xmin:null,xmax:null,ymin:null,ymax:null,pixels:[]}};this.generateBinaryDataFromMask=function(){var c,a,b,d="fg"===this.colorDetectionMode?this.fgColor:this.bgColor;for(c=0;c<this.mask.length;c++)a=this.mask[c],b=Math.sqrt((this.imageData.data[4*a]-d[0])*(this.imageData.data[4*a]-d[0])+(this.imageData.data[4*a+1]-d[1])*(this.imageData.data[4*a+1]-d[1])+(this.imageData.data[4*a+2]-d[2])*(this.imageData.data[4*a+2]-d[2])),"fg"===this.colorDetectionMode?b<=this.colorDistance&&
(this.binaryData[a]=!0):b>=this.colorDistance&&(this.binaryData[a]=!0)};this.generateBinaryDataUsingFullImage=function(){var c,a,b="fg"===this.colorDetectionMode?this.fgColor:this.bgColor;for(a=0;a<this.imageData.data.length/4;a++)c=Math.sqrt((this.imageData.data[4*a]-b[0])*(this.imageData.data[4*a]-b[0])+(this.imageData.data[4*a+1]-b[1])*(this.imageData.data[4*a+1]-b[1])+(this.imageData.data[4*a+2]-b[2])*(this.imageData.data[4*a+2]-b[2])),"fg"===this.colorDetectionMode?c<=this.colorDistance&&(this.binaryData[a]=
!0):c>=this.colorDistance&&(this.binaryData[a]=!0)};this.generateBinaryData=function(){this.binaryData=[];null==this.imageData?this.imageWidth=this.imageHeight=0:(this.imageHeight=this.imageData.height,this.imageWidth=this.imageData.width,null==this.mask||0===this.mask.length?this.generateBinaryDataUsingFullImage():this.generateBinaryDataFromMask())};this.generateGridBinaryData=function(){this.gridBinaryData=[];if(null==this.imageData)this.imageHeight=this.imageWidth=0;else{this.imageWidth=this.imageData.width;
this.imageHeight=this.imageData.height;var c,a,b,d,e;if(null==this.gridMask.pixels||0===this.gridMask.pixels.length){e=0;this.gridMask.pixels=[];for(a=0;a<this.imageHeight;a++)for(c=0;c<this.imageWidth;c++)d=a*this.imageWidth+c,b=wpd.dist3d(this.gridLineColor[0],this.gridLineColor[1],this.gridLineColor[2],this.imageData.data[4*d],this.imageData.data[4*d+1],this.imageData.data[4*d+2]),this.gridBackgroundMode?b>this.gridColorDistance&&(this.gridBinaryData[d]=!0,this.gridMask.pixels[e]=d,e++):b<this.gridColorDistance&&
(this.gridBinaryData[d]=!0,this.gridMask.pixels[e]=d,e++);this.gridMask.xmin=0;this.gridMask.xmax=this.imageWidth;this.gridMask.ymin=0;this.gridMask.ymax=this.imageHeight}else for(e=0;e<this.gridMask.pixels.length;e++)d=this.gridMask.pixels[e],b=wpd.dist3d(this.gridLineColor[0],this.gridLineColor[1],this.gridLineColor[2],this.imageData.data[4*d],this.imageData.data[4*d+1],this.imageData.data[4*d+2]),this.gridBackgroundMode?b>this.gridColorDistance&&(this.gridBinaryData[d]=!0):b<this.gridColorDistance&&
(this.gridBinaryData[d]=!0)}}}}();wpd=wpd||{};
wpd.Calibration=function(){return function(c){var a=[],b=[],d=null==c?2:c,e=[],f=[];this.labels=[];this.getCount=function(){return a.length};this.getDimensions=function(){return d};this.addPoint=function(f,c,k,m,l){var n=a.length,p=e.length;a[n]=f;b[n]=c;e[p]=k;e[p+1]=m;3===d&&(e[p+2]=l)};this.getPoint=function(f){return 0>f||f>=a.length?null:{px:a[f],py:b[f],dx:e[d*f],dy:e[d*f+1],dz:2===d?null:e[d*f+2]}};this.changePointPx=function(f,d,e){0>f||f>=a.length||(a[f]=d,b[f]=e)};this.setDataAt=function(b,
f,c,m){0>b||b>=a.length||(e[d*b]=f,e[d*b+1]=c,3===d&&(e[d*b+2]=m))};this.findNearestPoint=function(f,d,e){e=null==e?50:parseFloat(e);var c,l=-1,n,p;for(n=0;n<a.length;n++)if(p=Math.sqrt((f-a[n])*(f-a[n])+(d-b[n])*(d-b[n])),0>l&&p<=e||0<=l&&p<c)l=n,c=p;return l};this.selectPoint=function(a){0>f.indexOf(a)&&(f[f.length]=a)};this.selectNearestPoint=function(a,b,f){a=this.findNearestPoint(a,b,f);0<=a&&this.selectPoint(a)};this.getSelectedPoints=function(){return f};this.unselectAll=function(){f=[]};this.isPointSelected=
function(a){return 0<=f.indexOf(a)};this.dump=function(){console.log(a);console.log(b);console.log(e)}}}();wpd=wpd||{};wpd.ColorGroup=function(){return function(c){var a=0,b={r:0,g:0,b:0};c=null==c?100:c;this.getPixelCount=function(){return a};this.getAverageColor=function(){return b};this.isColorInGroup=function(d,e,f){return 0===a?!0:(b.r-d)*(b.r-d)+(b.g-e)*(b.g-e)+(b.b-f)*(b.b-f)<=c*c};this.addPixel=function(d,e,f){b.r=(b.r*a+d)/(a+1);b.g=(b.g*a+e)/(a+1);b.b=(b.b*a+f)/(a+1);a+=1}}}();
wpd.colorAnalyzer=function(){return{getTopColors:function(c){var a=[],b,d,e,f,h,g,k=[];a[0]=new wpd.ColorGroup(120);for(b=0;b<c.data.length;b+=4){d=c.data[b];e=c.data[b+1];f=c.data[b+2];g=!1;for(h=0;h<a.length;h++)if(a[h].isColorInGroup(d,e,f)){a[h].addPixel(d,e,f);g=!0;break}g||(a[a.length]=new wpd.ColorGroup(120),a[a.length-1].addPixel(d,e,f))}a.sort(function(a,b){return a.getPixelCount()>b.getPixelCount()?-1:a.getPixelCount()<b.getPixelCount()?1:0});for(h=0;h<a.length;h++)b=a[h].getAverageColor(),
k[h]={r:parseInt(b.r,10),g:parseInt(b.g,10),b:parseInt(b.b,10),pixels:a[h].getPixelCount(),percentage:100*a[h].getPixelCount()/(.25*c.data.length)};return k}}}();wpd=wpd||{};
wpd.ConnectedPoints=function(){return function(c){var a=[],b=-1,d=-1;this.addConnection=function(b){a[a.length]=b};this.clearAll=function(){a=[]};this.getConnectionAt=function(b){if(b<a.length)return a[b]};this.replaceConnectionAt=function(b,f){b<a.length&&(a[b]=f)};this.deleteConnectionAt=function(b){b<a.length&&a.splice(b,1)};this.connectionCount=function(){return a.length};this.getDistance=function(b){if(b<a.length&&2===c)return Math.sqrt((a[b][0]-a[b][2])*(a[b][0]-a[b][2])+(a[b][1]-a[b][3])*(a[b][1]-
a[b][3]))};this.getAngle=function(b){if(b<a.length&&3===c){var f=wpd.taninverse(-(a[b][5]-a[b][3]),a[b][4]-a[b][2]);b=wpd.taninverse(-(a[b][1]-a[b][3]),a[b][0]-a[b][2]);f=180*(f-b)/Math.PI;return f=0>f?f+360:f}};this.getOpenSpline=function(b){return null};this.getClosedSpline=function(b){return null};this.openPathLength=function(b){return 0};this.closedPathLength=function(b){return 0};this.closedPathArea=function(b){return 0};this.findNearestPointAndConnection=function(b,f){var d=-1,g=-1,k,m,l,n;
for(l=0;l<a.length;l++)for(n=0;n<2*c;n+=2)if(m=(a[l][n]-b)*(a[l][n]-b)+(a[l][n+1]-f)*(a[l][n+1]-f),-1===g||m<k)d=l,g=n/2,k=m;return{connectionIndex:d,pointIndex:g}};this.selectNearestPoint=function(a,f){var c=this.findNearestPointAndConnection(a,f);0<=c.connectionIndex&&(b=c.connectionIndex,d=c.pointIndex)};this.deleteNearestConnection=function(b,a){var d=this.findNearestPointAndConnection(b,a);0<=d.connectionIndex&&this.deleteConnectionAt(d.connectionIndex)};this.isPointSelected=function(a,f){return d===
f&&b===a?!0:!1};this.getSelectedConnectionAndPoint=function(){return{connectionIndex:b,pointIndex:d}};this.unselectConnectionAndPoint=function(){d=b=-1};this.setPointAt=function(b,f,d,c){a[b][2*f]=d;a[b][2*f+1]=c};this.getPointAt=function(b,d){return{x:a[b][2*d],y:a[b][2*d+1]}}}}();wpd=wpd||{};
wpd.DataSeries=function(){return function(c){var a=[],b=[],d=!1,e=[];this.name="Default Dataset";this.variableNames=["x","y"];this.hasMetadata=function(){return d};this.setMetadataKeys=function(b){e=b};this.getMetadataKeys=function(){return e};this.addPixel=function(b,c,e){a[a.length]={x:b,y:c,metadata:e};null!=e&&(d=!0)};this.getPixel=function(b){return a[b]};this.setPixelAt=function(b,d,c){b<a.length&&(a[b].x=d,a[b].y=c)};this.setMetadataAt=function(b,d){b<a.length&&(a[b].metadata=d)};this.insertPixel=
function(b,d,c,e){a.splice(b,0,{x:d,y:c,metadata:e})};this.removePixelAtIndex=function(b){b<a.length&&a.splice(b,1)};this.removeLastPixel=function(){this.removePixelAtIndex(a.length-1)};this.findNearestPixel=function(b,d,c){c=null==c?50:parseFloat(c);var e,m=-1,l,n;for(l=0;l<a.length;l++)if(n=Math.sqrt((b-a[l].x)*(b-a[l].x)+(d-a[l].y)*(d-a[l].y)),0>m&&n<=c||0<=m&&n<e)m=l,e=n;return m};this.removeNearestPixel=function(b,a,d){b=this.findNearestPixel(b,a,d);0<=b&&this.removePixelAtIndex(b)};this.clearAll=
function(){a=[];d=!1;e=[]};this.getCount=function(){return a.length};this.selectPixel=function(a){0<=b.indexOf(a)||(b[b.length]=a)};this.unselectAll=function(){b=[]};this.selectNearestPixel=function(b,a,d){b=this.findNearestPixel(b,a,d);0<=b&&this.selectPixel(b);return b};this.selectNextPixel=function(){for(var d=0;d<b.length;d++)b[d]=(b[d]+1)%a.length};this.selectPreviousPixel=function(){var d,c;for(d=0;d<b.length;d++)c=b[d],c=0===c?a.length-1:c-1,b[d]=c};this.getSelectedPixels=function(){return b}}}();
wpd=wpd||{};
wpd.dateConverter=function(){function c(b){b=b.toString();var a=b.split("/"),c;if(0>=a.length||3<a.length)return null;b=parseInt(a[0],10);c=parseInt(void 0===a[1]?0:a[1],10);date=parseInt(void 0===a[2]?1:a[2],10);if(isNaN(b)||isNaN(c)||isNaN(date)||12<c||1>c||31<date||1>date)return null;a=new Date;a.setUTCFullYear(b);a.setUTCMonth(c-1);a.setUTCDate(date);b=parseFloat(Date.parse(a));return isNaN(b)?null:b}function a(b,a){var c;c=a.replace("YYYY","yyyy");c=c.replace("YY","yy");c=c.replace("MMMM","mmmm");
c=c.replace("MMM","mmm");c=c.replace("MM","mm");c=c.replace("DD","dd");c=c.replace("yyyy",b.getUTCFullYear());var f=b.getUTCFullYear()%100;c=c.replace("yy",10>f?"0"+f:f);c=c.replace("mmmm","January February March April May June July August September October November December".split(" ")[b.getUTCMonth()]);c=c.replace("mmm","Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" ")[b.getUTCMonth()]);c=c.replace("mm",b.getUTCMonth()+1);return c=c.replace("dd",b.getUTCDate())}return{parse:function(b){return null==
b||"string"===typeof b&&0>b.indexOf("/")?null:c(b)},getFormatString:function(b){b=b.split("/");var a="yyyy/mm/dd";1<=b.length&&(a="yyyy");2<=b.length&&(a+="/mm");3===b.length&&(a+="/dd");return a},formatDate:a,formatDateNumber:function(b,c){var e;e=parseFloat(b);e=parseInt(864E5*Math.round(e/864E5),10);return a(new Date(e),c)}}}();wpd=wpd||{};
wpd.gridDetectionCore=function(){var c,a,b=.1,d=.1;return{run:function(){var e=[],f,h,g=wpd.appData.getPlotData().getAutoDetector(),k=g.gridMask.xmin,m=g.gridMask.xmax,l=g.gridMask.ymin,n=g.gridMask.ymax,p=g.imageWidth,q;if(a)for(f=k;f<=m;f++){q=0;for(h=l;h<n;h++)!0===g.gridBinaryData[h*p+f]&&q++;if(q>d*(n-l))for(h=l;h<n;h++)e[h*p+f]=!0}if(c)for(h=l;h<=n;h++){q=0;for(f=k;f<=m;f++)!0===g.gridBinaryData[h*p+f]&&q++;if(q>b*(m-k))for(f=k;f<=m;f++)e[h*p+f]=!0}wpd.appData.getPlotData().gridData=e},setHorizontalParameters:function(b,
a){c=b;d=Math.abs(parseFloat(a)/100)},setVerticalParameters:function(c,d){a=c;b=Math.abs(parseFloat(d)/100)}}}();wpd=wpd||{};
wpd.InputParser=function(){return function(){this.parse=function(c){this.isDate=this.isValid=!1;this.formatting=null;if(null==c||"string"===typeof c&&(c=c.trim(),0<=c.indexOf("^")))return null;var a=wpd.dateConverter.parse(c);if(null!=a)return this.isDate=this.isValid=!0,this.formatting=wpd.dateConverter.getFormatString(c),a;c=parseFloat(c);return isNaN(c)?null:(this.isValid=!0,c)};this.isDate=this.isValid=!1;this.formatting=null}}();wpd=wpd||{};
wpd.taninverse=function(c,a){var b;0<c?b=Math.atan2(c,a):0>=c&&(b=Math.atan2(c,a)+2*Math.PI);b>=2*Math.PI&&(b=0);return b};wpd.sqDist2d=function(c,a,b,d){return(c-b)*(c-b)+(a-d)*(a-d)};wpd.sqDist3d=function(c,a,b,d,e,f){return(c-d)*(c-d)+(a-e)*(a-e)+(b-f)*(b-f)};wpd.dist2d=function(c,a,b,d){return Math.sqrt(wpd.sqDist2d(c,a,b,d))};wpd.dist3d=function(c,a,b,d,e,f){return Math.sqrt(wpd.sqDist3d(c,a,b,d,e,f))};
wpd.mat=function(){function c(a){return a[0]*a[3]-a[1]*a[2]}return{det2x2:c,inv2x2:function(a){var b=c(a);return[a[3]/b,-a[1]/b,-a[2]/b,a[0]/b]},mult2x2:function(a,b){return[a[0]*b[0]+a[1]*b[2],a[0]*b[1]+a[1]*b[3],a[2]*b[0]+a[3]*b[2],a[2]*b[1]+a[3]*b[3]]},mult2x2Vec:function(a,b){return[a[0]*b[0]+a[1]*b[1],a[2]*b[0]+a[3]*b[1]]},multVec2x2:function(a,b){return[b[0]*a[0]+b[2]*a[1],b[1]*a[0]+b[3]*a[1]]}}}();
wpd.cspline=function(c,a){var b=c.length,d={x:c,y:a,len:b,d:[]},e=[],f=[],h;if(3>b)return null;f[0]=2;e[0]=3*(a[1]-a[0]);for(h=1;h<b-1;++h)f[h]=4-1/f[h-1],e[h]=3*(a[h+1]-a[h-1])-e[h-1]/f[h-1];f[b-1]=2-1/f[b-2];e[b-1]=3*(a[b-1]-a[b-2])-e[b-2]/f[b-1];h=b-1;for(d.d[h]=e[h]/f[h];0<h;)--h,d.d[h]=(e[h]-d.d[h+1])/f[h];return d};
wpd.cspline_interp=function(c,a){var b=0,d;if(a>=c.x[c.len-1]||a<c.x[0])return null;for(;a>c.x[b];)b++;b=0<b?b-1:0;d=(a-c.x[b])/(c.x[b+1]-c.x[b]);return c.y[b]+c.d[b]*d+(3*(c.y[b+1]-c.y[b])-2*c.d[b]-c.d[b+1])*d*d+(2*(c.y[b]-c.y[b+1])+c.d[b]+c.d[b+1])*d*d*d};wpd=wpd||{};
wpd.PlotData=function(){return function(){var c=0,a=new wpd.AutoDetector;this.axes=this.topColors=null;this.dataSeriesColl=[];this.backupImageData=this.closedPathMeasurementData=this.openPathMeasurementData=this.distanceMeasurementData=this.angleMeasurementData=this.calibration=this.gridData=null;this.getActiveDataSeries=function(){null==this.dataSeriesColl[c]&&(this.dataSeriesColl[c]=new wpd.DataSeries);return this.dataSeriesColl[c]};this.getDataSeriesCount=function(){return this.dataSeriesColl.length};
this.setActiveDataSeriesIndex=function(b){c=b};this.getActiveDataSeriesIndex=function(){return c};this.getAutoDetector=function(){return a};this.getDataSeriesNames=function(){for(var b=[],a=0;a<this.dataSeriesColl.length;a++)b[a]=this.dataSeriesColl[a].name;return b};this.reset=function(){this.closedPathMeasurementData=this.openPathMeasurementData=this.distanceMeasurementData=this.angleMeasurementData=this.axes=null;this.dataSeriesColl=[];this.backupImageData=this.calibration=this.gridData=null;c=
0;a=new wpd.AutoDetector}}}();wpd=wpd||{};
wpd.AveragingWindowCore=function(){return function(c,a,b,d,e,f){this.run=function(){var h=[],g=0,k=[],m,l,n,p,q,t,r,u,v;f.clearAll();for(m=0;m<b;m++){q=-1;n=-2*e;for(l=p=0;l<a;l++)!0===c[l*b+m]&&(l>n+e?(q+=1,p=1,n=k[q]=l):(p+=1,k[q]=parseFloat((k[q]*(p-1)+l)/parseFloat(p))));if(0<=q)for(n=m,l=0;l<=q;l++)p=k[l],h[g]=[],h[g][0]=parseFloat(n),h[g][1]=parseFloat(p),h[g][2]=!0,g+=1}if(0!==g){for(k=0;k<g;k++)if(!0===h[k][2]){m=!0;q=k+1;l=h[k][0];n=h[k][1];p=l;t=n;for(v=1;!0===m&&q<g;)r=h[q][0],u=h[q][1],
Math.abs(r-l)<=d&&Math.abs(u-n)<=e&&!0===h[q][2]&&(p=(p*v+r)/(v+1),t=(t*v+u)/(v+1),v+=1,h[q][2]=!1),r>l+2*d&&(m=!1),q+=1;h[k][2]=!1;f.addPixel(parseFloat(p),parseFloat(t))}return f}}}}();wpd=wpd||{};
wpd.AveragingWindowAlgo=function(){return function(){var c=5,a=5;this.getParamList=function(){return[["\u0394X","Px",10],["\u0394Y","Px",10]]};this.setParam=function(b,d){0===b?c=d:1===b&&(a=d)};this.run=function(b){var d=b.getAutoDetector();b=b.getActiveDataSeries();(new wpd.AveragingWindowCore(d.binaryData,d.imageHeight,d.imageWidth,c,a,b)).run()}}}();wpd=wpd||{};
wpd.AveragingWindowWithStepSizeAlgo=function(){return function(){var c,a,b,d,e,f;this.getParamList=function(){var b=wpd.appData.isAligned(),a=wpd.appData.getPlotData().axes;return b&&a instanceof wpd.XYAxes?(b=a.getBounds(),[["X_min","Units",b.x1],["\u0394X Step","Units",.1],["X_max","Units",b.x2],["Y_min","Units",b.y3],["Y_max","Units",b.y4],["Line width","Px",30]]):[["X_min","Units",0],["\u0394X Step","Units",.1],["X_max","Units",0],["Y_min","Units",0],["Y_max","Units",0],["Line width","Px",30]]};
this.setParam=function(h,g){0===h?c=g:1===h?a=g:2===h?b=g:3===h?e=g:4===h?f=g:5===h&&(d=g)};this.run=function(h){var g=h.getAutoDetector(),k=h.getActiveDataSeries();h=h.axes;var m=g.imageWidth,l=g.imageHeight,n,p,q,t,r,u,v,w,x;k.clearAll();for(n=c;n<=b;n+=a)for(x=h.dataToPixel(n,e),p=x.x,t=x.y,x=h.dataToPixel(n,f),q=x.x,r=x.y,p=Math.sqrt((r-t)*(r-t)+(q-p)*(q-p)),q=(f-e)/p,t=!1,u=r=0,v=!1,w=0;w<=p;w++)x=1*-w*q+f,x=h.dataToPixel(n,x),xi_pix=x.x,yi_pix=x.y,0<=xi_pix&&xi_pix<m&&0<=yi_pix&&yi_pix<l&&(!0===
g.binaryData[parseInt(yi_pix,10)*m+parseInt(xi_pix,10)]?(!1===t&&(u=r=w,t=!0,v=!1),!0===v&&(u=w,v=!1)):!1===v&&(u=w,v=!0),!0===t&&(w>r+d||w==p-1)&&(t=!1,r>u&&(u=w),x=(r+u)/2,x=1*-x*q+f,x=h.dataToPixel(n,x),k.addPixel(parseFloat(x.x),parseFloat(x.y))))}}}();wpd=wpd||{};
wpd.BarValue=function(){this.avgX=this.avgVal=this.npoints=0;this.append=function(c,a){this.avgX=(this.npoints*this.avgX+c)/(this.npoints+1);this.avgVal=(this.npoints*this.avgVal+a)/(this.npoints+1);this.npoints++};this.isPointInGroup=function(c,a,b,d){return 0===this.npoints||Math.abs(this.avgX-c)<=b&&Math.abs(this.avgVal-a)<=d?!0:!1}};
wpd.BarExtractionAlgo=function(){var c,a;this.getParamList=function(){return"Y"===wpd.appData.getPlotData().axes.getOrientation().axes?[["\u0394X","Px",30],["\u0394Val","Px",10]]:[["\u0394Y","Px",30],["\u0394Val","Px",10]]};this.setParam=function(b,d){0===b?c=parseFloat(d):1===b&&(a=parseFloat(d))};this.run=function(b){var d=b.getAutoDetector(),e=b.getActiveDataSeries(),f=b.axes.getOrientation(),h=[],g,k,m=d.imageWidth,l=d.imageHeight,n,p,q,t,r=function(b,f,e){if(d.binaryData[f*m+b]){n=!1;p=0;t=[b,
f];for(p=0;p<h.length;p++)if(q=h[p],"Y"===e){if(q.isPointInGroup(t[0],t[1],c,a)){q.append(t[0],t[1]);n=!0;break}}else if(q.isPointInGroup(t[1],t[0],c,a)){q.append(t[1],t[0]);n=!0;break}n||(h.push(new wpd.BarValue),"Y"===e?h[h.length-1].append(t[0],t[1]):h[h.length-1].append(t[1],t[0]),n=!0);return!0}return!1};e.clearAll();if("Y"===f.axes)for(g=0;g<m;g++)if("increasing"===f.direction)for(k=0;k<l&&!r(g,k,f.axes);k++);else for(k=l-1;0<=k&&!r(g,k,f.axes);k--);else for(k=0;k<l;k++)if("increasing"===f.direction)for(g=
m-1;0<=g&&!r(g,k,f.axes);g--);else for(g=0;g<m&&!r(g,k,f.axes);g++);b.axes.dataPointsHaveLabels&&(g=e.getMetadataKeys(),null!=g&&"Label"===g[0]||e.setMetadataKeys(["Label"]));for(p=0;p<h.length;p++)q=h[p],b.axes.dataPointsHaveLabels?"Y"===f.axes?e.addPixel(q.avgX,q.avgVal,["Bar"+p]):e.addPixel(q.avgVal,q.avgX,["Bar"+p]):"Y"===f.axes?e.addPixel(q.avgX,q.avgVal):e.addPixel(q.avgVal,q.avgX)}};wpd=wpd||{};
wpd.BlobDetectorAlgo=function(){return function(){var c,a;this.getParamList=function(){var b=wpd.appData.isAligned(),a=wpd.appData.getPlotData().axes;return b&&a instanceof wpd.MapAxes?[["Min Diameter","Units",0],["Max Diameter","Units",5E3]]:[["Min Diameter","Px",0],["Max Diameter","Px",5E3]]};this.setParam=function(b,d){0===b?c=parseFloat(d):1===b&&(a=parseFloat(d))};this.run=function(b){var d=b.getAutoDetector(),e=b.getActiveDataSeries(),f=d.imageWidth,h=d.imageHeight,g=[],k=[],m,l,n,p,q,t,r,u,
v;if(!(0>=f||0>=h||null==d.binaryData||0===d.binaryData.length)){e.clearAll();e.setMetadataKeys(["area","moment"]);for(m=0;m<f;m++)for(l=0;l<h;l++)if(!0===d.binaryData[l*f+m]&&!0!==g[l*f+m])for(g[l*f+m]=!0,p=k.length,k[p]={pixels:[{x:m,y:l}],centroid:{x:m,y:l},area:1,moment:0},n=0;n<k[p].pixels.length;){r=k[p].pixels[n].x;u=k[p].pixels[n].y;for(q=r-1;q<=r+1;q++)for(t=u-1;t<=u+1;t++)0<=q&&0<=t&&q<f&&t<h&&!0!==g[t*f+q]&&!0===d.binaryData[t*f+q]&&(g[t*f+q]=!0,v=k[p].pixels.length,k[p].pixels[v]={x:q,
y:t},k[p].centroid.x=(k[p].centroid.x*v+q)/(v+1),k[p].centroid.y=(k[p].centroid.y*v+t)/(v+1),k[p].area+=1);n+=1}for(p=0;p<k.length;p++){for(n=k[p].moment=0;n<k[p].pixels.length;n++)k[p].moment=k[p].moment+(k[p].pixels[n].x-k[p].centroid.x)*(k[p].pixels[n].x-k[p].centroid.x)+(k[p].pixels[n].y-k[p].centroid.y)*(k[p].pixels[n].y-k[p].centroid.y);b.axes instanceof wpd.MapAxes&&(k[p].area=b.axes.pixelToDataArea(k[p].area));d=2*Math.sqrt(k[p].area/Math.PI);d<=a&&d>=c&&e.addPixel(k[p].centroid.x,k[p].centroid.y,
[k[p].area,k[p].moment])}}}}}();wpd=wpd||{};
wpd.XStepWithInterpolationAlgo=function(){return function(){var c,a,b,d,e,f;this.getParamList=function(){var b=wpd.appData.isAligned(),a=wpd.appData.getPlotData().axes;return b&&a instanceof wpd.XYAxes?(b=a.getBounds(),[["X_min","Units",b.x1],["\u0394X Step","Units",(b.x2-b.x1)/50],["X_max","Units",b.x2],["Y_min","Units",b.y3],["Y_max","Units",b.y4],["Smoothing","% of \u0394X",0]]):[["X_min","Units",0],["\u0394X Step","Units",.1],["X_max","Units",0],["Y_min","Units",0],["Y_max","Units",0],["Smoothing",
"% of \u0394X",0]]};this.setParam=function(h,g){0===h?c=g:1===h?a=g:2===h?b=g:3===h?e=g:4===h?f=g:5===h&&(d=g)};this.run=function(h){var g=h.getAutoDetector(),k=h.getActiveDataSeries();h=h.axes;var m=0,l=g.imageWidth,n=g.imageHeight,p,q,t,r,u,v,w=[],x=[];v=[];var z=[],A=Math.abs(d/100*a);k.clearAll();p=h.dataToPixel(c,e);q=h.dataToPixel(c,f);q=Math.sqrt((p.x-q.x)*(p.x-q.x)+(p.y-q.y)*(p.y-q.y));z=(f-e)/q;q=h.dataToPixel(b,e);p=Math.sqrt((p.x-q.x)*(p.x-q.x)+(p.y-q.y)*(p.y-q.y));q=(b-c)/p;0<Math.abs(A/
q)&&1>Math.abs(A/q)&&(A=q);for(p=c;0<q&&p<=b||0>q&&p>=b;){u=r=0;for(t=e;0<z&&t<=f||0>z&&t>=f;)v=h.dataToPixel(p,t),0<v.x&&0<v.y&&v.x<l&&v.y<n&&!0===g.binaryData[parseInt(v.y,10)*l+parseInt(v.x,10)]&&(r=(r*u+t)/parseFloat(u+1),u++),t+=z;0<u&&(w[m]=parseFloat(p),x[m]=parseFloat(r),m+=1);p+=q}if(!(0>=w.length||0>=x.length)){if(0<A)for(v=[],z=[],p=w[0];0<q&&p<=w[w.length-1]||0>q&&p>=w[w.length-1];){for(g=u=l=m=0;g<w.length;g++)w[g]<=p+A&&w[g]>=p-A&&(m=(m*u+w[g])/parseFloat(u+1),l=(l*u+x[g])/parseFloat(u+
1),u++);0<u&&(v[v.length]=m,z[z.length]=l);p=0<q?p+A:p-A}else v=w,z=x;if(!(0>=v.length||0>=z.length||(w=[],g=0,p=c,0>q&&0<a||0<q&&0>a))){for(;0<q&&p<=b||0>q&&p>=b;)w[g]=p,g++,p+=a;0>q&&(v=v.reverse(),z=z.reverse());A=wpd.cspline(v,z);if(null!=A)for(x=[],g=0;g<w.length;++g)isNaN(w[g])||(x[g]=wpd.cspline_interp(A,w[g]),null!==x[g]&&(v=h.dataToPixel(w[g],x[g]),k.addPixel(v.x,v.y)))}}}}}();wpd=wpd||{};
wpd.BarAxes=function(){var c=function(){var a=!1,b=!1,c,e,f,h,g,k,m;this.isCalibrated=function(){return a};this.calibrate=function(l,n){a=!1;var p=l.getPoint(0),q=l.getPoint(1);c=p.px;e=p.py;f=q.px;h=q.py;g=parseFloat(p.dy);k=parseFloat(q.dy);n?(b=!0,g=Math.log(g)/Math.log(10),k=Math.log(k)/Math.log(10)):b=!1;m=this.calculateOrientation();return a=!0};this.pixelToData=function(a,n){var m=[];m[0]=((n-e)*(h-e)+(f-c)*(a-c))/((h-e)*(h-e)+(f-c)*(f-c))*(k-g)+g;b&&(m[0]=Math.pow(10,m[0]));return m};this.dataToPixel=
function(b,a){return{x:0,y:0}};this.pixelToLiveString=function(b,a){return this.pixelToData(b,a)[0].toExponential(4)};this.isLog=function(){return b};this.getTransformationEquations=function(){return{pixelToData:["This will be available in a future release."]}};this.dataPointsHaveLabels=!0;this.dataPointsLabelPrefix="Bar";this.calculateOrientation=function(){var b=180*wpd.taninverse(-(h-e),f-c)/Math.PI,a={axes:"Y",direction:"increasing",angle:b};30>Math.abs(b-90)?(a.axes="Y",a.direction="increasing"):
30>Math.abs(b-270)?(a.axes="Y",a.direction="decreasing"):30>Math.abs(b-0)||30>Math.abs(b-360)?(a.axes="X",a.direction="increasing"):30>Math.abs(b-180)&&(a.axes="X",a.direction="decreasing");return a};this.getOrientation=function(){return m}};c.prototype.numCalibrationPointsRequired=function(){return 2};c.prototype.getDimensions=function(){return 2};c.prototype.getAxesLabels=function(){return["Label","Y"]};return c}();wpd=wpd||{};
wpd.ImageAxes=function(){var c=function(){this.isCalibrated=function(){return!0};this.calibrate=function(){return!0};this.pixelToData=function(a,b){return[a,b]};this.dataToPixel=function(a,b){return{x:a,y:b}};this.pixelToLiveString=function(a,b){var c=this.pixelToData(a,b);return c[0].toFixed(2)+", "+c[1].toFixed(2)};this.getTransformationEquations=function(){return{pixelToData:["x_data = x_pixel","y_data = y_pixel"],dataToPixel:["x_pixel = x_data","y_pixel = y_data"]}}};c.prototype.numCalibrationPointsRequired=
function(){return 0};c.prototype.getDimensions=function(){return 2};c.prototype.getAxesLabels=function(){return["X","Y"]};return c}();wpd=wpd||{};
wpd.MapAxes=function(){var c=function(){var a=!1,b,c,e;this.isCalibrated=function(){return a};this.calibrate=function(f,h,g){var k=f.getPoint(0);f=f.getPoint(1);e=Math.sqrt((k.px-f.px)*(k.px-f.px)+(k.py-f.py)*(k.py-f.py));b=parseFloat(h);c=g;return a=!0};this.pixelToData=function(a,c){var d=[];d[0]=a*b/e;d[1]=c*b/e;return d};this.pixelToDataDistance=function(a){return a*b/e};this.pixelToDataArea=function(a){return a*b*b/(e*e)};this.dataToPixel=function(b,a,c){return{x:0,y:0}};this.pixelToLiveString=
function(b,a){var c=this.pixelToData(b,a);return c[0].toExponential(4)+", "+c[1].toExponential(4)};this.getScaleLength=function(){return b};this.getUnits=function(){return c};this.getTransformationEquations=function(){return{pixelToData:["x_data = "+b/e+"*x_pixel","y_data = "+b/e+"*y_pixel"],dataToPixel:["x_pixel = "+e/b+"*x_data","y_pixel = "+e/b+"*y_data"]}}};c.prototype.numCalibrationPointsRequired=function(){return 2};c.prototype.getDimensions=function(){return 2};c.prototype.getAxesLabels=function(){return["X",
"Y"]};return c}();wpd=wpd||{};
wpd.PolarAxes=function(){var c=function(){var a=!1,b=!1,c=!1,e=!1,f,h,g,k,m,l,n,p,q,t,r,u,v,w;processCalibration=function(a,z,A,B){var G=a.getPoint(0),M=a.getPoint(1);a=a.getPoint(2);f=G.px;h=G.py;g=M.px;k=M.py;m=a.px;l=a.py;n=M.dx;p=M.dy;q=a.dx;b=z;c=A;!0===b&&(p*=Math.PI/180);B&&(e=!0,n=Math.log(n)/Math.log(10),q=Math.log(q)/Math.log(10));t=Math.sqrt((g-f)*(g-f)+(k-h)*(k-h));r=Math.sqrt((m-f)*(m-f)+(l-h)*(l-h));u=r-t;v=wpd.taninverse(-(k-h),g-f);w=c?v+p:v-p;return!0};this.isCalibrated=function(){return a};
this.calibrate=function(b,c,d,f){return a=processCalibration(b,c,d,f)};this.isThetaDegrees=function(){return b};this.isThetaClockwise=function(){return c};this.pixelToData=function(a,g){var k=[],m,l;xp=parseFloat(a);yp=parseFloat(g);m=(q-n)/u*(Math.sqrt((xp-f)*(xp-f)+(yp-h)*(yp-h))-t)+n;l=c?w-wpd.taninverse(-(yp-h),xp-f):wpd.taninverse(-(yp-h),xp-f)-w;0>l&&(l+=2*Math.PI);!0===b&&(l=180*l/Math.PI);e&&(m=Math.pow(10,m));k[0]=m;k[1]=l;return k};this.dataToPixel=function(b,a){return{x:0,y:0}};this.pixelToLiveString=
function(b,a){var c=this.pixelToData(b,a);return c[0].toExponential(4)+", "+c[1].toExponential(4)};this.getTransformationEquations=function(){var a="r = ("+(q-n)/u+")*sqrt((x_pixel - "+f+")^2 + (y_pixel - "+h+")^2) + ("+(n-t*(q-n)/u)+")",e;e=c?w-NaN+h+" - y_pixel), (x_pixel - "+f+"))":"atan2(("+h+" - y_pixel), (x_pixel - "+f+")) - ("+w+")";e=b?"theta = (180/PI)*("+e+"), theta = theta + 360 if theta < 0":"theta = "+e+" theta = theta + 2*PI if theta < 0";return{pixelToData:[a,e]}}};c.prototype.numCalibrationPointsRequired=
function(){return 3};c.prototype.getDimensions=function(){return 2};c.prototype.getAxesLabels=function(){return["r","\u03b8"]};return c}();wpd=wpd||{};
wpd.TernaryAxes=function(){var c=function(){var a=!1,b,c,e,f,h,g,k,m,l;this.isCalibrated=function(){return a};this.calibrate=function(n,p,q){var t=n.getPoint(0),r=n.getPoint(1);n.getPoint(2);b=t.px;c=t.py;e=r.px;f=r.py;h=Math.sqrt((b-e)*(b-e)+(c-f)*(c-f));g=wpd.taninverse(-(f-c),e-b);k=Math.sqrt(3);m=p;l=q;return a=!0};this.isRange100=function(){return m};this.isNormalOrientation=function(){return l};this.pixelToData=function(a,f){var e=[],t,r,u,v;xp=parseFloat(a);yp=parseFloat(f);t=Math.sqrt((xp-
b)*(xp-b)+(yp-c)*(yp-c));r=wpd.taninverse(-(yp-c),xp-b)-g;u=t*Math.cos(r)/h;r=t*Math.sin(r)/h;t=1-u-r/k;u-=r/k;r=2*r/k;0==l&&(v=u,u=t,t=r,r=v);1==m&&(t*=100,u*=100,r*=100);e[0]=t;e[1]=u;e[2]=r;return e};this.dataToPixel=function(b,a,c){return{x:0,y:0}};this.pixelToLiveString=function(b,a){var c=this.pixelToData(b,a);return c[0].toExponential(4)+", "+c[1].toExponential(4)+", "+c[2].toExponential(4)};this.getTransformationEquations=function(){var a="rp = sqrt((x_pixel - "+b+")^2 + (y_pixel - "+c+")^2)/("+
h+")",g="thetap = atan2(("+c+" - y_pixel), (x_pixel - "+b+")) - ("+Math.atan2(-(f-c),e-b)+")",k="1 - rp*(cos(thetap) - sin(thetap)/sqrt(3))",t="rp*(cos(thetap) - sin(thetap)/sqrt(3))",r="2*rp*sin(thetap)/sqrt(3)",u;m&&(k="100*("+k+")",t="100*("+t+")",r="100*("+r+")");k="a_data = "+k;t="b_data = "+t;r="c_data = "+r;l||(u=t,t=k,k=r,r=u);return{pixelToData:[a,g,k,t,r]}}};c.prototype.numCalibrationPointsRequired=function(){return 3};c.prototype.getDimensions=function(){return 3};c.prototype.getAxesLabels=
function(){return["a","b","c"]};return c}();wpd=wpd||{};
wpd.XYAxes=function(){var c=function(){var a=!1,b=!1,c=!1,e=!1,f=!1,h,g,k,m,l,n,p,q,t,r,u,v,w,x,z=[0,0,0,0],A=[0,0,0,0],B=[0,0],G=function(a,J,H){if(4>a.getCount())return!1;var K=a.getPoint(0),I=a.getPoint(1),G=a.getPoint(2);a=a.getPoint(3);var F=new wpd.InputParser;k=K.px;p=K.py;m=I.px;q=I.py;l=G.px;t=G.py;n=a.px;r=a.py;u=K.dx;v=I.dx;w=G.dy;x=a.dy;u=F.parse(u);if(!F.isValid)return!1;e=F.isDate;v=F.parse(v);if(!F.isValid||F.isDate!=e)return!1;h=F.formatting;w=F.parse(w);if(!F.isValid)return!1;f=F.isDate;
x=F.parse(x);if(!F.isValid||F.isDate!=f)return!1;g=F.formatting;b=J;c=H;!0===b&&(u=Math.log(u)/Math.log(10),v=Math.log(v)/Math.log(10));!0===c&&(w=Math.log(w)/Math.log(10),x=Math.log(x)/Math.log(10));z=wpd.mat.mult2x2([u-v,0,0,w-x],wpd.mat.inv2x2([k-m,l-n,p-q,t-r]));A=wpd.mat.inv2x2(z);B[0]=u-z[0]*k-z[1]*p;B[1]=w-z[2]*l-z[3]*t;return!0};this.getBounds=function(){return{x1:u,x2:v,y3:w,y4:x}};this.isCalibrated=function(){return a};this.calibrate=function(b,c,d){return a=G(b,c,d)};this.pixelToData=function(a,
f){var e=[],h,g;h=parseFloat(a);g=parseFloat(f);g=wpd.mat.mult2x2Vec(z,[h,g]);g[0]+=B[0];g[1]+=B[1];h=g[0];g=g[1];!0===b&&(h=Math.pow(10,h));!0===c&&(g=Math.pow(10,g));e[0]=h;e[1]=g;return e};this.dataToPixel=function(a,b){var c;c=wpd.mat.mult2x2Vec(A,[a-B[0],b-B[1]]);return{x:c[0],y:c[1]}};this.pixelToLiveString=function(a,b){var c="",d=this.pixelToData(a,b),c=e?c+wpd.dateConverter.formatDateNumber(d[0],h):c+d[0].toExponential(4),c=c+", ";return c=f?c+wpd.dateConverter.formatDateNumber(d[1],g):c+
d[1].toExponential(4)};this.isDate=function(a){return 0===a?e:f};this.getInitialDateFormat=function(a){return 0===a?h:g};this.isLogX=function(){return b};this.isLogY=function(){return c};this.getTransformationEquations=function(){var a="("+z[0]+")*x_pixel + ("+z[1]+")*y_pixel + ("+B[0]+")",f="("+z[2]+")*x_pixel + ("+z[3]+")*y_pixel + ("+B[1]+")",e="x_pixel = ("+A[0]+")*x_data + ("+A[1]+")*y_data + ("+(-A[0]*B[0]-A[1]*B[1])+")",g="y_pixel = ("+A[2]+")*x_data + ("+A[3]+")*y_data + ("+(-A[2]*B[0]-A[3]*
B[1])+")",a=b?"x_data = pow(10, "+a+")":"x_data = "+a,f=c?"y_data = pow(10, "+f+")":"y_data = "+f;return b||c?{pixelToData:[a,f]}:{pixelToData:[a,f],dataToPixel:[e,g]}};this.getOrientation=function(){return{axes:"Y",direction:"increasing",angle:90}}};c.prototype.numCalibrationPointsRequired=function(){return 4};c.prototype.getDimensions=function(){return 2};c.prototype.getAxesLabels=function(){return["X","Y"]};return c}();wpd=wpd||{};
wpd.dataSeriesManagement=function(){function c(){if(wpd.appData.isAligned()){var a=document.getElementById("manage-data-series-name"),b=document.getElementById("manage-data-series-point-count"),c=document.getElementById("manage-data-series-list"),d=wpd.appData.getPlotData(),k=d.getActiveDataSeries(),m=d.getDataSeriesNames(),d=d.getActiveDataSeriesIndex(),l="";a.value=k.name;b.innerHTML=k.getCount();for(a=0;a<m.length;a++)l+='<option value="'+a+'">'+m[a]+"</option>";c.innerHTML=l;c.selectedIndex=d;
wpd.popup.show("manage-data-series-window")}else wpd.messagePopup.show("Manage Datasets","Please calibrate the axes before managing datasets.")}function a(){wpd.graphicsWidget.forceHandlerRepaint();wpd.autoExtraction.updateDatasetControl();wpd.acquireData.updateDatasetControl();wpd.dataPointCounter.setCount()}function b(){wpd.popup.close("manage-data-series-window")}var d=1;return{manage:c,addSeries:function(){var e=wpd.appData.getPlotData(),f="Dataset "+d,h=e.dataSeriesColl.length;b();e.dataSeriesColl[h]=
new wpd.DataSeries;e.dataSeriesColl[h].name=f;e.setActiveDataSeriesIndex(h);a();d++;c()},deleteSeries:function(){b();1===wpd.appData.getPlotData().dataSeriesColl.length?wpd.messagePopup.show("Can Not Delete!","You can not delete this dataset as at least one dataset is required.",c):wpd.okCancelPopup.show("Delete Dataset","Are you sure that you want to delete the dataset and all containing data points?",function(){var a=wpd.appData.getPlotData(),b=a.getActiveDataSeriesIndex();a.dataSeriesColl.splice(b,
1);a.setActiveDataSeriesIndex(0);c()},function(){c()})},viewData:function(){b();wpd.dataTable.showTable()},changeSelectedSeries:function(){var d=document.getElementById("manage-data-series-list"),f=wpd.appData.getPlotData();b();f.setActiveDataSeriesIndex(d.selectedIndex);a();c()},editSeriesName:function(){var d=wpd.appData.getPlotData().getActiveDataSeries(),f=document.getElementById("manage-data-series-name");b();d.name=f.value;a();c()}}}();wpd=wpd||{};
wpd.dataTable=function(){function c(){wpd.graphicsWidget.removeTool();wpd.popup.show("csvWindow");a()}function a(){h=f.getData();document.getElementById("data-table-dataset-control");var a=document.getElementById("data-table-dataset-list"),c=f.getDatasetNames(),g=document.getElementById("data-sort-variables"),k=document.getElementById("dataVariables"),q=document.getElementById("data-date-formatting-container"),t=document.getElementById("data-date-formatting"),r,u="",v="",w="",x=!1;for(r=0;r<c.length;r++)u+=
"<option>"+c[r]+"</option>";a.innerHTML=u;a.selectedIndex=f.getDatasetIndex();k.innerHTML=h.fields.join(", ");q.style.display="none";v+='<option value="raw">Raw</option>';for(r=0;r<h.fields.length;r++)h.isFieldSortable[r]&&(v+='<option value="'+h.fields[r]+'">'+h.fields[r]+"</option>"),null!=h.fieldDateFormat[r]&&(w+="<p>"+h.fields[r]+' <input type="text" length="15" value="'+h.fieldDateFormat[r]+'" id="data-format-string-'+r+'"/></p>',x=!0);h.allowConnectivity&&(v+='<option value="NearestNeighbor">Nearest Neighbor</option>');
g.innerHTML=v;b();x?(q.style.display="inline-block",t.innerHTML=w):q.style.display="hidden";d();e()}function b(){var a=document.getElementById("data-sort-variables").value,b=document.getElementById("data-sort-order");"NearestNeighbor"===a||"raw"===a?b.setAttribute("disabled",!0):b.removeAttribute("disabled")}function d(){if(null!=h&&null!=h.rawData){g=h.rawData.slice(0);var a=document.getElementById("data-sort-variables").value,b="ascending"===document.getElementById("data-sort-order").value,c="NearestNeighbor"===
a,d;if("raw"!==a)if(!c)d=h.fields.indexOf(a),0>d||g.sort(function(a,c){return a[d]>c[d]?b?1:-1:a[d]<c[d]?b?-1:1:0});else if(c)for(var f,e,k,u=g.length,v=h.connectivityFieldIndices,w,x,c=0;c<u-1;c++){a=-1;for(k=c+1;k<u;k++){for(w=e=0;w<v.length;w++)x=v[w],e+=(g[c][x]-g[k][x])*(g[c][x]-g[k][x]);if(e<f||-1===a)f=e,a=k}for(w=0;w<h.fields.length;w++)e=g[a][w],g[a][w]=g[c+1][w],g[c+1][w]=e}}}function e(){if(null!=g){var a=document.getElementById("digitizedDataTable"),b=parseInt(document.getElementById("data-number-format-digits").value,
10),c=document.getElementById("data-number-format-style").value,d=document.getElementById("data-number-format-separator").value,f,e,r,u=[],d=d.replace(/[^\\]\\t/,"\t").replace(/^\\t/,"\t");k="";for(f=0;f<g.length;f++){r=[];for(e=0;e<h.fields.length;e++)null!=h.fieldDateFormat[e]?(void 0===u[e]&&(u[e]=document.getElementById("data-format-string-"+e).value),r[e]=wpd.dateConverter.formatDateNumber(g[f][e],u[e])):r[e]="string"===typeof g[f][e]?g[f][e]:"fixed"===c&&0<=b?g[f][e].toFixed(b):"precision"===
c&&0<=b?g[f][e].toPrecision(b):"exponential"===c&&0<=b?g[f][e].toExponential(b):g[f][e];k+=r.join(d);k+="\n"}a.value=k}}var f,h,g,k;return{showTable:function(){f=wpd.plotDataProvider;c()},showAngleData:function(){f=wpd.measurementDataProvider;f.setDataSource("angle");c()},showDistanceData:function(){f=wpd.measurementDataProvider;f.setDataSource("distance");c()},updateSortingControls:b,reSort:function(){b();d();e()},selectAll:function(){var a=document.getElementById("digitizedDataTable");a.focus();
a.select()},generateCSV:function(){var a=f.getDatasetNames()[f.getDatasetIndex()];wpd.download.csv(JSON.stringify(k),a)},exportToPlotly:function(){if(null!=g){var a={data:[]},b,c,d;a.data[0]={};for(b=0;b<g.length;b++)for(c=0;c<h.fields.length;c++)d=h.fields[c],0===c?d="x":1===c&&(d="y"),0===b&&(a.data[0][d]=[]),a.data[0][d][b]=null!=h.fieldDateFormat[c]?wpd.dateConverter.formatDateNumber(g[b][c],"yyyy-mm-dd"):g[b][c];wpd.plotly.send(a)}},changeDataset:function(){var b=document.getElementById("data-table-dataset-list");
f.setDatasetIndex(b.selectedIndex);a()}}}();wpd=wpd||{};
wpd.graphicsWidget=function(){function c(a){var b=B.getBoundingClientRect();return{x:parseInt(a.pageX-(b.left+window.pageXOffset),10),y:parseInt(a.pageY-(b.top+window.pageYOffset),10)}}function a(a,b){return{x:a/L,y:b/L}}function b(a,b){a=parseInt(a,10);b=parseInt(b,10);V.style.width=a+"px";V.style.height=b+"px";B.width=a;G.width=a;M.width=a;J.width=a;H.width=a;B.height=b;G.height=b;M.height=b;J.height=b;H.height=b;Y=a/(1*b);N=a;O=b;if(null!=Q){F.fillStyle="rgb(255, 255, 255)";F.fillRect(0,0,N,O);
F.drawImage(K,0,0,N,O);if(null!=C&&void 0!=C.onRedraw)C.onRedraw();if(null!=y&&void 0!=y.onRedraw)y.onRedraw()}}function d(){G.width=G.width;M.width=M.width;J.width=J.width;H.width=H.width;I.width=I.width}function e(){if(null!=C&&void 0!=C.onRemove)C.onRemove();C=null}function f(){var a=wpd.layoutManager.getGraphicsViewportSize();b(a.width,a.height);Y>S?(L=O/(1*D),b(O*S,O)):(L=N/(1*E),b(N,N/S))}function h(a){L=a;b(E*L,D*L)}function g(){T=!T;var a=document.getElementById("extended-crosshair-btn");
T?a.classList.add("pressed-button"):a.classList.remove("pressed-button");J.width=J.width}function k(a,b){var c=wpd.zoomView.getSize(),d=wpd.zoomView.getZoomRatio(),f,e,g,h,k,m,l,n=0,p=0,q=c.width,r=c.height;g=c.width/d;h=c.height/d;f=a-g/2;e=b-h/2;m=f;c=e;k=f+g;l=e+h;0>f&&(m=0,n=-f*d);0>e&&(c=0,p=-e*d);f+g>=E&&(k=E,q-=d*(E-(f+g)));e+h>=D&&(l=D,r-=d*(D-(e+h)));g=R.getImageData(parseInt(m,10),parseInt(c,10),parseInt(k-m,10),parseInt(l-c,10));k=U.getImageData(parseInt(m,10),parseInt(c,10),parseInt(k-
m,10),parseInt(l-c,10));for(f=0;f<k.data.length;f+=4)if(0!=k.data[f]||0!=k.data[f+1]||0!=k.data[f+2])l=k.data[f+3]/255,g.data[f]=(1-l)*g.data[f]+l*k.data[f],g.data[f+1]=(1-l)*g.data[f+1]+l*k.data[f+1],g.data[f+2]=(1-l)*g.data[f+2]+l*k.data[f+2];m=d*(parseInt(m,10)-m);d*=parseInt(c,10)-c;wpd.zoomView.setZoomImage(g,parseInt(n+m,10),parseInt(p+d,10),parseInt(q-n,10),parseInt(r-p,10))}function m(b){clearTimeout(Z);var d=setTimeout,f=c(b);b=f.x;var f=f.y,e=a(b,f);T&&(J.width=J.width,P.strokeStyle="rgba(0,0,0, 0.5)",
P.beginPath(),P.moveTo(b,0),P.lineTo(b,O),P.moveTo(0,f),P.lineTo(N,f),P.stroke());k(e.x,e.y);wpd.zoomView.setCoords(e.x,e.y);Z=d(void 0,10)}function l(){B=document.getElementById("mainCanvas");G=document.getElementById("dataCanvas");M=document.getElementById("drawCanvas");J=document.getElementById("hoverCanvas");H=document.getElementById("topCanvas");K=document.createElement("canvas");I=document.createElement("canvas");F=B.getContext("2d");W=G.getContext("2d");P=J.getContext("2d");aa=H.getContext("2d");
ba=M.getContext("2d");R=K.getContext("2d");U=I.getContext("2d");V=document.getElementById("canvasDiv");document.addEventListener("keydown",function(a){X&&220===a.keyCode&&(a.preventDefault(),g())},!1);H.addEventListener("mousemove",m,!1);H.addEventListener("dragover",function(a){a.preventDefault()},!0);H.addEventListener("drop",function(a){a.preventDefault();wpd.busyNote.show();a=a.dataTransfer.files;1===a.length&&q(a[0])},!0);H.addEventListener("mousemove",u,!1);H.addEventListener("click",v,!1);
H.addEventListener("mouseup",x,!1);H.addEventListener("mousedown",z,!1);H.addEventListener("mouseout",A,!0);document.addEventListener("mouseup",w,!1);document.addEventListener("mousedown",function(a){X=a.target===H?!0:!1},!1);document.addEventListener("keydown",function(a){if(X&&null!=y&&void 0!=y.onKeyDown)y.onKeyDown(a)},!0);wpd.zoomView.initZoom();document.getElementById("fileLoadBox").addEventListener("change",t);window.addEventListener("paste",function(a){if(void 0!==a.clipboardData&&(a=a.clipboardData.items,
void 0!==a))for(var b=0;b<a.length;b++)if(-1!==a[b].type.indexOf("image")){wpd.busyNote.show();var c=a[b].getAsFile();(window.URL||window.webkitURL).createObjectURL(c);q(c)}},!1)}function n(a){var b=document.createElement("img");b.onload=function(){null==B&&l();wpd.appData.reset();wpd.sidebar.clear();r();e();E=b.width;D=b.height;S=E/(1*D);K.width=E;K.height=D;I.width=E;I.height=D;R.drawImage(b,0,0,E,D);Q=R.getImageData(0,0,E,D);B.width=B.width;d();f();wpd.appData.plotLoaded(Q);wpd.busyNote.close();
!1===ca&&wpd.popup.show("axesList");ca=!1};b.src=a}function p(a,b,c,g){r();e();E=b;D=c;S=E/(1*D);K.width=E;K.height=D;I.width=E;I.height=D;R.putImageData(a,0,0);Q=a;B.width=B.width;d();f();g&&(wpd.appData.reset(),wpd.appData.plotLoaded(Q))}function q(a){if(a.type.match("image.*")){var b=new FileReader;b.onload=function(){n(b.result)};b.readAsDataURL(a)}else wpd.messagePopup.show("ERROR: Invalid File!","Please load a valid image file. Common image formats such as JPG, PNG, BMP, GIF etc. should work. PDF or Word documents are not accepted."),
wpd.busyNote.close()}function t(){var a=document.getElementById("fileLoadBox");1==a.files.length&&(a=a.files[0],wpd.busyNote.show(),q(a));wpd.popup.close("loadNewImage")}function r(){if(null!=y&&void 0!=y.onRemove)y.onRemove();y=null}function u(b){if(null!=y&&void 0!=y.onMouseMove){var d=c(b),f=a(d.x,d.y);y.onMouseMove(b,d,f)}}function v(b){if(null!=y&&void 0!=y.onMouseClick){var d=c(b),f=a(d.x,d.y);y.onMouseClick(b,d,f)}}function w(b){if(null!=y&&void 0!=y.onDocumentMouseUp){var d=c(b),f=a(d.x,d.y);
y.onDocumentMouseUp(b,d,f)}}function x(b){if(null!=y&&void 0!=y.onMouseUp){var d=c(b),f=a(d.x,d.y);y.onMouseUp(b,d,f)}}function z(b){if(null!=y&&void 0!=y.onMouseDown){var d=c(b),f=a(d.x,d.y);y.onMouseDown(b,d,f)}}function A(b){if(null!=y&&void 0!=y.onMouseOut){var d=c(b),f=a(d.x,d.y);y.onMouseOut(b,d,f)}}var B,G,M,J,H,K,I,V,F,W,ba,P,aa,R,U,N,O,E,D,S,Y,Q,L,T=!1,Z,y,C,X=!1,ca=!0;return{zoomIn:function(){h(1.2*L)},zoomOut:function(){h(L/1.2)},zoomFit:f,zoom100perc:function(){h(1)},toggleExtendedCrosshairBtn:g,
setZoomRatio:h,getZoomRatio:function(){return L},loadImageFromURL:n,loadImageFromData:p,load:t,runImageOp:function(a,b){var c=a(Q,E,D);p(c.imageData,c.width,c.height,b)},setTool:function(a){if(null!=y&&void 0!=y.onRemove)y.onRemove();y=a;if(null!=y&&void 0!=y.onAttach)y.onAttach()},removeTool:r,getAllContexts:function(){return{mainCtx:F,dataCtx:W,drawCtx:ba,hoverCtx:P,topCtx:aa,oriImageCtx:R,oriDataCtx:U}},resetData:function(){I.width=I.width;G.width=G.width},resetHover:function(){J.width=J.width},
imagePx:a,screenPx:function(a,b){return{x:a*L,y:b*L}},updateZoomOnEvent:function(b){b=c(b);b=a(b.x,b.y);k(b.x,b.y);wpd.zoomView.setCoords(b.x,b.y)},updateZoomToImagePosn:function(a,b){k(a,b);wpd.zoomView.setCoords(a,b)},getDisplaySize:function(){return{width:N,height:O}},getImageSize:function(){return{width:E,height:D}},copyImageDataLayerToScreen:function(){W.drawImage(I,0,0,N,O)},setRepainter:function(a){if(null==C||void 0==C.painterName||null==a||void 0==a.painterName||C.painterName!=a.painterName){if(null!=
C&&void 0!=C.onRemove)C.onRemove();C=a;if(null!=C&&void 0!=C.onAttach)C.onAttach()}},removeRepainter:e,forceHandlerRepaint:function(){if(null!=C&&void 0!=C.onForcedRedraw)C.onForcedRedraw()},getRepainter:function(){return C},saveImage:function(){var a=document.createElement("canvas"),b=a.getContext("2d"),c,d,f,e;a.width=E;a.height=D;b.drawImage(K,0,0,E,D);c=b.getImageData(0,0,E,D);f=U.getImageData(0,0,E,D);for(d=0;d<c.data.length;d+=4)if(0!=f.data[d]||0!=f.data[d+1]||0!=f.data[d+2])e=f.data[d+3]/
255,c.data[d]=(1-e)*c.data[d]+e*f.data[d],c.data[d+1]=(1-e)*c.data[d+1]+e*f.data[d+1],c.data[d+2]=(1-e)*c.data[d+2]+e*f.data[d+2];b.putImageData(c,0,0);window.open(a.toDataURL(),"_blank")}}}();wpd=wpd||{};
wpd.layoutManager=function(){function c(){var a=parseInt(document.body.offsetWidth,10),b=parseInt(document.body.offsetHeight,10);e.style.height=b+"px";f.style.height=b-280+"px";h.style.width=a-e.offsetWidth-5+"px";h.style.height=b+"px";d.style.height=b-44+"px";wpd.sidebar.resize()}function a(a){clearTimeout(b);b=setTimeout(c,80)}var b,d,e,f,h;return{initialLayout:function(){d=document.getElementById("graphicsContainer");e=document.getElementById("sidebarContainer");f=document.getElementById("sidebarControlsContainer");
h=document.getElementById("mainContainer");c();window.addEventListener("resize",a,!1)},getGraphicsViewportSize:function(){return{width:d.offsetWidth,height:d.offsetHeight}}}}();wpd=wpd||{};
wpd.popup=function(){function c(c){var d=document.createElement("div");d.className="popup-drag-mask";d.style.display="inline-block";d.addEventListener("mousemove",a,!1);d.addEventListener("mouseup",b,!1);d.addEventListener("mouseout",e,!1);document.body.appendChild(d);h={dragMaskDiv:d,initialMouseX:c.pageX,initialMouseY:c.pageY,initialWindowX:g.offsetLeft,initialWindowY:g.offsetTop};c.preventDefault();c.stopPropagation()}function a(a){d(a);a.stopPropagation();a.preventDefault()}function b(a){d(a);
f();a.stopPropagation();a.preventDefault()}function d(a){var b=h.initialWindowX+a.pageX-h.initialMouseX;a=h.initialWindowY+a.pageY-h.initialMouseY;var c=parseInt(document.body.offsetWidth,10),d=parseInt(document.body.offsetHeight,10),f=parseInt(g.offsetWidth,10),e=parseInt(g.offsetHeight,10);b+.7*f<c&&0<b&&0<a&&a+.5*e<d&&(g.style.top=a+"px",g.style.left=b+"px")}function e(a){f()}function f(){null!=h&&null!=h.dragMaskDiv&&(h.dragMaskDiv.removeEventListener("mouseout",e,!1),h.dragMaskDiv.removeEventListener("mouseup",
b,!1),h.dragMaskDiv.removeEventListener("mousemove",a,!1),h.dragMaskDiv.style.display="none",document.body.removeChild(h.dragMaskDiv),h=null)}var h=null,g=null;return{show:function(a){document.getElementById("shadow").style.visibility="visible";a=document.getElementById(a);var b=parseInt(window.innerWidth,10),d=parseInt(window.innerHeight,10),f=parseInt(a.offsetWidth,10),e=parseInt(a.offsetHeight,10),d=(d-e)/2;a.style.left=(b-f)/2+"px";a.style.top=(60<d?60:d)+"px";a.style.visibility="visible";for(b=
0;b<a.childNodes.length;b++)if("popupheading"===a.childNodes[b].className){a.childNodes[b].addEventListener("mousedown",c,!1);break}g=a},close:function(a){document.getElementById("shadow").style.visibility="hidden";document.getElementById(a).style.visibility="hidden";f();g=null}}}();
wpd.busyNote=function(){var c,a=!1;return{show:function(){a||(null==c&&(c=document.createElement("div"),c.id="wait",c.innerHTML='<p align="center">Processing...</p>'),document.body.appendChild(c),a=!0)},close:function(){null!=c&&!0===a&&(document.body.removeChild(c),a=!1)}}}();
wpd.messagePopup=function(){var c;return{show:function(a,b,d){wpd.popup.show("messagePopup");document.getElementById("message-popup-heading").innerHTML=a;document.getElementById("message-popup-text").innerHTML=b;c=d},close:function(){wpd.popup.close("messagePopup");null!=c&&c()}}}();
wpd.okCancelPopup=function(){var c,a;return{show:function(b,d,e,f){wpd.popup.show("okCancelPopup");document.getElementById("ok-cancel-popup-heading").innerHTML=b;document.getElementById("ok-cancel-popup-text").innerHTML=d;c=e;a=f},ok:function(){wpd.popup.close("okCancelPopup");c()},cancel:function(){wpd.popup.close("okCancelPopup");a()}}}();wpd.unsupported=function(){wpd.messagePopup.show("Unsupported Feature!","This feature has not been implemented in the current version. This may be available in a future release.")};
wpd=wpd||{};
wpd.sidebar=function(){function c(){var a=document.getElementsByClassName("sidebar"),b;for(b=0;b<a.length;b++)a[b].style.display="none"}return{show:function(a){c();a=document.getElementById(a);a.style.display="inline-block";a.style.height=parseInt(document.body.offsetHeight,10)-280+"px"},clear:c,resize:function(){var a=document.getElementsByClassName("sidebar"),b;for(b=0;b<a.length;b++)"inline-block"===a[b].style.display&&(a[b].style.height=parseInt(document.body.offsetHeight,10)-280+"px")}}}();
wpd=wpd||{};wpd.toolbar=function(){function c(){var a=document.getElementsByClassName("toolbar"),b;for(b=0;b<a.length;b++)a[b].style.visibility="hidden"}return{show:function(a){c();document.getElementById(a).style.visibility="visible"},clear:c}}();wpd=wpd||{};
wpd.transformationEquations=function(){return{show:function(){if(!1===wpd.appData.isAligned())wpd.messagePopup.show("Transformation Equations","Transformation equations are available only after axes have been calibrated.");else{wpd.popup.show("axes-transformation-equations-window");var c=document.getElementById("axes-transformation-equation-list"),a="",b=wpd.appData.getPlotData().axes,d=b.getTransformationEquations(),a=a+"<p><b>Axes Type</b>: ";b instanceof wpd.XYAxes?a+="XY</p>":b instanceof wpd.PolarAxes?
a+="Polar</p>":b instanceof wpd.TernaryAxes?a+="Ternary</p>":b instanceof wpd.MapAxes?a+="Map</p>":b instanceof wpd.ImageAxes&&(a+="Image</p>");if(null!=d.pixelToData){a+="<p><b>Pixel to Data</b></p><ol>";for(b=0;b<d.pixelToData.length;b++)a+='<li><p class="footnote">'+d.pixelToData[b]+"</p></li>";a+="</ol>"}a+="<p> </p>";if(null!=d.dataToPixel){a+="<p><b>Data to Pixel</b></p><ol>";for(b=0;b<d.dataToPixel.length;b++)a+='<li><p class="footnote">'+d.dataToPixel[b]+"</p></li>";a+="</ol>"}c.innerHTML=
a}}}}();wpd=wpd||{};
wpd.webcamCapture=function(){function c(){void 0!=a&&a.stop();wpd.popup.close("webcamCapture")}var a;return{start:function(){if(null==(navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia))wpd.messagePopup.show("Webcam Capture","Your browser does not support webcam capture using HTML5 APIs. A recent version of Google Chrome is recommended.");else{wpd.popup.show("webcamCapture");var b=document.getElementById("webcamVideo");navigator.getUserMedia=navigator.getUserMedia||
navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;navigator.getUserMedia({video:!0},function(c){a=c;b.src=window.URL.createObjectURL(c)},function(){})}},cancel:function(){c()},capture:function(){var a=document.createElement("canvas"),d=document.getElementById("webcamVideo"),e=a.getContext("2d"),f;a.width=d.videoWidth;a.height=d.videoHeight;e.drawImage(d,0,0);f=e.getImageData(0,0,a.width,a.height);c();wpd.graphicsWidget.runImageOp(function(){return{imageData:f,width:a.width,
height:a.height}})}}}();wpd=wpd||{};
wpd.zoomView=function(){function c(){var a=document.getElementById("zoomCrossHair"),b=a.getContext("2d");a.width=a.width;b.strokeStyle="black"===g?"rgba(0,0,0,1)":"red"===g?"rgba(255,0,0,1)":"yellow"===g?"rgba(255,255,0,1)":"rgba(0,0,0,1)";b.beginPath();b.moveTo(125,0);b.lineTo(125,250);b.moveTo(0,125);b.lineTo(250,125);b.stroke()}var a,b,d,e,f,h,g="black";return{initZoom:function(){a=document.getElementById("zoomCanvas");b=a.getContext("2d");d=document.createElement("canvas");e=d.getContext("2d");
f=document.getElementById("mousePosition");h=5;c()},setZoomImage:function(c,f,g,n,p){d.width=n/h;d.height=p/h;e.putImageData(c,0,0);a.width=a.width;b.drawImage(d,f,g,n,p)},setCoords:function(a,b){if(wpd.appData.isAligned()){var c=wpd.appData.getPlotData();f.innerHTML=c.axes.pixelToLiveString(a,b)}else f.innerHTML=a.toFixed(2)+", "+b.toFixed(2)},setZoomRatio:function(a){h=a},getZoomRatio:function(){return h},getSize:function(){return{width:250,height:250}},showSettingsWindow:function(){document.getElementById("zoom-magnification-value").value=
h;document.getElementById("zoom-crosshair-color-value").value=g;wpd.popup.show("zoom-settings-popup")},applySettings:function(){h=document.getElementById("zoom-magnification-value").value;g=document.getElementById("zoom-crosshair-color-value").value;c();wpd.popup.close("zoom-settings-popup")}}}();wpd=wpd||{};
wpd.xyCalibration=function(){function c(){wpd.popup.show("xyAlignment")}return{start:function(){wpd.popup.show("xyAxesInfo")},pickCorners:function(){wpd.popup.close("xyAxesInfo");var a=new wpd.AxesCornersTool(4,2,["X1","X2","Y1","Y2"]);wpd.graphicsWidget.setTool(a)},getCornerValues:c,align:function(){var a=document.getElementById("xmin").value,b=document.getElementById("xmax").value,d=document.getElementById("ymin").value,e=document.getElementById("ymax").value,f=document.getElementById("xlog").checked,
h=document.getElementById("ylog").checked,g=new wpd.XYAxes,k=wpd.alignAxes.getActiveCalib();k.setDataAt(0,a,d);k.setDataAt(1,b,d);k.setDataAt(2,a,d);k.setDataAt(3,b,e);if(!g.calibrate(k,f,h))return wpd.popup.close("xyAlignment"),wpd.messagePopup.show("Invalid Inputs","Please enter valid values for calibration.",c),!1;a=wpd.appData.getPlotData();a.axes=g;a.calibration=k;wpd.popup.close("xyAlignment");return!0}}}();
wpd.barCalibration=function(){function c(){wpd.popup.show("barAlignment")}return{start:function(){wpd.popup.show("barAxesInfo")},pickCorners:function(){wpd.popup.close("barAxesInfo");var a=new wpd.AxesCornersTool(2,2,["P1","P2"]);wpd.graphicsWidget.setTool(a)},getCornerValues:c,align:function(){var a=document.getElementById("bar-axes-p1").value,b=document.getElementById("bar-axes-p2").value,d=document.getElementById("bar-axes-log-scale").checked,e=new wpd.BarAxes,f=wpd.alignAxes.getActiveCalib();
f.setDataAt(0,0,a);f.setDataAt(1,0,b);if(!e.calibrate(f,d))return wpd.popup.close("barAlignment"),wpd.messagePopup.show("Invalid Inputs","Please enter valid values for calibration.",c),!1;a=wpd.appData.getPlotData();a.axes=e;a.calibration=f;wpd.popup.close("barAlignment");return!0}}}();
wpd.polarCalibration=function(){return{start:function(){wpd.popup.show("polarAxesInfo")},pickCorners:function(){wpd.popup.close("polarAxesInfo");var c=new wpd.AxesCornersTool(3,2,["Origin","P1","P2"]);wpd.graphicsWidget.setTool(c)},getCornerValues:function(){wpd.popup.show("polarAlignment")},align:function(){var c=parseFloat(document.getElementById("polar-r1").value),a=parseFloat(document.getElementById("polar-theta1").value),b=parseFloat(document.getElementById("polar-r2").value),d=parseFloat(document.getElementById("polar-theta2").value),
e=document.getElementById("polar-degrees").checked;document.getElementById("polar-radians");var f=document.getElementById("polar-clockwise").checked,h=document.getElementById("polar-log-scale").checked,g=new wpd.PolarAxes,k=wpd.alignAxes.getActiveCalib();k.setDataAt(1,c,a);k.setDataAt(2,b,d);g.calibrate(k,e,f,h);c=wpd.appData.getPlotData();c.axes=g;c.calibration=k;wpd.popup.close("polarAlignment");return!0}}}();
wpd.ternaryCalibration=function(){return{start:function(){wpd.popup.show("ternaryAxesInfo")},pickCorners:function(){wpd.popup.close("ternaryAxesInfo");var c=new wpd.AxesCornersTool(3,3,["A","B","C"]);wpd.graphicsWidget.setTool(c)},getCornerValues:function(){wpd.popup.show("ternaryAlignment")},align:function(){document.getElementById("range0to1");var c=document.getElementById("range0to100").checked,a=document.getElementById("ternarynormal").checked,b=new wpd.TernaryAxes,d=wpd.alignAxes.getActiveCalib();
b.calibrate(d,c,a);c=wpd.appData.getPlotData();c.axes=b;c.calibration=d;wpd.popup.close("ternaryAlignment");return!0}}}();
wpd.mapCalibration=function(){function c(){wpd.popup.show("mapAlignment")}return{start:function(){wpd.popup.show("mapAxesInfo")},pickCorners:function(){wpd.popup.close("mapAxesInfo");var a=new wpd.AxesCornersTool(2,2,["P1","P2"]);wpd.graphicsWidget.setTool(a);a.onComplete=c},getCornerValues:c,align:function(){var a=parseFloat(document.getElementById("scaleLength").value),b=document.getElementById("scaleUnits").value,c=new wpd.MapAxes,e=wpd.alignAxes.getActiveCalib();c.calibrate(e,a,b);a=wpd.appData.getPlotData();
a.axes=c;a.calibration=e;wpd.popup.close("mapAlignment");return!0}}}();
wpd.AxesCornersTool=function(){return function(c,a,b){var d=0;a=new wpd.Calibration(a);var e=!0;a.labels=b;wpd.alignAxes.setActiveCalib(a);wpd.graphicsWidget.resetData();this.onMouseClick=function(a,b,g){e?(d+=1,b=wpd.alignAxes.getActiveCalib(),b.addPoint(g.x,g.y,0,0),b.unselectAll(),b.selectPoint(d-1),wpd.graphicsWidget.forceHandlerRepaint(),d===c&&(e=!1,wpd.alignAxes.calibrationCompleted())):(b=wpd.alignAxes.getActiveCalib(),b.unselectAll(),b.selectNearestPoint(g.x,g.y),wpd.graphicsWidget.forceHandlerRepaint());
wpd.graphicsWidget.updateZoomOnEvent(a)};this.onKeyDown=function(a){var b=wpd.alignAxes.getActiveCalib();if(0!==b.getSelectedPoints().length){var c=b.getPoint(b.getSelectedPoints()[0]),d=c.px,c=c.py,e=!0===a.shiftKey?5/wpd.graphicsWidget.getZoomRatio():.5/wpd.graphicsWidget.getZoomRatio();if(wpd.keyCodes.isUp(a.keyCode))c-=e;else if(wpd.keyCodes.isDown(a.keyCode))c+=e;else if(wpd.keyCodes.isLeft(a.keyCode))d-=e;else if(wpd.keyCodes.isRight(a.keyCode))d+=e;else return;b.changePointPx(b.getSelectedPoints()[0],
d,c);wpd.graphicsWidget.forceHandlerRepaint();wpd.graphicsWidget.updateZoomToImagePosn(d,c);a.preventDefault();a.stopPropagation()}}}}();
wpd.AlignmentCornersRepainter=function(){return function(){this.painterName="AlignmentCornersReptainer";this.onForcedRedraw=function(){wpd.graphicsWidget.resetData();this.onRedraw()};this.onRedraw=function(){var c=wpd.alignAxes.getActiveCalib();if(null!=c){var a,b,d;for(a=0;a<c.getCount();a++)b=c.getPoint(a),b={x:b.px,y:b.py},d=c.isPointSelected(a)?"rgba(0,200,0,1)":"rgba(200,0,0,1)",wpd.graphicsHelper.drawPoint(b,d,c.labels[a])}}}}();
wpd.alignAxes=function(){var c,a;return{start:function(){xyEl=document.getElementById("r_xy");polarEl=document.getElementById("r_polar");ternaryEl=document.getElementById("r_ternary");mapEl=document.getElementById("r_map");imageEl=document.getElementById("r_image");barEl=document.getElementById("r_bar");wpd.popup.close("axesList");if(!0===xyEl.checked)a=wpd.xyCalibration;else if(!0===barEl.checked)a=wpd.barCalibration;else if(!0===polarEl.checked)a=wpd.polarCalibration;else if(!0===ternaryEl.checked)a=
wpd.ternaryCalibration;else if(!0===mapEl.checked)a=wpd.mapCalibration;else if(!0===imageEl.checked){a=null;var b=new wpd.ImageAxes;b.calibrate();wpd.appData.getPlotData().axes=b;wpd.appData.isAligned(!0);wpd.acquireData.load()}null!=a&&(a.start(),wpd.graphicsWidget.setRepainter(new wpd.AlignmentCornersRepainter))},calibrationCompleted:function(){wpd.sidebar.show("axes-calibration-sidebar")},getCornerValues:function(){a.getCornerValues()},align:function(){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.removeRepainter();
wpd.graphicsWidget.resetData();a.align()&&(wpd.appData.isAligned(!0),wpd.acquireData.load())},getActiveCalib:function(){return c},setActiveCalib:function(a){c=a}}}();wpd=wpd||{};
wpd.autoExtraction=function(){function c(){var a=wpd.appData.getPlotData();a.getActiveDataSeries();var b=a.getActiveDataSeriesIndex(),c=document.getElementById("automatic-sidebar-dataset-list"),e="",f;for(f=0;f<a.dataSeriesColl.length;f++)e+="<option>"+a.dataSeriesColl[f].name+"</option>";c.innerHTML=e;c.selectedIndex=b}return{start:function(){wpd.sidebar.show("auto-extraction-sidebar");c();wpd.colorPicker.init();wpd.algoManager.updateAlgoList()},updateDatasetControl:c,changeDataset:function(){var a=
document.getElementById("automatic-sidebar-dataset-list").selectedIndex;wpd.appData.getPlotData().setActiveDataSeriesIndex(a);wpd.graphicsWidget.forceHandlerRepaint();wpd.dataPointCounter.setCount()}}}();
wpd.algoManager=function(){function c(){var a=document.getElementById("auto-extract-algo-name").value,c=wpd.appData.getPlotData().getAutoDetector();c.algorithm="averagingWindow"===a?new wpd.AveragingWindowAlgo:"XStepWithInterpolation"===a?new wpd.XStepWithInterpolationAlgo:"XStep"===a?new wpd.AveragingWindowWithStepSizeAlgo:"blobDetector"===a?new wpd.BlobDetectorAlgo:"barExtraction"===a||"histogram"===a?new wpd.BarExtractionAlgo:new wpd.AveragingWindowAlgo;var c=c.algorithm,a=document.getElementById("algo-parameter-container"),
c=c.getParamList(),e,f="<table>";for(e=0;e<c.length;e++)f+="<tr><td>"+c[e][0]+'</td><td><input type="text" size=3 id="algo-param-'+e+'" class="algo-params" value="'+c[e][2]+'"/></td><td>'+c[e][1]+"</td></tr>";a.innerHTML=f+"</table>"}var a;return{updateAlgoList:function(){var b="",d=wpd.appData.getPlotData().axes,e=document.getElementById("auto-extract-algo-name");d!==a&&(a=d,d instanceof wpd.BarAxes||(b+='<option value="averagingWindow">Averaging Window</option>'),d instanceof wpd.XYAxes&&!d.isLogX()&&
!d.isLogY()&&(b+='<option value="XStepWithInterpolation">X Step w/ Interpolation</option><option value="XStep">X Step</option>'),d instanceof wpd.BarAxes||(b+='<option value="blobDetector">Blob Detector</option>'),d instanceof wpd.BarAxes&&(b+='<option value="barExtraction">Bar Extraction</option>'),d instanceof wpd.XYAxes&&(b+='<option value="histogram">Histogram</option>'),e.innerHTML=b,c())},applyAlgoSelection:c,run:function(){wpd.busyNote.show();setTimeout(function(){var a=wpd.appData.getPlotData().getAutoDetector(),
c=a.algorithm,e=new wpd.DataPointsRepainter,f=document.getElementsByClassName("algo-params"),h,g,k=wpd.graphicsWidget.getAllContexts(),m=wpd.graphicsWidget.getImageSize();for(h=0;h<f.length;h++)g=f[h].id,g=parseInt(g.replace("algo-param-",""),10),c.setParam(g,parseFloat(f[h].value));wpd.graphicsWidget.removeTool();a.imageData=k.oriImageCtx.getImageData(0,0,m.width,m.height);a.generateBinaryData();wpd.graphicsWidget.setRepainter(e);c.run(wpd.appData.getPlotData());wpd.graphicsWidget.forceHandlerRepaint();
wpd.dataPointCounter.setCount();wpd.busyNote.close();return!0},10)}}}();wpd=wpd||{};
wpd.colorSelectionWidget=function(){function c(){document.getElementById("color-selection-selected-color-box").style.backgroundColor="rgb("+a[0]+","+a[1]+","+a[2]+")";document.getElementById("color-selection-red").value=a[0];document.getElementById("color-selection-green").value=a[1];document.getElementById("color-selection-blue").value=a[2];var b=document.getElementById("color-selection-options"),c=wpd.appData.getPlotData().topColors,d=10<c.length?10:c.length,e,m="",l,n;for(e=0;e<d;e++)n="rgb("+
c[e].r+","+c[e].g+","+c[e].b+");",l=c[e].percentage.toFixed(3)+"%",m+='<div class="colorOptionBox" style="background-color: '+n+'" title="'+l+'" onclick="wpd.colorSelectionWidget.selectTopColor('+e+');"></div>';b.innerHTML=m;wpd.popup.show("color-selection-widget")}var a,b,d,e;return{setParams:function(c){a=c.color;b=c.triggerElementId;d=c.title;e=c.setColorDelegate;document.getElementById("color-selection-title").innerHTML=d},startPicker:c,pickColor:function(){wpd.popup.close("color-selection-widget");
var b=new wpd.ColorPickerTool;b.onComplete=function(b){a=b;e(b);wpd.graphicsWidget.removeTool();c()};wpd.graphicsWidget.setTool(b)},setColor:function(){var c=[];c[0]=parseInt(document.getElementById("color-selection-red").value,10);c[1]=parseInt(document.getElementById("color-selection-green").value,10);c[2]=parseInt(document.getElementById("color-selection-blue").value,10);a=c;e(c);wpd.popup.close("color-selection-widget");c=document.getElementById(b);c.style.backgroundColor="rgb("+a[0]+","+a[1]+
","+a[2]+")";c.style.color=200>a[0]+a[1]+a[2]?"rgb(255,255,255)":"rgb(0,0,0)"},selectTopColor:function(b){var d=[],g=wpd.appData.getPlotData().topColors;d[0]=g[b].r;d[1]=g[b].g;d[2]=g[b].b;a=d;e(d);c()},paintFilteredColor:function(a,b){var c=wpd.graphicsWidget.getAllContexts();wpd.appData.getPlotData().getAutoDetector();var d=wpd.graphicsWidget.getImageSize(),e,l,n;n=c.oriDataCtx.getImageData(0,0,d.width,d.height);if(null!=b&&0!==b.length){for(e=0;e<b.length;e++)l=b[e],!0===a[l]?(parseInt(l/d.width,
10),n.data[4*l]=255,n.data[4*l+1]=255,n.data[4*l+2]=0,n.data[4*l+3]=255):(n.data[4*l]=0,n.data[4*l+1]=0,n.data[4*l+2]=0,n.data[4*l+3]=150);c.oriDataCtx.putImageData(n,0,0);wpd.graphicsWidget.copyImageDataLayerToScreen()}}}}();
wpd.colorPicker=function(){function c(){return{color:wpd.appData.getPlotData().getAutoDetector().fgColor,triggerElementId:"color-button",title:"Specify Plot (Foreground) Color",setColorDelegate:function(a){wpd.appData.getPlotData().getAutoDetector().fgColor=a}}}function a(){return{color:wpd.appData.getPlotData().getAutoDetector().bgColor,triggerElementId:"color-button",title:"Specify Background Color",setColorDelegate:function(a){wpd.appData.getPlotData().getAutoDetector().bgColor=a}}}function b(){var a=
document.getElementById("color-button"),b=document.getElementById("color-distance-value"),c=wpd.appData.getPlotData().getAutoDetector(),h=document.getElementById("color-detection-mode-select"),g;g="fg"===c.colorDetectionMode?c.fgColor:c.bgColor;color_distance=c.colorDistance;a.style.backgroundColor="rgb("+g[0]+","+g[1]+","+g[2]+")";b.value=color_distance;h.value=c.colorDetectionMode}return{startPicker:function(){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.removeRepainter();wpd.graphicsWidget.resetData();
"fg"===wpd.appData.getPlotData().getAutoDetector().colorDetectionMode?wpd.colorSelectionWidget.setParams(c()):wpd.colorSelectionWidget.setParams(a());wpd.colorSelectionWidget.startPicker()},changeDetectionMode:function(){var a=document.getElementById("color-detection-mode-select");wpd.appData.getPlotData().getAutoDetector().colorDetectionMode=a.value;b()},changeColorDistance:function(){var a=parseFloat(document.getElementById("color-distance-value").value);wpd.appData.getPlotData().getAutoDetector().colorDistance=
a},init:b,testColorDetection:function(){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.resetData();wpd.graphicsWidget.setRepainter(new wpd.ColorFilterRepainter);var a=wpd.graphicsWidget.getAllContexts(),b=wpd.appData.getPlotData().getAutoDetector(),c=wpd.graphicsWidget.getImageSize();b.imageData=a.oriImageCtx.getImageData(0,0,c.width,c.height);b.generateBinaryData();wpd.colorSelectionWidget.paintFilteredColor(b.binaryData,b.mask)}}}();
wpd.ColorPickerTool=function(){return function(){var c=wpd.graphicsWidget.getAllContexts();this.onMouseClick=function(a,b,d){a=c.oriImageCtx.getImageData(d.x,d.y,1,1);this.onComplete([a.data[0],a.data[1],a.data[2]])};this.onComplete=function(a){}}}();wpd.ColorFilterRepainter=function(){return function(){this.painterName="colorFilterRepainter";this.onRedraw=function(){var c=wpd.appData.getPlotData().getAutoDetector();wpd.colorSelectionWidget.paintFilteredColor(c.binaryData,c.mask)}}}();wpd=wpd||{};
wpd.plotDataProvider=function(){return{getDatasetNames:function(){var c=wpd.appData.getPlotData(),a=[],b;for(b=0;b<c.dataSeriesColl.length;b++)a[b]=c.dataSeriesColl[b].name;return a},getDatasetIndex:function(){return wpd.appData.getPlotData().getActiveDataSeriesIndex()},setDatasetIndex:function(c){wpd.appData.getPlotData().setActiveDataSeriesIndex(c);wpd.graphicsWidget.forceHandlerRepaint();wpd.dataPointCounter.setCount()},getData:function(){if(wpd.appData.getPlotData().axes instanceof wpd.BarAxes){var c=
[],a=[],b=[],b=wpd.appData.getPlotData(),c=b.getActiveDataSeries(),b=b.axes,d,e,f;for(d=0;d<c.getCount();d++)e=c.getPixel(d),f=b.pixelToData(e.x,e.y),a[d]=[],e=null==e.metadata?"Bar"+d:e.metadata[0],a[d][0]=e,a[d][1]=f[0];c=["Label","Value"];b=[!1,!0];return{fields:c,fieldDateFormat:[],rawData:a,allowConnectivity:!1,connectivityFieldIndices:[],isFieldSortable:b}}var c=wpd.appData.getPlotData(),a=c.getActiveDataSeries(),c=c.axes,h=[],b=[];d=[];f=[];e=[];for(var g,k,m,l=a.hasMetadata(),n=a.getMetadataKeys(),
p=!0===l?n.length:0,q,h=0;h<a.getCount();h++){k=a.getPixel(h);m=c.pixelToData(k.x,k.y);f[h]=[];for(g=0;g<m.length;g++)f[h][g]=m[g];for(g=0;g<p;g++)q=null==k.metadata||null==k.metadata[g]?0:k.metadata[g],f[h][m.length+g]=q}h=c.getAxesLabels();l&&(h=h.concat(n));for(g=0;g<h.length;g++)g<c.getDimensions()&&(d[g]=g,null!=c.isDate&&c.isDate(g)&&(b[g]=c.getInitialDateFormat(g))),e[g]=!0;return{fields:h,fieldDateFormat:b,rawData:f,allowConnectivity:!0,connectivityFieldIndices:d,isFieldSortable:e}}}}();
wpd.measurementDataProvider=function(){var c="distance";return{getDatasetNames:function(){if("angle"===c)return["Angle Measurements"];if("distance"===c)return["Distance Measurements"]},getDatasetIndex:function(){return 0},setDatasetIndex:function(a){},setDataSource:function(a){c=a},getData:function(){var a=[],b=[],d=[],e=wpd.appData.getPlotData(),f=e.axes,h=wpd.appData.isAligned()&&f instanceof wpd.MapAxes;if("distance"===c){d=e.distanceMeasurementData;for(a=0;a<d.connectionCount();a++)b[a]=[],b[a][0]=
"Dist"+a,b[a][1]=h?f.pixelToDataDistance(d.getDistance(a)):d.getDistance(a);a=["Label","Distance"];d=[!1,!0]}else if("angle"===c){d=e.angleMeasurementData;for(a=0;a<d.connectionCount();a++)b[a]=[],b[a][0]="Theta"+a,b[a][1]=d.getAngle(a);a=["Label","Angle"];d=[!1,!0]}return{fields:a,fieldDateFormat:[],rawData:b,allowConnectivity:!1,connectivityFieldIndices:[],isFieldSortable:d}}}}();wpd=wpd||{};
wpd.graphicsHelper=function(){return{drawPoint:function(c,a,b){var d=wpd.graphicsWidget.screenPx(c.x,c.y),e=wpd.graphicsWidget.getAllContexts(),f;null!=b&&(e.dataCtx.font="15px sans-serif",f=e.dataCtx.measureText(b).width,e.dataCtx.fillStyle="rgba(255, 255, 255, 0.7)",e.dataCtx.fillRect(d.x-13,d.y-8,f+5,35),e.dataCtx.fillStyle=a,e.dataCtx.fillText(b,d.x-10,d.y+18));e.dataCtx.beginPath();e.dataCtx.fillStyle=a;e.dataCtx.strokeStyle="rgb(255, 255, 255)";e.dataCtx.arc(d.x,d.y,4,0,2*Math.PI,!0);e.dataCtx.fill();
e.dataCtx.stroke();null!=b&&(e.oriDataCtx.font="15px sans-serif",e.oriDataCtx.fillStyle=a,e.oriDataCtx.fillText(b,c.x-10,c.y+18));e.oriDataCtx.beginPath();e.oriDataCtx.fillStyle=a;e.oriDataCtx.strokeStyle="rgb(255, 255, 255)";e.oriDataCtx.arc(c.x,c.y,4,0,2*Math.PI,!0);e.oriDataCtx.fill();e.oriDataCtx.stroke()}}}();wpd=wpd||{};
wpd.gridDetection=function(){function c(a,b,c){var d=wpd.appData.getPlotData().backupImageData,k;for(k=0;k<d.data.length;k++)a.data[k]=d.data[k];return{imageData:a,width:b,height:c}}function a(){wpd.graphicsWidget.removeTool();wpd.appData.getPlotData().gridData=null;wpd.graphicsWidget.removeRepainter();wpd.graphicsWidget.resetData();null!=wpd.appData.getPlotData().backupImageData?wpd.graphicsWidget.runImageOp(c):console.log("Grid Reset: No backup Image!")}function b(a,b,c){var d=wpd.appData.getPlotData().gridData,
k=wpd.appData.getPlotData().topColors[0],m,l,n;null==k&&(k={r:255,g:0,b:0});if(null!=d)for(m=0;m<c;m++)for(l=0;l<b;l++)n=4*(m*b+l),!0===d[n/4]&&(a.data[n]=k.r,a.data[n+1]=k.g,a.data[n+2]=k.b,a.data[n+3]=255);return{imageData:a,width:b,height:c}}function d(){var a=parseFloat(document.getElementById("grid-color-distance").value);wpd.appData.getPlotData().getAutoDetector().gridColorDistance=a}return{start:function(){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.removeRepainter();wpd.graphicsWidget.resetData();
wpd.sidebar.show("grid-detection-sidebar");var a=document.getElementById("grid-color-picker-button"),b=document.getElementById("grid-background-mode"),c=wpd.appData.getPlotData().getAutoDetector(),d=c.gridLineColor,c=c.gridBackgroundMode;null!=d&&(a.style.backgroundColor="rgb("+d[0]+","+d[1]+","+d[2]+")",a.style.color=200>d[0]+d[1]+d[2]?"rgb(255,255,255)":"rgb(0,0,0)");b.checked=c;a=wpd.appData.getPlotData().getAutoDetector();b=wpd.graphicsWidget.getAllContexts();d=wpd.graphicsWidget.getImageSize();
a.imageData=b.oriImageCtx.getImageData(0,0,d.width,d.height)},markBox:function(){var a=new wpd.GridBoxTool;wpd.graphicsWidget.setTool(a)},clearMask:function(){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.removeRepainter();wpd.appData.getPlotData().getAutoDetector().gridMask={xmin:null,xmax:null,ymin:null,ymax:null,pixels:[]};wpd.graphicsWidget.resetData()},viewMask:function(){var a=new wpd.GridViewMaskTool;wpd.graphicsWidget.setTool(a)},grabMask:function(){var a=wpd.graphicsWidget.getAllContexts(),
b=wpd.graphicsWidget.getImageSize(),a=a.oriDataCtx.getImageData(0,0,b.width,b.height),c=[],d,k=0,m=wpd.appData.getPlotData().getAutoDetector(),l,n;for(d=0;d<a.data.length;d+=4)255===a.data[d]&&255===a.data[d+1]&&0===a.data[d+2]&&(c[k]=d/4,k++,l=parseInt(d/4%b.width,10),n=parseInt(d/4/b.width,10),1===k?(m.gridMask.xmin=l,m.gridMask.xmax=l,m.gridMask.ymin=n,m.gridMask.ymax=n):(l<m.gridMask.xmin&&(m.gridMask.xmin=l),l>m.gridMask.xmax&&(m.gridMask.xmax=l),n<m.gridMask.ymin&&(m.gridMask.ymin=n),n>m.gridMask.ymax&&
(m.gridMask.ymax=n)));m.gridMask.pixels=c},startColorPicker:function(){wpd.colorSelectionWidget.setParams({color:wpd.appData.getPlotData().getAutoDetector().gridLineColor,triggerElementId:"grid-color-picker-button",title:"Specify Grid Line Color",setColorDelegate:function(a){wpd.appData.getPlotData().getAutoDetector().gridLineColor=a}});wpd.colorSelectionWidget.startPicker()},changeColorDistance:d,changeBackgroundMode:function(){var a=document.getElementById("grid-background-mode").checked;wpd.appData.getPlotData().getAutoDetector().gridBackgroundMode=
a},testColor:function(){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.resetData();wpd.graphicsWidget.setRepainter(new wpd.GridColorFilterRepainter);var a=wpd.appData.getPlotData().getAutoDetector();d();a.generateGridBinaryData();wpd.colorSelectionWidget.paintFilteredColor(a.gridBinaryData,a.gridMask.pixels)},run:function(){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.removeRepainter();wpd.graphicsWidget.resetData();a();var c=wpd.appData.getPlotData().getAutoDetector(),d=wpd.graphicsWidget.getAllContexts(),
h=wpd.graphicsWidget.getImageSize(),g=document.getElementById("grid-horiz-perc"),k=document.getElementById("grid-vert-perc"),m=document.getElementById("grid-horiz-enable").checked,l=document.getElementById("grid-vert-enable").checked;document.getElementById("grid-background-mode");var n=wpd.appData.getPlotData();null==n.backupImageData&&(n.backupImageData=d.oriImageCtx.getImageData(0,0,h.width,h.height));c.imageData=d.oriImageCtx.getImageData(0,0,h.width,h.height);c.generateGridBinaryData();wpd.gridDetectionCore.setHorizontalParameters(m,
g.value);wpd.gridDetectionCore.setVerticalParameters(l,k.value);wpd.gridDetectionCore.run();wpd.graphicsWidget.runImageOp(b);wpd.appData.getPlotData().gridData=null},reset:a}}();wpd.GridColorFilterRepainter=function(){return function(){this.painterName="gridColorFilterRepainter";this.onRedraw=function(){var c=wpd.appData.getPlotData().getAutoDetector();wpd.colorSelectionWidget.paintFilteredColor(c.gridBinaryData,c.gridMask.pixels)}}}();
wpd.GridBoxTool=function(){return function(){var c=!1,a,b,d=wpd.graphicsWidget.getAllContexts(),e,f,h=function(){wpd.graphicsWidget.resetHover();d.hoverCtx.strokeStyle="rgb(0,0,0)";d.hoverCtx.strokeRect(b.x,b.y,f.x-b.x,f.y-b.y)},g=function(f,g,h){!1!==c&&(clearTimeout(e),c=!1,wpd.graphicsWidget.resetHover(),d.dataCtx.fillStyle="rgba(255,255,0,0.8)",d.dataCtx.fillRect(b.x,b.y,g.x-b.x,g.y-b.y),d.oriDataCtx.fillStyle="rgba(255,255,0,0.8)",d.oriDataCtx.fillRect(a.x,a.y,h.x-a.x,h.y-a.y))},k=null,m=null;
this.onAttach=function(){wpd.graphicsWidget.setRepainter(new wpd.GridMaskPainter);document.getElementById("grid-mask-box").classList.add("pressed-button");document.getElementById("grid-mask-view").classList.add("pressed-button")};this.onMouseDown=function(d,f,e){!0!==c&&(c=!0,a=e,b=f)};this.onMouseMove=function(a,b,d){!1!==c&&(f=b,clearTimeout(e),e=setTimeout(h,2))};this.onMouseOut=function(a,b,d){!0===c&&(clearTimeout(e),k=b,m=d)};this.onDocumentMouseUp=function(a,b,c){null!=k&&null!=m?g(a,k,m):
g(a,b,c);m=k=null};this.onMouseUp=function(a,b,c){g(a,b,c)};this.onRemove=function(){document.getElementById("grid-mask-box").classList.remove("pressed-button");document.getElementById("grid-mask-view").classList.remove("pressed-button");wpd.gridDetection.grabMask()}}}();
wpd.GridViewMaskTool=function(){return function(){this.onAttach=function(){wpd.graphicsWidget.setRepainter(new wpd.GridMaskPainter);document.getElementById("grid-mask-view").classList.add("pressed-button")};this.onRemove=function(){document.getElementById("grid-mask-view").classList.remove("pressed-button");wpd.gridDetection.grabMask()}}}();
wpd.GridMaskPainter=function(){return function(){var c=wpd.graphicsWidget.getAllContexts(),a=wpd.appData.getPlotData().getAutoDetector(),b=function(){if(null!=a.gridMask.pixels&&0!==a.gridMask.pixels.length){var b,e;b=wpd.graphicsWidget.getImageSize();imgData=c.oriDataCtx.getImageData(0,0,b.width,b.height);for(b=0;b<a.gridMask.pixels.length;b++)e=a.gridMask.pixels[b],imgData.data[4*e]=255,imgData.data[4*e+1]=255,imgData.data[4*e+2]=0,imgData.data[4*e+3]=200;c.oriDataCtx.putImageData(imgData,0,0);
wpd.graphicsWidget.copyImageDataLayerToScreen()}};this.painterName="gridMaskPainter";this.onRedraw=function(){wpd.gridDetection.grabMask();b()};this.onAttach=function(){wpd.graphicsWidget.resetData();b()}}}();wpd=wpd||{};
wpd.imageOps=function(){function c(a,c,e){var f,h,g,k,m,l;for(f=0;f<e;f++)for(h=0;h<c/2;h++)for(g=4*(f*c+h),k=4*((f+1)*c-(h+1)),l=0;4>l;l++)m=a.data[g+l],a.data[g+l]=a.data[k+l],a.data[k+l]=m;return{imageData:a,width:c,height:e}}function a(a,c,e){var f,h,g,k,m,l;for(f=0;f<e/2;f++)for(h=0;h<c;h++)for(g=4*(f*c+h),k=4*((e-(f+2))*c+h),l=0;4>l;l++)m=a.data[g+l],a.data[g+l]=a.data[k+l],a.data[k+l]=m;return{imageData:a,width:c,height:e}}return{hflip:function(){wpd.graphicsWidget.runImageOp(c)},vflip:function(){wpd.graphicsWidget.runImageOp(a)}}}();
wpd=wpd||{};wpd.keyCodes=function(){return{isUp:function(c){return 38===c},isDown:function(c){return 40===c},isLeft:function(c){return 37===c},isRight:function(c){return 39===c},isTab:function(c){return 9===c},isDel:function(c){return 46===c},isBackspace:function(c){return 8===c},isAlphabet:function(c,a){return 90<c||65>c?!1:String.fromCharCode(c).toLowerCase()===a},isEnter:function(c){return 13===c},isEsc:function(c){return 27===c}}}();wpd=wpd||{};
wpd.acquireData=function(){function c(){var a=new wpd.ManualSelectionTool;wpd.graphicsWidget.setTool(a)}function a(){var a=new wpd.DeleteDataPointTool;wpd.graphicsWidget.setTool(a)}function b(){wpd.appData.getPlotData().getActiveDataSeries().clearAll();wpd.graphicsWidget.removeTool();wpd.graphicsWidget.resetData();wpd.dataPointCounter.setCount();wpd.graphicsWidget.removeRepainter()}function d(){wpd.sidebar.show("acquireDataSidebar");e();var a=wpd.appData.getPlotData().axes;document.getElementById("edit-data-labels").style.display=
a instanceof wpd.BarAxes?"inline-block":"none";wpd.dataPointCounter.setCount()}function e(){var a=wpd.appData.getPlotData();a.getActiveDataSeries();var b=a.getActiveDataSeriesIndex(),c=document.getElementById("manual-sidebar-dataset-list"),d="",f;for(f=0;f<a.dataSeriesColl.length;f++)d+="<option>"+a.dataSeriesColl[f].name+"</option>";c.innerHTML=d;c.selectedIndex=b}function f(){wpd.graphicsWidget.setTool(new wpd.AdjustDataPointTool)}function h(){wpd.graphicsWidget.setTool(new wpd.EditLabelsTool)}
return{load:function(){wpd.appData.isAligned()?(d(),wpd.dataPointCounter.setCount(),wpd.graphicsWidget.removeTool(),wpd.graphicsWidget.setRepainter(new wpd.DataPointsRepainter),c()):wpd.messagePopup.show("Acquire Data","Please calibrate the axes before acquiring data.")},manualSelection:c,adjustPoints:f,deletePoint:a,clearAll:function(){0>=wpd.appData.getPlotData().getActiveDataSeries().getCount()||wpd.okCancelPopup.show("Clear data points?","This will delete all data points from this dataset",b,
function(){})},undo:function(){wpd.appData.getPlotData().getActiveDataSeries().removeLastPixel();wpd.graphicsWidget.resetData();wpd.graphicsWidget.forceHandlerRepaint();wpd.dataPointCounter.setCount()},showSidebar:d,switchToolOnKeyPress:function(b){switch(b){case "d":a();break;case "a":c();break;case "s":f();break;case "e":h()}},isToolSwitchKey:function(a){return wpd.keyCodes.isAlphabet(a,"a")||wpd.keyCodes.isAlphabet(a,"s")||wpd.keyCodes.isAlphabet(a,"d")||wpd.keyCodes.isAlphabet(a,"e")?!0:!1},updateDatasetControl:e,
changeDataset:function(a){a=a.selectedIndex;wpd.appData.getPlotData().setActiveDataSeriesIndex(a);wpd.graphicsWidget.forceHandlerRepaint();wpd.dataPointCounter.setCount()},editLabels:h}}();
wpd.dataPointLabelEditor=function(){function c(){var a=document.getElementById("data-point-label-field").value;null!=a&&0<a.length&&(b.setMetadataAt(d,[a]),wpd.graphicsWidget.resetData(),wpd.graphicsWidget.forceHandlerRepaint());wpd.popup.close("data-point-label-editor");wpd.graphicsWidget.setTool(e)}function a(){wpd.popup.close("data-point-label-editor");wpd.graphicsWidget.setTool(e)}var b,d,e;return{show:function(a,c,g){var k=a.getPixel(c).metadata[0];b=a;d=c;e=g;wpd.graphicsWidget.removeTool();
wpd.popup.show("data-point-label-editor");a=document.getElementById("data-point-label-field");a.value=k;a.focus()},ok:c,cancel:a,keydown:function(b){wpd.keyCodes.isEnter(b.keyCode)?c():wpd.keyCodes.isEsc(b.keyCode)&&a();b.stopPropagation()}}}();
wpd.ManualSelectionTool=function(){return function(){var c=wpd.appData.getPlotData();this.onAttach=function(){document.getElementById("manual-select-button").classList.add("pressed-button");wpd.graphicsWidget.setRepainter(new wpd.DataPointsRepainter)};this.onMouseClick=function(a,b,d){b=c.getActiveDataSeries();var e;c.axes.dataPointsHaveLabels?(e=b.getMetadataKeys(),null!=e&&"Label"===e[0]||b.setMetadataKeys(["Label"]),e=c.axes.dataPointsLabelPrefix+b.getCount(),b.addPixel(d.x,d.y,[e]),wpd.graphicsHelper.drawPoint(d,
"rgb(200,0,0)",e)):(b.addPixel(d.x,d.y),wpd.graphicsHelper.drawPoint(d,"rgb(200,0,0)"));wpd.graphicsWidget.updateZoomOnEvent(a);wpd.dataPointCounter.setCount();c.axes.dataPointsHaveLabels&&a.shiftKey&&wpd.dataPointLabelEditor.show(b,b.getCount()-1,this)};this.onRemove=function(){document.getElementById("manual-select-button").classList.remove("pressed-button")};this.onKeyDown=function(a){var b=c.getActiveDataSeries(),d=b.getCount()-1,e=b.getPixel(d),f=.5/wpd.graphicsWidget.getZoomRatio();if(wpd.keyCodes.isUp(a.keyCode))e.y-=
f;else if(wpd.keyCodes.isDown(a.keyCode))e.y+=f;else if(wpd.keyCodes.isLeft(a.keyCode))e.x-=f;else if(wpd.keyCodes.isRight(a.keyCode))e.x+=f;else{wpd.acquireData.isToolSwitchKey(a.keyCode)&&wpd.acquireData.switchToolOnKeyPress(String.fromCharCode(a.keyCode).toLowerCase());return}b.setPixelAt(d,e.x,e.y);wpd.graphicsWidget.resetData();wpd.graphicsWidget.forceHandlerRepaint();wpd.graphicsWidget.updateZoomToImagePosn(e.x,e.y);a.preventDefault()}}}();
wpd.DeleteDataPointTool=function(){return function(){wpd.graphicsWidget.getAllContexts();var c=wpd.appData.getPlotData();this.onAttach=function(){document.getElementById("delete-point-button").classList.add("pressed-button");wpd.graphicsWidget.setRepainter(new wpd.DataPointsRepainter)};this.onMouseClick=function(a,b,d){c.getActiveDataSeries().removeNearestPixel(d.x,d.y);wpd.graphicsWidget.resetData();wpd.graphicsWidget.forceHandlerRepaint();wpd.graphicsWidget.updateZoomOnEvent(a);wpd.dataPointCounter.setCount()};
this.onKeyDown=function(a){wpd.acquireData.isToolSwitchKey(a.keyCode)&&wpd.acquireData.switchToolOnKeyPress(String.fromCharCode(a.keyCode).toLowerCase())};this.onRemove=function(){document.getElementById("delete-point-button").classList.remove("pressed-button")}}}();
wpd.DataPointsRepainter=function(){return function(){var c=function(){var a=wpd.appData.getPlotData(),b=a.getActiveDataSeries(),c,e,f;c=b.getMetadataKeys();var h=!1,g;a.axes.dataPointsHaveLabels&&null!=c&&"Label"===c[0]&&(h=!0);for(c=0;c<b.getCount();c++)e=b.getPixel(c),f=(f=0<=b.getSelectedPixels().indexOf(c))?"rgb(0,200,0)":"rgb(200,0,0)",h?(g=e.metadata[0],null==g&&(g=a.axes.dataPointsLabelPrefix+c),wpd.graphicsHelper.drawPoint(e,f,g)):wpd.graphicsHelper.drawPoint(e,f)};this.painterName="dataPointsRepainter";
this.onAttach=function(){wpd.graphicsWidget.resetData();c()};this.onRedraw=function(){c()};this.onForcedRedraw=function(){wpd.graphicsWidget.resetData();c()}}}();
wpd.AdjustDataPointTool=function(){return function(){this.onAttach=function(){document.getElementById("manual-adjust-button").classList.add("pressed-button");wpd.graphicsWidget.setRepainter(new wpd.DataPointsRepainter);wpd.toolbar.show("adjustDataPointsToolbar")};this.onRemove=function(){wpd.appData.getPlotData().getActiveDataSeries().unselectAll();wpd.graphicsWidget.forceHandlerRepaint();document.getElementById("manual-adjust-button").classList.remove("pressed-button");wpd.toolbar.clear()};this.onMouseClick=
function(c,a,b){a=wpd.appData.getPlotData().getActiveDataSeries();a.unselectAll();a.selectNearestPixel(b.x,b.y);wpd.graphicsWidget.forceHandlerRepaint();wpd.graphicsWidget.updateZoomOnEvent(c)};this.onKeyDown=function(c){if(wpd.acquireData.isToolSwitchKey(c.keyCode))wpd.acquireData.switchToolOnKeyPress(String.fromCharCode(c.keyCode).toLowerCase());else{var a=wpd.appData.getPlotData().getActiveDataSeries(),b=a.getSelectedPixels()[0];if(null!=b){var d=a.getPixel(b),e=d.x,d=d.y,f=!0===c.shiftKey?5/wpd.graphicsWidget.getZoomRatio():
.5/wpd.graphicsWidget.getZoomRatio();if(wpd.keyCodes.isUp(c.keyCode))d-=f;else if(wpd.keyCodes.isDown(c.keyCode))d+=f;else if(wpd.keyCodes.isLeft(c.keyCode))e-=f;else if(wpd.keyCodes.isRight(c.keyCode))e+=f;else if(wpd.keyCodes.isAlphabet(c.keyCode,"q"))a.selectPreviousPixel(),b=a.getSelectedPixels()[0],d=a.getPixel(b),e=d.x,d=d.y;else if(wpd.keyCodes.isAlphabet(c.keyCode,"w"))a.selectNextPixel(),b=a.getSelectedPixels()[0],d=a.getPixel(b),e=d.x,d=d.y;else if(wpd.keyCodes.isAlphabet(c.keyCode,"e")){if(wpd.appData.getPlotData().axes.dataPointsHaveLabels){b=
a.getSelectedPixels()[0];c.preventDefault();c.stopPropagation();wpd.dataPointLabelEditor.show(a,b,this);return}}else{if(wpd.keyCodes.isDel(c.keyCode)||wpd.keyCodes.isBackspace(c.keyCode))a.removePixelAtIndex(b),a.unselectAll(),0<=a.findNearestPixel(e,d)&&(a.selectNearestPixel(e,d),b=a.getSelectedPixels()[0],d=a.getPixel(b),e=d.x,d=d.y),wpd.graphicsWidget.resetData(),wpd.graphicsWidget.forceHandlerRepaint(),wpd.graphicsWidget.updateZoomToImagePosn(e,d),wpd.dataPointCounter.setCount(),c.preventDefault(),
c.stopPropagation();return}a.setPixelAt(b,e,d);wpd.graphicsWidget.forceHandlerRepaint();wpd.graphicsWidget.updateZoomToImagePosn(e,d);c.preventDefault();c.stopPropagation()}}}}}();
wpd.EditLabelsTool=function(){this.onAttach=function(){document.getElementById("edit-data-labels").classList.add("pressed-button");wpd.graphicsWidget.setRepainter(new wpd.DataPointsRepainter)};this.onRemove=function(){document.getElementById("edit-data-labels").classList.remove("pressed-button");wpd.appData.getPlotData().getActiveDataSeries().unselectAll()};this.onMouseClick=function(c,a,b){a=wpd.appData.getPlotData().getActiveDataSeries();a.unselectAll();b=a.selectNearestPixel(b.x,b.y);0<=b&&(wpd.graphicsWidget.forceHandlerRepaint(),
wpd.graphicsWidget.updateZoomOnEvent(c),wpd.dataPointLabelEditor.show(a,b,this))};this.onKeyDown=function(c){wpd.acquireData.isToolSwitchKey(c.keyCode)&&wpd.acquireData.switchToolOnKeyPress(String.fromCharCode(c.keyCode).toLowerCase())}};wpd.dataPointCounter=function(){return{setCount:function(){var c=document.getElementsByClassName("data-point-counter"),a;for(a=0;a<c.length;a++)c[a].innerHTML=wpd.appData.getPlotData().getActiveDataSeries().getCount()}}}();wpd=wpd||{};
wpd.dataMask=function(){function c(){var a=wpd.graphicsWidget.getAllContexts(),b=wpd.graphicsWidget.getImageSize(),a=a.oriDataCtx.getImageData(0,0,b.width,b.height),b=[],c,e=0,f=wpd.appData.getPlotData().getAutoDetector();for(c=0;c<a.data.length;c+=4)255===a.data[c]&&255===a.data[c+1]&&0===a.data[c+2]&&(b[e]=c/4,e++);f.mask=b}return{grabMask:c,markBox:function(){var a=new wpd.BoxMaskTool;wpd.graphicsWidget.setTool(a)},markPen:function(){var a=new wpd.PenMaskTool;wpd.graphicsWidget.setTool(a)},eraseMarks:function(){var a=
new wpd.EraseMaskTool;wpd.graphicsWidget.setTool(a)},viewMask:function(){var a=new wpd.ViewMaskTool;wpd.graphicsWidget.setTool(a)},clearMask:function(){wpd.graphicsWidget.resetData();c()}}}();
wpd.BoxMaskTool=function(){return function(){var c=!1,a,b,d=wpd.graphicsWidget.getAllContexts(),e,f,h=function(){wpd.graphicsWidget.resetHover();d.hoverCtx.strokeStyle="rgb(0,0,0)";d.hoverCtx.strokeRect(b.x,b.y,f.x-b.x,f.y-b.y)},g=function(f,g,h){!1!==c&&(clearTimeout(e),c=!1,wpd.graphicsWidget.resetHover(),d.dataCtx.fillStyle="rgba(255,255,0,1)",d.dataCtx.fillRect(b.x,b.y,g.x-b.x,g.y-b.y),d.oriDataCtx.fillStyle="rgba(255,255,0,1)",d.oriDataCtx.fillRect(a.x,a.y,h.x-a.x,h.y-a.y))},k=null,m=null;this.onAttach=
function(){wpd.graphicsWidget.setRepainter(new wpd.MaskPainter);document.getElementById("box-mask").classList.add("pressed-button");document.getElementById("view-mask").classList.add("pressed-button")};this.onMouseDown=function(d,f,e){!0!==c&&(c=!0,a=e,b=f)};this.onMouseMove=function(a,b,d){!1!==c&&(f=b,clearTimeout(e),e=setTimeout(h,2))};this.onMouseOut=function(a,b,d){!0===c&&(clearTimeout(e),k=b,m=d)};this.onDocumentMouseUp=function(a,b,c){null!=k&&null!=m?g(a,k,m):g(a,b,c);m=k=null};this.onMouseUp=
function(a,b,c){g(a,b,c)};this.onRemove=function(){document.getElementById("box-mask").classList.remove("pressed-button");document.getElementById("view-mask").classList.remove("pressed-button");wpd.dataMask.grabMask()}}}();
wpd.PenMaskTool=function(){return function(){var c=wpd.graphicsWidget.getAllContexts(),a=!1,b,d,e,f=function(){c.dataCtx.strokeStyle="rgba(255,255,0,1)";c.dataCtx.lineTo(d.x,d.y);c.dataCtx.stroke();c.oriDataCtx.strokeStyle="rgba(255,255,0,1)";c.oriDataCtx.lineTo(e.x,e.y);c.oriDataCtx.stroke()};this.onAttach=function(){wpd.graphicsWidget.setRepainter(new wpd.MaskPainter);document.getElementById("pen-mask").classList.add("pressed-button");document.getElementById("view-mask").classList.add("pressed-button");
wpd.toolbar.show("paintToolbar")};this.onMouseDown=function(b,d,f){!0!==a&&(b=parseInt(document.getElementById("paintThickness").value,10),a=!0,c.dataCtx.strokeStyle="rgba(255,255,0,1)",c.dataCtx.lineWidth=b*wpd.graphicsWidget.getZoomRatio(),c.dataCtx.beginPath(),c.dataCtx.moveTo(d.x,d.y),c.oriDataCtx.strokeStyle="rgba(255,255,0,1)",c.oriDataCtx.lineWidth=b,c.oriDataCtx.beginPath(),c.oriDataCtx.moveTo(f.x,f.y))};this.onMouseMove=function(c,g,k){!1!==a&&(d=g,e=k,clearTimeout(b),b=setTimeout(f,2))};
this.onMouseUp=function(d,f,e){clearTimeout(b);c.dataCtx.closePath();c.dataCtx.lineWidth=1;c.oriDataCtx.closePath();c.oriDataCtx.lineWidth=1;a=!1};this.onMouseOut=function(a,b,c){this.onMouseUp(a,b,c)};this.onRemove=function(){document.getElementById("pen-mask").classList.remove("pressed-button");document.getElementById("view-mask").classList.remove("pressed-button");wpd.dataMask.grabMask();wpd.toolbar.clear()}}}();
wpd.EraseMaskTool=function(){return function(){var c=wpd.graphicsWidget.getAllContexts(),a=!1,b,d,e,f=function(){c.dataCtx.globalCompositeOperation="destination-out";c.oriDataCtx.globalCompositeOperation="destination-out";c.dataCtx.strokeStyle="rgba(255,255,0,1)";c.dataCtx.lineTo(d.x,d.y);c.dataCtx.stroke();c.oriDataCtx.strokeStyle="rgba(255,255,0,1)";c.oriDataCtx.lineTo(e.x,e.y);c.oriDataCtx.stroke()};this.onAttach=function(){wpd.graphicsWidget.setRepainter(new wpd.MaskPainter);document.getElementById("erase-mask").classList.add("pressed-button");
document.getElementById("view-mask").classList.add("pressed-button");wpd.toolbar.show("eraseToolbar")};this.onMouseDown=function(b,d,f){!0!==a&&(b=parseInt(document.getElementById("eraseThickness").value,10),a=!0,c.dataCtx.globalCompositeOperation="destination-out",c.oriDataCtx.globalCompositeOperation="destination-out",c.dataCtx.strokeStyle="rgba(0,0,0,1)",c.dataCtx.lineWidth=b*wpd.graphicsWidget.getZoomRatio(),c.dataCtx.beginPath(),c.dataCtx.moveTo(d.x,d.y),c.oriDataCtx.strokeStyle="rgba(0,0,0,1)",
c.oriDataCtx.lineWidth=b,c.oriDataCtx.beginPath(),c.oriDataCtx.moveTo(f.x,f.y))};this.onMouseMove=function(c,g,k){!1!==a&&(d=g,e=k,clearTimeout(b),b=setTimeout(f,2))};this.onMouseOut=function(a,b,c){this.onMouseUp(a,b,c)};this.onMouseUp=function(d,f,e){clearTimeout(b);c.dataCtx.closePath();c.dataCtx.lineWidth=1;c.oriDataCtx.closePath();c.oriDataCtx.lineWidth=1;c.dataCtx.globalCompositeOperation="source-over";c.oriDataCtx.globalCompositeOperation="source-over";a=!1};this.onRemove=function(){document.getElementById("erase-mask").classList.remove("pressed-button");
document.getElementById("view-mask").classList.remove("pressed-button");wpd.dataMask.grabMask();wpd.toolbar.clear()}}}();wpd.ViewMaskTool=function(){return function(){this.onAttach=function(){wpd.graphicsWidget.setRepainter(new wpd.MaskPainter);document.getElementById("view-mask").classList.add("pressed-button")};this.onRemove=function(){document.getElementById("view-mask").classList.remove("pressed-button");wpd.dataMask.grabMask()}}}();
wpd.MaskPainter=function(){return function(){var c=wpd.graphicsWidget.getAllContexts(),a=wpd.appData.getPlotData().getAutoDetector(),b=function(){if(null!=a.mask&&0!==a.mask.length){var b,e;b=wpd.graphicsWidget.getImageSize();imgData=c.oriDataCtx.getImageData(0,0,b.width,b.height);for(b=0;b<a.mask.length;b++)e=a.mask[b],imgData.data[4*e]=255,imgData.data[4*e+1]=255,imgData.data[4*e+2]=0,imgData.data[4*e+3]=255;c.oriDataCtx.putImageData(imgData,0,0);wpd.graphicsWidget.copyImageDataLayerToScreen()}};
this.painterName="dataMaskPainter";this.onRedraw=function(){wpd.dataMask.grabMask();b()};this.onAttach=function(){wpd.graphicsWidget.resetData();b()}}}();wpd=wpd||{};
wpd.measurementModes={distance:{name:"distance",connectivity:2,addButtonId:"add-pair-button",deleteButtonId:"delete-pair-button",sidebarId:"measure-distances-sidebar",init:function(){var c=wpd.appData.getPlotData();null==c.distanceMeasurementData&&(c.distanceMeasurementData=new wpd.ConnectedPoints(2))},clear:function(){wpd.appData.getPlotData().distanceMeasurementData=new wpd.ConnectedPoints(2)},getData:function(){return wpd.appData.getPlotData().distanceMeasurementData}},angle:{name:"angle",connectivity:3,
addButtonId:"add-angle-button",deleteButtonId:"delete-angle-button",sidebarId:"measure-angles-sidebar",init:function(){var c=wpd.appData.getPlotData();null==c.angleMeasurementData&&(c.angleMeasurementData=new wpd.ConnectedPoints(3))},clear:function(){wpd.appData.getPlotData().angleMeasurementData=new wpd.ConnectedPoints(3)},getData:function(){return wpd.appData.getPlotData().angleMeasurementData}},openPath:{name:"open-path",connectivity:-1,addButtonId:"add-open-path-button",deleteButtonId:"delete-open-path-button",
sidebarId:"measure-open-path-sidebar",init:function(){var c=wpd.appData.getPlotData();null==c.openPathMeasurementData&&(c.openPathMeasurementData=new wpd.ConnectedPoints)},clear:function(){wpd.appData.getPlotData().openPathMeasurementData=new wpd.ConnectedPoints},getData:function(){return wpd.appData.getPlotData().openPathMeasurementData}},closedPath:{name:"closed-path",connectivity:-1,addButtonId:"add-closed-path-button",deleteButtonId:"delete-closed-path-button",sidebarId:"measure-closed-path-sidebar",
init:function(){var c=wpd.appData.getPlotData();null==c.closedPathMeasurementData&&(c.closedPathMeasurementData=new wpd.ConnectedPoints)},clear:function(){wpd.appData.getPlotData().closedPathMeasurementData=new wpd.ConnectedPoints},getData:function(){return wpd.appData.getPlotData().closedPathMeasurementData}}};
wpd.measurement=function(){var c;return{start:function(a){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.resetData();a.init();wpd.sidebar.show(a.sidebarId);wpd.graphicsWidget.setTool(new wpd.AddMeasurementTool(a));wpd.graphicsWidget.forceHandlerRepaint();c=a},addItem:function(){wpd.graphicsWidget.setTool(new wpd.AddMeasurementTool(c))},deleteItem:function(){wpd.graphicsWidget.setTool(new wpd.DeleteMeasurementTool(c))},clearAll:function(){wpd.graphicsWidget.removeTool();wpd.graphicsWidget.resetData();
c.clear()}}}();
wpd.AddMeasurementTool=function(){return function(c){var a=wpd.graphicsWidget.getAllContexts(),b=0,d=!0,e=[];this.onAttach=function(){document.getElementById(c.addButtonId).classList.add("pressed-button");wpd.graphicsWidget.setRepainter(new wpd.MeasurementRepainter(c))};this.onRemove=function(){document.getElementById(c.addButtonId).classList.remove("pressed-button")};this.onKeyDown=function(a){wpd.keyCodes.isAlphabet(a.keyCode,"a")?(wpd.graphicsWidget.resetHover(),wpd.graphicsWidget.setTool(new wpd.AddMeasurementTool(c))):wpd.keyCodes.isAlphabet(a.keyCode,
"d")?(wpd.graphicsWidget.resetHover(),wpd.graphicsWidget.setTool(new wpd.DeleteMeasurementTool(c))):(wpd.keyCodes.isEnter(a.keyCode)||wpd.keyCodes.isEsc(a.keyCode))&&!0===d&&0>c.connectivity&&(d=!1,c.getData().addConnection(e),wpd.graphicsWidget.forceHandlerRepaint(),wpd.graphicsWidget.setTool(new wpd.AdjustMeasurementTool(c)))};this.onMouseClick=function(f,h,g){if(d){wpd.graphicsWidget.resetHover();e[2*b]=g.x;e[2*b+1]=g.y;b+=1;if(b===c.connectivity){d=!1;c.getData().addConnection(e);wpd.graphicsWidget.forceHandlerRepaint();
wpd.graphicsWidget.setTool(new wpd.AdjustMeasurementTool(c));return}if(1<b){var k=wpd.graphicsWidget.screenPx(e[2*(b-2)],e[2*(b-2)+1]);a.dataCtx.beginPath();a.dataCtx.strokeStyle="rgb(0,0,10)";a.dataCtx.moveTo(k.x,k.y);a.dataCtx.lineTo(h.x,h.y);a.dataCtx.stroke();a.oriDataCtx.beginPath();a.oriDataCtx.strokeStyle="rgb(0,0,10)";a.oriDataCtx.moveTo(e[2*(b-2)],e[2*(b-2)+1]);a.oriDataCtx.lineTo(g.x,g.y);a.oriDataCtx.stroke()}a.dataCtx.beginPath();a.dataCtx.fillStyle="rgb(200, 0, 0)";a.dataCtx.arc(h.x,
h.y,3,0,2*Math.PI,!0);a.dataCtx.fill();a.oriDataCtx.beginPath();a.oriDataCtx.fillStyle="rgb(200,0,0)";a.oriDataCtx.arc(g.x,g.y,3,0,2*Math.PI,!0);a.oriDataCtx.fill()}wpd.graphicsWidget.updateZoomOnEvent(f)};this.onMouseMove=function(c,h,g){d&&1<=b&&(wpd.graphicsWidget.resetHover(),c=wpd.graphicsWidget.screenPx(e[2*(b-1)],e[2*(b-1)+1]),a.hoverCtx.beginPath(),a.hoverCtx.strokeStyle="rgb(0,0,0)",a.hoverCtx.moveTo(c.x,c.y),a.hoverCtx.lineTo(h.x,h.y),a.hoverCtx.stroke())}}}();
wpd.DeleteMeasurementTool=function(){return function(c){wpd.graphicsWidget.getAllContexts();wpd.appData.getPlotData();this.onAttach=function(){document.getElementById(c.deleteButtonId).classList.add("pressed-button");wpd.graphicsWidget.setRepainter(new wpd.MeasurementRepainter(c))};this.onRemove=function(){document.getElementById(c.deleteButtonId).classList.remove("pressed-button")};this.onKeyDown=function(a){wpd.keyCodes.isAlphabet(a.keyCode,"a")?wpd.graphicsWidget.setTool(new wpd.AddMeasurementTool(c)):
wpd.keyCodes.isAlphabet(a.keyCode,"d")&&wpd.graphicsWidget.setTool(new wpd.DeleteMeasurementTool(c))};this.onMouseClick=function(a,b,d){c.getData().deleteNearestConnection(d.x,d.y);wpd.graphicsWidget.setTool(new wpd.AdjustMeasurementTool(c));wpd.graphicsWidget.resetData();wpd.graphicsWidget.forceHandlerRepaint();wpd.graphicsWidget.updateZoomOnEvent(a)}}}();
wpd.AdjustMeasurementTool=function(){return function(c){this.onAttach=function(){wpd.graphicsWidget.setRepainter(new wpd.MeasurementRepainter(c))};this.onMouseClick=function(a,b,d){c.getData().selectNearestPoint(d.x,d.y);wpd.graphicsWidget.forceHandlerRepaint();wpd.graphicsWidget.updateZoomOnEvent(a)};this.onKeyDown=function(a){if(wpd.keyCodes.isAlphabet(a.keyCode,"a"))wpd.graphicsWidget.setTool(new wpd.AddMeasurementTool(c));else if(wpd.keyCodes.isAlphabet(a.keyCode,"d"))wpd.graphicsWidget.setTool(new wpd.DeleteMeasurementTool(c));
else{var b=c.getData(),d=b.getSelectedConnectionAndPoint();if(0<=d.connectionIndex&&0<=d.pointIndex){var e=!0===a.shiftKey?5/wpd.graphicsWidget.getZoomRatio():.5/wpd.graphicsWidget.getZoomRatio(),f=b.getPointAt(d.connectionIndex,d.pointIndex);if(wpd.keyCodes.isUp(a.keyCode))f.y-=e;else if(wpd.keyCodes.isDown(a.keyCode))f.y+=e;else if(wpd.keyCodes.isLeft(a.keyCode))f.x-=e;else if(wpd.keyCodes.isRight(a.keyCode))f.x+=e;else return;b.setPointAt(d.connectionIndex,d.pointIndex,f.x,f.y);wpd.graphicsWidget.forceHandlerRepaint();
wpd.graphicsWidget.updateZoomToImagePosn(f.x,f.y);a.preventDefault();a.stopPropagation()}}}}}();
wpd.MeasurementRepainter=function(){return function(c){var a=wpd.graphicsWidget.getAllContexts(),b=function(b,c,d,e,m,l,n,p){a.dataCtx.beginPath();a.dataCtx.strokeStyle="rgb(0,0,10)";a.dataCtx.moveTo(b,c);a.dataCtx.lineTo(d,e);a.dataCtx.stroke();a.oriDataCtx.beginPath();a.oriDataCtx.strokeStyle="rgb(0,0,10)";a.oriDataCtx.moveTo(m,l);a.oriDataCtx.lineTo(n,p);a.oriDataCtx.stroke()},d=function(b,c,d,e,m){a.dataCtx.beginPath();a.dataCtx.fillStyle=m?"rgb(0, 200, 0)":"rgb(200, 0, 0)";a.dataCtx.arc(b,c,
3,0,2*Math.PI,!0);a.dataCtx.fill();a.oriDataCtx.beginPath();a.oriDataCtx.fillStyle=m?"rgb(0,200,0)":"rgb(200,0,0)";a.oriDataCtx.arc(d,e,3,0,2*Math.PI,!0);a.oriDataCtx.fill()},e=function(b,c,d,e,m){var l;b=parseInt(b,10);c=parseInt(c,10);d=parseInt(d,10);e=parseInt(e,10);a.dataCtx.font="14px sans-serif";l=a.dataCtx.measureText(m).width;a.dataCtx.fillStyle="rgba(255, 255, 255, 0.7)";a.dataCtx.fillRect(b-5,c-15,l+10,25);a.dataCtx.fillStyle="rgb(200, 0, 0)";a.dataCtx.fillText(m,b,c);a.oriDataCtx.font=
"14px sans-serif";l=a.oriDataCtx.measureText(m).width;a.oriDataCtx.fillStyle="rgba(255, 255, 255, 0.7)";a.oriDataCtx.fillRect(d-5,e-15,l+10,25);a.oriDataCtx.fillStyle="rgb(200, 0, 0)";a.oriDataCtx.fillText(m,d,e)};this.painterName="measurementRepainter-"+c.name;this.onAttach=function(){wpd.graphicsWidget.resetData()};this.onRedraw=function(){if(c.name===wpd.measurementModes.distance.name){var f=wpd.appData.getPlotData().distanceMeasurementData,h=f.connectionCount(),g,k,m,l,n,p,q,t,r,u,v=wpd.appData.getPlotData().axes;
for(g=0;g<h;g++)k=f.getConnectionAt(g),m=k[0],l=k[1],n=k[2],k=k[3],r=f.isPointSelected(g,0),u=f.isPointSelected(g,1),t=!0===wpd.appData.isAligned()&&v instanceof wpd.MapAxes?"Dist"+g.toString()+": "+v.pixelToDataDistance(f.getDistance(g)).toFixed(2)+" "+v.getUnits():"Dist"+g.toString()+": "+f.getDistance(g).toFixed(2)+" px",p=wpd.graphicsWidget.screenPx(m,l),q=wpd.graphicsWidget.screenPx(n,k),b(p.x,p.y,q.x,q.y,m,l,n,k),d(p.x,p.y,m,l,r),d(q.x,q.y,n,k,u),e(.5*(p.x+q.x),.5*(p.y+q.y),.5*(m+n),.5*(l+k),
t)}else if(c.name===wpd.measurementModes.angle.name){var f=wpd.appData.getPlotData().angleMeasurementData,h=f.connectionCount(),w,x,z,A,B;for(g=0;g<h;g++)n=f.getConnectionAt(g),q=n[0],t=n[1],m=n[2],l=n[3],r=n[4],u=n[5],z=f.isPointSelected(g,0),A=f.isPointSelected(g,1),B=f.isPointSelected(g,2),v="Theta"+g.toString()+": "+f.getAngle(g).toFixed(2)+"\u00b0",p=Math.atan2(t-l,q-m),k=Math.atan2(u-l,r-m),w=wpd.graphicsWidget.screenPx(q,t),n=wpd.graphicsWidget.screenPx(m,l),x=wpd.graphicsWidget.screenPx(r,
u),b(w.x,w.y,n.x,n.y,q,t,m,l),b(n.x,n.y,x.x,x.y,m,l,r,u),d(w.x,w.y,q,t,z),d(n.x,n.y,m,l,A),d(x.x,x.y,r,u,B),q=n.x,t=n.y,r=m,u=l,a.dataCtx.beginPath(),a.dataCtx.strokeStyle="rgb(0,0,10)",a.dataCtx.arc(q,t,15,p,k,!0),a.dataCtx.stroke(),a.oriDataCtx.beginPath(),a.oriDataCtx.strokeStyle="rgb(0,0,10)",a.oriDataCtx.arc(r,u,15,p,k,!0),a.oriDataCtx.stroke(),e(n.x+10,n.y+15,m+10,l+15,v)}};this.onForcedRedraw=function(){wpd.graphicsWidget.resetData();this.onRedraw()}}}();wpd=wpd||{};
wpd.ajax=function(){return{get:function(c,a){if(null!=a){var b=new XMLHttpRequest;b.onload=function(c){200===this.status&&a(b)};b.open("GET",c,!0);b.send()}},post:function(c,a,b){if(null!=b){var d=new XMLHttpRequest;d.onload=function(a){200===this.status&&b(d)};d.open("POST",c,!0);d.setRequestHeader("Content-type","application/json");d.send(a)}}}}();wpd=wpd||{};
wpd.args=function(){return{getValue:function(c){var a,b,d=window.location.search.substring(1).split("&");for(a=0;a<d.length;a++)if(b=d[a].split("="),b[0]===c)return unescape(b[1]);return null}}}();wpd=wpd||{};
wpd.download=function(){function c(a,b,c){var e,f,h,g;e=document.createElement("div");f=document.createElement("form");h=document.createElement("textarea");g=document.createElement("input");g.type="hidden";f.setAttribute("method","post");"json"===c?f.setAttribute("action","php/json.php"):"csv"===c&&f.setAttribute("action","php/csvexport.php");h.setAttribute("name","data");h.setAttribute("id","data");g.setAttribute("name","filename");g.setAttribute("id","filename");g.value=b.replace(/[^a-zA-Z\d+\.\-_\s]/g,
"_");f.appendChild(h);f.appendChild(g);e.appendChild(f);document.body.appendChild(e);e.style.display="none";h.innerHTML=a;f.submit();document.body.removeChild(e)}return{json:function(a,b){null==b&&(b="wpd_plot_data");c(a,b,"json")},csv:function(a,b){null==b&&(b="data");c(a,b,"csv")}}}();wpd=wpd||{};
wpd.plotly=function(){return{send:function(c){var a=document.createElement("div"),b=document.createElement("form"),d=document.createElement("textarea");b.setAttribute("method","post");b.setAttribute("action","https://plot.ly/external");b.setAttribute("target","_blank");d.setAttribute("name","data");d.setAttribute("id","data");b.appendChild(d);a.appendChild(b);document.body.appendChild(a);a.style.display="none";c=JSON.stringify(c);d.innerHTML=c;b.submit();document.body.removeChild(a)}}}();
wpd=wpd||{};
wpd.saveResume=function(){function c(a){var c=wpd.appData.getPlotData();a=a.wpd;var e,f,h,g;c.reset();wpd.appData.isAligned(!1);if(null!=a.axesType&&("ImageAxes"===a.axesType||null!=a.calibration&&null!=a.axesParameters)){if("ImageAxes"!==a.axesType){e="TernaryAxes"===a.axesType?new wpd.Calibration(3):new wpd.Calibration(2);for(f=0;f<a.calibration.length;f++)e.addPoint(a.calibration[f].px,a.calibration[f].py,a.calibration[f].dx,a.calibration[f].dy,a.calibration[f].dz);c.calibration=e}if("XYAxes"===a.axesType){if(c.axes=
new wpd.XYAxes,!c.axes.calibrate(c.calibration,a.axesParameters.isLogX,a.axesParameters.isLogY))return}else if("BarAxes"===a.axesType){if(c.axes=new wpd.BarAxes,!c.axes.calibrate(c.calibration,a.axesParameters.isLog))return}else if("PolarAxes"===a.axesType){if(c.axes=new wpd.PolarAxes,!c.axes.calibrate(c.calibration,a.axesParameters.isDegrees,a.axesParameters.isClockwise))return}else if("TernaryAxes"===a.axesType){if(c.axes=new wpd.TernaryAxes,!c.axes.calibrate(c.calibration,a.axesParameters.isRange100,
a.axesParameters.isNormalOrientation))return}else if("MapAxes"===a.axesType){if(c.axes=new wpd.MapAxes,!c.axes.calibrate(c.calibration,a.axesParameters.scaleLength,a.axesParameters.unitString))return}else"ImageAxes"===a.axesType&&(c.axes=new wpd.ImageAxes);wpd.appData.isAligned(!0);if(null!=a.dataSeries){for(f=0;f<a.dataSeries.length;f++)for(h=a.dataSeries[f],c.dataSeriesColl[f]=new wpd.DataSeries,g=c.dataSeriesColl[f],g.name=h.name,null!=h.metadataKeys&&g.setMetadataKeys(h.metadataKeys),e=0;e<h.data.length;e++)g.addPixel(h.data[e].x,
h.data[e].y,h.data[e].metadata);if(null!=a.distanceMeasurementData)for(c.distanceMeasurementData=new wpd.ConnectedPoints(2),f=0;f<a.distanceMeasurementData.length;f++)c.distanceMeasurementData.addConnection(a.distanceMeasurementData[f]);if(null!=a.angleMeasurementData)for(c.angleMeasurementData=new wpd.ConnectedPoints(3),f=0;f<a.angleMeasurementData.length;f++)c.angleMeasurementData.addConnection(a.angleMeasurementData[f])}}}function a(){var a=wpd.appData.getPlotData(),c=a.calibration,e={wpd:{version:[3,
8],axesType:null,axesParameters:null,calibration:null,dataSeries:[],distanceMeasurementData:null,angleMeasurementData:null}},f="",h,g;if(null!=c)for(e.wpd.calibration=[],f=0;f<c.getCount();f++)e.wpd.calibration[f]=c.getPoint(f);null!=a.axes&&(a.axes instanceof wpd.XYAxes?(e.wpd.axesType="XYAxes",e.wpd.axesParameters={isLogX:a.axes.isLogX(),isLogY:a.axes.isLogY()}):a.axes instanceof wpd.BarAxes?(e.wpd.axesType="BarAxes",e.wpd.axesParameters={isLog:a.axes.isLog()}):a.axes instanceof wpd.PolarAxes?(e.wpd.axesType=
"PolarAxes",e.wpd.axesParameters={isDegrees:a.axes.isThetaDegrees(),isClockwise:a.axes.isThetaClockwise()}):a.axes instanceof wpd.TernaryAxes?(e.wpd.axesType="TernaryAxes",e.wpd.axesParameters={isRange100:a.axes.isRange100(),isNormalOrientation:a.axes.isNormalOrientation()}):a.axes instanceof wpd.MapAxes?(e.wpd.axesType="MapAxes",e.wpd.axesParameters={scaleLength:a.axes.getScaleLength(),unitString:a.axes.getUnits()}):a.axes instanceof wpd.ImageAxes&&(e.wpd.axesType="ImageAxes"));for(f=0;f<a.dataSeriesColl.length;f++)for(c=
a.dataSeriesColl[f],e.wpd.dataSeries[f]={name:c.name,data:[]},h=c.getMetadataKeys(),null!=h&&(e.wpd.dataSeries[f].metadataKeys=h),h=0;h<c.getCount();h++)g=c.getPixel(h),e.wpd.dataSeries[f].data[h]=g,e.wpd.dataSeries[f].data[h].value=a.axes.pixelToData(g.x,g.y);if(null!=a.distanceMeasurementData)for(e.wpd.distanceMeasurementData=[],f=0;f<a.distanceMeasurementData.connectionCount();f++)e.wpd.distanceMeasurementData[f]=a.distanceMeasurementData.getConnectionAt(f);if(null!=a.angleMeasurementData)for(e.wpd.angleMeasurementData=
[],f=0;f<a.angleMeasurementData.connectionCount();f++)e.wpd.angleMeasurementData[f]=a.angleMeasurementData.getConnectionAt(f);return f=JSON.stringify(e)}return{save:function(){wpd.popup.show("export-json-window")},load:function(){wpd.popup.show("import-json-window")},download:function(){wpd.download.json(a());wpd.popup.close("export-json-window")},read:function(){var a=document.getElementById("import-json-file");wpd.popup.close("import-json-window");if(1===a.files.length){var d=new FileReader;d.onload=
function(){var a=JSON.parse(d.result);c(a);wpd.graphicsWidget.resetData();wpd.graphicsWidget.removeTool();wpd.graphicsWidget.removeRepainter();wpd.appData.isAligned()&&wpd.acquireData.load();wpd.messagePopup.show("Import JSON","JSON data has been loaded!")};d.readAsText(a.files[0])}}}}();wpd=wpd||{};
wpd.scriptInjector=function(){return{start:function(){wpd.popup.show("runScriptPopup")},cancel:function(){wpd.popup.close("runScriptPopup")},load:function(){var c=document.getElementById("runScriptFileInput");wpd.popup.close("runScriptPopup");if(1==c.files.length){var a=new FileReader;a.onload=function(){"undefined"!==typeof wpdscript&&delete wpdscript;eval(a.result);"wpdscript"!==typeof wpdscript&&(window.wpdscript=wpdscript,wpdscript.run())};a.readAsText(c.files[0])}}}}();wpd=wpd||{};
wpd.websocket=function(){function c(){e=!0}function a(){e=!1;f={}}function b(a){if(null!=a.data)if(console.log(a.data),a=JSON.parse(a.data),null!=a){var b=f[a.timestamp];null!=b&&b.requestId===a.id&&(b.callback(a.message),delete f[a.timestamp])}else alert("Server announcement: "+a),console.log(a)}var d,e,f={};return{connect:function(e){d=new WebSocket(e);d.onopen=c;d.onmessage=b;d.onclose=a},registerRequest:function(a,b){},registerNotification:function(a,b){},request:function(a,b,c){var m=Date.now();
b=JSON.stringify({type:"request",timestamp:m,id:a,message:b});f[m]={requestId:a,callback:c};e&&(console.log(b),d.send(b))},notify:function(a,b){var c=Date.now(),c=JSON.stringify({type:"notification",timestamp:c,id:a,message:b});e&&(console.log(c),d.send(c))}}}();wpd=wpd||{};wpd.browserInfo=function(){return{checkBrowser:function(){window.FileReader||alert("\tWARNING!\nYour web browser is not supported. This program might not behave as intended. Please use a recent version of Google Chrome, Firefox or Safari browser.")}}}();