@measurequick/measurequick-report-generator 1.1.14 → 1.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/graphics.js CHANGED
@@ -66,3 +66,5 @@ export const iconRangeHigh = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgA
66
66
  export const iconRangeLow = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAAOVBMVEUAAAAzgPczgPczgPczgPczgPczgPczgPczgPczgPczgPczgPczgPczgPczgPczgPczgPczgPczgPd+j8FZAAAAEnRSTlMAARgcKisuPGlrc3t8m5238/2IBvLHAAACpklEQVR42u3YXXLbMAxFYVWNG6Rua5v7X2weHMf6oUgARD0A5p4dfCNKAjhNCCGEEEIIIYQQQgghhBBCCCGEENI1/07iuJZzEkfJIJmvpWSQfDnCS74dwSULR2jJyhFYsnGElewcQSUVR0hJ1RFQcuAIJzl0RJO83UoSyQkSSCCB5H9I5rcckvl6O2WQzNdSMkjuc0R8yWMeii55znWxJcv5NLJkPWfHlWz3haiS/d4TU1Lb3yJK6ntoPMnRPh1NcnwvEEvSuN8IJWk5IknajjiSniOKpO+IIeE4Ikh4Dv8SrsO7hO/wLZE4PEtkDr8SqcOrRO7wKdE4PEpajn9/4kiajh/TOYqk45iiSLqOIBKGI4SE5QggYTrcS9gO5xKBw7VE5HAsETrcSn5KHV4lRewwlLy/RHLoMJPQ5RXPpOEwklC5vOB0NR0mEioaiFTScRhIqOggMknXMSyhooVIJAzHoISKHsKXsBxDkrtDC+FKmI4ByZdDDeFJ2A615OHQQzgSgUMp+XYMQPoSkUMleTpGID2J0KGQLBxDkLZE7BBLlo4xSEuicAglK8cg5Fiicogka8co5EiidAgkG8cwpC5RO9iSrWMcUpMMOJiSncMAspcMOViSvcMCspUMOhiSisMEspYMO7qSmsMGspQYONqSX1WHEeQpMXE0JQcZQR4SI4dCYgW5S8wccokZZDrdLB1iiR1kOv21dEgll8lv5ywQkcQ1RCLxDRFInEP4Eu8QtsQ9hCvxD2FKAkB4kgiQjyQQSnK0KMnLTkk+v5Tkh0hJRhRKMjRSkjGekixWlGTVpZIDQiUHhEoOiNjhFCJ3+IQoHC4hGodHiMrhEKJz+IMoHe4gWoc3iNrhDKJ3hLgOQgghhBBCCCGEEEIIIYQQQgghhNz0Caiiu+THLZyCAAAAAElFTkSuQmCC";
67
67
 
68
68
  export const iconRangeNormal = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAACK1BMVEUAAABOgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjROgjTEt02jAAAAuHRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKy0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUNERUZHSUpLTE1PUFFSVFVWV1hZW1xdXl9hYmNkZmdrbW9xc3R1d3h5e3x+f4CCg4WGiImLjI6PkZKUlZeYmpudnqCio6WmqKqrra+wsrS1t7m6vL7AwcPFx8jKzM7P0dPV19na3N7g4uTm6Onr7e/x8/X3+fv98JufjwAACDtJREFUGBnVwYljjGcCBvDnnTPJSIhQaSRkiVm16ogs0epSrLRYu7VY4tguTam7LBVrt+JIqxU3JUhbRxJpzpnJzPPnbYSQY97Jd7zv933z+0GH3JKF6/edv/2snyN0PfzhxPYV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";
