@measurequick/measurequick-report-generator 1.5.208 → 1.5.216

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/base-64/icons.js CHANGED
@@ -94,6 +94,9 @@ export const iconBluflame =
94
94
  export const iconSauermann =
95
95
  "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3NpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDkuMC1jMDAwIDc5LmRhNGE3ZTVlZiwgMjAyMi8xMS8yMi0xMzo1MDowNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyY2Q2ZGE3Yi0zYTY4LTQwOTEtODVlNS0xZDNhMjZjYjE3NjkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjExQzU5MDRBOEUwMTFFREJFNTdDQkI1MUJGRjQxQUUiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjExQzU5MDNBOEUwMTFFREJFNTdDQkI1MUJGRjQxQUUiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozMDA5MjkwMzk1MzcxMUVEODNBOTlBRUU0QTIxRUJGQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozMDA5MjkwNDk1MzcxMUVEODNBOTlBRUU0QTIxRUJGQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgmSFxMAAAMAUExURdnt95nP6vrTqaXU7ej0+vayaPGKGf758vWsXYXF5vzo0fa3cW664Wq54Vqx3fz+//706v3z5/KSKZHL6fGOIdzu+Pzp1PWqWfa4dPOaOQmLzfKXM/KULvX6/fH4/O73/PnRpfSmUObz+v3s2fnLmPjJlh2U0fvixyqa1IzI6Pvfwfb7/Tui1/P5/Tag1v3w4hOPz/SkTP3v32C034rH5/KZN8vm9CKW0lWu3FOt3PWtXkio2rbc8ECk2Dyi1/nHkvOeQF+z3p7R6/fAhDCd1fKYNCmZ0/a0bPWwZP/8+v/69nG84v/37/afQ/OdPvzky9Xr9gWIzPvdvfrZtfGQJbHa7/nNnanW7Tmh1/CEDvCDC++ABSyb1H3B5ACGy/WrWxeR0PSnU/SlT/OhR/OgRVev3e99AE+r20an2RGOzvCEDfCCCfzjyOHx+fvbuPazavv9/vWvYwyMzaHS7GS13//7+CCV0vjEjBiR0PfCh3/C5RaQzy+c1VCs2/n8//a6d/znzweJzD+k2IPE5tDp9dHp9kKl2KzY7sLi8/rWrvrat3i/47Xc8PKTLAKHyyOX0sfk9L3g8kuq2vjEi/KULer1+wOHzPe+gGi34Pn8/vnOn/CHE/rYs97v+PCIFfWxZjSf1huT0Vyy3va0a/CFEPCGEfr9/vv9//CBCPWuYSWY0/e+f/3r2Eyq2lGs3KLT7MPj87re8Q+Nzv/mz7Pb8JvQ9/j8/nW+47jd8c/o9vzbueLx+/6jTPSoVdfs9/mhR//kyvGLHPOfQ/eyZ/a4c/e6ePe8e/SiSMDh+RSPzwGGy/a5dvfAg/WyZ/a1buz2+/rXsfGMHbTb8EOm2fzmzfShR9vu+PynUyGW0vfBhv717P727Tqi2D6j2NLq9hmS0BqS0v3x5KvX7sXj8xKP0Eqp2vjIk/jDiSGW1Lzf8fnSpv/cu6HT+ZvQ683o/CiZ1vKVL/nMmu9+Afe8fMzn9fa2bw2Mzsbk843J6GK138nl9HS946/Z73e+4/GPI/////6kyCYAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAE8klEQVR42uzad1gTZxgAcAgGQ0tFtAUFZQiUFDElBihgVaAxRVEUd6ueuM4BISyjDCl7qIgLRSvuPWunXXZPW7uHFtvaYvegw5Yu7PMEhLvL3X3vG0L7h9/7b/Lk99xdvu97xzlc+Z/CgcIUpjCFKUxhClOYwhS+dmGf8tsd8+qjKjSGw7eZzeYPaw0FJcd0q/p+9uegboNPV+ZF6+9npCLZPMz1+8iB9oXrpjyyopaBhFdoveMEO8Hl4RVeUs5vyw+rd04fcWFEo0ZvMIe1f694YbZPV+EJLnoRL0u/0PUWp3UfG332c7882PemR9c5tdzQ2JSl1p0wZtgMN7iEWpnquPDKSF/S9Rz44buHXn58i21wVZQQXR4Xf7rbl9OUdwRqWP2ph7t/HWeXCNhe04aQf+z8eMWyF0yqJ7Xzno0dN+6pJz7wTDj74pcKOFy1U8DqyomoR+Ch5lRWNDZWw+A3cgTs8DKSOjQ3gpWLOb0BsONiwT/qBIlNU7Gk2LuBBNetF1yuhrh0+rGQiB0rC69tErjDiA93NgsL5xAZOFy4cqOJrpIFR64kHCd084luGouIfhKwzmp/fJAIH8LAbKYofNzK1ZD3jP4omJ0tAh+zPoScyHASDu682x1wqcjp10CG9yBhNlAAO4m4i/eT4SIszE7kwQ1i6cUrGYBTZj4WvpsHq8XgNT0A8EX0Je/hwPHiGdVqyMHqh5bHd8BbisXhXqAj/U4sPLkDzpNKlWFZciZW3tYOD0mWyl5zYGnMZiTs3Q63SOfnRpgchJQvtsEGaVgNTN2Cb0TBGyywUa4kWQGUx5gw8CgLPE22GNJB89WJNXB4hgVOlC/D/gGnyveA4VQLXEEoABdkQOWA64HwEgtMrD9n9gBftEcMAm4iFr1hq8HyleteAsNegHo7ZzCcftMbCGdBKv2bKxEF2WUYnALqMTDRRric7gyBC2Awkxz3O1j+SAuAoxhw/NEAps+Q17ELHGY2zQLLy2Tggxa4isGEId4OcpIFHrgJJTOXfIFyriQc1HYsrsfBTP7bQNlTCj7fBt/HYCMRKN8rUStfzblmomXgMb1SHA65Cn+NhplQmOwtlXK159WL8LIGtoWJwUc74UF4GJh0izzlX7glzCob5GwIPNfK3c6vFivw8Kt1ANg6Jyniw2678LKrLXmYQliYO+DhWgAs7L2ds25FnETDxT5k+C2+e1ms+YLfwMiDlxC++7x4u2kt0s0i5738ptBrUg22MtzeSW77fcFzp0q3FN0W2PVOe3DZ1ndlu7ez4O5JYmGxj+NqlxL61Z+XwNiCX4nNEU7D3nkroENfuobMfhKO2jpUPUEzifdJeWdjX2JhsXIApxpOB09hTh2XLKOG/5VNHgtO8uewW1Fzp0jHUtfdly7of/zq05T8lF216umLdie2/F0G6AON9uNMRpoVNg81DxQWFrrBq5fgs890svOq/5uJucdPMX061ZrNaV2Ypo59+tsHxgDM3iEjYyZzRx8J6V0b4y4NUBxRvef/3MjHjvYU/dy9aFLQGf+NB3k9w4Tq0faYmA+dakq6yzK2ao6d6xmTuUOpVO7IVHn6z+/fZ/sM/vnz8wBTYJpd3xEI8DNFpMr3kGrmHNl2a/e8FeEe/M0dr2tHte5dwol9rRFa5TlFsDt9AYXCFKYwhSlMYQpTmMIUvlbgfwUYAC0sxTrnqtHCAAAAAElFTkSuQmCC";
