@lighthouse/common 4.20.4-canary-1 → 4.20.4-canary-2
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/dist/pdf/audit/index.js
CHANGED
|
@@ -80,8 +80,7 @@ function generateContent(data) {
|
|
|
80
80
|
timezoneHourTime,
|
|
81
81
|
scoreText,
|
|
82
82
|
target,
|
|
83
|
-
sla
|
|
84
|
-
|
|
83
|
+
sla
|
|
85
84
|
} = entityDetails;
|
|
86
85
|
const reverseGeocoded = gps.reverseGeocoded;
|
|
87
86
|
const subTitle = `${locationText || gpsText} - ${timezoneHourTime} by ${referenceValue}`;
|
|
@@ -130,7 +129,15 @@ function generateContent(data) {
|
|
|
130
129
|
const firstRow = [headerTitle, headerScore];
|
|
131
130
|
const secondRow = renderTargetFields ? [headerSubTitle, scoreSlaTitle] : [headerSubTitle];
|
|
132
131
|
const thirdRow = renderTargetFields && renderHeaderAddress ? [headerAddress, scoreTargetSubTitle] : renderHeaderAddress ? [headerAddress] : renderTargetFields ? [scoreTargetSubTitle] : [];
|
|
132
|
+
console.log({
|
|
133
|
+
slaIsGreen,
|
|
134
|
+
slaText,
|
|
135
|
+
scoreTargetText
|
|
136
|
+
});
|
|
133
137
|
const body = renderThirdRow ? [firstRow, secondRow, thirdRow] : [firstRow, secondRow];
|
|
138
|
+
console.log({
|
|
139
|
+
body
|
|
140
|
+
});
|
|
134
141
|
const titleTable = (0, _helpers.twoColumnTable)({
|
|
135
142
|
body,
|
|
136
143
|
layout: 'noBorders',
|
package/lib/pdf/audit/index.js
CHANGED
|
@@ -122,7 +122,15 @@ function generateContent(data) {
|
|
|
122
122
|
var firstRow = [headerTitle, headerScore];
|
|
123
123
|
var secondRow = renderTargetFields ? [headerSubTitle, scoreSlaTitle] : [headerSubTitle];
|
|
124
124
|
var thirdRow = renderTargetFields && renderHeaderAddress ? [headerAddress, scoreTargetSubTitle] : renderHeaderAddress ? [headerAddress] : renderTargetFields ? [scoreTargetSubTitle] : [];
|
|
125
|
+
console.log({
|
|
126
|
+
slaIsGreen: slaIsGreen,
|
|
127
|
+
slaText: slaText,
|
|
128
|
+
scoreTargetText: scoreTargetText
|
|
129
|
+
});
|
|
125
130
|
var body = renderThirdRow ? [firstRow, secondRow, thirdRow] : [firstRow, secondRow];
|
|
131
|
+
console.log({
|
|
132
|
+
body: body
|
|
133
|
+
});
|
|
126
134
|
var titleTable = twoColumnTable({
|
|
127
135
|
body: body,
|
|
128
136
|
layout: 'noBorders',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/pdf/audit/index.js"],"names":["Promise","isEmpty","round","buildAuditContent","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","text","twoColumnTable","getAuditEntryDetails","buildAuditPdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","generateContent","then","content","type","catch","err","Error","message","footerFields","gps","headerFields","score","entityDetails","gpsText","groupedData","locationText","referenceValue","timezoneHourTime","scoreText","target","sla","reverseGeocoded","subTitle","headerTitle","style","headerScore","alignment","headerSubTitle","colSpan","address","headerAddress","scoreBreakdown","actual","max","scorePercentage","scoreTitle","renderTargetFields","renderHeaderAddress","renderThirdRow","scoreTargetText","scoreTargetSubTitle","slaIsGreen","slaText","scoreSlaTitle","firstRow","secondRow","thirdRow","body","titleTable","layout","widths","totalScoreTable","hLineTop","margin","hLineBottom","promises","entry","items","footerTemplate","formGroups","headerTemplate","props"],"mappings":"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","sourcesContent":["import Promise from 'bluebird'\nimport { isEmpty, round } from 'lodash'\n\nimport {\n buildAuditContent,\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n text,\n twoColumnTable,\n} from '../helpers'\n\nimport { getAuditEntryDetails } from '../../helpers'\n\n/**\n * buildAuditPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - audit document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildAuditPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Audit Report - ${title}`\n\n return generateContent(data)\n .then(content =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Audit',\n ...pdfOptions,\n })\n )\n .catch(err => {\n throw new Error(`BuildAuditPdfError: ${err.message}`)\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n\n const {\n footerFields = {},\n gps = {},\n headerFields = {},\n score = {},\n title = 'Unknown',\n } = entity\n\n const entityDetails = getAuditEntryDetails(data)\n\n const {\n gpsText,\n groupedData,\n locationText,\n referenceValue,\n timezoneHourTime,\n scoreText,\n target,\n sla, // Service-Level Agreement\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText ||\n gpsText} - ${timezoneHourTime} by ${referenceValue}`\n\n const headerTitle = text(title, { style: 'title' })\n const headerScore = text(scoreText, { alignment: 'right', style: 'title' })\n const headerSubTitle = text(subTitle, { colSpan: 2, style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { colSpan: 2, style: 'small' })\n\n const scoreBreakdown = text(\n `${round(score.actual, 2)} / ${round(score.max, 2)}`,\n {\n alignment: 'right',\n style: 'totalScore',\n }\n )\n const scorePercentage = text(scoreText, {\n alignment: 'right',\n colSpan: 2,\n style: 'totalAuditScore',\n })\n const scoreTitle = text('Total Score', { style: 'totalScore' })\n\n const renderTargetFields = !!(target && sla)\n const renderHeaderAddress = !isEmpty(reverseGeocoded)\n const renderThirdRow = renderHeaderAddress || renderTargetFields\n\n const scoreTargetText = `(Target - ${target}%)`\n const scoreTargetSubTitle = text(scoreTargetText, { alignment: 'right', style: 'subTitle' })\n\n const slaIsGreen = sla !== 'below'\n const slaText =\n sla === 'above' ?\n 'Above Target' :\n sla === 'on' ?\n 'On Target' :\n sla === 'below' ?\n 'Below Target' :\n ''\n\n const scoreSlaTitle = text(slaText, { alignment: 'right', style: slaIsGreen ? 'slaGreen' : 'slaRed' })\n\n const firstRow = [headerTitle, headerScore]\n const secondRow = renderTargetFields ? [headerSubTitle,scoreSlaTitle] : [headerSubTitle]\n\n const thirdRow =\n renderTargetFields && renderHeaderAddress ?\n [headerAddress, scoreTargetSubTitle] :\n renderHeaderAddress ?\n [headerAddress] :\n renderTargetFields ?\n [scoreTargetSubTitle] :\n []\n\n\n const body = renderThirdRow\n ? [firstRow, secondRow, thirdRow]\n : [firstRow, secondRow]\n\n const titleTable = twoColumnTable({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n widths: ['*', 80],\n })\n\n const totalScoreTable = twoColumnTable({\n body: [[scoreTitle, scoreBreakdown], [scorePercentage]],\n layout: 'noBorders',\n widths: ['*', 80],\n })\n\n const hLineTop = horizontalLine({ margin: [0, 10, 0, 0] })\n const hLineBottom = horizontalLine()\n\n const promises = {\n entry: buildAuditContent(groupedData.items),\n footerTemplate: buildTemplateContent(footerFields.formGroups, data),\n headerTemplate: buildTemplateContent(headerFields.formGroups, data),\n }\n\n return Promise.props(promises)\n .then(({ entry, footerTemplate, headerTemplate }) => {\n return [\n titleTable,\n ...headerTemplate,\n ...entry,\n hLineTop,\n totalScoreTable,\n hLineBottom,\n ...footerTemplate,\n ]\n })\n .catch(err => {\n throw new Error(`GenerateContentError: ${err.message}`)\n })\n}\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/pdf/audit/index.js"],"names":["Promise","isEmpty","round","buildAuditContent","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","text","twoColumnTable","getAuditEntryDetails","buildAuditPdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","generateContent","then","content","type","catch","err","Error","message","footerFields","gps","headerFields","score","entityDetails","gpsText","groupedData","locationText","referenceValue","timezoneHourTime","scoreText","target","sla","reverseGeocoded","subTitle","headerTitle","style","headerScore","alignment","headerSubTitle","colSpan","address","headerAddress","scoreBreakdown","actual","max","scorePercentage","scoreTitle","renderTargetFields","renderHeaderAddress","renderThirdRow","scoreTargetText","scoreTargetSubTitle","slaIsGreen","slaText","scoreSlaTitle","firstRow","secondRow","thirdRow","console","log","body","titleTable","layout","widths","totalScoreTable","hLineTop","margin","hLineBottom","promises","entry","items","footerTemplate","formGroups","headerTemplate","props"],"mappings":"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","sourcesContent":["import Promise from 'bluebird'\nimport { isEmpty, round } from 'lodash'\n\nimport {\n buildAuditContent,\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n text,\n twoColumnTable,\n} from '../helpers'\n\nimport { getAuditEntryDetails } from '../../helpers'\n\n/**\n * buildAuditPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - audit document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildAuditPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Audit Report - ${title}`\n\n return generateContent(data)\n .then(content =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Audit',\n ...pdfOptions,\n })\n )\n .catch(err => {\n throw new Error(`BuildAuditPdfError: ${err.message}`)\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n\n const {\n footerFields = {},\n gps = {},\n headerFields = {},\n score = {},\n title = 'Unknown',\n } = entity\n\n const entityDetails = getAuditEntryDetails(data)\n\n const {\n gpsText,\n groupedData,\n locationText,\n referenceValue,\n timezoneHourTime,\n scoreText,\n target,\n sla,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText ||\n gpsText} - ${timezoneHourTime} by ${referenceValue}`\n\n const headerTitle = text(title, { style: 'title' })\n const headerScore = text(scoreText, { alignment: 'right', style: 'title' })\n const headerSubTitle = text(subTitle, { colSpan: 2, style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { colSpan: 2, style: 'small' })\n\n const scoreBreakdown = text(\n `${round(score.actual, 2)} / ${round(score.max, 2)}`,\n {\n alignment: 'right',\n style: 'totalScore',\n }\n )\n const scorePercentage = text(scoreText, {\n alignment: 'right',\n colSpan: 2,\n style: 'totalAuditScore',\n })\n const scoreTitle = text('Total Score', { style: 'totalScore' })\n\n const renderTargetFields = !!(target && sla)\n const renderHeaderAddress = !isEmpty(reverseGeocoded)\n const renderThirdRow = renderHeaderAddress || renderTargetFields\n\n const scoreTargetText = `(Target - ${target}%)`\n const scoreTargetSubTitle = text(scoreTargetText, {\n alignment: 'right',\n style: 'subTitle',\n })\n\n const slaIsGreen = sla !== 'below'\n const slaText =\n sla === 'above'\n ? 'Above Target'\n : sla === 'on'\n ? 'On Target'\n : sla === 'below'\n ? 'Below Target'\n : ''\n\n const scoreSlaTitle = text(slaText, {\n alignment: 'right',\n style: slaIsGreen ? 'slaGreen' : 'slaRed',\n })\n\n const firstRow = [headerTitle, headerScore]\n const secondRow = renderTargetFields\n ? [headerSubTitle, scoreSlaTitle]\n : [headerSubTitle]\n\n const thirdRow =\n renderTargetFields && renderHeaderAddress\n ? [headerAddress, scoreTargetSubTitle]\n : renderHeaderAddress\n ? [headerAddress]\n : renderTargetFields\n ? [scoreTargetSubTitle]\n : []\n\n console.log({ slaIsGreen, slaText, scoreTargetText })\n\n const body = renderThirdRow\n ? [firstRow, secondRow, thirdRow]\n : [firstRow, secondRow]\n\n console.log({ body })\n\n const titleTable = twoColumnTable({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n widths: ['*', 80],\n })\n\n const totalScoreTable = twoColumnTable({\n body: [[scoreTitle, scoreBreakdown], [scorePercentage]],\n layout: 'noBorders',\n widths: ['*', 80],\n })\n\n const hLineTop = horizontalLine({ margin: [0, 10, 0, 0] })\n const hLineBottom = horizontalLine()\n\n const promises = {\n entry: buildAuditContent(groupedData.items),\n footerTemplate: buildTemplateContent(footerFields.formGroups, data),\n headerTemplate: buildTemplateContent(headerFields.formGroups, data),\n }\n\n return Promise.props(promises)\n .then(({ entry, footerTemplate, headerTemplate }) => {\n return [\n titleTable,\n ...headerTemplate,\n ...entry,\n hLineTop,\n totalScoreTable,\n hLineBottom,\n ...footerTemplate,\n ]\n })\n .catch(err => {\n throw new Error(`GenerateContentError: ${err.message}`)\n })\n}\n"],"file":"index.js"}
|