69
+
70
+ export const iconTesto = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgAAAA4VBMVEUAAAD////1gh////7+9u7//Pn//v3+8+n0bwD0cQDzcADzbQD0cgH0cQL0cwP0cgP0cwT0dAX0cwb0dQf0dQn0dwr0dwz0eA3zeA30eQ70ehDzeRH0exL0fBP1exT1fBT1fRb1fhf1fhn1fxr1gBv1gRz1gR71gh71gyD1hCH1gyL1hCL1hiX1hyn2ii32jTP2kjz3lkL3mEf3m0z3nlH4o1r4p2L4q2n5sHH5tHn6vIf6xJb7y6P70a381rb83cL94sv959X+7N3/+fT0bADzagD/+/jzZQDyXQD//fz///8Xuu4XAAAAS3RSTlP//////////////////////////////////////////////////////////////////////////////////////////////////wDLGfCsAAAACXBIWXMAAAsTAAALEwEAmpwYAAAN7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0ZURhdGU9IjIwMTctMDctMDdUMTY6MDc6MjctMDQ6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA1LTAxVDE2OjQzOjExLTA0OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA1LTAxVDE2OjQzOjExLTA0OjAwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChNYWNpbnRvc2gpIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozM2ZhZDJiMC02MmE1LTQzYjctYmY0Yi01YjdmMjcxZjU2YmMiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkNjBjYTJjYi1kNTczLTFmNDQtOTYyOC1iODE5ZGVhYzYyNTgiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyY2Q2ZGE3Yi0zYTY4LTQwOTEtODVlNS0xZDNhMjZjYjE3NjkiIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiBleGlmOkNvbG9yU3BhY2U9IjY1NTM1IiBleGlmOlBpeGVsWERpbWVuc2lvbj0iMTIwIiBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTIwIj4gPHBob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHJkZjpCYWc+IDxyZGY6bGk+MzBGQ0U5NzBGMkYwNjdFNEI1REExRkREM0Y5RDZDRTU8L3JkZjpsaT4gPHJkZjpsaT5CNEEzQTA3N0NBRjFBQUVBNTM1MzY3QTk1NjYxMDc4MjwvcmRmOmxpPiA8cmRmOmxpPkUxOUFCOUU5ODE4MTNFMEE4MkNDQUI4QjQ5NTU0MUZFPC9yZGY6bGk+IDxyZGY6bGk+RkNDNzA1Nzk3QTFEMzNGMDJGNTdCOTE1NkQ2M0ZDMEM8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6NGQ2Zjg3OWYtNmYxZS0xMTdhLTk3MjktYjhjNWIyNzg1YjNmPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjZjZDg4NWJiLTQzMWEtMDQ0MS04NDY3LTc1Y2ZmM2Q2MDY4ZDwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo5ODljYjdjMC0yOTUzLTExN2EtYWIyYi1kYjlmYmY4Yzk1NGU8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6YzU5MTlmYTItMGJkZS0xMTdiLTk5NmYtZTEyMjFkYTUyZTU2PC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmUzNjExNzdhLWJjMzAtMTE3YS05OGM4LWZiYjllZjhhMGQ4YzwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDpmYmY2MjQzNy1kOGUzLTA2NGEtODkzNC1jYTIwMjA3ZWExMWU8L3JkZjpsaT4gPC9yZGY6QmFnPiA8L3Bob3Rvc2hvcDpEb2N1bWVudEFuY2VzdG9ycz4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MmNkNmRhN2ItM2E2OC00MDkxLTg1ZTUtMWQzYTI2Y2IxNzY5IiBzdEV2dDp3aGVuPSIyMDE3LTEwLTA0VDE2OjAzOjA4LTA0OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gaW1hZ2UvcG5nIHRvIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmFlNDAyYWU3LWU4NzYtNDdlYS1iNDdjLTg0NTAzNDViMmM5NSIgc3RFdnQ6d2hlbj0iMjAxNy0xMC0wNVQwMTowNDozNS0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmM5Yzc4ZTUxLTE1MWEtNDM3MS1iZDFiLWU4NWIzOGU2MTQwZCIgc3RFdnQ6d2hlbj0iMjAxOS0wNS0wMVQxNjo0MzoxMS0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iZGVyaXZlZCIgc3RFdnQ6cGFyYW1ldGVycz0iY29udmVydGVkIGZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjMzZmFkMmIwLTYyYTUtNDNiNy1iZjRiLTViN2YyNzFmNTZiYyIgc3RFdnQ6d2hlbj0iMjAxOS0wNS0wMVQxNjo0MzoxMS0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmM5Yzc4ZTUxLTE1MWEtNDM3MS1iZDFiLWU4NWIzOGU2MTQwZCIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmJkNjhmZmZmLWVhN2QtMTE3YS1hMjhhLWVlZGFhYzZiZjJhMyIgc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJjZDZkYTdiLTNhNjgtNDA5MS04NWU1LTFkM2EyNmNiMTc2OSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsnDzgoAAAhoSURBVGje7Ztpf6JMEsAfO2Zs0s4Iw7WwGA5BewcBRVDxiEeGceb5/h9o0QAq3gr77IvUi/ySTjd/urq6+qjir7//IfnrE/wJ/r8C912nrcuyIMiy3nbc/v8C7Fk8AQlakGRV1TRVVSSBjgoE2ysQPLBZVBO1JjiQpiZUIe8MiwAHNgH5BjgjDQ7VnLzBnohYA4MLgnUWSX6O4C4B1YvUmK1AspcT2CW+6ldiN+gGJL0cwP3v8BZsjGaHj4IxUm/EbtAysh4C+4i9A7tB03BwP7iN9Du5EVlD9r1gkrwbu0ET7F3gQSiZ4CExeXQHuBc2MHhQsBL6t4I7qPkwd+3KQu82sINALoKbYfcWcAdhkBMZnOjzUbCbGzeS1vFxPgbuhyBHicY5uBIc6jhXsoauAyMlV25EFr9dA66zJshZTBJfBndh7tyoz8i/CA5BEaKjS2BOwkWAMaueB7tFKPqosjNgZICCRHs5B7ZoXBQYVztnwAgUJ010Ggw4XBwYU85JMCqQm+3yLthmi+QCTHZOgGGzUDDQa8fBPQIXC8awfxTMqaBgkRpHwQgXDQboGLhDF84FVe8ImNWKByvqETAEpgohEQmsGbdr3eQ3bQnIn1lmWvAQ3KsBxRluJBi0b+59U/GCj8a9+plqW7tOwaYEqn4pFoe7eY4Sb3Hb6Tl3wDkHYFoHpBe3fXeEm8HUJG48gWeWVlU8AEOwBZcfA5/pcYvIgvtnwEZDaxz2wtC1neKT4L1a0SBnwV1W58NuAsaQE+Oa9RokOYGNfu5ut+skJBieZ6tR8eY8yoQJeLziOPXHxxmCg5DmhXWtxOJqfgZsCaaj9xNwt+3YoBXNERG2/NF0NnubjjwZfjwPmBI0vNHkLSqeBJ4GFdOwHH2aGJfidCw9whpVyhmMN7VGngHFTWO2kwGr0H0vv8dtv5TL73MgY/CijZaJpZfmA4pZz1GTloJtaWkxZLhvo/fyr/jv56hx8HX9du70Pa21HDVgdHQEUjsD5mCvtCcVUAewu9wre2t+M8EPBsz3q74Jq/F+yQiaHJMpW/Zg5JfUegZMVTPgBVCy7xIVKswPlZtniyerURYs0m/ZWiUfYtDgMmCC8PZrlTGyng/aziiVGKS6nyW/WRnwGMFJ6VA6NazTWTDbXcwTxf5ZzBdTHSXvPOn1Rk/x7wNYja3oaVAjO+UY5C/mlWSM5vPFcLVV1p/y1kporVnNgoFR/+kmvW1XFYVy0/kB4Sox+CVDx5p+av8mVoPFPJLFhOV/pvM4lBTle6rokd12F6myCUDsg4MIrKZjWrZoRYOxcVTokP9XdZWo1UXJYxaDTvNnCDn5VdWbr3ALVhTWeU6HnxRWdnnrTjPgIdHKeC6Nj3s2t5xOp2Mkzx393rGa5XTYEUJSbWQ819YOutFGroWS/y1UhciqOgsW2/GgPb//iuQ9maZvq2HG0kc20vA+GCbGVmmvPSAM0tWHOwA3M2DeeS8dkwXHzDJF5WFNM3bBTSKZw4vm2lfuKIDOguG14Er7RT2YKgHMgFPdGhkwRWbAVeMU+Muf0tNWSktT4avuZN+llWz2eI+XWFqrOgF/6ZBsBszoO+CKJQIJx8/+5TluJN0Pcbs6LwlhWO8Gsx34EKbgMdodVJtbH8rTIbdYMQOW1B3wL2dVJel4KJ+cFcOwTLj6ENqyLctq6wIkcXeUmNwYkpPU+lA1TN1gfwWwSCROdsaKRgaMX3fApXnf99K3noY1mQv7k41M273KhwTha+33KHXOKfjP2POd18SPLZshCoOtDxecDHi9vfu2664rPEi6M7F1nM4h2UnshgrRKqEF6PuuxY3TNypVxqN04j/bHO1mwH4NANrdXcVAmDZ+Xqb+dhzyieeaDQfT7TSBu6vgaKVVjsyIEQJpiGR3syeZ5Z35ill6dtB0KUmwf/jEt6qeWu6HSqF7WGtGy/hgz7WeTy1ivLceM0qWvLRIs/F1fPA6mMX1RmUXDKCf9QNvddZMV8UtWFYAfhWnW3cUKYDmRrutnyZGzYxqkcH+M6dNMiomd7YrY4Rb0JnuOZ6AZk3wb/MA3GHWezvWn8wWy+VyMZ801fW+yRnNPyjl+ahLbM5FphKVzuL+ledjt8ati3GtHbzNF+u28wG9vmwhe+PFh4FWZoGFlKjWNuCZgodwc7VcJQRV13WlLq63ZhiwUHR6vu+5tgDp+Cy3LuUt1/P9nmuLkIqvt7EISalhGI16fbMTxjoJ1ahx3+taNBT2t9U7p8WvRhz8VmRZVtQ0Rq3yVK1GUsL+OU4TKTIqpsW9awRdVdZt1eS02VI4qhr5IlGPY9vsEbApFn8+Zp0j4D4s/CoCw+DYHQg0igY3qKOXLzZXNJjqHL9g+1m0rtGJmz1RKZYr4hPggs0Ln7xE/Zsq9G7vVToJ9ou83MNoePqGnilulLEonwkNDIvrMg7PRmE0tiAypqzzAa+i4j8avBBp66FCIl7/CfuXYosiX4Cyf9DgchgXNXInYwVdET8ehLmDm+FVEfNO3oFNjHrX5QjoZK5kE9rXpmMwTI5kk6pfn4Dyjc+NbNL8LSk3MC+ySTO3JRmR+WjbpLhb06qYPCwME/LtiWQ6wg9OaNw6kzJ4JnXOedCHYfVUStWlnL0+esTETBYN706PlKBxb3qkjhqPJIR20X2LFWaR92AKrHJHshOWw9bjSb8DBmr4NqOCwuUU72vSnD0SXt9rLCP6mhTr6xK7fQHxrSvYuMkh+bpc/mtT2YfWy4t0IWuiKUJoF5C87wMIObV1AqqykDBv+HDhts8VBo4AISUoDaMVv0CrZTQUgYKE6AwK/kBj2LNVrvYRl1+H5klOs3vDmx9z/ycpwXAwGAafH+F8gj/B/zz4v1ObYd3I+BZdAAAAAElFTkSuQmCC";
package/index.js CHANGED
@@ -4,9 +4,10 @@ import * as mqVitalsHeating from "./scripts/mq-vitals-heating.js";
4
4
  import * as ptcsHeatPump from "./scripts/ptcs-heat-pump.js";