96
96
 
97
+ export const iconSeitron =
98
+ "data:image/png;base64,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";
99
+
97
100
  export const iconRedfish510 =
98
101
  "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOusbgAAAAwFBMVEUAAAD///9QWFZkHh9rJidpOTpjCg6WJCiNJCiDJSh2JSjclZhRAwevHyeeIimJOT51Sk3TARE3AwemChjPGSmQEhujKzWgP0blaHIREBEjLkJHWFgkKioyOTkcHh6ztrY9U1IrMzI3Pz5IUE9MVFM9RENDSklOXlugpaTh5uV4fHuEiIeSlpVscnDKzcxUXFlcYV9kaWdubUuNgjfCvqDYtgh/bA2ulRlRT0yZgmRAKic/NzZOICBdKytTOTn///+sLFaIAAAAQHRSTlP///////////////////////////////////////////////////////////////////////////////////8AwnuxRAAAAAlwSFlzAAALEwAACxMBAJqcGAAADe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iIHhtcDpDcmVhdGVEYXRlPSIyMDE3LTA3LTA3VDE2OjA3OjI3LTA0OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxOS0wNS0wMVQxNzo0MTozOS0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wNS0wMVQxNzo0MTozOS0wNDowMCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoTWFjaW50b3NoKSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YmM4ZThkOGUtNmVlNy00ZTI5LTlhZGYtNmI1OGY0MGJiZWE5IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6OTliZmQ1ZWEtMWEyNy0xMTQ0LWE3MmMtZmZmZTY5YTUyZGVmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MmNkNmRhN2ItM2E2OC00MDkxLTg1ZTUtMWQzYTI2Y2IxNzY5IiB0aWZmOk9yaWVudGF0aW9uPSIxIiB0aWZmOlhSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgZXhpZjpDb2xvclNwYWNlPSI2NTUzNSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjEyMCIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjEyMCI+IDxwaG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDxyZGY6QmFnPiA8cmRmOmxpPjMwRkNFOTcwRjJGMDY3RTRCNURBMUZERDNGOUQ2Q0U1PC9yZGY6bGk+IDxyZGY6bGk+QjRBM0EwNzdDQUYxQUFFQTUzNTM2N0E5NTY2MTA3ODI8L3JkZjpsaT4gPHJkZjpsaT5FMTlBQjlFOTgxODEzRTBBODJDQ0FCOEI0OTU1NDFGRTwvcmRmOmxpPiA8cmRmOmxpPkZDQzcwNTc5N0ExRDMzRjAyRjU3QjkxNTZENjNGQzBDPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjRkNmY4NzlmLTZmMWUtMTE3YS05NzI5LWI4YzViMjc4NWIzZjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2Y2Q4ODViYi00MzFhLTA0NDEtODQ2Ny03NWNmZjNkNjA2OGQ8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6OTg5Y2I3YzAtMjk1My0xMTdhLWFiMmItZGI5ZmJmOGM5NTRlPC9yZGY6bGk+IDxyZGY6bGk+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmM1OTE5ZmEyLTBiZGUtMTE3Yi05OTZmLWUxMjIxZGE1MmU1NjwvcmRmOmxpPiA8cmRmOmxpPmFkb2JlOmRvY2lkOnBob3Rvc2hvcDplMzYxMTc3YS1iYzMwLTExN2EtOThjOC1mYmI5ZWY4YTBkOGM8L3JkZjpsaT4gPHJkZjpsaT5hZG9iZTpkb2NpZDpwaG90b3Nob3A6ZmJmNjI0MzctZDhlMy0wNjRhLTg5MzQtY2EyMDIwN2VhMTFlPC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJjZDZkYTdiLTNhNjgtNDA5MS04NWU1LTFkM2EyNmNiMTc2OSIgc3RFdnQ6d2hlbj0iMjAxNy0xMC0wNFQxNjowMzowOC0wNDowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGltYWdlL3BuZyB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphZTQwMmFlNy1lODc2LTQ3ZWEtYjQ3Yy04NDUwMzQ1YjJjOTUiIHN0RXZ0OndoZW49IjIwMTctMTAtMDVUMDE6MDQ6MzUtMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0YzRmYzcwMy05YWZjLTQxOTctYjcwNC1hYzM4MjM5NzBkZDUiIHN0RXZ0OndoZW49IjIwMTktMDUtMDFUMTc6NDE6MzktMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpiYzhlOGQ4ZS02ZWU3LTRlMjktOWFkZi02YjU4ZjQwYmJlYTkiIHN0RXZ0OndoZW49IjIwMTktMDUtMDFUMTc6NDE6MzktMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBN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";
