@measurequick/measurequick-report-generator 1.2.78 → 1.2.80

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/index.js CHANGED
@@ -7,6 +7,7 @@ import * as photosReportS3 from "./report-gen-scripts/photos-report-s3.
7
7
  import * as ptcsHeatPumpReport from "./report-gen-scripts/ptcs-heat-pump-report.js";
8
8
  import * as vitalsCoolingReport from "./report-gen-scripts/vitals-cooling-report.js";
9
9
  import * as vitalsHeatingReport from "./report-gen-scripts/vitals-heating-report.js";
10
+ import * as bluvacReport from "./report-gen-scripts/bluvac-report.js";
10
11
 
11
12
  export function getReport(payload) {
12
13
  switch (payload.meta.report_type) {
@@ -15,9 +16,10 @@ export function getReport(payload) {
15
16
  case "MeasurementDetails": return measurementDetails.getReport(payload);
16
17
  case "CorrectiveMeasures": return correctiveMeasures.getReport(payload);
17
18
  case "PhotosReport": return photosReport.getReport(payload);
18
- case "PhotosReportS3": return photosReportS3.getReport(payload);
19
+ case "PhotosReportS3": return photosReportS3.getReport(payload);
19
20
  case "PtcsHeatPumpReport": return ptcsHeatPumpReport.getReport(payload);
20
21
  case "VitalsCoolingReport": return vitalsCoolingReport.getReport(payload, false);
21
22
  case "VitalsHeatingReport": return vitalsHeatingReport.getReport(payload, false);
23
+ case "BluVac Report": return bluvacReport.getReport(payload);
22
24
  }
23
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measurequick/measurequick-report-generator",
3
- "version": "1.2.78",
3
+ "version": "1.2.80",
4
4
  "description": "Generates PDF documents for various MeasureQuick applications.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -0,0 +1,16 @@
1
+ import { PDFDocument } from 'pdf-lib';
2
+ import * as base64 from '../base-64/icons.js';
3
+ import * as pdfCooling from '../base-64/system-info-cooling.js';
4
+ import * as pdfHeating from '../base-64/system-info-heating.js';
5
+ import * as util from '../util.js';
6
+
7
+ export async function getReport(payload) { console.log("BluVac Report");
8
+ try {
9
+ const pdfDoc = await PDFDocument.load(util._base64ToArrayBuffer(payload.meta.base64));
10
+ const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
11
+ return pdfBase64;
12
+ } catch (e) {
13
+ console.log(e);
14
+ return false;
15
+ }
16
+ }
@@ -0,0 +1,29 @@
1
+ // global.PNG = require('png-js');
2
+ // global.window = {document: {createElementNS: () => {return {}} }};
3
+ // global.navigator = {};
4
+ // global.atob = require('atob');
5
+ // global.btoa = () => {};
6
+ //
7
+ // var fs = require('fs'),
8
+ // express = require('express'),
9
+ // jsPDF = require('jspdf/dist/jspdf.node.min'),
10
+ // app = require('express')(),
11
+ // http = require('http').Server(app),
12
+ // bodyParser = require('body-parser'),
13
+ // Jimp = require('jimp'),
14
+ // util = require('util'),
15
+ // log_file = fs.createWriteStream(__dirname + '/debug.log', {flags : 'w'}),
16
+ // log_stdout = process.stdout;
17
+ //
18
+ // console.log = function(d) { //
19
+ // log_file.write(util.format(d) + '\n');
20
+ // log_stdout.write(util.format(d) + '\n');
21
+ // };
22
+ //
23
+ // export async function getReport(payload) { console.log("Cover Page - Payload:"); console.log(payload);
24
+ // try {
25
+ //
26
+ //
27
+ // return doc.output('datauristring');
28
+ // } catch (error) { console.log(error) }
29
+ // }
@@ -86,6 +86,16 @@ export async function getReport(payload) { console.log("Full Report"); console.l
86
86
  }
87
87
  } catch (e) {}
88
88
 
89
+ /******** BLUVAC REPORT (1 PAGE) *********/
90
+ if (payload.project.evacuation_pdf && payload.meta.pdf_settings.includeBluvacReport) {
91
+ try {
92
+ let bluvacReportBase64 = payload.project.evacuation_pdf;
93
+ const bluvacReportDoc = bluvacReportBase64 ? await PDFDocument.load(util._base64ToArrayBuffer(bluvacReportBase64)) : false;
94
+ const [_bluvacReportDoc] = bluvacReportDoc ? await coreDoc.copyPages(bluvacReportDoc, [0]) : false;
95
+ if (_bluvacReportDoc) coreDoc.insertPage(coreDoc.getPages().length, _bluvacReportDoc);
96
+ } catch (e) {}
97
+ }
98
+
89
99
  /******** CORRECTIVE MEASURES (1 PAGE) *********/
90
100
  try {
91
101
  let correctiveMeasuresBase64 = await correctiveMeasures.getReport(payload);
@@ -62,6 +62,45 @@ export async function getReport(payload) { console.log("Photo Page(s) - Payload
62
62
  docIndex++;
63
63
  }
64
64
 
65
+ photoSectionKeys = Object.keys(payload.photos.equipment);
66
+ if (photoSectionKeys && photoSectionKeys.length > 0) {
67
+ docs[docIndex] = await PDFDocument.load(util._base64ToArrayBuffer(page.base64));
68
+ forms[docIndex] = docs[docIndex].getForm();
69
+ forms[docIndex].getButton("FullWidthLogo").setImage(await docs[docIndex].embedPng(mqLogoBytes));
70
+ forms[docIndex].getTextField("Header").setText(`Equipment Photos`);
71
+ let photoPosition = 1;
72
+ for (let pskIndex = 0; pskIndex < photoSectionKeys.length; pskIndex++) { // Iterate over X user-defined photo sections within each photo collection
73
+ let photoSectionKey = photoSectionKeys[pskIndex];
74
+ let photoSection = payload.photos.equipment[photoSectionKey];
75
+ let photoSectionName = photoSection.name;
76
+ let photos = photoSection.photos;
77
+ if (photos && photos.length > 0) {
78
+ for (let pIndex = 1; pIndex <= photos.length; pIndex++) { // Iterate over X user-defined photos within each photo section
79
+ let photo = photos[pIndex-1];
80
+ if (photoPosition > maxPhotosPerPage) { // Need a new page
81
+ photoPosition = 1;
82
+ docIndex++;
83
+ docs[docIndex] = await PDFDocument.load(util._base64ToArrayBuffer(page.base64));
84
+ forms[docIndex] = docs[docIndex].getForm();
85
+ forms[docIndex].getButton("FullWidthLogo").setImage(await docs[docIndex].embedPng(mqLogoBytes));
86
+ forms[docIndex].getTextField("Header").setText(`Equipment Photos`);
87
+ }
88
+ let imageToSet;
89
+ if (photo.base64.includes("image/jpeg")) imageToSet = await docs[docIndex].embedJpg(util._base64ToArrayBuffer(photo.base64));
90
+ else if (photo.base64.includes("image/png")) imageToSet = await docs[docIndex].embedPng(util._base64ToArrayBuffer(photo.base64));
91
+ if (imageToSet) forms[docIndex].getButton(`photo${pSize}${photoPosition}`).setImage(imageToSet);
92
+ let photoSubText = photoSection.name;
93
+ let isFirstPhotoOfSection = previousPhotoSectionName !== photoSectionName;
94
+ if (isFirstPhotoOfSection && photoSection.hasNotes && photoSection.notes) photoSubText += `: ${photoSection.notes}`;
95
+ forms[docIndex].getTextField(`Notes${photoPosition}`).setText(`${photoSubText}`);
96
+ photoPosition++;
97
+ previousPhotoSectionName = photoSectionName;
98
+ }
99
+ }
100
+ }
101
+ docIndex++;
102
+ }
103
+
65
104
  // Prepare Deliverable
66
105
  forms.forEach(form => { form.flatten() });
67
106
  let pdfDoc = await PDFDocument.create();