5
5
  import * as fillSignature from "./scripts/fill-signature.js";
6
6
 
7
- export function generateReport(reportType, payload) {
8
- console.log(" pdF: " + reportType);
9
- switch (reportType) {
7
+ export function generateReport(payload) {
8
+ console.log(payload);
9
+ switch (payload.meta.report_type) {
10
+
10
11
  case "mqStandard": return mqStandard.generateReport(payload);
11
12
  case "mqSystemVitals":
12
13
  case "mqVitalsCooling": return mqVitalsCooling.generateReport(payload);
@@ -16,6 +17,17 @@ export function generateReport(reportType, payload) {
16
17
  case "ptcsHeatPump": return ptcsHeatPump.generateReport(payload);
17
18
  case "bgeFillSignature":
18
19
  case "smecoFillSignature": return fillSignature.generateReport(payload);
20
+
21
+ case "EquipmentInfoReport": return mqStandard.generateReport(payload);
22
+ case "PhotoReport": return mqStandard.generateReport(payload);
23
+ case "VitalsReport": return mqStandard.generateReport(payload);
24
+ case "SystemReviewReport": return mqStandard.generateReport(payload);
25
+ case "TuneUpReport": return mqStandard.generateReport(payload);
26
+ case "FullReport": return mqStandard.generateReport(payload);
27
+ case "ClassicReport": return mqStandard.generateReport(payload);
28
+ case "SignatureBGE": return mqStandard.generateReport(payload);
29
+ case "SignatureSMECO": return mqStandard.generateReport(payload);
30
+ case "PtcsReport": return mqStandard.generateReport(payload);
19
31
  default: return false;
20
32
  }
21
33
  }
@@ -133,7 +133,7 @@ export async function generateReport(payload) {
133
133
  form.flatten();
134
134
  const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
135
135
  return pdfBase64;
136
-
136
+
137
137
  // if (payload.project.isCordova) {
138
138
  // const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
139
139
  // return pdfBase64;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measurequick/measurequick-report-generator",
3
- "version": "1.1.14",
3
+ "version": "1.1.16",
4
4
  "description": "Generates PDF documents for various MeasureQuick applications.",
5
5
  "main": "index.js",
6
6
  "scripts": {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -26,34 +26,37 @@ import * as sr from '../templates/base-64/sr5.js';
26
26
  [11+||10+]: Photo Page(s)
27
27
  ***************************************************/
28
28
 
29
+ let iconRangeHighM1;
30
+ let iconRangeLowM1;
31
+ let iconRangeNormalM1;
32
+ let iconTestoM1;
29
33
 
34
+ let iconRangeHighM2;
35
+ let iconRangeLowM2;
36
+ let iconRangeNormalM2;
37
+ let iconTestoM2;
38
+
39
+ let forms = [];
30
40
 
31
41
  export async function generateReport(payload) { console.log(payload);
32
42
 
33
43
  // Initialize pdf-lib
34
44
  const pdfDoc = await PDFDocument.load(_base64ToArrayBuffer(pdf.base64));
35
45
 
36
- let forms = [];
37
-
38
- //pdfDoc.registerFontkit(fontkit);
39
- // const fontBytes = fs.readFileSync(__dirname + "/MuseoSans-300.otf");
40
- // const fontBytesBold = fs.readFileSync(__dirname + "/MuseoSans-900.otf");
41
- // const font = await pdfDoc.embedFont(fontBytes);
42
- // const fontBold = await pdfDoc.embedFont(fontBytesBold)
43
-
44
46
  // Remove Unnecessary Info Page
45
- if (payload.meta.report_type === "cooling") pdfDoc.removePage(10);
46
- else if (payload.meta.report_type === "heating") pdfDoc.removePage(9);
47
+ if (payload.meta.report_type == "VitalsReport"){ pdfDoc.removePage(10); pdfDoc.removePage(9); }
48
+ else if (payload.meta.report_mode === "cooling") pdfDoc.removePage(10);
49
+ else if (payload.meta.report_mode === "heating") pdfDoc.removePage(9);
47
50
 
48
51
  // Remove System Review Page (If Chosen)
49
- if (!payload.meta.include_system_review) pdfDoc.removePage(8);
52
+ if (!payload.meta.include_system_review || payload.meta.report_type == "VitalsReport") pdfDoc.removePage(8);
50
53
 
51
54
  // Remove Equipment Info Page (If Chosen)
52
- if (!payload.meta.include_equipment_info) pdfDoc.removePage(7);
55
+ if (!payload.meta.include_equipment_info || payload.meta.report_type == "VitalsReport") pdfDoc.removePage(7);
53
56
 
54
57
  // Remove Unnecessary Vitals Pages
55
- if (payload.meta.report_type === "cooling") { pdfDoc.removePage(6); pdfDoc.removePage(5); pdfDoc.removePage(4); }
56
- else if (payload.meta.report_type === "heating") { pdfDoc.removePage(3); pdfDoc.removePage(2); pdfDoc.removePage(1); }
58
+ if (payload.meta.report_mode === "cooling") { pdfDoc.removePage(6); pdfDoc.removePage(5); pdfDoc.removePage(4); }
59
+ else if (payload.meta.report_mode === "heating") { pdfDoc.removePage(3); pdfDoc.removePage(2); pdfDoc.removePage(1); }
57
60
 
58
61
  // Remove Cover Sheet (If Chosen)
59
62
  if (!payload.meta.include_cover_sheet) pdfDoc.removePage(0);
@@ -111,30 +114,20 @@ export async function generateReport(payload) { console.log(payload);
111
114
  const iconThumbprintGreen = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconThumbprintGreen));
112
115
  const iconThumbprintRed = await pdfDoc.embedPng(_base64ToArrayBuffer(base64.iconThumbprintRed));
113
116
 
114
- const iconRangeGreenM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconRangeGreen));
115
- const iconRangeRedM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconRangeRed));
116
- const iconRangeHighM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconRangeHigh));
117
- const iconRangeLowM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconRangeLow));
118
- const iconRangeNormalM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconRangeNormal));
117
+ iconRangeHighM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconRangeHigh));
118
+ iconRangeLowM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconRangeLow));
119
+ iconRangeNormalM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconRangeNormal));
120
+ iconTestoM1 = await measurementsDoc1.embedPng(_base64ToArrayBuffer(base64.iconTesto));
119
121
 