99
102
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measurequick/measurequick-report-generator",
3
- "version": "1.5.208",
3
+ "version": "1.5.216",
4
4
  "description": "Generates PDF documents for various measureQuick applications.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1734,6 +1734,15 @@ export async function getReport(payload) {
1734
1734
  testo_size,
1735
1735
  testo_size
1736
1736
  );
1737
+ } else if (testObj.source.power_factor == "UEi HAC" || testObj.source.power_factor == "UEi DL599") {
1738
+ doc.addImage(
1739
+ base64.iconUei,
1740
+ "PNG",
1741
+ pos_right + testo_offset_x,
1742
+ pos_vert - testo_offset_y,
1743
+ testo_size,
1744
+ testo_size
1745
+ );
1737
1746
  }
1738
1747
  drawRangeIcon("power_factor", pos_vert_outdoor - testo_offset_y);
1739
1748
  pos_vert += spacing;
@@ -1781,6 +1790,15 @@ export async function getReport(payload) {
1781
1790
  testo_size,
1782
1791
  testo_size
1783
1792
  );
1793
+ } else if (testObj.source.power_condenser == "UEi HAC" || testObj.source.power_condenser == "UEi DL599") {
1794
+ doc.addImage(
1795
+ base64.iconUei,
1796
+ "PNG",
1797
+ pos_right + testo_offset_x,
1798
+ pos_vert - testo_offset_y,
1799
+ testo_size,
1800
+ testo_size
1801
+ );
1784
1802
  } else if (
1785
1803
  testObj.electrical_capture_type !== "Power" &&
1786
1804
  testObj.data.power_condenser
@@ -2469,6 +2487,15 @@ export async function getReport(payload) {
2469
2487
  testo_size,
2470
2488
  testo_size
2471
2489
  );
2490
+ } else if (testObj.source.voltage_l1_ahu == "UEi HAC" || testObj.source.voltage_l1_ahu == "UEi DL599") {
2491
+ doc.addImage(
2492
+ base64.iconUei,
2493
+ "PNG",
2494
+ pos_right + testo_offset_x,
2495
+ pos_vert - testo_offset_y,
2496
+ testo_size,
2497
+ testo_size
2498
+ );
2472
2499
  }
