@lighthouse/common 4.34.0-canary-16 → 4.34.0-canary-17

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.
@@ -183,9 +183,9 @@ function generateContent(data, flags) {
183
183
  colSpan: 2,
184
184
  style: 'small'
185
185
  });
186
- body.push([startedAt]);
187
- body.push([submittedAt]);
188
- body.push([formDuration]);
186
+ body.push([startedAt, dummyColumn]);
187
+ body.push([submittedAt, dummyColumn]);
188
+ body.push([formDuration, dummyColumn]);
189
189
  }
190
190
 
191
191
  const titleTable = (0, _helpers.twoColumnTable)({
@@ -173,9 +173,9 @@ function generateContent(data, flags) {
173
173
  colSpan: 2,
174
174
  style: 'small'
175
175
  });
176
- body.push([startedAt]);
177
- body.push([submittedAt]);
178
- body.push([formDuration]);
176
+ body.push([startedAt, dummyColumn]);
177
+ body.push([submittedAt, dummyColumn]);
178
+ body.push([formDuration, dummyColumn]);
179
179
  }
180
180
 
181
181
  var titleTable = twoColumnTable({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pdf/audit/index.js"],"names":["Promise","isEmpty","round","moment","buildAuditContent","buildAuditFollowUps","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","text","twoColumnTable","getAuditEntryDetails","buildAuditPdf","pdfOptions","data","entity","timezone","flags","console","info","sequenceId","timestamp","createdAt","title","fileTitle","generateContent","then","content","type","catch","err","Error","message","rolloutAuditFollowUps","followUps","footerFields","gps","headerFields","score","entityDetails","gpsText","groupedData","locationText","referenceValue","timezoneHourTime","scoreText","target","targetServiceLevel","renderTargetFields","headerTitle","style","headerScore","alignment","firstRow","subTitle","headerSubTitle","colSpan","secondRow","reverseGeocoded","address","renderHeaderAddress","dummyColumn","headerAddress","renderThirdRow","thirdRow","serviceLevelBelow","serviceLevelText","scoreServiceLevelSubTitle","truncatedTargetPercent","scoreTargetText","scoreTargetSubTitle","scoreBreakdown","actual","max","scorePercentage","scoreTitle","body","entityFields","Object","keys","formDurationFieldsPresent","some","field","includes","startedAtInTimezone","startedAt","tz","format","submittedAtInTimezone","submittedAt","momentDuration","duration","Math","abs","formDuration","hours","floor","asHours","toString","padStart","minutes","seconds","formattedFormDuration","push","titleTable","layout","widths","margin","totalScoreTable","hLineTop","hLineBottom","followUpItems","promises","entry","items","footerTemplate","formGroups","headerTemplate","auditItemsTitle","font","lineHeight","props"],"mappings":"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","sourcesContent":["import Promise from 'bluebird'\nimport { isEmpty, round } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildAuditContent,\n buildAuditFollowUps,\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n text,\n twoColumnTable,\n} from '../helpers'\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} pdfOptions.flags - flags to conditionally render parts of the pdf\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 const { flags = {} } = pdfOptions\n\n console.info('buildAuditPdf')\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n const fileTitle = `Audit Report - ${title}`\n\n return generateContent(data, flags)\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, flags) {\n const { rolloutAuditFollowUps } = flags\n const { entity } = data\n\n const {\n followUps = [],\n footerFields = {},\n gps = {},\n headerFields = {},\n score = {},\n timezone,\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 targetServiceLevel,\n } = entityDetails\n\n const renderTargetFields = !!targetServiceLevel\n const headerTitle = text(title, { style: 'title' })\n const headerScore = text(scoreText, { alignment: 'right', style: 'title' })\n const firstRow = [headerTitle, headerScore]\n const subTitle = `${locationText ||\n gpsText} - ${timezoneHourTime} by ${referenceValue}`\n\n let headerSubTitle = text(subTitle, { colSpan: 2, style: 'subTitle' })\n let secondRow = [headerSubTitle]\n\n const reverseGeocoded = gps.reverseGeocoded\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const renderHeaderAddress = !isEmpty(reverseGeocoded)\n const dummyColumn = text(' ', { style: 'small' })\n\n let headerAddress = text(address, { colSpan: 2, style: 'small' })\n const renderThirdRow = renderHeaderAddress || renderTargetFields\n let thirdRow = renderHeaderAddress ? [headerAddress] : []\n\n if (renderTargetFields) {\n headerSubTitle = text(subTitle, { style: 'subTitle' })\n\n const serviceLevelBelow = targetServiceLevel === 'below'\n const serviceLevelText =\n targetServiceLevel === 'above'\n ? 'Above Target'\n : targetServiceLevel === 'on'\n ? 'On Target'\n : targetServiceLevel === 'below'\n ? 'Below Target'\n : ''\n\n const scoreServiceLevelSubTitle = text(serviceLevelText, {\n alignment: 'right',\n style: serviceLevelBelow ? 'serviceLevelBelow' : 'serviceLevelAboveOrOn',\n })\n\n secondRow = [headerSubTitle, scoreServiceLevelSubTitle]\n headerAddress = text(address, { style: 'small' })\n\n const truncatedTargetPercent = round(target, 2)\n const scoreTargetText = `(Target - ${truncatedTargetPercent}%)`\n const scoreTargetSubTitle = text(scoreTargetText, {\n alignment: 'right',\n style: 'subTitle',\n })\n\n thirdRow = renderHeaderAddress\n ? [headerAddress, scoreTargetSubTitle]\n : [dummyColumn, scoreTargetSubTitle]\n }\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 body = renderThirdRow\n ? [firstRow, secondRow, thirdRow]\n : [firstRow, secondRow]\n\n const entityFields = Object.keys(entity)\n const formDurationFieldsPresent = [\n 'formDuration',\n 'startedAt',\n 'submittedAt',\n ].some(field => entityFields.includes(field))\n\n if (formDurationFieldsPresent) {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started At: ${startedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted At: ${submittedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const hours = Math.floor(momentDuration.asHours())\n .toString()\n .padStart(2, '0')\n const minutes = momentDuration\n .minutes()\n .toString()\n .padStart(2, '0')\n const seconds = momentDuration\n .seconds()\n .toString()\n .padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${entity.formDuration < 0 ? '-' : ''}${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (HH:MM:SS): ${formattedFormDuration}`,\n {\n colSpan: 2,\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = twoColumnTable({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n widths: ['*', 100],\n margin: [0, 0, 0, 30],\n })\n\n const totalScoreTable = twoColumnTable({\n body: [[scoreTitle, scoreBreakdown], [scorePercentage]],\n layout: 'noBorders',\n widths: ['*', 100],\n })\n\n const hLineTop = horizontalLine({ margin: [0, 10, 0, 0] })\n const hLineBottom = horizontalLine()\n\n const followUpItems = rolloutAuditFollowUps\n ? buildAuditFollowUps(followUps, { timezone })\n : []\n\n const promises = {\n entry: buildAuditContent(groupedData.items, { rolloutAuditFollowUps }),\n footerTemplate: buildTemplateContent(footerFields.formGroups, data),\n headerTemplate: buildTemplateContent(headerFields.formGroups, data),\n }\n\n const auditItemsTitle = rolloutAuditFollowUps\n ? [\n {\n text: 'Audit Items',\n style: {\n font: 'Gotham',\n lineHeight: 1.1,\n },\n },\n hLineTop,\n ]\n : []\n\n return Promise.props(promises)\n .then(({ entry, footerTemplate, headerTemplate }) => [\n titleTable,\n followUpItems,\n ...auditItemsTitle,\n ...headerTemplate,\n ...entry,\n hLineTop,\n totalScoreTable,\n hLineBottom,\n ...footerTemplate,\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","moment","buildAuditContent","buildAuditFollowUps","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","text","twoColumnTable","getAuditEntryDetails","buildAuditPdf","pdfOptions","data","entity","timezone","flags","console","info","sequenceId","timestamp","createdAt","title","fileTitle","generateContent","then","content","type","catch","err","Error","message","rolloutAuditFollowUps","followUps","footerFields","gps","headerFields","score","entityDetails","gpsText","groupedData","locationText","referenceValue","timezoneHourTime","scoreText","target","targetServiceLevel","renderTargetFields","headerTitle","style","headerScore","alignment","firstRow","subTitle","headerSubTitle","colSpan","secondRow","reverseGeocoded","address","renderHeaderAddress","dummyColumn","headerAddress","renderThirdRow","thirdRow","serviceLevelBelow","serviceLevelText","scoreServiceLevelSubTitle","truncatedTargetPercent","scoreTargetText","scoreTargetSubTitle","scoreBreakdown","actual","max","scorePercentage","scoreTitle","body","entityFields","Object","keys","formDurationFieldsPresent","some","field","includes","startedAtInTimezone","startedAt","tz","format","submittedAtInTimezone","submittedAt","momentDuration","duration","Math","abs","formDuration","hours","floor","asHours","toString","padStart","minutes","seconds","formattedFormDuration","push","titleTable","layout","widths","margin","totalScoreTable","hLineTop","hLineBottom","followUpItems","promises","entry","items","footerTemplate","formGroups","headerTemplate","auditItemsTitle","font","lineHeight","props"],"mappings":"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","sourcesContent":["import Promise from 'bluebird'\nimport { isEmpty, round } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildAuditContent,\n buildAuditFollowUps,\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n text,\n twoColumnTable,\n} from '../helpers'\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} pdfOptions.flags - flags to conditionally render parts of the pdf\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 const { flags = {} } = pdfOptions\n\n console.info('buildAuditPdf')\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n const fileTitle = `Audit Report - ${title}`\n\n return generateContent(data, flags)\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, flags) {\n const { rolloutAuditFollowUps } = flags\n const { entity } = data\n\n const {\n followUps = [],\n footerFields = {},\n gps = {},\n headerFields = {},\n score = {},\n timezone,\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 targetServiceLevel,\n } = entityDetails\n\n const renderTargetFields = !!targetServiceLevel\n const headerTitle = text(title, { style: 'title' })\n const headerScore = text(scoreText, { alignment: 'right', style: 'title' })\n const firstRow = [headerTitle, headerScore]\n const subTitle = `${locationText ||\n gpsText} - ${timezoneHourTime} by ${referenceValue}`\n\n let headerSubTitle = text(subTitle, { colSpan: 2, style: 'subTitle' })\n let secondRow = [headerSubTitle]\n\n const reverseGeocoded = gps.reverseGeocoded\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const renderHeaderAddress = !isEmpty(reverseGeocoded)\n const dummyColumn = text(' ', { style: 'small' })\n\n let headerAddress = text(address, { colSpan: 2, style: 'small' })\n const renderThirdRow = renderHeaderAddress || renderTargetFields\n let thirdRow = renderHeaderAddress ? [headerAddress] : []\n\n if (renderTargetFields) {\n headerSubTitle = text(subTitle, { style: 'subTitle' })\n\n const serviceLevelBelow = targetServiceLevel === 'below'\n const serviceLevelText =\n targetServiceLevel === 'above'\n ? 'Above Target'\n : targetServiceLevel === 'on'\n ? 'On Target'\n : targetServiceLevel === 'below'\n ? 'Below Target'\n : ''\n\n const scoreServiceLevelSubTitle = text(serviceLevelText, {\n alignment: 'right',\n style: serviceLevelBelow ? 'serviceLevelBelow' : 'serviceLevelAboveOrOn',\n })\n\n secondRow = [headerSubTitle, scoreServiceLevelSubTitle]\n headerAddress = text(address, { style: 'small' })\n\n const truncatedTargetPercent = round(target, 2)\n const scoreTargetText = `(Target - ${truncatedTargetPercent}%)`\n const scoreTargetSubTitle = text(scoreTargetText, {\n alignment: 'right',\n style: 'subTitle',\n })\n\n thirdRow = renderHeaderAddress\n ? [headerAddress, scoreTargetSubTitle]\n : [dummyColumn, scoreTargetSubTitle]\n }\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 body = renderThirdRow\n ? [firstRow, secondRow, thirdRow]\n : [firstRow, secondRow]\n\n const entityFields = Object.keys(entity)\n const formDurationFieldsPresent = [\n 'formDuration',\n 'startedAt',\n 'submittedAt',\n ].some(field => entityFields.includes(field))\n\n if (formDurationFieldsPresent) {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started At: ${startedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted At: ${submittedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const hours = Math.floor(momentDuration.asHours())\n .toString()\n .padStart(2, '0')\n const minutes = momentDuration\n .minutes()\n .toString()\n .padStart(2, '0')\n const seconds = momentDuration\n .seconds()\n .toString()\n .padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${entity.formDuration < 0 ? '-' : ''}${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (HH:MM:SS): ${formattedFormDuration}`,\n {\n colSpan: 2,\n style: 'small',\n }\n )\n\n body.push([startedAt, dummyColumn])\n body.push([submittedAt, dummyColumn])\n body.push([formDuration, dummyColumn])\n }\n\n const titleTable = twoColumnTable({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n widths: ['*', 100],\n margin: [0, 0, 0, 30],\n })\n\n const totalScoreTable = twoColumnTable({\n body: [[scoreTitle, scoreBreakdown], [scorePercentage]],\n layout: 'noBorders',\n widths: ['*', 100],\n })\n\n const hLineTop = horizontalLine({ margin: [0, 10, 0, 0] })\n const hLineBottom = horizontalLine()\n\n const followUpItems = rolloutAuditFollowUps\n ? buildAuditFollowUps(followUps, { timezone })\n : []\n\n const promises = {\n entry: buildAuditContent(groupedData.items, { rolloutAuditFollowUps }),\n footerTemplate: buildTemplateContent(footerFields.formGroups, data),\n headerTemplate: buildTemplateContent(headerFields.formGroups, data),\n }\n\n const auditItemsTitle = rolloutAuditFollowUps\n ? [\n {\n text: 'Audit Items',\n style: {\n font: 'Gotham',\n lineHeight: 1.1,\n },\n },\n hLineTop,\n ]\n : []\n\n return Promise.props(promises)\n .then(({ entry, footerTemplate, headerTemplate }) => [\n titleTable,\n followUpItems,\n ...auditItemsTitle,\n ...headerTemplate,\n ...entry,\n hLineTop,\n totalScoreTable,\n hLineBottom,\n ...footerTemplate,\n ])\n .catch(err => {\n throw new Error(`GenerateContentError: ${err.message}`)\n })\n}\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lighthouse/common",
3
- "version": "4.34.0-canary-16",
3
+ "version": "4.34.0-canary-17",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "lib/index.js",