120
- const iconRangeGreenM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconRangeGreen));
121
- const iconRangeRedM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconRangeRed));
122
- const iconRangeHighM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconRangeHigh));
123
- const iconRangeLowM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconRangeLow));
124
- const iconRangeNormalM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconRangeNormal));
122
+ iconRangeHighM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconRangeHigh));
123
+ iconRangeLowM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconRangeLow));
124
+ iconRangeNormalM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconRangeNormal));
125
+ iconTestoM2 = await measurementsDoc2.embedPng(_base64ToArrayBuffer(base64.iconTesto));
125
126
 
126
127
  // Initialize Form For Population
127
128
  const form = pdfDoc.getForm();
128
129
  forms.push(form);
129
130
 
130
- // Enumerates All AcroFields, For Debug Use
131
- // const fields = form.getFields()
132
- // fields.forEach(field => {
133
- // const type = field.constructor.name
134
- // const name = field.getName()
135
- // console.log(`${type}: ${name}`)
136
- // })
137
-
138
131
  // Populate Cover Sheet
139
132
  form.getTextField("Report Title").setText(payload.meta.report_title);
140
133
  form.getTextField("Technician Name").setText(payload.meta.technician_name);
@@ -144,6 +137,8 @@ export async function generateReport(payload) { console.log(payload);
144
137
  if (profilePicture) form.getButton("Profile Picture").setImage(profilePicture);
145
138
  if (geolocationMap) form.getButton("photoEquipment").setImage(geolocationMap);
146
139
 
140
+ /******* START VITALS ****/
141
+
147
142
  // Populate Vitals Measurements
148
143
  if (payload.diagnostics) {
149
144
  for (let i = 0; i < 9; i++) {
@@ -253,6 +248,8 @@ export async function generateReport(payload) { console.log(payload);
253
248
  form.getButton(`ImageSubsystem${i}_af_image`).setImage(icon);
254
249
  }
255
250
 
251
+ /******* END VITALS ****/
252
+
256
253
  // Populate Equipment Info Page
257
254
  console.log("Equipment Info");
258
255
  form.getTextField(`EI Title 1`).setText(payload.equipment_information.title1);
@@ -332,7 +329,7 @@ export async function generateReport(payload) { console.log(payload);
332
329
  }
333
330
  }
334
331
 
335
- // Populate Measurement Details Page
332
+ // Populate Measurement Details Page 1
336
333
  console.log("Measurement Details Page 1");
337
334
  let rowPrinting = 1;
338
335
  let cNums = payload.meta.number_of_measurement_columns;
@@ -341,114 +338,44 @@ export async function generateReport(payload) { console.log(payload);
341
338
  if (cNums >= 3) measurementsForm1.getTextField(`MD${cNums} Title 3`).setText(payload.measurement_details.title3);
342
339
  if (cNums == 4) measurementsForm1.getTextField(`MD${cNums} Title 4`).setText(payload.measurement_details.title4);
343
340
 
344
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText("Outdoor Measurements:");
341
+ let header = payload.meta.report_mode == "cooling" ? "Outdoor Measurements:" : "Combustion:";
342
+ measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText(header);
345
343
  rowPrinting++;
346
-
347
- for (let rowNum = 0; rowNum < payload.measurement_details.outdoor_measurements.length; rowNum++) {
348
- let m = payload.measurement_details.outdoor_measurements[rowNum];
349
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${m.label} (${m.units})`);
350
- if (t1.data[m.ref]) {
351
- let v = (+t1.data[m.ref]).toFixed(2);
352
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}2`).setText(`${v}`);
353
- let rangeIcon = getRangeIcon(t1, m.ref);
354
- if (rangeIcon) measurementsForm1.getButton(`MD${cNums} Image ${rowPrinting}2`).setImage(iconRangeRedM1);
355
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}2`).setText("--");
356
- if (cNums >= 3) {
357
- if (t2.data[m.ref]) {
358
- let v = (+t2.data[m.ref]).toFixed(2);
359
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}3`).setText(`${v}`);
360
- let rangeIcon = getRangeIcon(t2, m.ref);
361
- if (rangeIcon) measurementsForm1.getButton(`MD${cNums} Image ${rowPrinting}3`).setImage(iconRangeGreenM1);
362
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}3`).setText("--");
363
- }
364
- if (cNums == 4) {
365
- if (t1.data[m.ref] && t2.data[m.ref]) {
366
- let v = ((+t1.data[m.ref]) - (+t2.data[m.ref])).toFixed(2);
367
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}4`).setText(`${v}`);
368
- let rangeIcon = getRangeIcon(t2, m.ref);
369
- if (rangeIcon) measurementsForm1.getButton(`MD${cNums} Image ${rowPrinting}4`).setImage(iconRangeGreenM1);
370
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}4`).setText("--");
371
- }
372
- rowPrinting++;
373
- }
344
+ rowPrinting = printMeasurementDetailSection(cNums, rowPrinting, payload.measurement_details.category1, t1, t2, measurementsForm1);
374
345
 
375
346
  rowPrinting++;
376
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText("Weather Data:");
347
+ header = payload.meta.report_mode == "cooling" ? "Weather Data:" : "System Profile & Weather Data:";
348
+ measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText(header);
377
349
  rowPrinting++;
378
-
379
- for (let rowNum = 0; rowNum < payload.measurement_details.weather_data.length; rowNum++) {
380
- let m = payload.measurement_details.weather_data[rowNum];
381
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${m.label} (${m.units})`);
382
- if (t1.data[m.ref]) {
383
- let v = (+t1.data[m.ref]).toFixed(2);
384
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}2`).setText(`${v}`);
385
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}2`).setText("--");
386
- if (cNums >= 3) {
387
- if (t2.data[m.ref]) {
388
- let v = (+t2.data[m.ref]).toFixed(2);
389
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}3`).setText(`${v}`);
390
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}3`).setText("--");
391
- }
392
- if (cNums == 4) {
393
- if (t1.data[m.ref] && t2.data[m.ref]) {
394
- let v = ((+t1.data[m.ref]) - (+t2.data[m.ref])).toFixed(2);
395
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}4`).setText(`${v}`);
396
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}4`).setText("--");
397
- }
398
- rowPrinting++;
399
- }
350
+ rowPrinting = printMeasurementDetailSection(cNums, rowPrinting, payload.measurement_details.category2, t1, t2, measurementsForm1);
400
351
 