2473
2500
  pos_vert += 0.2;
2474
2501
  }
@@ -2523,6 +2550,15 @@ export async function getReport(payload) {
2523
2550
  testo_size,
2524
2551
  testo_size
2525
2552
  );
2553
+ } else if (testObj.source.amperage_l1_ahu == "UEi HAC" || testObj.source.amperage_l1_ahu == "UEi DL599") {
2554
+ doc.addImage(
2555
+ base64.iconUei,
2556
+ "PNG",
2557
+ pos_right + testo_offset_x,
2558
+ pos_vert - testo_offset_y,
2559
+ testo_size,
2560
+ testo_size
2561
+ );
2526
2562
  }
2527
2563
  pos_vert += 0.2;
2528
2564
  }
@@ -2569,6 +2605,15 @@ export async function getReport(payload) {
2569
2605
  testo_size,
2570
2606
  testo_size
2571
2607
  );
2608
+ } else if (testObj.source.power_factor_ahu == "UEi HAC" || testObj.source.power_factor_ahu == "UEi DL599") {
2609
+ doc.addImage(
2610
+ base64.iconUei,
2611
+ "PNG",
2612
+ pos_right + testo_offset_x,
2613
+ pos_vert - testo_offset_y,
2614
+ testo_size,
2615
+ testo_size
2616
+ );
2572
2617
  }
2573
2618
  drawRangeIcon("power_factor_ahu", pos_vert_outdoor - testo_offset_y);
2574
2619
  pos_vert += 0.2;
@@ -10,7 +10,7 @@ let embeddedIconsTestOut = {};
10
10
  function isNCIProject(payload) {
11
11
  if (payload && payload.project && payload.project.specialProjectType) {
12
12
  const type = payload.project.specialProjectType;
13
- return type === 'CoolMaxx' || type === 'HeatMaxx';
13
+ return type === "CoolMaxx" || type === "HeatMaxx";
14
14
  }
15
15
  return false;
16
16
  }