401
352
  rowPrinting++;
402
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText("Indoor Measurements:");
353
+ header = payload.meta.report_mode == "cooling" ? "Indoor Measurements:" : "Electrical Measurements:";
354
+ measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText(header);
403
355
  rowPrinting++;
356
+ rowPrinting = printMeasurementDetailSection(cNums, rowPrinting, payload.measurement_details.category3, t1, t2, measurementsForm1);
404
357
 
405
- for (let rowNum = 0; rowNum < payload.measurement_details.indoor_measurements.length; rowNum++) {
406
- let m = payload.measurement_details.indoor_measurements[rowNum];
407
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${m.label} (${m.units})`);
408
- if (t1.data[m.ref]) {
409
- let v = (+t1.data[m.ref]).toFixed(2);
410
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}2`).setText(`${v}`);
411
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}2`).setText("--");
412
- if (cNums >= 3) {
413
- if (t2.data[m.ref]) {
414
- let v = (+t2.data[m.ref]).toFixed(2);
415
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}3`).setText(`${v}`);
416
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}3`).setText("--");
417
- }
418
- if (cNums == 4) {
419
- if (t1.data[m.ref] && t2.data[m.ref]) {
420
- let v = ((+t1.data[m.ref]) - (+t2.data[m.ref])).toFixed(2);
421
- measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}4`).setText(`${v}`);
422
- } else measurementsForm1.getTextField(`MD${cNums} ${rowPrinting}4`).setText("--");
423
- }
424
- rowPrinting++;
425
- }
426
-
358
+ // Populate Measurement Details Page 2
427
359
  console.log("Measurement Details Page 2");
428
360
  rowPrinting = 1;
429
- printMeasurementDetailSection(cNums, payload.measurement_details.capacity_calculations, t1, t2);
430
- // for (let rowNum = 0; rowNum < payload.measurement_details.performance_calculations.length; rowNum++) {
431
- // let m = payload.measurement_details.performance_calculations[rowNum];
432
- // measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${m.label} (${m.units})`);
433
- // if (t1.data[m.ref]) {
434
- // let v = (+t1.data[m.ref]).toFixed(2);
435
- // measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}2`).setText(`${v}`);
436
- // } else measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}2`).setText("--");
437
- // if (cNums >= 3) {
438
- // if (t2.data[m.ref]) {
439
- // let v = (+t2.data[m.ref]).toFixed(2);
440
- // measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}3`).setText(`${v}`);
441
- // } else measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}3`).setText("--");
442
- // }
443
- // if (cNums == 4) {
444
- // if (t1.data[m.ref] && t2.data[m.ref]) {
445
- // let v = (+t1.data[m.ref]) - (+t2.data[m.ref]);
446
- // measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}4`).setText(`${v}`);
447
- // } else measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}4`).setText("--");
448
- // }
449
- // rowPrinting++;
450
- // }
361
+ header = payload.meta.report_mode == "cooling" ? "Capacity:" : "Pressures:";
362
+ measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}1`).setText(header);
363
+ rowPrinting++;
364
+ rowPrinting = printMeasurementDetailSection(cNums, rowPrinting, payload.measurement_details.category4, t1, t2, measurementsForm2);
365
+
366
+ rowPrinting++;
367
+ header = "Air-Side Performance:";
368
+ measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}1`).setText(header);
369
+ rowPrinting++;
370
+ rowPrinting = printMeasurementDetailSection(cNums, rowPrinting, payload.measurement_details.category5, t1, t2, measurementsForm2);
451
371
 