@@ -203,8 +203,12 @@ export async function getReport(payload) {
203
203
  // For NCI projects (CoolMaxx/HeatMaxx), draw NCI logo in place of profile picture (15% larger)
204
204
  let isNCI = isNCIProject(payload) && base64.nciLogo;
205
205
  if (isNCI) {
206
- const nciLogoImagePg1 = await pdfDocPg1.embedPng(util._base64ToArrayBuffer(base64.nciLogo));
207
- const nciLogoImagePg2 = await pdfDocPg2.embedPng(util._base64ToArrayBuffer(base64.nciLogo));
206
+ const nciLogoImagePg1 = await pdfDocPg1.embedPng(
207
+ util._base64ToArrayBuffer(base64.nciLogo)
208
+ );
209
+ const nciLogoImagePg2 = await pdfDocPg2.embedPng(
210
+ util._base64ToArrayBuffer(base64.nciLogo)
211
+ );
208
212
  const pagesPg1 = pdfDocPg1.getPages();
209
213
  const pagesPg2 = pdfDocPg2.getPages();
210
214
  const firstPagePg1 = pagesPg1[0];
@@ -218,11 +222,13 @@ export async function getReport(payload) {
218
222
  const rectPg2 = widgetsPg2[0].getRectangle();
219
223
  // Draw NCI logo at the profile picture position, 15% larger
220
224
  const logoWidth1 = rectPg1.width * 1.15;
221
- const logoHeight1 = logoWidth1 * (nciLogoImagePg1.height / nciLogoImagePg1.width);
225
+ const logoHeight1 =
226
+ logoWidth1 * (nciLogoImagePg1.height / nciLogoImagePg1.width);
222
227
  const x1 = rectPg1.x + (rectPg1.width - logoWidth1) / 2;
223
228
  const y1 = rectPg1.y + (rectPg1.height - logoHeight1) / 2;
224
229
  const logoWidth2 = rectPg2.width * 1.15;
225
- const logoHeight2 = logoWidth2 * (nciLogoImagePg2.height / nciLogoImagePg2.width);
230
+ const logoHeight2 =
231
+ logoWidth2 * (nciLogoImagePg2.height / nciLogoImagePg2.width);
226
232
  const x2 = rectPg2.x + (rectPg2.width - logoWidth2) / 2;
227
233
  const y2 = rectPg2.y + (rectPg2.height - logoHeight2) / 2;
228
234
  firstPagePg1.drawImage(nciLogoImagePg1, {
@@ -283,7 +289,8 @@ export async function getReport(payload) {
283
289
  let test = payload.tests[t].testInfo;
284
290
  // Add source property to test object for tool icon lookup
285
291
  // Source is stored in testInfo.source, not at the test root level
286
- test.source = payload.tests[t].testInfo.source || payload.tests[t].source || {};
292
+ test.source =
293
+ payload.tests[t].testInfo.source || payload.tests[t].source || {};
287
294
  form.getTextField("Header").setText(`${sectionLabel}Measurement Details`);
288
295
 
289
296
  if (payload.meta.cName)
@@ -500,9 +507,12 @@ export async function getReport(payload) {
500
507
 
501
508
  // Use derated value if available for gas_input_rated
502
509
  // Also check for empty string - middleman passes "" when it expects lookup from test.data
503
- let val = measurement.value !== null && measurement.value !== undefined && measurement.value !== ""
504
- ? measurement.value
505
- : +test.data[measurement.ref];
510
+ let val =
511
+ measurement.value !== null &&
512
+ measurement.value !== undefined &&
513
+ measurement.value !== ""
514
+ ? measurement.value
515
+ : +test.data[measurement.ref];
506
516
  if (
507
517
  measurement.ref == "gas_input_rated" &&
508
518
  payload.equipment.gas_input_derated
@@ -518,7 +528,10 @@ export async function getReport(payload) {
518
528
 
519
529
  // For CO measurements: if value is null/undefined, show "--"; if valid, show as integer (no decimals)
520
530
  if (isCOMeasurement) {
521
- if (measurement.value === null || measurement.value === undefined) {
531
+ if (
532
+ measurement.value === null ||
533
+ measurement.value === undefined
534
+ ) {
522
535
  val = "--";
523
536
  } else {
524
537
  val = Math.round(Number(val)).toString();
@@ -5,6 +5,20 @@ import * as systemInfoPage from "./system-info-page.js";
5
5
  import * as util from "../util.js";
6
6
  import * as notesSummaryPage from "./notes-summary-page.js";
7
7
 
8
+ // Helper to safely set text field (ignores if field doesn't exist)
9
+ function safeSetText(form, name, value) {
10
+ try {
11
+ form.getTextField(name).setText(value != null ? String(value) : "");
12
+ } catch (e) {}
13
+ }
14
+
15
+ // Helper to safely set image on button (ignores if field doesn't exist)
16
+ function safeSetImage(form, name, image) {
17
+ try {
18
+ form.getButton(name).setImage(image);
19
+ } catch (e) {}
20
+ }
21
+
8
22
  // Check if project is CoolMaxx or HeatMaxx (NCI branded)
9
23
  function isNCIProject(payload) {
10
24
  if (payload && payload.project && payload.project.specialProjectType) {
@@ -230,6 +244,19 @@ export async function getReport(payload, _test) {
230
244
  .setText(date.toLocaleTimeString("en-US"));
231
245
  }
232
246
 
247
+ // Build equipment info and set "Information Text" field with shortened description
248
+ const equipment = payload.equipment || {};
249
+ let equipmentLines = [];
250
+ if (equipment.condenser_make) equipmentLines.push("Make: " + equipment.condenser_make);
251
+ if (equipment.condenser_model) equipmentLines.push("Model: " + equipment.condenser_model);
252
+ if (equipment.condenser_serial) equipmentLines.push("Serial: " + equipment.condenser_serial);
253
+
254
+ let infoText = "What Are Your System Vitals?\nYour system vitals show the overall health of your HVAC system. These vitals account for both the refrigerant and air delivery of the system.";
255
+ if (equipmentLines.length > 0) {
256
+ infoText = equipmentLines.join("\n") + "\n\n" + infoText;
257
+ }
258
+ safeSetText(form, "Information Text", infoText);
259
+
233
260
  let systemScorePercentage = t.data.vitals_score
234
261
  ? +t.data.vitals_score.toFixed(0)
235
262
  : 0;
@@ -294,6 +321,42 @@ export async function getReport(payload, _test) {
294
321
  .getTextField("YourSystemScorePage2")
295
322
  .setText(`${systemScorePercentage} ${systemScoreGrade}`);
296
323
 
324
+ // Display system age (condenser year installed)
325
+ const currentYear = new Date().getUTCFullYear();
326
+ const rawYear = payload.equipment && payload.equipment.year_installed;
327
+ const installYear = rawYear !== undefined && rawYear !== null ? Number(rawYear) : NaN;
328
+ const hasValidYear = Number.isFinite(installYear) && installYear > 1900 && installYear <= currentYear;
329
+
330
+ if (hasValidYear) {
331
+ const age = currentYear - installYear;
332
+ let specialCasePlacement = "1";
333
+ let specialCaseIcon = iconRangeGreen;
334
+
335
+ if (age < 2) specialCasePlacement = "1";
336
+ else if (age < 5) specialCasePlacement = "2";
337
+ else if (age < 8) specialCasePlacement = "3";
338
+ else if (age < 15) {
339
+ specialCasePlacement = "4";
340
+ specialCaseIcon = iconRangeRed;
341
+ } else if (age < 20) {
342
+ specialCasePlacement = "5";
343
+ specialCaseIcon = iconRangeRed;
344
+ } else if (age < 25) {
345
+ specialCasePlacement = "6";
346
+ specialCaseIcon = iconRangeRed;
347
+ } else {
348
+ specialCasePlacement = "7";
349
+ specialCaseIcon = iconRangeRed;
350
+ }
351
+
352
+ // Set age marker and text if fields exist
353
+ safeSetImage(form, `ImageAge${specialCasePlacement}`, specialCaseIcon);
354
+ safeSetText(form, "Age", age.toString());
355
+ } else {
356
+ // Age unknown - set to "--" if field exists
357
+ safeSetText(form, "Age", "--");
358
+ }
359
+
297
360
  // print targets and range icons
298
361
  const measureLabels = [
299
362
  "Superheat",
@@ -4,6 +4,20 @@ import * as pdf from "../base-64/mq-vitals-heatpump-heating.js";
4
4
  import * as util from "../util.js";
5
5
  import * as notesSummaryPage from "./notes-summary-page.js";
6
6
 
7
+ // Helper to safely set text field (ignores if field doesn't exist)
8
+ function safeSetText(form, name, value) {
9
+ try {
10
+ form.getTextField(name).setText(value != null ? String(value) : "");
11
+ } catch (e) {}
12
+ }
13
+
14
+ // Helper to safely set image on button (ignores if field doesn't exist)
15
+ function safeSetImage(form, name, image) {
16
+ try {
17
+ form.getButton(name).setImage(image);
18
+ } catch (e) {}
19
+ }
20
+
7
21
  // Check if project is CoolMaxx or HeatMaxx (NCI branded)
8
22
  function isNCIProject(payload) {
9
23
  if (payload && payload.project && payload.project.specialProjectType) {
@@ -170,6 +184,19 @@ export async function getReport(payload, _test) {
170
184
  form.getTextField("TimeOfServiceUpper").setText(date.toLocaleTimeString("en-US"));
171
185
  }
172
186
 
187
+ // Build equipment info and set "Information Text" field with shortened description
188
+ const equipment = payload.equipment || {};
189
+ let equipmentLines = [];
190
+ if (equipment.condenser_make) equipmentLines.push("Make: " + equipment.condenser_make);
191
+ if (equipment.condenser_model) equipmentLines.push("Model: " + equipment.condenser_model);
192
+ if (equipment.condenser_serial) equipmentLines.push("Serial: " + equipment.condenser_serial);
193
+
194
+ let infoText = "What Are Your System Vitals?\nYour system vitals show the overall health of your HVAC system. These vitals account for both the refrigerant and air delivery of the system.";
195
+ if (equipmentLines.length > 0) {
196
+ infoText = equipmentLines.join("\n") + "\n\n" + infoText;
197
+ }
198
+ safeSetText(form, "Information Text", infoText);
199
+
173
200
  // System score
174
201
  let systemScorePercentage = t.data.vitals_score ? +t.data.vitals_score.toFixed(0) : 0;
175
202
  let systemScoreGrade = util.getGradeFromScore(systemScorePercentage);
@@ -223,6 +250,42 @@ export async function getReport(payload, _test) {
223
250
 
224
251
  form.getTextField("YourSystemScorePage2").setText(`${systemScorePercentage} ${systemScoreGrade}`);
225
252
 
253
+ // Display system age (condenser year installed - heat pump outdoor unit)
254
+ const currentYear = new Date().getUTCFullYear();
255
+ const rawYear = payload.equipment && payload.equipment.year_installed;
256
+ const installYear = rawYear !== undefined && rawYear !== null ? Number(rawYear) : NaN;
257
+ const hasValidYear = Number.isFinite(installYear) && installYear > 1900 && installYear <= currentYear;
258
+
259
+ if (hasValidYear) {
260
+ const age = currentYear - installYear;
261
+ let specialCasePlacement = "1";
262
+ let specialCaseIcon = iconRangeGreen;
263
+
264
+ if (age < 2) specialCasePlacement = "1";
265
+ else if (age < 5) specialCasePlacement = "2";
266
+ else if (age < 8) specialCasePlacement = "3";
267
+ else if (age < 15) {
268
+ specialCasePlacement = "4";
269
+ specialCaseIcon = iconRangeRed;
270
+ } else if (age < 20) {
271
+ specialCasePlacement = "5";
272
+ specialCaseIcon = iconRangeRed;
273
+ } else if (age < 25) {
274
+ specialCasePlacement = "6";
275
+ specialCaseIcon = iconRangeRed;
276
+ } else {
277
+ specialCasePlacement = "7";
278
+ specialCaseIcon = iconRangeRed;
279
+ }
280
+
281
+ // Set age marker and text if fields exist
282
+ safeSetImage(form, `ImageAge${specialCasePlacement}`, specialCaseIcon);
283
+ safeSetText(form, "Age", age.toString());
284
+ } else {
285
+ // Age unknown - set to "--" if field exists
286
+ safeSetText(form, "Age", "--");
287
+ }
288
+
226
289
  // Print targets and range icons for heat pump heating
227
290
  // Heat pump heating target zones - some are in data, some in targets
228
291
  const measureLabels = ["Superheat", "Subcooling", "Condenser", "TempSplit", "Tesp", "FilterFace"];
package/util.js CHANGED
@@ -200,6 +200,8 @@ export function getToolIcon(test, ref, embeddedIcons) {
200
200
  break;
201
201
  case "UEi HUB":
202
202
  case "COA2 CO Monitor":
203
+ case "UEi HAC":
204
+ case "UEi DL599":
203
205
  toolIcon = embeddedIcons.iconUei;
204
206
  break;
205
207
  case "Protector":
@@ -218,6 +220,7 @@ export function getToolIcon(test, ref, embeddedIcons) {
218
220
  toolIcon = embeddedIcons.iconBluflame;
219
221
  break;
220
222
  case "iDVM510":
223
+ case "iDVM-510":
221
224
  toolIcon = embeddedIcons.iconRedfish510;
222
225
  break;
223
226
  case "iDVM550":
@@ -248,9 +251,12 @@ export function getToolIcon(test, ref, embeddedIcons) {
248
251
  case "Sauermann":
249
252
  toolIcon = embeddedIcons.iconSauermann;
250
253
  break;
254
+ case "Seitron":
255
+ toolIcon = embeddedIcons.iconSeitron;
256
+ break;
251
257
  }
252
258
  }
253
- if (sourceValue == "iDVM510" && ref.includes("amperage"))
259
+ if ((sourceValue == "iDVM510" || sourceValue == "iDVM-510") && ref.includes("amperage"))
254
260
  toolIcon = embeddedIcons.iconRedfish510333;
255
261
  return toolIcon;
256
262
  }
@@ -369,28 +375,45 @@ export function getElectricalData(test, suffix, embeddedIcons) {
369
375
  const suffixAlreadyInSrc = src.includes(suffix) && suffix !== "";
370
376
  const vSourceKey = suffixAlreadyInSrc ? "voltage" + src : "voltage" + src + suffix;
371
377
  const aSourceKey = suffixAlreadyInSrc ? "amperage" + src : "amperage" + src + suffix;
378
+
379
+ // Build fallback source keys for multimeter sources (used when L1/L2/L3 sources aren't set)
380
+ // For condenser (suffix=""), check voltage_multimeter_condenser then voltage_multimeter
381
+ // For AHU (suffix="_ahu"), check voltage_multimeter_ahu then voltage_multimeter
382
+ const vMultimeterKey = suffix === "_ahu" ? "voltage_multimeter_ahu" : "voltage_multimeter_condenser";
383
+ const aMultimeterKey = suffix === "_ahu" ? "amperage_multimeter_ahu" : "amperage_multimeter_condenser";
384
+
385
+ // Get voltage source with fallback chain
386
+ let vSource = test.source[vSourceKey];
387
+ if (!vSource) vSource = test.source[vMultimeterKey];
388
+ if (!vSource) vSource = test.source["voltage_multimeter"];
389
+
390
+ // Get amperage source with fallback chain
391
+ let aSource = test.source[aSourceKey];
392
+ if (!aSource) aSource = test.source[aMultimeterKey];
393
+ if (!aSource) aSource = test.source["amperage_multimeter"];
394
+
372
395
  if (vDisplay) {
373
- if (test.source[vSourceKey] == "ComfortGuard")
396
+ if (vSource == "ComfortGuard")
374
397
  vIcon = embeddedIcons.iconSensi;
375
- else if (test.source[vSourceKey] == "iDVM550" || test.source[vSourceKey] == "iDVM-550")
398
+ else if (vSource == "iDVM550" || vSource == "iDVM-550")
376
399
  vIcon = embeddedIcons.iconRedfish550;
377
- else if (test.source[vSourceKey] == "VOLT-100")
400
+ else if (vSource == "VOLT-100")
378
401
  vIcon = embeddedIcons.iconVolt100;
379
- else if (test.source[vSourceKey] == "iDVM510")
402
+ else if (vSource == "iDVM510" || vSource == "iDVM-510")
380
403
  vIcon = embeddedIcons.iconRedfish510;
381
- else if (test.source[vSourceKey] == "Fieldpiece")
404
+ else if (vSource == "Fieldpiece")
382
405
  vIcon = embeddedIcons.iconFieldpiece;
383
406
  }
384
407
  if (aDisplay) {
385
- if (test.source[aSourceKey] == "ComfortGuard")
408
+ if (aSource == "ComfortGuard")
386
409
  aIcon = embeddedIcons.iconSensi;
387
- else if (test.source[aSourceKey] == "iDVM550" || test.source[aSourceKey] == "iDVM-550")
410
+ else if (aSource == "iDVM550" || aSource == "iDVM-550")
388
411
  aIcon = embeddedIcons.iconRedfish550;
389
- else if (test.source[aSourceKey] == "VOLT-100")
412
+ else if (aSource == "VOLT-100")
390
413
  aIcon = embeddedIcons.iconVolt100;
391
- else if (test.source[aSourceKey] == "iDVM510")
414
+ else if (aSource == "iDVM510" || aSource == "iDVM-510")
392
415
  aIcon = embeddedIcons.iconRedfish510;
393
- else if (test.source[aSourceKey] == "Fieldpiece")
416
+ else if (aSource == "Fieldpiece")
394
417
  aIcon = embeddedIcons.iconFieldpiece;
395
418
  }
396
419
  return {