372
+ rowPrinting++;
373
+ header = payload.meta.report_mode == "cooling" ? "System Efficiency:" : "Energy:";
374
+ measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}1`).setText(header);
375
+ rowPrinting++;
376
+ rowPrinting = printMeasurementDetailSection(cNums, rowPrinting, payload.measurement_details.category6, t1, t2, measurementsForm2);
377
+
378
+ // Flatten, Combine, & Return Docs
452
379
  forms.forEach((form) => { form.flatten() });
453
380
 
454
381
  const [measurementsPage1] = await pdfDoc.copyPages(measurementsDoc1, [0]);
@@ -459,34 +386,50 @@ export async function generateReport(payload) { console.log(payload);
459
386
 
460
387
  // TODO: Populate Photo Page(s)
461
388
 
462
- // Flatten Form, Convert & Return PDF as Base64
463
389
  const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
464
390
  console.log(pdfBase64);
465
391
  return pdfBase64;
466
392
  }
467
393
 
468
- function printMeasurementDetailSection(cNums, section, t1, t2) {
394
+ function printMeasurementDetailSection(cNums, rowPrinting, section, t1, t2, form) {
469
395
  for (let rowNum = 0; rowNum < section.length; rowNum++) {
470
396
  let m = section[rowNum];
471
- measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${m.label} (${m.units})`);
397
+ form.getTextField(`MD${cNums} ${rowPrinting}1`).setText(`${m.label} (${m.units})`);
472
398
  if (t1.data[m.ref]) {
473
399
  let v = (+t1.data[m.ref]).toFixed(2);
474
- measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}2`).setText(`${v}`);
475
- } else measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}2`).setText("--");
400
+ form.getTextField(`MD${cNums} ${rowPrinting}2`).setText(`${v}`);
401
+ let rangeIcon = getRangeIcon(t1, m.ref);
402
+ if (rangeIcon) form.getButton(`MD${cNums} Image ${rowPrinting}2`).setImage(iconRangeLowM1);
403
+ let toolIcon = getToolIcon(t1, m.ref);
404
+ if (toolIcon) form.getButton(`MD${cNums} Image ${rowPrinting}2 Tool`).setImage(iconTestoM1);
405
+ } else form.getTextField(`MD${cNums} ${rowPrinting}2`).setText("--");
476
406
  if (cNums >= 3) {
477
407
  if (t2.data[m.ref]) {
478
408
  let v = (+t2.data[m.ref]).toFixed(2);
479
- measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}3`).setText(`${v}`);
480
- } else measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}3`).setText("--");
409
+ form.getTextField(`MD${cNums} ${rowPrinting}3`).setText(`${v}`);
410
+ let rangeIcon = getRangeIcon(t2, m.ref);
411
+ if (rangeIcon) form.getButton(`MD${cNums} Image ${rowPrinting}3`).setImage(iconRangeNormalM1);
412
+ let toolIcon = getToolIcon(t2, m.ref);
413
+ if (toolIcon) form.getButton(`MD${cNums} Image ${rowPrinting}3 Tool`).setImage(iconTestoM1);
414
+ } else form.getTextField(`MD${cNums} ${rowPrinting}3`).setText("--");
481
415
  }
482
416
  if (cNums == 4) {
483
417
  if (t1.data[m.ref] && t2.data[m.ref]) {
484
- let v = (+t1.data[m.ref]) - (+t2.data[m.ref]);
485
- measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}4`).setText(`${v}`);
486
- } else measurementsForm2.getTextField(`MD${cNums} ${rowPrinting}4`).setText("--");
418
+ let v = ((+t1.data[m.ref]) - (+t2.data[m.ref])).toFixed(2);
419
+ form.getTextField(`MD${cNums} ${rowPrinting}4`).setText(`${v}`);
420
+ let rangeIcon = getRangeIcon(t2, m.ref);
421
+ if (rangeIcon) form.getButton(`MD${cNums} Image ${rowPrinting}4`).setImage(iconRangeNormalM1);
422
+ } else form.getTextField(`MD${cNums} ${rowPrinting}4`).setText("--");
487
423
  }
488
424
  rowPrinting++;
489
425
  }
426
+ return rowPrinting;
427
+ }
428
+
429
+ function getToolIcon(test, ref) {
430
+ let toolIcon = test.source[`${ref}`];
431
+ toolIcon = true;
432
+ return toolIcon;
490
433
  }
491
434
 
492
435
  function getRangeIcon(test, ref) {
@@ -197,11 +197,11 @@ function getTextFields(payload) {
197
197
  "tempSplit": payload.test.data.temperature_rise ? (+payload.test.data.temperature_rise).toFixed(1) : "--",
198
198
  "tesp": payload.test.data.pressure_static_total_external ? (+payload.test.data.pressure_static_total_external).toFixed(2) : "--",
199
199
  "fltrFace": payload.test.data.velocity_face_filter1 ? (+payload.test.data.velocity_face_filter1).toFixed(1) : "--",
200
- "ageLoss": payload.test.data.age_loss,
201
- "coafLoss": payload.test.data.coaf_loss,
202
- "tempSplitLoss": payload.test.data.temp_split_loss,
203
- "gasInputLoss": payload.test.data.gas_input_loss,
204
- "staticLoss": payload.test.data.static_loss
200
+ "ageLoss": payload.test.data.age_loss ? (+payload.test.data.age_loss).toFixed(0) : 0,
201
+ "coafLoss": payload.test.data.coaf_loss ? (+payload.test.data.coaf_loss).toFixed(0) : 0,
202
+ "tempSplitLoss": payload.test.data.temp_split_loss ? (+payload.test.data.temp_split_loss).toFixed(0) : 0,
203
+ "gasInputLoss": payload.test.data.gas_input_loss ? (+payload.test.data.gas_input_loss).toFixed(0) : 0,
204
+ "staticLoss": payload.test.data.static_loss ? (+payload.test.data.static_loss).toFixed(0) : 0
205
205
  }
206
206
  }
207
207